Namespace Utils.Mathematics.Expressions
Classes
- ExpressionComparer
Provides a custom equality comparer for Expression objects. The comparison involves simplifying each expression via an ExpressionSimplifier before checking for structural and semantic equivalence.
- ExpressionDerivation
Provides the historical non-generic entry-point for double-based derivation.
- ExpressionDerivation<T>
Provides single-variable symbolic differentiation for LINQ expression trees.
- ExpressionExtensions
Provides extension methods for simplifying LINQ expression trees, as well as custom exceptions for extension-related errors.
- ExpressionExtensionsException
Represents a custom exception related to expression extension operations.
- ExpressionIntegration
Provides the historical non-generic entry-point for double-based integration.
- ExpressionIntegration<T>
Provides integration rules for mathematical expression trees.
- ExpressionSimplifier
Provides methods to simplify or rewrite expression trees by applying various transformations, typically related to arithmetic identities or constant folding. This partial class works alongside other parts of ExpressionSimplifier to compose a complete transformation pipeline.
- MathExpressionExtensions
Provides helper methods to derive lambda expressions using ExpressionDerivation<T>.
- SymbolicParameterException
Thrown when the symbolic transformation target parameter cannot be resolved from a LambdaExpression: the named parameter was not found, is present more than once (ambiguous), or the explicit parameter instance is not declared in the given lambda. This is a caller-error: InvalidInput classification in SymbolicTransformationResult.
- SymbolicTransformationResult
A structured, non-throwing result of a symbolic transformation (differentiation or integration). Lets callers distinguish "not differentiable/integrable", "approximately transformed", "invalid input", and "internal construction failure" without relying on exception types or null conventions (see TODO-2026-07-11-pass3.md item #42).
- UnsupportedScalarOperationException
Thrown when a required scalar math operation (e.g.
Log,Sin,Sqrt) is not available for the scalar type used to build a symbolic derivative/integral. This is a specialized NotSupportedException so callers can categorize "operation unavailable for scalar type T" (see UnsupportedScalarOperation) distinctly from other unsupported-expression failures, while existingcatch (NotSupportedException)sites keep working.
Enums
- SymbolicTransformationStatus
Categorizes the outcome of a non-throwing symbolic transformation (see TryDerivate<T>(LambdaExpression, string, bool) and TryIntegrate<T>(LambdaExpression, string)).