SCM

SCM Repository

[matrix] Diff of /pkg/ChangeLog
ViewVC logotype

Diff of /pkg/ChangeLog

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

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

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

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