zenu_matrix/constructor/
zeros.rs1use 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}