use crate::error::{FFTError, FFTResult};
use crate::gpu_kernel_stub::MIGRATION_MESSAGE;
use crate::sparse_fft::{SparseFFTAlgorithm, SparseFFTResult, WindowFunction};
use scirs2_core::numeric::Complex64;
use scirs2_core::numeric::NumCast;
use std::fmt::Debug;
pub struct CUDAWindowKernel;
impl CUDAWindowKernel {
pub fn new(_window: WindowFunction) -> Self {
Self
}
pub fn apply(&self, _data: &mut [Complex64]) -> FFTResult<()> {
Err(FFTError::NotImplementedError(MIGRATION_MESSAGE.to_string()))
}
}
pub struct CUDASublinearSparseFFTKernel;
impl CUDASublinearSparseFFTKernel {
pub fn new(_algorithm: SparseFFTAlgorithm) -> Self {
Self
}
pub fn execute<T>(&self, _input: &[T], _k: usize) -> FFTResult<SparseFFTResult>
where
T: NumCast + Copy + Debug,
{
Err(FFTError::NotImplementedError(MIGRATION_MESSAGE.to_string()))
}
}
#[allow(dead_code)]
pub fn execute_cuda_sublinear_sparse_fft<T>(
_input: &[T],
_k: usize,
_algorithm: SparseFFTAlgorithm,
) -> FFTResult<SparseFFTResult>
where
T: NumCast + Copy + Debug,
{
Err(FFTError::NotImplementedError(MIGRATION_MESSAGE.to_string()))
}
pub struct CUDACompressedSensingSparseFFTKernel;
impl CUDACompressedSensingSparseFFTKernel {
pub fn new() -> Self {
Self
}
pub fn execute<T>(&self, _input: &[T], _k: usize) -> FFTResult<SparseFFTResult>
where
T: NumCast + Copy + Debug,
{
Err(FFTError::NotImplementedError(MIGRATION_MESSAGE.to_string()))
}
}
impl Default for CUDACompressedSensingSparseFFTKernel {
fn default() -> Self {
Self::new()
}
}
#[allow(dead_code)]
pub fn execute_cuda_compressed_sensing_sparse_fft<T>(
_input: &[T],
_k: usize,
) -> FFTResult<SparseFFTResult>
where
T: NumCast + Copy + Debug,
{
Err(FFTError::NotImplementedError(MIGRATION_MESSAGE.to_string()))
}