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

Legend:
Removed from v.1312  
changed lines
  Added in v.2207

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