Published March 4, 2020
| Version v2.0
Software
Open
jeremyong/klein: v2.0
Description
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
Files
jeremyong/klein-v2.0.zip
Files
(478.3 kB)
Name | Size | Download all |
---|---|---|
md5:06e2be26bc1fc22c2059603858934ba4
|
478.3 kB | Preview Download |
Additional details
Related works
- Is supplement to
- https://github.com/jeremyong/klein/tree/v2.0 (URL)