Skip to content

Releases: moble/Quaternionic.jl

v3.1.1

30 Oct 21:30
4fb328f

Choose a tag to compare

Quaternionic v3.1.1

Diff since v3.1.0

Merged pull requests:

  • Disable functions with conditionals for FastDifferentiation (#83) (@moble)

v3.1.0

02 Oct 02:00
58a3733

Choose a tag to compare

Quaternionic v3.1.0

Diff since v3.0.1

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 iszerovalue function to improve numerical stability in special cases. (516a099, 1238473, 4f37368, 0c48e31)
    • Added an rrule for scalar multiplication. (287b36d)
    • Improved AD compatibility for sqrt, exp, and log functions. (3562051, 15145c0, 2b3dbbe)
  • Improved Quaternionic Differentiation:

    • Expanded and clarified the definition of quaternionic differentiation. (d675202)
    • Added more examples for reverse-mode rules (rrules). (269b340)
  • Test Framework Enhancements:

    • Introduced TestItems for better test organization and selection. (f16d5bc, feac600)
    • Enabled testing across all supported AD backends. (5889c25)
    • Loosened tolerances and improved test output clarity. (ebb487a, 648ed6d)

Improvements

  • Numerical Stability:

    • Improved stability and differentiability of exp and log functions. (15145c0)
    • Simplified and stabilized sqrt, especially for AbstractQuaternion{Float16} to avoid underflow. (3562051, 28da67a)
  • Documentation:

    • Expanded and clarified documentation for basic functions. (af3adb0)
    • Added comments and explanations for special cases in log and sqrt. (ec3682b, 805b791)
    • Warned about Zygote's limitations with explicit quaternionic inputs/outputs. (d999e88)
  • Code Simplification:

    • Streamlined code for differentiation and quaternionic operations. (1dd44ae)
    • Simplified sqrt implementation for better readability and performance. (3562051)

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:

  • Start using TestItems and update for FastDifferentiation (#75) (@moble)

Closed issues:

  • angle returns different values for a unit quaternion and its antipodal quaternion (#79)

v3.0.1

11 Sep 21:03
0351de4

Choose a tag to compare

Quaternionic v3.0.1

Diff since v3.0.0

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:

  • The left or right product of a Rotor{T} with a Vector of Rotor{T}(s) should be a vector of Rotor{T}(s) (#73)
  • Please update ForwardDiff dependency to allow version 1.0 there (#76)

v3.0.0

26 Feb 22:05
8747b36

Choose a tag to compare

Quaternionic v3.0.0

Diff since v2.0.1

Breaking changes

  • Replaced Base.eltype with Quaternionic.basetype. If you used the eltype to get the underlying number type of any quaternionic type before, you should now use basetype, which is exported from this package. This solves some obscure broadcasting problems.
  • The conj and unary - functions will no longer re-normalize when acting on Rotors. This simplifies and improves floating-point behavior.
  • The align function now specifies the input types; they must either be vectors of QuatVec or vectors of Rotor. Previously, the latter method would accept any types, which could lead to incorrect results. In particular, it is easy to accidentally promote a QuatVec to Quaternion, which would switch methods and thus use the wrong algorithm.

Merged pull requests:

  • Replace eltype with basetype (#71) (@moble)

Closed issues:

  • Broadcast algebra (#15)
  • Product of a Rotor with a Vector of Rotor(s) (#70)

v2.0.1

03 Jan 06:54
7d00c98

Choose a tag to compare

Quaternionic v2.0.1

Diff since v2.0.0

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:

v2.0.0

22 Oct 16:29
f435e88

Choose a tag to compare

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.

Diff since v1.5.3

Merged pull requests:

  • Remove strong dep on latexify; move to extension (#67) (@moble)
  • Remove Pkg, and increase compat of StaticArrays (#68) (@moble)

Closed issues:

  • Move LaTeX-related dependencies to extensions (#64)
  • Deal with StaticArrays chain rules (#65)

v1.5.3

16 Aug 01:56
dffbb90

Choose a tag to compare

Quaternionic v1.5.3

Diff since v1.5.2

Merged pull requests:

  • CompatHelper: bump compat for Symbolics in [weakdeps] to 6, (keep existing compat) (#61) (@github-actions[bot])

v1.5.2

02 Jul 20:08
c2b3739

Choose a tag to compare

Quaternionic v1.5.2

Diff since v1.5.1

Merged pull requests:

  • Remove methods that are already in FastDifferentiation (#60) (@elaine-ran)

v1.5.1

25 Jun 03:43
a6613d2

Choose a tag to compare

Quaternionic v1.5.1

Diff since v1.5.0

v1.5.0

24 Jun 18:27
6c9f858

Choose a tag to compare

Quaternionic v1.5.0

Diff since v1.4.1

Merged pull requests:

  • Add FastDifferentiation support (minimal testing) (#59) (@moble)