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

Legend:
Removed from v.1271  
changed lines
  Added in v.2235

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