use std::ptr::NonNull; use crate::{ hal::{ layouts::{Backend, Module}, oep::ModuleNewImpl, }, implementation::cpu_spqlios::{ CPUAVX, ffi::module::{MODULE, delete_module_info, new_module_info}, }, }; pub struct FFT64; impl CPUAVX for FFT64 {} impl Backend for FFT64 { type Handle = MODULE; unsafe fn destroy(handle: NonNull) { unsafe { delete_module_info(handle.as_ptr()) } } } unsafe impl ModuleNewImpl for FFT64 { fn new_impl(n: u64) -> Module { unsafe { Module::from_raw_parts(new_module_info(n, 0), n) } } }