@@ -11,22 +11,31 @@ JacobiTransformPlan(chebplan::CPLAN, cjtplan::CJT) where {CPLAN,CJT} =
11
11
12
12
plan_transform (S:: Jacobi , v:: AbstractVector ) =
13
13
JacobiTransformPlan (plan_transform (Chebyshev (), v), plan_cheb2jac (v, S. a, S. b))
14
- * (P:: JacobiTransformPlan , vals:: AbstractVector ) = P. cjtplan* (P. chebplan* vals)
14
+ plan_transform! (S:: Jacobi , v:: AbstractVector ) =
15
+ JacobiTransformPlan (plan_transform! (Chebyshev (), v), plan_cheb2jac (v, S. a, S. b))
16
+ * (P:: JacobiTransformPlan , vals:: AbstractVector ) = lmul! (P. cjtplan, P. chebplan * vals)
15
17
16
18
17
- struct JacobiITransformPlan{T,CPLAN,CJT} <: AbstractTransformPlan{T}
19
+ struct JacobiITransformPlan{T,CPLAN,CJT,inplace } <: AbstractTransformPlan{T}
18
20
ichebplan:: CPLAN
19
21
icjtplan:: CJT
20
22
end
21
23
22
- JacobiITransformPlan (chebplan:: CPLAN , cjtplan:: CJT ) where {CPLAN,CJT} =
23
- JacobiITransformPlan {eltype (chebplan), CPLAN,CJT} (chebplan, cjtplan)
24
-
24
+ JacobiITransformPlan (chebplan, cjtplan) = JacobiITransformPlan {false} (chebplan, cjtplan)
25
+ JacobiITransformPlan {inplace} (chebplan:: CPLAN , cjtplan :: CJT ) where { CPLAN,CJT,inplace} =
26
+ JacobiITransformPlan {eltype(chebplan),CPLAN,CJT,inplace} (chebplan, cjtplan)
25
27
28
+ inplace (J:: JacobiITransformPlan{<:Any,<:Any,<:Any,IP} ) where {IP} = IP
26
29
27
30
plan_itransform (S:: Jacobi , v:: AbstractVector ) =
28
31
JacobiITransformPlan (plan_itransform (Chebyshev (), v), plan_jac2cheb (v, S. a, S. b))
29
- * (P:: JacobiITransformPlan , cfs:: AbstractVector ) = P. ichebplan* (P. icjtplan* cfs)
32
+ plan_itransform! (S:: Jacobi , v:: AbstractVector ) =
33
+ JacobiITransformPlan {true} (plan_itransform! (Chebyshev (), v), plan_jac2cheb (v, S. a, S. b))
34
+ icjt (P, cfs, :: Val{true} ) = lmul! (P, cfs)
35
+ icjt (P, cfs, :: Val{false} ) = P * cfs
36
+ function * (P:: JacobiITransformPlan , cfs:: AbstractVector )
37
+ P. ichebplan * icjt (P. icjtplan, cfs, Val (inplace (P)))
38
+ end
30
39
31
40
32
41
function coefficients (f:: AbstractVector{T} , a:: Jacobi , b:: Chebyshev ) where T
0 commit comments