use alloc::vec::Vec;
#[derive(Debug, Clone, PartialEq)]
pub struct Matrix {
rows: usize,
cols: usize,
data: Vec<f64>,
}
impl Matrix {
pub fn zeros(rows: usize, cols: usize) -> Self {
Self {
rows,
cols,
data: alloc::vec![0.0; rows * cols],
}
}
pub fn rows(&self) -> usize {
self.rows
}
pub fn cols(&self) -> usize {
self.cols
}
pub fn data(&self) -> &[f64] {
&self.data
}
pub fn get(&self, row: usize, col: usize) -> f64 {
self.data[row * self.cols + col]
}
pub fn set(&mut self, row: usize, col: usize, value: f64) {
self.data[row * self.cols + col] = value;
}
}