All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
swaprows!andswapcols!are implemented in the package and do not rely on the internal Julia Base implementations.- Removed all references to
Base.promote_typeofas it is also internal.
- Failure to compute Smith normal form for matrices with a zero row (#21 - thanks, justus-springer!)
- Incorrect result from GCD algorithm when negative integers are used (#22 - thanks, justus-springer!)
0.1.9 - 2024-06-13
- For non-square
StaticMatrix{D1,D2,T}inputs, the return types of the factors areMatrix{T}.
- Methods allowing interoperability with
StaticMatrixtypes were too narrow to support arbitrary immutable subtypes ofStaticMatrix.
0.1.8 - 2024-03-27
- Missing
[compat]bounds in Project.toml - Removed an unsupported flag in the Aqua test suite invocation
0.1.7 - 2023-11-08
- Issue #13 was not fixed by v0.1.6; it should be fixed now.
0.1.6 - 2023-11-05
- New methods:
NormalForms.is_row_zero_after,NormalForms.is_col_zero_after,NormalForms.zero_row_and_col!
- Row/column zeroing should not loop forever (#13)
0.1.5 - 2023-01-25
- Factorizations can now be converted to a
Diagonalrepresentation by callingDiagonal(). - Factorizations may now be transposed, or converted to an adjoint representation.
- The method
snf_ma!(::Diagonal)did not perform any operations, which of course skipped over the steps that ensure that the diagonal entries meet divisibility requirements. This has been fixed by convertingDiagonalmatrices to theMatrixtype before proceeding.
0.1.4 - 2023-01-24
- All Hermite and Smith normal form calculating functions now accept non-integer inputs, but convert the input matrix to an integer matrix before proceeding.
- Diagonal matrices now have their own methods for
hnf_ma!()andsnf_ma!(), preventing type errors and improving efficiency.
- Broadened method signature types for many internal algorithms.
0.1.3 - 2023-01-20
- Fixed a bug where matrices with off-diagonal entries equal to diagonal entries may never be able to become zero off-diagonal.
- Updated
NormalForms.eye()to handle transpose and adjoint matrices more transparently.
0.1.2 - 2022-12-12
snf(::SMatrix{D1,D2,T})now returns its factors asSMatrixtypes.- The return type of
snf(::SMatrix{D1,D2,T})is nowSmith{T,SArray{S,T,2}} where S<:Tuple. - Removed an extraneous
@infostatement fromNormalForms.snf_ma!()
0.1.1 - 2022-11-08
- This changelog!
- Complete documentation of all functions, public and internal
- Detailed installation instructions in [README.md]
- Tests for factorization constructors, iteration specification, and some algorithms
- Bareiss algorithm is now included in package to support Julia releases before 1.7
diag()definition for all factorizations
- Broken iterator for
AbstractHermitetypes (RowHermiteandColumnHermite)
- Unused
HermiteStyledispatch type
0.1.0 - 2022-11-07
Initial release - added to Julia package registry