use crate::DType;
use super::RobustRegressionResult;
use numr::error::Result;
use numr::ops::TensorOps;
use numr::runtime::Runtime;
use numr::tensor::Tensor;
pub trait RobustStatisticsAlgorithms<R: Runtime<DType = DType>>: TensorOps<R> {
fn trim_mean(&self, x: &Tensor<R>, proportiontocut: f64) -> Result<Tensor<R>>;
fn winsorized_mean(&self, x: &Tensor<R>, proportiontocut: f64) -> Result<Tensor<R>>;
fn median_abs_deviation(&self, x: &Tensor<R>, scale: bool) -> Result<Tensor<R>>;
fn siegelslopes(&self, x: &Tensor<R>, y: &Tensor<R>) -> Result<RobustRegressionResult<R>>;
fn theilslopes(&self, x: &Tensor<R>, y: &Tensor<R>) -> Result<RobustRegressionResult<R>>;
}