SCM Repository

[matrix] View of /pkg/ChangeLog
ViewVC logotype

View of /pkg/ChangeLog

Parent Directory Parent Directory | Revision Log Revision Log

Revision 1964 - (download) (annotate)
Sat Jul 7 18:26:22 2007 UTC (13 years, 8 months ago) by bates
File size: 76563 byte(s)
*** empty log message ***
2007-07-07 18:23  Douglas Bates <>

        * [r4567] R/AllClass.R: Slots already in RsparseMatrix were redefined in
        * [r4568] DESCRIPTION: Prepare for bug-fix release
2007-07-06  Martin Maechler  <>

	* DESCRIPTION (Version): 0.999375 merged into the trunk; ready for

2007-07-06 14:11  Douglas Bates <>

	* [r4559] src/iohb.c, src/iohb.h: Remove Harwell-Boeing input/output
	  functions - no longer used
	* [r4560] src/HBMM.c, src/Mutils.c, src/dgTMatrix.c, src/dgeMatrix.c,
	  src/dspMatrix.c, src/dsyMatrix.c, src/dtCMatrix.c,
	  src/factorizations.c, src/sparseQR.c: Replace most calls to Calloc by

2007-07-06 13:14  Martin Maechler <>

	* [r4558] inst/doc/Comparisons.Rnw, src/CHMfactor.c, src/Csparse.c,
	  src/Tsparse.c, src/chm_common.c, src/chm_common.h, src/dense.c,
	  src/dgCMatrix.c, src/dsCMatrix.c, src/dtTMatrix.c, src/sparseQR.c,
	  src/t_gCMatrix_colSums.c: more R_CheckStack()s

2007-07-05 18:12  Douglas Bates <>

	* [r4550] inst/include/Matrix.h: Add the macro N_AS_CHM_DN to "alloca"
	  the required amount of memory then call M_numeric_as_chm_dense.
	* [r4556] src/Mutils.h, src/dgCMatrix.c: Define and use the Alloca macro
	  (like Calloc but calling alloca)

2007-07-05  Martin Maechler  <>

	* R/sparseMatrix.R (printSpMatrix): renamed from prSpMatrix()
	and extended with more sophisticated 'col.names' option.
	* NAMESPACE: export  printSparseMatrix()
	* man/printSpMatrix.Rd: document, incl. examples

2007-07-04 16:21  Douglas Bates <>

	* [r4543] src/cs_utils.c, src/cs_utils.h, src/dgCMatrix.c,
	  src/dtCMatrix.c, src/sparseQR.c: CSP typedef for *cs and macro
	  AS_CSP. API change - pass the empty structure to Matrix_as_cs.

2007-07-04  Martin Maechler  <>

	* DESCRIPTION (Version): 0.99875-4

	* tests/Class+Meth.R (tstMatrixClass): add dimnames, and hence test
	some dimnames perservation.

	* R/dsTMatrix.R (t-method): keep dimnames
	* R/dtTMatrix.R:  ditto

	* R/sparseMatrix.R (prSpMatrix): print colnames when non-trivial
	and ncol(.) < 10

	* src/cs_utils.c: drop check_class() and use Matrix_check_class()
	from Mutils.h

	* src/lgCMatrix.c ([ln]csc_to_matrix): no longer lose dimnames,
	e.g. in as(<ngCMatrix>, "matrix")

2007-07-01 13:27  Douglas Bates <>

	* [r4529] .: Create a branch for the API changes from the 0.99875
	  series to the 0.999375 series
	* [r4530] DESCRIPTION, inst/include/Matrix.h,
	  inst/include/Matrix_stubs.c, src/CHMfactor.c, src/Csparse.c,
	  src/Mutils.h, src/Tsparse.c, src/chm_common.c, src/chm_common.h,
	  src/dense.c, src/dgCMatrix.c, src/dsCMatrix.c, src/dtTMatrix.c,
	  src/t_gCMatrix_colSums.c: API change - pass the empty structure to the
	  as_cholmod_x functions

2007-06-30 09:05  Martin Maechler <>

	* [r4527] trunk/Matrix/DESCRIPTION, trunk/Matrix/NAMESPACE,
	  trunk/Matrix/inst/doc/Comparisons.Rnw: add session- and hardware-info
	  to Comparisons

>>>>>>> .merge-right.r4561
2007-06-29  Martin Maechler  <>

	* DESCRIPTION (Version): 0.99875-3 ready to be released.

	* R/sparseMatrix.R (spMatrix): make spMatrix(3,4) working

	* R/AllGeneric.R: set "Math" (and "Math2") group generics in a way
	that should also work in a future version of R.

2007-06-21  Martin Maechler  <>

	* NAMESPACE, R/AllClass.R: "xsparseVector" class union.

	* R/sparseVector.R: more *sparseVector coercions, notably for
	non - double ones.

2007-06-19  Martin Maechler  <>

	* R/colSums.R: new file for all (col|row)(Sums|Means) methods,
	  notably the new ones building on the new .Call(.)s:

	* src/dgCMatrix.c (DEF_gCMatrix_COLSUMS): use to define
	all 4 of [dlin]gCMatrix_colSums().

2007-06-18 16:12  Douglas Bates <>

	* [r4472] src/Syms.h, src/init.c: Added Matrix_lengthSym
	* [r4473] src/dgCMatrix.c: Modified dgCMatrix_colSums for sparseVector

