There is a newer version of the record available.

Published March 4, 2020 | Version v2.0
Software Open

jeremyong/klein: v2.0

  • 1. Warner Bros

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