1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
use array::Array; impl<T> Array<T> where T: Copy + Into<f64> { /// Applies rounding on elements from given array and creates new array /// /// # Examples /// /// ``` /// use numas::array::Array; /// /// let array = Array::new(vec![1.4, 1.5, 2.1, 2.6], vec![4]); /// let rounded = array.round(); /// let data = rounded.collect(); /// /// assert_eq!(data, vec![1.0, 2.0, 2.0, 3.0]); /// ``` #[inline] pub fn round(&self) -> Array<f64> { return super::apply(&self, |value: &T| f64::round(value.clone().into())); } /// Applies round ceil on elements from given array and creates new array /// /// # Examples /// /// ``` /// use numas::array::Array; /// /// let array = Array::new(vec![1.4, -1.5, 2.1, 2.6], vec![4]); /// let rounded = array.ceil(); /// let data = rounded.collect(); /// /// assert_eq!(data, vec![2.0, -1.0, 3.0, 3.0]); /// ``` #[inline] pub fn ceil(&self) -> Array<f64> { return super::apply(&self, |value: &T| f64::ceil(value.clone().into())); } /// Applies round floor on elements from given array and creates new array /// /// # Examples /// /// ``` /// use numas::array::Array; /// /// let array = Array::new(vec![1.4, -1.5, 2.1, 2.6], vec![4]); /// let rounded = array.floor(); /// let data = rounded.collect(); /// /// assert_eq!(data, vec![1.0, -2.0, 2.0, 2.0]); /// ``` #[inline] pub fn floor(&self) -> Array<f64> { return super::apply(&self, |value: &T| f64::floor(value.clone().into())); } /// Applies truncating on elements from given array and creates new array /// /// # Examples /// /// ``` /// use numas::array::Array; /// /// let array = Array::new(vec![1.4, -1.5, 2.1, 2.6], vec![4]); /// let rounded = array.round(); /// let data = rounded.collect(); /// /// assert_eq!(data, vec![1.0, -2.0, 2.0, 3.0]); /// ``` #[inline] pub fn trunc(&self) -> Array<f64> { return super::apply(&self, |value: &T| f64::trunc(value.clone().into())); } }