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 388, Mon Dec 13 16:00:22 2004 UTC revision 2236, Wed Jul 23 16:48:14 2008 UTC
# Line 1  Line 1 
1  2004-12-13  Douglas Bates  <bates@bates1-home>  2008-07-23  Martin Maechler  <maechler@stat.math.ethz.ch>
2    
3            * src/dgCMatrix.c (compressed_non_0_ij): for nnzero(), use
4            "x@p[ncol(x)]" instead of length(x@i).
5            * R/Auxiliaries.R (nnzero): ditto
6    
7            * src/chm_common.c (as_cholmod_sparse): Do not use LENGTH(islot)
8            since that fails for over-allocated i.
9    
10            * tests/validObj.R: more testing of over-allocated (i,x) slots
11    
12    2008-07-23  Martin Maechler  <maechler@stat.math.ethz.ch>
13    
14            * src/chm_common.c (as_cholmod_sparse): Add 4th argument
15            'sort_in_place' and set it to TRUE in call from
16            * src/Csparse.c (Csparse_validate): sort in place, making sure that
17            validObject() continues sort the columns if needed.
18    
19            * tests/validObj.R: now tests that more thoroughly, and
20            * man/CsparseMatrix-class.Rd: documents it.
21    
22    2008-07-21  Martin Maechler  <maechler@stat.math.ethz.ch>
23    
24            * src/cs_utils.c (Matrix_as_cs): add check_Udiag switch
25            * src/cs_utils.h (AS_CSP & AS_CSP__): two versions
26            * src/dtCMatrix.c (dtCMatrix_sparse_solve): no longer needs
27            diagU2N().
28    
29            * R/diagMatrix.R (.sparseDiagonal): new utility, used in "old"
30            .spDiagonal() and new .trDiagonal().
31    
32            * R/dtCMatrix.R (solve): make use of .trDiagonal()
33    
34    2008-07-19  Martin Maechler  <maechler@stat.math.ethz.ch>
35    
36            * R/Auxiliaries.R (dimNamesCheck): fix very long standing buglet,
37            stumbled upon by Michael H.
38    
39            * tests/validObj.R: testing the bug-fix
40    
41            * src/chm_common.h (AS_CHM_SP__, AS_CHM_TR__): the non-diagU2N
42            versions.
43    
44            * src/chm_common.c (as_cholmod_sparse, as_cholmod_triplet): new
45            boolean argument 'check_Udiag' (formerly implicitly was FALSE).
46    
47            * src/Csparse.c (Csparse_Csparse_prod, ...): etc: use the new
48              AS_CHM_SP() which includes diagU2N.
49    
50            * inst/include/Matrix_stubs.c (M_as_cholmod_sparse): similarly
51            adapt to 3 arguments.
52    
53    2008-07-17  Douglas Bates <bates@stat.wisc.edu>
54    
55            * [r2217] R/dtCMatrix.R, src/dtCMatrix.c, src/dtCMatrix.h, src/init.c:
56              Replace dtCMatrix_solve by more general dtCMatrix_sparse_solve and add
57              new solve method
58            * [r2216] src/cs_utils.c: Utility csp_eye in case we want to fold
59              Csparse_diagU2N functionality into Matrix_as_cs
60    
61    2008-07-17  Martin Maechler  <maechler@stat.math.ethz.ch>
62    
63            * inst/doc/factor2sparse.Rnw: revive a year-old unfinished vignette
64    
65    2008-07-16  Douglas Bates <bates@stat.wisc.edu>
66    
67            * [r2212] R/sparseMatrix.R: fac2sparse gets a drop.unused.levels
68              argument with default TRUE
69            * [r2211] inst/include/Matrix.h, inst/include/Matrix_stubs.c: Export
70              Csparse_diagU2N
71            * [r2210] R/dtCMatrix.R, man/dtCMatrix-class.Rd, src/dtCMatrix.c,
72              src/dtCMatrix.h, src/init.c: Remove vestigial methods based on the
73              parent array; new solve method for signature(a = "dtCMatrix", b =
74              "sparseMatrix")
75    
76    2008-07-14  Martin Maechler  <maechler@stat.math.ethz.ch>
77    
78            * R/diagMatrix.R (.bdiag): also keep result triangular
79    
80    2008-07-13  Douglas Bates <bates@stat.wisc.edu>
81    
82            * [r2208] src/dtCMatrix.c, src/dtTMatrix.c: Revise wording in error
83              messages
84    
85    2008-07-12  Martin Maechler  <maechler@stat.math.ethz.ch>
86    
87            * R/diagMatrix.R (.bdiag): make more sophisticated, keeping
88            symmetric- or nsparse-Matrix, also fixing the bug introduced with
89            the new version (.999375-10).
90    
91            * tests/Simple.R: regression test for the bugs.
92    
93    2008-07-07  Martin Maechler  <maechler@stat.math.ethz.ch>
94    
95            * R/sparseVector.R (spV2M): fix for "isparseVector".
96            Further, fix <diag> -> <sparseVector> coercion
97            (repSpV): add rep(<sparseVector>, .) method
98    
99            * R/sparseMatrix.R ([<-): when the RHS is a "scarce"Matrix, do *not*
100            use as.vector(.).
101    
102            * R/Tsparse.R ([<-): & [CR]sparse.R: methods for value = "sparseVector"
103    
104            * R/AllClass.R: new (hidden) class union "scarceMatrix"
105            * R/AllClass.R: sparseVector: add prototype
106    
107            * src/dsCMatrix.c (chk_nm): fix "Cholesky" check, thanks to
108            Kasper Kristensen
109    
110    2008-06-28  Martin Maechler  <maechler@stat.math.ethz.ch>
111    
112            * tests/other-pkgs.R: add more interesting Matrix -> graph
113    
114    2008-06-27  Martin Maechler  <maechler@stat.math.ethz.ch>
115    
116            * R/sparseMatrix.R (Tsp2grNEL): add 'need.uniq' argument for speed
117            improvement in "[CR]sparseMatrix" -> "graphNEL" coercion.
118    
119    2008-06-25  Martin Maechler  <maechler@stat.math.ethz.ch>
120    
121            * DESCRIPTION: release 0.999375-10 to CRAN
122    
123            * R/diagMatrix.R (.bdiag): use more efficient Bates-algorithm for
124            .bdiag().
125            * man/bdiag.Rd: update, including test.
126    
127    2008-06-24  Martin Maechler  <maechler@stat.math.ethz.ch>
128    
129            * tests/Simple.R: add minimal bdiag() checks
130    
131            * R/diagMatrix.R (bdiag): fix bdiag(diag(4:5)) case;
132              factor out the Tsparse - internal computation into new .bdiag()
133    
134    2008-06-14  Martin Maechler  <maechler@stat.math.ethz.ch>
135    
136            * R/nsparseMatrix.R: specific fast all() and any() methods.
137    
138            * src/dgTMatrix.c (MAKE_gTMatrix_to_geMatrix): better error message
139            when trying to produce too large result.
140    
141            * inst/test-tools.R (checkMatrix): add 'do.matrix' with a check for
142            very large matrices.
143    
144            * R/sparseMatrix.R (printSpMatrix2): new function, used by
145            show(<sparseMatrix>).
146    
147            * R/diagMatrix.R (show): print only diagonal entries when nrow(.) >= 50.
148    
149    2008-06-13  Martin Maechler  <maechler@stat.math.ethz.ch>
150    
151            * src/Mutils.c (m_encodeInd, m_encodeInd2):
152            * R/*.R: .Call(m_encodeInd2?, ..) instead of encodeInd2?(..).
153    
154            * R/Auxiliaries.R (encodeInd2?): care against integer overflow (for
155            big matrices): -> 2nd argument 'di' instead of 'nr' !
156    
157    2008-06-09  Martin Maechler  <maechler@stat.math.ethz.ch>
158    
159            * R/dtCMatrix.R: faster dgC* -> dtC* method
160            * tests/Simple.R: (hence removed "FIXME")
161    
162            * R/Auxiliaries.R (copyClass): add 'check = .copyClass.check'
163            which can be be turned off for possible speed gains.
164    
165    2008-06-02  Martin Maechler  <maechler@stat.math.ethz.ch>
166    
167            * R/dMatrix.R, R/Tsparse.R: get rid of some disambiguation warnings
168    
169            * R/not.R: fix !<ldiMatrix>
170            implement two old "FIXME"s:  !<ldenseMatrix> & !<ndenseMatrix>
171    
172            * R/diagMatrix.R (Ops): fix one-off thinko in
173            <diagonal> o <numeric> methods
174    
175            * inst/test-tools.R: checkMatrix(): drop0(m12) unconditionally
176    
177    2008-05-30  Martin Maechler  <maechler@stat.math.ethz.ch>
178    
179            * R/diagMatrix.R (Ops): more <diagonal> o <Matrix> methods
180            * tests/Simple.R: testing the above
181    
182    2008-05-07  Martin Maechler  <maechler@stat.math.ethz.ch>
183    
184            * NAMESPACE: also import "Ops" {found via new tools:::get_S4_generics_with_methods()}
185    
186    2008-05-03  Martin Maechler  <maechler@stat.math.ethz.ch>
187    
188            * R/Matrix.R (dimnames<-): dimnames(.) <- NULL works with a message;
189            * NAMESPACE (unname): finally exported
190    
191    2008-04-28  Martin Maechler  <maechler@stat.math.ethz.ch>
192    
193            * R/Auxiliaries.R (cholMat): possibly keep packed
194    
195            * inst/test-tools.R (checkMatrix): add fixed determinant.matrix()
196            for R < 2.7.0.
197    
198            * R/Tsparse.R ([): for triangularMatrix, check if result may be
199            triangular.
200            * tests/indexing.R: regression test
201    
202    2008-04-26  Martin Maechler  <maechler@stat.math.ethz.ch>
203    
204            * inst/test-tools.R (checkMatrix): test <Ops> not only for dMatrix
205            * R/Ops.R: more methods, for lMatrix/nMatrix
206    
207    2008-04-24  Martin Maechler  <maechler@stat.math.ethz.ch>
208    
209            * R/expm.R: new file for all expm() methods; notably new ones for
210            diagonal*, triangular*, symmetric* and also simple "matrix".
211    
212    2008-04-23  Martin Maechler  <maechler@stat.math.ethz.ch>
213    
214            * R/dsyMatrix.R: setAs(.) rather than setIs(.)  "to dpoMatrix"
215    
216            * inst/test-tools.R (assert.EQ.mat): better message when not equal
217    
218            * src/dgeMatrix.c (dgeMatrix_matrix_crossprod): allow integer RHS.
219    
220            * R/AllClass.R (ddiMatrix,ldiMatrix): extend [dl]Matrix instead of
221            [dl]denseMatrix {identical slots; but more logical method dispatch}
222    
223    2008-04-23  Martin Maechler  <maechler@stat.math.ethz.ch>
224    
225            * R/sparseMatrix.R (summary): use length(<i-slot>) instead of nnzero()
226    
227            * R/diagMatrix.R (determinant): method
228    
229    2008-04-22  Martin Maechler  <maechler@stat.math.ethz.ch>
230    
231            * src/dsCMatrix.c (dsCMatrix_Cholesky): suppress CHOLMOD printing too
232    
233            * R/Rsparse.R (.viaC.to.R): uplo fix for symmetric & triangular
234    
235            * R/dsCMatrix.R (determinant): switch to use Cholesky( 'LDL' ) and
236            its diagonal
237    
238    2008-04-21  Martin Maechler  <maechler@stat.math.ethz.ch>
239    
240            * R/dMatrix.R (Summary): short-cut for prod(<sparse>)
241    
242            * R/not.R: fix !<"U"-diag-ltrMatrix> ; drop {R < 2.6.0}-branch
243    
244            * R/Auxiliaries.R (tT2gT): fix for "U"-diag-ltTMatrix
245    
246            * R/AllClass.R: ltTMatrix validity: call (more stringent) tTMatrix_validate
247    
248    2008-04-19  Martin Maechler  <maechler@stat.math.ethz.ch>
249    
250            * R/Ops.R (Ops.x.x): aux.function, not just for (dMatrix,dMatrix)
251    
252            * R/Ops.R (.do.Logic.lsparse): fix NA case
253    
254            * R/Tsparse.R (replTmat): fix r.sym case, using indTri()
255    
256            * R/Auxiliaries.R (nnzero): fix special cases, using
257            * R/Auxiliaries.R (indDiag): new utility
258            * R/Auxiliaries.R (indTri): new argument 'diag'
259    
260            * R/dMatrix.R: Summmary(<ddenseMatrix>): different branch for dsy*
261    
262    2008-04-18  Martin Maechler  <maechler@stat.math.ethz.ch>
263    
264            * R/diagMatrix.R: "Summary" methods, and more "Arith" / "Ops"
265    
266            * src/Csparse.c (Csparse_drop): preserve (uplo,diag) for
267            ".tCMatrix" triangular matrix.
268    
269            * R/Auxiliaries.R (drop0): use diagU2N(); according to helpfile,
270            'clx' can be class *or* class representation.
271            (nnzSparse): new.
272            (non0ind): new 'xtendSymm' argument; used in
273            * R/Ops.R:
274    
275            * R/pMatrix.R: more efficient determinant() method
276    
277    2008-04-17  Martin Maechler  <maechler@stat.math.ethz.ch>
278    
279            * [disactivated] R/Matrix.R (det): det() as base::det(), but with Matrix environment
280            * [disactivated] NAMESPACE: export(det)
281    
282            * R/diagMatrix.R (mkDiag): new substitute for diag()
283    
284            * R/Auxiliaries.R (nnzero): fix for "diagU2N"-case
285            (as0, as1): new utility.
286    
287            * R/Csparse.R (diag, band): need diagU2N()
288    
289            * src/dgeMatrix.c (get_norm): return NA when 'x' slot has NA/NaN.
290    
291            * R/lMatrix.R: coerce(nMatrix |-> lMatrix) fix
292    
293            * R/Ops.R (Compare): fix <nsp> o <nsp> case
294    
295            * R/nsparseMatrix.R, R/pMatrix.R: is.na() method
296    
297    2008-04-16  Martin Maechler  <maechler@stat.math.ethz.ch>
298    
299            * R/Auxiliaries.R (signPerm): new utility for
300            * R/Auxiliaries.R (detSparseLU): determinant() via sparseLU
301    
302            * src/dsCMatrix.c (dsCMatrix_LDL_D): suppress 'CHOLMOD warning';
303            since we have our own error handler (and can use tryCatch() from R).
304    
305    2008-04-15  Martin Maechler  <maechler@stat.math.ethz.ch>
306    
307            * R/dgTMatrix.R (image): ha! set col=NA if lwd is small -- very nice!
308    
309            * R/dsCMatrix.R (determinant): use tryCatch() and switch to lu()
310            when not positive definite.
311    
312            * R/Auxiliaries.R (asTri): new auxiliary
313            (non0.i): make *much* faster for Tsparse with many non-zero
314            entries; add 'uniqT = TRUE' argument to be used when sorting is undesired.
315    
316            * tests/Class+Meth.R (dotestMat): now build on checkMatrix() from
317            test-tools.R , see below
318    
319            * R/dMatrix.R: fix "Summary" method: + diagU2N()
320    
321            * NAMESPACE, R/Matrix.R: add mean() method
322    
323    2008-04-12  Martin Maechler  <maechler@stat.math.ethz.ch>
324    
325            * R/dgTMatrix.R (image): allow to *not* take abs(), and use
326            cold-hot colors; try *changed* default useAbs = FALSE
327            * man/image-methods.Rd:  nice examples
328    
329    2008-04-11  Martin Maechler  <maechler@stat.math.ethz.ch>
330    
331            * inst/test-tools.R (checkMatrix): new function for modularizing part
332            of tstMatrixClass() in tests/Class+Meth.R
333    
334            * R/dsCMatrix.R: coercion from "matrix"
335            * R/ltTMatrix.R, R/ntTMatrix.R: ditto (change it).
336    
337            * tests/Class+Meth.R (tstMatrixClass): some cleanup;
338            add test for as(matrix(,0,0), <class>)
339    
340    2008-04-09  Martin Maechler  <maechler@stat.math.ethz.ch>
341    
342            * src/dgeMatrix.c (dgeMatrix_determinant): for n == 0,
343            work as determinant(matrix(,0,0)).
344    
345            * src/dgCMatrix.c (dgCMatrix_LU): return {L,U} as dtCMatrix
346            * man/sparseLU-class.Rd: ditto
347    
348            * R/dgCMatrix.R (determinant): method building on lu()
349            * R/sparseMatrix.R, Matrix.R, ...: ditto
350    
351            * R/Auxiliaries.R (mkDet): auxiliary for determinant()
352    
353    2008-04-07  Martin Maechler  <maechler@stat.math.ethz.ch>
354    
355            * R/sparseMatrix.R (summary<sparseMatrix>): no 'x' column for
356            pattern matrices.
357    
358    2008-04-02  Martin Maechler  <maechler@stat.math.ethz.ch>
359    
360            * src/dense.c (dense_to_Csparse): all declarations *before*
361            R_CheckStack(); needed e.g. for ancient gcc 2.96.
362    
363    
364    2008-03-29  Martin Maechler  <maechler@stat.math.ethz.ch>
365    
366            * DESCRIPTION (Version): 0.999375-9 --- need to release
367            for R-devel (and R 2.7.0 alpha soon).
368    
369            * R/AllClass.R: drop "double" from "atomicVector" class union
370    
371            * R/AllGeneric.R (rcond): check for base::rcond instead of R version
372            * R/dgeMatrix.R: ditto
373    
374            * R/sparseMatrix.R (summary): count NAs
375    
376            * inst/doc/Intro2Matrix.Rnw: changes, aim for *one* introduction.
377    
378    2008-03-28  Martin Maechler  <maechler@stat.math.ethz.ch>
379    
380            * R/AllGeneric.R: rcond(., norm) instead of rcond(., type), in
381            order to become compatible to new R 2.7.0 base::rcond().
382    
383    2008-03-25  Martin Maechler  <maechler@stat.math.ethz.ch>
384    
385            * DESCRIPTION (Version,Date): 0.999375-8 --- released to CRAN
386    
387            * R/diagMatrix.R (Ops): fix newly introduce bug in <.di> o <numeric>
388    
389            * inst/test-tools.R (isValid): new utility, used much in
390            * tests/simple.R:
391    
392            * man/BunchKaufman-methods.Rd: added too
393    
394    2008-03-24  Martin Maechler  <maechler@stat.math.ethz.ch>
395    
396            * R/dsyMatrix.R: add BunchKaufman() methods.
397            * R/dspMatrix.R:
398    
399            * src/init.c: add dsyMatrix_trf
400    
401    2008-03-23  Douglas Bates <bates@stat.wisc.edu>
402    
403            * DESCRIPTION (Version): release 0.999375-7
404            * src/CHMfactor.c (CHMfactor_update): fix
405    
406    2008-03-22  Martin Maechler  <maechler@stat.math.ethz.ch>
407    
408            * src/dsCMatrix.c (dsCMatrix_LDL_D): cleanup, also using
409            internal_chm_factor().
410    
411            * R/AllGeneric.R: do *not* define a "chol" generic
412                    (but rather use the implicit one *without* making pivot
413                    part of the signature)
414            * R/*.R: drop the 'pivot' from chol's signature and make
415                    'pivot=FALSE' a default argument of method definitions.
416    
417            * .Rbuildignore: add 'wrld_1deg': I.e. do not put it into released
418            version of Matrix
419    
420    2008-03-18  Martin Maechler  <maechler@stat.math.ethz.ch>
421    
422            * R/Tsparse.R (.T.2.n): drop 0's before coercion to "nMatrix"
423    
424            * R/sparseMatrix.R (is.na): new simple method
425            * R/denseMatrix.R (is.na): ditto.
426    
427            * R/diagMatrix.R (.symDiagonal): newly exported utility.
428    
429            * R/diagMatrix.R (Ops): <diag> * <numeric> should not become dgeMatrix!
430    
431            * src/UFsparse_download.sh: -->
432            * src/CHOLMOD/: update to CHOLMOD version 1.6 (Nov.2007)
433    
434    2008-03-17  Martin Maechler  <maechler@stat.math.ethz.ch>
435    
436            * src/dsCMatrix.c (dsCMatrix_LDL_D): even faster utility with same
437            functionality; barely tested in
438            * tests/factorizing.R
439    
440            * src/Csparse.c (diag_tC): new functionality to enable faster
441            determinant(<dsCMatrix>, .) in
442            * R/dsCMatrix.R
443    
444    2008-03-17 18:53  Douglas Bates <bates@stat.wisc.edu>
445    
446            * R/CHMfactor.R, inst/include/Matrix.h, inst/include/Matrix_stubs.c,
447              src/CHMfactor.c, src/CHMfactor.h,
448              man/CHMfactor-class.Rd, src/init.c, tests/factorizing.R:
449              Log-determinant of the parent matrix from a CHMfactor object as
450              chm_factor_ldetL2; documentation and support
451    
452    2008-03-15  Martin Maechler  <maechler@stat.math.ethz.ch>
453    
454            * R/dsCMatrix.R: enable determinant(<dsCMatrix>, .) via chol(.)
455    
456    2008-03-14  Martin Maechler  <maechler@stat.math.ethz.ch>
457    
458            * R/dsCMatrix.R: setAs(., "dsCMatrix") but with a deprecation
459            warning.
460    
461    2008-03-13  Martin Maechler  <maechler@stat.math.ethz.ch>
462    
463            * DESCRIPTION (Version, Date): bug-fix release 0.999375-6
464    
465            * R/diagMatrix.R (diag2tT.u): utility to be smarter in
466              <diagonal> o <sparse_triangular>
467              setAs(., "nMatrix") added.
468    
469            * R/diagMatrix.R (Diagonal): Diagonal(4, x=3) now works too
470    
471            * R/Auxiliaries.R (.diagU2N): more careful coercion in 2 steps
472                    new argument 'checkDense = FALSE'.
473    
474    
475    2008-03-07  Martin Maechler  <maechler@stat.math.ethz.ch>
476    
477            * src/dgeMatrix.c (dgeMatrix_exp): fix the octave-origin bug in the
478            back-permutation of the matrix exponential.
479    
480            * tests/matr-exp.R: test the fix (for an example where expm() was wrong).
481    
482            * DESCRIPTION (Date,Version): ready to release 0.999375-5
483    
484            * tests/simple.R: testing diagN2U
485    
486    2008-03-06  Martin Maechler  <maechler@stat.math.ethz.ch>
487    
488            * R/Auxiliaries.R (diagN2U): interface to
489    
490            * src/Csparse.c (Csparse_diagN2U): .Call()able SEXP version of chm_diagN2U()
491    
492            * tests/matprod.R: test for triangularity preserving <dtC> %*% <dtC>
493    
494    2008-03-05  Martin Maechler  <maechler@stat.math.ethz.ch>
495    
496            * src/chm_common.c (chm_diagN2U): new utility.
497    
498            * src/Csparse.c (Csparse_Csparse_crossprod, Csparse_Csparse_prod):
499            make use of chm_diagN2U() and hence now preserve triangularity and
500            unit-triangularity.
501    
502            * DESCRIPTION (LicenseDetails): new; such that 'License:' becomes "canonical"
503    
504    2008-03-04  Martin Maechler  <maechler@stat.math.ethz.ch>
505    
506            * R/diagMatrix.R (subDiag): fix when x[..] became a vector
507    
508            * src/Tsparse.c (Tsparse_diagU2N): new utility, necessary for e.g.
509            * src/Csparse.c (Csparse_crossprod): use [CT]sparse_diagU2N() !!
510    
511            * R/Auxiliaries.R (.diagU2N): make use of new Tsparse_diagU2N
512    
513            * R/Ops.R ("-" (<sparseMatrix>)): use diagU2N()
514    
515            * src/chm_common.c (AS_CHM_FINISH): add note about problem
516            for triangular (diag = "U").
517    
518    2008-02-21  Martin Maechler  <maechler@stat.math.ethz.ch>
519    
520            * R/Auxiliaries.R (as_Csparse2): drop this, replacing by
521            * R/bind.R:  .Call(dense_to_Csparse, *)
522    
523    2008-02-20  Martin Maechler  <maechler@stat.math.ethz.ch>
524    
525            * R/Matrix.R (Matrix): no longer use coercions to specific classes
526                    (since we are discouraging them in user code).
527    
528            * tests/*.R: also replaces coercions to specific classes by
529            coercions to super classes.
530    
531            * R/denseMatrix.R (.dense2C): simplified by using forceSymmetric()
532    
533    
534    2008-02-19  Martin Maechler  <maechler@stat.math.ethz.ch>
535    
536            * man/CAex.Rd: example: coerce to symmetric*, not dsC*
537    
538            * src/dense.c (dense_band): generalized from ddense_band
539    
540            * R/ddenseMatrix.R (.trilDense,.triuDense, .bandDense):
541              now for "denseMatrix" (instead of just "ddense*"); much
542              simplified setMethod()s for these.
543    
544            * src/dense.c (dense_to_symmetric): generalized from ddense_*
545    
546    2008-02-18  Martin Maechler  <maechler@stat.math.ethz.ch>
547    
548            * R/AllGeneric.R: forceSymmetric() generic: fast no-checking
549            version of as(*, "symmetricMatric").
550    
551            * src/dense.c (ddense_to_symmetric): add 'symm_test' argument, and
552            * R/symmetricMatrix.R: set it TRUE in coercion to "symmetricMatrix"
553    
554    2008-02-16  Martin Maechler  <maechler@stat.math.ethz.ch>
555    
556            * R/Matrix.R (subset.ij): utility, as first step to faster
557               M [ <ij-matrix> ] indexing.
558    
559            * R/Matrix.R (.M.sub.i.logical): M[ <logical> ] : try better.
560    
561            * src/dense.c (ddense_symmpart, ddense_skewpart): new functions
562            for more efficient symmpart() and skewpart() methods.
563    
564            * src/Mutils.c (equal_string_vectors): utility
565    
566            * src/dense.c (ddense_to_symmetric): new function used in
567    
568            * R/symmetricMatrix.R: setAs(., "symmetricMatrix")
569    
570            * R/sparseMatrix.R, et_al (isSymmetric): add '...' to formals, in
571            order to match the generic (and evade .local(..)).
572    
573            * R/dsCMatrix.R: dgC -> dsC: use C code!
574    
575            * NAMESPACE, R/AllGeneric.R (symmpart, skewpart): new functions
576            as per TODO
577    
578            * R/Auxiliaries.R (setZero, all0Matrix): new utilities
579    
580            * R/symmetricMatrix.R: obvious symmpart(), skewpart() methods
581    
582    
583    2008-02-15  Martin Maechler  <maechler@stat.math.ethz.ch>
584    
585            * R/Ops.R (.Arith.Csparse): use diagU2N when needed in triangular
586    
587            * R/Auxiliaries.R (non0.i): take out of non0ind
588    
589            * R/ddenseMatrix.R (.trilDense, .triuDense, .bandDense):
590            make tril(), triu(), band() work for "matrix" and all "dense*"
591    
592            * R/triangularMatrix.R (.tri[lu].tr): need .diagU2N(*)
593            * tests/simple.R: test the fix above
594    
595            * R/sparseMatrix.R ([): simplification: no coerce to <general>
596                    before we use as(., <Tsparse>)[...] anyway
597    
598            * R/Rsparse.R (.viaC.to.R): mostly instead of .viaC.to.dgR()
599    
600            * R/triangularMatrix.R (isTriangular): methods for all subclasses
601            instead of "triangularMatrix" -- just to disambiguate
602    
603    2008-02-14  Martin Maechler  <maechler@stat.math.ethz.ch>
604    
605            * tests/Class+Meth.R (dotestMat): add m[FALSE, FALSE] { <-> TODO}
606            * tests/indexing.R: example that fails above
607    
608    2008-01-26  Martin Maechler  <maechler@stat.math.ethz.ch>
609    
610            * R/Matrix.R (.M.sub.i.2col): fix for logical matrix indexing
611            * R/Tsparse.R (.TM.sub.i.2col, .TM.repl.i.2col): ditto;
612                    now, M[lower.tri(M)] and  M[lower.tri(M)] <- v  work better
613    
614            * src/Tsparse.c (Tsparse_to_tCsparse): new fast utility.
615            * src/Tsparse.h, init.c: ditto
616            * R/Auxiliaries.R (isTriT): new; faster than going via Csparse
617                 both isTriC() and isTriT() now return TRUE with "kind" or FALSE.
618            * R/sparseMatrix.R (isTriangular): hence simplified
619    
620    2008-01-24  Martin Maechler  <maechler@stat.math.ethz.ch>
621    
622            * R/Ops.R (.Arith.Csparse): new utility factored out of former
623              <dgC> o <dgC>, extended for triangular and also used in  <dtC> o <dtC>.
624    
625    2008-01-23  Martin Maechler  <maechler@stat.math.ethz.ch>
626    
627            * tests/factorizing.R (checkSchur): and more tests for checking Schur()
628    
629            * inst/test-tools.R (isOrthogonal): new function; also file restructured
630    
631    2008-01-22  Martin Maechler  <maechler@stat.math.ethz.ch>
632    
633            * R/ngTMatrix.R: allow as(<numeric matrix>, "ngTMatrix") and hence
634            coercion to "nMatrix" and "pMatrix"
635    
636            * R/AllClass.R: "Schur" class;  "number" class union
637            * man/number-class.Rd:
638            * man/Schur-class.Rd:
639    
640            * R/eigen.R (.dgeSchur): utility, and return "Schur" class
641            (.simpleSchur): Schur() method for diagonal matrices
642            (.triSchur):    Schur() method for triangular matrices
643            (Schur.sym):    Schur() for symmetric matrices {building on eigen()}.
644    
645    
646    2008-01-21  Martin Maechler  <maechler@stat.math.ethz.ch>
647    
648            * src/dgCMatrix.c (dgCMatrix_QR): set @Dim slot (as per doc)
649    
650    2008-01-15  Martin Maechler  <maechler@stat.math.ethz.ch>
651    
652            * R/CHMfactor.R (solve): method for b="numeric", but also b="ANY"
653                    in order to ensure 'system = *' is not lost;
654                    formals()$system instead of cut&paste.
655            * tests/factorizing.R: test solve(<CHM..>, <numeric>)
656    
657    2008-01-11  Martin Maechler  <maechler@stat.math.ethz.ch>
658    
659            * DESCRIPTION (Date): make ready for release --> 0.999375-4
660    
661            * R/dgeMatrix.R: fix rcond() method for "dgeMatrix".
662    
663    2007-12-08  Martin Maechler  <maechler@stat.math.ethz.ch>
664    
665            * R/pMatrix.R: as(*, "matrix") now returns 0/1 *integer* matrix,
666                    and hence does as.vector(.).
667            * man/pMatrix-class.Rd: docs
668            * R/sparseMatrix.R: fix for printing "integer sparse"
669    
670            * tests/Class+Meth.R (tstMatrixClass): test M[FALSE], M[2] etc
671    
672            * R/Matrix.R and others: use "exact" function argument list for
673                    both "["   : (x, i,j, ..., drop)
674                    and  "[<-" : (x, i,j, ..., value)
675    
676            * R/denseMatrix.R: M[i] and M[i] <- v  (i vector) now work
677            * R/Tsparse.R (replTmat):    ditto
678            * R/diagMatrix.R (replDiag): ditto
679            * R/Csparse.R (replCmat):    ditto {was it worth the pain?}
680            * tests/indexing.R: testing the above
681    
682    2007-12-07  Martin Maechler  <maechler@stat.math.ethz.ch>
683    
684            * R/sparseMatrix.R (cov2cor): method for sparse matrices
685    
686            * R/diagMatrix.R ([<-): fix   D[ cbind(i,j) ] <- v
687    
688            * R/bind2.R: fix for Rsparse* and rbind2(dense,dense)
689    
690            * tests/Class+Meth.R: test cbind2, rbind2  and  diag<-
691    
692    2007-12-06  Martin Maechler  <maechler@stat.math.ethz.ch>
693    
694            * R/Matrix.R: "generic" cov2cor() method
695    
696            * R/nearPD.R: new 'only.values', 'keepDiag' arguments;
697                    speed up Q %*% D %*% t(Q)
698            * tests/dpoMatrix.R: test nearPD()
699    
700    2007-12-05  Doug Bates and Martin Maechler
701    
702            * R/sparseMatrix.R: xtabs(*, sparse=.) function; an extention of
703            stats::xtabs() allowing to create sparse matrices.
704    
705    2007-10-08  Martin Maechler  <maechler@stat.math.ethz.ch>
706    
707            * DESCRIPTION (Version): *-4 (released *-3 two days ago)
708    
709    2007-10-06  Martin Maechler  <maechler@stat.math.ethz.ch>
710    
711            * R/pMatrix.R: solve(<Matrix>, <pMatrix>)
712    
713    2007-10-05  Martin Maechler  <maechler@stat.math.ethz.ch>
714    
715            * R/LU.R: solve() method for "denseLU"
716    
717    2007-10-01  Martin Maechler  <maechler@stat.math.ethz.ch>
718    
719            * DESCRIPTION (Version): 0.999375-3 preparing for release
720    
721            * R/AllGeneric.R: simplify  if(.) .. else .. for R <= 2.5.1
722    
723            * R/Matrix.R (Matrix): .Internal(matrix(..)) different for R >= 2.7.0
724    
725    2007-09-26  Martin Maechler  <maechler@stat.math.ethz.ch>
726    
727            * R/pMatrix.R (.m.mult.pMat): fix <matrix> %*% <pMatrix>,
728              thanks to Kasper Kristensen.
729            * tests/matprod.R: regression test for that.
730    
731    2007-09-23 17:32  Douglas Bates <bates@stat.wisc.edu>
732    
733            * [r4778] R/AllGeneric.R: Check R version before defining generics for
734              primitives
735    
736    2007-09-13  Martin Maechler  <maechler@stat.math.ethz.ch>
737    
738            * R/denseMatrix.R (rcond): method
739            * R/sparseQR.R (rcond): method, use x or t(x)
740    
741    2007-09-12  Martin Maechler  <maechler@stat.math.ethz.ch>
742    
743            * R/dgeMatrix.R (rcond): method: work via qr.R() for non-square
744            matrices.
745            * R/sparseMatrix.R: Ditto for all other rcond() method definitions.
746    
747            * man/rcond.Rd: mention the more general definition, and add
748            example for non-square matrices.
749    
750            * man/chol.Rd: new file, for the S4 chol() generic and all methods.
751    
752    2007-09-11  Martin Maechler  <maechler@stat.math.ethz.ch>
753    
754            * R/sparseQR.R: add qr.R() method [to be used for rcond()]
755    
756    2007-09-01  Martin Maechler  <maechler@stat.math.ethz.ch>
757    
758            * R/Matrix.R ([<-): add (Matrix,missing,ANY,Matrix) etc
759            * tests/indexing.R: add new regression for the above cases.
760    
761    2007-08-30  Martin Maechler  <maechler@stat.math.ethz.ch>
762    
763            * src/Mutils.h (__sun): clause for alloca.h on Solaris
764    
765    2007-08-16  Martin Maechler  <maechler@stat.math.ethz.ch>
766    
767            * DESCRIPTION (Date, Version): 0.999375-2
768    
769    2007-08-15  Martin Maechler  <maechler@stat.math.ethz.ch>
770    
771            * R/HBMM.R (readMM): make work for pattern matrices as well
772    
773    2007-08-14 13:07  Douglas Bates <bates@stat.wisc.edu>
774    
775            * [r4730] src/Mutils.h: declare alloca
776            * [r4734] NAMESPACE, R/AllGeneric.R, R/Csparse.R, R/HBMM.R, R/Tsparse.R,
777              R/dgCMatrix.R, R/dgTMatrix.R, R/dsCMatrix.R, R/dsTMatrix.R,
778              man/externalFormats.Rd, src/Csparse.c, src/Csparse.h, src/DEPS.mkf,
779              src/HBMM.c, src/HBMM.h, src/Mutils.h, src/SOURCES_C.mkf, src/init.c,
780              src/mmio.c, src/mmio.h: Remove deprecated function writeHB and its
781              methods; switch writeMM to use CHOLMOD code; repair readMM
782    
783    2007-08-14  Martin Maechler  <maechler@stat.math.ethz.ch>
784    
785            * R/nearPD.R, man/nearPD.Rd (nearPD): new function built on Jens
786            Oehlschlaegel's ... result type still to be discussed!
787    
788    2007-08-10  Martin Maechler  <maechler@stat.math.ethz.ch>
789    
790            * man/image-methods.Rd: new, combining all image() methods
791    
792    2007-08-09  Martin Maechler  <maechler@stat.math.ethz.ch>
793    
794            * R/dgCMatrix.R: define qr() and lu() methods for "sparseMatrix"
795            to work via dgC...
796    
797            * R/Matrix.R (Matrix): special treatment for "table" (S3)
798    
799    2007-08-07  Martin Maechler  <maechler@stat.math.ethz.ch>
800    
801            * R/dgTMatrix.R (image): change defaults to
802                    aspect = "iso", colorkey = FALSE
803    
804    2007-08-06  Martin Maechler  <maechler@stat.math.ethz.ch>
805    
806            * src/dsyMatrix.c (dsyMatrix_matrix_mm): 'b' might be matrix;
807            must copy its *expanded* x slot before LAPACK call.
808    
809            * tests/matprod.R: test the last days' changes.
810    
811    2007-08-06 16:43  Douglas Bates <bates@stat.wisc.edu>
812    
813            * [r4712] inst/include/Matrix_stubs.c: Change R_cholmod_printf in stubs
814              as well as in sources
815            * [r4713] src/dsyMatrix.c: Duplicate the contents of the RHS before
816              Lapack call
817    
818    2007-08-03  Martin Maechler  <maechler@stat.math.ethz.ch>
819    
820            * R/Matrix.R (%*%, crossprod, tcrossprod): add method for
821                    ("Matrix", "matrix") which is needed in some cases.
822            Ditto for solve().
823    
824            * R/colSums.R (.as.dge.Fun): need ddenseMatrix methods to avoid
825            infinite recursion in dispatch for some cases.
826    
827    2007-08-02 08:48  Martin Maechler <maechler@stat.math.ethz.ch>
828    
829            * [r4693] src/chm_common.c: R_cholmod_printf() instead of Rprintf() just
830              so pointers match
831    
832    2007-08-02  Martin Maechler  <maechler@stat.math.ethz.ch>
833    
834            * DESCRIPTION (Date): set ready for release -- 0.999375-1
835    
836    2007-08-01 15:44  Douglas Bates <bates@stat.wisc.edu>
837    
838            * [r4686] inst/include/Matrix.h, inst/include/Matrix_stubs.c,
839              src/chm_common.c, src/chm_common.h: Change API for
840              numeric_as_chm_dense and N_AS_CHM_DN
841    
842    2007-08-01  Martin Maechler  <maechler@stat.math.ethz.ch>
843    
844            * src/dtrMatrix.c (dtrMatrix_matrix_mm): fix dimensionality check (!)
845            * tests/matprod.R: regr.test for it
846    
847    2007-07-20  Martin Maechler  <maechler@stat.math.ethz.ch>
848    
849            * R/dMatrix.R: fix from Brian for   Math2(., digits = "missing")
850            * tests/group-methods.R: and regression-test it
851    
852    2007-07-19 19:45  Douglas Bates <bates@stat.wisc.edu>
853    
854            * [r4642] inst/include/Matrix.h, inst/include/Matrix_stubs.c,
855              inst/include/cholmod.h, src/chm_common.c, src/init.c: Export
856              triplet_to_sparse, documentation, use typedefs
857    
858    2007-07-18  Martin Maechler  <maechler@stat.math.ethz.ch>
859    
860            * man/dpoMatrix-class.Rd: added 'corMatrix' example
861    
862            * src/dsyMatrix.[ch] (dsyMatrix_as_matrix): new 'keep_dimnames' arg
863            * src/dtrMatrix.[ch] (dtrMatrix_as_matrix): ditto
864            * src/init.c, R/dsyMatrix.R, R/dtrMatrix.R, R/lgTMatrix.R: ditto
865    
866            * R/lsparseMatrix.R: bug fix in "all" method
867            * R/Ops.R (.do.Logic.lsparse): "|" bug in borderline case
868    
869            * R/dsyMatrix.R (coerce->dsTMatrix): (i,j) slots should *not* have names
870            * R/ngTMatrix.R (coerce->ngTMatrix): ditto;
871                    + matrix |-> nMatrix coercion
872            * R/pMatrix.R: + setAs()  to dMatrix and from nMatrix
873            * man/pMatrix-class.Rd: ditto
874    
875            * R/Matrix.R (Summary): method for non-dMatrix
876    
877            * tests/Class+Meth.R (extraValid): new check about "dirty" slots
878            * tests/Class+Meth.R (tstMatrixClass): test norm(.);
879                    test all Summary methods.
880    
881    2007-07-16  Martin Maechler  <maechler@stat.math.ethz.ch>
882    
883            * R/dgeMatrix.R (norm, rcond): methods for 'matrix'
884    
885    2007-07-14  Martin Maechler  <maechler@stat.math.ethz.ch>
886    
887            * R/sparseMatrix.R (norm): simple methods for sparseMatrix
888    
889            * R/pMatrix.R (t?crossprod): methods for pMatrix
890    
891    2007-07-10  Douglas Bates  <bates@stat.wisc.edu>
892    
893            * src/dgeMatrix.c (dgeMatrix_colsums): Get the logic straight.
894    
895    2007-07-09 20:45  Douglas Bates <bates@stat.wisc.edu>
896    
897            * [r4579] src/dgeMatrix.c: Untangle horrible code in dgeMatrix_colsums
898              trying to fix a subtle bug - which has been somewhere else.
899    
900    2007-07-09 19:43  Martin Maechler <maechler@stat.math.ethz.ch>
901    
902            * [r4578] src/dgeMatrix.c: "cleaned" dgeMatrix_colsums() - but did not
903              solve the bug
904    
905    2007-07-08  Martin Maechler  <maechler@stat.math.ethz.ch>
906    
907            * src/dgCMatrix.c (compressed_to_TMatrix):
908    
909    2007-07-07  Martin Maechler  <maechler@stat.math.ethz.ch>
910    
911            * src/Csparse.c (Rsparse_validate): new, to have some validity
912            checking for RsparseMatrix
913            * src/dgCMatrix.c (xRMatrix_validate): ditto
914            * src/dtCMatrix.c (tRMatrix_validate): ditto
915    
916    2007-07-07  Douglas Bates <bates@stat.wisc.edu>
917    
918            * [r4567] R/AllClass.R: Slots already in RsparseMatrix were redefined in
919              lgRMatrix
920            * [r4568] DESCRIPTION: Prepare for bug-fix release
921            * [r4570] src/CHOLMOD/Check/cholmod_write.c: Include cholmod_matrixops.h
922              for declaration of cholmod_symmetry
923    
924    2007-07-06  Martin Maechler  <maechler@stat.math.ethz.ch>
925    
926            * DESCRIPTION (Version): 0.999375 merged into the trunk; ready for
927            release.
928    
929    2007-07-06 14:11  Douglas Bates <bates@stat.wisc.edu>
930    
931            * [r4559] src/iohb.c, src/iohb.h: Remove Harwell-Boeing input/output
932              functions - no longer used
933            * [r4560] src/HBMM.c, src/Mutils.c, src/dgTMatrix.c, src/dgeMatrix.c,
934              src/dspMatrix.c, src/dsyMatrix.c, src/dtCMatrix.c,
935              src/factorizations.c, src/sparseQR.c: Replace most calls to Calloc by
936              Alloca
937    
938    2007-07-06 13:14  Martin Maechler <maechler@stat.math.ethz.ch>
939    
940            * [r4558] inst/doc/Comparisons.Rnw, src/CHMfactor.c, src/Csparse.c,
941              src/Tsparse.c, src/chm_common.c, src/chm_common.h, src/dense.c,
942              src/dgCMatrix.c, src/dsCMatrix.c, src/dtTMatrix.c, src/sparseQR.c,
943              src/t_gCMatrix_colSums.c: more R_CheckStack()s
944    
945    2007-07-05 18:12  Douglas Bates <bates@stat.wisc.edu>
946    
947            * [r4550] inst/include/Matrix.h: Add the macro N_AS_CHM_DN to "alloca"
948              the required amount of memory then call M_numeric_as_chm_dense.
949            * [r4556] src/Mutils.h, src/dgCMatrix.c: Define and use the Alloca macro
950              (like Calloc but calling alloca)
951    
952    2007-07-05  Martin Maechler  <maechler@stat.math.ethz.ch>
953    
954            * R/sparseMatrix.R (printSpMatrix): renamed from prSpMatrix()
955            and extended with more sophisticated 'col.names' option.
956            * NAMESPACE: export  printSparseMatrix()
957            * man/printSpMatrix.Rd: document, incl. examples
958    
959    2007-07-04 16:21  Douglas Bates <bates@stat.wisc.edu>
960    
961            * [r4543] src/cs_utils.c, src/cs_utils.h, src/dgCMatrix.c,
962              src/dtCMatrix.c, src/sparseQR.c: CSP typedef for *cs and macro
963              AS_CSP. API change - pass the empty structure to Matrix_as_cs.
964    
965    2007-07-04  Martin Maechler  <maechler@stat.math.ethz.ch>
966    
967            * DESCRIPTION (Version): 0.99875-4
968    
969            * tests/Class+Meth.R (tstMatrixClass): add dimnames, and hence test
970            some dimnames perservation.
971    
972            * R/dsTMatrix.R (t-method): keep dimnames
973            * R/dtTMatrix.R:  ditto
974    
975            * R/sparseMatrix.R (prSpMatrix): print colnames when non-trivial
976            and ncol(.) < 10
977    
978            * src/cs_utils.c: drop check_class() and use Matrix_check_class()
979            from Mutils.h
980    
981            * src/lgCMatrix.c ([ln]csc_to_matrix): no longer lose dimnames,
982            e.g. in as(<ngCMatrix>, "matrix")
983    
984    2007-07-01 13:27  Douglas Bates <bates@stat.wisc.edu>
985    
986            * [r4529] .: Create a branch for the API changes from the 0.99875
987              series to the 0.999375 series
988            * [r4530] DESCRIPTION, inst/include/Matrix.h,
989              inst/include/Matrix_stubs.c, src/CHMfactor.c, src/Csparse.c,
990              src/Mutils.h, src/Tsparse.c, src/chm_common.c, src/chm_common.h,
991              src/dense.c, src/dgCMatrix.c, src/dsCMatrix.c, src/dtTMatrix.c,
992              src/t_gCMatrix_colSums.c: API change - pass the empty structure to the
993              as_cholmod_x functions
994    
995    2007-06-30 09:05  Martin Maechler <maechler@stat.math.ethz.ch>
996    
997            * [r4527] trunk/Matrix/DESCRIPTION, trunk/Matrix/NAMESPACE,
998              trunk/Matrix/inst/doc/Comparisons.Rnw: add session- and hardware-info
999              to Comparisons
1000    
1001    >>>>>>> .merge-right.r4561
1002    2007-06-29  Martin Maechler  <maechler@stat.math.ethz.ch>
1003    
1004            * DESCRIPTION (Version): 0.99875-3 ready to be released.
1005    
1006            * R/sparseMatrix.R (spMatrix): make spMatrix(3,4) working
1007    
1008            * R/AllGeneric.R: set "Math" (and "Math2") group generics in a way
1009            that should also work in a future version of R.
1010    
1011    2007-06-21  Martin Maechler  <maechler@stat.math.ethz.ch>
1012    
1013            * NAMESPACE, R/AllClass.R: "xsparseVector" class union.
1014    
1015            * R/sparseVector.R: more *sparseVector coercions, notably for
1016            non - double ones.
1017    
1018    2007-06-19  Martin Maechler  <maechler@stat.math.ethz.ch>
1019    
1020            * R/colSums.R: new file for all (col|row)(Sums|Means) methods,
1021              notably the new ones building on the new .Call(.)s:
1022    
1023            * src/dgCMatrix.c (DEF_gCMatrix_COLSUMS): use to define
1024            all 4 of [dlin]gCMatrix_colSums().
1025    
1026    2007-06-18 16:12  Douglas Bates <bates@stat.wisc.edu>
1027    
1028            * [r4472] src/Syms.h, src/init.c: Added Matrix_lengthSym
1029            * [r4473] src/dgCMatrix.c: Modified dgCMatrix_colSums for sparseVector
1030              result
1031    
1032    2007-06-16  Martin Maechler  <maechler@stat.math.ethz.ch>
1033    
1034            * R/kronecker.R: fix typo (could lead to inf.recursion)
1035            * test/simple.R: testing that
1036    
1037            * R/sparseMatrix.R (prSpMatrix): change to be used as print()
1038            method as well (which can have arguments, show() can't).
1039    
1040    2007-06-16 15:52  Douglas Bates <bates@stat.wisc.edu>
1041    
1042            * [r4466] R/dgCMatrix.R, src/dgCMatrix.c, src/dgCMatrix.h, src/init.c:
1043              added dgCMatrix_colSums for [col,row][Sums,Means]
1044    
1045    2007-06-15 23:15  Douglas Bates <bates@stat.wisc.edu>
1046    
1047            * [r4460] R/sparseMatrix.R, man/dgCMatrix-class.Rd, src/dgCMatrix.c,
1048              src/dgCMatrix.h, src/init.c: added lm.fit.sparse (unexported),
1049              coercion of "factor" to "dgCMatrix" and dgCMatrix_cholsol
1050            * [r4461] R/AllClass.R, man/sparseMatrix-class.Rd: draft "indicators"
1051              class
1052            * [r4463] R/sparseMatrix.R, man/dgCMatrix-class.Rd,
1053              man/sparseMatrix-class.Rd: Don't need an "indicators" class - use the
1054              row names to store the levels - duh!  Added an example.
1055    
1056    2007-06-14  Martin Maechler  <maechler@stat.math.ethz.ch>
1057    
1058            * src/Csparse.c (Csparse_validate): check for *repeated* entries
1059            thanks to example from Christian Buchta; with a test here:
1060            * tests/simple.R:
1061    
1062    2007-06-07  Martin Maechler  <maechler@stat.math.ethz.ch>
1063    
1064            * R/Auxiliaries.R (callGeneric): another fix, needed for some cases
1065            of colSums(*, sparseResult = TRUE)
1066    
1067    2007-06-06  Martin Maechler  <maechler@stat.math.ethz.ch>
1068    
1069            * R/lsparseMatrix.R, R/ldenseMatrix.R (all, any): change default to
1070            'na.rm = FALSE' as "everywhere" else in R.
1071    
1072    2007-06-05 Douglas Bates <bates@stat.wisc.edu>
1073    
1074            * [r4421] src/CSparse_install.sh: Modify for new organization of
1075              CSparse package
1076            * [r4425] src/UFsparse_download.sh: Update to version 3.0.0 of
1077              SuiteSparse
1078            * [r4426] src/Makefile: add ./UFconfig to the include path for
1079              compilation
1080            * [r4427] src/cs.[ch]: update to CSparse version 2.2.0
1081            * [r4428] inst/doc/UFsparse/* src/{AMD,CHOLMOD,COLAMD}/*
1082              src/UFconfig/UFconfig.h: Update to version 3.0.0 of SuiteSparse
1083    
1084    2007-06-05  Martin Maechler  <maechler@stat.math.ethz.ch>
1085    
1086            * R/Auxiliaries.R (emptyColnames): + argument msg.if.not.empty, used in
1087            * R/sparseMatrix.R (prSpMatrix): now gives a message about
1088            suppressed column names.
1089    
1090    2007-06-04 17:13  Douglas Bates <bates@stat.wisc.edu>
1091    
1092            * [r4418] src/Csparse.c, src/HBMM.c, src/Mutils.c, src/Mutils.h,
1093              src/Tsparse.c, src/chm_common.c, src/chm_common.h, src/dgCMatrix.c,
1094              src/dgeMatrix.c, src/dpoMatrix.c, src/dpoMatrix.h, src/dppMatrix.c,
1095              src/dppMatrix.h, src/dsCMatrix.c, src/dspMatrix.c, src/dspMatrix.h,
1096              src/dsyMatrix.c, src/dsyMatrix.h, src/dtpMatrix.c, src/dtrMatrix.c:
1097              Remove warnings after change to const char* CHAR
1098    
1099    2007-06-04 17:11  Douglas Bates <bates@stat.wisc.edu>
1100    
1101            * [r4417] inst/include/Matrix_stubs.c, inst/include/cholmod.h: Corrected
1102              type of M_cholmod_ssmult
1103    
1104    2007-06-03 14:42  Douglas Bates <bates@stat.wisc.edu>
1105    
1106            * [r4412] inst/include/Matrix_stubs.c, inst/include/cholmod.h,
1107              src/init.c: Yet another cholmod export - cholmod_ssmult
1108    
1109    2007-05-23  Martin Maechler  <maechler@stat.math.ethz.ch>
1110    
1111            * NAMESPACE: exported drop0(), since
1112            * man/drop0.Rd: I have seen several cases, I really wanted to use
1113            it, so our users may want too.
1114    
1115    2007-05-22  Martin Maechler  <maechler@stat.math.ethz.ch>
1116    
1117            * man/colSums.Rd: separately document colSums() etc, since these
1118            have the extra argument 'sparseResult'.
1119    
1120    2007-05-21  Martin Maechler  <maechler@stat.math.ethz.ch>
1121    
1122            * R/sparseMatrix.R (spMatrix): utility (T)sparse Matrix constructor;
1123            * man/spMatrix.Rd: docu., including examples
1124    
1125            * R/Auxiliaries.R (sp.colMeans): etc, using a patched callGeneric(),
1126            in order to make colMeans() etc fast *and* correct.
1127            * R/sparseVector.R (replSPvec): "[<-" functionality for
1128            sparseVectors; tested in
1129            * tests/simple.R:
1130    
1131    2007-05-19  Martin Maechler  <maechler@stat.math.ethz.ch>
1132    
1133            * R/sparseMatrix.R (print.sparseSummary): and summary() method for
1134            (very) sparse Matrices; output similar to Matlab's print().
1135    
1136    2007-05-17  Douglas Bates  <bates@stat.wisc.edu>
1137    
1138            * src/HBMM.c (Matrix_writeMatrixMarket): Write 1-based, not
1139            0-based, indices (Jose Quesada <quesada@gmail.com>).
1140    
1141    2007-05-16  Douglas Bates  <bates@stat.wisc.edu>
1142    
1143            * R/CHMfactor.R: Added solve methods for a CHMfactor object.
1144    
1145    2007-05-16  Martin Maechler  <maechler@stat.math.ethz.ch>
1146    
1147            * R/Auxiliaries.R (sparsapply): new utility, much faster than
1148            tapply1() for large sparse matrices.
1149    
1150    2007-05-15  Martin Maechler  <maechler@stat.math.ethz.ch>
1151    
1152            * R/Matrix.R (dim<-): reshape now via sparseVector.
1153    
1154            * R/sparseVector.R: methods and function for
1155            * R/AllClass.R: new "sparseVector" class and daughters.
1156            * NAMESPACE: export new classes
1157    
1158    2007-05-14  Martin Maechler  <maechler@stat.math.ethz.ch>
1159    
1160            * DESCRIPTION (Version): 0.99875-1
1161            * src/Makefile.win: also remove Lapack code from here (cf. 04-25).
1162    
1163    2007-05-11  Martin Maechler  <maechler@stat.math.ethz.ch>
1164    
1165            * R/Tsparse.R ([, Tsparse): fix last case: *duplicated*, symmetric
1166            indexing
1167            * tests/indexing.R: test set for that.
1168    
1169    2007-05-08  Martin Maechler  <maechler@stat.math.ethz.ch>
1170    
1171            * R/Tsparse.R (replTmat): fix the case of *duplicated* index
1172            entries.
1173            * tests/indexing.R(out): add regression test for it
1174    
1175    2007-04-30  Martin Maechler  <maechler@stat.math.ethz.ch>
1176    
1177            * R/(l(dense|sparse))?Matrix.R (!): use 'x', not 'e1' as argument
1178            name for "!" method definitions.
1179    
1180    2007-04-26  Martin Maechler  <maechler@stat.math.ethz.ch>
1181    
1182            * R/Tsparse.R (intI): new utility, used for "[" :
1183                    Cleanup up there, and fixes for duplicated indices - more TODO!
1184    
1185            * tests/indexing.R(out): more tests
1186    
1187    2007-04-25  Douglas Bates  <bates@stat.wisc.edu>
1188    
1189            * DESCRIPTION,src/Makefile: require R>= 2.5.0 and remove Lapack
1190            code that is now part of the R Lapack library.
1191    
1192            * src/init.c,inst/include/{Matrix_stubs.c,cholmod.h}:export
1193            cholmod_factorize_p (used in lme4 for GLMMs and NLMMs).
1194    
1195    2007-04-21  Martin Maechler  <maechler@stat.math.ethz.ch>
1196    
1197            * R/Matrix.R (image): method for all Matrices, not just sparse ones.
1198    
1199    2007-04-17  Martin Maechler  <maechler@stat.math.ethz.ch>
1200    
1201            * R/Auxiliaries.R (tapply1): unname(.) -> colSums() etc don't end
1202            up with extraneous names '0'...'<n-1>'
1203    
1204    2007-04-12  Martin Maechler  <maechler@stat.math.ethz.ch>
1205    
1206            * R/dgTMatrix.R (mat2dgT): care about NAs
1207    
1208    2007-04-11  Martin Maechler  <maechler@stat.math.ethz.ch>
1209    
1210            * R/kronecker.R: triangularity preserving methods
1211    
1212    2007-03-27  Martin Maechler  <maechler@stat.math.ethz.ch>
1213    
1214            * R/kronecker.R: new file collecting kronecker() methods in one
1215                    place.  Goal: become much faster!
1216    
1217    2007-03-23  Martin Maechler  <maechler@stat.math.ethz.ch>
1218    
1219            * src/dtCMatrix.c (dtCMatrix_solve): use the new code from Kasper
1220            Kristensen based cs_spsolve() instead of _lsolve & _usolve which
1221            can be much faster.
1222    
1223            * tests/matprod.R: add regression tests for these (upper & lower).
1224    
1225    2007-03-19  Martin Maechler  <maechler@stat.math.ethz.ch>
1226    
1227            * R/Matrix.R (diff): method for our Matrices.
1228    
1229            * R/sparseMatrix.R (isDiagonal): check dim()!
1230    
1231    2007-03-17  Martin Maechler  <maechler@stat.math.ethz.ch>
1232    
1233            * R/Matrix.R (dim<-): new method for "reshape()" built on a
1234            proposal from Tamas Papp.
1235    
1236    2007-03-16  Martin Maechler  <maechler@stat.math.ethz.ch>
1237    
1238            * R/AllGeneric.R: remove all  if(!isGeneric(.))  clauses
1239    
1240            * R/zzz.R (.onLoad, .onUnload): do *not* leave bind_activation(TRUE);
1241            rather define and export  cBind() and rBind() only.
1242            --> useRs *must* change code that used to have cbind()/rbind() !!
1243    
1244            * R/bind.R: change tests from cbind() to cBind() and similarly to rBind()
1245            * R/bind.Rout.save: ditto
1246    
1247    2007-02-16  Douglas Bates  <bates@r-project.org>
1248    
1249            * DESCRIPTION (Date, Version): 0.9975-11 with new date
1250            * src/dgCMatrix.c (R_to_CMatrix, compressed_to_TMatrix): remove
1251            const modifier on declaration of the array 'valid'
1252    
1253    2007-02-12  Douglas Bates  <bates@stat.wisc.edu>
1254    
1255            * R/CHMfactor.R: Add image method (coercion to sparseMatrix).
1256    
1257    2007-02-05  Martin Maechler  <maechler@stat.math.ethz.ch>
1258    
1259            * DESCRIPTION (Date, Version): 0.9975-10 with new date.
1260    
1261            * R/Ops.R (Arith): make sure Csparse o Csparse also works for e.g. ntCMatrix
1262            * tests/simple.R: test the above and some of these coercions:
1263    
1264            * R/nsparseMatrix.R: coercing "Csparse" to "lsparseMatrix";
1265                    be careful to avoid infinite recursion, using new coercions in
1266            * R/ngCMatrix.R and nsC... and ntC...
1267            * R/lsparseMatrix.R: ditto
1268    
1269            * R/SparseM-conv.R: more conversion, notably for triplet matrices.
1270    
1271            * src/dgCMatrix.c (R_to_C_Matrix): port Doug's fix and
1272            * R/Rsparse.R: reactivate .Call()s
1273    
1274            * tests/Class+Meth.R: a bit more on actual classes
1275    
1276    2007-02-04  Douglas Bates  <bates@stat.wisc.edu>
1277    
1278            * src/dgCMatrix.c (compressed_to_TMatrix): fix memory bug using strdup()
1279    
1280    2007-02-03  Martin Maechler  <maechler@stat.math.ethz.ch>
1281    
1282            * DESCRIPTION (Version): 0.9975-10 to upload
1283    
1284            * tests/Class+Meth.R (tstMatrixClass): require coercions to
1285            specific classes less unconditionally.
1286    
1287            * R/Auxiliaries.R: get rid of as_Tsparse() and as_Rsparse()
1288    
1289            * R/Tsparse.R (triu): etc, use as(*, "TsparseMatrix") instead of as_Tsparse()
1290    
1291            * R/Rsparse.R (.R.2.T): R-level workaround using compressed_to_TMatrix.
1292            * R/Rsparse.R (.R.2.C): R-level workaround since C-level
1293            R_to_CMatrix segfaults on one platform.
1294            Eliminate most coercion method to *specific* classes, and replace
1295            with virtual classes coercions.
1296    
1297    
1298    2007-02-01  Martin Maechler <maechler@stat.math.ethz.ch>
1299    
1300            * src/init.c: export the CHM...._validate() placeholders, since
1301            they *are* called.
1302    
1303            * tests/Class+Meth.R (classCanCoerce): and starting to test
1304            all as(<from>, <to>)
1305    
1306    2007-01-30  Martin Maechler  <maechler@stat.math.ethz.ch>
1307    
1308            * R/Tsparse.R ([): more care when subsetting triangular Tsparse
1309            * tests/indexing.R: tested now
1310            * tests/indexing.Rout.save: updated
1311    
1312            * src/Csparse.c (Csparse_to_dense): use Rkind = -1 for PATTERN to
1313            * src/chm_common.c (chm_dense_to_SEXP): return "ngeMatrix" when
1314            appropriate.
1315    
1316            * NAMESPACE: export a trivial
1317            * R/Matrix.R: drop() Matrix-method
1318    
1319            * R/AllClass.R: moved all prototypes to virtual super classes.
1320    
1321            * R/Rsparse.R: many more coercions to have less exceptions in
1322            * tests/Class+Meth.R:
1323    
1324            * R/Ops.R (Compare): tweak for case with NA
1325            * tests/simpl.R: hence another 'FIXME' eliminated
1326    
1327    2007-01-29  Martin Maechler  <maechler@stat.math.ethz.ch>
1328    
1329            * R/diagMatrix.R (solve): the obvious methods for diagonalMatrix
1330            objects.
1331    
1332            * tests/Class+Meth.R (tstMatrixClass): now testing diag(), nnzero(),
1333              and more of "!", "&", "|", all, any; coercions
1334    
1335            * R/Rsparse.R: many coercions (which enable quite a few other
1336            methods), thanks to enhancements in
1337            * src/dgCMatrix.c (R_to_CMatrix): new, and
1338            * src/dgCMatrix.c (compressed_to_TMatrix): now for (d,l,n) ,
1339            symmetric & triangular and ..RMatrix objects.
1340    
1341            * src/TMatrix_as.c (Matrix_T_as_DENSE,Matrix_T_as_GENERAL):
1342            renamed file from src/dsTMatrix.c;
1343            now dealing with symmetric and triangular Tsparse coercions, both
1344            to dense and general.
1345    
1346    2007-01-27  Martin Maechler  <maechler@stat.math.ethz.ch>
1347    
1348            * src/dsTMatrix.c: has now "l" and "n" methods besides the "d" ones.
1349    
1350            * R/Ops.R (Arith): <dgCMatrix> o <numeric> now remains sparse
1351            where sensible when the <numeric> is of length > 1.
1352    
1353    2007-01-26  Martin Maechler  <maechler@stat.math.ethz.ch>
1354    
1355            * R/Matrix.R ([<-): for M[] <- value: fix length
1356    
1357    2007-01-25  Martin Maechler  <maechler@stat.math.ethz.ch>
1358    
1359            * R/Auxiliaries.R (n2l_Matrix): new, to be used in
1360            * R/ndenseMatrix.R: new coercions n* -> l*
1361    
1362    2007-01-22  Martin Maechler  <maechler@stat.math.ethz.ch>
1363    
1364            * R/triangularMatrix.R: new file; simple triu() and tril() methods.
1365    
1366            * R/Ops.R ("Logic"): and other "Ops", many updates
1367    
1368    2007-01-18  Martin Maechler  <maechler@stat.math.ethz.ch>
1369    
1370            * src/Mutils.h (SET_DimNames): new utility
1371    
1372            * R/Auxiliaries.R (nnzero): improved and now exported via
1373    
1374            * NAMESPACE: + nnzero(); length() == prod(dim(.)) method for all "Matrix" objects
1375    
1376    2007-01-17  Martin Maechler  <maechler@stat.math.ethz.ch>
1377    
1378            * R/diagMatrix.R (!): fix typo.
1379    
1380    2007-01-16  Martin Maechler  <maechler@stat.math.ethz.ch>
1381    
1382            * R/Auxiliaries.R (as_Csparse): and quite a few others:
1383                    allow to pass class definition --> speedup
1384            * R/sparseMatrix.R: apply the above
1385    
1386            * R/Csparse.R: coercion Csparse* to dense* now preserves shape properties.
1387    
1388            * src/Mutils.h (mMatrix_as_geMatrix): new, based on
1389            * src/Mutils.c (dup_mMatrix_as_geMatrix): new; generalization of
1390            old dup_mMatrix_as_dgeMatrix), eliminating a long-standing "FIXME".
1391    
1392            * src/dense.c (dense_to_Csparse): use new mMatrix_as_geMatrix()
1393    
1394            * R/denseMatrix.R (.dense2C): based on dense_to_Csparse: name it,
1395            and use it for "sparse*" as well, since it's faster than the
1396            as_Csparse(.) way.
1397    
1398    2007-01-15  Martin Maechler  <maechler@stat.math.ethz.ch>
1399    
1400            * R/Ops.R ("Logic"): more methods, notably an  <lgC> o <lgC> one.
1401    
1402    2007-01-12  Martin Maechler  <maechler@stat.math.ethz.ch>
1403    
1404            * R/Tsparse.R (.TM.repl.i.2col): new internal function to be used
1405            as method for   M[ ij ] <- v
1406            * R/Csparse.R:: go via Tsparse for "M[ij] <- v"
1407    
1408            * R/Ops.R: "Compare" for (C|R)sparse: need pointer slot for all
1409            FALSE answer
1410    
1411            * R/Csparse.R (replCmat): fix the "all non-zero" case with reordering
1412            * tests/indexing.R: test it, and some of the above
1413    
1414    2007-01-05  Martin Maechler  <maechler@stat.math.ethz.ch>
1415    
1416            * R/Auxiliaries.R (is_duplicatedT): new utility
1417    
1418    2007-01-05  Douglas Bates  <bates@stat.wisc.edu>
1419    
1420            * src/init.c (R_init_Matrix): export cholmod_scale
1421    
1422    2006-12-30  Martin Maechler  <maechler@stat.math.ethz.ch>
1423    
1424            * R/zzz.R (tmp): for R >= 2.5.0, extend formals of our
1425            base::as.matrix to (x, ...)
1426    
1427    2006-12-28  Martin Maechler  <maechler@stat.math.ethz.ch>
1428    
1429            * R/Ops.R ("Arith" etc): move almost all "Ops" methods to new R
1430            file; start using "Logic", hence
1431    
1432            * DESCRIPTION (Depends): R >= 2.4.1 (since we want "Logic")
1433            * NAMESPACE: import and export "Logic"
1434    
1435    2006-12-27  Martin Maechler  <maechler@stat.math.ethz.ch>
1436    
1437            * src/zpotfr.f and dependencies: use LAPACK 3.1 version
1438            only needed previously to R version 2.5.0.
1439    
1440    2006-12-26  Martin Maechler  <maechler@stat.math.ethz.ch>
1441    
1442            * DESCRIPTION (Date, Version): 0.9975-8, ready for release
1443    
1444            * R/Tsparse.R (replTmat): fix subassignment of triangular
1445            * R/Csparse.R (replCmat): ditto
1446            * tests/indexing.R: more tests, incl the above fix
1447    
1448    2006-12-23  Martin Maechler  <maechler@stat.math.ethz.ch>
1449    
1450            * R/Auxiliaries.R (drop0): extend for non CSparse
1451            * R/Auxiliaries.R (diagU2N): should work for all sparseMatrix
1452    
1453            * src/Csparse.c (Csparse_to_Tsparse, Csparse_general_to_symmetric):
1454                    use uplo correctly (!); other places: use uplo_P() macro
1455    
1456            * R/Csparse.R (replCmat): call diagU2N() when needed
1457            * R/Tsparse.R (replTmat): ditto
1458    
1459            * src/dtCMatrix.c (tCMatrix_validate): new
1460            * src/dtTMatrix.c (tTMatrix_validate): new, used in
1461            * R/AllClass.R: for validity of dtC, dsC, and dtT, dsT.
1462    
1463            * R/diagMatrix.R (replDiag): to use in [<-
1464    
1465    2006-12-22  Martin Maechler  <maechler@stat.math.ethz.ch>
1466    
1467            * R/Auxiliaries.R (as_Csparse2, as_geSimpl): new functions;
1468                    also more general diagU2N().
1469    
1470    2006-12-21  Martin Maechler  <maechler@stat.math.ethz.ch>
1471    
1472            * R/bind2.R: new file for all cbind2(), rbind() methods moved here
1473            from R/<foo>Matrix.R files. Better diagonal & improved sparse methods.
1474    
1475    2006-12-20  Martin Maechler  <maechler@stat.math.ethz.ch>
1476    
1477            * tests/bind.R: a few more cases
1478            * R/Auxiliaries.R (.M.kind): also work for atomic vectors
1479    
1480            * R/denseMatrix.R (cbind2/rbind2): moved here (and generalized) from
1481            * R/ddenseMatrix.R (cbind2/rbind2)
1482            * R/Tsparse.R (replTmat): final(?!) fix for "[<-" ..
1483            * tests/indexing.R
1484            * tests/indexing.Rout.save: updated
1485    
1486    2006-12-18  Martin Maechler  <maechler@stat.math.ethz.ch>
1487    
1488            * R/Tsparse.R (replTmat): fixed a remaining "[<-" bug in
1489            * tests/indexing.R
1490    
1491    2006-12-15  Martin Maechler  <maechler@stat.math.ethz.ch>
1492    
1493            * R/sparseMatrix.R (prSpMatrix): "." alignment much improved:
1494            align with proper position of "0", i.e., right for integers.
1495            argument 'align' by default is "fancy".
1496    
1497    2006-12-14  Martin Maechler  <maechler@stat.math.ethz.ch>
1498    
1499            * R/sparseMatrix.R: delegate "Compare" to "Csparse.."
1500            * R/Csparse.R: and fix "Compare" for more cases.
1501            * tests/Class+Meth.R: test some of these (m == m, m != m)
1502    
1503    2006-12-13  Martin Maechler  <maechler@stat.math.ethz.ch>
1504    
1505            * R/lsparseMatrix.R: all() and any() methods
1506            * R/ldenseMatrix.R:      ditto
1507            * NAMESPACE, R/Matrix.R: ditto
1508    
1509            * man/all-methods.Rd: document them minimally
1510    
1511            * tests/simple.R: add a few examples for these
1512    
1513    2006-12-11  Martin Maechler  <maechler@stat.math.ethz.ch>
1514    
1515            * R/Tsparse.R ([): fix long standing typo in symmetric case
1516            * man/dsCMatrix-class.Rd: add example exhibiting the above case
1517    
1518    2006-12-10  Douglas Bates  <bates@stat.wisc.edu>
1519    
1520            * src/CHMfactor.c (CHMfactor_to_sparse): change LDL factorization
1521            to LL before converting to a sparse matrix. (The LDL form can be
1522            converted to a sparse matrix but it is implicitly a unit
1523            triangular matrix and a diagonal matrix overwritten on the diagonal.)
1524    
1525    2006-12-09  Douglas Bates  <bates@stat.wisc.edu>
1526    
1527            * src/chm_common.c (chm_factor_to_SEXP): allocate and fill the Dim slot.
1528    
1529    2006-12-08  Douglas Bates  <bates@stat.wisc.edu>
1530    
1531            * DESCRIPTION (Version): updated -> release 0.9975-7
1532            * src/{init.c,chm_common.c}, inst/include/*: export cholmod_analyze_p
1533    
1534    2006-11-30  Martin Maechler  <maechler@stat.math.ethz.ch>
1535    
1536            * R/diagMatrix.R (%*%): write a direct [diag o Csparse] method
1537    
1538    2006-11-29  Douglas Bates  <bates@stat.wisc.edu>
1539    
1540            * src/dgeMatrix.c (dgeMatrix_solve): Check error code from dgetri.
1541            * tests/dg_Matrix.R: Add Barry Rowlingson's test of a matrix that
1542            is exactly singular.
1543    
1544    2006-11-07  Martin Maechler  <maechler@stat.math.ethz.ch>
1545    
1546            * DESCRIPTION (Date): updated -> release 0.9975-6
1547    
1548    2006-11-06  Martin Maechler  <maechler@stat.math.ethz.ch>
1549    
1550            * R/Csparse.R (replCmat): symmetric indexing of symmetric matrix
1551            now returns symmetric.
1552    
1553            * R/zzz.R ("diag<-"): replace "diag<-" in base for R <= 2.4.x
1554    
1555            * R/Matrix.R (.M.sub.i.2col):  new, for  M[ cbind(i,j) ] indexing.
1556            * R/Matrix.R (.M.repl.i.2col): new, for  M[ cbind(i,j) ] <- value
1557    
1558            * R/Auxiliaries.R (.type.kind): added
1559    
1560    2006-11-04  Martin Maechler  <maechler@stat.math.ethz.ch>
1561    
1562            * src/cs.[ch]: updated to CSparse Version 2.0.3 by simply
1563            running src/CSparse_install.sh
1564    
1565            * R/denseMatrix.R: "[": keep symmetric on symmetric indexing.
1566    
1567    2006-11-03  Martin Maechler  <maechler@stat.math.ethz.ch>
1568    
1569            * src/dsCMatrix.c (dsCMatrix_Csparse_solve): new
1570            * R/dsCMatrix.R (solve): "fully-sparse" using the above.
1571    
1572            * R/AllClass.R: "pMatrix" now also inherits from "generalMatrix"
1573    
1574            * tests/Class+Meth.R (tstMatrixClass): now assure
1575            the (important in method programming) property :
1576    
1577                    ###>>  Every "Matrix" is either
1578                    ###>>  "general*", "symmetric*", "triangular*" or "diagonal*"
1579    
1580                    (where "*" stands for "Matrix")
1581    
1582            * R/Auxiliaries.R (diagU2N): now .Call()s Csparse_diagU2N for <Csparse>
1583    
1584            * R/dMatrix.R (Compare(<dMatrix>,<dMatrix>): update and
1585            * tests/validObj.R: checks for "comparison"
1586    
1587            * R/sparseMatrix.R ([): improved indexing for sparse;
1588                    trying to keep <symmetric>[ n, n] symmmetric
1589    
1590            * tests/indexing.R: indexing for logical sparse now ok
1591    
1592    
1593    2006-11-02  Martin Maechler  <maechler@stat.math.ethz.ch>
1594    
1595            * src/Tsparse.c: use xTsparse_validate() , and hence remove
1596    
1597            * src/{ltC,lsC,lgT}Matrix.[ch]: removed
1598    
1599    2006-11-02  Martin Maechler  <maechler@stat.math.ethz.ch>
1600    
1601            * R/AllClass.R (Matrix-class): check length of dimnames in validity.
1602    
1603            * tests/simple.R: validObject() checking the above.
1604    
1605            * src/dgCMatrix.c (xCMatrix_validate): new, small and simple,
1606            replacing both dgCMatrix_validate and lgCM*.
1607    
1608            * src/Csparse.c (Csparse_dense_prod, etc): do not lose dimnames;
1609            fix dimnames setting in other places.
1610            * src/chm_common.c (chm_dense_to_SEXP): now can pass dimnames
1611    
1612    2006-11-01  Martin Maechler  <maechler@stat.math.ethz.ch>
1613    
1614            * R/Csparse.R,src/Csparse.c, etc: tcrossprod(<CsparseM>,<CsparseM>)
1615    
1616            * R/sparseMatrix.R (isSymmetric): drop 'factors' slot for
1617            symmetry test, via
1618            * R/Auxiliaries.R (.as.dgC.0.factors):
1619    
1620    2006-11-01  Douglas Bates  <bates@r-project.org>
1621    
1622            * R/Csparse.R,src/Csparse.c,tests/matprod.R,
1623            man/CsparseMatrix-class.Rd: crossprod(<CsparseMatrix>,
1624            <CsparseMatrix>) added
1625    
1626    2006-10-30  Martin Maechler  <maechler@stat.math.ethz.ch>
1627    
1628            * tests/matprod.R: add a variation of Harri's example
1629    
1630            * R/dsparseMatrix.R: fix crossprod(<dsparse>, <dge>) to *not*
1631            recursive infinitely.
1632    
1633            * R/dgCMatrix.R: + solve(<sparse>, <sparse>)
1634    
1635            * tests/indexing.R: add test for the "<" bug fixed 10-27 in R/dMatrix.R
1636    
1637    2006-10-28  Martin Maechler  <maechler@stat.math.ethz.ch>
1638    
1639            * tests/Class+Meth.R (tstMatrixClass): more: use non-trivial
1640            matrix if possible; test m+m == 2*m; now test dgRMatrix.
1641            * R/dgRMatrix.R (.to.dgR): a few more coercions, in order to
1642            satisfy the above test.
1643    
1644    2006-10-27  Martin Maechler  <maechler@stat.math.ethz.ch>
1645    
1646            * R/Matrix.R (Ops):  <Matrix> o <matrix>  method added
1647    
1648            * R/dgCMatrix.R: solve(a, b="missing") based on
1649            * src/dgCMatrix.c (dgCMatrix_matrix_solve): extend to work with
1650            RHS = NULL.
1651    
1652            * R/diagMatrix.R (diagdiagprod): extend %*% etc to ldiMatrix;
1653            add more (needed) [t]crossprod() methods.
1654    
1655            * man/ddiMatrix-class.Rd: more info, notably on 'diag'
1656    
1657            * R/Auxiliaries.R (as_CspClass): cleanup
1658            (drop0): internal utility for "Csparse_drop(*, 0)"
1659            (.bail.out.2): encourage active feedback
1660    
1661    2006-10-26  Martin Maechler  <maechler@stat.math.ethz.ch>
1662    
1663            * R/dMatrix.R(Compare): new(), then slots [no validity check]
1664    
1665            * src/Csparse.c (Csparse_validate): fixed (and more efficient in
1666            non-valid or 'sorted' case).
1667    
1668            * R/dsparseMatrix.R: add "chol" method.
1669            * R/ddenseMatrix.R: ditto
1670    
1671            * R/diagMatrix.R (Ops): group methods for  <diagonal> o <sparse>
1672            * NAMESPACE (Ops)
1673            * R/diagMatrix.R (diag2T): simple utility used "higher level"
1674            coercion; deprecating direct lower level coercions.
1675    
1676            * R/*.R (seq): use seq_len() and seq_along() where possible.
1677    
1678    
1679    2006-10-23  Martin Maechler  <maechler@stat.math.ethz.ch>
1680    
1681            * DESCRIPTION (Version): 0.9975-5 ready for release
1682    
1683    2006-10-20  Douglas Bates  <bates@stat.wisc.edu>
1684    
1685            * src/init.c (R_init_Matrix): export more cholmod CCallable functions.
1686    
1687    2006-10-20  Martin Maechler  <maechler@stat.math.ethz.ch>
1688    
1689            * R/AllClass.R (corMatrix): add 'validity' check;
1690                    comment out unused "LDL" class definition
1691            * NAMESPACE: mention, but do not export "LDL" class
1692            * R/corMatrix.R: new (simple), needed for R-devel with
1693            * tests/Class+Meth.R (tstMatrixClass): 1 exception for corMatrix
1694              coerce and t() exceptions for all 5 'Mat.MatFact' classes.
1695    
1696    2006-10-19  Douglas Bates  <bates@stat.wisc.edu>
1697    
1698            * src/chm_common.h: Add R_cholmod_start to initialize cholmod to
1699            use Rprintf and R's error handling.
1700    
1701    2006-10-17  Martin Maechler  <maechler@stat.math.ethz.ch>
1702    
1703            * R/diagMatrix.R (%*%): rep(*, each = .) in Matrix %*% diagonal.
1704            * tests/matprod.R: add tests for the bug fixed.
1705    
1706    2006-10-11  Douglas Bates  <bates@stat.wisc.edu>
1707    
1708            * src/HBMM.[ch]: remove HarwellBoeing format for writing.
1709            * src/SOURCES_C.mkf (SOURCES_C): no longer compile iohb.c
1710    
1711    2006-10-06  Douglas Bates  <bates@stat.wisc.edu>
1712    
1713            * R/d[gs]CMatrix.R: deprecate the writeHB function.  Use writeMM instead.
1714    
1715    2006-10-06  Martin Maechler  <maechler@stat.math.ethz.ch>
1716    
1717            * DESCRIPTION (Version): 0.9975-3
1718    
1719            * R/diagMatrix.R (bdiag): new function constructing block diagonal
1720            (sparse) matrices.
1721            * man/bdiag.Rd: docu + examples
1722    
1723            * R/Csparse.R (replCmat): calling new Csparse_drop() now.
1724    
1725            * src/Csparse.c (Csparse_general_to_symmetric, Csparse_drop): new functions
1726            * R/lsCMatrix.R: three more coercions to lsC (thanks to the above)
1727    
1728            * R/diagMatrix.R (Diagonal): '[<-' method for diag.matrices such
1729            that result is sparse or diagonal (and not dense).
1730    
1731            * man/Subassign-methods.Rd: fix examples
1732    
1733            * R/Matrix.R (Matrix):  Matrix(0, *) or Matrix(*, sparse=TRUE)
1734            should always return a sparse (and not sometimes a diagonal) matrix.
1735    
1736    2006-10-05  Martin Maechler  <maechler@stat.math.ethz.ch>
1737    
1738            * R/Matrix.R ([<-): also for value "Matrix" or "matrix"
1739    
1740    2006-10-04  Douglas Bates  <bates@stat.wisc.edu>
1741    
1742            * DESCRIPTION (Version): 0.9975-2
1743    
1744            * inst/include/Matrix_stubs.c (M_cholmod_sparse_to_triplet): export more symbols
1745    
1746    2006-10-02  Douglas Bates  <bates@R-project.org>
1747    
1748            * tests/dg_Matrix.R: Simplify test taking into account new code.
1749    
1750    2006-09-29  Martin Maechler  <maechler@stat.math.ethz.ch>
1751    
1752            * R/Csparse.R (replCmat): improve for missing i / j in non-simple cases
1753    
1754            * R/lsTMatrix.R: new files w/ missing methods
1755            * R/nsTMatrix.R:  "  'for completeness'
1756    
1757            * tests/Class+Meth.R: a bit less 'not.ok.classes'
1758    
1759            * R/Tsparse.R (t): generalized "t" method from "dgT*" to "Tsparse*"
1760    
1761    
1762    2006-09-28  Douglas Bates  <bates@R-project.org>
1763    
1764            * src/dppMatrix.h: Ensure definition of dspMatrix_validate is
1765            included.
1766    
1767            * src/init.c, inst/include/{Matrix.h,Matrix_stubs.h,cholmod.h}:
1768            Export C-callable functions used in Zt_create in lme4.
1769    
1770    2006-09-28  Martin Maechler  <maechler@stat.math.ethz.ch>
1771    
1772            * DESCRIPTION (Version): 0.9975-1
1773    
1774            * tests/simple.R: less checks fail; using NA, found that our
1775                    kronecker() is not base-compatible with NA's.
1776    
1777            * R/dMatrix.R: "Compare" method now implemented for all cases
1778    
1779            * R/Auxiliaries.R (indTri): == which([lower/upper].tri( * )) new utility
1780    
1781            * man/dtpMatrix-class.Rd: mention length of 'x' slot
1782    
1783            * src/dtpMatrix.c (dtpMatrix_validate): fix check
1784            * src/dspMatrix.c (dspMatrix_validate): ditto
1785    
1786            * R/dtTMatrix.R (gt2tT): fix ("l" -> "n")
1787              including coercion to [nl]tTMatrix.
1788    
1789            * R/diagMatrix.R (show): print a header line as for other classes.
1790    
1791    2006-09-27  Martin Maechler  <maechler@stat.math.ethz.ch>
1792    
1793            * src/Makefile.win (SUBDIRS): fix typo
1794    
1795    2006-09-19  Martin Maechler  <maechler@stat.math.ethz.ch>
1796    
1797            * DESCRIPTION (Date): ready to release 0.9975-0 to CRAN
1798    
1799    2006-09-18  Douglas Bates  <bates@stat.wisc.edu>
1800    
1801            * R/[CT]sparse.R (crossprod and tcrossprod): Handle the cases for x
1802            symmetric and y missing in R code using %*% (cholmod_aat doesn't
1803            accept a symmetric matrix).
1804            * tests/group-methods.R: Uncomment test of crossprod applied to
1805            lsCMatrix objects.
1806    
1807    2006-09-18  Martin Maechler  <maechler@stat.math.ethz.ch>
1808    
1809            * R/AllClass.R (symmetricMatrix): add validity method (available
1810            in C for a long time). Many "n..Matrix": drop (wrong) validity arg.
1811    
1812            * src/lgCMatrix.c (lgCMatrix_validate): check 'x' slot (!)
1813    
1814            * tests/indexing.Rout.save:
1815            * tests/indexing.R: additions, mainly for 'lsparse'
1816    
1817            * R/diagMatrix.R (Diagonal) & coercion to lgTMatrix: fixes for NA
1818            case.
1819    
1820            * R/Auxiliaries.R (nz.NA): new utility now used in nnzero()
1821    
1822    2006-09-16  Martin Maechler  <maechler@stat.math.ethz.ch>
1823    
1824            * R/sparseMatrix.R (prSpMatrix): print logical NAs "visibly"
1825                    as 'N' (1-letter - Ok?)
1826    
1827            * tests/group-methods.R: add test for logical + NAs
1828    
1829            * R/dMatrix.R ("Compare"): fix to work with NA's
1830    
1831            * R/AllClass.R: "Cholesky" etc now inherit from MatrixFactorization.
1832    
1833            * src/lgCMatrix.c (ncsc_to_matrix): renamed from lcsc_to_matrix()
1834                    which is implemented.
1835    
1836    2006-09-15  Martin Maechler  <maechler@stat.math.ethz.ch>
1837    
1838            * src/chm_common.c: coerce logical <-> double instead of
1839            typecasting;  needed for "l" matrix handling in cholmod.
1840    
1841            * tests/other-pkgs.R (graph): small extension in "graph" checks.
1842    
1843            * R/sparseMatrix.R (graphNEL -> Tsparse): method for weight case.
1844            (Tsp2grNEL): other fixes needed
1845    
1846    2006-09-11  Martin Maechler  <maechler@stat.math.ethz.ch>
1847    
1848            * R/AllClass.R ("nMatrix"): and subclasses for "nonzero pattern"
1849                    Matrices, since "lMatrix", also "lsparseM" can have NA
1850            * R/ndenseMatrix.R, etc: new source files
1851            * man/nsparseMatrix-classes.Rd, etc: new help files
1852            * tests/: adaptions
1853            * src/chm_common.c (chm_dense_to_SEXP): and others:
1854                    new 'Rkind' argument: "l*" and "d*" both use CHOLMOD_REAL
1855            * src/Csparse.c, etc: ditto
1856    
1857    2006-09-11  Douglas Bates  <bates@R-project.org>
1858    
1859            * src/Mutils.[ch],init.c inst/include/*.h: Move the
1860            alloc_d**Matrix functions to the lme4 package.
1861    
1862    2006-09-09  Douglas Bates  <bates@R-project.org>
1863    
1864            * src/dsCMatrix.c (dsCMatrix_Cholesky): igoring LDL = FALSE now
1865            fixed
1866    
1867    2006-09-09  Martin Maechler  <maechler@stat.math.ethz.ch>
1868    
1869            * R/lMatrix.R: new
1870    
1871            * R/sparseMatrix.R (Tsp2grNEL): do not yet use graph::foo()
1872    
1873            * R/dgeMatrix.R: do not define tcrossprod() methods for "matrix"
1874            * man/tcrossprod.Rd: ditto
1875    
1876    2006-09-08  Douglas Bates  <bates@stat.wisc.edu>
1877    
1878            * inst/include/Matrix_stubs.c,Matrix.h: Add declarations and stubs
1879            for exported functions
1880            * src/Makefile, src/CHOLMOD/Lib/Makefile, src/Metis,CAMD,CCOLAMD:
1881            Remove partitioning algorithms for sparse matrix reordering.  The
1882            copyright on the Metis code was problematic and the methods were
1883            rarely used.
1884            * src/triplet_to_col.[ch],MMHB.[ch]: Remove triplet_to_col.  Such
1885            operations are now done entirely in CHOLMOD code.
1886    
1887    2006-09-06  Douglas Bates  <bates@R-project.org>
1888    
1889            * src/Mutils.h: Remove functions that are no longer used.
1890    
1891    2006-09-04  Douglas Bates  <bates@R-project.org>
1892    
1893            * src/dtCMatrix.c (dtCMatrix_validate): rename functions.
1894            * src/DEPS.mkf: update
1895    
1896    2006-09-02  Martin Maechler  <maechler@stat.math.ethz.ch>
1897    
1898            * created branches/Matrix-for-R-2.3.x;  on trunk: do
1899            * DESCRIPTION (Version): 0.9975-0
1900            (Depends): R (>= 2.4.0)
1901    
1902    2006-09-01  Douglas Bates  <bates@R-project.org>
1903    
1904            * R/sparseMatrix.R: Added direct method to CsparseMatrix from graphNEL
1905    
1906    2006-09-01  Martin Maechler  <maechler@stat.math.ethz.ch>
1907    
1908            * R/sparseMatrix.R: add coercion from "ANY" to "sparseMatrix"
1909            * R/denseMatrix.R:  add coercion from "ANY" to "denseMatrix"
1910    
1911            * R/Matrix.R ([): use nargs() to disambiguate M[i] and M[i,]
1912    
1913    2006-08-31  Martin Maechler  <maechler@stat.math.ethz.ch>
1914    
1915            * R/sparseMatrix.R (Arith): moved Arith group method one-level up
1916            from "dsparse" to "sparse" and now go via "Csparse" instead of "dgC"
1917            * R/dsparseMatrix.R: ditto
1918            * R/Csparse.R: ditto
1919    
1920    2006-08-31  Martin Maechler  <maechler@stat.math.ethz.ch>
1921    
1922            * R/dMatrix.R (Compare): improve availability of "<", etc
1923            * R/Auxiliaries.R (asTuniq): new; also make use of R 2.4.x print(*,max)
1924    
1925    2006-08-30  Martin Maechler  <maechler@stat.math.ethz.ch>
1926    
1927            * R/dgCMatrix.R: aargh: "Arith(<dgC>, numeric)" was wrong because
1928            of a 0-index which was used as 1-index (..hmm)
1929    
1930            * R/sparseMatrix.R (prSpMatrix): fix printing an all-0 sparse Matrix
1931    
1932            * R/Auxiliaries.R (all0, is0): for 0-testing in presence of NA's
1933            * R/Auxiliaries.R (isTriMat): use all0() for 0-testing.
1934            (.is.diagonal): ditto
1935    
1936            * R/lgTMatrix.R: as("matrix", "lgTMatrix"): warn about NA's
1937    
1938            * R/Matrix.R (Matrix): also work for NA data
1939    
1940    2006-08-28  Martin Maechler  <maechler@stat.math.ethz.ch>
1941    
1942            * R/Matrix.R (Matrix): + 'forceCheck' argument; dimnames setting
1943            in all cases.
1944    
1945    2006-08-27  Douglas Bates  <bates@R-project.org>
1946    
1947            * src/dense.[ch],init.c, R/ddenseMatrix.R, man/band.Rd
1948            (ddense_band): Added triu, tril and band for ddenseMatrix objects.
1949    
1950    2006-08-25  Martin Maechler  <maechler@stat.math.ethz.ch>
1951    
1952            * src/Mutils.c (dup_mMatrix_as_dgeMatrix): added all subclasses of
1953            subclasses of "ddenseMatrix"
1954            * src/init.c et al: outcomment dtrM*_as_dge* and dsyM*_as_dge*_
1955            * R/ddenseMatrix.R et al: setAs("ddenseMatrix", "dgeMatrix", ..)
1956            instead of half dozen specialized ones.
1957    
1958    2006-08-25  Douglas Bates  <bates@R-project.org>
1959    
1960            * R/lmer.R (qqmath method): Bug fix provided by Emmanuel Tillard
1961            <tillard@cirad.fr> - ordering standard errors to match effects.
1962    
1963    2006-08-24  Douglas Bates  <bates@R-project.org>
1964    
1965            * src/lsCMatrix.c (lsCMatrix_trans): Remove lsCMatrix_chol based
1966            on R_ldl.
1967            * R/lCholCMatrix.R,
1968            src/[dl]CholCMatrix.[ch],R_ldl.[ch],Metis_utils.[ch]: removed
1969            * src/dsCMatrix.c (dsCMatrix_to_dgTMatrix): use CHOLMOD
1970            * many files in ./R and ./src: Use more general version of
1971            dup_mMatrix_as_dgeMatrix to simplify method definitions.
1972            * src/Mutils.c (dup_mMatrix_as_dgeMatrix): Add ddiMatrix,
1973            dtpMatrix, dspMatrix and dppMatrix conversions.
1974    
1975    
1976    2006-08-23  Douglas Bates  <bates@R-project.org>
1977    
1978            * R/AllClass.R,lCholCMatrix.R,src/SOURCES_C.mkf,init.c,NAMESPACE:
1979            Remove classes lCholCMatrix and dCholCMatrix based on R_ldl code.
1980            * src/dgeMatrix.c: Ensure 'factors' slot exists in result of
1981            dgeMatrix_crossprod (may need to do this in other places).
1982            * R/AllGeneric.R,dsCMatrix.R, src/dscMatrix.[ch]: Add Cholesky
1983            generic and method for dsCMatrix.  Use CHOLMOD for chol().
1984    
1985    2006-08-22  Douglas Bates  <bates@R-project.org>
1986    
1987            * src/Mutils.c (dup_mMatrix_as_dgeMatrix): updated for general
1988            types of classed Matrices, matrices or numeric or logical vectors.
1989            * src/init.c: register dup_mMatrix_as_dgeMatrix for coercions.
1990            * src/chm_common.c,Mutils.h (as_cholmod_factor): Move check_class
1991            to Mutils.h (as an inline) and change name to Matrix_check_class;
1992            fixes in as_cholmod_factor and chm_factor_to_SEXP.
1993            * src/dsCMatrix.[ch]: Use CHOLMOD for dsCMatrix_chol and
1994            dsCMatrix_matrix_solve.  Comment out vestigial functions.
1995            * src/Csparse.c: use diag_P and uplo_P macros.
1996    
1997    2006-08-21  Douglas Bates  <bates@R-project.org>
1998    
1999            * src/lmer.c (internal_mer_RZXinv): Fix memory leak caught by
2000            valgrind.
2001            * tests/matprod.R: Add tests to verify that 'solve' and '%*%' are
2002            inverses.
2003            * src/sparseQR.c (sparseQR_validate): add new validation test, fix
2004            -Wall warnings.
2005            * src/dppMatrix.c,dtrMatrix.c,dgCMatrix.c,dgeMatrix.c,dspMatrix.c:
2006            Use dup_mMatrix_as_dgeMatrix.
2007    
2008    2006-08-20  Douglas Bates  <bates@R-project.org>
2009    
2010            * src/sparseQR.c: Fix thinko in sparseQR_resid_fitted.
2011            * tests/sparseQR.R: Added
2012            * man/sparseQR-class.Rd: Document methods for qr.* generics
2013            * R/sparseQR.R: Return correct # of coefs; fix cut-and-paste errors
2014    
2015    2006-08-19  Douglas Bates  <bates@R-project.org>
2016    
2017            * NAMESPACE, R/sparseQR.R, src/init.c,sparseQR.[ch],SOURCES_C.mkf:
2018            Added methods for sparseQR for qr.qy, qr.qty, qr.coef, qr.resid
2019            and qr.fitted.
2020            * src/Mutils.[ch]: Added dup_mMatrix_as_dgeMatrix utility
2021            * src/dgCMatrix.c: Check for ordering before storing q in dgCMatrix_QR
2022    
2023    2006-08-18  Martin Maechler  <maechler@stat.math.ethz.ch>
2024    
2025            * R/AllGeneric.R: add "qr" and "chol" generics; via 'trick' since
2026            the base version has no "..." argument.
2027    
2028            * R/sparseMatrix.R (prSpMatrix): fix the triangular unit diagonal case.
2029    
2030            * R/Matrix.R: define and
2031            * NAMESPACE: export as.numeric() and as.logical() methods.
2032                    Let's hope these do not badly slow down something...
2033            Finally export the zapsmall() method.
2034    
2035    2006-08-17  Douglas Bates  <bates@R-project.org>
2036    
2037            * src/dgCMatrix.[ch] (dgCMatrix_matrix_solve), src/init.c,
2038            R/dgCMatrix.R: solve methods for dgCMatrix and dense RHS.
2039            * src/dtCMatrix.c :Remove code that is no longer used
2040            * R/dtCMatrix.R: Use C code for diagU2N in CsparseMatrix classes
2041    
2042    2006-08-14  Douglas Bates  <bates@R-project.org>
2043    
2044            * src/Csparse.[ch],init.c (Csparse_to_logical): Added utilities
2045            Csparse_to_logical and Csparse_symmetric_to_general.
2046            * R/dgCMatrix.R,dsCMatrix.R,Csparse.R : Consolidate general
2047            coercion methods between CsparseMatrix and TsparseMatrix.
2048    
2049    2006-08-14  Douglas Bates  <bates@R-project.org>
2050    
2051            * R/dtCMatrix.R,dgCMatrix.R,Csparse.R src/init.c,dgCMatrix.[ch],
2052            Csparse.[ch],chm_common.c,dense.c : Use CHOLMOD code and methods
2053            for CsparseMatrix, TsparseMatrix, denseMatrix or matrix when
2054            possible.
2055    
2056    2006-08-12  Douglas Bates  <bates@R-project.org>
2057    
2058            * src/chm_common.[ch],Csparse.[ch],Tsparse.[ch],CHMfactor.c,dtTMatrix.c,
2059              dgTMatrix.c,dgCMatrix.c,dsCMatrix.c,dtTMatrix.c, R/dsTMatrix.R,
2060              Tsparse.R,Csparse.R,dgTMatrix.R,dsCMatrix.R,lsCMatrix.R:
2061              generalize conversions between TsparseMatrix, CsparseMatrix,
2062              denseMatrix and matrix.  Preserve triangularity property and
2063              propagate Dimnames in the easy cases.
2064    
2065    2006-08-10  Douglas Bates  <bates@R-project.org>
2066    
2067            * src/lmer.c: adjust checks in glmer_init for S4SXP
2068            * tests/validObj.R: check of all(eq) should be all(eq@x) - worked
2069            before S4SXP but for the wrong reasons.
2070    
2071    2006-08-08  Douglas Bates  <bates@R-project.org>
2072    
2073            * src/Csparse.c (Csparse_crossprod): tcrossprod result has stype = -1.
2074            Later modified to return the upper triangle only.
2075            * R/dgTMatrix.R: Remove vestigial crossprod and tcrossprod methods.
2076    
2077    2006-08-07  Douglas Bates  <bates@R-project.org>
2078    
2079            * src/Csparse.c (Csparse_crossprod): Set stype on result to avoid
2080            R-level conversion to a sparse symmetric class.
2081            * R/Tsparse.R,R/Csparse.R (crossprod and tcrossprod methods):
2082            Remove conversion to sparse symmetric classes (now done in C code).
2083    
2084    2006-08-07  Martin Maechler  <maechler@stat.math.ethz.ch>
2085    
2086            * R/dgCMatrix.R: disable old crossprod and tcrossprod methods
2087            * man/band.Rd:  adapt the \dontshow{} unit test.
2088    
2089    2006-08-07  Martin Maechler  <maechler@stat.math.ethz.ch>
2090    
2091            * DESCRIPTION (Version): 0.995-14  for CRAN
2092    
2093            * tests/other-pkgs.R: oops: library(Matrix) outside *if* !
2094    
2095            * R/sparseMatrix.R (Tsp2grNEL): fixed Tsparse -> graph coercion
2096            * tests/other-pkgs.R:  more checks, sparseMatrix -> graph
2097    
2098            * R/Auxiliaries.R (as_Tsparse, as_Rsparse): new
2099            * R/Tsparse.R (tril, triu, band): methods
2100            * R/dgRMatrix.R (tril, ...):    ditto
2101            * man/band.Rd:                  ditto
2102    
2103    2006-08-04  Martin Maechler  <maechler@stat.math.ethz.ch>
2104    
2105            * R/Matrix.R (head, tail): directly use utils:::head.matrix
2106                    to be up-to-date automatically.
2107    
2108    2006-08-03  Martin Maechler  <maechler@stat.math.ethz.ch>
2109    
2110            * DESCRIPTION (Version): 0.995-13 to be released to CRAN
2111    
2112            * DESCRIPTION (Lazydata): no, instead of 'yes' because it fails for:
2113            * data/CAex.R, inst/external/CAex_slots.rda: replacing data/CAex.rda
2114            * data/KNex.R, inst/external/KNex_slots.rda: replacing data/KNex.rda
2115            such that the S4 objects are always created by the current version
2116            of R and 'Matrix' class definitions.
2117    
2118    2006-08-01  Douglas Bates  <bates@R-project.org>
2119    
2120            * R/lmer.R (LMEoptimize method), tests/lmer.R,
2121            inst/external/test3comp.rda: Added warnings for convergence on
2122            boundary and test cases.
2123    
2124            * src/lmer.c (mer_postVar): Modified to return the variances that
2125            are marginal to the fixed effects, not conditional on them (which
2126            is what the bVar slot contents represent).
2127    
2128    2006-07-31  Douglas Bates  <bates@R-project.org>
2129    
2130            * NAMESPACE, src/lmer.c, R/lmer.R (hatTrace):  Add the hatTrace
2131            function which calls the C function mer_hat_trace2.
2132    
2133            * man/ranef.Rd: Include description of "postVar" argument and
2134            producing a caterpillar plot.
2135    
2136    2006-07-31  Martin Maechler  <maechler@stat.math.ethz.ch>
2137    
2138            * NAMESPACE:    change  "correlation" to "corMatrix"
2139            * R/AllClass.R: to avoid clash with S3 class in 'nlme'.
2140            * R/dpoMatrix.R: ditto
2141            * R/lmer.R:      ditto
2142    
2143    2006-07-28  Douglas Bates  <bates@R-project.org>
2144    
2145            * src/lmer.c (internal_mer_RZXinv): Split the calculation of the
2146            RZXinv slot's contents into a separate internal function that can
2147            be used in mer_hat_trace.
2148    
2149    2006-07-22  Martin Maechler  <maechler@stat.math.ethz.ch>
2150    
2151            * R/Matrix.R: Coercions "Matrix" -> (sparse|dense)Matrix
2152            via new smart
2153            * R/Auxiliaries.R (as_Csparse, as_dense, .M.shapse): new
2154            utility functions.
2155    
2156    
2157    2006-07-21  Martin Maechler  <maechler@stat.math.ethz.ch>
2158    
2159            * R/Csparse.R (tril, triu, band): do return *triangular* classed
2160            matrices when appropriate; band() even symmetric ones.
2161            (replCmat): extend to potentially all "CsparseMatrix"
2162            * R/Tsparse.R (replTmat): extend to all "TsparseMatrix"; hence
2163            allow subassignment for special sparse matrices.
2164    
2165            * R/Auxiliaries.R (as_geClass): factor out the  .M.kind() functionality
2166    
2167            * src/lmer.c (mer_MCMCsamp, glmer_MCMCsamp): new 'verbose'
2168            argument; in glmer_*(): print only if(verbose).
2169    
2170            speed-optimize a few places by moving REAL(.) out of loops.
2171    
2172            * src/lmer.h, src/init.h, R/lmer.R:  related to above.
2173    
2174    2006-07-20  Martin Maechler  <maechler@stat.math.ethz.ch>
2175    
2176            * R/Matrix.R("["): disable ("Matrix", i = "logical", j = "missing"),
2177                    since that wrongly triggers also for M[ logi , ]
2178    
2179            * R/denseMatrix.R: "[" methods now also work e.g. when indexing
2180            a symmetric matrix that results in a non-symmetric one.
2181            * R/Auxiliaries.R (as_geClass): new function used in "[" above.
2182    
2183            * R/dMatrix.R: make round(M) work as round(M, 0)
2184    
2185            * R/dgTMatrix.R (image): coordinate system and axis now use
2186            1-based indices, not 0-based ones.
2187    
2188            * R/Tsparse.R (.ind.prep for "["): get rid of max(<empty>) warning.
2189            * tests/indexing.R: test it.
2190    
2191            * NAMESPACE: export isSymmetric(); has been a generic in "base" for a while;
2192            * man/isSymmetric-methods.Rd: and document it.
2193    
2194            * R/SparseM-conv.R: added coercion methods for some 'SparseM' matrices.
2195            * man/SparseM-conv.Rd: docu them
2196    
2197            * tests/other-pkgs.R: renamed from tests/graph.R and add example
2198                    for 'SparseM' conversions
2199    
2200    2006-07-17  Douglas Bates  <Douglas.Bates@R-project.org>
2201    
2202            * R/Matrix.R (head): added head() and tail() methods.
2203    
2204    2006-07-17  Martin Maechler  <maechler@stat.math.ethz.ch>
2205    
2206            * DESCRIPTION (Version): 0.995-12 released to CRAN
2207    
2208    2006-07-15  Martin Maechler  <maechler@stat.math.ethz.ch>
2209    
2210            * tests/simple.R: add check for correct dsT -> dgT coercion;
2211                    add check for correct printing of symmetric sparse matrices.
2212    
2213            * R/Auxiliaries.R (non0ind): return *all* non-0 entry indices also
2214            for sparse symmetric matrices.
2215    
2216            * src/dsTMatrix.c (dsTMatrix_as_dgTMatrix): do not copy the
2217            diagonal twice.
2218    
2219    2006-07-11  Douglas Bates  <Douglas.Bates@R-project.org>
2220    
2221            * src/dsTMatrix.c (dsTMatrix_as_dgTMatrix): Fix a case of INTEGER
2222            being applied to the x slot (detected by Brian Ripley).
2223    
2224    2006-07-10  Martin Maechler  <maechler@stat.math.ethz.ch>
2225    
2226            * src/dgCMatrix.c (dgCMatrix_validate): 'p' slot must have correct length.
2227    
2228            * R/Auxiliaries.R (isTriC): fix buglet (we were 1-based!)
2229    
2230    2006-07-08  Martin Maechler  <maechler@stat.math.ethz.ch>
2231    
2232            * src/lgCMatrix.c (lgCMatrix_diag): new function
2233            * R/lgCMatrix.R (diag): for new method
2234    
2235            * R/AllClass.R (TsparseMatrix): do use Tsparse_validate
2236                 ==> construction of illegal "*gTMatrix" via new() should
2237                 now be much less easy:
2238            * tests/Class+Meth.R: assertError() for some illegal "dgT*"
2239    
2240            * R/Matrix.R (Matrix): Matrix(0, nrow,ncol) now "goes sparse"
2241                    directly.
2242            * man/Matrix.Rd: documents it.
2243    
2244    2006-07-06  Douglas Bates  <bates@R-project.org>
2245    
2246            * src/pedigree.c (pedigree_inbreeding): Correction in
2247            initialization.  This function is not currently being used and is
2248            not fully tested.
2249    
2250            * NAMESPACE, R/{AllClass.R,lmer.R}, src/{init.c,lmer.c}:
2251            Introduced the glmer class.  Added code for mcmcmsamp on glmer
2252            objects.  Modified validity check on pedigree objects to account
2253            for nonparallel patterns of missingness of parents.
2254    
2255            * man/{lmer-class.Rd,mcmcsamp.Rd}: Update documentation for glmer
2256            class.
2257    
2258    2006-07-01  Martin Maechler  <maechler@stat.math.ethz.ch>
2259    
2260            * R/pMatrix.R: coercion pMatrix -> Tsparse
2261    
2262    2006-06-12  Douglas Bates  <bates@R-project.org>
2263    
2264            * DESCRIPTION (Version): 0.995-11 released to CRAN
2265    
2266            * R/lmer.R (mcmcsamp method): Corrected arrangments of names on
2267            the output from mcmcsamp.
2268    
2269    2006-06-10  Douglas Bates  <bates@R-project.org>
2270    
2271            * R/lmer.R (simulestimate): added C code for calculating the trace
2272            of the hat matrix.
2273    
2274    2006-06-09  Martin Maechler  <maechler@stat.math.ethz.ch>
2275    
2276            * R/diagMatrix.R (setAs): define coercion methods to sparse matrix
2277            classes.
2278            * R/sparseMatrix.R etc: multiplication of diagonal and sparse
2279    
2280    2006-06-08  Martin Maechler  <maechler@stat.math.ethz.ch>
2281    
2282            * R/dgTMatrix.R (colSums): etc. All four of
2283            colSums(), rowSums(), colMeans(), rowMeans() now should work for
2284            all "Matrices".
2285    
2286    2006-06-01  Douglas Bates  <bates@stat.wisc.edu>
2287    
2288            * R/lmer.R (panel.ci): Add a reference line at zero and a
2289            background grid to the qqmath plot of ranef.lmer.
2290    
2291    2006-05-30  Douglas Bates  <bates@stat.wisc.edu>
2292    
2293            * R/lmer.R (expandSlash): Functions (non-exported) to allow nested
2294            grouping factors to be specified in the formula as (1|foo/bar).
2295    
2296    2006-05-27  Douglas Bates  <bates@stat.wisc.edu>
2297    
2298            * R/lmer.R (findbars and others): Change check of is.numeric to
2299            !is.language to resolve the bug reported by Jacob Wegelin.
2300    
2301            * src/pedigree.c (pedigree_inbreeding): Initial implementation of
2302            code to evaluate inbreeding coefficients without calculating T,
2303            based on code in Sargolzaei and Iwaisaki's paper.
2304    
2305    2006-05-27  Douglas Bates  <bates@stat.wisc.edu>
2306    
2307            * R/{lmer.R,AllGeneric.R}, src/{init.c,lmer.[ch]}: Added local
2308            generic and mer methods for isNested and denomDF. This denomDF was
2309            an attempt to emulate that in lme but I don't think that makes
2310            sense.  Use the trace of the hat matrix instead.
2311    
2312    2006-05-17  Martin Maechler  <maechler@stat.math.ethz.ch>
2313    
2314            * R/sparseMatrix.R: Matrix <-> graph methods: can no longer use
2315            the C code depending on a slot structure that's no longer valid.
2316            * src/dgTMatrix.c: ditto (also: src/init.c src/dgTMatrix.h)
2317    
2318    
2319    2006-05-17  Douglas Bates  <bates@stat.wisc.edu>
2320    
2321            *  R/{AllGeneric.R,Csparse.R},man/band.Rd,NAMESPACE: changed name
2322            of lowerTriMatrix generic and methods to tril (also upper to triu)
2323            and added a general band extractor.
2324    
2325    2006-05-16  Douglas Bates  <bates@stat.wisc.edu>
2326    
2327            * R/pedigree.R (pedigree): Replace sire and dam values outside the
2328            allowable range with NAs. Added a corresponding check in the
2329            validity check for the pedigree class.
2330    
2331            * R/[CT]sparse.R ([t]crossprod): The result of single-argument
2332            crossprod methods now inherits from symmetricMatrix.
2333    
2334    2006-05-15  Douglas Bates  <bates@stat.wisc.edu>
2335    
2336            * R/AllGeneric.R (lowerTriMatrix): Added (but did not export)
2337            generics lowerTriMatrix and upperTriMatrix along with methods for
2338            the Csparse virtual class.  Also added a C function Csparse_band
2339            that implements these methods by calling cholmod_band.
2340    
2341    2006-05-15  Martin Maechler  <maechler@stat.math.ethz.ch>
2342    
2343            * R/Tsparse.R ("["): column or row subsetting; @Dimnames[k] got
2344            erased when it was NULL.  This led to invalid subselections!
2345    
2346    2006-04-25  Douglas Bates  <bates@stat.wisc.edu>
2347    
2348            * R/dtCMatrix.R: avoid coercion of dtCMatrix object to dgCMatrix
2349            in method for "t" so as not to lose the unit diagonal property.
2350    
2351    2006-04-19  Douglas Bates  <bates@stat.wisc.edu>
2352    
2353            * R/lmer.R, R/AllGeneric.R, NAMESPACE: Remove the postVar generic
2354            and methods.  This is now an option to the ranef method for the
2355            mer class.
2356    
2357            * src/cs_utils.c: Ensure that the nz component is -1 for a
2358            compressed column-oriented matrix.  Minor formatting cleanup.
2359    
2360            * man/lmer-class.Rd: Document the qqmath method for ranef.lmer
2361            objects.
2362    
2363    2006-04-19  Martin Maechler  <maechler@stat.math.ethz.ch>
2364    
2365            * R/Auxiliaries.R (diagU2N): new for the solve() methods in
2366            * R/dtCMatrix.R: where dgC -> dgT coercion now preserves diag = "U".
2367    
2368    2006-04-15  Douglas Bates  <bates@stat.wisc.edu>
2369    
2370            * src/cs.[ch],src/cs_utils.[ch] : Added Tim Davis' CSparse library
2371            in cs.[ch] and utilities to interface to that code in cs_utils.[ch].
2372    
2373            * R/dtCMatrix.R, src/dtCMatrix.[ch] : CSparse-based solve methods
2374            for the dtCMatrix class.
2375    
2376    2006-04-12  Douglas Bates  <bates@stat.wisc.edu>
2377    
2378            * R/pedigree.R, R/AllClass.R, NAMESPACE: added a pedigree class
2379            and methods for it.
2380    
2381    2006-04-12  Martin Maechler  <maechler@stat.math.ethz.ch>
2382    
2383            * R/dgCMatrix.R: add  storage.mode(.) <- "double" for "matrix"
2384            arguments, such that M %*% 1:6 now works
2385            * Tests/matprod.R: test the above
2386    
2387    2006-04-03  Douglas Bates  <bates@stat.wisc.edu>
2388    
2389            * R/lmer.R (qqmath,ranef.lmer-method): added a qqmath method for
2390            the ranef.lmer class.
2391    
2392            * R/AllClass.R, NAMESPACE, R/lmer.R: Added a postVar generic and
2393            methods to extract the posterior variances from the bVar slot.
2394    
2395    2006-03-30  Martin Maechler  <maechler@stat.math.ethz.ch>
2396    
2397            * R/dtCMatrix.R: allow coercion from  dgC* to triangular (dtC*)
2398            * R/dsCMatrix.R: and symmetric (dsC*) 'Csparse' matrices.
2399    
2400            * R/Tsparse.R: Tsparse* -> Csparse* coercion now works and is tested in
2401            * tests/simple: (extended)
2402    
2403            * R/sparseMatrix.R (isTriangular): now using much improved
2404            * R/Auxiliaries.R (isTriC): new triangularity check for *CMatrix
2405    
2406    2006-03-23  Douglas Bates  <bates@stat.wisc.edu>
2407    
2408            * src/dsyMatrix.c (dsyMatrix_as_dspMatrix): Propagate DimNames
2409            (problem report from Franklin Parlamis).  This should be done
2410            generally.
2411    
2412    2006-03-21  Douglas Bates  <bates@stat.wisc.edu>
2413    
2414            * R/AllClass.R,lmer.R: Change the name of the lmer.ranef class to
2415            ranef.lmer (like summary.lmer).  Add the coef.lmer class and
2416            update the plot methods.
2417    
2418    2006-03-20  Douglas Bates  <bates@stat.wisc.edu>
2419    
2420            * R/lmer.R (resid and ranef methods):  Added methods for the
2421            "residuals" and "resid" generic but only for linear mixed model
2422            fits.  Changed the ranef method to return a list of data frames so
2423            that the plot methods now work.
2424    
2425    2006-03-16  Douglas Bates  <bates@bates2>
2426    
2427            * src/dpoMatrix.c (dpoMatrix_chol): Require n > 0 in call to
2428            dpotrf - otherwise the BLAS on Mac OS X complains and quits.
2429    
2430            * DESCRIPTION (Date): New release
2431    
2432    2006-03-15  Martin Maechler  <maechler@stat.math.ethz.ch>
2433    
2434            * DESCRIPTION (Version): 0.995-6  -- to be released to CRAN
2435    
2436            * data/KNex.rda: replacing 'mm' and 'y' by KNex <- list(mm=mm, y=y)
2437            * man/KNex.Rd: and other help files
2438            * tests/*.R: several ones needed adaption
2439            * inst/doc/Comparisons.Rnw: ditto
2440    
2441    2006-03-11  Martin Maechler  <maechler@stat.math.ethz.ch>
2442    
2443            * R/dgCMatrix.R (replCmat): "[<-" methods for dgCMatrix
2444    
2445            * tests/indexing.R: tests for new [<- methods for sparse matrices.
2446    
2447    2006-03-10  Martin Maechler  <maechler@stat.math.ethz.ch>
2448    
2449            * R/dgTMatrix.R (replTmat): "[<-" methods for dgTMatrix
2450    
2451            * R/Tsparse.R (.ind.prep): fix out-of-range indexing
2452    
2453    2006-03-08  Martin Maechler  <maechler@stat.math.ethz.ch>
2454    
2455            * R/dMatrix.R: enable things like  M [ M < 10 ]
2456            * R/dgeMatrix.R: implement it
2457    
2458    2006-03-06  Martin Maechler  <maechler@stat.math.ethz.ch>
2459    
2460            * R/AllClass.R: define "summary.mer" and "*.lmer"
2461            * R/lmer.R (summary): summary(<mer>) computes & returns the above;
2462            * R/lmer.R (show): now works with summary()
2463    
2464    2006-03-04  Martin Maechler  <maechler@stat.math.ethz.ch>
2465    
2466            * R/dgCMatrix.R: finally direct "Arith"  dgC o dgC
2467            * R/Auxiliaries.R (WhichintersectInd): and other utilities to
2468                    support the above
2469    
2470    2006-02-07  Douglas Bates  <bates@stat.wisc.edu>
2471    
2472            * R/lmer.R (lmer): fix initial values of offset and weights for glm.fit.
2473            Use glmFit$prior.weights for weights in a glmm.
2474            Allow an option usePQL = FALSE to skip the PQL steps for the
2475            Laplace method (and, in time, the AGQ method).
2476    
2477            * src/lmer.c (mer_factor): Move downdating and factoring of XtX
2478            into a separate function internal_mer_Xfactor to be able to call
2479            it from internal_bhat.
2480    
2481    2006-01-23  Martin Maechler  <maechler@stat.math.ethz.ch>
2482    
2483            * tests/Class+Meth.R (tstMatrixClass): function for much better
2484            testing; now again of all actual classes.
2485    
2486            * src/Mutils.c (MAKE_TRIANGULAR_BODY, MAKE_SYMMETRIC_BODY):
2487                    use macros and define make_d_matrix_* and make_i_matrix_*
2488                    where _i_ is for the ldense routines:
2489    
2490            * src/ldense.c (ltrMatrix_as_lgeMatrix): provide functions
2491            * src/ldense.c (lsyMatrix_as_lgeMatrix):
2492    
2493            * R/ldenseMatrix.R: use the above in setAs(*,"lgeMatrix")
2494    
2495    
2496    2006-01-16  Martin Maechler  <maechler@stat.math.ethz.ch>
2497    
2498            * R/Matrix.R (Matrix): has become much "smarter" now auto-producing
2499                    many different kinds of matrices.
2500            * R/*.R: quite a few new methods were needed for R CMD check with
2501                    new Matrix().  Very good for users playing around.
2502    
2503    
2504    2006-01-15  Martin Maechler  <maechler@stat.math.ethz.ch>
2505    
2506            * src/dgeMatrix.c (dMatrix_validate): new
2507            * src/Mutils.c (dense_nonpacked_validate): new
2508    
2509            * src/dtrMatrix.c (dtrMatrix_validate): improved/fixed
2510    
2511    
2512    2006-01-14  Douglas Bates  <bates@stat.wisc.edu>
2513    
2514            * R/AllClass.R (compMatrix), (generalMatrix): new virtual classes
2515    
2516    2006-01-07  Douglas Bates  <bates@stat.wisc.edu>
2517    
2518            * DESCRIPTION (Version): 0.99-6 released to CRAN
2519    
2520            * src/dgBCMatrix.c (cscb_trcbsm): Fix due to Peter Dalgaard for
2521            segfault in cases with multiple non-nested grouping factors.
2522    
2523    2006-01-03  Martin Maechler  <maechler@stat.math.ethz.ch>
2524    
2525            * DESCRIPTION (Version): 0.99-4 to be released to CRAN
2526                    (Depends): also on 'utils'
2527    
2528            * R/AllClass.R (diagonalMatrix): new class with "ddi*" and "ldi*"
2529            * R/diagMatrix.R (Diagonal): constructor and methods for
2530            diagonal matrices
2531    
2532            * R/ltTMatrix.R: new "minimal methods"
2533    
2534    2005-12-12  Martin Maechler  <maechler@stat.math.ethz.ch>
2535    
2536            * R/AllGeneric.R (tcrossprod): 2-argument version; here, and for
2537            all methods (and help files).
2538    
2539    2005-12-09  Martin Maechler  <maechler@stat.math.ethz.ch>
2540    
2541            * R/Auxiliaries.R (dimNamesCheck): fixed thinko -> bug
2542                    for case (dimn.  op  no_dimn.)
2543    
2544    2005-11-14  Douglas Bates  <bates@stat.wisc.edu>
2545    
2546            * DESCRIPTION (Version): 0.99-2  released to CRAN
2547    
2548    2005-10-21  Douglas Bates  <bates@stat.wisc.edu>
2549    
2550            * R/lmer.R (simulate method): Fixed a drop=FALSE problem reported
2551            by Julian Faraway.
2552    
2553    2005-10-06  Martin Maechler  <maechler@stat.math.ethz.ch>
2554    
2555            * R/Auxiliaries.R (try_as): new utility
2556            * R/sparseMatrix.R: use try_as() in coercion to original class
2557    
2558    2005-09-30  Martin Maechler  <maechler@stat.math.ethz.ch>
2559    
2560            * src/dgCMatrix.c (double_to_csc): and dgeMatrix_to_csc()
2561    
2562    2005-09-29  Martin Maechler  <maechler@stat.math.ethz.ch>
2563    
2564            * R/Auxiliaries.R (dimNamesCheck): added
2565    
2566            * R/Matrix.R (as.array), (as.vector): new
2567    
2568    2005-09-28  Martin Maechler  <maechler@stat.math.ethz.ch>
2569    
2570            * R/Matrix.R (Matrix): get logical argument 'sparse' with a smart
2571                    default.
2572            * R/AllClass.R: move 'factors' slot toplevel "Matrix";
2573                    "pMatrix" now contains "sparseMatrix"
2574    
2575    2005-09-26  Martin Maechler  <maechler@stat.math.ethz.ch>
2576    
2577            * tests/Class+Meth.R: new tests; t(t(m)) == m
2578    
2579            * src/dtCMatrix.c (tsc_transpose): add forgotten "diag" slot
2580    
2581            * src/dsTMatrix.c (dsTMatrix_as_dsCMatrix): bad typo (segfault!)
2582            * src/dtTMatrix.c (dtTMatrix_as_dtCMatrix): new
2583    
2584            * R/dspMatrix.R: typo in "t" method
2585    
2586    2005-09-18  Douglas Bates  <bates@wisc.edu>
2587    
2588            * R/AllClass.R (TsparseMatrix), CsparseM* and RsparseM*
2589            * R/Tsparse.R: instead of R/gTMatrix.R
2590            * R/Csparse.R: new
2591            * src/Tsparse.c (Tsparse_to_Csparse): new; -> cholmod_()
2592            * src/Tsparse.c: new; many trivial methods calling cholmod_()
2593            * src/Csparse.c (Csparse_to_Tsparse), transpose, (mat|cross)prod:
2594                            via cholmod
2595    
2596    2005-09-16  Martin Maechler  <maechler@stat.math.ethz.ch>
2597    
2598            * R/Auxiliaries.R (non0ind): new function using new C code
2599            * src/dgCMatrix.c (compressed_non_0_ij): new utility
2600    
2601    2005-09-15  Douglas Bates  <bates@localhost.localdomain>
2602    
2603            * src/chm_common.h: header file required by all C sources that
2604            call CHOLMOD functions.  It defines a cholmod_common structure
2605            called 'c' whose address is passed as the last argument to
2606            (virtually) every CHOLMOD function.
2607    
2608            * src/Pattern.c: Simple example of the use of CHOLMOD.
2609    
2610            * src/init.c: initialize and finalize the cholmod_common structure.
2611    
2612            * src/Makefile: Added source packages CHOLMOD UMFPACK AMD COLAMD
2613            LDL and CCOLAMD from the U. of Florida sparse matrix library.
2614    
2615    2005-09-08  Martin Maechler  <maechler@stat.math.ethz.ch>
2616    
2617            * inst/test-tools.R: new file collecting the utility functions used
2618                    in ./tests/*.R
2619    
2620            * R/ddenseMatrix.R (cbind2): new methods for "numeric" and "matrix"
2621            * R/Matrix.R (cbind2): methods for NULL and missing
2622    
2623    2005-08-31  Martin Maechler  <maechler@stat.math.ethz.ch>
2624    
2625            * R/AllClass.R: new "index" class for "[" and "[<-":
2626                    First cut at "symmetricMatrix" and "triangularMatrix"
2627            * R/gTMatrix.R (.ind.prep): new function;
2628                    Logical and character indexing now work too.
2629            * R/Matrix.R: cheap "[<-" methods for denseMatrix now work
2630            * tests/indexing.R: new, including *.Rout.save
2631            * tests/dgTMatrix.R: new
2632    
2633    2005-08-29  Douglas Bates  <bates@wisc.edu>
2634    
2635            * src/dgTMatrix.c (graphNEL_as_dgTMatrix): Corrected the position
2636            indicator pos not being updated.  Also enforced upper triangular
2637            for symmetric case.  Need to coerce edges component of elements of
2638            edge list - grr! (Why don't they define their classes cleanly?)
2639    
2640    2005-08-26  Martin Maechler  <maechler@stat.math.ethz.ch>
2641    
2642            * R/Matrix.R:  added first "[<-" methods; not yet functional
2643            * R/denseMatrix.R: ditto
2644            * man/Subassign-methods.Rd: new help file for these
2645    
2646    2005-08-25  Martin Maechler  <maechler@stat.math.ethz.ch>
2647    
2648            * DESCRIPTION (Version): 0.98-6
2649    
2650            * R/denseMatrix.R: new file for "[" fallback methods for all dense
2651            matrices.
2652    
2653    2005-08-19  Martin Maechler  <maechler@stat.math.ethz.ch>
2654    
2655            * src/lgCMatrix.c (lcsc_to_matrix): new; need for
2656                    as( <logical>, "matrix")
2657    
2658            * R/pMatrix.R: coercion to "lgTMatrix"
2659    
2660            * R/gTMatrix.R: new virtual class to define "[" methods for.
2661            * man/gTMatrix-class.Rd:
2662            * General slight re-organization of where "[" methods are defined.
2663              more to come.
2664    
2665    2005-08-18  Douglas Bates  <bates@wisc.edu>
2666    
2667            * DESCRIPTION (Version): 0.98-5  released to CRAN
2668    
2669            * src/dgTMatrix.c (graphNEL_as_dgTMatrix): add first graphNEL methods
2670            * .....
2671    
2672    2005-08-18  Douglas Bates  <bates@localhost.localdomain>
2673    
2674            * R/lmer.R: Corrected naming scheme in mcmcsamp to work with lmer
2675            or glmer objects.
2676    
2677    2005-08-17  Martin Maechler  <maechler@stat.math.ethz.ch>
2678    
2679            * DESCRIPTION (Version): 0.98-4 : upload to CRAN
2680    
2681    2005-08-16  Douglas Bates  <bates@localhost.localdomain>
2682    
2683            * R/HBMM.R: finish re-writing R-only code.
2684    
2685    2005-08-15  Douglas Bates  <bates@localhost.localdomain>
2686    
2687            * man/externalFormats.Rd: move documentation for writeHB and
2688            writeMM here.
2689    
2690            * src/mmio.c: replace inclusion of <malloc.h> by <stdlib.h>
2691            (suggested by Paul Roecker).
2692    
2693            * tests/validObj.R (assertError): Comment out test that is failing
2694            after recent changes in r-devel.
2695    
2696    
2697    2005-08-11  Martin Maechler  <maechler@stat.math.ethz.ch>
2698    
2699            * R/AllClass.R: intermediate virtual class "denseMatrix"
2700            * man/denseMatrix-class.Rd
2701            * NAMESPACE: export it, and also export
2702            * man/unused-classes.Rd: "iMatrix", "zMatrix" and "ldenseMatrix"
2703    
2704    2005-08-10  Douglas Bates  <bates@wisc.edu>
2705    
2706            * DESCRIPTION (Version): 0.98-3 to CRAN
2707    
2708            * src/dtrMatrix.c (dtrMatrix_validate): fixed up validation and
2709            matrix_solve code (which was really, really wrong).
2710    
2711    2005-08-07  Douglas Bates  <bates@wisc.edu>
2712    
2713            * DESCRIPTION (Version): 0.98-2
2714    
2715            * R/HBMM.R (readHB), (readMM): read Matrix Market formats
2716    
2717            * R/lmer.R (abbrvNms): new
2718            * R/lmer.R (mcmcsamp): allow transformed parameters
2719            * src/HBMM.c (Matrix_writeMatrixMarket): Added read/write routines
2720            for the Harwell-Boeing and the MatrixMarket formats.
2721    
2722    2005-08-04  Martin Maechler  <maechler@stat.math.ethz.ch>
2723    
2724            * man/dtrMatrix-class.Rd: add examples
2725            * man/dtpMatrix-class.Rd: ditto; plus note about PROBLEM
2726    
2727            * TODO: note the dtpMatrix (docu) bug
2728    
2729            * R/zzz.R (.onLoad): assignInNamespace("as.matrix", *, "base")
2730            in order to ensure that new as.matrix() is used by old functions,
2731            e.g., svd(), qr(), eigen(), dist(),..;
2732                  apply(), also matplot() or pairs().
2733    
2734    
2735    2005-08-03  Martin Maechler  <maechler@stat.math.ethz.ch>
2736    
2737            * R/lmer.R: add 'fixme' comments and move the linear vs glm check;
2738              add comments about 'control' / lmerControl() arguments
2739    
2740    2005-07-27  Douglas Bates  <bates@wisc.edu>
2741    
2742            * man/sleepstudy.Rd: Added the sleep data set.
2743            * DESCRIPTION (Version): 0.98-1  released to CRAN
2744    
2745    2005-07-12  Douglas Bates  <bates@wisc.edu>
2746            * man/sleepstudy.Rd: Added the sleep data set.
2747    
2748            * R/lmer.R (glmmMCMC): Added PACKAGE = "Matrix" in a couple of
2749            .Call calls that were producing spurious output.
2750    
2751    2005-07-05  Douglas Bates  <bates@wisc.edu>
2752    
2753            * R/lmer.R (lmer): stored updated variance component estimates in
2754            mer object for the generalized model.  (Bug reported by Renaud
2755            Lancelot).
2756    
2757    2005-07-03  Douglas Bates  <bates@wisc.edu>
2758    
2759            * src/lmer.c (glmer_devAGQ): Added AGQ for single grouping factor,
2760            unidimensional case.
2761    
2762    2005-06-08  Douglas Bates  <bates@wisc.edu>
2763    
2764            * DESCRIPTION (Version): 0.96-1
2765    
2766            * moved  lmer-class' R and C code moved from lme4 to here
2767    
2768    2005-06-04  Douglas Bates  <bates@wisc.edu>
2769    
2770            * R/dgCMatrix.R: Call to csc_matrix_mm used undefined arguments
2771            (reported by Guissepe Ragusa <gragusa@ucsd.edu>)
2772    
2773    2005-06-02  Douglas Bates  <bates@wisc.edu>
2774    
2775            * src/Makefile.win: Forgot to update this when Makefile changed.
2776    
2777    2005-05-11  Douglas Bates  <bates@wisc.edu>
2778    
2779            * src/dgCMatrix.c (csc_transpose): Simplified function fixing a
2780            bug reported by Kurt Hornik and Michael Hahsler.
2781    
2782    2005-05-10  Douglas Bates  <bates@wisc.edu>
2783    
2784            * src/lgCMatrix.c (Matrix_lgClgCmm): Implementation of methods for
2785            logical sparse matrices.  These will also be used in the symbolic
2786            analysis for lmer objects.
2787    
2788            * src/dsCMatrix.c (dsCMatrix_matrix_solve): Copied the dimensions
2789            of b to the result.  Fixes bug reported by Jean.Coursol@math.u-psud.fr
2790    
2791    2005-05-06  Douglas Bates  <bates@wisc.edu>
2792    
2793            * src/dgeMatrix.c (dgeMatrix_colsums): Added an implementation of
2794            colMeans, colSums, rowMeans and rowSums.
2795    
2796    2005-04-18  Douglas Bates  <bates@wisc.edu>
2797    
2798            * src/lgCMatrix.[ch]: code for _validate method and stub for
2799            multiplication operation.
2800    
2801            * src/dgeMatrix.c (dgeMatrix_matrix_solve): Passing wrong argument
2802            to dgetrs.
2803    
2804            * src/init.c: Fix cut-and-paste error in definition of
2805            dgeMatrix_matrix_solve
2806    
2807            * src/{many files}: Tighten code by using ALLOC_SLOT.
2808    
2809    2005-04-15  Douglas Bates  <bates@wisc.edu>
2810    
2811            * R/AllClass.R: Add lgTMatrix and lgCMatrix classes
2812    
2813            * DESCRIPTION: Eliminate import of stats.
2814    
2815    
2816    2005-04-06  Douglas Bates  <bates@wisc.edu>
2817    
2818            * R/AllClass.R : add logical sparse matrix classes
2819    
2820    2005-04-01  Martin Maechler  <maechler@stat.math.ethz.ch>
2821    
2822            * R/dgTMatrix.R: add "[" method for triplet matrices
2823            * R/sparseMatrix.R: and other sparse ones; --> add show() for sparse
2824    
2825    2005-03-31  Douglas Bates  <bates@wisc.edu>
2826    
2827            * DESCRIPTION (Version): release 0.95-5 to CRAN
2828    
2829            * R/dMatrix.R: add %*%, crossprod and solve "fallback" methods
2830            * R/sparseMatrix.R: %*%, crossprod()
2831            * R/dgeMatrix.R: more "fallback" methods for numeric/dense matrices
2832            * man/*.Rd: move method definitions to 'Matrix' and 'dMatrix'
2833            * src/lmer.c (lmer_fitted): fix thinko
2834    
2835    2005-03-26  Martin Maechler  <maechler@stat.math.ethz.ch>
2836    
2837            * R/AllClass.R: add two virtual sparse classes ``on top''
2838    
2839    2005-03-24  Martin Maechler  <maechler@stat.math.ethz.ch>
2840    
2841            * R/AllClass.R (setClass): use "VIRTUAL" for the virtual classes;
2842                    correspondingly fix examples and tests/ since new()
2843                    doesn't work for virtual classes.
2844    
2845    2005-03-17  Martin Maechler  <maechler@stat.math.ethz.ch>
2846    
2847            * R/Matrix.R (as.matrix): method and one for unname()
2848            * tests/dpoMatrix.R: tests should now be less platform dependent;
2849              also run for R 2.1.0; using as.matrix()
2850    
2851    2005-03-15  Douglas Bates  <bates@wisc.edu>
2852    
2853            * R/pMatrix.R: "pMatrix" class added
2854            * ....
2855    
2856    2005-03-14  Douglas Bates  <bates@wisc.edu>
2857    
2858            * R/dtpMatrix.R: Add unpack method and an example.
2859    
2860            * src/dsyMatrix.c (dsyMatrix_trf): Add BunchKaufman factorization
2861            of general symmetric matrices and associated S4 methods.
2862    
2863    2005-03-10  Martin Maechler  <maechler@stat.math.ethz.ch>
2864            +
2865    2005-03-05  Martin Maechler  <maechler@stat.math.ethz.ch>
2866    
2867            * R/dgeMatrix.R (setAs): and many other files: more coercion,
2868              crossprod() and "%*%" methods added; tests, too.
2869            * tests/matprod.R: new, for testing these
2870    
2871    2005-03-03  Douglas Bates  <bates@wisc.edu>
2872    
2873            * src/lmer.c (lmer_fitted): Added.
2874    
2875    2005-03-02  Douglas Bates  <bates@wisc.edu>
2876    
2877            * R/dsTMatrix.R: Conversion from dsTMatrix to dsCMatrix
2878    
2879    2005-02-28  Douglas Bates  <bates@wisc.edu>
2880    
2881            * src/*.c,po/,inst/po: Internationalization and localization of
2882            the package.
2883    
2884            * src/ldl.[ch]: Removed these as their contents are referenced in the
2885            R_ldl.c file.
2886    
2887            * src/flame.[ch]: Removed these source files.
2888    
2889            * src/dtrMatrix.c (make_array_triangular): Move to Mutils
2890    
2891            * src/LU.[ch],src/init.c: absorb in factorizations
2892    
2893            * src/Mutils.h: prepare for internationalization
2894    
2895            * src/cblas.h: move the enum definitions to Mutils.h and remove
2896            this file
2897    
2898    2005-02-26  Martin Maechler  <maechler@stat.math.ethz.ch>
2899    
2900            * R/dgeMatrix.R: provide "dimnames" and "dimnames<-" methods
2901    
2902            * R/dtrMatrix.R: fix t() method
2903    
2904            * R/dgeMatrix.R: define group methods "Arith", "Math", "Math2"
2905            * NAMESPACE: export them (and import generics from "methods")
2906            * tests/group-methods.R : and test them.
2907    
2908            * src/dtrMatrix.c (dtrMatrix_as_dgeMatrix): prevent seg.fault in
2909            border case
2910    
2911    2005-02-24  Douglas Bates  <bates@stat.wisc.edu>
2912    
2913            * DESCRIPTION (Version): 0.95-2  released to CRAN
2914    
2915            * src/dgBCMatrix.c:
2916            * src/lmer.c: many changes
2917            * ...
2918    
2919    2005-02-04  Martin Maechler  <maechler@stat.math.ethz.ch>
2920    
2921            * R/Matrix.R: add more sophisticated show() method.
2922    
2923    2005-02-02  Douglas Bates  <bates@stat.wisc.edu>
2924    
2925            * */* : almost complete reorganization of classes.
2926    
2927    2005-01-26  Douglas Bates  <bates@wisc.edu>
2928    
2929            * R/AllGeneric.R: Added matrix exponential generic expm and a method
2930            for the geMatrix class.
2931    
2932    2005-01-24  Douglas Bates  <bates@wisc.edu>
2933    
2934            * src/Makefile (clean): Remove *.a and *.so
2935    
2936            * man/cscBlocked-class.Rd: Remove reference to the lmer-class.
2937    
2938    2005-01-23  Douglas Bates  <bates@wisc.edu>
2939    
2940            * src/lmer.c (Lind): Definition of Lind was backwards.  This only
2941            had an effect in cases with more than 2 grouping factors.
2942    
2943    2005-01-03  Douglas Bates  <bates@wisc.edu>
2944    
2945            * src/lmeRep.c (lmer_variances): change from lmeRep to lmer
2946    
2947    2004-12-23  Douglas Bates  <bates@wisc.edu>
2948    
2949            * src/init.c (R_init_Matrix): Reorder calls to R_registerRoutines
2950            and R_useDynamicSymbols (suggested by B.D.Ripley).
2951    
2952    2004-12-14  Douglas Bates  <bates@wisc.edu>
2953    
2954            * R/sscMatrix.R: Add determinant methods
2955    
2956            * src/triplet.[ch],src/init.c (triplet_to_matrix): Add a coercion
2957            for tripletMatrix to matrix.
2958    
2959    2004-12-13  Douglas Bates  <bates@wisc.edu>
2960    
2961            * R/AllClass.R (.onLoad): Eliminate the bbCrosstab class, which is
2962            no longer used.
2963    
2964          * src/R_ldl.c: Created an R-specific version of the ldl.[ch] files          * src/R_ldl.c: Created an R-specific version of the ldl.[ch] files
2965          with dynamic allocation of scratch arrays.          with dynamic allocation of scratch arrays.
# Line 7  Line 2968 
2968          for multivariate random effects with multiple grouping factors.          for multivariate random effects with multiple grouping factors.
2969          Fixes part but not all of #15.          Fixes part but not all of #15.
2970    
2971  2004-12-03  Douglas Bates  <bates@bates1-home>  2004-12-03  Douglas Bates  <bates@wisc.edu>
2972    
2973          * src/lmeRep.c (lmeRep_factor): order of operations for multiple          * src/lmeRep.c (lmeRep_factor): order of operations for multiple
2974          scalar grouping factors corrected.          scalar grouping factors corrected.
2975    
2976  2004-11-29  Douglas Bates  <bates@bates1-home>  2004-11-29  Douglas Bates  <bates@wisc.edu>
2977    
2978          * src/bCrosstab.c: remove diag_update which is no longer used          * src/bCrosstab.c: remove diag_update which is no longer used
2979    
2980  2004-11-16  Douglas Bates  <bates@bates1-home>  2004-11-16  Douglas Bates  <bates@wisc.edu>
2981    
2982          * src/Metis_utils.c: Move metis.h include to C sources so that the          * src/Metis_utils.c: Move metis.h include to C sources so that the
2983          .h file can be included.          .h file can be included.
2984    
2985  2004-11-12  Douglas Bates  <bates@bates1-home>  2004-11-12  Douglas Bates  <bates@wisc.edu>
2986    
2987          * src/LU.c,geMatrix.c,trMatrix.c, etc.:          * src/LU.c,geMatrix.c,trMatrix.c, etc.:
2988          Complete allocation of slots in NEW_OBJECT.          Complete allocation of slots in NEW_OBJECT.
2989    
2990          * src/Mutils.h: Moved list of symbols to an include file          * src/Mutils.h: Moved list of symbols to an include file
2991    
2992  2004-11-11  Douglas Bates  <bates@bates1-home>  2004-11-11  Douglas Bates  <bates@wisc.edu>
2993    
2994          * src/geMutils.c (Matrix_init): remove unused function          * src/geMutils.c (Matrix_init): remove unused function
2995    
2996  2004-11-10  Douglas Bates  <bates@bates1-home>  2004-11-10  Douglas Bates  <bates@wisc.edu>
2997    
2998          * src/cscMatrix.c (csc_to_imagemat): removed unused function          * src/cscMatrix.c (csc_to_imagemat): removed unused function
2999    
3000  2004-11-05  Douglas Bates  <bates@bates1-home>  2004-11-05  Douglas Bates  <bates@wisc.edu>
3001    
3002          * src/Makefile.win (SOURCES_C): Keep consistent with Makefile          * src/Makefile.win (SOURCES_C): Keep consistent with Makefile
3003    
3004  2004-10-27  Douglas Bates  <bates@bates1-home>  2004-10-27  Douglas Bates  <bates@wisc.edu>
3005    
3006          * R/pdmatrix.R: remove PACKAGE="Matrix" in .Call calls          * R/pdmatrix.R: remove PACKAGE="Matrix" in .Call calls
3007    
3008  2004-10-04  Douglas Bates  <bates@bates1-home>  2004-10-04  Douglas Bates  <bates@wisc.edu>
3009    
3010          * src/init.c: Created R_init_Matrix and added registration of C          * src/init.c: Created R_init_Matrix and added registration of C
3011          routines.          routines.
3012    
3013  2004-10-02  Douglas Bates  <bates@bates1-home>  2004-10-02  Douglas Bates  <bates@wisc.edu>
3014    
3015          * R/tripletMatrix.R: Force a require(lattice) for the image methods.          * R/tripletMatrix.R: Force a require(lattice) for the image methods.
3016    
3017  2004-06-15  Douglas Bates  <bates@bates7>  2004-06-15  Douglas Bates  <bates@wisc.edu>
3018    
3019          * man/trMatrix-class.Rd: Escape the % chars in .Rd files.          * man/trMatrix-class.Rd: Escape the % chars in .Rd files.
3020    

Legend:
Removed from v.388  
changed lines
  Added in v.2236

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