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

Legend:
Removed from v.876  
changed lines
  Added in v.2242

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