[][src]Trait nyx_space::od::AutoDiffDynamics

pub trait AutoDiffDynamics: Dynamics where
    Self: Sized
{ type HyperStateSize: DimName; type STMSize: DimName; fn dual_eom(
        &self,
        t: f64,
        state: &VectorN<Hyperdual<f64, Self::HyperStateSize>, Self::STMSize>
    ) -> (VectorN<f64, Self::STMSize>, MatrixMN<f64, Self::STMSize, Self::STMSize>)
    where
        DefaultAllocator: Allocator<f64, Self::HyperStateSize> + Allocator<f64, Self::STMSize> + Allocator<f64, Self::STMSize, Self::STMSize> + Allocator<Hyperdual<f64, Self::HyperStateSize>, Self::STMSize>,
        Owned<f64, Self::HyperStateSize>: Copy
; fn compute(
        &self,
        t: f64,
        state: &VectorN<f64, Self::STMSize>
    ) -> (VectorN<f64, Self::STMSize>, MatrixMN<f64, Self::STMSize, Self::STMSize>)
    where
        DefaultAllocator: Allocator<f64, Self::HyperStateSize> + Allocator<f64, Self::STMSize> + Allocator<f64, Self::STMSize, Self::STMSize> + Allocator<Hyperdual<f64, Self::HyperStateSize>, Self::STMSize>,
        Owned<f64, Self::HyperStateSize>: Copy
, { ... } }

A trait container to specify that given dynamics support linearization, and can be used for state transition matrix computation.

Associated Types

type HyperStateSize: DimName

Defines the state size of the estimated state

type STMSize: DimName

Loading content...

Required methods

fn dual_eom(
    &self,
    t: f64,
    state: &VectorN<Hyperdual<f64, Self::HyperStateSize>, Self::STMSize>
) -> (VectorN<f64, Self::STMSize>, MatrixMN<f64, Self::STMSize, Self::STMSize>) where
    DefaultAllocator: Allocator<f64, Self::HyperStateSize> + Allocator<f64, Self::STMSize> + Allocator<f64, Self::STMSize, Self::STMSize> + Allocator<Hyperdual<f64, Self::HyperStateSize>, Self::STMSize>,
    Owned<f64, Self::HyperStateSize>: Copy

Defines the equations of motion for Dual numbers for these dynamics.

Loading content...

Provided methods

fn compute(
    &self,
    t: f64,
    state: &VectorN<f64, Self::STMSize>
) -> (VectorN<f64, Self::STMSize>, MatrixMN<f64, Self::STMSize, Self::STMSize>) where
    DefaultAllocator: Allocator<f64, Self::HyperStateSize> + Allocator<f64, Self::STMSize> + Allocator<f64, Self::STMSize, Self::STMSize> + Allocator<Hyperdual<f64, Self::HyperStateSize>, Self::STMSize>,
    Owned<f64, Self::HyperStateSize>: Copy

Computes both the state and the gradient of the dynamics. These may be accessed by the related getters.

Loading content...

Implementors

impl<'a> AutoDiffDynamics for CelestialDynamicsStm<'a>[src]

type HyperStateSize = U7

type STMSize = U6

Loading content...