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

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

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