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

Legend:
Removed from v.111  
changed lines
  Added in v.2226

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