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

Legend:
Removed from v.1271  
changed lines
  Added in v.2239

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