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

Legend:
Removed from v.350  
changed lines
  Added in v.2223

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