#![allow(unused_macros)]
pub use vector::Vector;
pub use matrix::Matrix;
mod vector;
mod matrix;
mod vectors;
mod macroses;
#[cfg(test)]
mod tests;
pub trait Init {
type Output;
type Size;
fn init(value: f64, size: Self::Size) -> Self::Output;
fn init_func<F>(func: F, size: Self::Size) -> Self::Output
where F: std::ops::Fn(Self::Size) -> f64;
fn zeros(size: Self::Size) -> Self::Output {
Self::init(0.0, size)
}
fn ones(size: Self::Size) ->Self::Output {
Self::init(1.0, size)
}
}
pub trait Dot<Rhs = Self> {
type Output;
fn dot(&self, rhs: &Rhs) -> Self::Output;
}