2007-06-16  Martin Maechler  <>

	* R/kronecker.R: fix typo (could lead to inf.recursion)
	* test/simple.R: testing that

	* R/sparseMatrix.R (prSpMatrix): change to be used as print()
	method as well (which can have arguments, show() can't).

2007-06-16 15:52  Douglas Bates <>

	* [r4466] R/dgCMatrix.R, src/dgCMatrix.c, src/dgCMatrix.h, src/init.c:
	  added dgCMatrix_colSums for [col,row][Sums,Means]

2007-06-15 23:15  Douglas Bates <>

	* [r4460] R/sparseMatrix.R, man/dgCMatrix-class.Rd, src/dgCMatrix.c,
	  src/dgCMatrix.h, src/init.c: added (unexported),
	  coercion of "factor" to "dgCMatrix" and dgCMatrix_cholsol
	* [r4461] R/AllClass.R, man/sparseMatrix-class.Rd: draft "indicators"
	* [r4463] R/sparseMatrix.R, man/dgCMatrix-class.Rd,
	  man/sparseMatrix-class.Rd: Don't need an "indicators" class - use the
	  row names to store the levels - duh!	Added an example.

2007-06-14  Martin Maechler  <>

	* src/Csparse.c (Csparse_validate): check for *repeated* entries
	thanks to example from Christian Buchta; with a test here:
	* tests/simple.R:

2007-06-07  Martin Maechler  <>

	* R/Auxiliaries.R (callGeneric): another fix, needed for some cases
	of colSums(*, sparseResult = TRUE)

2007-06-06  Martin Maechler  <>

	* R/lsparseMatrix.R, R/ldenseMatrix.R (all, any): change default to
	'na.rm = FALSE' as "everywhere" else in R.

2007-06-05 Douglas Bates <>

	* [r4421] src/ Modify for new organization of
	  CSparse package
	* [r4425] src/ Update to version 3.0.0 of
	* [r4426] src/Makefile: add ./UFconfig to the include path for
	* [r4427] src/cs.[ch]: update to CSparse version 2.2.0
	* [r4428] inst/doc/UFsparse/* src/{AMD,CHOLMOD,COLAMD}/*
	  src/UFconfig/UFconfig.h: Update to version 3.0.0 of SuiteSparse

2007-06-05  Martin Maechler  <>

	* R/Auxiliaries.R (emptyColnames): + argument msg.if.not.empty, used in
	* R/sparseMatrix.R (prSpMatrix): now gives a message about
	suppressed column names.

2007-06-04 17:13  Douglas Bates <>

	* [r4418] src/Csparse.c, src/HBMM.c, src/Mutils.c, src/Mutils.h,
	  src/Tsparse.c, src/chm_common.c, src/chm_common.h, src/dgCMatrix.c,
	  src/dgeMatrix.c, src/dpoMatrix.c, src/dpoMatrix.h, src/dppMatrix.c,
	  src/dppMatrix.h, src/dsCMatrix.c, src/dspMatrix.c, src/dspMatrix.h,
	  src/dsyMatrix.c, src/dsyMatrix.h, src/dtpMatrix.c, src/dtrMatrix.c:
	  Remove warnings after change to const char* CHAR

2007-06-04 17:11  Douglas Bates <>

	* [r4417] inst/include/Matrix_stubs.c, inst/include/cholmod.h: Corrected
	  type of M_cholmod_ssmult

2007-06-03 14:42  Douglas Bates <>

	* [r4412] inst/include/Matrix_stubs.c, inst/include/cholmod.h,
	  src/init.c: Yet another cholmod export - cholmod_ssmult

2007-05-23  Martin Maechler  <>

	* NAMESPACE: exported drop0(), since
	* man/drop0.Rd: I have seen several cases, I really wanted to use
	it, so our users may want too.

2007-05-22  Martin Maechler  <>

	* man/colSums.Rd: separately document colSums() etc, since these
	have the extra argument 'sparseResult'.

2007-05-21  Martin Maechler  <>

	* R/sparseMatrix.R (spMatrix): utility (T)sparse Matrix constructor;
	* man/spMatrix.Rd: docu., including examples

	* R/Auxiliaries.R (sp.colMeans): etc, using a patched callGeneric(),
	in order to make colMeans() etc fast *and* correct.
	* R/sparseVector.R (replSPvec): "[<-" functionality for
	sparseVectors; tested in
	* tests/simple.R:

2007-05-19  Martin Maechler  <>

	* R/sparseMatrix.R (print.sparseSummary): and summary() method for
	(very) sparse Matrices; output similar to Matlab's print().

2007-05-17  Douglas Bates  <>

	* src/HBMM.c (Matrix_writeMatrixMarket): Write 1-based, not
	0-based, indices (Jose Quesada <>).

2007-05-16  Douglas Bates  <>

	* R/CHMfactor.R: Added solve methods for a CHMfactor object.

2007-05-16  Martin Maechler  <>

	* R/Auxiliaries.R (sparsapply): new utility, much faster than
	tapply1() for large sparse matrices.

2007-05-15  Martin Maechler  <>

	* R/Matrix.R (dim<-): reshape now via sparseVector.

	* R/sparseVector.R: methods and function for
	* R/AllClass.R: new "sparseVector" class and daughters.
	* NAMESPACE: export new classes

2007-05-14  Martin Maechler  <>

	* DESCRIPTION (Version): 0.99875-1
	* src/ also remove Lapack code from here (cf. 04-25).

2007-05-11  Martin Maechler  <>

	* R/Tsparse.R ([, Tsparse): fix last case: *duplicated*, symmetric
	* tests/indexing.R: test set for that.

2007-05-08  Martin Maechler  <>

	* R/Tsparse.R (replTmat): fix the case of *duplicated* index
	* tests/indexing.R(out): add regression test for it

2007-04-30  Martin Maechler  <>

	* R/(l(dense|sparse))?Matrix.R (!): use 'x', not 'e1' as argument
	name for "!" method definitions.

2007-04-26  Martin Maechler  <>

	* R/Tsparse.R (intI): new utility, used for "[" :
		Cleanup up there, and fixes for duplicated indices - more TODO!

	* tests/indexing.R(out): more tests

2007-04-25  Douglas Bates  <>

	* DESCRIPTION,src/Makefile: require R>= 2.5.0 and remove Lapack
	code that is now part of the R Lapack library.

	* src/init.c,inst/include/{Matrix_stubs.c,cholmod.h}:export
	cholmod_factorize_p (used in lme4 for GLMMs and NLMMs).

2007-04-21  Martin Maechler  <>

	* R/Matrix.R (image): method for all Matrices, not just sparse ones.

2007-04-17  Martin Maechler  <>

	* R/Auxiliaries.R (tapply1): unname(.) -> colSums() etc don't end
	up with extraneous names '0'...'<n-1>'

2007-04-12  Martin Maechler  <>

	* R/dgTMatrix.R (mat2dgT): care about NAs

2007-04-11  Martin Maechler  <>

	* R/kronecker.R: triangularity preserving methods

2007-03-27  Martin Maechler  <>

	* R/kronecker.R: new file collecting kronecker() methods in one
		place.  Goal: become much faster!

2007-03-23  Martin Maechler  <>

	* src/dtCMatrix.c (dtCMatrix_solve): use the new code from Kasper
	Kristensen based cs_spsolve() instead of _lsolve & _usolve which
	can be much faster.

	* tests/matprod.R: add regression tests for these (upper & lower).

2007-03-19  Martin Maechler  <>

	* R/Matrix.R (diff): method for our Matrices.

	* R/sparseMatrix.R (isDiagonal): check dim()!

2007-03-17  Martin Maechler  <>

	* R/Matrix.R (dim<-): new method for "reshape()" built on a
	proposal from Tamas Papp.

2007-03-16  Martin Maechler  <>

	* R/AllGeneric.R: remove all  if(!isGeneric(.))  clauses

	* R/zzz.R (.onLoad, .onUnload): do *not* leave bind_activation(TRUE);
	rather define and export  cBind() and rBind() only.
	--> useRs *must* change code that used to have cbind()/rbind() !!

	* R/bind.R: change tests from cbind() to cBind() and similarly to rBind()
	* R/ ditto

2007-02-16  Douglas Bates  <>

	* DESCRIPTION (Date, Version): 0.9975-11 with new date
	* src/dgCMatrix.c (R_to_CMatrix, compressed_to_TMatrix): remove
	const modifier on declaration of the array 'valid'

2007-02-12  Douglas Bates  <>

	* R/CHMfactor.R: Add image method (coercion to sparseMatrix).

2007-02-05  Martin Maechler  <>

	* DESCRIPTION (Date, Version): 0.9975-10 with new date.

	* R/Ops.R (Arith): make sure Csparse o Csparse also works for e.g. ntCMatrix
	* tests/simple.R: test the above and some of these coercions:

	* R/nsparseMatrix.R: coercing "Csparse" to "lsparseMatrix";
		be careful to avoid infinite recursion, using new coercions in
	* R/ngCMatrix.R and nsC... and ntC...
	* R/lsparseMatrix.R: ditto

	* R/SparseM-conv.R: more conversion, notably for triplet matrices.

	* src/dgCMatrix.c (R_to_C_Matrix): port Doug's fix and
	* R/Rsparse.R: reactivate .Call()s

	* tests/Class+Meth.R: a bit more on actual classes

2007-02-04  Douglas Bates  <>

	* src/dgCMatrix.c (compressed_to_TMatrix): fix memory bug using strdup()

2007-02-03  Martin Maechler  <>

	* DESCRIPTION (Version): 0.9975-10 to upload

	* tests/Class+Meth.R (tstMatrixClass): require coercions to
	specific classes less unconditionally.

	* R/Auxiliaries.R: get rid of as_Tsparse() and as_Rsparse()

	* R/Tsparse.R (triu): etc, use as(*, "TsparseMatrix") instead of as_Tsparse()

	* R/Rsparse.R (.R.2.T): R-level workaround using compressed_to_TMatrix.
	* R/Rsparse.R (.R.2.C): R-level workaround since C-level
	R_to_CMatrix segfaults on one platform.
	Eliminate most coercion method to *specific* classes, and replace
	with virtual classes coercions.

2007-02-01  Martin Maechler <>

	* src/init.c: export the CHM...._validate() placeholders, since
	they *are* called.

	* tests/Class+Meth.R (classCanCoerce): and starting to test
	all as(<from>, <to>)

2007-01-30  Martin Maechler  <>

	* R/Tsparse.R ([): more care when subsetting triangular Tsparse
	* tests/indexing.R: tested now
	* tests/ updated

	* src/Csparse.c (Csparse_to_dense): use Rkind = -1 for PATTERN to
	* src/chm_common.c (chm_dense_to_SEXP): return "ngeMatrix" when

	* NAMESPACE: export a trivial
	* R/Matrix.R: drop() Matrix-method

	* R/AllClass.R: moved all prototypes to virtual super classes.

	* R/Rsparse.R: many more coercions to have less exceptions in
	* tests/Class+Meth.R:

	* R/Ops.R (Compare): tweak for case with NA
	* tests/simpl.R: hence another 'FIXME' eliminated

2007-01-29  Martin Maechler  <>

	* R/diagMatrix.R (solve): the obvious methods for diagonalMatrix

	* tests/Class+Meth.R (tstMatrixClass): now testing diag(), nnzero(),
	  and more of "!", "&", "|", all, any; coercions

	* R/Rsparse.R: many coercions (which enable quite a few other
	methods), thanks to enhancements in
	* src/dgCMatrix.c (R_to_CMatrix): new, and
	* src/dgCMatrix.c (compressed_to_TMatrix): now for (d,l,n) ,
	symmetric & triangular and ..RMatrix objects.

	* src/TMatrix_as.c (Matrix_T_as_DENSE,Matrix_T_as_GENERAL):
	renamed file from src/dsTMatrix.c;
	now dealing with symmetric and triangular Tsparse coercions, both
	to dense and general.

2007-01-27  Martin Maechler  <>

	* src/dsTMatrix.c: has now "l" and "n" methods besides the "d" ones.

	* R/Ops.R (Arith): <dgCMatrix> o <numeric> now remains sparse
	where sensible when the <numeric> is of length > 1.

2007-01-26  Martin Maechler  <>

	* R/Matrix.R ([<-): for M[] <- value: fix length

2007-01-25  Martin Maechler  <>

	* R/Auxiliaries.R (n2l_Matrix): new, to be used in
	* R/ndenseMatrix.R: new coercions n* -> l*

2007-01-22  Martin Maechler  <>

	* R/triangularMatrix.R: new file; simple triu() and tril() methods.

	* R/Ops.R ("Logic"): and other "Ops", many updates

2007-01-18  Martin Maechler  <>

	* src/Mutils.h (SET_DimNames): new utility

	* R/Auxiliaries.R (nnzero): improved and now exported via

	* NAMESPACE: + nnzero(); length() == prod(dim(.)) method for all "Matrix" objects

2007-01-17  Martin Maechler  <>

	* R/diagMatrix.R (!): fix typo.

2007-01-16  Martin Maechler  <>

	* R/Auxiliaries.R (as_Csparse): and quite a few others:
		allow to pass class definition --> speedup
	* R/sparseMatrix.R: apply the above

	* R/Csparse.R: coercion Csparse* to dense* now preserves shape properties.

	* src/Mutils.h (mMatrix_as_geMatrix): new, based on
	* src/Mutils.c (dup_mMatrix_as_geMatrix): new; generalization of
	old dup_mMatrix_as_dgeMatrix), eliminating a long-standing "FIXME".

	* src/dense.c (dense_to_Csparse): use new mMatrix_as_geMatrix()

	* R/denseMatrix.R (.dense2C): based on dense_to_Csparse: name it,
	and use it for "sparse*" as well, since it's faster than the
	as_Csparse(.) way.

2007-01-15  Martin Maechler  <>

	* R/Ops.R ("Logic"): more methods, notably an  <lgC> o <lgC> one.

2007-01-12  Martin Maechler  <>

	* R/Tsparse.R (.TM.repl.i.2col): new internal function to be used
	as method for   M[ ij ] <- v
	* R/Csparse.R:: go via Tsparse for "M[ij] <- v"

	* R/Ops.R: "Compare" for (C|R)sparse: need pointer slot for all
	FALSE answer

	* R/Csparse.R (replCmat): fix the "all non-zero" case with reordering
	* tests/indexing.R: test it, and some of the above

2007-01-05  Martin Maechler  <>

	* R/Auxiliaries.R (is_duplicatedT): new utility

2007-01-05  Douglas Bates  <>

	* src/init.c (R_init_Matrix): export cholmod_scale

2006-12-30  Martin Maechler  <>

	* R/zzz.R (tmp): for R >= 2.5.0, extend formals of our
	base::as.matrix to (x, ...)

2006-12-28  Martin Maechler  <>

	* R/Ops.R ("Arith" etc): move almost all "Ops" methods to new R
	file; start using "Logic", hence

	* DESCRIPTION (Depends): R >= 2.4.1 (since we want "Logic")
	* NAMESPACE: import and export "Logic"

2006-12-27  Martin Maechler  <>

	* src/zpotfr.f and dependencies: use LAPACK 3.1 version
	only needed previously to R version 2.5.0.

2006-12-26  Martin Maechler  <>

	* DESCRIPTION (Date, Version): 0.9975-8, ready for release

	* R/Tsparse.R (replTmat): fix subassignment of triangular
	* R/Csparse.R (replCmat): ditto
	* tests/indexing.R: more tests, incl the above fix

2006-12-23  Martin Maechler  <>

	* R/Auxiliaries.R (drop0): extend for non CSparse
	* R/Auxiliaries.R (diagU2N): should work for all sparseMatrix

	* src/Csparse.c (Csparse_to_Tsparse, Csparse_general_to_symmetric):
		use uplo correctly (!); other places: use uplo_P() macro

	* R/Csparse.R (replCmat): call diagU2N() when needed
	* R/Tsparse.R (replTmat): ditto

	* src/dtCMatrix.c (tCMatrix_validate): new
	* src/dtTMatrix.c (tTMatrix_validate): new, used in
	* R/AllClass.R: for validity of dtC, dsC, and dtT, dsT.

	* R/diagMatrix.R (replDiag): to use in [<-

2006-12-22  Martin Maechler  <>

	* R/Auxiliaries.R (as_Csparse2, as_geSimpl): new functions;
		also more general diagU2N().

2006-12-21  Martin Maechler  <>

	* R/bind2.R: new file for all cbind2(), rbind() methods moved here
	from R/<foo>Matrix.R files. Better diagonal & improved sparse methods.

2006-12-20  Martin Maechler  <>

	* tests/bind.R: a few more cases
	* R/Auxiliaries.R (.M.kind): also work for atomic vectors

	* R/denseMatrix.R (cbind2/rbind2): moved here (and generalized) from
	* R/ddenseMatrix.R (cbind2/rbind2)
	* R/Tsparse.R (replTmat): final(?!) fix for "[<-" ..
	* tests/indexing.R
	* tests/ updated

2006-12-18  Martin Maechler  <>

	* R/Tsparse.R (replTmat): fixed a remaining "[<-" bug in
	* tests/indexing.R

2006-12-15  Martin Maechler  <>

	* R/sparseMatrix.R (prSpMatrix): "." alignment much improved:
	align with proper position of "0", i.e., right for integers.
	argument 'align' by default is "fancy".

2006-12-14  Martin Maechler  <>

	* R/sparseMatrix.R: delegate "Compare" to "Csparse.."
	* R/Csparse.R: and fix "Compare" for more cases.
	* tests/Class+Meth.R: test some of these (m == m, m != m)

2006-12-13  Martin Maechler  <>

	* R/lsparseMatrix.R: all() and any() methods
	* R/ldenseMatrix.R:	 ditto
	* NAMESPACE, R/Matrix.R: ditto

	* man/all-methods.Rd: document them minimally

	* tests/simple.R: add a few examples for these

2006-12-11  Martin Maechler  <>

	* R/Tsparse.R ([): fix long standing typo in symmetric case
	* man/dsCMatrix-class.Rd: add example exhibiting the above case

2006-12-10  Douglas Bates  <>

	* src/CHMfactor.c (CHMfactor_to_sparse): change LDL factorization
	to LL before converting to a sparse matrix. (The LDL form can be
	converted to a sparse matrix but it is implicitly a unit
	triangular matrix and a diagonal matrix overwritten on the diagonal.)

2006-12-09  Douglas Bates  <>

	* src/chm_common.c (chm_factor_to_SEXP): allocate and fill the Dim slot.

2006-12-08  Douglas Bates  <>

	* DESCRIPTION (Version): updated -> release 0.9975-7
	* src/{init.c,chm_common.c}, inst/include/*: export cholmod_analyze_p

2006-11-30  Martin Maechler  <>

	* R/diagMatrix.R (%*%): write a direct [diag o Csparse] method

2006-11-29  Douglas Bates  <>

	* src/dgeMatrix.c (dgeMatrix_solve): Check error code from dgetri.
	* tests/dg_Matrix.R: Add Barry Rowlingson's test of a matrix that
	is exactly singular.

2006-11-07  Martin Maechler  <>

	* DESCRIPTION (Date): updated -> release 0.9975-6

2006-11-06  Martin Maechler  <>

	* R/Csparse.R (replCmat): symmetric indexing of symmetric matrix
	now returns symmetric.

	* R/zzz.R ("diag<-"): replace "diag<-" in base for R <= 2.4.x

	* R/Matrix.R (.M.sub.i.2col):  new, for  M[ cbind(i,j) ] indexing.
	* R/Matrix.R (.M.repl.i.2col): new, for  M[ cbind(i,j) ] <- value

	* R/Auxiliaries.R (.type.kind): added

2006-11-04  Martin Maechler  <>

	* src/cs.[ch]: updated to CSparse Version 2.0.3 by simply
	running src/

	* R/denseMatrix.R: "[": keep symmetric on symmetric indexing.

2006-11-03  Martin Maechler  <>

	* src/dsCMatrix.c (dsCMatrix_Csparse_solve): new
	* R/dsCMatrix.R (solve): "fully-sparse" using the above.

	* R/AllClass.R: "pMatrix" now also inherits from "generalMatrix"

	* tests/Class+Meth.R (tstMatrixClass): now assure
	the (important in method programming) property :

		###>>  Every "Matrix" is either
		###>>  "general*", "symmetric*", "triangular*" or "diagonal*"

		(where "*" stands for "Matrix")

	* R/Auxiliaries.R (diagU2N): now .Call()s Csparse_diagU2N for <Csparse>

	* R/dMatrix.R (Compare(<dMatrix>,<dMatrix>): update and
	* tests/validObj.R: checks for "comparison"

	* R/sparseMatrix.R ([): improved indexing for sparse;
		trying to keep <symmetric>[ n, n] symmmetric

	* tests/indexing.R: indexing for logical sparse now ok

2006-11-02  Martin Maechler  <>

        * src/Tsparse.c: use xTsparse_validate() , and hence remove

        * src/{ltC,lsC,lgT}Matrix.[ch]: removed

2006-11-02  Martin Maechler  <>

	* R/AllClass.R (Matrix-class): check length of dimnames in validity.

	* tests/simple.R: validObject() checking the above.

	* src/dgCMatrix.c (xCMatrix_validate): new, small and simple,
	replacing both dgCMatrix_validate and lgCM*.

	* src/Csparse.c (Csparse_dense_prod, etc): do not lose dimnames;
	fix dimnames setting in other places.
	* src/chm_common.c (chm_dense_to_SEXP): now can pass dimnames

2006-11-01  Martin Maechler  <>

	* R/Csparse.R,src/Csparse.c, etc: tcrossprod(<CsparseM>,<CsparseM>)

	* R/sparseMatrix.R (isSymmetric): drop 'factors' slot for
	symmetry test, via
	* R/Auxiliaries.R (.as.dgC.0.factors):

2006-11-01  Douglas Bates  <>

	* R/Csparse.R,src/Csparse.c,tests/matprod.R,
	man/CsparseMatrix-class.Rd: crossprod(<CsparseMatrix>,
	<CsparseMatrix>) added

2006-10-30  Martin Maechler  <>

	* tests/matprod.R: add a variation of Harri's example

	* R/dsparseMatrix.R: fix crossprod(<dsparse>, <dge>) to *not*
	recursive infinitely.

	* R/dgCMatrix.R: + solve(<sparse>, <sparse>)

	* tests/indexing.R: add test for the "<" bug fixed 10-27 in R/dMatrix.R

2006-10-28  Martin Maechler  <>

	* tests/Class+Meth.R (tstMatrixClass): more: use non-trivial
	matrix if possible; test m+m == 2*m; now test dgRMatrix.
	* R/dgRMatrix.R (.to.dgR): a few more coercions, in order to
	satisfy the above test.

2006-10-27  Martin Maechler  <>

	* R/Matrix.R (Ops):  <Matrix> o <matrix>  method added

	* R/dgCMatrix.R: solve(a, b="missing") based on
	* src/dgCMatrix.c (dgCMatrix_matrix_solve): extend to work with

	* R/diagMatrix.R (diagdiagprod): extend %*% etc to ldiMatrix;
	add more (needed) [t]crossprod() methods.

	* man/ddiMatrix-class.Rd: more info, notably on 'diag'

	* R/Auxiliaries.R (as_CspClass): cleanup
	(drop0): internal utility for "Csparse_drop(*, 0)"
	(.bail.out.2): encourage active feedback

2006-10-26  Martin Maechler  <>

	* R/dMatrix.R(Compare): new(), then slots [no validity check]

	* src/Csparse.c (Csparse_validate): fixed (and more efficient in
	non-valid or 'sorted' case).

	* R/dsparseMatrix.R: add "chol" method.
	* R/ddenseMatrix.R: ditto

	* R/diagMatrix.R (Ops): group methods for  <diagonal> o <sparse>
	* R/diagMatrix.R (diag2T): simple utility used "higher level"
	coercion; deprecating direct lower level coercions.

	* R/*.R (seq): use seq_len() and seq_along() where possible.

2006-10-23  Martin Maechler  <>

	* DESCRIPTION (Version): 0.9975-5 ready for release

2006-10-20  Douglas Bates  <>

	* src/init.c (R_init_Matrix): export more cholmod CCallable functions.

2006-10-20  Martin Maechler  <>

	* R/AllClass.R (corMatrix): add 'validity' check;
		comment out unused "LDL" class definition
	* NAMESPACE: mention, but do not export "LDL" class
	* R/corMatrix.R: new (simple), needed for R-devel with
	* tests/Class+Meth.R (tstMatrixClass): 1 exception for corMatrix
	  coerce and t() exceptions for all 5 'Mat.MatFact' classes.

2006-10-19  Douglas Bates  <>

	* src/chm_common.h: Add R_cholmod_start to initialize cholmod to
	use Rprintf and R's error handling.

2006-10-17  Martin Maechler  <>

	* R/diagMatrix.R (%*%): rep(*, each = .) in Matrix %*% diagonal.
	* tests/matprod.R: add tests for the bug fixed.

2006-10-11  Douglas Bates  <>

	* src/HBMM.[ch]: remove HarwellBoeing format for writing.
	* src/SOURCES_C.mkf (SOURCES_C): no longer compile iohb.c

2006-10-06  Douglas Bates  <>

	* R/d[gs]CMatrix.R: deprecate the writeHB function.  Use writeMM instead.

2006-10-06  Martin Maechler  <>

	* DESCRIPTION (Version): 0.9975-3

	* R/diagMatrix.R (bdiag): new function constructing block diagonal
	(sparse) matrices.
	* man/bdiag.Rd: docu + examples

	* R/Csparse.R (replCmat): calling new Csparse_drop() now.

	* src/Csparse.c (Csparse_general_to_symmetric, Csparse_drop): new functions
	* R/lsCMatrix.R: three more coercions to lsC (thanks to the above)

	* R/diagMatrix.R (Diagonal): '[<-' method for diag.matrices such
	that result is sparse or diagonal (and not dense).

	* man/Subassign-methods.Rd: fix examples

	* R/Matrix.R (Matrix):  Matrix(0, *) or Matrix(*, sparse=TRUE)
	should always return a sparse (and not sometimes a diagonal) matrix.

2006-10-05  Martin Maechler  <>

	* R/Matrix.R ([<-): also for value "Matrix" or "matrix"

2006-10-04  Douglas Bates  <>

	* DESCRIPTION (Version): 0.9975-2

	* inst/include/Matrix_stubs.c (M_cholmod_sparse_to_triplet): export more symbols

2006-10-02  Douglas Bates  <>

	* tests/dg_Matrix.R: Simplify test taking into account new code.

2006-09-29  Martin Maechler  <>

	* R/Csparse.R (replCmat): improve for missing i / j in non-simple cases

	* R/lsTMatrix.R: new files w/ missing methods
	* R/nsTMatrix.R:  "  'for completeness'

	* tests/Class+Meth.R: a bit less 'not.ok.classes'

	* R/Tsparse.R (t): generalized "t" method from "dgT*" to "Tsparse*"

2006-09-28  Douglas Bates  <>

	* src/dppMatrix.h: Ensure definition of dspMatrix_validate is

	* src/init.c, inst/include/{Matrix.h,Matrix_stubs.h,cholmod.h}:
	Export C-callable functions used in Zt_create in lme4.

2006-09-28  Martin Maechler  <>

	* DESCRIPTION (Version): 0.9975-1

	* tests/simple.R: less checks fail; using NA, found that our
		kronecker() is not base-compatible with NA's.

	* R/dMatrix.R: "Compare" method now implemented for all cases

	* R/Auxiliaries.R (indTri): == which([lower/upper].tri( * )) new utility

	* man/dtpMatrix-class.Rd: mention length of 'x' slot

	* src/dtpMatrix.c (dtpMatrix_validate): fix check
	* src/dspMatrix.c (dspMatrix_validate): ditto

	* R/dtTMatrix.R (gt2tT): fix ("l" -> "n")
	  including coercion to [nl]tTMatrix.

	* R/diagMatrix.R (show): print a header line as for other classes.

2006-09-27  Martin Maechler  <>

	* src/ (SUBDIRS): fix typo

2006-09-19  Martin Maechler  <>

	* DESCRIPTION (Date): ready to release 0.9975-0 to CRAN

2006-09-18  Douglas Bates  <>

	* R/[CT]sparse.R (crossprod and tcrossprod): Handle the cases for x
	symmetric and y missing in R code using %*% (cholmod_aat doesn't
	accept a symmetric matrix).
	* tests/group-methods.R: Uncomment test of crossprod applied to
	lsCMatrix objects.

2006-09-18  Martin Maechler  <>

	* R/AllClass.R (symmetricMatrix): add validity method (available
	in C for a long time). Many "n..Matrix": drop (wrong) validity arg.

	* src/lgCMatrix.c (lgCMatrix_validate): check 'x' slot (!)

	* tests/
	* tests/indexing.R: additions, mainly for 'lsparse'

	* R/diagMatrix.R (Diagonal) & coercion to lgTMatrix: fixes for NA

	* R/Auxiliaries.R (nz.NA): new utility now used in nnzero()

2006-09-16  Martin Maechler  <>

	* R/sparseMatrix.R (prSpMatrix): print logical NAs "visibly"
		as 'N' (1-letter - Ok?)

	* tests/group-methods.R: add test for logical + NAs

	* R/dMatrix.R ("Compare"): fix to work with NA's

	* R/AllClass.R: "Cholesky" etc now inherit from MatrixFactorization.

	* src/lgCMatrix.c (ncsc_to_matrix): renamed from lcsc_to_matrix()
		which is implemented.

2006-09-15  Martin Maechler  <>

	* src/chm_common.c: coerce logical <-> double instead of
	typecasting;  needed for "l" matrix handling in cholmod.

	* tests/other-pkgs.R (graph): small extension in "graph" checks.

	* R/sparseMatrix.R (graphNEL -> Tsparse): method for weight case.
	(Tsp2grNEL): other fixes needed

2006-09-11  Martin Maechler  <>

	* R/AllClass.R ("nMatrix"): and subclasses for "nonzero pattern"
		Matrices, since "lMatrix", also "lsparseM" can have NA
	* R/ndenseMatrix.R, etc: new source files
	* man/nsparseMatrix-classes.Rd, etc: new help files
	* tests/: adaptions
	* src/chm_common.c (chm_dense_to_SEXP): and others:
		new 'Rkind' argument: "l*" and "d*" both use CHOLMOD_REAL
	* src/Csparse.c, etc: ditto

2006-09-11  Douglas Bates  <>

	* src/Mutils.[ch],init.c inst/include/*.h: Move the
	alloc_d**Matrix functions to the lme4 package.

2006-09-09  Douglas Bates  <>

	* src/dsCMatrix.c (dsCMatrix_Cholesky): igoring LDL = FALSE now

2006-09-09  Martin Maechler  <>

	* R/lMatrix.R: new

	* R/sparseMatrix.R (Tsp2grNEL): do not yet use graph::foo()

	* R/dgeMatrix.R: do not define tcrossprod() methods for "matrix"
	* man/tcrossprod.Rd: ditto

2006-09-08  Douglas Bates  <>

	* inst/include/Matrix_stubs.c,Matrix.h: Add declarations and stubs
	for exported functions
	* src/Makefile, src/CHOLMOD/Lib/Makefile, src/Metis,CAMD,CCOLAMD:
	Remove partitioning algorithms for sparse matrix reordering.  The
	copyright on the Metis code was problematic and the methods were
	rarely used.
	* src/triplet_to_col.[ch],MMHB.[ch]: Remove triplet_to_col.  Such
	operations are now done entirely in CHOLMOD code.

2006-09-06  Douglas Bates  <>

	* src/Mutils.h: Remove functions that are no longer used.

2006-09-04  Douglas Bates  <>

	* src/dtCMatrix.c (dtCMatrix_validate): rename functions.
	* src/DEPS.mkf: update

2006-09-02  Martin Maechler  <>

	* created branches/Matrix-for-R-2.3.x;  on trunk: do
	* DESCRIPTION (Version): 0.9975-0
	(Depends): R (>= 2.4.0)

2006-09-01  Douglas Bates  <>

	* R/sparseMatrix.R: Added direct method to CsparseMatrix from graphNEL

2006-09-01  Martin Maechler  <>

	* R/sparseMatrix.R: add coercion from "ANY" to "sparseMatrix"
	* R/denseMatrix.R:  add coercion from "ANY" to "denseMatrix"

	* R/Matrix.R ([): use nargs() to disambiguate M[i] and M[i,]

2006-08-31  Martin Maechler  <>

	* R/sparseMatrix.R (Arith): moved Arith group method one-level up
	from "dsparse" to "sparse" and now go via "Csparse" instead of "dgC"
	* R/dsparseMatrix.R: ditto
	* R/Csparse.R: ditto

2006-08-31  Martin Maechler  <>

	* R/dMatrix.R (Compare): improve availability of "<", etc
	* R/Auxiliaries.R (asTuniq): new; also make use of R 2.4.x print(*,max)

2006-08-30  Martin Maechler  <>

	* R/dgCMatrix.R: aargh: "Arith(<dgC>, numeric)" was wrong because
	of a 0-index which was used as 1-index (..hmm)

	* R/sparseMatrix.R (prSpMatrix): fix printing an all-0 sparse Matrix

	* R/Auxiliaries.R (all0, is0): for 0-testing in presence of NA's
	* R/Auxiliaries.R (isTriMat): use all0() for 0-testing.
	(.is.diagonal): ditto

	* R/lgTMatrix.R: as("matrix", "lgTMatrix"): warn about NA's

	* R/Matrix.R (Matrix): also work for NA data

2006-08-28  Martin Maechler  <>

	* R/Matrix.R (Matrix): + 'forceCheck' argument; dimnames setting
	in all cases.

2006-08-27  Douglas Bates  <>

	* src/dense.[ch],init.c, R/ddenseMatrix.R, man/band.Rd
	(ddense_band): Added triu, tril and band for ddenseMatrix objects.

2006-08-25  Martin Maechler  <>

	* src/Mutils.c (dup_mMatrix_as_dgeMatrix): added all subclasses of
	subclasses of "ddenseMatrix"
	* src/init.c et al: outcomment dtrM*_as_dge* and dsyM*_as_dge*_
	* R/ddenseMatrix.R et al: setAs("ddenseMatrix", "dgeMatrix", ..)
	instead of half dozen specialized ones.

2006-08-25  Douglas Bates  <>

	* R/lmer.R (qqmath method): Bug fix provided by Emmanuel Tillard
	<> - ordering standard errors to match effects.

2006-08-24  Douglas Bates  <>

	* src/lsCMatrix.c (lsCMatrix_trans): Remove lsCMatrix_chol based
	on R_ldl.
	* R/lCholCMatrix.R,
	src/[dl]CholCMatrix.[ch],R_ldl.[ch],Metis_utils.[ch]: removed
	* src/dsCMatrix.c (dsCMatrix_to_dgTMatrix): use CHOLMOD
	* many files in ./R and ./src: Use more general version of
	dup_mMatrix_as_dgeMatrix to simplify method definitions.
	* src/Mutils.c (dup_mMatrix_as_dgeMatrix): Add ddiMatrix,
	dtpMatrix, dspMatrix and dppMatrix conversions.

2006-08-23  Douglas Bates  <>

	* R/AllClass.R,lCholCMatrix.R,src/SOURCES_C.mkf,init.c,NAMESPACE:
	Remove classes lCholCMatrix and dCholCMatrix based on R_ldl code.
	* src/dgeMatrix.c: Ensure 'factors' slot exists in result of
	dgeMatrix_crossprod (may need to do this in other places).
	* R/AllGeneric.R,dsCMatrix.R, src/dscMatrix.[ch]: Add Cholesky
	generic and method for dsCMatrix.  Use CHOLMOD for chol().

2006-08-22  Douglas Bates  <>

	* src/Mutils.c (dup_mMatrix_as_dgeMatrix): updated for general
	types of classed Matrices, matrices or numeric or logical vectors.
	* src/init.c: register dup_mMatrix_as_dgeMatrix for coercions.
	* src/chm_common.c,Mutils.h (as_cholmod_factor): Move check_class
	to Mutils.h (as an inline) and change name to Matrix_check_class;
	fixes in as_cholmod_factor and chm_factor_to_SEXP.
	* src/dsCMatrix.[ch]: Use CHOLMOD for dsCMatrix_chol and
	dsCMatrix_matrix_solve.  Comment out vestigial functions.
	* src/Csparse.c: use diag_P and uplo_P macros.

2006-08-21  Douglas Bates  <>

	* src/lmer.c (internal_mer_RZXinv): Fix memory leak caught by
	* tests/matprod.R: Add tests to verify that 'solve' and '%*%' are
	* src/sparseQR.c (sparseQR_validate): add new validation test, fix
	-Wall warnings.
	* src/dppMatrix.c,dtrMatrix.c,dgCMatrix.c,dgeMatrix.c,dspMatrix.c:
	Use dup_mMatrix_as_dgeMatrix.

2006-08-20  Douglas Bates  <>

	* src/sparseQR.c: Fix thinko in sparseQR_resid_fitted.
	* tests/sparseQR.R: Added
	* man/sparseQR-class.Rd: Document methods for qr.* generics
	* R/sparseQR.R: Return correct # of coefs; fix cut-and-paste errors

2006-08-19  Douglas Bates  <>

	* NAMESPACE, R/sparseQR.R, src/init.c,sparseQR.[ch],SOURCES_C.mkf:
	Added methods for sparseQR for qr.qy, qr.qty, qr.coef, qr.resid
	and qr.fitted.
	* src/Mutils.[ch]: Added dup_mMatrix_as_dgeMatrix utility
	* src/dgCMatrix.c: Check for ordering before storing q in dgCMatrix_QR

2006-08-18  Martin Maechler  <>

	* R/AllGeneric.R: add "qr" and "chol" generics; via 'trick' since
	the base version has no "..." argument.

	* R/sparseMatrix.R (prSpMatrix): fix the triangular unit diagonal case.

	* R/Matrix.R: define and
	* NAMESPACE: export as.numeric() and as.logical() methods.
		Let's hope these do not badly slow down something...
	Finally export the zapsmall() method.

2006-08-17  Douglas Bates  <>

	* src/dgCMatrix.[ch] (dgCMatrix_matrix_solve), src/init.c,
	R/dgCMatrix.R: solve methods for dgCMatrix and dense RHS.
	* src/dtCMatrix.c :Remove code that is no longer used
	* R/dtCMatrix.R: Use C code for diagU2N in CsparseMatrix classes

2006-08-14  Douglas Bates  <>

	* src/Csparse.[ch],init.c (Csparse_to_logical): Added utilities
	Csparse_to_logical and Csparse_symmetric_to_general.
	* R/dgCMatrix.R,dsCMatrix.R,Csparse.R : Consolidate general
	coercion methods between CsparseMatrix and TsparseMatrix.

2006-08-14  Douglas Bates  <>

	* R/dtCMatrix.R,dgCMatrix.R,Csparse.R src/init.c,dgCMatrix.[ch],
	Csparse.[ch],chm_common.c,dense.c : Use CHOLMOD code and methods
	for CsparseMatrix, TsparseMatrix, denseMatrix or matrix when

2006-08-12  Douglas Bates  <>

	* src/chm_common.[ch],Csparse.[ch],Tsparse.[ch],CHMfactor.c,dtTMatrix.c,
	  dgTMatrix.c,dgCMatrix.c,dsCMatrix.c,dtTMatrix.c, R/dsTMatrix.R,
	  generalize conversions between TsparseMatrix, CsparseMatrix,
	  denseMatrix and matrix.  Preserve triangularity property and
	  propagate Dimnames in the easy cases.

2006-08-10  Douglas Bates  <>

	* src/lmer.c: adjust checks in glmer_init for S4SXP
	* tests/validObj.R: check of all(eq) should be all(eq@x) - worked
	before S4SXP but for the wrong reasons.

2006-08-08  Douglas Bates  <>

	* src/Csparse.c (Csparse_crossprod): tcrossprod result has stype = -1.
	Later modified to return the upper triangle only.
	* R/dgTMatrix.R: Remove vestigial crossprod and tcrossprod methods.

2006-08-07  Douglas Bates  <>

	* src/Csparse.c (Csparse_crossprod): Set stype on result to avoid
	R-level conversion to a sparse symmetric class.
	* R/Tsparse.R,R/Csparse.R (crossprod and tcrossprod methods):
	Remove conversion to sparse symmetric classes (now done in C code).

2006-08-07  Martin Maechler  <>

	* R/dgCMatrix.R: disable old crossprod and tcrossprod methods
	* man/band.Rd:  adapt the \dontshow{} unit test.

2006-08-07  Martin Maechler  <>

	* DESCRIPTION (Version): 0.995-14  for CRAN

	* tests/other-pkgs.R: oops: library(Matrix) outside *if* !

	* R/sparseMatrix.R (Tsp2grNEL): fixed Tsparse -> graph coercion
	* tests/other-pkgs.R:  more checks, sparseMatrix -> graph

	* R/Auxiliaries.R (as_Tsparse, as_Rsparse): new
	* R/Tsparse.R (tril, triu, band): methods
	* R/dgRMatrix.R (tril, ...):	ditto
	* man/band.Rd:			ditto

2006-08-04  Martin Maechler  <>

	* R/Matrix.R (head, tail): directly use utils:::head.matrix
		to be up-to-date automatically.

2006-08-03  Martin Maechler  <>

	* DESCRIPTION (Version): 0.995-13 to be released to CRAN

	* DESCRIPTION (Lazydata): no, instead of 'yes' because it fails for:
	* data/CAex.R, inst/external/CAex_slots.rda: replacing data/CAex.rda
	* data/KNex.R, inst/external/KNex_slots.rda: replacing data/KNex.rda
	such that the S4 objects are always created by the current version
	of R and 'Matrix' class definitions.

2006-08-01  Douglas Bates  <>

	* R/lmer.R (LMEoptimize method), tests/lmer.R,
	inst/external/test3comp.rda: Added warnings for convergence on
	boundary and test cases.

	* src/lmer.c (mer_postVar): Modified to return the variances that
	are marginal to the fixed effects, not conditional on them (which
	is what the bVar slot contents represent).

2006-07-31  Douglas Bates  <>

	* NAMESPACE, src/lmer.c, R/lmer.R (hatTrace):  Add the hatTrace
	function which calls the C function mer_hat_trace2.

	* man/ranef.Rd: Include description of "postVar" argument and
	producing a caterpillar plot.

2006-07-31  Martin Maechler  <>

	* NAMESPACE:    change  "correlation" to "corMatrix"
	* R/AllClass.R: to avoid clash with S3 class in 'nlme'.
	* R/dpoMatrix.R: ditto
	* R/lmer.R:	 ditto

2006-07-28  Douglas Bates  <>

	* src/lmer.c (internal_mer_RZXinv): Split the calculation of the
	RZXinv slot's contents into a separate internal function that can
	be used in mer_hat_trace.

2006-07-22  Martin Maechler  <>

	* R/Matrix.R: Coercions "Matrix" -> (sparse|dense)Matrix
	via new smart
	* R/Auxiliaries.R (as_Csparse, as_dense, .M.shapse): new
	utility functions.

2006-07-21  Martin Maechler  <>

	* R/Csparse.R (tril, triu, band): do return *triangular* classed
	matrices when appropriate; band() even symmetric ones.
	(replCmat): extend to potentially all "CsparseMatrix"
	* R/Tsparse.R (replTmat): extend to all "TsparseMatrix"; hence
	allow subassignment for special sparse matrices.

	* R/Auxiliaries.R (as_geClass): factor out the  .M.kind() functionality

	* src/lmer.c (mer_MCMCsamp, glmer_MCMCsamp): new 'verbose'
	argument; in glmer_*(): print only if(verbose).

	speed-optimize a few places by moving REAL(.) out of loops.

	* src/lmer.h, src/init.h, R/lmer.R:  related to above.

2006-07-20  Martin Maechler  <>

	* R/Matrix.R("["): disable ("Matrix", i = "logical", j = "missing"),
		since that wrongly triggers also for M[ logi , ]

	* R/denseMatrix.R: "[" methods now also work e.g. when indexing
	a symmetric matrix that results in a non-symmetric one.
	* R/Auxiliaries.R (as_geClass): new function used in "[" above.

	* R/dMatrix.R: make round(M) work as round(M, 0)

	* R/dgTMatrix.R (image): coordinate system and axis now use
	1-based indices, not 0-based ones.

	* R/Tsparse.R (.ind.prep for "["): get rid of max(<empty>) warning.
	* tests/indexing.R: test it.

	* NAMESPACE: export isSymmetric(); has been a generic in "base"	for a while;
	* man/isSymmetric-methods.Rd: and document it.

	* R/SparseM-conv.R: added coercion methods for some 'SparseM' matrices.
	* man/SparseM-conv.Rd: docu them

	* tests/other-pkgs.R: renamed from tests/graph.R and add example
		for 'SparseM' conversions

2006-07-17  Douglas Bates  <>

	* R/Matrix.R (head): added head() and tail() methods.

2006-07-17  Martin Maechler  <>

	* DESCRIPTION (Version): 0.995-12 released to CRAN

2006-07-15  Martin Maechler  <>

	* tests/simple.R: add check for correct dsT -> dgT coercion;
		add check for correct printing of symmetric sparse matrices.

	* R/Auxiliaries.R (non0ind): return *all* non-0 entry indices also
	for sparse symmetric matrices.

	* src/dsTMatrix.c (dsTMatrix_as_dgTMatrix): do not copy the
	diagonal twice.

2006-07-11  Douglas Bates  <>

	* src/dsTMatrix.c (dsTMatrix_as_dgTMatrix): Fix a case of INTEGER
	being applied to the x slot (detected by Brian Ripley).

2006-07-10  Martin Maechler  <>

	* src/dgCMatrix.c (dgCMatrix_validate): 'p' slot must have correct length.

	* R/Auxiliaries.R (isTriC): fix buglet (we were 1-based!)

2006-07-08  Martin Maechler  <>

	* src/lgCMatrix.c (lgCMatrix_diag): new function
	* R/lgCMatrix.R (diag): for new method

	* R/AllClass.R (TsparseMatrix): do use Tsparse_validate
	     ==> construction of illegal "*gTMatrix" via new() should
	     now be much less easy:
	* tests/Class+Meth.R: assertError() for some illegal "dgT*"

	* R/Matrix.R (Matrix): Matrix(0, nrow,ncol) now "goes sparse"
	* man/Matrix.Rd: documents it.

2006-07-06  Douglas Bates  <>

	* src/pedigree.c (pedigree_inbreeding): Correction in
	initialization.  This function is not currently being used and is
	not fully tested.

	* NAMESPACE, R/{AllClass.R,lmer.R}, src/{init.c,lmer.c}:
	Introduced the glmer class.  Added code for mcmcmsamp on glmer
	objects.  Modified validity check on pedigree objects to account
	for nonparallel patterns of missingness of parents.

	* man/{lmer-class.Rd,mcmcsamp.Rd}: Update documentation for glmer

2006-07-01  Martin Maechler  <>

	* R/pMatrix.R: coercion pMatrix -> Tsparse

2006-06-12  Douglas Bates  <>

	* DESCRIPTION (Version): 0.995-11 released to CRAN

	* R/lmer.R (mcmcsamp method): Corrected arrangments of names on
	the output from mcmcsamp.

2006-06-10  Douglas Bates  <>

	* R/lmer.R (simulestimate): added C code for calculating the trace
	of the hat matrix.

2006-06-09  Martin Maechler  <>

	* R/diagMatrix.R (setAs): define coercion methods to sparse matrix
	* R/sparseMatrix.R etc: multiplication of diagonal and sparse

2006-06-08  Martin Maechler  <>

	* R/dgTMatrix.R (colSums): etc. All four of
	colSums(), rowSums(), colMeans(), rowMeans() now should work for
	all "Matrices".

2006-06-01  Douglas Bates  <>

	* R/lmer.R ( Add a reference line at zero and a
	background grid to the qqmath plot of ranef.lmer.

2006-05-30  Douglas Bates  <>

	* R/lmer.R (expandSlash): Functions (non-exported) to allow nested
	grouping factors to be specified in the formula as (1|foo/bar).

2006-05-27  Douglas Bates  <>

	* R/lmer.R (findbars and others): Change check of is.numeric to
	!is.language to resolve the bug reported by Jacob Wegelin.

	* src/pedigree.c (pedigree_inbreeding): Initial implementation of
	code to evaluate inbreeding coefficients without calculating T,
	based on code in Sargolzaei and Iwaisaki's paper.

2006-05-27  Douglas Bates  <>

	* R/{lmer.R,AllGeneric.R}, src/{init.c,lmer.[ch]}: Added local
	generic and mer methods for isNested and denomDF. This denomDF was
	an attempt to emulate that in lme but I don't think that makes
	sense.  Use the trace of the hat matrix instead.

2006-05-17  Martin Maechler  <>

	* R/sparseMatrix.R: Matrix <-> graph methods: can no longer use
	the C code depending on a slot structure that's no longer valid.
	* src/dgTMatrix.c: ditto (also: src/init.c src/dgTMatrix.h)

2006-05-17  Douglas Bates  <>

	*  R/{AllGeneric.R,Csparse.R},man/band.Rd,NAMESPACE: changed name
	of lowerTriMatrix generic and methods to tril (also upper to triu)
	and added a general band extractor.

2006-05-16  Douglas Bates  <>

	* R/pedigree.R (pedigree): Replace sire and dam values outside the
	allowable range with NAs. Added a corresponding check in the
	validity check for the pedigree class.

	* R/[CT]sparse.R ([t]crossprod): The result of single-argument
	crossprod methods now inherits from symmetricMatrix.

2006-05-15  Douglas Bates  <>

	* R/AllGeneric.R (lowerTriMatrix): Added (but did not export)
	generics lowerTriMatrix and upperTriMatrix along with methods for
	the Csparse virtual class.  Also added a C function Csparse_band
	that implements these methods by calling cholmod_band.

2006-05-15  Martin Maechler  <>

	* R/Tsparse.R ("["): column or row subsetting; @Dimnames[k] got
	erased when it was NULL.  This led to invalid subselections!

2006-04-25  Douglas Bates  <>

	* R/dtCMatrix.R: avoid coercion of dtCMatrix object to dgCMatrix
	in method for "t" so as not to lose the unit diagonal property.

2006-04-19  Douglas Bates  <>

	* R/lmer.R, R/AllGeneric.R, NAMESPACE: Remove the postVar generic
	and methods.  This is now an option to the ranef method for the
	mer class.

	* src/cs_utils.c: Ensure that the nz component is -1 for a
	compressed column-oriented matrix.  Minor formatting cleanup.

	* man/lmer-class.Rd: Document the qqmath method for ranef.lmer

2006-04-19  Martin Maechler  <>

	* R/Auxiliaries.R (diagU2N): new for the solve() methods in
	* R/dtCMatrix.R: where dgC -> dgT coercion now preserves diag = "U".

2006-04-15  Douglas Bates  <>

	* src/cs.[ch],src/cs_utils.[ch] : Added Tim Davis' CSparse library
	in cs.[ch] and utilities to interface to that code in cs_utils.[ch].

	* R/dtCMatrix.R, src/dtCMatrix.[ch] : CSparse-based solve methods
	for the dtCMatrix class.

2006-04-12  Douglas Bates  <>

	* R/pedigree.R, R/AllClass.R, NAMESPACE: added a pedigree class
	and methods for it.

2006-04-12  Martin Maechler  <>

	* R/dgCMatrix.R: add  storage.mode(.) <- "double" for "matrix"
	arguments, such that M %*% 1:6 now works
	* Tests/matprod.R: test the above

2006-04-03  Douglas Bates  <>

	* R/lmer.R (qqmath,ranef.lmer-method): added a qqmath method for
	the ranef.lmer class.

	* R/AllClass.R, NAMESPACE, R/lmer.R: Added a postVar generic and
	methods to extract the posterior variances from the bVar slot.

2006-03-30  Martin Maechler  <>

	* R/dtCMatrix.R: allow coercion from  dgC* to triangular (dtC*)
	* R/dsCMatrix.R: and symmetric (dsC*) 'Csparse' matrices.

	* R/Tsparse.R: Tsparse* -> Csparse* coercion now works and is tested in
	* tests/simple: (extended)

	* R/sparseMatrix.R (isTriangular): now using much improved
	* R/Auxiliaries.R (isTriC): new triangularity check for *CMatrix

2006-03-23  Douglas Bates  <>

	* src/dsyMatrix.c (dsyMatrix_as_dspMatrix): Propagate DimNames
	(problem report from Franklin Parlamis).  This should be done

2006-03-21  Douglas Bates  <>

	* R/AllClass.R,lmer.R: Change the name of the lmer.ranef class to
	ranef.lmer (like summary.lmer).  Add the coef.lmer class and
	update the plot methods.

2006-03-20  Douglas Bates  <>

	* R/lmer.R (resid and ranef methods):  Added methods for the
	"residuals" and "resid" generic but only for linear mixed model
	fits.  Changed the ranef method to return a list of data frames so
	that the plot methods now work.

2006-03-16  Douglas Bates  <bates@bates2>

	* src/dpoMatrix.c (dpoMatrix_chol): Require n > 0 in call to
	dpotrf - otherwise the BLAS on Mac OS X complains and quits.

	* DESCRIPTION (Date): New release

2006-03-15  Martin Maechler  <>

	* DESCRIPTION (Version): 0.995-6  -- to be released to CRAN

	* data/KNex.rda: replacing 'mm' and 'y' by KNex <- list(mm=mm, y=y)
	* man/KNex.Rd: and other help files
	* tests/*.R: several ones needed adaption
	* inst/doc/Comparisons.Rnw: ditto

2006-03-11  Martin Maechler  <>

	* R/dgCMatrix.R (replCmat): "[<-" methods for dgCMatrix

	* tests/indexing.R: tests for new [<- methods for sparse matrices.

2006-03-10  Martin Maechler  <>

	* R/dgTMatrix.R (replTmat): "[<-" methods for dgTMatrix

	* R/Tsparse.R (.ind.prep): fix out-of-range indexing

2006-03-08  Martin Maechler  <>

	* R/dMatrix.R: enable things like  M [ M < 10 ]
	* R/dgeMatrix.R: implement it

2006-03-06  Martin Maechler  <>

	* R/AllClass.R: define "summary.mer" and "*.lmer"
	* R/lmer.R (summary): summary(<mer>) computes & returns the above;
	* R/lmer.R (show): now works with summary()

2006-03-04  Martin Maechler  <>

	* R/dgCMatrix.R: finally direct "Arith"  dgC o dgC
	* R/Auxiliaries.R (WhichintersectInd): and other utilities to
		support the above

2006-02-07  Douglas Bates  <>

	* R/lmer.R (lmer): fix initial values of offset and weights for
	Use glmFit$prior.weights for weights in a glmm.
	Allow an option usePQL = FALSE to skip the PQL steps for the
	Laplace method (and, in time, the AGQ method).

	* src/lmer.c (mer_factor): Move downdating and factoring of XtX
	into a separate function internal_mer_Xfactor to be able to call
	it from internal_bhat.

2006-01-23  Martin Maechler  <>

	* tests/Class+Meth.R (tstMatrixClass): function for much better
	testing; now again of all actual classes.

		use macros and define make_d_matrix_* and make_i_matrix_*
		where _i_ is for the ldense routines:

	* src/ldense.c (ltrMatrix_as_lgeMatrix): provide functions
	* src/ldense.c (lsyMatrix_as_lgeMatrix):

	* R/ldenseMatrix.R: use the above in setAs(*,"lgeMatrix")

2006-01-16  Martin Maechler  <>

	* R/Matrix.R (Matrix): has become much "smarter" now auto-producing
		many different kinds of matrices.
	* R/*.R: quite a few new methods were needed for R CMD check with
		new Matrix().  Very good for users playing around.

2006-01-15  Martin Maechler  <>

	* src/dgeMatrix.c (dMatrix_validate): new
	* src/Mutils.c (dense_nonpacked_validate): new

	* src/dtrMatrix.c (dtrMatrix_validate): improved/fixed

2006-01-14  Douglas Bates  <>

	* R/AllClass.R (compMatrix), (generalMatrix): new virtual classes

2006-01-07  Douglas Bates  <>

	* DESCRIPTION (Version): 0.99-6 released to CRAN

	* src/dgBCMatrix.c (cscb_trcbsm): Fix due to Peter Dalgaard for
	segfault in cases with multiple non-nested grouping factors.

2006-01-03  Martin Maechler  <>

	* DESCRIPTION (Version): 0.99-4 to be released to CRAN
		(Depends): also on 'utils'

	* R/AllClass.R (diagonalMatrix): new class with "ddi*" and "ldi*"
	* R/diagMatrix.R (Diagonal): constructor and methods for
	diagonal matrices

	* R/ltTMatrix.R: new "minimal methods"

2005-12-12  Martin Maechler  <>

	* R/AllGeneric.R (tcrossprod): 2-argument version; here, and for
	all methods (and help files).

2005-12-09  Martin Maechler  <>

	* R/Auxiliaries.R (dimNamesCheck): fixed thinko -> bug
		for case (dimn.	 op  no_dimn.)

2005-11-14  Douglas Bates  <>

	* DESCRIPTION (Version): 0.99-2	 released to CRAN

2005-10-21  Douglas Bates  <>

	* R/lmer.R (simulate method): Fixed a drop=FALSE problem reported
	by Julian Faraway.

2005-10-06  Martin Maechler  <>

	* R/Auxiliaries.R (try_as): new utility
	* R/sparseMatrix.R: use try_as() in coercion to original class

2005-09-30  Martin Maechler  <>

	* src/dgCMatrix.c (double_to_csc): and dgeMatrix_to_csc()

2005-09-29  Martin Maechler  <>

	* R/Auxiliaries.R (dimNamesCheck): added

	* R/Matrix.R (as.array), (as.vector): new

2005-09-28  Martin Maechler  <>

	* R/Matrix.R (Matrix): get logical argument 'sparse' with a smart
	* R/AllClass.R: move 'factors' slot toplevel "Matrix";
		"pMatrix" now contains "sparseMatrix"

2005-09-26  Martin Maechler  <>

	* tests/Class+Meth.R: new tests; t(t(m)) == m

	* src/dtCMatrix.c (tsc_transpose): add forgotten "diag" slot

	* src/dsTMatrix.c (dsTMatrix_as_dsCMatrix): bad typo (segfault!)
	* src/dtTMatrix.c (dtTMatrix_as_dtCMatrix): new

	* R/dspMatrix.R: typo in "t" method

2005-09-18  Douglas Bates  <>

	* R/AllClass.R (TsparseMatrix), CsparseM* and RsparseM*
	* R/Tsparse.R: instead of R/gTMatrix.R
	* R/Csparse.R: new
	* src/Tsparse.c (Tsparse_to_Csparse): new; -> cholmod_()
	* src/Tsparse.c: new; many trivial methods calling cholmod_()
	* src/Csparse.c (Csparse_to_Tsparse), transpose, (mat|cross)prod:
			via cholmod

2005-09-16  Martin Maechler  <>

	* R/Auxiliaries.R (non0ind): new function using new C code
	* src/dgCMatrix.c (compressed_non_0_ij): new utility

2005-09-15  Douglas Bates  <bates@localhost.localdomain>

	* src/chm_common.h: header file required by all C sources that
	call CHOLMOD functions.	 It defines a cholmod_common structure
	called 'c' whose address is passed as the last argument to
	(virtually) every CHOLMOD function.

	* src/Pattern.c: Simple example of the use of CHOLMOD.

	* src/init.c: initialize and finalize the cholmod_common structure.

	* src/Makefile: Added source packages CHOLMOD UMFPACK AMD COLAMD
	LDL and CCOLAMD from the U. of Florida sparse matrix library.

2005-09-08  Martin Maechler  <>

	* inst/test-tools.R: new file collecting the utility functions used
		in ./tests/*.R

	* R/ddenseMatrix.R (cbind2): new methods for "numeric" and "matrix"
	* R/Matrix.R (cbind2): methods for NULL and missing

2005-08-31  Martin Maechler  <>

	* R/AllClass.R: new "index" class for "[" and "[<-":
		First cut at "symmetricMatrix" and "triangularMatrix"
	* R/gTMatrix.R (.ind.prep): new function;
		Logical and character indexing now work too.
	* R/Matrix.R: cheap "[<-" methods for denseMatrix now work
	* tests/indexing.R: new, including *
	* tests/dgTMatrix.R: new

2005-08-29  Douglas Bates  <>

	* src/dgTMatrix.c (graphNEL_as_dgTMatrix): Corrected the position
	indicator pos not being updated.  Also enforced upper triangular
	for symmetric case.  Need to coerce edges component of elements of
	edge list - grr! (Why don't they define their classes cleanly?)

2005-08-26  Martin Maechler  <>

	* R/Matrix.R:  added first "[<-" methods; not yet functional
	* R/denseMatrix.R: ditto
	* man/Subassign-methods.Rd: new help file for these

2005-08-25  Martin Maechler  <>

	* DESCRIPTION (Version): 0.98-6

	* R/denseMatrix.R: new file for "[" fallback methods for all dense

2005-08-19  Martin Maechler  <>

	* src/lgCMatrix.c (lcsc_to_matrix): new; need for
		as( <logical>, "matrix")

	* R/pMatrix.R: coercion to "lgTMatrix"

	* R/gTMatrix.R: new virtual class to define "[" methods for.
	* man/gTMatrix-class.Rd:
	* General slight re-organization of where "[" methods are defined.
	  more to come.

2005-08-18  Douglas Bates  <>

	* DESCRIPTION (Version): 0.98-5	 released to CRAN

	* src/dgTMatrix.c (graphNEL_as_dgTMatrix): add first graphNEL methods
	* .....

2005-08-18  Douglas Bates  <bates@localhost.localdomain>

	* R/lmer.R: Corrected naming scheme in mcmcsamp to work with lmer
	or glmer objects.

2005-08-17  Martin Maechler  <>

	* DESCRIPTION (Version): 0.98-4 : upload to CRAN

2005-08-16  Douglas Bates  <bates@localhost.localdomain>

	* R/HBMM.R: finish re-writing R-only code.

2005-08-15  Douglas Bates  <bates@localhost.localdomain>

	* man/externalFormats.Rd: move documentation for writeHB and
	writeMM here.

	* src/mmio.c: replace inclusion of <malloc.h> by <stdlib.h>
	(suggested by Paul Roecker).

	* tests/validObj.R (assertError): Comment out test that is failing
	after recent changes in r-devel.

2005-08-11  Martin Maechler  <>

	* R/AllClass.R: intermediate virtual class "denseMatrix"
	* man/denseMatrix-class.Rd
	* NAMESPACE: export it, and also export
	* man/unused-classes.Rd: "iMatrix", "zMatrix" and "ldenseMatrix"

2005-08-10  Douglas Bates  <>

	* DESCRIPTION (Version): 0.98-3 to CRAN

	* src/dtrMatrix.c (dtrMatrix_validate): fixed up validation and
	matrix_solve code (which was really, really wrong).

2005-08-07  Douglas Bates  <>

	* DESCRIPTION (Version): 0.98-2

	* R/HBMM.R (readHB), (readMM): read Matrix Market formats

	* R/lmer.R (abbrvNms): new
	* R/lmer.R (mcmcsamp): allow transformed parameters
	* src/HBMM.c (Matrix_writeMatrixMarket): Added read/write routines
	for the Harwell-Boeing and the MatrixMarket formats.

2005-08-04  Martin Maechler  <>

	* man/dtrMatrix-class.Rd: add examples
	* man/dtpMatrix-class.Rd: ditto; plus note about PROBLEM

	* TODO: note the dtpMatrix (docu) bug

	* R/zzz.R (.onLoad): assignInNamespace("as.matrix", *, "base")
	in order to ensure that new as.matrix() is used by old functions,
	e.g., svd(), qr(), eigen(), dist(),..;
	      apply(), also matplot() or pairs().

2005-08-03  Martin Maechler  <>

	* R/lmer.R: add 'fixme' comments and move the linear vs glm check;
	  add comments about 'control' / lmerControl() arguments

2005-07-27  Douglas Bates  <>

	* man/sleepstudy.Rd: Added the sleep data set.
	* DESCRIPTION (Version): 0.98-1	 released to CRAN

2005-07-12  Douglas Bates  <>
	* man/sleepstudy.Rd: Added the sleep data set.

	* R/lmer.R (glmmMCMC): Added PACKAGE = "Matrix" in a couple of
	.Call calls that were producing spurious output.

2005-07-05  Douglas Bates  <>

	* R/lmer.R (lmer): stored updated variance component estimates in
	mer object for the generalized model.  (Bug reported by Renaud

2005-07-03  Douglas Bates  <>

	* src/lmer.c (glmer_devAGQ): Added AGQ for single grouping factor,
	unidimensional case.

2005-06-08  Douglas Bates  <>

	* DESCRIPTION (Version): 0.96-1

	* moved	 lmer-class' R and C code moved from lme4 to here

2005-06-04  Douglas Bates  <>

	* R/dgCMatrix.R: Call to csc_matrix_mm used undefined arguments
	(reported by Guissepe Ragusa <>)

2005-06-02  Douglas Bates  <>

	* src/ Forgot to update this when Makefile changed.

2005-05-11  Douglas Bates  <>

	* src/dgCMatrix.c (csc_transpose): Simplified function fixing a
	bug reported by Kurt Hornik and Michael Hahsler.

2005-05-10  Douglas Bates  <>

	* src/lgCMatrix.c (Matrix_lgClgCmm): Implementation of methods for
	logical sparse matrices.  These will also be used in the symbolic
	analysis for lmer objects.

	* src/dsCMatrix.c (dsCMatrix_matrix_solve): Copied the dimensions
	of b to the result.  Fixes bug reported by

2005-05-06  Douglas Bates  <>

	* src/dgeMatrix.c (dgeMatrix_colsums): Added an implementation of
	colMeans, colSums, rowMeans and rowSums.

2005-04-18  Douglas Bates  <>

	* src/lgCMatrix.[ch]: code for _validate method and stub for
	multiplication operation.

	* src/dgeMatrix.c (dgeMatrix_matrix_solve): Passing wrong argument
	to dgetrs.

	* src/init.c: Fix cut-and-paste error in definition of

	* src/{many files}: Tighten code by using ALLOC_SLOT.

2005-04-15  Douglas Bates  <>

	* R/AllClass.R: Add lgTMatrix and lgCMatrix classes

	* DESCRIPTION: Eliminate import of stats.

2005-04-06  Douglas Bates  <>

	* R/AllClass.R : add logical sparse matrix classes

2005-04-01  Martin Maechler  <>

	* R/dgTMatrix.R: add "[" method for triplet matrices
	* R/sparseMatrix.R: and other sparse ones; --> add show() for sparse

2005-03-31  Douglas Bates  <>

	* DESCRIPTION (Version): release 0.95-5 to CRAN

	* R/dMatrix.R: add %*%, crossprod and solve "fallback" methods
	* R/sparseMatrix.R: %*%, crossprod()
	* R/dgeMatrix.R: more "fallback" methods for numeric/dense matrices
	* man/*.Rd: move method definitions to 'Matrix' and 'dMatrix'
	* src/lmer.c (lmer_fitted): fix thinko

2005-03-26  Martin Maechler  <>

	* R/AllClass.R: add two virtual sparse classes ``on top''

2005-03-24  Martin Maechler  <>

	* R/AllClass.R (setClass): use "VIRTUAL" for the virtual classes;
		correspondingly fix examples and tests/ since new()
		doesn't work for virtual classes.

2005-03-17  Martin Maechler  <>

	* R/Matrix.R (as.matrix): method and one for unname()
	* tests/dpoMatrix.R: tests should now be less platform dependent;
	  also run for R 2.1.0; using as.matrix()

2005-03-15  Douglas Bates  <>

	* R/pMatrix.R: "pMatrix" class added
	* ....

2005-03-14  Douglas Bates  <>

	* R/dtpMatrix.R: Add unpack method and an example.

	* src/dsyMatrix.c (dsyMatrix_trf): Add BunchKaufman factorization
	of general symmetric matrices and associated S4 methods.

2005-03-10  Martin Maechler  <>
2005-03-05  Martin Maechler  <>

	* R/dgeMatrix.R (setAs): and many other files: more coercion,
	  crossprod() and "%*%" methods added; tests, too.
	* tests/matprod.R: new, for testing these

2005-03-03  Douglas Bates  <>

	* src/lmer.c (lmer_fitted): Added.

2005-03-02  Douglas Bates  <>

	* R/dsTMatrix.R: Conversion from dsTMatrix to dsCMatrix

2005-02-28  Douglas Bates  <>

	* src/*.c,po/,inst/po: Internationalization and localization of
	the package.

	* src/ldl.[ch]: Removed these as their contents are referenced in the
	R_ldl.c file.

	* src/flame.[ch]: Removed these source files.

	* src/dtrMatrix.c (make_array_triangular): Move to Mutils

	* src/LU.[ch],src/init.c: absorb in factorizations

	* src/Mutils.h: prepare for internationalization

	* src/cblas.h: move the enum definitions to Mutils.h and remove
	this file

2005-02-26  Martin Maechler  <>

	* R/dgeMatrix.R: provide "dimnames" and "dimnames<-" methods

	* R/dtrMatrix.R: fix t() method

	* R/dgeMatrix.R: define group methods "Arith", "Math", "Math2"
	* NAMESPACE: export them (and import generics from "methods")
	* tests/group-methods.R : and test them.

	* src/dtrMatrix.c (dtrMatrix_as_dgeMatrix): prevent seg.fault in
	border case

2005-02-24  Douglas Bates  <>

	* DESCRIPTION (Version): 0.95-2	 released to CRAN

	* src/dgBCMatrix.c:
	* src/lmer.c: many changes
	* ...

2005-02-04  Martin Maechler  <>

	* R/Matrix.R: add more sophisticated show() method.

2005-02-02  Douglas Bates  <>

	* */* : almost complete reorganization of classes.

2005-01-26  Douglas Bates  <>

	* R/AllGeneric.R: Added matrix exponential generic expm and a method
	for the geMatrix class.

2005-01-24  Douglas Bates  <>

	* src/Makefile (clean): Remove *.a and *.so

	* man/cscBlocked-class.Rd: Remove reference to the lmer-class.

2005-01-23  Douglas Bates  <>

	* src/lmer.c (Lind): Definition of Lind was backwards.	This only
	had an effect in cases with more than 2 grouping factors.

2005-01-03  Douglas Bates  <>

	* src/lmeRep.c (lmer_variances): change from lmeRep to lmer

2004-12-23  Douglas Bates  <>

	* src/init.c (R_init_Matrix): Reorder calls to R_registerRoutines
	and R_useDynamicSymbols (suggested by B.D.Ripley).

2004-12-14  Douglas Bates  <>

	* R/sscMatrix.R: Add determinant methods

	* src/triplet.[ch],src/init.c (triplet_to_matrix): Add a coercion
	for tripletMatrix to matrix.

2004-12-13  Douglas Bates  <>

	* R/AllClass.R (.onLoad): Eliminate the bbCrosstab class, which is
	no longer used.

	* src/R_ldl.c: Created an R-specific version of the ldl.[ch] files
	with dynamic allocation of scratch arrays.

	* src/ssclme.c (ssclme_copy_ctab): Fixed bug in creation of ZtZ
	for multivariate random effects with multiple grouping factors.
	Fixes part but not all of #15.

2004-12-03  Douglas Bates  <>

	* src/lmeRep.c (lmeRep_factor): order of operations for multiple
	scalar grouping factors corrected.

2004-11-29  Douglas Bates  <>

	* src/bCrosstab.c: remove diag_update which is no longer used

2004-11-16  Douglas Bates  <>

	* src/Metis_utils.c: Move metis.h include to C sources so that the
	.h file can be included.

2004-11-12  Douglas Bates  <>

	* src/LU.c,geMatrix.c,trMatrix.c, etc.:
	Complete allocation of slots in NEW_OBJECT.

	* src/Mutils.h: Moved list of symbols to an include file

2004-11-11  Douglas Bates  <>

	* src/geMutils.c (Matrix_init): remove unused function

2004-11-10  Douglas Bates  <>

	* src/cscMatrix.c (csc_to_imagemat): removed unused function

2004-11-05  Douglas Bates  <>

	* src/ (SOURCES_C): Keep consistent with Makefile

2004-10-27  Douglas Bates  <>

	* R/pdmatrix.R: remove PACKAGE="Matrix" in .Call calls

2004-10-04  Douglas Bates  <>

	* src/init.c: Created R_init_Matrix and added registration of C

2004-10-02  Douglas Bates  <>

	* R/tripletMatrix.R: Force a require(lattice) for the image methods.

2004-06-15  Douglas Bates  <>

	* man/trMatrix-class.Rd: Escape the % chars in .Rd files.

2004-04-20  Douglas Bates  <>

	* src/ ($(SHLIB)): Modifications per Uwe Ligges.

2004-04-19  Douglas Bates  <>

	* src/ssclme.c (ssclme_update_mm): fix logic error in

2004-04-18  Douglas Bates  <>

	* src/ssclme.c (ssclme_coef, ssclme_coefGets): Create consistency
	in the order of unconstrained and constrained parameters.
	(ssclme_gradient): Added the gradients (not yet correct for
	multidimensional, unconstrained case).

2004-04-14  Douglas Bates  <>

	* src/ssclme.c (ssclme_EMsteps): Fix logic in REML update

	* src/ Remove unneeded ranlib call

2004-04-12  Douglas Bates  <>

	* DESCRIPTION (Version): New release

	* src/ Update to umfpack removal.

2004-04-05  Douglas Bates  <bates@bates2_home>

	* src/triplet_to_col.c: Create triplet_to_col as a native
	function, not the version from umfpack.	 There were problems with
	the configuration of UMFPACK for 64-bit processors and there was
	only one umfpack routine being used so I moved it here.

2004-04-04  Douglas Bates  <bates@bates2_home>

	* src/ssclme.c (ssclme_variances): New function.

2004-03-28  Douglas Bates  <bates@bates2_home>

	* src/ssclme.c (ssclme_fitted): Added function.

2004-03-27  Douglas Bates  <bates@bates2_home>

	* src/ssclme.c (ssclme_transfer_dimnames): Add new function to
	store the dimnames in the XtX and bVar slots
	(ssclme_update_mm): Change the dimensions of the bVar slot
	components and the returned value from ssclme_ranef.

2004-03-18  Douglas Bates  <>

	* R/{pdMat.R,pdIdent.R,pdLogChol.R,pdMatrixLog.R,pdNatural.R},
	Moved the pdMat classes from the lme4 package.

2004-03-02  Douglas Bates  <>

	* man/ssclme-class.Rd: Update definition and documentation of the
	ssclme class to include the DIsqrt slot.

	* src/ssclme.c (ssclme_deviance): Modify order of computation
	(much faster using dsyrk, a level 3 BLAS routine).

	* src/Makefile (SUBLIBS): Change definition (K. Hornik)

2004-02-28  Douglas Bates  <>

	* tests/ssclme.R: Modify the test to account for the permutation
	of the levels of the grouping factors.

2004-02-23  Douglas Bates  <>

	* R/ssclme.R,src/ssclme.c (ssclme): Move slots of sscCrosstab slot
	directly into the ssclme class definition.

2004-02-22  Douglas Bates  <>

	* DESCRIPTION (Date): New release

	* man/ssclme-class.Rd: new file.

	* src/ssclme.c (ssclme_loglik): major revisions in design.  It
	works and it's fast!

2004-02-17  Douglas Bates  <>

	* src/taucs/ (lib): Change "ar" to "$(AR)" (B.Ripley)

2004-02-16  Douglas Bates  <>

	* DESCRIPTION (Date): New release

	* NAMESPACE: Don't export ssclme.

	* data/ScotsSec.rda, man/ScotsSec.Rd: Add Scottish secondary
	school data.

2004-02-11  Douglas Bates  <>

	* src/sscCrosstab.c (sscCrosstab): Added a row to the incidence to
	keep track of the fixed-effects and the response.  Counts also
	gets an extra element, which is always one.

	* src/ldl.c: Include these routines from Tim Davis' LDL package.

2004-02-10  Douglas Bates  <>

	* src/cscMatrix.c (csc_transpose): new function

	* src/Mutils.c (csc_sort_columns): perm/iperm confusion corrected
	(csc_components_transpose): new function

2004-02-06  Douglas Bates  <>

	* src/triplet.c (triplet_validate): Fix Dim slot on generated

2004-01-30  Douglas Bates  <>

	* R/sscCrosstab.R (sscCrosstab): Added sscCrosstab generator function.

	* src/LU.h (MATRIX_LU_H): Add #ifndef #define ... #endif to this
	and all other .h files in src.

	* src/ This and other files contributed
	by Brian Ripley.

2004-01-27  Douglas Bates  <>

	* R/syMatrix.R: Added methods for "%*%".

	* R/Hilbert.R (Hilbert): Changed Hilbert function to return a
	poMatrix object.

2004-01-26  Douglas Bates  <>

	* man/sscChol-class.Rd,man/mm.Rd,man/y.Rd: Added man pages.

2004-01-25  Douglas Bates  <bates@bates2_home>

	* inst/doc/Introduction.Rnw,Comparisons.Rnw: Added vignettes.

	* R/csc.R: Convert all cscMatrix classes to use Dim slot instead
	of nrow.

2003-12-31  Douglas Bates  <>

	* src/taucs/taucs.h: Moved taucs.h, amd.h, and umfpack.h into

2003-12-08  Douglas Bates  <>

	* src/taucs.h: Accidently referred to global header files
	instead of local files.

2003-12-04  Douglas Bates  <>

	* R/AllClass.R: Lots of changes.  Removed all the lapack++ code
	and methods and replaced all classes with S4 classes.

2003-04-19  Douglas Bates  <>

	* R/det.R,man/det.Rd: Change name of det generic to determinant

	* src/ Change method of calculating determinants

2003-02-03  Douglas Bates  <>

	* DESCRIPTION (Version): removed empty data directory as requested
	by CRAN maintainers.  Changed version number and date.

2002-10-23  Douglas Bates  <>

	* src/laindex.h: Applied patches from Brian Ripley for compilation
	under Windows.

	* Added and src/ as requested by Brian

2002-05-03  Douglas Bates  <>

	* src/lamatrix.h: Removing pre-1.2.0 compatibility code per Kurt

2002-04-24  Douglas Bates  <>

	* Replaced with
	contributed by Kurt Hornik.

	* aclocal.m4 (ac_clean_files): Replaced this with Kurt Hornik's
	version for R-1.5.0

2001-12-10  Douglas Bates  <>

	* man/eigen.Rd: Removed the .Alias in the example
ViewVC Help
Powered by ViewVC 1.0.0  
Thanks to:
Vienna University of Economics and Business Powered By FusionForge