pub trait PositiveDefiniteKernel<T>: Clone + Debug + Send + Syncwhere
    T: Value,{
    fn params_len(&self) -> usize;
    fn value(&self, params: &[f64], x: &T, xprime: &T) -> Result<f64, KernelError>;
}pub trait PositiveDefiniteKernel<T>: Clone + Debug + Send + Syncwhere
    T: Value,{
    fn params_len(&self) -> usize;
    fn value(&self, params: &[f64], x: &T, xprime: &T) -> Result<f64, KernelError>;
}