> Overloading Mul for matrix multiplication would be a mistake, since that
> operator does not act the same way multiplication acts for scalars.
I think that one of the main reasons for overloading operators is not their
genericity but their usage in the code.
let a = Matrix::new(…);
let x = Vector::new(…);
let b = Vector::new(…);
let result = a * x + b;
Looks much nicer than
let result = a.times(x).plus(b);
In mathematical computations you usually use concrete types, and having
overloadable operators just makes your code nicer to read.
That said, for mathematicians it is absolutely not a problem that
multiplication for matrices works differently than for scalars.
_______________________________________________
Rust-dev mailing list
[email protected]
https://mail.mozilla.org/listinfo/rust-dev