This repository has been archived by the owner on Aug 2, 2024. It is now read-only.
v2.0
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