Trait BaseGradient

Source
pub trait BaseGradient<T>: BaseSize
where T: Zero + Copy,
{ // Required method fn gradient_slice(&self, indata: &[T], outdata: &mut [T], n_times: usize); // Provided methods fn gradient<S, D>( &self, indata: &ArrayBase<S, D>, n_times: usize, axis: usize, ) -> Array<T, D> where S: Data<Elem = T>, D: Dimension { ... } fn gradient_inplace<S1, S2, D>( &self, indata: &ArrayBase<S1, D>, outdata: &mut ArrayBase<S2, D>, n_times: usize, axis: usize, ) where S1: Data<Elem = T>, S2: Data<Elem = T> + DataMut, D: Dimension { ... } fn gradient_par<S, D>( &self, indata: &ArrayBase<S, D>, n_times: usize, axis: usize, ) -> Array<T, D> where S: Data<Elem = T>, D: Dimension, T: Send + Sync, Self: Sync { ... } fn gradient_inplace_par<S1, S2, D>( &self, indata: &ArrayBase<S1, D>, outdata: &mut ArrayBase<S2, D>, n_times: usize, axis: usize, ) where S1: Data<Elem = T>, S2: Data<Elem = T> + DataMut, D: Dimension, T: Send + Sync, Self: Sync { ... } }
Expand description

§Gradient

Required Methods§

Source

fn gradient_slice(&self, indata: &[T], outdata: &mut [T], n_times: usize)

Differentiate in spectral space

Provided Methods§

Source

fn gradient<S, D>( &self, indata: &ArrayBase<S, D>, n_times: usize, axis: usize, ) -> Array<T, D>
where S: Data<Elem = T>, D: Dimension,

Differentiate in spectral space

Source

fn gradient_inplace<S1, S2, D>( &self, indata: &ArrayBase<S1, D>, outdata: &mut ArrayBase<S2, D>, n_times: usize, axis: usize, )
where S1: Data<Elem = T>, S2: Data<Elem = T> + DataMut, D: Dimension,

Differentiate in spectral space

Source

fn gradient_par<S, D>( &self, indata: &ArrayBase<S, D>, n_times: usize, axis: usize, ) -> Array<T, D>
where S: Data<Elem = T>, D: Dimension, T: Send + Sync, Self: Sync,

Differentiate in spectral space

Source

fn gradient_inplace_par<S1, S2, D>( &self, indata: &ArrayBase<S1, D>, outdata: &mut ArrayBase<S2, D>, n_times: usize, axis: usize, )
where S1: Data<Elem = T>, S2: Data<Elem = T> + DataMut, D: Dimension, T: Send + Sync, Self: Sync,

Differentiate in spectral space

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<A, T> BaseGradient<T> for BaseC2c<A>
where A: FloatNum, T: ScalarNum + Add<Complex<A>, Output = T> + Mul<Complex<A>, Output = T> + Div<Complex<A>, Output = T> + Sub<Complex<A>, Output = T>,

Source§

impl<A, T> BaseGradient<T> for BaseR2c<A>
where A: FloatNum, T: ScalarNum + Add<Complex<A>, Output = T> + Mul<Complex<A>, Output = T> + Div<Complex<A>, Output = T> + Sub<Complex<A>, Output = T>,

Source§

impl<A, T> BaseGradient<T> for BaseR2r<A>
where A: FloatNum, T: ScalarNum + Add<A, Output = T> + Mul<A, Output = T> + Div<A, Output = T> + Sub<A, Output = T>,

Source§

impl<A, T> BaseGradient<T> for ChebyshevComposite<A>
where A: FloatNum, T: ScalarNum + Add<A, Output = T> + Mul<A, Output = T> + Div<A, Output = T> + Sub<A, Output = T>,

Source§

impl<A, T> BaseGradient<T> for Chebyshev<A>
where A: FloatNum, T: ScalarNum,

Source§

impl<A, T> BaseGradient<T> for FourierC2c<A>
where A: FloatNum, T: ScalarNum + Add<Complex<A>, Output = T> + Mul<Complex<A>, Output = T> + Div<Complex<A>, Output = T> + Sub<Complex<A>, Output = T>,

Source§

impl<A, T> BaseGradient<T> for FourierR2c<A>
where A: FloatNum, T: ScalarNum + Add<Complex<A>, Output = T> + Mul<Complex<A>, Output = T> + Div<Complex<A>, Output = T> + Sub<Complex<A>, Output = T>,