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

Legend:
Removed from v.1298  
changed lines
  Added in v.2255

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