Skip to content

v0.3.1

Pre-release
Pre-release
Compare
Choose a tag to compare
@mkeeter mkeeter released this 04 Jun 12:09
· 89 commits to main since this release
7a5e389

The highlight of this release is the fidget::solver module, which implements the Levenberg-Marquardt algorithm to minimize a system of equations (represented as fidget::eval::Function objects). It's our first official case of using Fidget's types and traits for things other than pure implicit surfaces!

Detailed changelog below:

  • Fixed a bug in the x86 JIT which could corrupt registers during gradient (grad_slice) evaluation
  • Renamed Context::const_value to Context::get_const and tweaked its return type to match Context::get_var.
  • Added impl From<i32> for Tree to make writing tree expressions easier
  • Removed Error::ReservedName and Error::DuplicateName, which were unused
  • Add the fidget::solver module, which contains a simple solver for systems of equations. The solver requires the equations to implement Fidget's Function trait. It uses both point-wise and gradient evaluation to solve for a set of Var values, using the Levenberg-Marquardt algorithm.
  • Add Tree::var() and impl TryFrom<Tree> for Var