# 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 * `Hermitian`: Definiteness properties in the type * `eigensystem`, `Householder.fromMatrix`, `LowerUpper.fromMatrix` etc.: We use the new class `Shape.Permutable` for shapes where permutation of indices seems to make sense. We tried using liberal squares matrix factors, but this would require extra parameters and consistency checks for the shapes of the factor matrices. * `Square.fromGeneral` -> `fromFull` * `Orthogonal.affineKernelFromSpan` -> `affineFiberFromFrame`, `Orthogonal.affineSpanFromKernel` -> `affineFrameFromFiber` * `Matrix.Function`: New module providing generalized algebraic and transcendent functions like `sqrt`, `exp`, `log`. * `Matrix.Superscript`: Experimental module for eye-candy notation `a#^T` for transposition and `a#^Inv` for inverse. ## 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.