Table of Contents

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 existing catch (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)).