Skip to content
This repository has been archived by the owner on Aug 2, 2024. It is now read-only.

v2.0

Compare
Choose a tag to compare
@jeremyong jeremyong released this 04 Mar 03:03
· 44 commits to master since this release

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