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_valuetoContext::get_constand tweaked its return type to matchContext::get_var. - Added
impl From<i32> for Treeto make writing tree expressions easier - Removed
Error::ReservedNameandError::DuplicateName, which were unused - Add the
fidget::solvermodule, which contains a simple solver for systems of equations. The solver requires the equations to implement Fidget'sFunctiontrait. It uses both point-wise and gradient evaluation to solve for a set ofVarvalues, using the Levenberg-Marquardt algorithm. - Add
Tree::var()andimpl TryFrom<Tree> for Var