pub mod clp;
pub mod dependent;
pub mod diff;
mod display;
mod domain;
pub mod effect_system;
mod error;
mod expr;
pub mod expr_serialize;
pub mod fuzzing;
mod graph;
pub mod graph_validation;
pub mod linear;
mod metadata;
pub mod parametric_types;
pub mod pattern;
pub mod pretty_print;
pub mod refinement;
pub mod resolution;
pub mod sequent;
pub mod serialization;
mod signature;
mod term;
pub mod unification;
pub mod util;
#[cfg(test)]
mod tests;
pub use dependent::{DependentType, DependentTypeContext, DimConstraint, IndexExpr};
pub use diff::{diff_exprs, diff_graphs, ExprDiff, GraphDiff, NodeDiff};
pub use domain::{DomainInfo, DomainRegistry, DomainType};
pub use effect_system::{
infer_operation_effects, ComputationalEffect, Effect, EffectAnnotation, EffectScheme,
EffectSet, EffectSubstitution, EffectVar, MemoryEffect, ProbabilisticEffect,
};
pub use error::IrError;
pub use expr::ac_matching::{
ac_equivalent, flatten_ac, normalize_ac, ACOperator, ACPattern, Multiset,
};
pub use expr::advanced_analysis::{ComplexityMetrics, OperatorCounts, PatternAnalysis};
pub use expr::advanced_rewriting::{
AdvancedRewriteSystem, ConditionalRule, RewriteConfig, RewriteStats, RewriteStrategy,
RulePriority,
};
pub use expr::confluence::{
are_joinable, normalize, ConfluenceChecker, ConfluenceReport, CriticalPair,
};
pub use expr::defuzzification::{
bisector, centroid, defuzzify, largest_of_maximum, mean_of_maximum, smallest_of_maximum,
weighted_average, DefuzzificationMethod, FuzzySet, SingletonFuzzySet,
};
pub use expr::distributive_laws::{apply_distributive_laws, DistributiveStrategy};
pub use expr::ltl_ctl_utilities::{
apply_advanced_ltl_equivalences, classify_temporal_formula, compute_temporal_complexity,
decompose_safety_liveness, extract_state_predicates, extract_temporal_subformulas,
identify_temporal_pattern, is_temporal, is_temporal_nnf, TemporalClass, TemporalComplexity,
TemporalPattern,
};
pub use expr::modal_axioms::{
apply_axiom_k, apply_axiom_t, extract_modal_subformulas, is_modal_free, is_theorem_in_system,
modal_depth, normalize_s5, verify_axiom_4, verify_axiom_5, verify_axiom_b, verify_axiom_d,
verify_axiom_k, verify_axiom_t, ModalSystem,
};
pub use expr::modal_equivalences::apply_modal_equivalences;
pub use expr::normal_forms::{is_cnf, is_dnf, to_cnf, to_dnf, to_nnf};
pub use expr::optimization::{
algebraic_simplify, constant_fold, optimize_expr, propagate_constants,
};
pub use expr::optimization_pipeline::{
OptimizationLevel, OptimizationMetrics, OptimizationPass, OptimizationPipeline, PipelineConfig,
};
pub use expr::probabilistic_reasoning::{
compute_tight_bounds, extract_probabilistic_semantics, mln_probability,
propagate_probabilities, CredalSet, ProbabilityInterval,
};
pub use expr::rewriting::{Pattern, RewriteRule, RewriteSystem};
pub use expr::strategy_selector::{auto_optimize, ExpressionProfile, StrategySelector};
pub use expr::temporal_equivalences::apply_temporal_equivalences;
pub use expr::{
AggregateOp, FuzzyImplicationKind, FuzzyNegationKind, TCoNormKind, TLExpr, TNormKind,
};
pub use graph::advanced_algorithms::{
are_isomorphic, critical_path_analysis, find_all_paths, find_cycles, graph_diameter, is_dag,
strongly_connected_components, topological_sort, CriticalPath, Cycle, IsomorphismResult,
StronglyConnectedComponent,
};
pub use graph::constant_folding::{
analyze_constants, apply_constant_folding, fold_constants_aggressive,
identify_constant_subgraphs, ConstantInfo, ConstantPropagationResult, FoldingStats,
};
pub use graph::cost_model::{
auto_annotate_costs, estimate_graph_cost, estimate_operation_cost, CostSummary, GraphCostModel,
OperationCost,
};
pub use graph::export::{
export_to_onnx_text, export_to_onnx_text_with_options, export_to_torchscript_text,
export_to_torchscript_text_with_options, OnnxExportOptions, TorchScriptExportOptions,
};
pub use graph::fusion::{
fuse_all, fuse_einsum_operations, fuse_elementwise_operations, fuse_map_reduce, FusionStats,
};
pub use graph::layout::{
apply_layouts, find_layout_fusion_opportunities, optimize_layouts, LayoutOptimizationResult,
LayoutStrategy, StridePattern, TensorLayout,
};
pub use graph::memory::{
analyze_inplace_opportunities, analyze_memory, MemoryAnalysis, TensorMemory,
};
pub use graph::parallel::{
analyze_parallelization, partition_independent_subgraphs, ParallelGroup,
ParallelizationAnalysis,
};
pub use graph::pattern::{
GraphPattern, GraphRewriteRule, PatternMatch, PatternMatcher,
RewriteStats as PatternRewriteStats,
};
pub use graph::pgo::{
ExecutionProfile, NodeStats, OptimizationHint, ProfileGuidedOptimizer, TensorStats,
};
pub use graph::schedule::{ExecutionSchedule, GraphScheduler, SchedulingObjective};
pub use graph::tiling::{
apply_multilevel_tiling, apply_register_tiling, apply_tiling, recommend_tiling_strategy,
TileConfig, TilingResult, TilingStrategy,
};
pub use graph::{
are_graphs_equivalent, canonical_hash, canonicalize_graph, eliminate_common_subexpressions,
eliminate_dead_code, export_to_dot, export_to_dot_with_options, optimize_graph,
simplify_identity_operations, validate_graph, DotExportOptions, EinsumGraph, EinsumNode,
GraphValidationStats, OpType, OptimizationStats, ValidationError, ValidationErrorKind,
ValidationReport, ValidationWarning, ValidationWarningKind,
};
pub use linear::{
Capability, LinearContext, LinearResource, LinearType, LinearityChecker, Multiplicity, Usage,
};
pub use metadata::{Metadata, Provenance, SourceLocation, SourceSpan};
pub use parametric_types::{
compose_substitutions, generalize, instantiate, unify, Kind, ParametricType, TypeConstructor,
TypeSubstitution,
};
pub use pattern::MatchPattern;
pub use refinement::{LiquidTypeInference, Refinement, RefinementContext, RefinementType};
pub use resolution::{
Clause, Literal, ProofResult, ProverStats, ResolutionProver, ResolutionStep, ResolutionStrategy,
};
pub use pretty_print::{pretty, pretty_print, pretty_term, PrettyConfig, SymbolSet};
pub use sequent::{
CutElimination, InferenceRule, ProofSearchEngine, ProofSearchStats, ProofSearchStrategy,
ProofTree, Sequent,
};
pub use serialization::{VersionedExpr, VersionedGraph, FORMAT_VERSION};
pub use signature::{PredicateSignature, SignatureRegistry};
pub use term::{Term, TypeAnnotation};
pub use unification::{
anti_unify_terms, are_unifiable, lgg_terms, rename_vars, unify_term_list, unify_terms,
Substitution,
};
pub use util::{pretty_print_expr, pretty_print_graph, ExprStats, GraphStats};
pub use expr_serialize::{
batch_from_binary, batch_to_binary, binary_equal, expr_fingerprint, from_binary, from_sexpr,
graph_from_binary, graph_to_binary, to_binary, to_sexpr, ExprFormat, ExprSerializeError,
SerializationStats,
};
pub use graph_validation::{
compute_graph_stats as compute_einsum_graph_stats, sanitize_graph as sanitize_einsum_graph,
validate_einsum_graph, GraphSanitizationStats, IssueSeverity, ValidationIssue,
ValidationResult as EinsumValidationResult,
};