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

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

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