Module optimize

Module optimize 

Source
Expand description

Expression optimization passes.

This module provides various optimization passes for TLExpr expressions:

  • Negation optimization: Apply De Morgan’s laws and eliminate double negations
  • Constant folding: Evaluate constant expressions at compile time
  • Algebraic simplification: Apply mathematical identities (x+0=x, x*1=x, etc.)
  • Pipeline: Multi-pass optimization combining all passes intelligently

§Quick Start

For most use cases, use the unified optimization pipeline:

use tensorlogic_compiler::optimize::{OptimizationPipeline, PipelineConfig};
use tensorlogic_ir::{TLExpr, Term};

let pipeline = OptimizationPipeline::new();
let expr = TLExpr::add(
    TLExpr::mul(TLExpr::Constant(2.0), TLExpr::Constant(3.0)),
    TLExpr::Constant(0.0)
);
let (optimized, stats) = pipeline.optimize(&expr);

For fine-grained control, use individual passes:

use tensorlogic_compiler::optimize::{fold_constants, simplify_algebraic};
use tensorlogic_ir::TLExpr;

let expr = TLExpr::add(TLExpr::Constant(2.0), TLExpr::Constant(3.0));
let (step1, _) = fold_constants(&expr);
let (optimized, _) = simplify_algebraic(&step1);

Re-exports§

pub use algebraic::simplify_algebraic;
pub use algebraic::AlgebraicSimplificationStats;
pub use constant_folding::fold_constants;
pub use constant_folding::ConstantFoldingStats;
pub use negation::optimize_negations;
pub use negation::NegationOptStats;
pub use pipeline::IterationStats;
pub use pipeline::OptimizationPipeline;
pub use pipeline::PipelineConfig;
pub use pipeline::PipelineStats;

Modules§

algebraic
Algebraic simplification optimization pass.
constant_folding
Constant folding optimization pass.
negation
Negation optimization pass.
pipeline
Multi-pass optimization pipeline for TLExpr expressions.