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

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