use crate::linalg::basic::arrays::Array2;
use crate::numbers::basenum::Number;
pub trait HighOrderOperations<T: Number>: Array2<T> {
fn ab(&self, a_transpose: bool, b: &Self, b_transpose: bool) -> Self {
match (a_transpose, b_transpose) {
(true, true) => b.matmul(self).transpose(),
(false, true) => self.matmul(&b.transpose()),
(true, false) => self.transpose().matmul(b),
(false, false) => self.matmul(b),
}
}
}
mod tests {
}