SCM

SCM Repository

[matrix] Diff of /pkg/ChangeLog
ViewVC logotype

Diff of /pkg/ChangeLog

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1312, Thu Jul 6 15:29:56 2006 UTC revision 2244, Sat Aug 23 18:09:51 2008 UTC
# Line 1  Line 1 
1    2008-08-23  Douglas Bates <bates@stat.wisc.edu>
2    
3            * [r2243] R/CHMfactor.R, man/CHMfactor-class.Rd: Added expand method and
4              documentation for CHMfactor class
5            * [r2241] R/CHMfactor.R: Added trivial coercion method for CHMfactor ->
6              pMatrix
7    
8    2008-08-19  Martin Maechler  <maechler@stat.math.ethz.ch>
9    
10            * R/nsCMatrix.R (setAs(., dgTMatrix))): remove unused method
11    
12    2008-08-18  Martin Maechler  <maechler@stat.math.ethz.ch>
13    
14            * R/Ops.R (.Ops2dge.via.x, and many others): eliminate never-used
15            variable assignments {from "next version" codetools}.
16            * R/Csparse.R, R/Tsparse.R: ditto
17    
18    2008-08-17  Martin Maechler  <maechler@stat.math.ethz.ch>
19    
20            * R/sparseVector.R (sp2vec, coerce to sparseVector):
21            make sure no integer overflows happen, and use double precision
22            (n, index) where appropriate.
23    
24            * tests/Simple.R: test "large" sparse vectors.
25    
26    2008-08-14  Martin Maechler  <maechler@stat.math.ethz.ch>
27    
28            * R/AllClass.R (sparseVector): 'length' and 'i' are "numeric", not
29            just integer (allowing much longer length).
30    
31    2008-07-28  Martin Maechler  <maechler@stat.math.ethz.ch>
32    
33            * R/AllClass.R (diagonalMatrix): extend  "sparseMatrix" instead of
34            "denseMatrix".  This renders "scarceMatrix" dispensable and
35            invalidates part of MM's presentations on "space of Matrix
36            classes", but seems cleaner overall.
37    
38            * R/diagMatrix.R, etc: eliminate "scarceMatrix", replacing it by
39            "sparseMatrix" in method signatures;
40            further, instead of coercing to "sparseMatrix", coerce to
41            "TsparseMatrix" now.
42    
43    2008-07-26  Martin Maechler  <maechler@stat.math.ethz.ch>
44    
45            * src/dgCMatrix.c (dgCMatrix_qrsol): allow third argument 'order' in
46            .Call(.)
47            * R/sparseMatrix.R (lm.fit.sparse), src/dgCMatrix.h, src/init.c: ditto
48    
49    2008-07-24  Martin Maechler  <maechler@stat.math.ethz.ch>
50    
51            * R/dgeMatrix.R: need solve(<dge>, <sparse>) against infinite
52            recursion in new test in
53            * tests/matprod.R: testing the above and another solve() case, below
54    
55            * R/sparseMatrix.R (lm.fit.sparse): slightly more efficient for
56            e.g. triangular 'x'.
57    
58            * src/dgCMatrix.c (dgCMatrix_qrsol): use AS_CSP() hence allowing dtC*
59            * src/dgCMatrix.c (dgCMatrix_cholsol): use AS_CHM_SP() to work
60            correctly with unit-triangular x
61    
62            * src/dsCMatrix.c (dsCMatrix_Csparse_solve): use AS_CHM_SP()
63            instead of not checking diagU.
64    
65            * R/diagMatrix.R, R/Auxiliaries.R: tweaks to allow later
66            experiments where diagonalMatrix would extend sparse*.
67    
68    
69    2008-07-23  Martin Maechler  <maechler@stat.math.ethz.ch>
70    
71            * src/dgCMatrix.c (compressed_non_0_ij): for nnzero(), use
72            "x@p[ncol(x)]" instead of length(x@i).
73            * R/Auxiliaries.R (nnzero): ditto
74    
75            * src/chm_common.c (as_cholmod_sparse): Do not use LENGTH(islot)
76            since that fails for over-allocated i.
77    
78            * tests/validObj.R: more testing of over-allocated (i,x) slots
79    
80    2008-07-23  Martin Maechler  <maechler@stat.math.ethz.ch>
81    
82            * src/chm_common.c (as_cholmod_sparse): Add 4th argument
83            'sort_in_place' and set it to TRUE in call from
84            * src/Csparse.c (Csparse_validate): sort in place, making sure that
85            validObject() continues sort the columns if needed.
86    
87            * tests/validObj.R: now tests that more thoroughly, and
88            * man/CsparseMatrix-class.Rd: documents it.
89    
90    2008-07-22  Douglas Bates <bates@stat.wisc.edu>
91    
92            * [r2233] src/chm_common.c: sort columns more carefully in
93              as_cholmod_sparse
94            * [r2231] src/chm_common.c: check for sorted columns in
95              as_cholmod_sparse instead of assuming it
96            * [r2228] src/cs_utils.c: Use R_alloc for semi-permanent storage when
97              expanding diagonal
98    
99    
100    2008-07-21  Martin Maechler  <maechler@stat.math.ethz.ch>
101    
102            * src/cs_utils.c (Matrix_as_cs): add check_Udiag switch
103            * src/cs_utils.h (AS_CSP & AS_CSP__): two versions
104            * src/dtCMatrix.c (dtCMatrix_sparse_solve): no longer needs
105            diagU2N().
106    
107            * R/diagMatrix.R (.sparseDiagonal): new utility, used in "old"
108            .spDiagonal() and new .trDiagonal().
109    
110            * R/dtCMatrix.R (solve): make use of .trDiagonal()
111    
112    2008-07-19  Martin Maechler  <maechler@stat.math.ethz.ch>
113    
114            * R/Auxiliaries.R (dimNamesCheck): fix very long standing buglet,
115            stumbled upon by Michael H.
116    
117            * tests/validObj.R: testing the bug-fix
118    
119            * src/chm_common.h (AS_CHM_SP__, AS_CHM_TR__): the non-diagU2N
120            versions.
121    
122            * src/chm_common.c (as_cholmod_sparse, as_cholmod_triplet): new
123            boolean argument 'check_Udiag' (formerly implicitly was FALSE).
124    
125            * src/Csparse.c (Csparse_Csparse_prod, ...): etc: use the new
126              AS_CHM_SP() which includes diagU2N.
127    
128            * inst/include/Matrix_stubs.c (M_as_cholmod_sparse): similarly
129            adapt to 3 arguments.
130    
131    2008-07-17  Douglas Bates <bates@stat.wisc.edu>
132    
133            * [r2220] src/dtCMatrix.c: Correct number of columns for rhs in
134              dtCMatrix_sparse_solve
135            * [r2219] src/cs_utils.c: eye->nz should be -1 for compressed column
136              storage
137            * [r2217] R/dtCMatrix.R, src/dtCMatrix.c, src/dtCMatrix.h, src/init.c:
138              Replace dtCMatrix_solve by more general dtCMatrix_sparse_solve and add
139              new solve method
140            * [r2216] src/cs_utils.c: Utility csp_eye in case we want to fold
141              Csparse_diagU2N functionality into Matrix_as_cs
142    
143    2008-07-17  Martin Maechler  <maechler@stat.math.ethz.ch>
144    
145            * inst/doc/factor2sparse.Rnw: revive a year-old unfinished vignette
146    
147    2008-07-16  Douglas Bates <bates@stat.wisc.edu>
148    
149            * [r2212] R/sparseMatrix.R: fac2sparse gets a drop.unused.levels
150              argument with default TRUE
151            * [r2211] inst/include/Matrix.h, inst/include/Matrix_stubs.c: Export
152              Csparse_diagU2N
153            * [r2210] R/dtCMatrix.R, man/dtCMatrix-class.Rd, src/dtCMatrix.c,
154              src/dtCMatrix.h, src/init.c: Remove vestigial methods based on the
155              parent array; new solve method for signature(a = "dtCMatrix", b =
156              "sparseMatrix")
157    
158    2008-07-14  Martin Maechler  <maechler@stat.math.ethz.ch>
159    
160            * R/diagMatrix.R (.bdiag): also keep result triangular
161    
162    2008-07-13  Douglas Bates <bates@stat.wisc.edu>
163    
164            * [r2208] src/dtCMatrix.c, src/dtTMatrix.c: Revise wording in error
165              messages
166    
167    2008-07-12  Martin Maechler  <maechler@stat.math.ethz.ch>
168    
169            * R/diagMatrix.R (.bdiag): make more sophisticated, keeping
170            symmetric- or nsparse-Matrix, also fixing the bug introduced with
171            the new version (.999375-10).
172    
173            * tests/Simple.R: regression test for the bugs.
174    
175    2008-07-07  Martin Maechler  <maechler@stat.math.ethz.ch>
176    
177            * R/sparseVector.R (spV2M): fix for "isparseVector".
178            Further, fix <diag> -> <sparseVector> coercion
179            (repSpV): add rep(<sparseVector>, .) method
180    
181            * R/sparseMatrix.R ([<-): when the RHS is a "scarce"Matrix, do *not*
182            use as.vector(.).
183    
184            * R/Tsparse.R ([<-): & [CR]sparse.R: methods for value = "sparseVector"
185    
186            * R/AllClass.R: new (hidden) class union "scarceMatrix"
187            * R/AllClass.R: sparseVector: add prototype
188    
189            * src/dsCMatrix.c (chk_nm): fix "Cholesky" check, thanks to
190            Kasper Kristensen
191    
192    2008-06-28  Martin Maechler  <maechler@stat.math.ethz.ch>
193    
194            * tests/other-pkgs.R: add more interesting Matrix -> graph
195    
196    2008-06-27  Martin Maechler  <maechler@stat.math.ethz.ch>
197    
198            * R/sparseMatrix.R (Tsp2grNEL): add 'need.uniq' argument for speed
199            improvement in "[CR]sparseMatrix" -> "graphNEL" coercion.
200    
201    2008-06-25  Martin Maechler  <maechler@stat.math.ethz.ch>
202    
203            * DESCRIPTION: release 0.999375-10 to CRAN
204    
205            * R/diagMatrix.R (.bdiag): use more efficient Bates-algorithm for
206            .bdiag().
207            * man/bdiag.Rd: update, including test.
208    
209    2008-06-24  Martin Maechler  <maechler@stat.math.ethz.ch>
210    
211            * tests/Simple.R: add minimal bdiag() checks
212    
213            * R/diagMatrix.R (bdiag): fix bdiag(diag(4:5)) case;
214              factor out the Tsparse - internal computation into new .bdiag()
215    
216    2008-06-14  Martin Maechler  <maechler@stat.math.ethz.ch>
217    
218            * R/nsparseMatrix.R: specific fast all() and any() methods.
219    
220            * src/dgTMatrix.c (MAKE_gTMatrix_to_geMatrix): better error message
221            when trying to produce too large result.
222    
223            * inst/test-tools.R (checkMatrix): add 'do.matrix' with a check for
224            very large matrices.
225    
226            * R/sparseMatrix.R (printSpMatrix2): new function, used by
227            show(<sparseMatrix>).
228    
229            * R/diagMatrix.R (show): print only diagonal entries when nrow(.) >= 50.
230    
231    2008-06-13  Martin Maechler  <maechler@stat.math.ethz.ch>
232    
233            * src/Mutils.c (m_encodeInd, m_encodeInd2):
234            * R/*.R: .Call(m_encodeInd2?, ..) instead of encodeInd2?(..).
235    
236            * R/Auxiliaries.R (encodeInd2?): care against integer overflow (for
237            big matrices): -> 2nd argument 'di' instead of 'nr' !
238    
239    2008-06-09  Martin Maechler  <maechler@stat.math.ethz.ch>
240    
241            * R/dtCMatrix.R: faster dgC* -> dtC* method
242            * tests/Simple.R: (hence removed "FIXME")
243    
244            * R/Auxiliaries.R (copyClass): add 'check = .copyClass.check'
245            which can be be turned off for possible speed gains.
246    
247    2008-06-02  Martin Maechler  <maechler@stat.math.ethz.ch>
248    
249            * R/dMatrix.R, R/Tsparse.R: get rid of some disambiguation warnings
250    
251            * R/not.R: fix !<ldiMatrix>
252            implement two old "FIXME"s:  !<ldenseMatrix> & !<ndenseMatrix>
253    
254            * R/diagMatrix.R (Ops): fix one-off thinko in
255            <diagonal> o <numeric> methods
256    
257            * inst/test-tools.R: checkMatrix(): drop0(m12) unconditionally
258    
259    2008-05-30  Martin Maechler  <maechler@stat.math.ethz.ch>
260    
261            * R/diagMatrix.R (Ops): more <diagonal> o <Matrix> methods
262            * tests/Simple.R: testing the above
263    
264    2008-05-07  Martin Maechler  <maechler@stat.math.ethz.ch>
265    
266            * NAMESPACE: also import "Ops" {found via new tools:::get_S4_generics_with_methods()}
267    
268    2008-05-03  Martin Maechler  <maechler@stat.math.ethz.ch>
269    
270            * R/Matrix.R (dimnames<-): dimnames(.) <- NULL works with a message;
271            * NAMESPACE (unname): finally exported
272    
273    2008-04-28  Martin Maechler  <maechler@stat.math.ethz.ch>
274    
275            * R/Auxiliaries.R (cholMat): possibly keep packed
276    
277            * inst/test-tools.R (checkMatrix): add fixed determinant.matrix()
278            for R < 2.7.0.
279    
280            * R/Tsparse.R ([): for triangularMatrix, check if result may be
281            triangular.
282            * tests/indexing.R: regression test
283    
284    2008-04-26  Martin Maechler  <maechler@stat.math.ethz.ch>
285    
286            * inst/test-tools.R (checkMatrix): test <Ops> not only for dMatrix
287            * R/Ops.R: more methods, for lMatrix/nMatrix
288    
289    2008-04-24  Martin Maechler  <maechler@stat.math.ethz.ch>
290    
291            * R/expm.R: new file for all expm() methods; notably new ones for
292            diagonal*, triangular*, symmetric* and also simple "matrix".
293    
294    2008-04-23  Martin Maechler  <maechler@stat.math.ethz.ch>
295    
296            * R/dsyMatrix.R: setAs(.) rather than setIs(.)  "to dpoMatrix"
297    
298            * inst/test-tools.R (assert.EQ.mat): better message when not equal
299    
300            * src/dgeMatrix.c (dgeMatrix_matrix_crossprod): allow integer RHS.
301    
302            * R/AllClass.R (ddiMatrix,ldiMatrix): extend [dl]Matrix instead of
303            [dl]denseMatrix {identical slots; but more logical method dispatch}
304    
305    2008-04-23  Martin Maechler  <maechler@stat.math.ethz.ch>
306    
307            * R/sparseMatrix.R (summary): use length(<i-slot>) instead of nnzero()
308    
309            * R/diagMatrix.R (determinant): method
310    
311    2008-04-22  Martin Maechler  <maechler@stat.math.ethz.ch>
312    
313            * src/dsCMatrix.c (dsCMatrix_Cholesky): suppress CHOLMOD printing too
314    
315            * R/Rsparse.R (.viaC.to.R): uplo fix for symmetric & triangular
316    
317            * R/dsCMatrix.R (determinant): switch to use Cholesky( 'LDL' ) and
318            its diagonal
319    
320    2008-04-21  Martin Maechler  <maechler@stat.math.ethz.ch>
321    
322            * R/dMatrix.R (Summary): short-cut for prod(<sparse>)
323    
324            * R/not.R: fix !<"U"-diag-ltrMatrix> ; drop {R < 2.6.0}-branch
325    
326            * R/Auxiliaries.R (tT2gT): fix for "U"-diag-ltTMatrix
327    
328            * R/AllClass.R: ltTMatrix validity: call (more stringent) tTMatrix_validate
329    
330    2008-04-19  Martin Maechler  <maechler@stat.math.ethz.ch>
331    
332            * R/Ops.R (Ops.x.x): aux.function, not just for (dMatrix,dMatrix)
333    
334            * R/Ops.R (.do.Logic.lsparse): fix NA case
335    
336            * R/Tsparse.R (replTmat): fix r.sym case, using indTri()
337    
338            * R/Auxiliaries.R (nnzero): fix special cases, using
339            * R/Auxiliaries.R (indDiag): new utility
340            * R/Auxiliaries.R (indTri): new argument 'diag'
341    
342            * R/dMatrix.R: Summmary(<ddenseMatrix>): different branch for dsy*
343    
344    2008-04-18  Martin Maechler  <maechler@stat.math.ethz.ch>
345    
346            * R/diagMatrix.R: "Summary" methods, and more "Arith" / "Ops"
347    
348            * src/Csparse.c (Csparse_drop): preserve (uplo,diag) for
349            ".tCMatrix" triangular matrix.
350    
351            * R/Auxiliaries.R (drop0): use diagU2N(); according to helpfile,
352            'clx' can be class *or* class representation.
353            (nnzSparse): new.
354            (non0ind): new 'xtendSymm' argument; used in
355            * R/Ops.R:
356    
357            * R/pMatrix.R: more efficient determinant() method
358    
359    2008-04-17  Martin Maechler  <maechler@stat.math.ethz.ch>
360    
361            * [disactivated] R/Matrix.R (det): det() as base::det(), but with Matrix environment
362            * [disactivated] NAMESPACE: export(det)
363    
364            * R/diagMatrix.R (mkDiag): new substitute for diag()
365    
366            * R/Auxiliaries.R (nnzero): fix for "diagU2N"-case
367            (as0, as1): new utility.
368    
369            * R/Csparse.R (diag, band): need diagU2N()
370    
371            * src/dgeMatrix.c (get_norm): return NA when 'x' slot has NA/NaN.
372    
373            * R/lMatrix.R: coerce(nMatrix |-> lMatrix) fix
374    
375            * R/Ops.R (Compare): fix <nsp> o <nsp> case
376    
377            * R/nsparseMatrix.R, R/pMatrix.R: is.na() method
378    
379    2008-04-16  Martin Maechler  <maechler@stat.math.ethz.ch>
380    
381            * R/Auxiliaries.R (signPerm): new utility for
382            * R/Auxiliaries.R (detSparseLU): determinant() via sparseLU
383    
384            * src/dsCMatrix.c (dsCMatrix_LDL_D): suppress 'CHOLMOD warning';
385            since we have our own error handler (and can use tryCatch() from R).
386    
387    2008-04-15  Martin Maechler  <maechler@stat.math.ethz.ch>
388    
389            * R/dgTMatrix.R (image): ha! set col=NA if lwd is small -- very nice!
390    
391            * R/dsCMatrix.R (determinant): use tryCatch() and switch to lu()
392            when not positive definite.
393    
394            * R/Auxiliaries.R (asTri): new auxiliary
395            (non0.i): make *much* faster for Tsparse with many non-zero
396            entries; add 'uniqT = TRUE' argument to be used when sorting is undesired.
397    
398            * tests/Class+Meth.R (dotestMat): now build on checkMatrix() from
399            test-tools.R , see below
400    
401            * R/dMatrix.R: fix "Summary" method: + diagU2N()
402    
403            * NAMESPACE, R/Matrix.R: add mean() method
404    
405    2008-04-12  Martin Maechler  <maechler@stat.math.ethz.ch>
406    
407            * R/dgTMatrix.R (image): allow to *not* take abs(), and use
408            cold-hot colors; try *changed* default useAbs = FALSE
409            * man/image-methods.Rd:  nice examples
410    
411    2008-04-11  Martin Maechler  <maechler@stat.math.ethz.ch>
412    
413            * inst/test-tools.R (checkMatrix): new function for modularizing part
414            of tstMatrixClass() in tests/Class+Meth.R
415    
416            * R/dsCMatrix.R: coercion from "matrix"
417            * R/ltTMatrix.R, R/ntTMatrix.R: ditto (change it).
418    
419            * tests/Class+Meth.R (tstMatrixClass): some cleanup;
420            add test for as(matrix(,0,0), <class>)
421    
422    2008-04-09  Martin Maechler  <maechler@stat.math.ethz.ch>
423    
424            * src/dgeMatrix.c (dgeMatrix_determinant): for n == 0,
425            work as determinant(matrix(,0,0)).
426    
427            * src/dgCMatrix.c (dgCMatrix_LU): return {L,U} as dtCMatrix
428            * man/sparseLU-class.Rd: ditto
429    
430            * R/dgCMatrix.R (determinant): method building on lu()
431            * R/sparseMatrix.R, Matrix.R, ...: ditto
432    
433            * R/Auxiliaries.R (mkDet): auxiliary for determinant()
434    
435    2008-04-07  Martin Maechler  <maechler@stat.math.ethz.ch>
436    
437            * R/sparseMatrix.R (summary<sparseMatrix>): no 'x' column for
438            pattern matrices.
439    
440    2008-04-02  Martin Maechler  <maechler@stat.math.ethz.ch>
441    
442            * src/dense.c (dense_to_Csparse): all declarations *before*
443            R_CheckStack(); needed e.g. for ancient gcc 2.96.
444    
445    
446    2008-03-29  Martin Maechler  <maechler@stat.math.ethz.ch>
447    
448            * DESCRIPTION (Version): 0.999375-9 --- need to release
449            for R-devel (and R 2.7.0 alpha soon).
450    
451            * R/AllClass.R: drop "double" from "atomicVector" class union
452    
453            * R/AllGeneric.R (rcond): check for base::rcond instead of R version
454            * R/dgeMatrix.R: ditto
455    
456            * R/sparseMatrix.R (summary): count NAs
457    
458            * inst/doc/Intro2Matrix.Rnw: changes, aim for *one* introduction.
459    
460    2008-03-28  Martin Maechler  <maechler@stat.math.ethz.ch>
461    
462            * R/AllGeneric.R: rcond(., norm) instead of rcond(., type), in
463            order to become compatible to new R 2.7.0 base::rcond().
464    
465    2008-03-25  Martin Maechler  <maechler@stat.math.ethz.ch>
466    
467            * DESCRIPTION (Version,Date): 0.999375-8 --- released to CRAN
468    
469            * R/diagMatrix.R (Ops): fix newly introduce bug in <.di> o <numeric>
470    
471            * inst/test-tools.R (isValid): new utility, used much in
472            * tests/simple.R:
473    
474            * man/BunchKaufman-methods.Rd: added too
475    
476    2008-03-24  Martin Maechler  <maechler@stat.math.ethz.ch>
477    
478            * R/dsyMatrix.R: add BunchKaufman() methods.
479            * R/dspMatrix.R:
480    
481            * src/init.c: add dsyMatrix_trf
482    
483    2008-03-23  Douglas Bates <bates@stat.wisc.edu>
484    
485            * DESCRIPTION (Version): release 0.999375-7
486            * src/CHMfactor.c (CHMfactor_update): fix
487    
488    2008-03-22  Martin Maechler  <maechler@stat.math.ethz.ch>
489    
490            * src/dsCMatrix.c (dsCMatrix_LDL_D): cleanup, also using
491            internal_chm_factor().
492    
493            * R/AllGeneric.R: do *not* define a "chol" generic
494                    (but rather use the implicit one *without* making pivot
495                    part of the signature)
496            * R/*.R: drop the 'pivot' from chol's signature and make
497                    'pivot=FALSE' a default argument of method definitions.
498    
499            * .Rbuildignore: add 'wrld_1deg': I.e. do not put it into released
500            version of Matrix
501    
502    2008-03-18  Martin Maechler  <maechler@stat.math.ethz.ch>
503    
504            * R/Tsparse.R (.T.2.n): drop 0's before coercion to "nMatrix"
505    
506            * R/sparseMatrix.R (is.na): new simple method
507            * R/denseMatrix.R (is.na): ditto.
508    
509            * R/diagMatrix.R (.symDiagonal): newly exported utility.
510    
511            * R/diagMatrix.R (Ops): <diag> * <numeric> should not become dgeMatrix!
512    
513            * src/UFsparse_download.sh: -->
514            * src/CHOLMOD/: update to CHOLMOD version 1.6 (Nov.2007)
515    
516    2008-03-17  Martin Maechler  <maechler@stat.math.ethz.ch>
517    
518            * src/dsCMatrix.c (dsCMatrix_LDL_D): even faster utility with same
519            functionality; barely tested in
520            * tests/factorizing.R
521    
522            * src/Csparse.c (diag_tC): new functionality to enable faster
523            determinant(<dsCMatrix>, .) in
524            * R/dsCMatrix.R
525    
526    2008-03-17 18:53  Douglas Bates <bates@stat.wisc.edu>
527    
528            * R/CHMfactor.R, inst/include/Matrix.h, inst/include/Matrix_stubs.c,
529              src/CHMfactor.c, src/CHMfactor.h,
530              man/CHMfactor-class.Rd, src/init.c, tests/factorizing.R:
531              Log-determinant of the parent matrix from a CHMfactor object as
532              chm_factor_ldetL2; documentation and support
533    
534    2008-03-15  Martin Maechler  <maechler@stat.math.ethz.ch>
535    
536            * R/dsCMatrix.R: enable determinant(<dsCMatrix>, .) via chol(.)
537    
538    2008-03-14  Martin Maechler  <maechler@stat.math.ethz.ch>
539    
540            * R/dsCMatrix.R: setAs(., "dsCMatrix") but with a deprecation
541            warning.
542    
543    2008-03-13  Martin Maechler  <maechler@stat.math.ethz.ch>
544    
545            * DESCRIPTION (Version, Date): bug-fix release 0.999375-6
546    
547            * R/diagMatrix.R (diag2tT.u): utility to be smarter in
548              <diagonal> o <sparse_triangular>
549              setAs(., "nMatrix") added.
550    
551            * R/diagMatrix.R (Diagonal): Diagonal(4, x=3) now works too
552    
553            * R/Auxiliaries.R (.diagU2N): more careful coercion in 2 steps
554                    new argument 'checkDense = FALSE'.
555    
556    
557    2008-03-07  Martin Maechler  <maechler@stat.math.ethz.ch>
558    
559            * src/dgeMatrix.c (dgeMatrix_exp): fix the octave-origin bug in the
560            back-permutation of the matrix exponential.
561    
562            * tests/matr-exp.R: test the fix (for an example where expm() was wrong).
563    
564            * DESCRIPTION (Date,Version): ready to release 0.999375-5
565    
566            * tests/simple.R: testing diagN2U
567    
568    2008-03-06  Martin Maechler  <maechler@stat.math.ethz.ch>
569    
570            * R/Auxiliaries.R (diagN2U): interface to
571    
572            * src/Csparse.c (Csparse_diagN2U): .Call()able SEXP version of chm_diagN2U()
573    
574            * tests/matprod.R: test for triangularity preserving <dtC> %*% <dtC>
575    
576    2008-03-05  Martin Maechler  <maechler@stat.math.ethz.ch>
577    
578            * src/chm_common.c (chm_diagN2U): new utility.
579    
580            * src/Csparse.c (Csparse_Csparse_crossprod, Csparse_Csparse_prod):
581            make use of chm_diagN2U() and hence now preserve triangularity and
582            unit-triangularity.
583    
584            * DESCRIPTION (LicenseDetails): new; such that 'License:' becomes "canonical"
585    
586    2008-03-04  Martin Maechler  <maechler@stat.math.ethz.ch>
587    
588            * R/diagMatrix.R (subDiag): fix when x[..] became a vector
589    
590            * src/Tsparse.c (Tsparse_diagU2N): new utility, necessary for e.g.
591            * src/Csparse.c (Csparse_crossprod): use [CT]sparse_diagU2N() !!
592    
593            * R/Auxiliaries.R (.diagU2N): make use of new Tsparse_diagU2N
594    
595            * R/Ops.R ("-" (<sparseMatrix>)): use diagU2N()
596    
597            * src/chm_common.c (AS_CHM_FINISH): add note about problem
598            for triangular (diag = "U").
599    
600    2008-02-21  Martin Maechler  <maechler@stat.math.ethz.ch>
601    
602            * R/Auxiliaries.R (as_Csparse2): drop this, replacing by
603            * R/bind.R:  .Call(dense_to_Csparse, *)
604    
605    2008-02-20  Martin Maechler  <maechler@stat.math.ethz.ch>
606    
607            * R/Matrix.R (Matrix): no longer use coercions to specific classes
608                    (since we are discouraging them in user code).
609    
610            * tests/*.R: also replaces coercions to specific classes by
611            coercions to super classes.
612    
613            * R/denseMatrix.R (.dense2C): simplified by using forceSymmetric()
614    
615    
616    2008-02-19  Martin Maechler  <maechler@stat.math.ethz.ch>
617    
618            * man/CAex.Rd: example: coerce to symmetric*, not dsC*
619    
620            * src/dense.c (dense_band): generalized from ddense_band
621    
622            * R/ddenseMatrix.R (.trilDense,.triuDense, .bandDense):
623              now for "denseMatrix" (instead of just "ddense*"); much
624              simplified setMethod()s for these.
625    
626            * src/dense.c (dense_to_symmetric): generalized from ddense_*
627    
628    2008-02-18  Martin Maechler  <maechler@stat.math.ethz.ch>
629    
630            * R/AllGeneric.R: forceSymmetric() generic: fast no-checking
631            version of as(*, "symmetricMatric").
632    
633            * src/dense.c (ddense_to_symmetric): add 'symm_test' argument, and
634            * R/symmetricMatrix.R: set it TRUE in coercion to "symmetricMatrix"
635    
636    2008-02-16  Martin Maechler  <maechler@stat.math.ethz.ch>
637    
638            * R/Matrix.R (subset.ij): utility, as first step to faster
639               M [ <ij-matrix> ] indexing.
640    
641            * R/Matrix.R (.M.sub.i.logical): M[ <logical> ] : try better.
642    
643            * src/dense.c (ddense_symmpart, ddense_skewpart): new functions
644            for more efficient symmpart() and skewpart() methods.
645    
646            * src/Mutils.c (equal_string_vectors): utility
647    
648            * src/dense.c (ddense_to_symmetric): new function used in
649    
650            * R/symmetricMatrix.R: setAs(., "symmetricMatrix")
651    
652            * R/sparseMatrix.R, et_al (isSymmetric): add '...' to formals, in
653            order to match the generic (and evade .local(..)).
654    
655            * R/dsCMatrix.R: dgC -> dsC: use C code!
656    
657            * NAMESPACE, R/AllGeneric.R (symmpart, skewpart): new functions
658            as per TODO
659    
660            * R/Auxiliaries.R (setZero, all0Matrix): new utilities
661    
662            * R/symmetricMatrix.R: obvious symmpart(), skewpart() methods
663    
664    
665    2008-02-15  Martin Maechler  <maechler@stat.math.ethz.ch>
666    
667            * R/Ops.R (.Arith.Csparse): use diagU2N when needed in triangular
668    
669            * R/Auxiliaries.R (non0.i): take out of non0ind
670    
671            * R/ddenseMatrix.R (.trilDense, .triuDense, .bandDense):
672            make tril(), triu(), band() work for "matrix" and all "dense*"
673    
674            * R/triangularMatrix.R (.tri[lu].tr): need .diagU2N(*)
675            * tests/simple.R: test the fix above
676    
677            * R/sparseMatrix.R ([): simplification: no coerce to <general>
678                    before we use as(., <Tsparse>)[...] anyway
679    
680            * R/Rsparse.R (.viaC.to.R): mostly instead of .viaC.to.dgR()
681    
682            * R/triangularMatrix.R (isTriangular): methods for all subclasses
683            instead of "triangularMatrix" -- just to disambiguate
684    
685    2008-02-14  Martin Maechler  <maechler@stat.math.ethz.ch>
686    
687            * tests/Class+Meth.R (dotestMat): add m[FALSE, FALSE] { <-> TODO}
688            * tests/indexing.R: example that fails above
689    
690    2008-01-26  Martin Maechler  <maechler@stat.math.ethz.ch>
691    
692            * R/Matrix.R (.M.sub.i.2col): fix for logical matrix indexing
693            * R/Tsparse.R (.TM.sub.i.2col, .TM.repl.i.2col): ditto;
694                    now, M[lower.tri(M)] and  M[lower.tri(M)] <- v  work better
695    
696            * src/Tsparse.c (Tsparse_to_tCsparse): new fast utility.
697            * src/Tsparse.h, init.c: ditto
698            * R/Auxiliaries.R (isTriT): new; faster than going via Csparse
699                 both isTriC() and isTriT() now return TRUE with "kind" or FALSE.
700            * R/sparseMatrix.R (isTriangular): hence simplified
701    
702    2008-01-24  Martin Maechler  <maechler@stat.math.ethz.ch>
703    
704            * R/Ops.R (.Arith.Csparse): new utility factored out of former
705              <dgC> o <dgC>, extended for triangular and also used in  <dtC> o <dtC>.
706    
707    2008-01-23  Martin Maechler  <maechler@stat.math.ethz.ch>
708    
709            * tests/factorizing.R (checkSchur): and more tests for checking Schur()
710    
711            * inst/test-tools.R (isOrthogonal): new function; also file restructured
712    
713    2008-01-22  Martin Maechler  <maechler@stat.math.ethz.ch>
714    
715            * R/ngTMatrix.R: allow as(<numeric matrix>, "ngTMatrix") and hence
716            coercion to "nMatrix" and "pMatrix"
717    
718            * R/AllClass.R: "Schur" class;  "number" class union
719            * man/number-class.Rd:
720            * man/Schur-class.Rd:
721    
722            * R/eigen.R (.dgeSchur): utility, and return "Schur" class
723            (.simpleSchur): Schur() method for diagonal matrices
724            (.triSchur):    Schur() method for triangular matrices
725            (Schur.sym):    Schur() for symmetric matrices {building on eigen()}.
726    
727    
728    2008-01-21  Martin Maechler  <maechler@stat.math.ethz.ch>
729    
730            * src/dgCMatrix.c (dgCMatrix_QR): set @Dim slot (as per doc)
731    
732    2008-01-15  Martin Maechler  <maechler@stat.math.ethz.ch>
733    
734            * R/CHMfactor.R (solve): method for b="numeric", but also b="ANY"
735                    in order to ensure 'system = *' is not lost;
736                    formals()$system instead of cut&paste.
737            * tests/factorizing.R: test solve(<CHM..>, <numeric>)
738    
739    2008-01-11  Martin Maechler  <maechler@stat.math.ethz.ch>
740    
741            * DESCRIPTION (Date): make ready for release --> 0.999375-4
742    
743            * R/dgeMatrix.R: fix rcond() method for "dgeMatrix".
744    
745    2007-12-08  Martin Maechler  <maechler@stat.math.ethz.ch>
746    
747            * R/pMatrix.R: as(*, "matrix") now returns 0/1 *integer* matrix,
748                    and hence does as.vector(.).
749            * man/pMatrix-class.Rd: docs
750            * R/sparseMatrix.R: fix for printing "integer sparse"
751    
752            * tests/Class+Meth.R (tstMatrixClass): test M[FALSE], M[2] etc
753    
754            * R/Matrix.R and others: use "exact" function argument list for
755                    both "["   : (x, i,j, ..., drop)
756                    and  "[<-" : (x, i,j, ..., value)
757    
758            * R/denseMatrix.R: M[i] and M[i] <- v  (i vector) now work
759            * R/Tsparse.R (replTmat):    ditto
760            * R/diagMatrix.R (replDiag): ditto
761            * R/Csparse.R (replCmat):    ditto {was it worth the pain?}
762            * tests/indexing.R: testing the above
763    
764    2007-12-07  Martin Maechler  <maechler@stat.math.ethz.ch>
765    
766            * R/sparseMatrix.R (cov2cor): method for sparse matrices
767    
768            * R/diagMatrix.R ([<-): fix   D[ cbind(i,j) ] <- v
769    
770            * R/bind2.R: fix for Rsparse* and rbind2(dense,dense)
771    
772            * tests/Class+Meth.R: test cbind2, rbind2  and  diag<-
773    
774    2007-12-06  Martin Maechler  <maechler@stat.math.ethz.ch>
775    
776            * R/Matrix.R: "generic" cov2cor() method
777    
778            * R/nearPD.R: new 'only.values', 'keepDiag' arguments;
779                    speed up Q %*% D %*% t(Q)
780            * tests/dpoMatrix.R: test nearPD()
781    
782    2007-12-05  Doug Bates and Martin Maechler
783    
784            * R/sparseMatrix.R: xtabs(*, sparse=.) function; an extention of
785            stats::xtabs() allowing to create sparse matrices.
786    
787    2007-10-08  Martin Maechler  <maechler@stat.math.ethz.ch>
788    
789            * DESCRIPTION (Version): *-4 (released *-3 two days ago)
790    
791    2007-10-06  Martin Maechler  <maechler@stat.math.ethz.ch>
792    
793            * R/pMatrix.R: solve(<Matrix>, <pMatrix>)
794    
795    2007-10-05  Martin Maechler  <maechler@stat.math.ethz.ch>
796    
797            * R/LU.R: solve() method for "denseLU"
798    
799    2007-10-01  Martin Maechler  <maechler@stat.math.ethz.ch>
800    
801            * DESCRIPTION (Version): 0.999375-3 preparing for release
802    
803            * R/AllGeneric.R: simplify  if(.) .. else .. for R <= 2.5.1
804    
805            * R/Matrix.R (Matrix): .Internal(matrix(..)) different for R >= 2.7.0
806    
807    2007-09-26  Martin Maechler  <maechler@stat.math.ethz.ch>
808    
809            * R/pMatrix.R (.m.mult.pMat): fix <matrix> %*% <pMatrix>,
810              thanks to Kasper Kristensen.
811            * tests/matprod.R: regression test for that.
812    
813    2007-09-23 17:32  Douglas Bates <bates@stat.wisc.edu>
814    
815            * [r4778] R/AllGeneric.R: Check R version before defining generics for
816              primitives
817    
818    2007-09-13  Martin Maechler  <maechler@stat.math.ethz.ch>
819    
820            * R/denseMatrix.R (rcond): method
821            * R/sparseQR.R (rcond): method, use x or t(x)
822    
823    2007-09-12  Martin Maechler  <maechler@stat.math.ethz.ch>
824    
825            * R/dgeMatrix.R (rcond): method: work via qr.R() for non-square
826            matrices.
827            * R/sparseMatrix.R: Ditto for all other rcond() method definitions.
828    
829            * man/rcond.Rd: mention the more general definition, and add
830            example for non-square matrices.
831    
832            * man/chol.Rd: new file, for the S4 chol() generic and all methods.
833    
834    2007-09-11  Martin Maechler  <maechler@stat.math.ethz.ch>
835    
836            * R/sparseQR.R: add qr.R() method [to be used for rcond()]
837    
838    2007-09-01  Martin Maechler  <maechler@stat.math.ethz.ch>
839    
840            * R/Matrix.R ([<-): add (Matrix,missing,ANY,Matrix) etc
841            * tests/indexing.R: add new regression for the above cases.
842    
843    2007-08-30  Martin Maechler  <maechler@stat.math.ethz.ch>
844    
845            * src/Mutils.h (__sun): clause for alloca.h on Solaris
846    
847    2007-08-16  Martin Maechler  <maechler@stat.math.ethz.ch>
848    
849            * DESCRIPTION (Date, Version): 0.999375-2
850    
851    2007-08-15  Martin Maechler  <maechler@stat.math.ethz.ch>
852    
853            * R/HBMM.R (readMM): make work for pattern matrices as well
854    
855    2007-08-14 13:07  Douglas Bates <bates@stat.wisc.edu>
856    
857            * [r4730] src/Mutils.h: declare alloca
858            * [r4734] NAMESPACE, R/AllGeneric.R, R/Csparse.R, R/HBMM.R, R/Tsparse.R,
859              R/dgCMatrix.R, R/dgTMatrix.R, R/dsCMatrix.R, R/dsTMatrix.R,
860              man/externalFormats.Rd, src/Csparse.c, src/Csparse.h, src/DEPS.mkf,
861              src/HBMM.c, src/HBMM.h, src/Mutils.h, src/SOURCES_C.mkf, src/init.c,
862              src/mmio.c, src/mmio.h: Remove deprecated function writeHB and its
863              methods; switch writeMM to use CHOLMOD code; repair readMM
864    
865    2007-08-14  Martin Maechler  <maechler@stat.math.ethz.ch>
866    
867            * R/nearPD.R, man/nearPD.Rd (nearPD): new function built on Jens
868            Oehlschlaegel's ... result type still to be discussed!
869    
870    2007-08-10  Martin Maechler  <maechler@stat.math.ethz.ch>
871    
872            * man/image-methods.Rd: new, combining all image() methods
873    
874    2007-08-09  Martin Maechler  <maechler@stat.math.ethz.ch>
875    
876            * R/dgCMatrix.R: define qr() and lu() methods for "sparseMatrix"
877            to work via dgC...
878    
879            * R/Matrix.R (Matrix): special treatment for "table" (S3)
880    
881    2007-08-07  Martin Maechler  <maechler@stat.math.ethz.ch>
882    
883            * R/dgTMatrix.R (image): change defaults to
884                    aspect = "iso", colorkey = FALSE
885    
886    2007-08-06  Martin Maechler  <maechler@stat.math.ethz.ch>
887    
888            * src/dsyMatrix.c (dsyMatrix_matrix_mm): 'b' might be matrix;
889            must copy its *expanded* x slot before LAPACK call.
890    
891            * tests/matprod.R: test the last days' changes.
892    
893    2007-08-06 16:43  Douglas Bates <bates@stat.wisc.edu>
894    
895            * [r4712] inst/include/Matrix_stubs.c: Change R_cholmod_printf in stubs
896              as well as in sources
897            * [r4713] src/dsyMatrix.c: Duplicate the contents of the RHS before
898              Lapack call
899    
900    2007-08-03  Martin Maechler  <maechler@stat.math.ethz.ch>
901    
902            * R/Matrix.R (%*%, crossprod, tcrossprod): add method for
903                    ("Matrix", "matrix") which is needed in some cases.
904            Ditto for solve().
905    
906            * R/colSums.R (.as.dge.Fun): need ddenseMatrix methods to avoid
907            infinite recursion in dispatch for some cases.
908    
909    2007-08-02 08:48  Martin Maechler <maechler@stat.math.ethz.ch>
910    
911            * [r4693] src/chm_common.c: R_cholmod_printf() instead of Rprintf() just
912              so pointers match
913    
914    2007-08-02  Martin Maechler  <maechler@stat.math.ethz.ch>
915    
916            * DESCRIPTION (Date): set ready for release -- 0.999375-1
917    
918    2007-08-01 15:44  Douglas Bates <bates@stat.wisc.edu>
919    
920            * [r4686] inst/include/Matrix.h, inst/include/Matrix_stubs.c,
921              src/chm_common.c, src/chm_common.h: Change API for
922              numeric_as_chm_dense and N_AS_CHM_DN
923    
924    2007-08-01  Martin Maechler  <maechler@stat.math.ethz.ch>
925    
926            * src/dtrMatrix.c (dtrMatrix_matrix_mm): fix dimensionality check (!)
927            * tests/matprod.R: regr.test for it
928    
929    2007-07-20  Martin Maechler  <maechler@stat.math.ethz.ch>
930    
931            * R/dMatrix.R: fix from Brian for   Math2(., digits = "missing")
932            * tests/group-methods.R: and regression-test it
933    
934    2007-07-19 19:45  Douglas Bates <bates@stat.wisc.edu>
935    
936            * [r4642] inst/include/Matrix.h, inst/include/Matrix_stubs.c,
937              inst/include/cholmod.h, src/chm_common.c, src/init.c: Export
938              triplet_to_sparse, documentation, use typedefs
939    
940    2007-07-18  Martin Maechler  <maechler@stat.math.ethz.ch>
941    
942            * man/dpoMatrix-class.Rd: added 'corMatrix' example
943    
944            * src/dsyMatrix.[ch] (dsyMatrix_as_matrix): new 'keep_dimnames' arg
945            * src/dtrMatrix.[ch] (dtrMatrix_as_matrix): ditto
946            * src/init.c, R/dsyMatrix.R, R/dtrMatrix.R, R/lgTMatrix.R: ditto
947    
948            * R/lsparseMatrix.R: bug fix in "all" method
949            * R/Ops.R (.do.Logic.lsparse): "|" bug in borderline case
950    
951            * R/dsyMatrix.R (coerce->dsTMatrix): (i,j) slots should *not* have names
952            * R/ngTMatrix.R (coerce->ngTMatrix): ditto;
953                    + matrix |-> nMatrix coercion
954            * R/pMatrix.R: + setAs()  to dMatrix and from nMatrix
955            * man/pMatrix-class.Rd: ditto
956    
957            * R/Matrix.R (Summary): method for non-dMatrix
958    
959            * tests/Class+Meth.R (extraValid): new check about "dirty" slots
960            * tests/Class+Meth.R (tstMatrixClass): test norm(.);
961                    test all Summary methods.
962    
963    2007-07-16  Martin Maechler  <maechler@stat.math.ethz.ch>
964    
965            * R/dgeMatrix.R (norm, rcond): methods for 'matrix'
966    
967    2007-07-14  Martin Maechler  <maechler@stat.math.ethz.ch>
968    
969            * R/sparseMatrix.R (norm): simple methods for sparseMatrix
970    
971            * R/pMatrix.R (t?crossprod): methods for pMatrix
972    
973    2007-07-10  Douglas Bates  <bates@stat.wisc.edu>
974    
975            * src/dgeMatrix.c (dgeMatrix_colsums): Get the logic straight.
976    
977    2007-07-09 20:45  Douglas Bates <bates@stat.wisc.edu>
978    
979            * [r4579] src/dgeMatrix.c: Untangle horrible code in dgeMatrix_colsums
980              trying to fix a subtle bug - which has been somewhere else.
981    
982    2007-07-09 19:43  Martin Maechler <maechler@stat.math.ethz.ch>
983    
984            * [r4578] src/dgeMatrix.c: "cleaned" dgeMatrix_colsums() - but did not
985              solve the bug
986    
987    2007-07-08  Martin Maechler  <maechler@stat.math.ethz.ch>
988    
989            * src/dgCMatrix.c (compressed_to_TMatrix):
990    
991    2007-07-07  Martin Maechler  <maechler@stat.math.ethz.ch>
992    
993            * src/Csparse.c (Rsparse_validate): new, to have some validity
994            checking for RsparseMatrix
995            * src/dgCMatrix.c (xRMatrix_validate): ditto
996            * src/dtCMatrix.c (tRMatrix_validate): ditto
997    
998    2007-07-07  Douglas Bates <bates@stat.wisc.edu>
999    
1000            * [r4567] R/AllClass.R: Slots already in RsparseMatrix were redefined in
1001              lgRMatrix
1002            * [r4568] DESCRIPTION: Prepare for bug-fix release
1003            * [r4570] src/CHOLMOD/Check/cholmod_write.c: Include cholmod_matrixops.h
1004              for declaration of cholmod_symmetry
1005    
1006    2007-07-06  Martin Maechler  <maechler@stat.math.ethz.ch>
1007    
1008            * DESCRIPTION (Version): 0.999375 merged into the trunk; ready for
1009            release.
1010    
1011    2007-07-06 14:11  Douglas Bates <bates@stat.wisc.edu>
1012    
1013            * [r4559] src/iohb.c, src/iohb.h: Remove Harwell-Boeing input/output
1014              functions - no longer used
1015            * [r4560] src/HBMM.c, src/Mutils.c, src/dgTMatrix.c, src/dgeMatrix.c,
1016              src/dspMatrix.c, src/dsyMatrix.c, src/dtCMatrix.c,
1017              src/factorizations.c, src/sparseQR.c: Replace most calls to Calloc by
1018              Alloca
1019    
1020    2007-07-06 13:14  Martin Maechler <maechler@stat.math.ethz.ch>
1021    
1022            * [r4558] inst/doc/Comparisons.Rnw, src/CHMfactor.c, src/Csparse.c,
1023              src/Tsparse.c, src/chm_common.c, src/chm_common.h, src/dense.c,
1024              src/dgCMatrix.c, src/dsCMatrix.c, src/dtTMatrix.c, src/sparseQR.c,
1025              src/t_gCMatrix_colSums.c: more R_CheckStack()s
1026    
1027    2007-07-05 18:12  Douglas Bates <bates@stat.wisc.edu>
1028    
1029            * [r4550] inst/include/Matrix.h: Add the macro N_AS_CHM_DN to "alloca"
1030              the required amount of memory then call M_numeric_as_chm_dense.
1031            * [r4556] src/Mutils.h, src/dgCMatrix.c: Define and use the Alloca macro
1032              (like Calloc but calling alloca)
1033    
1034    2007-07-05  Martin Maechler  <maechler@stat.math.ethz.ch>
1035    
1036            * R/sparseMatrix.R (printSpMatrix): renamed from prSpMatrix()
1037            and extended with more sophisticated 'col.names' option.
1038            * NAMESPACE: export  printSparseMatrix()
1039            * man/printSpMatrix.Rd: document, incl. examples
1040    
1041    2007-07-04 16:21  Douglas Bates <bates@stat.wisc.edu>
1042    
1043            * [r4543] src/cs_utils.c, src/cs_utils.h, src/dgCMatrix.c,
1044              src/dtCMatrix.c, src/sparseQR.c: CSP typedef for *cs and macro
1045              AS_CSP. API change - pass the empty structure to Matrix_as_cs.
1046    
1047    2007-07-04  Martin Maechler  <maechler@stat.math.ethz.ch>
1048    
1049            * DESCRIPTION (Version): 0.99875-4
1050    
1051            * tests/Class+Meth.R (tstMatrixClass): add dimnames, and hence test
1052            some dimnames perservation.
1053    
1054            * R/dsTMatrix.R (t-method): keep dimnames
1055            * R/dtTMatrix.R:  ditto
1056    
1057            * R/sparseMatrix.R (prSpMatrix): print colnames when non-trivial
1058            and ncol(.) < 10
1059    
1060            * src/cs_utils.c: drop check_class() and use Matrix_check_class()
1061            from Mutils.h
1062    
1063            * src/lgCMatrix.c ([ln]csc_to_matrix): no longer lose dimnames,
1064            e.g. in as(<ngCMatrix>, "matrix")
1065    
1066    2007-07-01 13:27  Douglas Bates <bates@stat.wisc.edu>
1067    
1068            * [r4529] .: Create a branch for the API changes from the 0.99875
1069              series to the 0.999375 series
1070            * [r4530] DESCRIPTION, inst/include/Matrix.h,
1071              inst/include/Matrix_stubs.c, src/CHMfactor.c, src/Csparse.c,
1072              src/Mutils.h, src/Tsparse.c, src/chm_common.c, src/chm_common.h,
1073              src/dense.c, src/dgCMatrix.c, src/dsCMatrix.c, src/dtTMatrix.c,
1074              src/t_gCMatrix_colSums.c: API change - pass the empty structure to the
1075              as_cholmod_x functions
1076    
1077    2007-06-30 09:05  Martin Maechler <maechler@stat.math.ethz.ch>
1078    
1079            * [r4527] trunk/Matrix/DESCRIPTION, trunk/Matrix/NAMESPACE,
1080              trunk/Matrix/inst/doc/Comparisons.Rnw: add session- and hardware-info
1081              to Comparisons
1082    
1083    >>>>>>> .merge-right.r4561
1084    2007-06-29  Martin Maechler  <maechler@stat.math.ethz.ch>
1085    
1086            * DESCRIPTION (Version): 0.99875-3 ready to be released.
1087    
1088            * R/sparseMatrix.R (spMatrix): make spMatrix(3,4) working
1089    
1090            * R/AllGeneric.R: set "Math" (and "Math2") group generics in a way
1091            that should also work in a future version of R.
1092    
1093    2007-06-21  Martin Maechler  <maechler@stat.math.ethz.ch>
1094    
1095            * NAMESPACE, R/AllClass.R: "xsparseVector" class union.
1096    
1097            * R/sparseVector.R: more *sparseVector coercions, notably for
1098            non - double ones.
1099    
1100    2007-06-19  Martin Maechler  <maechler@stat.math.ethz.ch>
1101    
1102            * R/colSums.R: new file for all (col|row)(Sums|Means) methods,
1103              notably the new ones building on the new .Call(.)s:
1104    
1105            * src/dgCMatrix.c (DEF_gCMatrix_COLSUMS): use to define
1106            all 4 of [dlin]gCMatrix_colSums().
1107    
1108    2007-06-18 16:12  Douglas Bates <bates@stat.wisc.edu>
1109    
1110            * [r4472] src/Syms.h, src/init.c: Added Matrix_lengthSym
1111            * [r4473] src/dgCMatrix.c: Modified dgCMatrix_colSums for sparseVector
1112              result
1113    
1114    2007-06-16  Martin Maechler  <maechler@stat.math.ethz.ch>
1115    
1116            * R/kronecker.R: fix typo (could lead to inf.recursion)
1117            * test/simple.R: testing that
1118    
1119            * R/sparseMatrix.R (prSpMatrix): change to be used as print()
1120            method as well (which can have arguments, show() can't).
1121    
1122    2007-06-16 15:52  Douglas Bates <bates@stat.wisc.edu>
1123    
1124            * [r4466] R/dgCMatrix.R, src/dgCMatrix.c, src/dgCMatrix.h, src/init.c:
1125              added dgCMatrix_colSums for [col,row][Sums,Means]
1126    
1127    2007-06-15 23:15  Douglas Bates <bates@stat.wisc.edu>
1128    
1129            * [r4460] R/sparseMatrix.R, man/dgCMatrix-class.Rd, src/dgCMatrix.c,
1130              src/dgCMatrix.h, src/init.c: added lm.fit.sparse (unexported),
1131              coercion of "factor" to "dgCMatrix" and dgCMatrix_cholsol
1132            * [r4461] R/AllClass.R, man/sparseMatrix-class.Rd: draft "indicators"
1133              class
1134            * [r4463] R/sparseMatrix.R, man/dgCMatrix-class.Rd,
1135              man/sparseMatrix-class.Rd: Don't need an "indicators" class - use the
1136              row names to store the levels - duh!  Added an example.
1137    
1138    2007-06-14  Martin Maechler  <maechler@stat.math.ethz.ch>
1139    
1140            * src/Csparse.c (Csparse_validate): check for *repeated* entries
1141            thanks to example from Christian Buchta; with a test here:
1142            * tests/simple.R:
1143    
1144    2007-06-07  Martin Maechler  <maechler@stat.math.ethz.ch>
1145    
1146            * R/Auxiliaries.R (callGeneric): another fix, needed for some cases
1147            of colSums(*, sparseResult = TRUE)
1148    
1149    2007-06-06  Martin Maechler  <maechler@stat.math.ethz.ch>
1150    
1151            * R/lsparseMatrix.R, R/ldenseMatrix.R (all, any): change default to
1152            'na.rm = FALSE' as "everywhere" else in R.
1153    
1154    2007-06-05 Douglas Bates <bates@stat.wisc.edu>
1155    
1156            * [r4421] src/CSparse_install.sh: Modify for new organization of
1157              CSparse package
1158            * [r4425] src/UFsparse_download.sh: Update to version 3.0.0 of
1159              SuiteSparse
1160            * [r4426] src/Makefile: add ./UFconfig to the include path for
1161              compilation
1162            * [r4427] src/cs.[ch]: update to CSparse version 2.2.0
1163            * [r4428] inst/doc/UFsparse/* src/{AMD,CHOLMOD,COLAMD}/*
1164              src/UFconfig/UFconfig.h: Update to version 3.0.0 of SuiteSparse
1165    
1166    2007-06-05  Martin Maechler  <maechler@stat.math.ethz.ch>
1167    
1168            * R/Auxiliaries.R (emptyColnames): + argument msg.if.not.empty, used in
1169            * R/sparseMatrix.R (prSpMatrix): now gives a message about
1170            suppressed column names.
1171    
1172    2007-06-04 17:13  Douglas Bates <bates@stat.wisc.edu>
1173    
1174            * [r4418] src/Csparse.c, src/HBMM.c, src/Mutils.c, src/Mutils.h,
1175              src/Tsparse.c, src/chm_common.c, src/chm_common.h, src/dgCMatrix.c,
1176              src/dgeMatrix.c, src/dpoMatrix.c, src/dpoMatrix.h, src/dppMatrix.c,
1177              src/dppMatrix.h, src/dsCMatrix.c, src/dspMatrix.c, src/dspMatrix.h,
1178              src/dsyMatrix.c, src/dsyMatrix.h, src/dtpMatrix.c, src/dtrMatrix.c:
1179              Remove warnings after change to const char* CHAR
1180    
1181    2007-06-04 17:11  Douglas Bates <bates@stat.wisc.edu>
1182    
1183            * [r4417] inst/include/Matrix_stubs.c, inst/include/cholmod.h: Corrected
1184              type of M_cholmod_ssmult
1185    
1186    2007-06-03 14:42  Douglas Bates <bates@stat.wisc.edu>
1187    
1188            * [r4412] inst/include/Matrix_stubs.c, inst/include/cholmod.h,
1189              src/init.c: Yet another cholmod export - cholmod_ssmult
1190    
1191    2007-05-23  Martin Maechler  <maechler@stat.math.ethz.ch>
1192    
1193            * NAMESPACE: exported drop0(), since
1194            * man/drop0.Rd: I have seen several cases, I really wanted to use
1195            it, so our users may want too.
1196    
1197    2007-05-22  Martin Maechler  <maechler@stat.math.ethz.ch>
1198    
1199            * man/colSums.Rd: separately document colSums() etc, since these
1200            have the extra argument 'sparseResult'.
1201    
1202    2007-05-21  Martin Maechler  <maechler@stat.math.ethz.ch>
1203    
1204            * R/sparseMatrix.R (spMatrix): utility (T)sparse Matrix constructor;
1205            * man/spMatrix.Rd: docu., including examples
1206    
1207            * R/Auxiliaries.R (sp.colMeans): etc, using a patched callGeneric(),
1208            in order to make colMeans() etc fast *and* correct.
1209            * R/sparseVector.R (replSPvec): "[<-" functionality for
1210            sparseVectors; tested in
1211            * tests/simple.R:
1212    
1213    2007-05-19  Martin Maechler  <maechler@stat.math.ethz.ch>
1214    
1215            * R/sparseMatrix.R (print.sparseSummary): and summary() method for
1216            (very) sparse Matrices; output similar to Matlab's print().
1217    
1218    2007-05-17  Douglas Bates  <bates@stat.wisc.edu>
1219    
1220            * src/HBMM.c (Matrix_writeMatrixMarket): Write 1-based, not
1221            0-based, indices (Jose Quesada <quesada@gmail.com>).
1222    
1223    2007-05-16  Douglas Bates  <bates@stat.wisc.edu>
1224    
1225            * R/CHMfactor.R: Added solve methods for a CHMfactor object.
1226    
1227    2007-05-16  Martin Maechler  <maechler@stat.math.ethz.ch>
1228    
1229            * R/Auxiliaries.R (sparsapply): new utility, much faster than
1230            tapply1() for large sparse matrices.
1231    
1232    2007-05-15  Martin Maechler  <maechler@stat.math.ethz.ch>
1233    
1234            * R/Matrix.R (dim<-): reshape now via sparseVector.
1235    
1236            * R/sparseVector.R: methods and function for
1237            * R/AllClass.R: new "sparseVector" class and daughters.
1238            * NAMESPACE: export new classes
1239    
1240    2007-05-14  Martin Maechler  <maechler@stat.math.ethz.ch>
1241    
1242            * DESCRIPTION (Version): 0.99875-1
1243            * src/Makefile.win: also remove Lapack code from here (cf. 04-25).
1244    
1245    2007-05-11  Martin Maechler  <maechler@stat.math.ethz.ch>
1246    
1247            * R/Tsparse.R ([, Tsparse): fix last case: *duplicated*, symmetric
1248            indexing
1249            * tests/indexing.R: test set for that.
1250    
1251    2007-05-08  Martin Maechler  <maechler@stat.math.ethz.ch>
1252    
1253            * R/Tsparse.R (replTmat): fix the case of *duplicated* index
1254            entries.
1255            * tests/indexing.R(out): add regression test for it
1256    
1257    2007-04-30  Martin Maechler  <maechler@stat.math.ethz.ch>
1258    
1259            * R/(l(dense|sparse))?Matrix.R (!): use 'x', not 'e1' as argument
1260            name for "!" method definitions.
1261    
1262    2007-04-26  Martin Maechler  <maechler@stat.math.ethz.ch>
1263    
1264            * R/Tsparse.R (intI): new utility, used for "[" :
1265                    Cleanup up there, and fixes for duplicated indices - more TODO!
1266    
1267            * tests/indexing.R(out): more tests
1268    
1269    2007-04-25  Douglas Bates  <bates@stat.wisc.edu>
1270    
1271            * DESCRIPTION,src/Makefile: require R>= 2.5.0 and remove Lapack
1272            code that is now part of the R Lapack library.
1273    
1274            * src/init.c,inst/include/{Matrix_stubs.c,cholmod.h}:export
1275            cholmod_factorize_p (used in lme4 for GLMMs and NLMMs).
1276    
1277    2007-04-21  Martin Maechler  <maechler@stat.math.ethz.ch>
1278    
1279            * R/Matrix.R (image): method for all Matrices, not just sparse ones.
1280    
1281    2007-04-17  Martin Maechler  <maechler@stat.math.ethz.ch>
1282    
1283            * R/Auxiliaries.R (tapply1): unname(.) -> colSums() etc don't end
1284            up with extraneous names '0'...'<n-1>'
1285    
1286    2007-04-12  Martin Maechler  <maechler@stat.math.ethz.ch>
1287    
1288            * R/dgTMatrix.R (mat2dgT): care about NAs
1289    
1290    2007-04-11  Martin Maechler  <maechler@stat.math.ethz.ch>
1291    
1292            * R/kronecker.R: triangularity preserving methods
1293    
1294    2007-03-27  Martin Maechler  <maechler@stat.math.ethz.ch>
1295    
1296            * R/kronecker.R: new file collecting kronecker() methods in one
1297                    place.  Goal: become much faster!
1298    
1299    2007-03-23  Martin Maechler  <maechler@stat.math.ethz.ch>
1300    
1301            * src/dtCMatrix.c (dtCMatrix_solve): use the new code from Kasper
1302            Kristensen based cs_spsolve() instead of _lsolve & _usolve which
1303            can be much faster.
1304    
1305            * tests/matprod.R: add regression tests for these (upper & lower).
1306    
1307    2007-03-19  Martin Maechler  <maechler@stat.math.ethz.ch>
1308    
1309            * R/Matrix.R (diff): method for our Matrices.
1310    
1311            * R/sparseMatrix.R (isDiagonal): check dim()!
1312    
1313    2007-03-17  Martin Maechler  <maechler@stat.math.ethz.ch>
1314    
1315            * R/Matrix.R (dim<-): new method for "reshape()" built on a
1316            proposal from Tamas Papp.
1317    
1318    2007-03-16  Martin Maechler  <maechler@stat.math.ethz.ch>
1319    
1320            * R/AllGeneric.R: remove all  if(!isGeneric(.))  clauses
1321    
1322            * R/zzz.R (.onLoad, .onUnload): do *not* leave bind_activation(TRUE);
1323            rather define and export  cBind() and rBind() only.
1324            --> useRs *must* change code that used to have cbind()/rbind() !!
1325    
1326            * R/bind.R: change tests from cbind() to cBind() and similarly to rBind()
1327            * R/bind.Rout.save: ditto
1328    
1329    2007-02-16  Douglas Bates  <bates@r-project.org>
1330    
1331            * DESCRIPTION (Date, Version): 0.9975-11 with new date
1332            * src/dgCMatrix.c (R_to_CMatrix, compressed_to_TMatrix): remove
1333            const modifier on declaration of the array 'valid'
1334    
1335    2007-02-12  Douglas Bates  <bates@stat.wisc.edu>
1336    
1337            * R/CHMfactor.R: Add image method (coercion to sparseMatrix).
1338    
1339    2007-02-05  Martin Maechler  <maechler@stat.math.ethz.ch>
1340    
1341            * DESCRIPTION (Date, Version): 0.9975-10 with new date.
1342    
1343            * R/Ops.R (Arith): make sure Csparse o Csparse also works for e.g. ntCMatrix
1344            * tests/simple.R: test the above and some of these coercions:
1345    
1346            * R/nsparseMatrix.R: coercing "Csparse" to "lsparseMatrix";
1347                    be careful to avoid infinite recursion, using new coercions in
1348            * R/ngCMatrix.R and nsC... and ntC...
1349            * R/lsparseMatrix.R: ditto
1350    
1351            * R/SparseM-conv.R: more conversion, notably for triplet matrices.
1352    
1353            * src/dgCMatrix.c (R_to_C_Matrix): port Doug's fix and
1354            * R/Rsparse.R: reactivate .Call()s
1355    
1356            * tests/Class+Meth.R: a bit more on actual classes
1357    
1358    2007-02-04  Douglas Bates  <bates@stat.wisc.edu>
1359    
1360            * src/dgCMatrix.c (compressed_to_TMatrix): fix memory bug using strdup()
1361    
1362    2007-02-03  Martin Maechler  <maechler@stat.math.ethz.ch>
1363    
1364            * DESCRIPTION (Version): 0.9975-10 to upload
1365    
1366            * tests/Class+Meth.R (tstMatrixClass): require coercions to
1367            specific classes less unconditionally.
1368    
1369            * R/Auxiliaries.R: get rid of as_Tsparse() and as_Rsparse()
1370    
1371            * R/Tsparse.R (triu): etc, use as(*, "TsparseMatrix") instead of as_Tsparse()
1372    
1373            * R/Rsparse.R (.R.2.T): R-level workaround using compressed_to_TMatrix.
1374            * R/Rsparse.R (.R.2.C): R-level workaround since C-level
1375            R_to_CMatrix segfaults on one platform.
1376            Eliminate most coercion method to *specific* classes, and replace
1377            with virtual classes coercions.
1378    
1379    
1380    2007-02-01  Martin Maechler <maechler@stat.math.ethz.ch>
1381    
1382            * src/init.c: export the CHM...._validate() placeholders, since
1383            they *are* called.
1384    
1385            * tests/Class+Meth.R (classCanCoerce): and starting to test
1386            all as(<from>, <to>)
1387    
1388    2007-01-30  Martin Maechler  <maechler@stat.math.ethz.ch>
1389    
1390            * R/Tsparse.R ([): more care when subsetting triangular Tsparse
1391            * tests/indexing.R: tested now
1392            * tests/indexing.Rout.save: updated
1393    
1394            * src/Csparse.c (Csparse_to_dense): use Rkind = -1 for PATTERN to
1395            * src/chm_common.c (chm_dense_to_SEXP): return "ngeMatrix" when
1396            appropriate.
1397    
1398            * NAMESPACE: export a trivial
1399            * R/Matrix.R: drop() Matrix-method
1400    
1401            * R/AllClass.R: moved all prototypes to virtual super classes.
1402    
1403            * R/Rsparse.R: many more coercions to have less exceptions in
1404            * tests/Class+Meth.R:
1405    
1406            * R/Ops.R (Compare): tweak for case with NA
1407            * tests/simpl.R: hence another 'FIXME' eliminated
1408    
1409    2007-01-29  Martin Maechler  <maechler@stat.math.ethz.ch>
1410    
1411            * R/diagMatrix.R (solve): the obvious methods for diagonalMatrix
1412            objects.
1413    
1414            * tests/Class+Meth.R (tstMatrixClass): now testing diag(), nnzero(),
1415              and more of "!", "&", "|", all, any; coercions
1416    
1417            * R/Rsparse.R: many coercions (which enable quite a few other
1418            methods), thanks to enhancements in
1419            * src/dgCMatrix.c (R_to_CMatrix): new, and
1420            * src/dgCMatrix.c (compressed_to_TMatrix): now for (d,l,n) ,
1421            symmetric & triangular and ..RMatrix objects.
1422    
1423            * src/TMatrix_as.c (Matrix_T_as_DENSE,Matrix_T_as_GENERAL):
1424            renamed file from src/dsTMatrix.c;
1425            now dealing with symmetric and triangular Tsparse coercions, both
1426            to dense and general.
1427    
1428    2007-01-27  Martin Maechler  <maechler@stat.math.ethz.ch>
1429    
1430            * src/dsTMatrix.c: has now "l" and "n" methods besides the "d" ones.
1431    
1432            * R/Ops.R (Arith): <dgCMatrix> o <numeric> now remains sparse
1433            where sensible when the <numeric> is of length > 1.
1434    
1435    2007-01-26  Martin Maechler  <maechler@stat.math.ethz.ch>
1436    
1437            * R/Matrix.R ([<-): for M[] <- value: fix length
1438    
1439    2007-01-25  Martin Maechler  <maechler@stat.math.ethz.ch>
1440    
1441            * R/Auxiliaries.R (n2l_Matrix): new, to be used in
1442            * R/ndenseMatrix.R: new coercions n* -> l*
1443    
1444    2007-01-22  Martin Maechler  <maechler@stat.math.ethz.ch>
1445    
1446            * R/triangularMatrix.R: new file; simple triu() and tril() methods.
1447    
1448            * R/Ops.R ("Logic"): and other "Ops", many updates
1449    
1450    2007-01-18  Martin Maechler  <maechler@stat.math.ethz.ch>
1451    
1452            * src/Mutils.h (SET_DimNames): new utility
1453    
1454            * R/Auxiliaries.R (nnzero): improved and now exported via
1455    
1456            * NAMESPACE: + nnzero(); length() == prod(dim(.)) method for all "Matrix" objects
1457    
1458    2007-01-17  Martin Maechler  <maechler@stat.math.ethz.ch>
1459    
1460            * R/diagMatrix.R (!): fix typo.
1461    
1462    2007-01-16  Martin Maechler  <maechler@stat.math.ethz.ch>
1463    
1464            * R/Auxiliaries.R (as_Csparse): and quite a few others:
1465                    allow to pass class definition --> speedup
1466            * R/sparseMatrix.R: apply the above
1467    
1468            * R/Csparse.R: coercion Csparse* to dense* now preserves shape properties.
1469    
1470            * src/Mutils.h (mMatrix_as_geMatrix): new, based on
1471            * src/Mutils.c (dup_mMatrix_as_geMatrix): new; generalization of
1472            old dup_mMatrix_as_dgeMatrix), eliminating a long-standing "FIXME".
1473    
1474            * src/dense.c (dense_to_Csparse): use new mMatrix_as_geMatrix()
1475    
1476            * R/denseMatrix.R (.dense2C): based on dense_to_Csparse: name it,
1477            and use it for "sparse*" as well, since it's faster than the
1478            as_Csparse(.) way.
1479    
1480    2007-01-15  Martin Maechler  <maechler@stat.math.ethz.ch>
1481    
1482            * R/Ops.R ("Logic"): more methods, notably an  <lgC> o <lgC> one.
1483    
1484    2007-01-12  Martin Maechler  <maechler@stat.math.ethz.ch>
1485    
1486            * R/Tsparse.R (.TM.repl.i.2col): new internal function to be used
1487            as method for   M[ ij ] <- v
1488            * R/Csparse.R:: go via Tsparse for "M[ij] <- v"
1489    
1490            * R/Ops.R: "Compare" for (C|R)sparse: need pointer slot for all
1491            FALSE answer
1492    
1493            * R/Csparse.R (replCmat): fix the "all non-zero" case with reordering
1494            * tests/indexing.R: test it, and some of the above
1495    
1496    2007-01-05  Martin Maechler  <maechler@stat.math.ethz.ch>
1497    
1498            * R/Auxiliaries.R (is_duplicatedT): new utility
1499    
1500    2007-01-05  Douglas Bates  <bates@stat.wisc.edu>
1501    
1502            * src/init.c (R_init_Matrix): export cholmod_scale
1503    
1504    2006-12-30  Martin Maechler  <maechler@stat.math.ethz.ch>
1505    
1506            * R/zzz.R (tmp): for R >= 2.5.0, extend formals of our
1507            base::as.matrix to (x, ...)
1508    
1509    2006-12-28  Martin Maechler  <maechler@stat.math.ethz.ch>
1510    
1511            * R/Ops.R ("Arith" etc): move almost all "Ops" methods to new R
1512            file; start using "Logic", hence
1513    
1514            * DESCRIPTION (Depends): R >= 2.4.1 (since we want "Logic")
1515            * NAMESPACE: import and export "Logic"
1516    
1517    2006-12-27  Martin Maechler  <maechler@stat.math.ethz.ch>
1518    
1519            * src/zpotfr.f and dependencies: use LAPACK 3.1 version
1520            only needed previously to R version 2.5.0.
1521    
1522    2006-12-26  Martin Maechler  <maechler@stat.math.ethz.ch>
1523    
1524            * DESCRIPTION (Date, Version): 0.9975-8, ready for release
1525    
1526            * R/Tsparse.R (replTmat): fix subassignment of triangular
1527            * R/Csparse.R (replCmat): ditto
1528            * tests/indexing.R: more tests, incl the above fix
1529    
1530    2006-12-23  Martin Maechler  <maechler@stat.math.ethz.ch>
1531    
1532            * R/Auxiliaries.R (drop0): extend for non CSparse
1533            * R/Auxiliaries.R (diagU2N): should work for all sparseMatrix
1534    
1535            * src/Csparse.c (Csparse_to_Tsparse, Csparse_general_to_symmetric):
1536                    use uplo correctly (!); other places: use uplo_P() macro
1537    
1538            * R/Csparse.R (replCmat): call diagU2N() when needed
1539            * R/Tsparse.R (replTmat): ditto
1540    
1541            * src/dtCMatrix.c (tCMatrix_validate): new
1542            * src/dtTMatrix.c (tTMatrix_validate): new, used in
1543            * R/AllClass.R: for validity of dtC, dsC, and dtT, dsT.
1544    
1545            * R/diagMatrix.R (replDiag): to use in [<-
1546    
1547    2006-12-22  Martin Maechler  <maechler@stat.math.ethz.ch>
1548    
1549            * R/Auxiliaries.R (as_Csparse2, as_geSimpl): new functions;
1550                    also more general diagU2N().
1551    
1552    2006-12-21  Martin Maechler  <maechler@stat.math.ethz.ch>
1553    
1554            * R/bind2.R: new file for all cbind2(), rbind() methods moved here
1555            from R/<foo>Matrix.R files. Better diagonal & improved sparse methods.
1556    
1557    2006-12-20  Martin Maechler  <maechler@stat.math.ethz.ch>
1558    
1559            * tests/bind.R: a few more cases
1560            * R/Auxiliaries.R (.M.kind): also work for atomic vectors
1561    
1562            * R/denseMatrix.R (cbind2/rbind2): moved here (and generalized) from
1563            * R/ddenseMatrix.R (cbind2/rbind2)
1564            * R/Tsparse.R (replTmat): final(?!) fix for "[<-" ..
1565            * tests/indexing.R
1566            * tests/indexing.Rout.save: updated
1567    
1568    2006-12-18  Martin Maechler  <maechler@stat.math.ethz.ch>
1569    
1570            * R/Tsparse.R (replTmat): fixed a remaining "[<-" bug in
1571            * tests/indexing.R
1572    
1573    2006-12-15  Martin Maechler  <maechler@stat.math.ethz.ch>
1574    
1575            * R/sparseMatrix.R (prSpMatrix): "." alignment much improved:
1576            align with proper position of "0", i.e., right for integers.
1577            argument 'align' by default is "fancy".
1578    
1579    2006-12-14  Martin Maechler  <maechler@stat.math.ethz.ch>
1580    
1581            * R/sparseMatrix.R: delegate "Compare" to "Csparse.."
1582            * R/Csparse.R: and fix "Compare" for more cases.
1583            * tests/Class+Meth.R: test some of these (m == m, m != m)
1584    
1585    2006-12-13  Martin Maechler  <maechler@stat.math.ethz.ch>
1586    
1587            * R/lsparseMatrix.R: all() and any() methods
1588            * R/ldenseMatrix.R:      ditto
1589            * NAMESPACE, R/Matrix.R: ditto
1590    
1591            * man/all-methods.Rd: document them minimally
1592    
1593            * tests/simple.R: add a few examples for these
1594    
1595    2006-12-11  Martin Maechler  <maechler@stat.math.ethz.ch>
1596    
1597            * R/Tsparse.R ([): fix long standing typo in symmetric case
1598            * man/dsCMatrix-class.Rd: add example exhibiting the above case
1599    
1600    2006-12-10  Douglas Bates  <bates@stat.wisc.edu>
1601    
1602            * src/CHMfactor.c (CHMfactor_to_sparse): change LDL factorization
1603            to LL before converting to a sparse matrix. (The LDL form can be
1604            converted to a sparse matrix but it is implicitly a unit
1605            triangular matrix and a diagonal matrix overwritten on the diagonal.)
1606    
1607    2006-12-09  Douglas Bates  <bates@stat.wisc.edu>
1608    
1609            * src/chm_common.c (chm_factor_to_SEXP): allocate and fill the Dim slot.
1610    
1611    2006-12-08  Douglas Bates  <bates@stat.wisc.edu>
1612    
1613            * DESCRIPTION (Version): updated -> release 0.9975-7
1614            * src/{init.c,chm_common.c}, inst/include/*: export cholmod_analyze_p
1615    
1616    2006-11-30  Martin Maechler  <maechler@stat.math.ethz.ch>
1617    
1618            * R/diagMatrix.R (%*%): write a direct [diag o Csparse] method
1619    
1620    2006-11-29  Douglas Bates  <bates@stat.wisc.edu>
1621    
1622            * src/dgeMatrix.c (dgeMatrix_solve): Check error code from dgetri.
1623            * tests/dg_Matrix.R: Add Barry Rowlingson's test of a matrix that
1624            is exactly singular.
1625    
1626    2006-11-07  Martin Maechler  <maechler@stat.math.ethz.ch>
1627    
1628            * DESCRIPTION (Date): updated -> release 0.9975-6
1629    
1630    2006-11-06  Martin Maechler  <maechler@stat.math.ethz.ch>
1631    
1632            * R/Csparse.R (replCmat): symmetric indexing of symmetric matrix
1633            now returns symmetric.
1634    
1635            * R/zzz.R ("diag<-"): replace "diag<-" in base for R <= 2.4.x
1636    
1637            * R/Matrix.R (.M.sub.i.2col):  new, for  M[ cbind(i,j) ] indexing.
1638            * R/Matrix.R (.M.repl.i.2col): new, for  M[ cbind(i,j) ] <- value
1639    
1640            * R/Auxiliaries.R (.type.kind): added
1641    
1642    2006-11-04  Martin Maechler  <maechler@stat.math.ethz.ch>
1643    
1644            * src/cs.[ch]: updated to CSparse Version 2.0.3 by simply
1645            running src/CSparse_install.sh
1646    
1647            * R/denseMatrix.R: "[": keep symmetric on symmetric indexing.
1648    
1649    2006-11-03  Martin Maechler  <maechler@stat.math.ethz.ch>
1650    
1651            * src/dsCMatrix.c (dsCMatrix_Csparse_solve): new
1652            * R/dsCMatrix.R (solve): "fully-sparse" using the above.
1653    
1654            * R/AllClass.R: "pMatrix" now also inherits from "generalMatrix"
1655    
1656            * tests/Class+Meth.R (tstMatrixClass): now assure
1657            the (important in method programming) property :
1658    
1659                    ###>>  Every "Matrix" is either
1660                    ###>>  "general*", "symmetric*", "triangular*" or "diagonal*"
1661    
1662                    (where "*" stands for "Matrix")
1663    
1664            * R/Auxiliaries.R (diagU2N): now .Call()s Csparse_diagU2N for <Csparse>
1665    
1666            * R/dMatrix.R (Compare(<dMatrix>,<dMatrix>): update and
1667            * tests/validObj.R: checks for "comparison"
1668    
1669            * R/sparseMatrix.R ([): improved indexing for sparse;
1670                    trying to keep <symmetric>[ n, n] symmmetric
1671    
1672            * tests/indexing.R: indexing for logical sparse now ok
1673    
1674    
1675    2006-11-02  Martin Maechler  <maechler@stat.math.ethz.ch>
1676    
1677            * src/Tsparse.c: use xTsparse_validate() , and hence remove
1678    
1679            * src/{ltC,lsC,lgT}Matrix.[ch]: removed
1680    
1681    2006-11-02  Martin Maechler  <maechler@stat.math.ethz.ch>
1682    
1683            * R/AllClass.R (Matrix-class): check length of dimnames in validity.
1684    
1685            * tests/simple.R: validObject() checking the above.
1686    
1687            * src/dgCMatrix.c (xCMatrix_validate): new, small and simple,
1688            replacing both dgCMatrix_validate and lgCM*.
1689    
1690            * src/Csparse.c (Csparse_dense_prod, etc): do not lose dimnames;
1691            fix dimnames setting in other places.
1692            * src/chm_common.c (chm_dense_to_SEXP): now can pass dimnames
1693    
1694    2006-11-01  Martin Maechler  <maechler@stat.math.ethz.ch>
1695    
1696            * R/Csparse.R,src/Csparse.c, etc: tcrossprod(<CsparseM>,<CsparseM>)
1697    
1698            * R/sparseMatrix.R (isSymmetric): drop 'factors' slot for
1699            symmetry test, via
1700            * R/Auxiliaries.R (.as.dgC.0.factors):
1701    
1702    2006-11-01  Douglas Bates  <bates@r-project.org>
1703    
1704            * R/Csparse.R,src/Csparse.c,tests/matprod.R,
1705            man/CsparseMatrix-class.Rd: crossprod(<CsparseMatrix>,
1706            <CsparseMatrix>) added
1707    
1708    2006-10-30  Martin Maechler  <maechler@stat.math.ethz.ch>
1709    
1710            * tests/matprod.R: add a variation of Harri's example
1711    
1712            * R/dsparseMatrix.R: fix crossprod(<dsparse>, <dge>) to *not*
1713            recursive infinitely.
1714    
1715            * R/dgCMatrix.R: + solve(<sparse>, <sparse>)
1716    
1717            * tests/indexing.R: add test for the "<" bug fixed 10-27 in R/dMatrix.R
1718    
1719    2006-10-28  Martin Maechler  <maechler@stat.math.ethz.ch>
1720    
1721            * tests/Class+Meth.R (tstMatrixClass): more: use non-trivial
1722            matrix if possible; test m+m == 2*m; now test dgRMatrix.
1723            * R/dgRMatrix.R (.to.dgR): a few more coercions, in order to
1724            satisfy the above test.
1725    
1726    2006-10-27  Martin Maechler  <maechler@stat.math.ethz.ch>
1727    
1728            * R/Matrix.R (Ops):  <Matrix> o <matrix>  method added
1729    
1730            * R/dgCMatrix.R: solve(a, b="missing") based on
1731            * src/dgCMatrix.c (dgCMatrix_matrix_solve): extend to work with
1732            RHS = NULL.
1733    
1734            * R/diagMatrix.R (diagdiagprod): extend %*% etc to ldiMatrix;
1735            add more (needed) [t]crossprod() methods.
1736    
1737            * man/ddiMatrix-class.Rd: more info, notably on 'diag'
1738    
1739            * R/Auxiliaries.R (as_CspClass): cleanup
1740            (drop0): internal utility for "Csparse_drop(*, 0)"
1741            (.bail.out.2): encourage active feedback
1742    
1743    2006-10-26  Martin Maechler  <maechler@stat.math.ethz.ch>
1744    
1745            * R/dMatrix.R(Compare): new(), then slots [no validity check]
1746    
1747            * src/Csparse.c (Csparse_validate): fixed (and more efficient in
1748            non-valid or 'sorted' case).
1749    
1750            * R/dsparseMatrix.R: add "chol" method.
1751            * R/ddenseMatrix.R: ditto
1752    
1753            * R/diagMatrix.R (Ops): group methods for  <diagonal> o <sparse>
1754            * NAMESPACE (Ops)
1755            * R/diagMatrix.R (diag2T): simple utility used "higher level"
1756            coercion; deprecating direct lower level coercions.
1757    
1758            * R/*.R (seq): use seq_len() and seq_along() where possible.
1759    
1760    
1761    2006-10-23  Martin Maechler  <maechler@stat.math.ethz.ch>
1762    
1763            * DESCRIPTION (Version): 0.9975-5 ready for release
1764    
1765    2006-10-20  Douglas Bates  <bates@stat.wisc.edu>
1766    
1767            * src/init.c (R_init_Matrix): export more cholmod CCallable functions.
1768    
1769    2006-10-20  Martin Maechler  <maechler@stat.math.ethz.ch>
1770    
1771            * R/AllClass.R (corMatrix): add 'validity' check;
1772                    comment out unused "LDL" class definition
1773            * NAMESPACE: mention, but do not export "LDL" class
1774            * R/corMatrix.R: new (simple), needed for R-devel with
1775            * tests/Class+Meth.R (tstMatrixClass): 1 exception for corMatrix
1776              coerce and t() exceptions for all 5 'Mat.MatFact' classes.
1777    
1778    2006-10-19  Douglas Bates  <bates@stat.wisc.edu>
1779    
1780            * src/chm_common.h: Add R_cholmod_start to initialize cholmod to
1781            use Rprintf and R's error handling.
1782    
1783    2006-10-17  Martin Maechler  <maechler@stat.math.ethz.ch>
1784    
1785            * R/diagMatrix.R (%*%): rep(*, each = .) in Matrix %*% diagonal.
1786            * tests/matprod.R: add tests for the bug fixed.
1787    
1788    2006-10-11  Douglas Bates  <bates@stat.wisc.edu>
1789    
1790            * src/HBMM.[ch]: remove HarwellBoeing format for writing.
1791            * src/SOURCES_C.mkf (SOURCES_C): no longer compile iohb.c
1792    
1793    2006-10-06  Douglas Bates  <bates@stat.wisc.edu>
1794    
1795            * R/d[gs]CMatrix.R: deprecate the writeHB function.  Use writeMM instead.
1796    
1797    2006-10-06  Martin Maechler  <maechler@stat.math.ethz.ch>
1798    
1799            * DESCRIPTION (Version): 0.9975-3
1800    
1801            * R/diagMatrix.R (bdiag): new function constructing block diagonal
1802            (sparse) matrices.
1803            * man/bdiag.Rd: docu + examples
1804    
1805            * R/Csparse.R (replCmat): calling new Csparse_drop() now.
1806    
1807            * src/Csparse.c (Csparse_general_to_symmetric, Csparse_drop): new functions
1808            * R/lsCMatrix.R: three more coercions to lsC (thanks to the above)
1809    
1810            * R/diagMatrix.R (Diagonal): '[<-' method for diag.matrices such
1811            that result is sparse or diagonal (and not dense).
1812    
1813            * man/Subassign-methods.Rd: fix examples
1814    
1815            * R/Matrix.R (Matrix):  Matrix(0, *) or Matrix(*, sparse=TRUE)
1816            should always return a sparse (and not sometimes a diagonal) matrix.
1817    
1818    2006-10-05  Martin Maechler  <maechler@stat.math.ethz.ch>
1819    
1820            * R/Matrix.R ([<-): also for value "Matrix" or "matrix"
1821    
1822    2006-10-04  Douglas Bates  <bates@stat.wisc.edu>
1823    
1824            * DESCRIPTION (Version): 0.9975-2
1825    
1826            * inst/include/Matrix_stubs.c (M_cholmod_sparse_to_triplet): export more symbols
1827    
1828    2006-10-02  Douglas Bates  <bates@R-project.org>
1829    
1830            * tests/dg_Matrix.R: Simplify test taking into account new code.
1831    
1832    2006-09-29  Martin Maechler  <maechler@stat.math.ethz.ch>
1833    
1834            * R/Csparse.R (replCmat): improve for missing i / j in non-simple cases
1835    
1836            * R/lsTMatrix.R: new files w/ missing methods
1837            * R/nsTMatrix.R:  "  'for completeness'
1838    
1839            * tests/Class+Meth.R: a bit less 'not.ok.classes'
1840    
1841            * R/Tsparse.R (t): generalized "t" method from "dgT*" to "Tsparse*"
1842    
1843    
1844    2006-09-28  Douglas Bates  <bates@R-project.org>
1845    
1846            * src/dppMatrix.h: Ensure definition of dspMatrix_validate is
1847            included.
1848    
1849            * src/init.c, inst/include/{Matrix.h,Matrix_stubs.h,cholmod.h}:
1850            Export C-callable functions used in Zt_create in lme4.
1851    
1852    2006-09-28  Martin Maechler  <maechler@stat.math.ethz.ch>
1853    
1854            * DESCRIPTION (Version): 0.9975-1
1855    
1856            * tests/simple.R: less checks fail; using NA, found that our
1857                    kronecker() is not base-compatible with NA's.
1858    
1859            * R/dMatrix.R: "Compare" method now implemented for all cases
1860    
1861            * R/Auxiliaries.R (indTri): == which([lower/upper].tri( * )) new utility
1862    
1863            * man/dtpMatrix-class.Rd: mention length of 'x' slot
1864    
1865            * src/dtpMatrix.c (dtpMatrix_validate): fix check
1866            * src/dspMatrix.c (dspMatrix_validate): ditto
1867    
1868            * R/dtTMatrix.R (gt2tT): fix ("l" -> "n")
1869              including coercion to [nl]tTMatrix.
1870    
1871            * R/diagMatrix.R (show): print a header line as for other classes.
1872    
1873    2006-09-27  Martin Maechler  <maechler@stat.math.ethz.ch>
1874    
1875            * src/Makefile.win (SUBDIRS): fix typo
1876    
1877    2006-09-19  Martin Maechler  <maechler@stat.math.ethz.ch>
1878    
1879            * DESCRIPTION (Date): ready to release 0.9975-0 to CRAN
1880    
1881    2006-09-18  Douglas Bates  <bates@stat.wisc.edu>
1882    
1883            * R/[CT]sparse.R (crossprod and tcrossprod): Handle the cases for x
1884            symmetric and y missing in R code using %*% (cholmod_aat doesn't
1885            accept a symmetric matrix).
1886            * tests/group-methods.R: Uncomment test of crossprod applied to
1887            lsCMatrix objects.
1888    
1889    2006-09-18  Martin Maechler  <maechler@stat.math.ethz.ch>
1890    
1891            * R/AllClass.R (symmetricMatrix): add validity method (available
1892            in C for a long time). Many "n..Matrix": drop (wrong) validity arg.
1893    
1894            * src/lgCMatrix.c (lgCMatrix_validate): check 'x' slot (!)
1895    
1896            * tests/indexing.Rout.save:
1897            * tests/indexing.R: additions, mainly for 'lsparse'
1898    
1899            * R/diagMatrix.R (Diagonal) & coercion to lgTMatrix: fixes for NA
1900            case.
1901    
1902            * R/Auxiliaries.R (nz.NA): new utility now used in nnzero()
1903    
1904    2006-09-16  Martin Maechler  <maechler@stat.math.ethz.ch>
1905    
1906            * R/sparseMatrix.R (prSpMatrix): print logical NAs "visibly"
1907                    as 'N' (1-letter - Ok?)
1908    
1909            * tests/group-methods.R: add test for logical + NAs
1910    
1911            * R/dMatrix.R ("Compare"): fix to work with NA's
1912    
1913            * R/AllClass.R: "Cholesky" etc now inherit from MatrixFactorization.
1914    
1915            * src/lgCMatrix.c (ncsc_to_matrix): renamed from lcsc_to_matrix()
1916                    which is implemented.
1917    
1918    2006-09-15  Martin Maechler  <maechler@stat.math.ethz.ch>
1919    
1920            * src/chm_common.c: coerce logical <-> double instead of
1921            typecasting;  needed for "l" matrix handling in cholmod.
1922    
1923            * tests/other-pkgs.R (graph): small extension in "graph" checks.
1924    
1925            * R/sparseMatrix.R (graphNEL -> Tsparse): method for weight case.
1926            (Tsp2grNEL): other fixes needed
1927    
1928    2006-09-11  Martin Maechler  <maechler@stat.math.ethz.ch>
1929    
1930            * R/AllClass.R ("nMatrix"): and subclasses for "nonzero pattern"
1931                    Matrices, since "lMatrix", also "lsparseM" can have NA
1932            * R/ndenseMatrix.R, etc: new source files
1933            * man/nsparseMatrix-classes.Rd, etc: new help files
1934            * tests/: adaptions
1935            * src/chm_common.c (chm_dense_to_SEXP): and others:
1936                    new 'Rkind' argument: "l*" and "d*" both use CHOLMOD_REAL
1937            * src/Csparse.c, etc: ditto
1938    
1939    2006-09-11  Douglas Bates  <bates@R-project.org>
1940    
1941            * src/Mutils.[ch],init.c inst/include/*.h: Move the
1942            alloc_d**Matrix functions to the lme4 package.
1943    
1944    2006-09-09  Douglas Bates  <bates@R-project.org>
1945    
1946            * src/dsCMatrix.c (dsCMatrix_Cholesky): igoring LDL = FALSE now
1947            fixed
1948    
1949    2006-09-09  Martin Maechler  <maechler@stat.math.ethz.ch>
1950    
1951            * R/lMatrix.R: new
1952    
1953            * R/sparseMatrix.R (Tsp2grNEL): do not yet use graph::foo()
1954    
1955            * R/dgeMatrix.R: do not define tcrossprod() methods for "matrix"
1956            * man/tcrossprod.Rd: ditto
1957    
1958    2006-09-08  Douglas Bates  <bates@stat.wisc.edu>
1959    
1960            * inst/include/Matrix_stubs.c,Matrix.h: Add declarations and stubs
1961            for exported functions
1962            * src/Makefile, src/CHOLMOD/Lib/Makefile, src/Metis,CAMD,CCOLAMD:
1963            Remove partitioning algorithms for sparse matrix reordering.  The
1964            copyright on the Metis code was problematic and the methods were
1965            rarely used.
1966            * src/triplet_to_col.[ch],MMHB.[ch]: Remove triplet_to_col.  Such
1967            operations are now done entirely in CHOLMOD code.
1968    
1969    2006-09-06  Douglas Bates  <bates@R-project.org>
1970    
1971            * src/Mutils.h: Remove functions that are no longer used.
1972    
1973    2006-09-04  Douglas Bates  <bates@R-project.org>
1974    
1975            * src/dtCMatrix.c (dtCMatrix_validate): rename functions.
1976            * src/DEPS.mkf: update
1977    
1978    2006-09-02  Martin Maechler  <maechler@stat.math.ethz.ch>
1979    
1980            * created branches/Matrix-for-R-2.3.x;  on trunk: do
1981            * DESCRIPTION (Version): 0.9975-0
1982            (Depends): R (>= 2.4.0)
1983    
1984    2006-09-01  Douglas Bates  <bates@R-project.org>
1985    
1986            * R/sparseMatrix.R: Added direct method to CsparseMatrix from graphNEL
1987    
1988    2006-09-01  Martin Maechler  <maechler@stat.math.ethz.ch>
1989    
1990            * R/sparseMatrix.R: add coercion from "ANY" to "sparseMatrix"
1991            * R/denseMatrix.R:  add coercion from "ANY" to "denseMatrix"
1992    
1993            * R/Matrix.R ([): use nargs() to disambiguate M[i] and M[i,]
1994    
1995    2006-08-31  Martin Maechler  <maechler@stat.math.ethz.ch>
1996    
1997            * R/sparseMatrix.R (Arith): moved Arith group method one-level up
1998            from "dsparse" to "sparse" and now go via "Csparse" instead of "dgC"
1999            * R/dsparseMatrix.R: ditto
2000            * R/Csparse.R: ditto
2001    
2002    2006-08-31  Martin Maechler  <maechler@stat.math.ethz.ch>
2003    
2004            * R/dMatrix.R (Compare): improve availability of "<", etc
2005            * R/Auxiliaries.R (asTuniq): new; also make use of R 2.4.x print(*,max)
2006    
2007    2006-08-30  Martin Maechler  <maechler@stat.math.ethz.ch>
2008    
2009            * R/dgCMatrix.R: aargh: "Arith(<dgC>, numeric)" was wrong because
2010            of a 0-index which was used as 1-index (..hmm)
2011    
2012            * R/sparseMatrix.R (prSpMatrix): fix printing an all-0 sparse Matrix
2013    
2014            * R/Auxiliaries.R (all0, is0): for 0-testing in presence of NA's
2015            * R/Auxiliaries.R (isTriMat): use all0() for 0-testing.
2016            (.is.diagonal): ditto
2017    
2018            * R/lgTMatrix.R: as("matrix", "lgTMatrix"): warn about NA's
2019    
2020            * R/Matrix.R (Matrix): also work for NA data
2021    
2022    2006-08-28  Martin Maechler  <maechler@stat.math.ethz.ch>
2023    
2024            * R/Matrix.R (Matrix): + 'forceCheck' argument; dimnames setting
2025            in all cases.
2026    
2027    2006-08-27  Douglas Bates  <bates@R-project.org>
2028    
2029            * src/dense.[ch],init.c, R/ddenseMatrix.R, man/band.Rd
2030            (ddense_band): Added triu, tril and band for ddenseMatrix objects.
2031    
2032    2006-08-25  Martin Maechler  <maechler@stat.math.ethz.ch>
2033    
2034            * src/Mutils.c (dup_mMatrix_as_dgeMatrix): added all subclasses of
2035            subclasses of "ddenseMatrix"
2036            * src/init.c et al: outcomment dtrM*_as_dge* and dsyM*_as_dge*_
2037            * R/ddenseMatrix.R et al: setAs("ddenseMatrix", "dgeMatrix", ..)
2038            instead of half dozen specialized ones.
2039    
2040    2006-08-25  Douglas Bates  <bates@R-project.org>
2041    
2042            * R/lmer.R (qqmath method): Bug fix provided by Emmanuel Tillard
2043            <tillard@cirad.fr> - ordering standard errors to match effects.
2044    
2045    2006-08-24  Douglas Bates  <bates@R-project.org>
2046    
2047            * src/lsCMatrix.c (lsCMatrix_trans): Remove lsCMatrix_chol based
2048            on R_ldl.
2049            * R/lCholCMatrix.R,
2050            src/[dl]CholCMatrix.[ch],R_ldl.[ch],Metis_utils.[ch]: removed
2051            * src/dsCMatrix.c (dsCMatrix_to_dgTMatrix): use CHOLMOD
2052            * many files in ./R and ./src: Use more general version of
2053            dup_mMatrix_as_dgeMatrix to simplify method definitions.
2054            * src/Mutils.c (dup_mMatrix_as_dgeMatrix): Add ddiMatrix,
2055            dtpMatrix, dspMatrix and dppMatrix conversions.
2056    
2057    
2058    2006-08-23  Douglas Bates  <bates@R-project.org>
2059    
2060            * R/AllClass.R,lCholCMatrix.R,src/SOURCES_C.mkf,init.c,NAMESPACE:
2061            Remove classes lCholCMatrix and dCholCMatrix based on R_ldl code.
2062            * src/dgeMatrix.c: Ensure 'factors' slot exists in result of
2063            dgeMatrix_crossprod (may need to do this in other places).
2064            * R/AllGeneric.R,dsCMatrix.R, src/dscMatrix.[ch]: Add Cholesky
2065            generic and method for dsCMatrix.  Use CHOLMOD for chol().
2066    
2067    2006-08-22  Douglas Bates  <bates@R-project.org>
2068    
2069            * src/Mutils.c (dup_mMatrix_as_dgeMatrix): updated for general
2070            types of classed Matrices, matrices or numeric or logical vectors.
2071            * src/init.c: register dup_mMatrix_as_dgeMatrix for coercions.
2072            * src/chm_common.c,Mutils.h (as_cholmod_factor): Move check_class
2073            to Mutils.h (as an inline) and change name to Matrix_check_class;
2074            fixes in as_cholmod_factor and chm_factor_to_SEXP.
2075            * src/dsCMatrix.[ch]: Use CHOLMOD for dsCMatrix_chol and
2076            dsCMatrix_matrix_solve.  Comment out vestigial functions.
2077            * src/Csparse.c: use diag_P and uplo_P macros.
2078    
2079    2006-08-21  Douglas Bates  <bates@R-project.org>
2080    
2081            * src/lmer.c (internal_mer_RZXinv): Fix memory leak caught by
2082            valgrind.
2083            * tests/matprod.R: Add tests to verify that 'solve' and '%*%' are
2084            inverses.
2085            * src/sparseQR.c (sparseQR_validate): add new validation test, fix
2086            -Wall warnings.
2087            * src/dppMatrix.c,dtrMatrix.c,dgCMatrix.c,dgeMatrix.c,dspMatrix.c:
2088            Use dup_mMatrix_as_dgeMatrix.
2089    
2090    2006-08-20  Douglas Bates  <bates@R-project.org>
2091    
2092            * src/sparseQR.c: Fix thinko in sparseQR_resid_fitted.
2093            * tests/sparseQR.R: Added
2094            * man/sparseQR-class.Rd: Document methods for qr.* generics
2095            * R/sparseQR.R: Return correct # of coefs; fix cut-and-paste errors
2096    
2097    2006-08-19  Douglas Bates  <bates@R-project.org>
2098    
2099            * NAMESPACE, R/sparseQR.R, src/init.c,sparseQR.[ch],SOURCES_C.mkf:
2100            Added methods for sparseQR for qr.qy, qr.qty, qr.coef, qr.resid
2101            and qr.fitted.
2102            * src/Mutils.[ch]: Added dup_mMatrix_as_dgeMatrix utility
2103            * src/dgCMatrix.c: Check for ordering before storing q in dgCMatrix_QR
2104    
2105    2006-08-18  Martin Maechler  <maechler@stat.math.ethz.ch>
2106    
2107            * R/AllGeneric.R: add "qr" and "chol" generics; via 'trick' since
2108            the base version has no "..." argument.
2109    
2110            * R/sparseMatrix.R (prSpMatrix): fix the triangular unit diagonal case.
2111    
2112            * R/Matrix.R: define and
2113            * NAMESPACE: export as.numeric() and as.logical() methods.
2114                    Let's hope these do not badly slow down something...
2115            Finally export the zapsmall() method.
2116    
2117    2006-08-17  Douglas Bates  <bates@R-project.org>
2118    
2119            * src/dgCMatrix.[ch] (dgCMatrix_matrix_solve), src/init.c,
2120            R/dgCMatrix.R: solve methods for dgCMatrix and dense RHS.
2121            * src/dtCMatrix.c :Remove code that is no longer used
2122            * R/dtCMatrix.R: Use C code for diagU2N in CsparseMatrix classes
2123    
2124    2006-08-14  Douglas Bates  <bates@R-project.org>
2125    
2126            * src/Csparse.[ch],init.c (Csparse_to_logical): Added utilities
2127            Csparse_to_logical and Csparse_symmetric_to_general.
2128            * R/dgCMatrix.R,dsCMatrix.R,Csparse.R : Consolidate general
2129            coercion methods between CsparseMatrix and TsparseMatrix.
2130    
2131    2006-08-14  Douglas Bates  <bates@R-project.org>
2132    
2133            * R/dtCMatrix.R,dgCMatrix.R,Csparse.R src/init.c,dgCMatrix.[ch],
2134            Csparse.[ch],chm_common.c,dense.c : Use CHOLMOD code and methods
2135            for CsparseMatrix, TsparseMatrix, denseMatrix or matrix when
2136            possible.
2137    
2138    2006-08-12  Douglas Bates  <bates@R-project.org>
2139    
2140            * src/chm_common.[ch],Csparse.[ch],Tsparse.[ch],CHMfactor.c,dtTMatrix.c,
2141              dgTMatrix.c,dgCMatrix.c,dsCMatrix.c,dtTMatrix.c, R/dsTMatrix.R,
2142              Tsparse.R,Csparse.R,dgTMatrix.R,dsCMatrix.R,lsCMatrix.R:
2143              generalize conversions between TsparseMatrix, CsparseMatrix,
2144              denseMatrix and matrix.  Preserve triangularity property and
2145              propagate Dimnames in the easy cases.
2146    
2147    2006-08-10  Douglas Bates  <bates@R-project.org>
2148    
2149            * src/lmer.c: adjust checks in glmer_init for S4SXP
2150            * tests/validObj.R: check of all(eq) should be all(eq@x) - worked
2151            before S4SXP but for the wrong reasons.
2152    
2153    2006-08-08  Douglas Bates  <bates@R-project.org>
2154    
2155            * src/Csparse.c (Csparse_crossprod): tcrossprod result has stype = -1.
2156            Later modified to return the upper triangle only.
2157            * R/dgTMatrix.R: Remove vestigial crossprod and tcrossprod methods.
2158    
2159    2006-08-07  Douglas Bates  <bates@R-project.org>
2160    
2161            * src/Csparse.c (Csparse_crossprod): Set stype on result to avoid
2162            R-level conversion to a sparse symmetric class.
2163            * R/Tsparse.R,R/Csparse.R (crossprod and tcrossprod methods):
2164            Remove conversion to sparse symmetric classes (now done in C code).
2165    
2166    2006-08-07  Martin Maechler  <maechler@stat.math.ethz.ch>
2167    
2168            * R/dgCMatrix.R: disable old crossprod and tcrossprod methods
2169            * man/band.Rd:  adapt the \dontshow{} unit test.
2170    
2171    2006-08-07  Martin Maechler  <maechler@stat.math.ethz.ch>
2172    
2173            * DESCRIPTION (Version): 0.995-14  for CRAN
2174    
2175            * tests/other-pkgs.R: oops: library(Matrix) outside *if* !
2176    
2177            * R/sparseMatrix.R (Tsp2grNEL): fixed Tsparse -> graph coercion
2178            * tests/other-pkgs.R:  more checks, sparseMatrix -> graph
2179    
2180            * R/Auxiliaries.R (as_Tsparse, as_Rsparse): new
2181            * R/Tsparse.R (tril, triu, band): methods
2182            * R/dgRMatrix.R (tril, ...):    ditto
2183            * man/band.Rd:                  ditto
2184    
2185    2006-08-04  Martin Maechler  <maechler@stat.math.ethz.ch>
2186    
2187            * R/Matrix.R (head, tail): directly use utils:::head.matrix
2188                    to be up-to-date automatically.
2189    
2190    2006-08-03  Martin Maechler  <maechler@stat.math.ethz.ch>
2191    
2192            * DESCRIPTION (Version): 0.995-13 to be released to CRAN
2193    
2194            * DESCRIPTION (Lazydata): no, instead of 'yes' because it fails for:
2195            * data/CAex.R, inst/external/CAex_slots.rda: replacing data/CAex.rda
2196            * data/KNex.R, inst/external/KNex_slots.rda: replacing data/KNex.rda
2197            such that the S4 objects are always created by the current version
2198            of R and 'Matrix' class definitions.
2199    
2200    2006-08-01  Douglas Bates  <bates@R-project.org>
2201    
2202            * R/lmer.R (LMEoptimize method), tests/lmer.R,
2203            inst/external/test3comp.rda: Added warnings for convergence on
2204            boundary and test cases.
2205    
2206            * src/lmer.c (mer_postVar): Modified to return the variances that
2207            are marginal to the fixed effects, not conditional on them (which
2208            is what the bVar slot contents represent).
2209    
2210    2006-07-31  Douglas Bates  <bates@R-project.org>
2211    
2212            * NAMESPACE, src/lmer.c, R/lmer.R (hatTrace):  Add the hatTrace
2213            function which calls the C function mer_hat_trace2.
2214    
2215            * man/ranef.Rd: Include description of "postVar" argument and
2216            producing a caterpillar plot.
2217    
2218    2006-07-31  Martin Maechler  <maechler@stat.math.ethz.ch>
2219    
2220            * NAMESPACE:    change  "correlation" to "corMatrix"
2221            * R/AllClass.R: to avoid clash with S3 class in 'nlme'.
2222            * R/dpoMatrix.R: ditto
2223            * R/lmer.R:      ditto
2224    
2225    2006-07-28  Douglas Bates  <bates@R-project.org>
2226    
2227            * src/lmer.c (internal_mer_RZXinv): Split the calculation of the
2228            RZXinv slot's contents into a separate internal function that can
2229            be used in mer_hat_trace.
2230    
2231    2006-07-22  Martin Maechler  <maechler@stat.math.ethz.ch>
2232    
2233            * R/Matrix.R: Coercions "Matrix" -> (sparse|dense)Matrix
2234            via new smart
2235            * R/Auxiliaries.R (as_Csparse, as_dense, .M.shapse): new
2236            utility functions.
2237    
2238    
2239    2006-07-21  Martin Maechler  <maechler@stat.math.ethz.ch>
2240    
2241            * R/Csparse.R (tril, triu, band): do return *triangular* classed
2242            matrices when appropriate; band() even symmetric ones.
2243            (replCmat): extend to potentially all "CsparseMatrix"
2244            * R/Tsparse.R (replTmat): extend to all "TsparseMatrix"; hence
2245            allow subassignment for special sparse matrices.
2246    
2247            * R/Auxiliaries.R (as_geClass): factor out the  .M.kind() functionality
2248    
2249            * src/lmer.c (mer_MCMCsamp, glmer_MCMCsamp): new 'verbose'
2250            argument; in glmer_*(): print only if(verbose).
2251    
2252            speed-optimize a few places by moving REAL(.) out of loops.
2253    
2254            * src/lmer.h, src/init.h, R/lmer.R:  related to above.
2255    
2256    2006-07-20  Martin Maechler  <maechler@stat.math.ethz.ch>
2257    
2258            * R/Matrix.R("["): disable ("Matrix", i = "logical", j = "missing"),
2259                    since that wrongly triggers also for M[ logi , ]
2260    
2261            * R/denseMatrix.R: "[" methods now also work e.g. when indexing
2262            a symmetric matrix that results in a non-symmetric one.
2263            * R/Auxiliaries.R (as_geClass): new function used in "[" above.
2264    
2265            * R/dMatrix.R: make round(M) work as round(M, 0)
2266    
2267            * R/dgTMatrix.R (image): coordinate system and axis now use
2268            1-based indices, not 0-based ones.
2269    
2270            * R/Tsparse.R (.ind.prep for "["): get rid of max(<empty>) warning.
2271            * tests/indexing.R: test it.
2272    
2273            * NAMESPACE: export isSymmetric(); has been a generic in "base" for a while;
2274            * man/isSymmetric-methods.Rd: and document it.
2275    
2276            * R/SparseM-conv.R: added coercion methods for some 'SparseM' matrices.
2277            * man/SparseM-conv.Rd: docu them
2278    
2279            * tests/other-pkgs.R: renamed from tests/graph.R and add example
2280                    for 'SparseM' conversions
2281    
2282    2006-07-17  Douglas Bates  <Douglas.Bates@R-project.org>
2283    
2284            * R/Matrix.R (head): added head() and tail() methods.
2285    
2286    2006-07-17  Martin Maechler  <maechler@stat.math.ethz.ch>
2287    
2288            * DESCRIPTION (Version): 0.995-12 released to CRAN
2289    
2290    2006-07-15  Martin Maechler  <maechler@stat.math.ethz.ch>
2291    
2292            * tests/simple.R: add check for correct dsT -> dgT coercion;
2293                    add check for correct printing of symmetric sparse matrices.
2294    
2295            * R/Auxiliaries.R (non0ind): return *all* non-0 entry indices also
2296            for sparse symmetric matrices.
2297    
2298            * src/dsTMatrix.c (dsTMatrix_as_dgTMatrix): do not copy the
2299            diagonal twice.
2300    
2301    2006-07-11  Douglas Bates  <Douglas.Bates@R-project.org>
2302    
2303            * src/dsTMatrix.c (dsTMatrix_as_dgTMatrix): Fix a case of INTEGER
2304            being applied to the x slot (detected by Brian Ripley).
2305    
2306    2006-07-10  Martin Maechler  <maechler@stat.math.ethz.ch>
2307    
2308            * src/dgCMatrix.c (dgCMatrix_validate): 'p' slot must have correct length.
2309    
2310            * R/Auxiliaries.R (isTriC): fix buglet (we were 1-based!)
2311    
2312    2006-07-08  Martin Maechler  <maechler@stat.math.ethz.ch>
2313    
2314            * src/lgCMatrix.c (lgCMatrix_diag): new function
2315            * R/lgCMatrix.R (diag): for new method
2316    
2317            * R/AllClass.R (TsparseMatrix): do use Tsparse_validate
2318                 ==> construction of illegal "*gTMatrix" via new() should
2319                 now be much less easy:
2320            * tests/Class+Meth.R: assertError() for some illegal "dgT*"
2321    
2322            * R/Matrix.R (Matrix): Matrix(0, nrow,ncol) now "goes sparse"
2323                    directly.
2324            * man/Matrix.Rd: documents it.
2325    
2326  2006-07-06  Douglas Bates  <bates@R-project.org>  2006-07-06  Douglas Bates  <bates@R-project.org>
2327    
2328          * src/pedigree.c (pedigree_inbreeding): Correction in          * src/pedigree.c (pedigree_inbreeding): Correction in
# Line 9  Line 2334 
2334          objects.  Modified validity check on pedigree objects to account          objects.  Modified validity check on pedigree objects to account
2335          for nonparallel patterns of missingness of parents.          for nonparallel patterns of missingness of parents.
2336    
2337            * man/{lmer-class.Rd,mcmcsamp.Rd}: Update documentation for glmer
2338            class.
2339    
2340    2006-07-01  Martin Maechler  <maechler@stat.math.ethz.ch>
2341    
2342            * R/pMatrix.R: coercion pMatrix -> Tsparse
2343    
2344  2006-06-12  Douglas Bates  <bates@R-project.org>  2006-06-12  Douglas Bates  <bates@R-project.org>
2345    
2346            * DESCRIPTION (Version): 0.995-11 released to CRAN
2347    
2348          * R/lmer.R (mcmcsamp method): Corrected arrangments of names on          * R/lmer.R (mcmcsamp method): Corrected arrangments of names on
2349          the output from mcmcsamp.          the output from mcmcsamp.
2350    
# Line 23  Line 2357 
2357    
2358          * R/diagMatrix.R (setAs): define coercion methods to sparse matrix          * R/diagMatrix.R (setAs): define coercion methods to sparse matrix
2359          classes.          classes.
2360            * R/sparseMatrix.R etc: multiplication of diagonal and sparse
2361    
2362  2006-06-08  Martin Maechler  <maechler@stat.math.ethz.ch>  2006-06-08  Martin Maechler  <maechler@stat.math.ethz.ch>
2363    
# Line 60  Line 2395 
2395    
2396          * R/sparseMatrix.R: Matrix <-> graph methods: can no longer use          * R/sparseMatrix.R: Matrix <-> graph methods: can no longer use
2397          the C code depending on a slot structure that's no longer valid.          the C code depending on a slot structure that's no longer valid.
2398          * src/dgTMatrix.c: dito (also: src/init.c src/dgTMatrix.h)          * src/dgTMatrix.c: ditto (also: src/init.c src/dgTMatrix.h)
2399    
2400    
2401  2006-05-17  Douglas Bates  <bates@stat.wisc.edu>  2006-05-17  Douglas Bates  <bates@stat.wisc.edu>
# Line 183  Line 2518 
2518          * data/KNex.rda: replacing 'mm' and 'y' by KNex <- list(mm=mm, y=y)          * data/KNex.rda: replacing 'mm' and 'y' by KNex <- list(mm=mm, y=y)
2519          * man/KNex.Rd: and other help files          * man/KNex.Rd: and other help files
2520          * tests/*.R: several ones needed adaption          * tests/*.R: several ones needed adaption
2521          * inst/doc/Comparisons.Rnw: dito          * inst/doc/Comparisons.Rnw: ditto
2522    
2523  2006-03-11  Martin Maechler  <maechler@stat.math.ethz.ch>  2006-03-11  Martin Maechler  <maechler@stat.math.ethz.ch>
2524    
# Line 387  Line 2722 
2722  2005-08-26  Martin Maechler  <maechler@stat.math.ethz.ch>  2005-08-26  Martin Maechler  <maechler@stat.math.ethz.ch>
2723    
2724          * R/Matrix.R:  added first "[<-" methods; not yet functional          * R/Matrix.R:  added first "[<-" methods; not yet functional
2725          * R/denseMatrix.R: dito          * R/denseMatrix.R: ditto
2726          * man/Subassign-methods.Rd: new help file for these          * man/Subassign-methods.Rd: new help file for these
2727    
2728  2005-08-25  Martin Maechler  <maechler@stat.math.ethz.ch>  2005-08-25  Martin Maechler  <maechler@stat.math.ethz.ch>

Legend:
Removed from v.1312  
changed lines
  Added in v.2244

root@r-forge.r-project.org
ViewVC Help
Powered by ViewVC 1.0.0  
Thanks to:
Vienna University of Economics and Business Powered By FusionForge