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}