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

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

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

This trait will likely be made obsolete after the implementation of #32.

Associated Types

type HyperStateSize: DimName

Defines the state size of the estimated state

Loading content...

Required methods

fn dual_eom(
    &self,
    t: f64,
    state: &MatrixMN<Dual<f64>, Self::HyperStateSize, Self::HyperStateSize>
) -> MatrixMN<Dual<f64>, Self::HyperStateSize, Self::HyperStateSize> where
    DefaultAllocator: Allocator<Dual<f64>, Self::HyperStateSize> + Allocator<Dual<f64>, Self::HyperStateSize, Self::HyperStateSize> + Allocator<f64, Self::HyperStateSize> + Allocator<f64, Self::HyperStateSize, Self::HyperStateSize>, 

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

Loading content...

Provided methods

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

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 TwoBodyWithDualStm<'a>[src]

type HyperStateSize = U6

fn dual_eom(&self, _t: f64, state: &Matrix6<Dual<f64>>) -> Matrix6<Dual<f64>>[src]

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

fn compute(
    &self,
    t: f64,
    state: &VectorN<f64, Self::HyperStateSize>
) -> (VectorN<f64, Self::HyperStateSize>, MatrixMN<f64, Self::HyperStateSize, Self::HyperStateSize>) where
    DefaultAllocator: Allocator<Dual<f64>, Self::HyperStateSize> + Allocator<Dual<f64>, Self::HyperStateSize, Self::HyperStateSize> + Allocator<f64, Self::HyperStateSize> + Allocator<f64, Self::HyperStateSize, Self::HyperStateSize>, 
[src]

Loading content...