Skip to main content

Differentiate

Trait Differentiate 

Source
pub trait Differentiate<T = Time>
where Self: Tensor,
{ type Derivative: Tensor; }
Expand description

A tensor that can be differentiated with respect to a variable of unit T.

The derivative is named by the tensor rather than passed in alongside it, being the same tensor with its unit divided by the variable’s. A tuple computes each half’s derivative on its own, so the pair of units its halves carry never has to be taken apart.

The variable of integration need not be a time — an arclength or a load parameter is just as ordinary — so it is named rather than assumed, with time as the default for the common case.

Required Associated Types§

Source

type Derivative: Tensor

The derivative with respect to the variable of integration.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<E, T> Differentiate<T> for TensorVector<E>
where E: Differentiate<T> + Tensor, <E as Differentiate<T>>::Derivative: Tensor,

Source§

impl<E, T, const N: usize> Differentiate<T> for TensorList<E, N>
where E: Differentiate<T> + Tensor, <E as Differentiate<T>>::Derivative: Tensor,

Source§

impl<T1, T2, T> Differentiate<T> for TensorTuple<T1, T2>

Source§

impl<U, T> Differentiate<T> for Quantity<U>
where U: UnitDiv<T>,

Source§

impl<const D: usize, I, J, K, L, U, T> Differentiate<T> for TensorRank4<D, I, J, K, L, U>
where U: UnitDiv<T>,

Source§

type Derivative = TensorRank4<D, I, J, K, L, <U as UnitDiv<T>>::Output>

Source§

impl<const D: usize, I, J, U, T> Differentiate<T> for TensorRank2<D, I, J, U>
where U: UnitDiv<T>,

Source§

type Derivative = TensorRank2<D, I, J, <U as UnitDiv<T>>::Output>

Source§

impl<const D: usize, I, U, T> Differentiate<T> for TensorRank1<D, I, U>
where U: UnitDiv<T>,

Source§

type Derivative = TensorRank1<D, I, <U as UnitDiv<T>>::Output>