lapack-0.4: Changes.md
# Change log for the `lapack` package
## 0.4
* Unified `Matrix` type that provides the same type parameters
across all special types.
This reduces the use of type functions and improves type inference.
* Unified `transpose` and `adjoint` functions enabled by the new `Matrix` type.
* `Unpacked` format:
We now support data type and according functions
for unpacked triangular, symmetric and Hermitian matrices.
Enables declaration e.g. of Hessenberg matrices.
* There are now two types of square matrices:
* `Square`: height and width shapes match exactly
* `LiberalSquare`: only the sizes of height and width match
* `Square.eigensystem`:
Use liberal square as transformation matrix,
such that the eigenvalue array has `ShapeInt` shape.
The dimension of the input square matrix does not make sense
as shape for the eigenvalue array.
* `Square.fromGeneral` -> `fromFull`
* `Orthogonal.affineKernelFromSpan` -> `affineFiberFromFrame`,
`Orthogonal.affineSpanFromKernel` -> `affineFrameFromFiber`
## 0.3.2
* `Orthogonal`: `project`, `affineKernelFromSpan`, `affineSpanFromKernel`,
`leastSquaresConstraint`, `gaussMarkovLinearModel`
* `Symmetric.fromHermitian`, `Hermitian.fromSymmetric`
* `instance Monoid Matrix`, especially `mempty`
for matrices with static shapes.
* `Extent.Dimensions`: turn from type family to data family
* Start using `doctest-extract` for simple tests
## 0.3.1
* `Matrix.Symmetric`:
You can now import many functions for symmetric matrices from this module.
This is more natural than importing them from `Triangular`.
## 0.3
* Matrix data family
* `Matrix`: `ZeroInt` -> `ShapeInt`, `zeroInt` -> `shapeInt`
* `Hermitian`, `BandedHermitian`: `covariance` -> `gramian`
* `Square.eigensystem`:
Return left eigenvectors as rows of the last matrix.
This is adjoint with respect to the definition in `lapack-0.2`
but it is consistent
with the other eigenvalue and singular value decompositions.