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

Legend:
Removed from v.1174  
changed lines
  Added in v.2123

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