Expand description
Compilation down to native machine code
Users are unlikely to use anything in this module other than JitFunction,
which is a Function that uses JIT evaluation.
use fidget_core::{
context::Tree,
shape::EzShape,
};
use fidget_jit::JitShape;
let tree = Tree::x() + Tree::y();
let shape = JitShape::from(tree);
// Generate machine code to execute the tape
let tape = shape.ez_point_tape();
let mut eval = JitShape::new_point_eval();
// This calls directly into that machine code!
let (r, _trace) = eval.eval(&tape, 0.1, 0.3, 0.0)?;
assert_eq!(r, 0.1 + 0.3);Structs§
- JitBulk
Fn - Handle to an owned function pointer for bulk evaluation
- JitFloat
Slice Eval - JIT-based bulk evaluator for arrays of points, yielding point values
- JitFunction
- Function for use with a JIT evaluator
- JitGrad
Slice Eval - JIT-based bulk evaluator for arrays of points, yielding gradient values
- JitInterval
Eval - JIT-based tracing evaluator for interval values
- JitPoint
Eval - JIT-based tracing evaluator for point values
- JitTracing
Fn - Handle to an owned function pointer for tracing evaluation
Traits§
- Simd
Size - Trait defining SIMD width
Type Aliases§
- JitBulk
FnPointer - Typedef for a bulk function pointer
- JitShape
- A
Shapewhich uses the JIT evaluator - JitTracing
FnPointer - Typedef for a tracing function pointer