Crate evalexpr_jit

Crate evalexpr_jit 

Source
Expand description

JIT-compiled mathematical expression evaluator with automatic differentiation.

This crate provides JIT compilation and automatic differentiation for mathematical expressions. It parses expressions using evalexpr and compiles them to native machine code using Cranelift.

§Features

  • Fast evaluation through JIT compilation to native code
  • Automatic differentiation for gradients and Hessians
  • Support for variables, constants, and mathematical functions
  • Safe Rust implementation with comprehensive error handling

§Example

use evalexpr_jit::Equation;

// Create and compile an equation
let eq = Equation::new("2*x + y^2".to_string()).unwrap();

// Evaluate at point (x=1, y=2)
let result = eq.eval(&vec![1.0, 2.0]).unwrap(); // Returns 6.0

// Compute gradient [∂/∂x, ∂/∂y]
let gradient = eq.gradient(&vec![1.0, 2.0]).unwrap(); // Returns [2.0, 4.0]

Re-exports§

pub use equation::Equation;
pub use expr::Expr;
pub use system::EquationSystem;

Modules§

backends
Backends for vector operations
builder
JIT compilation functionality using Cranelift This module provides functionality for JIT compilation of mathematical expressions. It uses Cranelift as the backend compiler to generate native machine code.
convert
Conversion from evalexpr AST to internal expression format Converts evalexpr AST nodes into our internal expression representation for JIT compilation.
equation
High-level equation handling and evaluation Mathematical equation evaluation and differentiation with JIT compilation.
errors
Error types for parsing, compilation and evaluation Error types for the evalexpr-jit crate.
expr
Expression tree representation and symbolic differentiation Expression module for representing mathematical expressions.
prelude
system
System of multiple equations System of equations evaluation with JIT compilation.
types
Type definitions for JIT-compiled functions