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

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