pub type Dual2<T, F> = Dual2Vec<T, F, 1>;Implementations§
source§impl<T, F> Dual2<T, F>
impl<T, F> Dual2<T, F>
sourcepub fn new_scalar(re: T, v1: T, v2: T) -> Self
pub fn new_scalar(re: T, v1: T, v2: T) -> Self
Create a new scalar second order dual number from its fields.
source§impl<T: One, F> Dual2<T, F>
impl<T: One, F> Dual2<T, F>
sourcepub fn derive(self) -> Self
pub fn derive(self) -> Self
Derive a scalar second order dual number
let x = Dual2::from_re(5.0).derive().powi(2);
assert_eq!(x.re, 25.0); // x²
assert_eq!(x.v1[0], 10.0); // 2x
assert_eq!(x.v2[(0,0)], 2.0); // 2The argument can also be a dual number
let x = Dual2::from_re(Dual64::from_re(5.0).derive())
.derive()
.powi(2);
assert_eq!(x.re.re(), 25.0); // x²
assert_eq!(x.re.eps[0], 10.0); // 2x
assert_eq!(x.v1[0].re, 10.0); // 2x
assert_eq!(x.v1[0].eps[0], 2.0); // 2
assert_eq!(x.v2[(0,0)].re, 2.0); // 2