pub struct PolynomialProperties {
pub family: PolynomialFamily,
pub recurrence: ThreeTermRecurrence,
pub orthogonality: Option<OrthogonalityData>,
pub rodrigues_formula: Option<RodriguesFormula>,
pub generating_function: Option<GeneratingFunction>,
pub special_values: Vec<SpecialValue>,
pub evaluation_method: EvaluationMethod,
pub symbolic_expander: Option<SymbolicExpander>,
pub antiderivative_rule: AntiderivativeRule,
pub wolfram_name: Option<&'static str>,
}Expand description
Polynomial function properties (legendre, hermite, laguerre, etc.)
Comprehensive properties for orthogonal polynomials and polynomial families with focus on computational efficiency and mathematical correctness.
Note: Evaluation is handled by direct dispatch through
Expression::evaluate_function_dispatch() for performance.
This struct stores only mathematical properties, not evaluation logic.
Fields§
§family: PolynomialFamilyPolynomial family classification
recurrence: ThreeTermRecurrenceThree-term recurrence relation Examples: P_{n+1} = ((2n+1)x P_n - n P_{n-1})/(n+1)
orthogonality: Option<OrthogonalityData>Orthogonality properties (if applicable)
rodrigues_formula: Option<RodriguesFormula>Rodrigues’ formula (if available) Examples: P_n(x) = (1/2^n n!) d^n/dx^n (x²-1)^n
generating_function: Option<GeneratingFunction>Generating function Examples: 1/√(1-2xt+t²) = Σ P_n(x) t^n
special_values: Vec<SpecialValue>Special values and boundary conditions
evaluation_method: EvaluationMethodComputational method for evaluation
symbolic_expander: Option<SymbolicExpander>Symbolic expansion method for intelligence-driven computation
Converts polynomial from recurrence-based representation to explicit symbolic expression. This enables algebraic manipulation and simplification of polynomial expressions in the Expression system.
antiderivative_rule: AntiderivativeRuleAntiderivative rule (for polynomial integration) All polynomials are integrable, so this is always Some(…)
wolfram_name: Option<&'static str>Wolfram Language function name Used for Wolfram formatting without hardcoded matches Example: “legendre_p” → “LegendreP”, “hermite_h” → “HermiteH”
Trait Implementations§
Source§impl Clone for PolynomialProperties
impl Clone for PolynomialProperties
Source§fn clone(&self) -> PolynomialProperties
fn clone(&self) -> PolynomialProperties
1.0.0§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for PolynomialProperties
impl !RefUnwindSafe for PolynomialProperties
impl Send for PolynomialProperties
impl Sync for PolynomialProperties
impl Unpin for PolynomialProperties
impl !UnwindSafe for PolynomialProperties
Blanket Implementations§
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§unsafe fn clone_to_uninit(&self, dest: *mut u8)
unsafe fn clone_to_uninit(&self, dest: *mut u8)
clone_to_uninit)Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more