Expand description
Effect system for tracking computational effects in TensorLogic expressions.
This module provides an effect system that tracks various kinds of computational effects in logical expressions and tensor operations, enabling:
- Effect tracking: Know which operations have side effects
- Differentiability: Track which operations support gradient computation
- Probabilistic reasoning: Distinguish deterministic from stochastic operations
- Memory safety: Track memory access patterns
- Effect polymorphism: Functions parametric over effects
§Examples
use tensorlogic_ir::effect_system::{Effect, EffectSet, ComputationalEffect};
// Pure computation (no side effects)
let pure_effect = EffectSet::pure();
assert!(pure_effect.is_pure());
// Differentiable operation
let diff_effect = EffectSet::new()
.with(Effect::Computational(ComputationalEffect::Pure))
.with(Effect::Differentiable);
// Combine effects
let combined = pure_effect.union(&diff_effect);
assert!(combined.contains(&Effect::Differentiable));Structs§
- Effect
Annotation - Effect annotation for expressions
- Effect
Set - Set of effects for an expression or operation.
- Effect
Var - Effect variable for effect polymorphism
Enums§
- Computational
Effect - Computational purity effects.
- Effect
- Individual effect kinds.
- Effect
Scheme - Effect scheme for effect polymorphism (analogous to type schemes)
- Memory
Effect - Memory access effects.
- Probabilistic
Effect - Probabilistic effects.
Functions§
- infer_
operation_ effects - Infer effects for common operations
Type Aliases§
- Effect
Substitution - Substitution mapping effect variables to effect sets