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

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

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