[−][src]Trait nyx_space::od::AutoDiffDynamics
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
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>,
&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.
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>,
&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.
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]
&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>,