SCM

SCM Repository

[matrix] Diff of /pkg/ChangeLog
ViewVC logotype

Diff of /pkg/ChangeLog

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

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

Legend:
Removed from v.876  
changed lines
  Added in v.2245

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