Skip to content

0.6.1

Latest

Choose a tag to compare

@chiphogg chiphogg released this 01 Oct 20:24
· 31 commits to main since this release
250ca14

0.6.1

Release Notes

Upgrading from (0.6.0)

We are not aware of any breaking changes.

User-facing library changes

✨ CUDA support for more math functions (#745)

We added support for abs, arccos/arcsin/arctan/arctan2,
hypot, cos/sin/tan, fmod/remainder, rounding functions, and
sqrt.

✨ User-defined literal improvements (#747, #748, #798)

Many literals now return ZERO where appropriate. This includes
0_mag, and also unit literals such as 0_s. Additionally, we now
support octal (010_mag is 8), binary (0b101_mag is 5), and
hexadecimal (0xFF_mag is 255) syntax for literals, including
hexadecimal floating point literals (0x1.8p1_mag is 3) for C++17
users. This fixes a bug where 010_mag was previously interpreted as
10, which was inconsistent with 010.

✨ Constant and Zero supported in fmod and others (#744, #785)

This lets you do something like the following:

constexpr auto FULL_TURN = make_constant(revolution);
const auto wrapped = fmod(angle, FULL_TURN);

In this call, FULL_TURN automatically adapts to the units and rep of
angle! This now works for remainder and copysign too.

✨ Add explicit-rep "as" versions for rounding Constant (#746)

The goal is to help Constant "feel like" a Quantity in more
situations. Whereas implicit-rep "as" functions turn a Constant to
another Constant, the new explicit-rep versions produce a Quantity.

✨ Enable comparing quantity-like type to Constant, Zero (#764)

You can now compare any type with CorrespondingQuantity to
a Constant. This includes all chrono durations, whose
CorrespondingQuantity machinery is provided out of the box by Au.

🐛 Certain QuantityPoint overload sets were broken (#762)

This was a weird and obscure one. The overload sets that were broken
were any that differed only in the units of their QuantityPoint
argument, with at least two different dimensions, and at least one
custom (nonzero) origin. We've now fixed this.

🐛 Other bugfixes:

  • eigen.hh was not included in CMake builds (#755)
  • Could not use Constant as origin() (#763)

Compile time impact

Overall, the new features in 0.6.1 cost about 5 ms of compile time per
translation unit, relative to 0.6.0. See comments in #806 for more
detailed measurements.

Documentation updates

  • Corresponding quantity comparison (#793)
  • Magnitude literals documentation (#797, #802)
  • New Constant rounding functions (#774)
  • Improved Zero ergonomics (#773)
  • Shapeshifter types in more math functions (#768)
  • Unit origin updates (#796)

Repo updates

  • Improved CI coverage robustness for bazel/CMake correspondence (#782)

Future-proofing releases

  • 🚀 0.6.1-future-714: release covering #714

    • This commit removes all APIs with the word "coerce" in their name.
      To fix build errors, first, delete the coerce_ part of the name.
      Then, if you get a compiler error, read the error to see what risk
      set the library has flagged, and refer to our conversion risk guide
      https://aurora-opensource.github.io/au/0.6.1/troubleshooting/#risk-too-high
      to see how to handle this specific instance.
  • 🚀 0.6.1-future-715: release covering #715

  • 🚀 0.6.1-future-733: release covering #733

    • This commit deletes all "T-suffixed" names (e.g., UnitProductT
      instead of UnitProduct) from the library. The fix is generally to
      use the version without the T suffix.

Closed Issues

Here are all of the issues that were closed between these releases.
(Note that the resolution is at the level of days, so some of these
issues might show up in the notes for more than one release.)

https://github.com/aurora-opensource/au/issues?q=is%3Aissue+closed%3A2026-08-26..2026-09-30+-milestone%3A1.0.0

Contributors

Thanks to those who authored or reviewed PRs, or filed or participated
in Issues! Alphabetically:

Artifacts and SHA256 sums

Artifact Role SHA256 sum
au-0.6.1.tar.gz Main release 40c4ecf782bfc7fa7aa14ccd8d10fcc93e195ff6b2bcdcc9a0d95c75f0c76a04
au-0.6.1-future-714.tar.gz Future-proof for #714 b80408b3017f89a11236085d2f8b418503baf72af567129ecd7caeb825b6ea71
au-0.6.1-future-715.tar.gz Future-proof for #715 4defc64a3548779f58bfde3ccda1a2f4d15fab4edb70a157cae075da237ad3ad
au-0.6.1-future-733.tar.gz Future-proof for #733 fa05e38dcc835c6fc3b156905b39afe39d25f33e464e4f822f9fe48a9d93e2f1
au-0.6.1-future.tar.gz Complete future-proof release e8ee16ec40a646fb3a516da663dfb5038ea0f2bba0ba2b9a902861e5781f9151