Changelog of @hackage/linear-algebra-cblas 0.1

Changes in 0.8.0.1

Changes in 0.8:

  • Use GADTs to and remove the element type from the typeclasses. This makes the function signatures a lot nicer to read and write.

  • Put structural operations ( swap, copy, vconj ) in Elem. This removes the BLAS1 constraint from the structural functions like getRow.

  • Allowing reading from immutable types in arbitrary monads.

  • Add binding to "ger".

  • Add functional dependency m -> a in Write{Vector,Matrix,Banded} a m

  • Add test coverage for all code paths in matrix multiplication and solve routines. Fix bugs in bindings to gemv and hemm.

  • Specialize multiplication and solve routines for Doubles so that they ignore complex conjugacy information.

Changes in 0.7.6:

  • Fix a memory-trashing segfault.

Changes in 0.7.5:

  • Export all unsafe functions in Unsafe.BLAS.

  • Use enumerations instead of Bools in data types.

Changes in 0.7:

  • Get rid of most functional dependencies in favor of type families. There is one remaining functional dependency that cannot be gotten rid of until GHC implements equality constraints in superclass contexts.

  • Put the right superclass constraints in ReadMatrix/ReadBanded.

  • Fix freeze/thaw functions.

  • Fix a bug in getting a row view of a banded matrix.

  • Make sure no NaNs/Infinities/Denormals are used when testing.

  • Documentation.

  • Export functions for writing QuickCheck tests.

  • Remove Perm and Diag. These will be in the LAPACK bindings.

  • Get rid of "UnsafeIOToM" type class.

  • Lots of INLINE everywhere. This should improve performance.

  • Switch to autoconf for build system.

  • Massive code cleanup.

Changes in 0.6:

  • Massive overhaul of the types. It is now possible to do mutable operations in the ST monad. Access control is done via type classes now instead of phantom types.

  • No more orphan instances.

  • Change some function names. You should never have to "import qualified" anything now.

  • Put row/col operations in the Matrix type classes. Generic matrix types now provide access to rows and columns.

Changes in 0.5:

  • Add Banded matrix data type, as well as Tri Banded and Herm Banded.

  • Add support for trapezoidal dense matrices (Tri Matrix (m,n) e, where m is not the same as n). Note that trapezoidal banded matrices are NOT supported.

  • Add Diag matrix data type for diagonal matrices.

  • Add Perm matrix data type, for permutation matrices.

  • Enhance the RMatrix and RSolve type classes with an API that allows specifying where to store the result of a computation.

  • Enhance the IMatrix, RMatrix, ISolve, and RSolve type classes to add "scale and multiply" operations.

  • Remove the scale parameter for Tri and Herm matrix data types.

  • Flatten the data types for DVector and DMatrix.

  • Some inlining and unpacking performance improvements.