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

Legend:
Removed from v.388  
changed lines
  Added in v.2209

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