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

Legend:
Removed from v.848  
changed lines
  Added in v.2130

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