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
use crate::dtype::RawDataType;
use crate::{NdArray, StridedMemory};
use crate::ops::fill::Fill;
impl<T: RawDataType> NdArray<'_, T> {
/// Fills the entire array with a specified `value`.
///
/// # Example
///
/// ```
/// # use redstone_ml::*;
///
/// let mut arr = NdArray::new([1, 2, 4]);
/// arr.fill(10);
/// assert_eq!(arr, NdArray::new([10, 10, 10]));
/// ```
pub fn fill(&mut self, value: T) {
unsafe { <T as Fill>::fill(self.mut_ptr(), self.shape(), self.stride(), self.len, value) }
}
}
impl<T: RawDataType + From<bool>> NdArray<'_, T> {
/// Fills the entire array with a zero (or `false` if dtype is boolean).
///
/// # Example
///
/// ```
/// # use redstone_ml::*;
///
/// let mut arr = NdArray::new([1, 2, 4]);
/// arr.zero();
/// assert_eq!(arr, NdArray::new([0, 0, 0]));
/// ```
pub fn zero(&mut self) {
self.fill(false.into());
}
}