Releases: moble/Quaternionic.jl
v3.1.1
v3.1.0
Quaternionic v3.1.0
Release Notes for Version 3.1.0
New Features
-
Automatic Differentiation (AD) Enhancements:
- Added compatibility with multiple AD backends, including ChainRules, Zygote, Enzyme, and Mooncake. (23c3be7, 5889c25, 4702d4f)
- Introduced
iszerovaluefunction to improve numerical stability in special cases. (516a099, 1238473, 4f37368, 0c48e31) - Added an
rrulefor scalar multiplication. (287b36d) - Improved AD compatibility for
sqrt,exp, andlogfunctions. (3562051, 15145c0, 2b3dbbe)
-
Improved Quaternionic Differentiation:
-
Test Framework Enhancements:
Improvements
-
Numerical Stability:
-
Documentation:
-
Code Simplification:
Bug Fixes
- Corrected module name in documentation (copy-paste error). (99ffb98)
- Disabled Zygote-specific rules in favor of ChainRulesCore for better compatibility. (d5ef700)
- Fixed compatibility bounds for Enzyme and Mooncake (for
hypot). (836a5f1)
Miscellaneous
- Updated dependencies and ensured compatibility with the latest versions. (6276f8a)
- Added an alias for the dot product in documentation. (4c7e209)
- Improved build process by ensuring updates before building docs. (9b395ff)
Version Update
- Set version to
3.1.0.
Merged pull requests:
Closed issues:
- angle returns different values for a unit quaternion and its antipodal quaternion (#79)
v3.0.1
Quaternionic v3.0.1
Merged pull requests:
- CompatHelper: bump compat for ForwardDiff in [weakdeps] to 1, (keep existing compat) (#72) (@github-actions[bot])
- Bump actions/checkout from 4 to 5 (#77) (@dependabot[bot])
Closed issues:
v3.0.0
Quaternionic v3.0.0
Breaking changes
- Replaced
Base.eltypewithQuaternionic.basetype. If you used theeltypeto get the underlying number type of any quaternionic type before, you should now usebasetype, which is exported from this package. This solves some obscure broadcasting problems. - The
conjand unary-functions will no longer re-normalize when acting onRotors. This simplifies and improves floating-point behavior. - The
alignfunction now specifies the input types; they must either be vectors ofQuatVecor vectors ofRotor. Previously, the latter method would accept any types, which could lead to incorrect results. In particular, it is easy to accidentally promote aQuatVectoQuaternion, which would switch methods and thus use the wrong algorithm.
Merged pull requests:
Closed issues:
v2.0.1
Quaternionic v2.0.1
Fixes an issue with some auto-differentiation packages (e.g., ForwardDiff) where NaNs would be computed for the second derivative of the exponential of 0, rather than regular values. Derivatives with those packages should now be accurate to second order, though they may still fail at higher order for this particular value.
Merged pull requests:
- Bump codecov/codecov-action from 4 to 5 (#69) (@dependabot[bot])
v2.0.0
Quaternionic v2.0.0
This is barely a breaking release. Latexify is no longer required, so some displayed quaternions for some use cases will not look quite as nice any more. However, the functionality is included as an extension, so simply calling using Latexify will re-enable the nicer display formats.
At the same time, the minimum acceptable version of StaticArrays.jl has increased from 1 to 1.8.1 — which, as of this writing, is 10 months old, so hopefully it won't be very disruptive either. This is to support its integration with ChainRulesCore.jl.
Merged pull requests:
- Remove strong dep on latexify; move to extension (#67) (@moble)
- Remove Pkg, and increase compat of StaticArrays (#68) (@moble)
Closed issues:
v1.5.3
Quaternionic v1.5.3
Merged pull requests:
- CompatHelper: bump compat for Symbolics in [weakdeps] to 6, (keep existing compat) (#61) (@github-actions[bot])
v1.5.2
Quaternionic v1.5.2
Merged pull requests:
- Remove methods that are already in FastDifferentiation (#60) (@elaine-ran)
v1.5.1
Quaternionic v1.5.1
v1.5.0
Quaternionic v1.5.0
Merged pull requests: