use crate::error::{Error, Result};
use crate::runtime::Runtime;
use crate::tensor::Tensor;
pub trait MatrixFunctionsAlgorithms<R: Runtime> {
fn expm(&self, a: &Tensor<R>) -> Result<Tensor<R>> {
let _ = a;
Err(Error::NotImplemented {
feature: "MatrixFunctionsAlgorithms::expm",
})
}
fn logm(&self, a: &Tensor<R>) -> Result<Tensor<R>> {
let _ = a;
Err(Error::NotImplemented {
feature: "MatrixFunctionsAlgorithms::logm",
})
}
fn sqrtm(&self, a: &Tensor<R>) -> Result<Tensor<R>> {
let _ = a;
Err(Error::NotImplemented {
feature: "MatrixFunctionsAlgorithms::sqrtm",
})
}
fn signm(&self, a: &Tensor<R>) -> Result<Tensor<R>> {
let _ = a;
Err(Error::NotImplemented {
feature: "MatrixFunctionsAlgorithms::signm",
})
}
fn fractional_matrix_power(&self, a: &Tensor<R>, p: f64) -> Result<Tensor<R>> {
let _ = (a, p);
Err(Error::NotImplemented {
feature: "MatrixFunctionsAlgorithms::fractional_matrix_power",
})
}
fn funm<F>(&self, a: &Tensor<R>, f: F) -> Result<Tensor<R>>
where
F: Fn(f64) -> f64 + Send + Sync,
{
let _ = (a, f);
Err(Error::NotImplemented {
feature: "MatrixFunctionsAlgorithms::funm",
})
}
}