1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
//! Basic operations.
/// A multiplication.
pub trait Multiply<Right: ?Sized, Output> {
/// Perform the multiplication.
fn multiply(&self, &Right) -> Output;
}
/// A multiplication that adds the result to a third object.
pub trait MultiplyInto<Right: ?Sized, Output: ?Sized> {
/// Perform the multiplication.
fn multiply_into(&self, &Right, &mut Output);
}
/// A multiplication that overwrites the receiver with the result.
pub trait MultiplySelf<Right: ?Sized> {
/// Perform the multiplication.
fn multiply_self(&mut self, &Right);
}
/// A scaling that overwrites the receiver with the result.
pub trait ScaleSelf<T> {
/// Perform the scaling.
fn scale_self(&mut self, T);
}
/// The transpose.
pub trait Transpose {
/// Perform the transpose.
fn transpose(&self) -> Self;
}