1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
//! Evaluation and JIT code generation for oCAS.
//!
//! This crate provides a stack-based virtual machine for numeric evaluation
//! of symbolic expressions, an AST-to-instruction compiler, a Cranelift JIT
//! backend, and SIMD vectorized evaluation.
//!
//! # Architecture
//!
//! The evaluation pipeline:
//!
//! ```text
//! Atom (arena-backed)
//! → EvalTree (owned intermediate)
//! → Instr sequence (compile + optimize)
//! → ExpressionEvaluator (stack VM)
//! → or JitCompiledFunction (Cranelift, feature = "jit")
//! → or VectorEvaluator (SIMD batch)
//! ```
//!
//! # Example
//!
//! ```ignore
//! use ocas_eval::{ExpressionEvaluator, EvaluationDomain};
//! use ocas_atom::AtomArena;
//! use ocas_core::arena::Arena;
//!
//! let arena = Arena::new();
//! let ctx = AtomArena::new(&arena);
//! let expr = ctx.add(&[ctx.var("x"), ctx.num(1)]);
//!
//! let eval: ExpressionEvaluator<f64> =
//! ExpressionEvaluator::compile(&expr).unwrap();
//! let result = eval.evaluate(&[2.0]).unwrap();
//! assert_eq!(result[0], 3.0);
//! ```
pub use ;
pub use ;
pub use EvaluationError;
pub use ExpressionEvaluator;
pub use FunctionMap;
pub use ;
pub use EvalTree;
pub use VectorEvaluator;