Crate fidget_jit

Crate fidget_jit 

Source
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§

JitBulkFn
Handle to an owned function pointer for bulk evaluation
JitFloatSliceEval
JIT-based bulk evaluator for arrays of points, yielding point values
JitFunction
Function for use with a JIT evaluator
JitGradSliceEval
JIT-based bulk evaluator for arrays of points, yielding gradient values
JitIntervalEval
JIT-based tracing evaluator for interval values
JitPointEval
JIT-based tracing evaluator for point values
JitTracingFn
Handle to an owned function pointer for tracing evaluation

Traits§

SimdSize
Trait defining SIMD width

Type Aliases§

JitBulkFnPointer
Typedef for a bulk function pointer
JitShape
A Shape which uses the JIT evaluator
JitTracingFnPointer
Typedef for a tracing function pointer