Skip to main content

CustomFamilyPsiDerivativeOperator

Trait CustomFamilyPsiDerivativeOperator 

Source
pub trait CustomFamilyPsiDerivativeOperator:
    Send
    + Sync
    + Any {
Show 14 methods // Required methods fn as_any(&self) -> &dyn Any; fn n_data(&self) -> usize; fn p_out(&self) -> usize; fn transpose_mul( &self, axis: usize, v: &ArrayView1<'_, f64>, ) -> Result<Array1<f64>, BasisError>; fn forward_mul( &self, axis: usize, u: &ArrayView1<'_, f64>, ) -> Result<Array1<f64>, BasisError>; fn transpose_mul_second_diag( &self, axis: usize, v: &ArrayView1<'_, f64>, ) -> Result<Array1<f64>, BasisError>; fn transpose_mul_second_cross( &self, axis_d: usize, axis_e: usize, v: &ArrayView1<'_, f64>, ) -> Result<Array1<f64>, BasisError>; fn forward_mul_second_diag( &self, axis: usize, u: &ArrayView1<'_, f64>, ) -> Result<Array1<f64>, BasisError>; fn forward_mul_second_cross( &self, axis_d: usize, axis_e: usize, u: &ArrayView1<'_, f64>, ) -> Result<Array1<f64>, BasisError>; fn row_chunk_first( &self, axis: usize, rows: Range<usize>, ) -> Result<Array2<f64>, BasisError>; fn row_chunk_second_diag( &self, axis: usize, rows: Range<usize>, ) -> Result<Array2<f64>, BasisError>; fn row_chunk_second_cross( &self, axis_d: usize, axis_e: usize, rows: Range<usize>, ) -> Result<Array2<f64>, BasisError>; // Provided methods fn row_vector_first_into( &self, axis: usize, row: usize, out: ArrayViewMut1<'_, f64>, ) -> Result<(), BasisError> { ... } fn as_materializable( &self, ) -> Option<&dyn MaterializablePsiDerivativeOperator> { ... }
}

Required Methods§

Source

fn as_any(&self) -> &dyn Any

Source

fn n_data(&self) -> usize

Source

fn p_out(&self) -> usize

Source

fn transpose_mul( &self, axis: usize, v: &ArrayView1<'_, f64>, ) -> Result<Array1<f64>, BasisError>

Source

fn forward_mul( &self, axis: usize, u: &ArrayView1<'_, f64>, ) -> Result<Array1<f64>, BasisError>

Source

fn transpose_mul_second_diag( &self, axis: usize, v: &ArrayView1<'_, f64>, ) -> Result<Array1<f64>, BasisError>

Source

fn transpose_mul_second_cross( &self, axis_d: usize, axis_e: usize, v: &ArrayView1<'_, f64>, ) -> Result<Array1<f64>, BasisError>

Source

fn forward_mul_second_diag( &self, axis: usize, u: &ArrayView1<'_, f64>, ) -> Result<Array1<f64>, BasisError>

Source

fn forward_mul_second_cross( &self, axis_d: usize, axis_e: usize, u: &ArrayView1<'_, f64>, ) -> Result<Array1<f64>, BasisError>

Source

fn row_chunk_first( &self, axis: usize, rows: Range<usize>, ) -> Result<Array2<f64>, BasisError>

Source

fn row_chunk_second_diag( &self, axis: usize, rows: Range<usize>, ) -> Result<Array2<f64>, BasisError>

Source

fn row_chunk_second_cross( &self, axis_d: usize, axis_e: usize, rows: Range<usize>, ) -> Result<Array2<f64>, BasisError>

Provided Methods§

Source

fn row_vector_first_into( &self, axis: usize, row: usize, out: ArrayViewMut1<'_, f64>, ) -> Result<(), BasisError>

Single-row specialization of row_chunk_first. Default implementation delegates to row_chunk_first(axis, row..row+1) and copies the resulting row into the output buffer; implementations that can avoid the temporary matrix allocation should override this method.

Source

fn as_materializable(&self) -> Option<&dyn MaterializablePsiDerivativeOperator>

Optional upcast to the dense materialization surface. Production exact paths should prefer the analytic matvec / row-chunk methods above and avoid forming the full derivative matrix; implementations that do support dense materialization (used by diagnostics, tests, and small-data fallbacks) should override this to return Some(self).

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§