Struct fftw::plan::Plan

source ·
pub struct Plan<A, B, Plan: PlanSpec> { /* private fields */ }
Expand description

Typed wrapper of fftw_plan

The plan in FFTW manages the contains all information necessary to compute the transform, including the pointers to the input and output arrays. However, this wrapper does not modify this pointer once after the plan is created since it should be unsafe in terms of Rust. Instead, this plan executes a transform for different arrays with new-array execute functions with related associated functions, e.g. C2CPlan::c2c.

Trait Implementations§

source§

impl C2CPlan for Plan<c32, c32, Plan32>

§

type Complex = Complex<f32>

source§

fn new( shape: &[usize], in_: &mut [Self::Complex], out: &mut [Self::Complex], sign: Sign, flag: Flag ) -> Result<Self>

Create new plan
source§

fn c2c( &mut self, in_: &mut [Self::Complex], out: &mut [Self::Complex] ) -> Result<()>

Execute complex-to-complex transform
source§

fn aligned(shape: &[usize], sign: Sign, flag: Flag) -> Result<Self>

Create new plan with aligned vector
source§

impl C2CPlan for Plan<c64, c64, Plan64>

§

type Complex = Complex<f64>

source§

fn new( shape: &[usize], in_: &mut [Self::Complex], out: &mut [Self::Complex], sign: Sign, flag: Flag ) -> Result<Self>

Create new plan
source§

fn c2c( &mut self, in_: &mut [Self::Complex], out: &mut [Self::Complex] ) -> Result<()>

Execute complex-to-complex transform
source§

fn aligned(shape: &[usize], sign: Sign, flag: Flag) -> Result<Self>

Create new plan with aligned vector
source§

impl C2RPlan for Plan<c32, f32, Plan32>

§

type Real = f32

§

type Complex = Complex<f32>

source§

fn new( shape: &[usize], in_: &mut [Self::Complex], out: &mut [Self::Real], flag: Flag ) -> Result<Self>

Create new plan
source§

fn c2r( &mut self, in_: &mut [Self::Complex], out: &mut [Self::Real] ) -> Result<()>

Execute complex-to-real transform
source§

fn aligned(shape: &[usize], flag: Flag) -> Result<Self>

Create new plan with aligned vector
source§

impl C2RPlan for Plan<c64, f64, Plan64>

§

type Real = f64

§

type Complex = Complex<f64>

source§

fn new( shape: &[usize], in_: &mut [Self::Complex], out: &mut [Self::Real], flag: Flag ) -> Result<Self>

Create new plan
source§

fn c2r( &mut self, in_: &mut [Self::Complex], out: &mut [Self::Real] ) -> Result<()>

Execute complex-to-real transform
source§

fn aligned(shape: &[usize], flag: Flag) -> Result<Self>

Create new plan with aligned vector
source§

impl<A, B, P: PlanSpec> Drop for Plan<A, B, P>

source§

fn drop(&mut self)

Executes the destructor for this type. Read more
source§

impl R2CPlan for Plan<f32, c32, Plan32>

§

type Real = f32

§

type Complex = Complex<f32>

source§

fn new( shape: &[usize], in_: &mut [Self::Real], out: &mut [Self::Complex], flag: Flag ) -> Result<Self>

Create new plan
source§

fn r2c( &mut self, in_: &mut [Self::Real], out: &mut [Self::Complex] ) -> Result<()>

Execute real-to-complex transform
source§

fn aligned(shape: &[usize], flag: Flag) -> Result<Self>

Create new plan with aligned vector
source§

impl R2CPlan for Plan<f64, c64, Plan64>

§

type Real = f64

§

type Complex = Complex<f64>

source§

fn new( shape: &[usize], in_: &mut [Self::Real], out: &mut [Self::Complex], flag: Flag ) -> Result<Self>

Create new plan
source§

fn r2c( &mut self, in_: &mut [Self::Real], out: &mut [Self::Complex] ) -> Result<()>

Execute real-to-complex transform
source§

fn aligned(shape: &[usize], flag: Flag) -> Result<Self>

Create new plan with aligned vector
source§

impl R2RPlan for Plan<f32, f32, Plan32>

§

type Real = f32

source§

fn new( shape: &[usize], in_: &mut [Self::Real], out: &mut [Self::Real], kind: R2RKind, flag: Flag ) -> Result<Self>

Create new plan
source§

fn r2r(&mut self, in_: &mut [Self::Real], out: &mut [Self::Real]) -> Result<()>

Execute complex-to-complex transform
source§

fn aligned(shape: &[usize], kind: R2RKind, flag: Flag) -> Result<Self>

Create new plan with aligned vector
source§

impl R2RPlan for Plan<f64, f64, Plan64>

§

type Real = f64

source§

fn new( shape: &[usize], in_: &mut [Self::Real], out: &mut [Self::Real], kind: R2RKind, flag: Flag ) -> Result<Self>

Create new plan
source§

fn r2r(&mut self, in_: &mut [Self::Real], out: &mut [Self::Real]) -> Result<()>

Execute complex-to-complex transform
source§

fn aligned(shape: &[usize], kind: R2RKind, flag: Flag) -> Result<Self>

Create new plan with aligned vector
source§

impl<A: Send, B: Send> Send for Plan<A, B, Plan32>

source§

impl<A: Send, B: Send> Send for Plan<A, B, Plan64>

Auto Trait Implementations§

§

impl<A, B, Plan> RefUnwindSafe for Plan<A, B, Plan>where A: RefUnwindSafe, B: RefUnwindSafe, Plan: RefUnwindSafe,

§

impl<A, B, Plan> Send for Plan<A, B, Plan>where A: Send, B: Send, Plan: Send,

§

impl<A, B, Plan> Sync for Plan<A, B, Plan>where A: Sync, B: Sync, Plan: Sync,

§

impl<A, B, Plan> Unpin for Plan<A, B, Plan>where A: Unpin, B: Unpin, Plan: Unpin,

§

impl<A, B, Plan> UnwindSafe for Plan<A, B, Plan>where A: UnwindSafe, B: UnwindSafe, Plan: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.