API Changes - wlevine/nmatrix GitHub Wiki
NMatrix#getrf: This one doesn't make sense, because it's not really analogous to
#getrf!, which returns the pivot array, and replaces the original matrix with LU.
#getrf just returns the LU part and throws away the pivot array.
NMatrix#lu_decomposition!: This is an alias for
#getrf!, but the name seems too similar to
#factorize_lu which does a different thing. Remove to prevent confusion
#getrf!: The clapack_?getrf interface is strange and doesn't match the LAPACK spec. Make
#getrf! match LAPACK rather than ATLAS CLAPACK. All the callers were confused about this anyway, so I think it's OK to change. This has the downside that it has to do a transpose before and after calling clapack_getrf, which uses memory, but on the hand, all of the callers were already doing this anyway.
#factorize_cholesky: The new version assumes that the matrix is symmetric and so only has to call
#potrf! once. The old version called
#potrf! twice, but still returned nonsense in the case that the matrix was non-symmetric.
NMatrix::LAPACK.clapack_gesv: This has the same behavior as
NMatrix#solve and also the name was deceiving since it didn't actually call gesv.
NMatrix::LAPACK.clapack_posv: Doesn't actually call C functions
clapack_?posv. Arguments difficult to interpret. Replaced by
NMatrix::LAPACK.geev: The old version did not actually work properly. New behavior is described in the documentation.