1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
use num_traits::{One, Zero};
use super::*;


impl<T: One + Zero> Complex<T> {
    pub fn i() -> Self {
        Self::new(T::zero(), T::one())
    }
}

impl<T: One + Zero> Quaternion<T> {
    pub fn i() -> Self {
        Self::new2(T::zero(), T::one(), T::zero(), T::zero())
    }
    pub fn j() -> Self {
        Self::new2(T::zero(), T::zero(), T::one(), T::zero())
    }
    pub fn k() -> Self {
        Self::new2(T::zero(), T::zero(), T::zero(), T::one())
    }
}