Skip to main content

FormLift

Trait FormLift 

Source
pub trait FormLift: Form {
    // Required method
    fn jet_flat_array<π’ž: Cat, S: Field, const N: usize>(
        value: &<Self as Tensor>::Array<Jet<π’ž, S, N>>,
    ) -> <Dual<Self> as Tensor>::Array<Jet<π’ž, S, N>>
       where Jet<π’ž, S, N>: Field;

    // Provided method
    fn jet_flat<π’ž: Cat, S: Field, const N: usize>(
        value: &JetVector<π’ž, Self, N, S>,
    ) -> Dual<JetVector<π’ž, Self, N, S>>
       where Jet<π’ž, S, N>: Field,
             JetVector<π’ž, Self, N, S>: Tensor<F = Jet<π’ž, S, N>> { ... }
}
Expand description

Extends a lowering map through arbitrary jet scalar presentations.

Implementors provide the array-level operation, which avoids assuming that distinct tensor wrappers share a nominal array type. FormLift::jet_flat supplies the public tensor-valued wrapper. For a semilinear form the implementation must preserve the form’s conjugation convention coefficient by coefficient.

Required MethodsΒ§

Source

fn jet_flat_array<π’ž: Cat, S: Field, const N: usize>( value: &<Self as Tensor>::Array<Jet<π’ž, S, N>>, ) -> <Dual<Self> as Tensor>::Array<Jet<π’ž, S, N>>
where Jet<π’ž, S, N>: Field,

Applies the lifted lowering map to raw coordinate arrays.

Provided MethodsΒ§

Source

fn jet_flat<π’ž: Cat, S: Field, const N: usize>( value: &JetVector<π’ž, Self, N, S>, ) -> Dual<JetVector<π’ž, Self, N, S>>
where Jet<π’ž, S, N>: Field, JetVector<π’ž, Self, N, S>: Tensor<F = Jet<π’ž, S, N>>,

Applies the lifted lowering map to a JetVector.

Dyn CompatibilityΒ§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

ImplementorsΒ§

SourceΒ§

impl<R: Field, const N: usize, const M: usize> FormLift for Coords<R, N, M>

SourceΒ§

impl<V> FormLift for Dual<V>

SourceΒ§

impl<V> FormLift for Sinister<V>
where V: FormLift<Action = BothSided>,

SourceΒ§

impl<π’ž: Cat, V, const N: usize, S> FormLift for JetVector<π’ž, V, N, S>
where V: FormLift, S: Field, Jet<π’ž, S, N>: Field, Self: Form<F = Jet<π’ž, S, N>>,