Struct num_dual::HyperDualVec [−][src]
pub struct HyperDualVec<T, F, const M: usize, const N: usize> { pub re: T, pub eps1: StaticVec<T, M>, pub eps2: StaticVec<T, N>, pub eps1eps2: StaticMat<T, M, N>, // some fields omitted }
Expand description
A hyper dual number for the calculation of second partial derivatives.
Fields
re: TReal part of the hyper dual number
eps1: StaticVec<T, M>Partial derivative part of the hyper dual number
eps2: StaticVec<T, N>Partial derivative part of the hyper dual number
eps1eps2: StaticMat<T, M, N>Second partial derivative part of the hyper dual number
Implementations
Create a new scalar hyper dual number from its fields.
Trait Implementations
impl<T: DualNum<F>, F: Float, const M: usize, const N: usize> Add<&'_ HyperDualVec<T, F, M, N>> for HyperDualVec<T, F, M, N>
impl<T: DualNum<F>, F: Float, const M: usize, const N: usize> Add<&'_ HyperDualVec<T, F, M, N>> for HyperDualVec<T, F, M, N>type Output = HyperDualVec<T, F, M, N>
type Output = HyperDualVec<T, F, M, N>The resulting type after applying the + operator.
Performs the + operation. Read more
impl<'a, 'b, T: DualNum<F>, F: Float, const M: usize, const N: usize> Add<&'a HyperDualVec<T, F, M, N>> for &'b HyperDualVec<T, F, M, N>
impl<'a, 'b, T: DualNum<F>, F: Float, const M: usize, const N: usize> Add<&'a HyperDualVec<T, F, M, N>> for &'b HyperDualVec<T, F, M, N>type Output = HyperDualVec<T, F, M, N>
type Output = HyperDualVec<T, F, M, N>The resulting type after applying the + operator.
Performs the + operation. Read more
impl<T: DualNum<F>, F: Float, const M: usize, const N: usize> Add<HyperDualVec<T, F, M, N>> for &HyperDualVec<T, F, M, N>
impl<T: DualNum<F>, F: Float, const M: usize, const N: usize> Add<HyperDualVec<T, F, M, N>> for &HyperDualVec<T, F, M, N>type Output = HyperDualVec<T, F, M, N>
type Output = HyperDualVec<T, F, M, N>The resulting type after applying the + operator.
Performs the + operation. Read more
impl<T: DualNum<F>, F: Float, const M: usize, const N: usize> Add<HyperDualVec<T, F, M, N>> for HyperDualVec<T, F, M, N>
impl<T: DualNum<F>, F: Float, const M: usize, const N: usize> Add<HyperDualVec<T, F, M, N>> for HyperDualVec<T, F, M, N>type Output = HyperDualVec<T, F, M, N>
type Output = HyperDualVec<T, F, M, N>The resulting type after applying the + operator.
Performs the + operation. Read more
Performs the += operation. Read more
impl<T: Copy + AddAssign, F: Float, const M: usize, const N: usize> AddAssign<HyperDualVec<T, F, M, N>> for HyperDualVec<T, F, M, N>
impl<T: Copy + AddAssign, F: Float, const M: usize, const N: usize> AddAssign<HyperDualVec<T, F, M, N>> for HyperDualVec<T, F, M, N>Performs the += operation. Read more
impl<T: DualNum<F>, F: Float, const M: usize, const N: usize> Div<&'_ HyperDualVec<T, F, M, N>> for HyperDualVec<T, F, M, N>
impl<T: DualNum<F>, F: Float, const M: usize, const N: usize> Div<&'_ HyperDualVec<T, F, M, N>> for HyperDualVec<T, F, M, N>type Output = HyperDualVec<T, F, M, N>
type Output = HyperDualVec<T, F, M, N>The resulting type after applying the / operator.
Performs the / operation. Read more
impl<'a, 'b, T: DualNum<F>, F: Float, const M: usize, const N: usize> Div<&'a HyperDualVec<T, F, M, N>> for &'b HyperDualVec<T, F, M, N>
impl<'a, 'b, T: DualNum<F>, F: Float, const M: usize, const N: usize> Div<&'a HyperDualVec<T, F, M, N>> for &'b HyperDualVec<T, F, M, N>type Output = HyperDualVec<T, F, M, N>
type Output = HyperDualVec<T, F, M, N>The resulting type after applying the / operator.
Performs the / operation. Read more
impl<T: DualNum<F>, F: DualNumFloat, const M: usize, const N: usize> Div<F> for HyperDualVec<T, F, M, N>
impl<T: DualNum<F>, F: DualNumFloat, const M: usize, const N: usize> Div<F> for HyperDualVec<T, F, M, N>impl<T: DualNum<F>, F: Float, const M: usize, const N: usize> Div<HyperDualVec<T, F, M, N>> for &HyperDualVec<T, F, M, N>
impl<T: DualNum<F>, F: Float, const M: usize, const N: usize> Div<HyperDualVec<T, F, M, N>> for &HyperDualVec<T, F, M, N>type Output = HyperDualVec<T, F, M, N>
type Output = HyperDualVec<T, F, M, N>The resulting type after applying the / operator.
Performs the / operation. Read more
impl<T: DualNum<F>, F: Float, const M: usize, const N: usize> Div<HyperDualVec<T, F, M, N>> for HyperDualVec<T, F, M, N>
impl<T: DualNum<F>, F: Float, const M: usize, const N: usize> Div<HyperDualVec<T, F, M, N>> for HyperDualVec<T, F, M, N>type Output = HyperDualVec<T, F, M, N>
type Output = HyperDualVec<T, F, M, N>The resulting type after applying the / operator.
Performs the / operation. Read more
impl<T: DualNum<F>, F: DualNumFloat, const M: usize, const N: usize> DivAssign<F> for HyperDualVec<T, F, M, N>
impl<T: DualNum<F>, F: DualNumFloat, const M: usize, const N: usize> DivAssign<F> for HyperDualVec<T, F, M, N>Performs the /= operation. Read more
impl<T: DualNum<F>, F: Float, const M: usize, const N: usize> DivAssign<HyperDualVec<T, F, M, N>> for HyperDualVec<T, F, M, N>
impl<T: DualNum<F>, F: Float, const M: usize, const N: usize> DivAssign<HyperDualVec<T, F, M, N>> for HyperDualVec<T, F, M, N>Performs the /= operation. Read more
impl<T: DualNum<F>, F: DualNumFloat, const M: usize, const N: usize> DualNum<F> for HyperDualVec<T, F, M, N>
impl<T: DualNum<F>, F: DualNumFloat, const M: usize, const N: usize> DualNum<F> for HyperDualVec<T, F, M, N>impl<T: DualNum<F>, F: Float + FloatConst, const M: usize, const N: usize> FloatConst for HyperDualVec<T, F, M, N>
impl<T: DualNum<F>, F: Float + FloatConst, const M: usize, const N: usize> FloatConst for HyperDualVec<T, F, M, N>Return 1.0 / sqrt(2.0).
Return 2.0 / sqrt(π).
impl<T: DualNum<F>, F: Float + FromPrimitive, const M: usize, const N: usize> FromPrimitive for HyperDualVec<T, F, M, N>
impl<T: DualNum<F>, F: Float + FromPrimitive, const M: usize, const N: usize> FromPrimitive for HyperDualVec<T, F, M, N>Converts an isize to return an optional value of this type. If the
value cannot be represented by this type, then None is returned. Read more
Converts an i8 to return an optional value of this type. If the
value cannot be represented by this type, then None is returned. Read more
Converts an i16 to return an optional value of this type. If the
value cannot be represented by this type, then None is returned. Read more
Converts an i32 to return an optional value of this type. If the
value cannot be represented by this type, then None is returned. Read more
Converts an i64 to return an optional value of this type. If the
value cannot be represented by this type, then None is returned. Read more
Converts an i128 to return an optional value of this type. If the
value cannot be represented by this type, then None is returned. Read more
Converts a usize to return an optional value of this type. If the
value cannot be represented by this type, then None is returned. Read more
Converts an u8 to return an optional value of this type. If the
value cannot be represented by this type, then None is returned. Read more
Converts an u16 to return an optional value of this type. If the
value cannot be represented by this type, then None is returned. Read more
Converts an u32 to return an optional value of this type. If the
value cannot be represented by this type, then None is returned. Read more
Converts an u64 to return an optional value of this type. If the
value cannot be represented by this type, then None is returned. Read more
Converts an u128 to return an optional value of this type. If the
value cannot be represented by this type, then None is returned. Read more
Converts a f32 to return an optional value of this type. If the
value cannot be represented by this type, then None is returned. Read more
impl<T: DualNum<F>, F: DualNumFloat, const M: usize, const N: usize> Inv for HyperDualVec<T, F, M, N>
impl<T: DualNum<F>, F: DualNumFloat, const M: usize, const N: usize> Inv for HyperDualVec<T, F, M, N>impl<T: DualNum<F>, F: Float, const M: usize, const N: usize> Mul<&'_ HyperDualVec<T, F, M, N>> for HyperDualVec<T, F, M, N>
impl<T: DualNum<F>, F: Float, const M: usize, const N: usize> Mul<&'_ HyperDualVec<T, F, M, N>> for HyperDualVec<T, F, M, N>type Output = HyperDualVec<T, F, M, N>
type Output = HyperDualVec<T, F, M, N>The resulting type after applying the * operator.
Performs the * operation. Read more
impl<'a, 'b, T: DualNum<F>, F: Float, const M: usize, const N: usize> Mul<&'a HyperDualVec<T, F, M, N>> for &'b HyperDualVec<T, F, M, N>
impl<'a, 'b, T: DualNum<F>, F: Float, const M: usize, const N: usize> Mul<&'a HyperDualVec<T, F, M, N>> for &'b HyperDualVec<T, F, M, N>type Output = HyperDualVec<T, F, M, N>
type Output = HyperDualVec<T, F, M, N>The resulting type after applying the * operator.
Performs the * operation. Read more
impl<T: DualNum<F>, F: DualNumFloat, const M: usize, const N: usize> Mul<F> for HyperDualVec<T, F, M, N>
impl<T: DualNum<F>, F: DualNumFloat, const M: usize, const N: usize> Mul<F> for HyperDualVec<T, F, M, N>impl<T: DualNum<F>, F: Float, const M: usize, const N: usize> Mul<HyperDualVec<T, F, M, N>> for &HyperDualVec<T, F, M, N>
impl<T: DualNum<F>, F: Float, const M: usize, const N: usize> Mul<HyperDualVec<T, F, M, N>> for &HyperDualVec<T, F, M, N>type Output = HyperDualVec<T, F, M, N>
type Output = HyperDualVec<T, F, M, N>The resulting type after applying the * operator.
Performs the * operation. Read more
impl<T: DualNum<F>, F: Float, const M: usize, const N: usize> Mul<HyperDualVec<T, F, M, N>> for HyperDualVec<T, F, M, N>
impl<T: DualNum<F>, F: Float, const M: usize, const N: usize> Mul<HyperDualVec<T, F, M, N>> for HyperDualVec<T, F, M, N>type Output = HyperDualVec<T, F, M, N>
type Output = HyperDualVec<T, F, M, N>The resulting type after applying the * operator.
Performs the * operation. Read more
impl<T: DualNum<F>, F: DualNumFloat, const M: usize, const N: usize> MulAssign<F> for HyperDualVec<T, F, M, N>
impl<T: DualNum<F>, F: DualNumFloat, const M: usize, const N: usize> MulAssign<F> for HyperDualVec<T, F, M, N>Performs the *= operation. Read more
impl<T: DualNum<F>, F: Float, const M: usize, const N: usize> MulAssign<HyperDualVec<T, F, M, N>> for HyperDualVec<T, F, M, N>
impl<T: DualNum<F>, F: Float, const M: usize, const N: usize> MulAssign<HyperDualVec<T, F, M, N>> for HyperDualVec<T, F, M, N>Performs the *= operation. Read more
type FromStrRadixErr = F::FromStrRadixErrConvert from a string and radix (typically 2..=36). Read more
impl<T: PartialEq, F: PartialEq, const M: usize, const N: usize> PartialEq<HyperDualVec<T, F, M, N>> for HyperDualVec<T, F, M, N>
impl<T: PartialEq, F: PartialEq, const M: usize, const N: usize> PartialEq<HyperDualVec<T, F, M, N>> for HyperDualVec<T, F, M, N>This method tests for self and other values to be equal, and is used
by ==. Read more
This method tests for !=.
impl<'a, T: DualNum<F>, F: Float, const M: usize, const N: usize> Product<&'a HyperDualVec<T, F, M, N>> for HyperDualVec<T, F, M, N>
impl<'a, T: DualNum<F>, F: Float, const M: usize, const N: usize> Product<&'a HyperDualVec<T, F, M, N>> for HyperDualVec<T, F, M, N>Method which takes an iterator and generates Self from the elements by
multiplying the items. Read more
impl<T: DualNum<F>, F: Float, const M: usize, const N: usize> Product<HyperDualVec<T, F, M, N>> for HyperDualVec<T, F, M, N>
impl<T: DualNum<F>, F: Float, const M: usize, const N: usize> Product<HyperDualVec<T, F, M, N>> for HyperDualVec<T, F, M, N>impl<T: DualNum<F>, F: Float, const M: usize, const N: usize> Rem<&'_ HyperDualVec<T, F, M, N>> for HyperDualVec<T, F, M, N>
impl<T: DualNum<F>, F: Float, const M: usize, const N: usize> Rem<&'_ HyperDualVec<T, F, M, N>> for HyperDualVec<T, F, M, N>type Output = HyperDualVec<T, F, M, N>
type Output = HyperDualVec<T, F, M, N>The resulting type after applying the % operator.
Performs the % operation. Read more
impl<'a, 'b, T, F, const M: usize, const N: usize> Rem<&'a HyperDualVec<T, F, M, N>> for &'b HyperDualVec<T, F, M, N>
impl<'a, 'b, T, F, const M: usize, const N: usize> Rem<&'a HyperDualVec<T, F, M, N>> for &'b HyperDualVec<T, F, M, N>type Output = HyperDualVec<T, F, M, N>
type Output = HyperDualVec<T, F, M, N>The resulting type after applying the % operator.
Performs the % operation. Read more
impl<T: DualNum<F>, F: Float, const M: usize, const N: usize> Rem<HyperDualVec<T, F, M, N>> for &HyperDualVec<T, F, M, N>
impl<T: DualNum<F>, F: Float, const M: usize, const N: usize> Rem<HyperDualVec<T, F, M, N>> for &HyperDualVec<T, F, M, N>type Output = HyperDualVec<T, F, M, N>
type Output = HyperDualVec<T, F, M, N>The resulting type after applying the % operator.
Performs the % operation. Read more
impl<T: DualNum<F>, F: Float, const M: usize, const N: usize> Rem<HyperDualVec<T, F, M, N>> for HyperDualVec<T, F, M, N>
impl<T: DualNum<F>, F: Float, const M: usize, const N: usize> Rem<HyperDualVec<T, F, M, N>> for HyperDualVec<T, F, M, N>type Output = HyperDualVec<T, F, M, N>
type Output = HyperDualVec<T, F, M, N>The resulting type after applying the % operator.
Performs the % operation. Read more
Performs the %= operation. Read more
impl<T, F: Float, const M: usize, const N: usize> RemAssign<HyperDualVec<T, F, M, N>> for HyperDualVec<T, F, M, N>
impl<T, F: Float, const M: usize, const N: usize> RemAssign<HyperDualVec<T, F, M, N>> for HyperDualVec<T, F, M, N>Performs the %= operation. Read more
impl<T: DualNum<F>, F: DualNumFloat, const M: usize, const N: usize> Signed for HyperDualVec<T, F, M, N>
impl<T: DualNum<F>, F: DualNumFloat, const M: usize, const N: usize> Signed for HyperDualVec<T, F, M, N>Returns true if the number is positive and false if the number is zero or negative.
Returns true if the number is negative and false if the number is zero or positive.
impl<T: DualNum<F>, F: Float, const M: usize, const N: usize> Sub<&'_ HyperDualVec<T, F, M, N>> for HyperDualVec<T, F, M, N>
impl<T: DualNum<F>, F: Float, const M: usize, const N: usize> Sub<&'_ HyperDualVec<T, F, M, N>> for HyperDualVec<T, F, M, N>type Output = HyperDualVec<T, F, M, N>
type Output = HyperDualVec<T, F, M, N>The resulting type after applying the - operator.
Performs the - operation. Read more
impl<'a, 'b, T: DualNum<F>, F: Float, const M: usize, const N: usize> Sub<&'a HyperDualVec<T, F, M, N>> for &'b HyperDualVec<T, F, M, N>
impl<'a, 'b, T: DualNum<F>, F: Float, const M: usize, const N: usize> Sub<&'a HyperDualVec<T, F, M, N>> for &'b HyperDualVec<T, F, M, N>type Output = HyperDualVec<T, F, M, N>
type Output = HyperDualVec<T, F, M, N>The resulting type after applying the - operator.
Performs the - operation. Read more
impl<T: DualNum<F>, F: Float, const M: usize, const N: usize> Sub<HyperDualVec<T, F, M, N>> for &HyperDualVec<T, F, M, N>
impl<T: DualNum<F>, F: Float, const M: usize, const N: usize> Sub<HyperDualVec<T, F, M, N>> for &HyperDualVec<T, F, M, N>type Output = HyperDualVec<T, F, M, N>
type Output = HyperDualVec<T, F, M, N>The resulting type after applying the - operator.
Performs the - operation. Read more
impl<T: DualNum<F>, F: Float, const M: usize, const N: usize> Sub<HyperDualVec<T, F, M, N>> for HyperDualVec<T, F, M, N>
impl<T: DualNum<F>, F: Float, const M: usize, const N: usize> Sub<HyperDualVec<T, F, M, N>> for HyperDualVec<T, F, M, N>type Output = HyperDualVec<T, F, M, N>
type Output = HyperDualVec<T, F, M, N>The resulting type after applying the - operator.
Performs the - operation. Read more
Performs the -= operation. Read more
impl<T: Copy + SubAssign, F: Float, const M: usize, const N: usize> SubAssign<HyperDualVec<T, F, M, N>> for HyperDualVec<T, F, M, N>
impl<T: Copy + SubAssign, F: Float, const M: usize, const N: usize> SubAssign<HyperDualVec<T, F, M, N>> for HyperDualVec<T, F, M, N>Performs the -= operation. Read more
impl<'a, T: DualNum<F>, F: Float, const M: usize, const N: usize> Sum<&'a HyperDualVec<T, F, M, N>> for HyperDualVec<T, F, M, N>
impl<'a, T: DualNum<F>, F: Float, const M: usize, const N: usize> Sum<&'a HyperDualVec<T, F, M, N>> for HyperDualVec<T, F, M, N>Method which takes an iterator and generates Self from the elements by
“summing up” the items. Read more
impl<T: DualNum<F>, F: Float, const M: usize, const N: usize> Sum<HyperDualVec<T, F, M, N>> for HyperDualVec<T, F, M, N>
impl<T: DualNum<F>, F: Float, const M: usize, const N: usize> Sum<HyperDualVec<T, F, M, N>> for HyperDualVec<T, F, M, N>Auto Trait Implementations
impl<T, F, const M: usize, const N: usize> RefUnwindSafe for HyperDualVec<T, F, M, N> where
F: RefUnwindSafe,
T: RefUnwindSafe, impl<T, F, const M: usize, const N: usize> Send for HyperDualVec<T, F, M, N> where
F: Send,
T: Send, impl<T, F, const M: usize, const N: usize> Sync for HyperDualVec<T, F, M, N> where
F: Sync,
T: Sync, impl<T, F, const M: usize, const N: usize> Unpin for HyperDualVec<T, F, M, N> where
F: Unpin,
T: Unpin, impl<T, F, const M: usize, const N: usize> UnwindSafe for HyperDualVec<T, F, M, N> where
F: UnwindSafe,
T: UnwindSafe, Blanket Implementations
Mutably borrows from an owned value. Read more
impl<T, Rhs> NumAssignOps<Rhs> for T where
T: AddAssign<Rhs> + SubAssign<Rhs> + MulAssign<Rhs> + DivAssign<Rhs> + RemAssign<Rhs>,