arnaucube
arnaucube/poulpyPublic Self-hosted repository
poulpy/core/src/external_product.rs
core/src/external_product.rsRaw
 1use base2k::{FFT64, Module, Scratch};
 2
 3pub trait ExternalProductScratchSpace {
 4    fn external_product_scratch_space(module: &Module<FFT64>, res_size: usize, lhs: usize, rhs: usize) -> usize;
 5}
 6
 7pub trait ExternalProduct<DataLhs, DataRhs> {
 8    type Lhs;
 9    type Rhs;
10    fn external_product(&mut self, module: &Module<FFT64>, lhs: &Self::Lhs, rhs: &Self::Rhs, scratch: &mut Scratch);
11}
12pub trait ExternalProductInplaceScratchSpace {
13    fn external_product_inplace_scratch_space(module: &Module<FFT64>, res_size: usize, rhs: usize) -> usize;
14}
15
16pub trait ExternalProductInplace<DataRhs> {
17    type Rhs;
18    fn external_product_inplace(&mut self, module: &Module<FFT64>, rhs: &Self::Rhs, scratch: &mut Scratch);
19}