1use crate::kernel::Float;
11use crate::rdft::solvers::{
12 dst1 as r2r_dst1, dst2 as r2r_dst2, dst3 as r2r_dst3, dst4 as r2r_dst4,
13};
14
15#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
17#[non_exhaustive]
18pub enum DstType {
19 I,
21 II,
23 III,
25 IV,
27}
28
29pub fn dst_i<T: Float>(input: &[T], output: &mut [T]) {
31 r2r_dst1(input, output);
32}
33
34pub fn dst_ii<T: Float>(input: &[T], output: &mut [T]) {
36 r2r_dst2(input, output);
37}
38
39pub fn dst_iii<T: Float>(input: &[T], output: &mut [T]) {
41 r2r_dst3(input, output);
42}
43
44pub fn dst_iv<T: Float>(input: &[T], output: &mut [T]) {
46 r2r_dst4(input, output);
47}