[−][src]Struct hyperdual::Hyperdual
Dual Number structure
Although Dual
does implement PartialEq
and PartialOrd
,
it only compares the real part.
Additionally, min
and max
only compare the real parts, and keep the dual parts.
Lastly, the Rem
remainder operator is not correctly or fully defined for Dual
, and will panic.
Implementations
impl<T: Copy + Scalar, N: Dim + DimName> Hyperdual<T, N> where
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
[src]
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
pub fn from_slice(v: &[T]) -> Hyperdual<T, N>
[src]
Create a new dual number from its real and dual parts.
pub fn from_real(real: T) -> Hyperdual<T, N> where
T: Zero,
[src]
T: Zero,
Create a new dual number from a real number.
The dual part is set to zero.
pub fn real(&self) -> T
[src]
Returns the real part
pub fn real_ref(&self) -> &T
[src]
Returns a reference to the real part
pub fn real_mut(&mut self) -> &mut T
[src]
Returns a mutable reference to the real part
pub fn map_dual<F>(&self, r: T, f: F) -> Hyperdual<T, N> where
F: Fn(&T) -> T,
[src]
F: Fn(&T) -> T,
pub fn from_fn<F>(mut f: F) -> Hyperdual<T, N> where
F: FnMut(usize) -> T,
[src]
F: FnMut(usize) -> T,
Create a new dual number from a function
impl<T: Copy + Scalar + Neg<Output = T>, N: Dim + DimName> Hyperdual<T, N> where
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
[src]
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
impl<T: Copy + Scalar> Hyperdual<T, U2>
[src]
pub fn new(real: T, dual: T) -> Dual<T>
[src]
pub fn dual(&self) -> T
[src]
pub fn dual_ref(&self) -> &T
[src]
Returns a reference to the dual part
pub fn dual_mut(&mut self) -> &mut T
[src]
Returns a mutable reference to the dual part
Trait Implementations
impl<T: Copy + Scalar + Num, N: Dim + DimName> Add<Hyperdual<T, N>> for Hyperdual<T, N> where
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
[src]
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
type Output = Self
The resulting type after applying the +
operator.
pub fn add(self, rhs: Self) -> Self
[src]
impl<T: Copy + Scalar + Num, N: Dim + DimName> Add<T> for Hyperdual<T, N> where
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
[src]
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
type Output = Hyperdual<T, N>
The resulting type after applying the +
operator.
pub fn add(self, rhs: T) -> Hyperdual<T, N>
[src]
impl<T: Copy + Scalar + Num, N: Dim + DimName> AddAssign<Hyperdual<T, N>> for Hyperdual<T, N> where
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
[src]
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
pub fn add_assign(&mut self, rhs: Self)
[src]
impl<T: Copy + Scalar + Num, N: Dim + DimName> AddAssign<T> for Hyperdual<T, N> where
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
[src]
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
pub fn add_assign(&mut self, rhs: T)
[src]
impl<T: Copy + Scalar, N: Dim + DimName> AsMut<Matrix<T, N, U1, <DefaultAllocator as Allocator<T, N, U1>>::Buffer>> for Hyperdual<T, N> where
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
[src]
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
impl<T: Copy + Scalar, N: Dim + DimName> AsRef<Matrix<T, N, U1, <DefaultAllocator as Allocator<T, N, U1>>::Buffer>> for Hyperdual<T, N> where
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
[src]
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
impl<T: Clone + Copy + Scalar, N: Clone + Dim + DimName> Clone for Hyperdual<T, N> where
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
[src]
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
impl<T: Copy + Scalar, N: Copy + Dim + DimName> Copy for Hyperdual<T, N> where
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
[src]
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
impl<T: Copy + Scalar, N: Dim + DimName> Debug for Hyperdual<T, N> where
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
[src]
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
impl<T: Copy + Scalar + Num + Zero, N: Dim + DimName> Default for Hyperdual<T, N> where
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
[src]
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
impl<T: Copy + Scalar, N: Dim + DimName> Deref for Hyperdual<T, N> where
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
[src]
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
type Target = VectorN<T, N>
The resulting type after dereferencing.
pub fn deref(&self) -> &VectorN<T, N>
[src]
impl<T: Copy + Scalar, N: Dim + DimName> DerefMut for Hyperdual<T, N> where
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
[src]
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
impl<T: Copy + Scalar + Display, N: Dim + DimName> Display for Hyperdual<T, N> where
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
[src]
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
impl<T: Copy + Scalar + Num, N: Dim + DimName> Div<Hyperdual<T, N>> for Hyperdual<T, N> where
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
[src]
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
type Output = Self
The resulting type after applying the /
operator.
pub fn div(self, rhs: Self) -> Self
[src]
impl<T: Copy + Scalar + Num, N: Dim + DimName> Div<T> for Hyperdual<T, N> where
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
[src]
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
type Output = Hyperdual<T, N>
The resulting type after applying the /
operator.
pub fn div(self, rhs: T) -> Hyperdual<T, N>
[src]
impl<T: Copy + Scalar + Num, N: Dim + DimName> DivAssign<Hyperdual<T, N>> for Hyperdual<T, N> where
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
[src]
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
pub fn div_assign(&mut self, rhs: Self)
[src]
impl<T: Copy + Scalar + Num, N: Dim + DimName> DivAssign<T> for Hyperdual<T, N> where
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
[src]
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
pub fn div_assign(&mut self, rhs: T)
[src]
impl<T: Copy + Scalar, N: Dim + DimName> Float for Hyperdual<T, N> where
T: Float + Signed + FloatConst,
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
[src]
T: Float + Signed + FloatConst,
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
pub fn nan() -> Self
[src]
pub fn infinity() -> Self
[src]
pub fn neg_infinity() -> Self
[src]
pub fn neg_zero() -> Self
[src]
pub fn min_positive_value() -> Self
[src]
pub fn epsilon() -> Self
[src]
pub fn min_value() -> Self
[src]
pub fn max_value() -> Self
[src]
pub fn is_nan(self) -> bool
[src]
pub fn is_infinite(self) -> bool
[src]
pub fn is_finite(self) -> bool
[src]
pub fn is_normal(self) -> bool
[src]
pub fn is_sign_positive(self) -> bool
[src]
pub fn is_sign_negative(self) -> bool
[src]
pub fn classify(self) -> FpCategory
[src]
pub fn floor(self) -> Self
[src]
pub fn ceil(self) -> Self
[src]
pub fn round(self) -> Self
[src]
pub fn trunc(self) -> Self
[src]
pub fn fract(self) -> Self
[src]
pub fn signum(self) -> Self
[src]
pub fn abs(self) -> Self
[src]
pub fn max(self, other: Self) -> Self
[src]
pub fn min(self, other: Self) -> Self
[src]
pub fn abs_sub(self, rhs: Self) -> Self
[src]
pub fn mul_add(self, a: Self, b: Self) -> Self
[src]
pub fn recip(self) -> Self
[src]
pub fn powi(self, n: i32) -> Self
[src]
pub fn powf(self, n: Self) -> Self
[src]
pub fn exp(self) -> Self
[src]
pub fn exp2(self) -> Self
[src]
pub fn ln(self) -> Self
[src]
pub fn log(self, base: Self) -> Self
[src]
pub fn log2(self) -> Self
[src]
pub fn log10(self) -> Self
[src]
pub fn sqrt(self) -> Self
[src]
pub fn cbrt(self) -> Self
[src]
pub fn hypot(self, other: Self) -> Self
[src]
pub fn sin(self) -> Self
[src]
pub fn cos(self) -> Self
[src]
pub fn tan(self) -> Self
[src]
pub fn asin(self) -> Self
[src]
pub fn acos(self) -> Self
[src]
pub fn atan(self) -> Self
[src]
pub fn atan2(self, other: Self) -> Self
[src]
pub fn sin_cos(self) -> (Self, Self)
[src]
pub fn exp_m1(self) -> Self
[src]
pub fn ln_1p(self) -> Self
[src]
pub fn sinh(self) -> Self
[src]
pub fn cosh(self) -> Self
[src]
pub fn tanh(self) -> Self
[src]
pub fn asinh(self) -> Self
[src]
pub fn acosh(self) -> Self
[src]
pub fn atanh(self) -> Self
[src]
pub fn integer_decode(self) -> (u64, i16, i8)
[src]
pub fn to_degrees(self) -> Self
[src]
pub fn to_radians(self) -> Self
[src]
impl<T: Copy + Scalar + FloatConst + Zero, N: Dim + DimName> FloatConst for Hyperdual<T, N> where
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
[src]
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
pub fn E() -> Hyperdual<T, N>
[src]
pub fn FRAC_1_PI() -> Hyperdual<T, N>
[src]
pub fn FRAC_1_SQRT_2() -> Hyperdual<T, N>
[src]
pub fn FRAC_2_PI() -> Hyperdual<T, N>
[src]
pub fn FRAC_2_SQRT_PI() -> Hyperdual<T, N>
[src]
pub fn FRAC_PI_2() -> Hyperdual<T, N>
[src]
pub fn FRAC_PI_3() -> Hyperdual<T, N>
[src]
pub fn FRAC_PI_4() -> Hyperdual<T, N>
[src]
pub fn FRAC_PI_6() -> Hyperdual<T, N>
[src]
pub fn FRAC_PI_8() -> Hyperdual<T, N>
[src]
pub fn LN_10() -> Hyperdual<T, N>
[src]
pub fn LN_2() -> Hyperdual<T, N>
[src]
pub fn LOG10_E() -> Hyperdual<T, N>
[src]
pub fn LOG2_E() -> Hyperdual<T, N>
[src]
pub fn PI() -> Hyperdual<T, N>
[src]
pub fn SQRT_2() -> Hyperdual<T, N>
[src]
pub fn TAU() -> Self where
Self: Add<Self, Output = Self>,
[src]
Self: Add<Self, Output = Self>,
pub fn LOG10_2() -> Self where
Self: Div<Self, Output = Self>,
[src]
Self: Div<Self, Output = Self>,
pub fn LOG2_10() -> Self where
Self: Div<Self, Output = Self>,
[src]
Self: Div<Self, Output = Self>,
impl<T: Copy + Scalar + Zero, N: Dim + DimName> From<T> for Hyperdual<T, N> where
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
[src]
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
impl<T: Copy + Scalar + FromPrimitive, N: Dim + DimName> FromPrimitive for Hyperdual<T, N> where
T: Zero,
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
[src]
T: Zero,
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
pub fn from_isize(n: isize) -> Option<Hyperdual<T, N>>
[src]
pub fn from_i8(n: i8) -> Option<Hyperdual<T, N>>
[src]
pub fn from_i16(n: i16) -> Option<Hyperdual<T, N>>
[src]
pub fn from_i32(n: i32) -> Option<Hyperdual<T, N>>
[src]
pub fn from_i64(n: i64) -> Option<Hyperdual<T, N>>
[src]
pub fn from_usize(n: usize) -> Option<Hyperdual<T, N>>
[src]
pub fn from_u8(n: u8) -> Option<Hyperdual<T, N>>
[src]
pub fn from_u16(n: u16) -> Option<Hyperdual<T, N>>
[src]
pub fn from_u32(n: u32) -> Option<Hyperdual<T, N>>
[src]
pub fn from_u64(n: u64) -> Option<Hyperdual<T, N>>
[src]
pub fn from_f32(n: f32) -> Option<Hyperdual<T, N>>
[src]
pub fn from_f64(n: f64) -> Option<Hyperdual<T, N>>
[src]
pub fn from_i128(n: i128) -> Option<Self>
[src]
pub fn from_u128(n: u128) -> Option<Self>
[src]
impl<T: Copy + Scalar, N: Dim + DimName> Inv for Hyperdual<T, N> where
Self: One + Div<Output = Self>,
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
[src]
Self: One + Div<Output = Self>,
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
impl<T: Copy + Scalar + Num, N: Dim + DimName> Mul<Hyperdual<T, N>> for Hyperdual<T, N> where
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
[src]
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
type Output = Self
The resulting type after applying the *
operator.
pub fn mul(self, rhs: Self) -> Self
[src]
impl<T: Copy + Scalar + Num, N: Dim + DimName> Mul<T> for Hyperdual<T, N> where
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
[src]
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
type Output = Hyperdual<T, N>
The resulting type after applying the *
operator.
pub fn mul(self, rhs: T) -> Hyperdual<T, N>
[src]
impl<T: Copy + Scalar + Num + Mul + Add, N: Dim + DimName> MulAdd<Hyperdual<T, N>, Hyperdual<T, N>> for Hyperdual<T, N> where
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
[src]
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
type Output = Hyperdual<T, N>
The resulting type after applying the fused multiply-add.
pub fn mul_add(self, a: Self, b: Self) -> Self
[src]
impl<T: Copy + Scalar + Num + Mul + Add, N: Dim + DimName> MulAdd<Hyperdual<T, N>, T> for Hyperdual<T, N> where
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
[src]
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
type Output = Hyperdual<T, N>
The resulting type after applying the fused multiply-add.
pub fn mul_add(self, a: Self, b: T) -> Self
[src]
impl<T: Copy + Scalar + Num + Mul + Add, N: Dim + DimName> MulAdd<T, Hyperdual<T, N>> for Hyperdual<T, N> where
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
[src]
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
type Output = Hyperdual<T, N>
The resulting type after applying the fused multiply-add.
pub fn mul_add(self, a: T, b: Self) -> Self
[src]
impl<T: Copy + Scalar + Num + Mul + Add, N: Dim + DimName> MulAdd<T, T> for Hyperdual<T, N> where
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
[src]
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
type Output = Hyperdual<T, N>
The resulting type after applying the fused multiply-add.
pub fn mul_add(self, a: T, b: T) -> Self
[src]
impl<T: Copy + Scalar + Num + Mul + Add, N: Dim + DimName> MulAddAssign<Hyperdual<T, N>, Hyperdual<T, N>> for Hyperdual<T, N> where
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
[src]
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
pub fn mul_add_assign(&mut self, a: Self, b: Self)
[src]
impl<T: Copy + Scalar + Num + Mul + Add, N: Dim + DimName> MulAddAssign<Hyperdual<T, N>, T> for Hyperdual<T, N> where
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
[src]
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
pub fn mul_add_assign(&mut self, a: Self, b: T)
[src]
impl<T: Copy + Scalar + Num + Mul + Add, N: Dim + DimName> MulAddAssign<T, Hyperdual<T, N>> for Hyperdual<T, N> where
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
[src]
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
pub fn mul_add_assign(&mut self, a: T, b: Self)
[src]
impl<T: Copy + Scalar + Num + Mul + Add, N: Dim + DimName> MulAddAssign<T, T> for Hyperdual<T, N> where
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
[src]
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
pub fn mul_add_assign(&mut self, a: T, b: T)
[src]
impl<T: Copy + Scalar + Num, N: Dim + DimName> MulAssign<Hyperdual<T, N>> for Hyperdual<T, N> where
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
[src]
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
pub fn mul_assign(&mut self, rhs: Self)
[src]
impl<T: Copy + Scalar + Num, N: Dim + DimName> MulAssign<T> for Hyperdual<T, N> where
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
[src]
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
pub fn mul_assign(&mut self, rhs: T)
[src]
impl<T: Copy + Scalar + Signed, N: Dim + DimName> Neg for Hyperdual<T, N> where
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
[src]
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
impl<T: Copy + Scalar + Num, N: Dim + DimName> Num for Hyperdual<T, N> where
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
[src]
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
type FromStrRadixErr = <T as Num>::FromStrRadixErr
pub fn from_str_radix(
str: &str,
radix: u32
) -> Result<Hyperdual<T, N>, Self::FromStrRadixErr>
[src]
str: &str,
radix: u32
) -> Result<Hyperdual<T, N>, Self::FromStrRadixErr>
impl<T: Copy + Scalar + Float, N: Dim + DimName> NumCast for Hyperdual<T, N> where
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
[src]
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
pub fn from<P: ToPrimitive>(n: P) -> Option<Hyperdual<T, N>>
[src]
impl<T: Copy + Scalar + Num + One, N: Dim + DimName> One for Hyperdual<T, N> where
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
[src]
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
pub fn one() -> Hyperdual<T, N>
[src]
pub fn is_one(&self) -> bool where
Self: PartialEq,
[src]
Self: PartialEq,
pub fn set_one(&mut self)
[src]
impl<T: Copy + Scalar + PartialEq, N: Dim + DimName> PartialEq<Hyperdual<T, N>> for Hyperdual<T, N> where
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
[src]
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
impl<T: Copy + Scalar + PartialEq, N: Dim + DimName> PartialEq<T> for Hyperdual<T, N> where
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
[src]
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
impl<T: Copy + Scalar + PartialOrd, N: Dim + DimName> PartialOrd<Hyperdual<T, N>> for Hyperdual<T, N> where
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
[src]
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
pub fn partial_cmp(&self, rhs: &Self) -> Option<Ordering>
[src]
pub fn lt(&self, rhs: &Self) -> bool
[src]
pub fn gt(&self, rhs: &Self) -> bool
[src]
#[must_use]pub fn le(&self, other: &Rhs) -> bool
1.0.0[src]
#[must_use]pub fn ge(&self, other: &Rhs) -> bool
1.0.0[src]
impl<T: Copy + Scalar + PartialOrd, N: Dim + DimName> PartialOrd<T> for Hyperdual<T, N> where
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
[src]
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
pub fn partial_cmp(&self, rhs: &T) -> Option<Ordering>
[src]
pub fn lt(&self, rhs: &T) -> bool
[src]
pub fn gt(&self, rhs: &T) -> bool
[src]
#[must_use]pub fn le(&self, other: &Rhs) -> bool
1.0.0[src]
#[must_use]pub fn ge(&self, other: &Rhs) -> bool
1.0.0[src]
impl<T: Copy + Scalar, P: Into<Hyperdual<T, N>>, N: Dim + DimName> Pow<P> for Hyperdual<T, N> where
Hyperdual<T, N>: Float,
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
[src]
Hyperdual<T, N>: Float,
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
impl<'a, T: Copy + Scalar + Num + One, N: Dim + DimName> Product<&'a Hyperdual<T, N>> for Hyperdual<T, N> where
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
[src]
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
impl<T: Copy + Scalar + Num + One, N: Dim + DimName> Product<Hyperdual<T, N>> for Hyperdual<T, N> where
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
[src]
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
impl<T: Copy + Scalar + Num, N: Dim + DimName> Rem<Hyperdual<T, N>> for Hyperdual<T, N> where
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
[src]
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
type Output = Self
The resulting type after applying the %
operator.
pub fn rem(self, _: Self) -> Self
[src]
UNIMPLEMENTED!!!
As far as I know, remainder is not a valid operation on dual numbers,
but is required for the Float
trait to be implemented.
impl<T: Copy + Scalar, N: Dim + DimName> Signed for Hyperdual<T, N> where
T: Signed + PartialOrd,
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
[src]
T: Signed + PartialOrd,
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
pub fn abs(&self) -> Self
[src]
pub fn abs_sub(&self, rhs: &Self) -> Self
[src]
pub fn signum(&self) -> Self
[src]
pub fn is_positive(&self) -> bool
[src]
pub fn is_negative(&self) -> bool
[src]
impl<T: Copy + Scalar + Num, N: Dim + DimName> Sub<Hyperdual<T, N>> for Hyperdual<T, N> where
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
[src]
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
type Output = Self
The resulting type after applying the -
operator.
pub fn sub(self, rhs: Self) -> Self
[src]
impl<T: Copy + Scalar + Num, N: Dim + DimName> Sub<T> for Hyperdual<T, N> where
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
[src]
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
type Output = Hyperdual<T, N>
The resulting type after applying the -
operator.
pub fn sub(self, rhs: T) -> Hyperdual<T, N>
[src]
impl<T: Copy + Scalar + Num, N: Dim + DimName> SubAssign<Hyperdual<T, N>> for Hyperdual<T, N> where
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
[src]
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
pub fn sub_assign(&mut self, rhs: Self)
[src]
impl<T: Copy + Scalar + Num, N: Dim + DimName> SubAssign<T> for Hyperdual<T, N> where
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
[src]
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
pub fn sub_assign(&mut self, rhs: T)
[src]
impl<'a, T: Copy + Scalar + Num + Zero, N: Dim + DimName> Sum<&'a Hyperdual<T, N>> for Hyperdual<T, N> where
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
[src]
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
impl<T: Copy + Scalar + Num + Zero, N: Dim + DimName> Sum<Hyperdual<T, N>> for Hyperdual<T, N> where
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
[src]
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
impl<T: Copy + Scalar + ToPrimitive, N: Dim + DimName> ToPrimitive for Hyperdual<T, N> where
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
[src]
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
pub fn to_isize(&self) -> Option<isize>
[src]
pub fn to_i8(&self) -> Option<i8>
[src]
pub fn to_i16(&self) -> Option<i16>
[src]
pub fn to_i32(&self) -> Option<i32>
[src]
pub fn to_i64(&self) -> Option<i64>
[src]
pub fn to_usize(&self) -> Option<usize>
[src]
pub fn to_u8(&self) -> Option<u8>
[src]
pub fn to_u16(&self) -> Option<u16>
[src]
pub fn to_u32(&self) -> Option<u32>
[src]
pub fn to_u64(&self) -> Option<u64>
[src]
pub fn to_f32(&self) -> Option<f32>
[src]
pub fn to_f64(&self) -> Option<f64>
[src]
pub fn to_i128(&self) -> Option<i128>
[src]
pub fn to_u128(&self) -> Option<u128>
[src]
impl<T: Copy + Scalar + Unsigned, N: Dim + DimName> Unsigned for Hyperdual<T, N> where
Self: Num,
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
[src]
Self: Num,
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
impl<T: Copy + Scalar + Num + Zero, N: Dim + DimName> Zero for Hyperdual<T, N> where
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
[src]
DefaultAllocator: Allocator<T, N>,
Owned<T, N>: Copy,
Auto Trait Implementations
impl<T, N> !RefUnwindSafe for Hyperdual<T, N>
[src]
impl<T, N> !Send for Hyperdual<T, N>
[src]
impl<T, N> !Sync for Hyperdual<T, N>
[src]
impl<T, N> !Unpin for Hyperdual<T, N>
[src]
impl<T, N> !UnwindSafe for Hyperdual<T, N>
[src]
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T, Right> ClosedAdd<Right> for T where
T: Add<Right, Output = T> + AddAssign<Right>,
T: Add<Right, Output = T> + AddAssign<Right>,
impl<T, Right> ClosedDiv<Right> for T where
T: Div<Right, Output = T> + DivAssign<Right>,
T: Div<Right, Output = T> + DivAssign<Right>,
impl<T, Right> ClosedMul<Right> for T where
T: Mul<Right, Output = T> + MulAssign<Right>,
T: Mul<Right, Output = T> + MulAssign<Right>,
impl<T> ClosedNeg for T where
T: Neg<Output = T>,
T: Neg<Output = T>,
impl<T, Right> ClosedSub<Right> for T where
T: Sub<Right, Output = T> + SubAssign<Right>,
T: Sub<Right, Output = T> + SubAssign<Right>,
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, Rhs, Output> NumOps<Rhs, Output> for T where
T: Sub<Rhs, Output = Output> + Mul<Rhs, Output = Output> + Div<Rhs, Output = Output> + Add<Rhs, Output = Output> + Rem<Rhs, Output = Output>,
[src]
T: Sub<Rhs, Output = Output> + Mul<Rhs, Output = Output> + Div<Rhs, Output = Output> + Add<Rhs, Output = Output> + Rem<Rhs, Output = Output>,
impl<T> Real for T where
T: Float,
[src]
T: Float,
pub fn min_value() -> T
[src]
pub fn min_positive_value() -> T
[src]
pub fn epsilon() -> T
[src]
pub fn max_value() -> T
[src]
pub fn floor(self) -> T
[src]
pub fn ceil(self) -> T
[src]
pub fn round(self) -> T
[src]
pub fn trunc(self) -> T
[src]
pub fn fract(self) -> T
[src]
pub fn abs(self) -> T
[src]
pub fn signum(self) -> T
[src]
pub fn is_sign_positive(self) -> bool
[src]
pub fn is_sign_negative(self) -> bool
[src]
pub fn mul_add(self, a: T, b: T) -> T
[src]
pub fn recip(self) -> T
[src]
pub fn powi(self, n: i32) -> T
[src]
pub fn powf(self, n: T) -> T
[src]
pub fn sqrt(self) -> T
[src]
pub fn exp(self) -> T
[src]
pub fn exp2(self) -> T
[src]
pub fn ln(self) -> T
[src]
pub fn log(self, base: T) -> T
[src]
pub fn log2(self) -> T
[src]
pub fn log10(self) -> T
[src]
pub fn to_degrees(self) -> T
[src]
pub fn to_radians(self) -> T
[src]
pub fn max(self, other: T) -> T
[src]
pub fn min(self, other: T) -> T
[src]
pub fn abs_sub(self, other: T) -> T
[src]
pub fn cbrt(self) -> T
[src]
pub fn hypot(self, other: T) -> T
[src]
pub fn sin(self) -> T
[src]
pub fn cos(self) -> T
[src]
pub fn tan(self) -> T
[src]
pub fn asin(self) -> T
[src]
pub fn acos(self) -> T
[src]
pub fn atan(self) -> T
[src]
pub fn atan2(self, other: T) -> T
[src]
pub fn sin_cos(self) -> (T, T)
[src]
pub fn exp_m1(self) -> T
[src]
pub fn ln_1p(self) -> T
[src]
pub fn sinh(self) -> T
[src]
pub fn cosh(self) -> T
[src]
pub fn tanh(self) -> T
[src]
pub fn asinh(self) -> T
[src]
pub fn acosh(self) -> T
[src]
pub fn atanh(self) -> T
[src]
impl<T> Same<T> for T
type Output = T
Should always be Self
impl<T> Scalar for T where
T: PartialEq<T> + Copy + Any + Debug,
[src]
T: PartialEq<T> + Copy + Any + Debug,
impl<SS, SP> SupersetOf<SS> for SP where
SS: SubsetOf<SP>,
SS: SubsetOf<SP>,
pub fn to_subset(&self) -> Option<SS>
pub fn is_in_subset(&self) -> bool
pub fn to_subset_unchecked(&self) -> SS
pub fn from_subset(element: &SS) -> SP
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
impl<T> ToString for T where
T: Display + ?Sized,
[src]
T: Display + ?Sized,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,