Struct funspace::fourier::FourierR2c [−][src]
pub struct FourierR2c<A> {
pub n: usize,
pub m: usize,
pub x: Array1<A>,
pub k: Array1<Complex<A>>,
pub fft_handler: R2cFftHandler<A>,
// some fields omitted
}
Expand description
Fields
n: usize
Number of coefficients in physical space
m: usize
Number of coefficients in spectral space
x: Array1<A>
Grid coordinates of fourier nodes
k: Array1<Complex<A>>
Complex wavenumber vector
fft_handler: R2cFftHandler<A>
Handles discrete cosine transform
Implementations
Differentiate 1d Array n_times
Example
Differentiate along lane
use funspace::fourier::FourierR2c;
use funspace::utils::approx_eq_complex;
use ndarray::prelude::*;
let fo = FourierR2c::<f64>::new(5);
let mut k = fo.k.clone();
let expected = k.mapv(|x| x.powf(2.));
fo.differentiate_lane(&mut k, 1);
approx_eq_complex(&k, &expected);
Panics
When type conversion fails ( safe )
Trait Implementations
Return transform kind
Perform differentiation in spectral space
Return differentiated array
Perform differentiation in spectral space
Return differentiated array
Performs the conversion.
Return itself
Return itself
Return itself
Return itself
Return itself
Return itself
Pseudoinverse Laplacian for FourierR2c
basis
Pseudoidentity matrix (= eye matrix with removed
first row for FourierR2c
)
Copied from c2c
Example
Forward transform along first axis
use funspace::fourier::FourierR2c;
use funspace::Transform;
use funspace::utils::approx_eq_complex;
use num_complex::Complex;
use ndarray::prelude::*;
let mut fo = FourierR2c::new(4);
let input = array![1., 2., 3., 4.];
let expected = array![
Complex::new(10., 0.),
Complex::new(-2., 2.),
Complex::new(-2., 0.)
];
let output = fo.forward(&input, 0);
approx_eq_complex(&output, &expected);
Example
Backward transform along first axis
use funspace::fourier::FourierR2c;
use funspace::Transform;
use funspace::utils::approx_eq;
use num_complex::Complex;
use ndarray::prelude::*;
let mut fo = FourierR2c::new(4);
let input = array![
Complex::new(10., 0.),
Complex::new(-2., 2.),
Complex::new(-2., 0.)
];
let expected = array![1., 2., 3., 4.];
let output = fo.backward(&input, 0);
approx_eq(&output, &expected);
type Physical = A
Parallel version. See FourierR2c::forward
Parallel version. See FourierR2c::forward_inplace
Parallel version. See FourierR2c::backward
Parallel version. See FourierR2c::backward_inplace
Panics
Panics when input type cannot be cast from f64.
type Physical = A
type Physical = A
Scalar type in physical space (before transform)
Performs the conversion.
Auto Trait Implementations
impl<A> !RefUnwindSafe for FourierR2c<A>
impl<A> Send for FourierR2c<A> where
A: Send,
impl<A> Sync for FourierR2c<A> where
A: Sync,
impl<A> Unpin for FourierR2c<A>
impl<A> !UnwindSafe for FourierR2c<A>
Blanket Implementations
Mutably borrows from an owned value. Read more