SCM

SCM Repository

[matrix] Diff of /pkg/ChangeLog
ViewVC logotype

Diff of /pkg/ChangeLog

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

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

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

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