mod mul_impl;
mod add_impl;
use crate::matrix::Matrix;
#[allow(dead_code)]
#[derive(Debug, PartialEq, Eq, Clone, Default)]
pub struct Vector<T>
{
list : Vec<T>
}
#[allow(dead_code)]
impl<T> Vector<T>
{
pub fn into_col_matrix(self) -> Matrix<T> {
let mut matrix = vec![];
for param in self.list {
matrix.push(vec![param])
}
Matrix::from(matrix)
}
pub fn into_row_matrix(self) -> Matrix<T> {
Matrix::from(vec![self.list])
}
pub fn lambda<F>(&self, funct: F) -> Vector<T>
where
F: Fn(&T) -> T
{
let mut params = vec![];
for item in self.list() {
params.push(funct(item))
}
Vector::from(params)
}
pub fn len(&self) -> usize {
self.list.len()
}
pub fn list(&self) -> &Vec<T> {
&self.list
}
}
impl<T> From<Vec<T>> for Vector<T>
{
fn from(vec: Vec<T>) -> Self {
Vector {
list : vec
}
}
}