zenu_matrix/constructor/
zeros.rs

1use crate::{
2    device::DeviceBase,
3    dim::{default_stride, DimTrait},
4    matrix::{Matrix, Owned, Ptr, Repr},
5    num::Num,
6};
7
8impl<T, S, D> Matrix<Owned<T>, S, D>
9where
10    T: Num,
11    S: DimTrait,
12    D: DeviceBase,
13{
14    pub fn zeros<I: Into<S>>(dim: I) -> Self {
15        let dim = dim.into();
16        let num_elm = dim.num_elm();
17        let ptr = D::zeros(num_elm);
18        let ptr = Ptr::new(ptr, num_elm, 0);
19        Matrix::new(ptr, dim, default_stride(dim))
20    }
21
22    pub fn zeros_like<R: Repr<Item = T>>(m: &Matrix<R, S, D>) -> Self {
23        Self::zeros(m.shape())
24    }
25}