|
|
|
|
|
by dannymi
1414 days ago
|
|
I've done a toy matrix library with operator overloading in Rust a while ago. Could you be confusing it with Java? #[derive(Debug, PartialEq, Eq)]
pub struct ColumnVector<F, const DIM: usize>([F; DIM]);
impl<F: Field, const DIM: usize> Add<Self> for ColumnVector<F, DIM> {
type Output = ColumnVector<F, DIM>;
fn add(self, rhs: Self) -> Self::Output {
Self::new(self.0.zip(rhs.0).map(|(a,b)| a + b))
}
}
Usage: let v = ColumnVector::new([1.0,
3.0,
4.0]);
let w = ColumnVector::new([1.0,
0.0,
4.0]);
assert_eq!(v + w, ColumnVector::new([2.0,
3.0,
8.0]));
|
|