[−][src]Function concrete_lib::operators::math::fft::double_mac
pub fn double_mac(
fft_res: &mut AlignedVec<CTorus>,
fft_a: &[CTorus],
fft_b: &AlignedVec<CTorus>,
fft_c: &[CTorus],
fft_d: &AlignedVec<CTorus>
)
Compute fft_res += fft_a * fft_b + fft_c * fft_d
Arguments
fft_res
- Aligned Vector (output)fft_a
- CTorus slice (input)fft_b
- Aligned Vector (input)fft_c
- CTorus Slice (input)fft_d
- Aligned Vector (input)
Example
#[macro_use] use concrete_lib; use concrete_lib::operators::math::fft; use concrete_lib::types::{C2CPlanTorus, CTorus}; use fftw::array::AlignedVec; let big_n: usize = 1024; let mut fft_a: AlignedVec<CTorus> = AlignedVec::new(big_n); let mut fft_b: AlignedVec<CTorus> = AlignedVec::new(big_n); let mut fft_d: AlignedVec<CTorus> = AlignedVec::new(big_n); let mut fft_c: AlignedVec<CTorus> = AlignedVec::new(big_n); let mut fft_res: AlignedVec<CTorus> = AlignedVec::new(big_n); // .. fft::double_mac(&mut fft_res, &fft_a, &fft_b, &fft_c, &fft_d);