Klein v2.0 Release Notes
Release Date: 2020-03-04 // about 4 years ago-
๐ New semantic release due to breaking compatibility.
- ๐ Entity type has been removed due to compiler inability to properly
constant-fold interior expressions. - Operators have been promoted to first-order types.
- A number of operators have been specialized for various types for
๐ improved throughput/latency. - โก๏ธ Perf analysis has been updated.
- Motors can now be constructed from a screw axis, angle, and
displacement. - A preliminary dual number type as been added.
- ๐ฒ The exp/log methods have been promoted to free functions and now have
strongly typed return values. - The project function has been added to simplify various projections.
๐ Some operations that were previously permitted are no longer supported due to a fully general underlying "multivector" class (formerly known as
entity<PMask>
). Operation overloads are now added individually. This enables another class of optimizations because type safety ensures that certain components of SSE registers are exactly 0.Summarizing:
- Compile times reduced due to very minimal usage of templates and constexpr branches
- Speed improvements in most situations
- Increased type safety in a number of situations
- ๐ Entity type has been removed due to compiler inability to properly