redstone_ml/ndarray/
fill.rs

1use crate::dtype::RawDataType;
2use crate::{NdArray, StridedMemory};
3use crate::ops::fill::Fill;
4
5
6impl<T: RawDataType> NdArray<'_, T> {
7    /// Fills the entire array with a specified `value`.
8    ///
9    /// # Example
10    ///
11    /// ```
12    /// # use redstone_ml::*;
13    ///
14    /// let mut arr = NdArray::new([1, 2, 4]);
15    /// arr.fill(10);
16    /// assert_eq!(arr, NdArray::new([10, 10, 10]));
17    /// ```
18    pub fn fill(&mut self, value: T) {
19        unsafe { <T as Fill>::fill(self.mut_ptr(), self.shape(), self.stride(), self.len, value) }
20    }
21}
22
23impl<T: RawDataType + From<bool>> NdArray<'_, T> {
24    /// Fills the entire array with a zero (or `false` if dtype is boolean).
25    ///
26    /// # Example
27    ///
28    /// ```
29    /// # use redstone_ml::*;
30    ///
31    /// let mut arr = NdArray::new([1, 2, 4]);
32    /// arr.zero();
33    /// assert_eq!(arr, NdArray::new([0, 0, 0]));
34    /// ```
35    pub fn zero(&mut self) {
36        self.fill(false.into());
37    }
38}