use faer::linalg::matmul::triangular::BlockStructure;
use faer::{Accum, MatMut, MatRef, Par};
use faer_traits::ComplexField;
pub use ann_search_rs::utils::gemm::gemm;
#[inline]
pub fn gram<T: ComplexField>(
dst: MatMut<T>,
structure: BlockStructure,
accum: Accum,
lhs: MatRef<T>,
rhs: MatRef<T>,
alpha: T,
par: Par,
) {
#[cfg(all(feature = "accelerate", target_os = "macos"))]
{
let _ = structure;
gemm(dst, accum, lhs, rhs, alpha, par);
}
#[cfg(not(all(feature = "accelerate", target_os = "macos")))]
faer::linalg::matmul::triangular::matmul(
dst,
structure,
accum,
lhs,
BlockStructure::Rectangular,
rhs,
BlockStructure::Rectangular,
alpha,
par,
);
}