@@ -1053,41 +1053,30 @@ end
1053
1053
# ######################################################################
1054
1054
1055
1055
"""
1056
- UnitaryProjectionStyle()
1057
-
1058
- Projection style for transforms that are unitary
1059
- """
1060
- struct UnitaryProjectionStyle <: AbstractFFTs.ProjectionStyle end
1061
-
1062
- """
1063
- R2RProjectionStyle(kinds)
1056
+ R2RAdjointStyle(kinds)
1064
1057
1065
1058
Projection style for real to real transforms
1066
1059
"""
1067
- struct R2RProjectionStyle {K} <: AbstractFFTs.ProjectionStyle
1060
+ struct R2RAdjointStyle {K} <: AbstractFFTs.AdjointStyle
1068
1061
kinds:: K
1069
1062
end
1070
1063
1071
- AbstractFFTs. ProjectionStyle (:: cFFTWPlan ) = AbstractFFTs. NoProjectionStyle ()
1072
- AbstractFFTs. ProjectionStyle (:: rFFTWPlan{T, FORWARD} ) where {T} = AbstractFFTs. RealProjectionStyle ()
1073
- AbstractFFTs. ProjectionStyle (P:: rFFTWPlan{T, BACKWARD} ) where {T} = AbstractFFTs. RealInverseProjectionStyle (P. osz[first (P. region)])
1074
- AbstractFFTs. ProjectionStyle (P:: r2rFFTWPlan ) = AbstractFFTs. R2RProjectionStyle (P. kinds)
1075
-
1076
- AbstractFFTs. _output_size (p:: Plan , :: UnitaryProjectionStyle ) = size (p)
1077
- AbstractFFTs. _output_size (p:: Plan , :: R2RProjectionStyle ) = size (p)
1064
+ AbstractFFTs. AdjointStyle (:: cFFTWPlan ) = AbstractFFTs. FFTAdjointStyle ()
1065
+ AbstractFFTs. AdjointStyle (:: rFFTWPlan{T, FORWARD} ) where {T} = AbstractFFTs. RFFTAdjointStyle ()
1066
+ AbstractFFTs. AdjointStyle (P:: rFFTWPlan{T, BACKWARD} ) where {T} = AbstractFFTs. IRFFTAdjointStyle (P. osz[first (P. region)])
1067
+ AbstractFFTs. AdjointStyle (P:: r2rFFTWPlan ) = AbstractFFTs. R2RAdjointStyle (P. kinds)
1078
1068
1079
- function _mul (p:: AdjointPlan{T} , x:: AbstractArray , :: UnitaryProjectionStyle ) where {T}
1080
- return p. p \ x
1081
- end
1069
+ AbstractFFTs. _output_size (p:: Plan , :: R2RAdjointStyle ) = size (p)
1082
1070
1083
- function _mul (p:: AdjointPlan{T} , x:: AbstractArray , PS:: R2RProjectionStyle ) where {T}
1071
+ # TODO : this needs finishing
1072
+ function AbstractFFTs. adjoint_mul (p:: Plan{T} , x:: AbstractArray , PS:: R2RAdjointStyle ) where {T}
1084
1073
kinds = PS. kinds
1085
1074
dims = fftdims (p)
1086
1075
1087
1076
N = 1
1088
1077
# Ref: https://www.fftw.org/fftw3_doc/1d-Real_002deven-DFTs-_0028DCTs_0029.html
1089
1078
# Normalization: P \ P * u = K * u
1090
- # 0, 1 , 2 : NoProjectionStyle () type: K = prod(size(N))
1079
+ # 0, 1 , 2 : FFTAdjointStyle () type: K = prod(size(N))
1091
1080
# 3, 6 : DCTs: K = 2 * (N - 1)
1092
1081
# 4, 5 : DCTs: K = 2 * N
1093
1082
# 7, 10: DSTs: K = 2 * (N + 1)
0 commit comments