@@ -500,6 +500,11 @@ plan_itransform!(sp::Space,v) = ICanonicalTransformPlan(sp, v, Val(true))
500
500
# transform converts from values at points(S,n) to coefficients
501
501
# itransform converts from coefficients to values at points(S,n)
502
502
503
+ # convert to strided arrays, as currently the inverse performs inplace scaling
504
+ # ideally, this should not be needed if FastTransforms avoids modifying cfs
505
+ _toStridedArray (cfs:: StridedArray ) = cfs
506
+ _toStridedArray (cfs:: AbstractArray ) = convert (Array, cfs)
507
+
503
508
"""
504
509
transform(s::Space, vals)
505
510
@@ -529,7 +534,7 @@ julia> transform(Chebyshev(), v)
529
534
0.0
530
535
```
531
536
"""
532
- transform (S:: Space , vals) = plan_transform (S,vals)* vals
537
+ transform (S:: Space , vals) = plan_transform (S,vals)* _toStridedArray ( vals)
533
538
534
539
"""
535
540
itransform(s::Space,coefficients::AbstractVector)
@@ -551,7 +556,7 @@ julia> itransform(Chebyshev(), [0.5, 0, 0.5])
551
556
0.75
552
557
```
553
558
"""
554
- itransform (S:: Space , cfs) = plan_itransform (S,cfs)* cfs
559
+ itransform (S:: Space , cfs) = plan_itransform (S,cfs)* _toStridedArray ( cfs)
555
560
556
561
itransform! (S:: Space ,cfs) = plan_itransform! (S,cfs)* cfs
557
562
transform! (S:: Space ,cfs) = plan_transform! (S,cfs)* cfs
0 commit comments