pub trait FunctionOptimizer: Send + Sync {
// Required methods
fn optimize_bulk_evaluation(
&self,
name: &str,
values: &[f64],
) -> Option<Vec<f64>>;
fn detect_special_values(
&self,
name: &str,
args: &[Expression],
) -> Option<Expression>;
fn optimal_strategy(
&self,
name: &str,
input_size: usize,
) -> EvaluationStrategy;
fn complexity_estimate(
&self,
name: &str,
input_size: usize,
) -> ComplexityEstimate;
}Expand description
Trait for function optimization capabilities
Handles performance optimizations specific to different function families, such as SIMD evaluation, caching, and special value detection.
Required Methods§
Sourcefn optimize_bulk_evaluation(
&self,
name: &str,
values: &[f64],
) -> Option<Vec<f64>>
fn optimize_bulk_evaluation( &self, name: &str, values: &[f64], ) -> Option<Vec<f64>>
Optimize function evaluation for bulk operations
Sourcefn detect_special_values(
&self,
name: &str,
args: &[Expression],
) -> Option<Expression>
fn detect_special_values( &self, name: &str, args: &[Expression], ) -> Option<Expression>
Check for special values that can be computed exactly
Sourcefn optimal_strategy(&self, name: &str, input_size: usize) -> EvaluationStrategy
fn optimal_strategy(&self, name: &str, input_size: usize) -> EvaluationStrategy
Get optimal evaluation strategy for given input size
Sourcefn complexity_estimate(
&self,
name: &str,
input_size: usize,
) -> ComplexityEstimate
fn complexity_estimate( &self, name: &str, input_size: usize, ) -> ComplexityEstimate
Estimate computational complexity