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

Legend:
Removed from v.848  
changed lines
  Added in v.2196

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