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