v0.3.1
Pre-release
Pre-release
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
toContext::get_const
and tweaked its return type to matchContext::get_var
. - Added
impl From<i32> for Tree
to make writing tree expressions easier - Removed
Error::ReservedName
andError::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'sFunction
trait. It uses both point-wise and gradient evaluation to solve for a set ofVar
values, using the Levenberg-Marquardt algorithm. - Add
Tree::var()
andimpl TryFrom<Tree> for Var