SCM

SCM Repository

[matrix] Diff of /pkg/ChangeLog
ViewVC logotype

Diff of /pkg/ChangeLog

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

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

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

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