use crate::signal::traits::wiener::WienerAlgorithms;
use numr::error::{Error, Result};
use numr::runtime::cuda::{CudaClient, CudaRuntime};
use numr::tensor::Tensor;
impl WienerAlgorithms<CudaRuntime> for CudaClient {
fn wiener(
&self,
_x: &Tensor<CudaRuntime>,
_kernel_size: Option<usize>,
_noise: Option<f64>,
) -> Result<Tensor<CudaRuntime>> {
Err(Error::backend_limitation(
"cuda",
"wiener",
"Wiener filtering is CPU-only due to local statistics computation. Transfer data to CPU first.",
))
}
fn wiener2d(
&self,
_x: &Tensor<CudaRuntime>,
_kernel_size: Option<(usize, usize)>,
_noise: Option<f64>,
) -> Result<Tensor<CudaRuntime>> {
Err(Error::backend_limitation(
"cuda",
"wiener2d",
"Wiener filtering is CPU-only due to local statistics computation. Transfer data to CPU first.",
))
}
}