pub trait ResidentBackend: Send + Sync {
// Required methods
fn allocate_complex(&self, len: usize) -> Result<Box<dyn ComplexBuffer>>;
fn allocate_real(&self, len: usize) -> Result<Box<dyn RealBuffer>>;
fn upload_complex(
&self,
destination: &mut dyn ComplexBuffer,
source: &[Complex64],
) -> Result<()>;
fn download_complex(
&self,
source: &dyn ComplexBuffer,
destination: &mut [Complex64],
) -> Result<()>;
fn upload_real(
&self,
destination: &mut dyn RealBuffer,
source: &[f64],
) -> Result<()>;
fn download_real(
&self,
source: &dyn RealBuffer,
destination: &mut [f64],
) -> Result<()>;
fn fft2_resident(
&self,
values: &mut dyn ComplexBuffer,
shape: (usize, usize),
direction: FftDirection,
) -> Result<()>;
}Expand description
Optional typed-buffer operations for backends that can keep reconstruction state resident in their preferred memory domain.
Required Methods§
Sourcefn allocate_complex(&self, len: usize) -> Result<Box<dyn ComplexBuffer>>
fn allocate_complex(&self, len: usize) -> Result<Box<dyn ComplexBuffer>>
Allocates len uninitialized or zeroed complex elements according to backend policy.
Sourcefn allocate_real(&self, len: usize) -> Result<Box<dyn RealBuffer>>
fn allocate_real(&self, len: usize) -> Result<Box<dyn RealBuffer>>
Allocates len uninitialized or zeroed real elements according to backend policy.
Sourcefn upload_complex(
&self,
destination: &mut dyn ComplexBuffer,
source: &[Complex64],
) -> Result<()>
fn upload_complex( &self, destination: &mut dyn ComplexBuffer, source: &[Complex64], ) -> Result<()>
Copies a host complex slice into an equal-length resident buffer.
Sourcefn download_complex(
&self,
source: &dyn ComplexBuffer,
destination: &mut [Complex64],
) -> Result<()>
fn download_complex( &self, source: &dyn ComplexBuffer, destination: &mut [Complex64], ) -> Result<()>
Copies an equal-length resident complex buffer into a host slice.
Sourcefn upload_real(
&self,
destination: &mut dyn RealBuffer,
source: &[f64],
) -> Result<()>
fn upload_real( &self, destination: &mut dyn RealBuffer, source: &[f64], ) -> Result<()>
Copies a host real slice into an equal-length resident buffer.
Sourcefn download_real(
&self,
source: &dyn RealBuffer,
destination: &mut [f64],
) -> Result<()>
fn download_real( &self, source: &dyn RealBuffer, destination: &mut [f64], ) -> Result<()>
Copies an equal-length resident real buffer into a host slice.
Sourcefn fft2_resident(
&self,
values: &mut dyn ComplexBuffer,
shape: (usize, usize),
direction: FftDirection,
) -> Result<()>
fn fft2_resident( &self, values: &mut dyn ComplexBuffer, shape: (usize, usize), direction: FftDirection, ) -> Result<()>
Applies an in-place two-dimensional FFT to values shaped (height, width).