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

Legend:
Removed from v.876  
changed lines
  Added in v.2202

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