@@ -833,68 +833,58 @@ for (fJ, fC) in ((:lmul!, :ft_mpfr_trmm_ptr),
833
833
end
834
834
end
835
835
836
- for (fJ, fC, K) in ((:lmul! , :ft_execute_sph2fourier , SPHERE),
837
- (:ldiv! , :ft_execute_fourier2sph , SPHERE),
838
- (:lmul! , :ft_execute_sphv2fourier , SPHEREV),
839
- (:ldiv! , :ft_execute_fourier2sphv , SPHEREV))
836
+ for (fJ, fC, T, N, K) in ((:lmul! , :ft_execute_sph2fourier , Float64, 2 , SPHERE),
837
+ (:ldiv! , :ft_execute_fourier2sph , Float64, 2 , SPHERE),
838
+ (:lmul! , :ft_execute_sphv2fourier , Float64, 2 , SPHEREV),
839
+ (:ldiv! , :ft_execute_fourier2sphv , Float64, 2 , SPHEREV),
840
+ (:lmul! , :ft_execute_spinsph2fourier , Complex{Float64}, 2 , SPINSPHERE),
841
+ (:ldiv! , :ft_execute_fourier2spinsph , Complex{Float64}, 2 , SPINSPHERE),
842
+ (:lmul! , :ft_execute_disk2cxf , Float64, 2 , DISK),
843
+ (:ldiv! , :ft_execute_cxf2disk , Float64, 2 , DISK),
844
+ (:lmul! , :ft_execute_rectdisk2cheb , Float64, 2 , RECTDISK),
845
+ (:ldiv! , :ft_execute_cheb2rectdisk , Float64, 2 , RECTDISK),
846
+ (:lmul! , :ft_execute_tri2cheb , Float64, 2 , TRIANGLE),
847
+ (:ldiv! , :ft_execute_cheb2tri , Float64, 2 , TRIANGLE))
840
848
@eval begin
841
- function $fJ (p:: FTPlan{Float64, 2 , $K} , x:: Matrix{Float64 } )
849
+ function $fJ (p:: FTPlan{$T, $N , $K} , x:: Array{$T, $N } )
842
850
checksize (p, x)
843
- ccall (($ (string (fC)), libfasttransforms), Cvoid, (Cint, Ptr{ft_plan_struct}, Ptr{Float64 }, Cint, Cint), ' N' , p, x, size (x, 1 ), size (x, 2 ) )
851
+ ccall (($ (string (fC)), libfasttransforms), Cvoid, (Cint, Ptr{ft_plan_struct}, Ptr{$ T }, Cint, Cint), ' N' , p, x, size (x) ... )
844
852
return x
845
853
end
846
- function $fJ (p:: AdjointFTPlan{Float64 , FTPlan{Float64, 2 , $K}} , x:: Matrix{Float64 } )
854
+ function $fJ (p:: AdjointFTPlan{$T , FTPlan{$T, $N , $K}} , x:: Array{$T, $N } )
847
855
checksize (p, x)
848
- ccall (($ (string (fC)), libfasttransforms), Cvoid, (Cint, Ptr{ft_plan_struct}, Ptr{Float64 }, Cint, Cint), ' T' , p, x, size (x, 1 ), size (x, 2 ) )
856
+ ccall (($ (string (fC)), libfasttransforms), Cvoid, (Cint, Ptr{ft_plan_struct}, Ptr{$ T }, Cint, Cint), ' T' , p, x, size (x) ... )
849
857
return x
850
858
end
851
- function $fJ (p:: TransposeFTPlan{Float64 , FTPlan{Float64, 2 , $K}} , x:: Matrix{Float64 } )
859
+ function $fJ (p:: TransposeFTPlan{$T , FTPlan{$T, $N , $K}} , x:: Array{$T, $N } )
852
860
checksize (p, x)
853
- ccall (($ (string (fC)), libfasttransforms), Cvoid, (Cint, Ptr{ft_plan_struct}, Ptr{Float64 }, Cint, Cint), ' T' , p, x, size (x, 1 ), size (x, 2 ) )
861
+ ccall (($ (string (fC)), libfasttransforms), Cvoid, (Cint, Ptr{ft_plan_struct}, Ptr{$ T }, Cint, Cint), ' T' , p, x, size (x) ... )
854
862
return x
855
863
end
856
864
end
857
865
end
858
866
859
- for (fJ, fC, K) in ((:lmul! , :ft_execute_disk2cxf , DISK),
860
- (:ldiv! , :ft_execute_cxf2disk , DISK),
861
- (:lmul! , :ft_execute_rectdisk2cheb , RECTDISK),
862
- (:ldiv! , :ft_execute_cheb2rectdisk , RECTDISK),
863
- (:lmul! , :ft_execute_tri2cheb , TRIANGLE),
864
- (:ldiv! , :ft_execute_cheb2tri , TRIANGLE))
867
+ for (fJ, fC) in ((:lmul! , :ft_execute_tet2cheb ),
868
+ (:ldiv! , :ft_execute_cheb2tet ))
865
869
@eval begin
866
- function $fJ (p:: FTPlan{Float64, 2, $K } , x:: Matrix {Float64} )
870
+ function $fJ (p:: FTPlan{Float64, 3, TETRAHEDRON } , x:: Array {Float64, 3 } )
867
871
checksize (p, x)
868
- ccall (($ (string (fC)), libfasttransforms), Cvoid, (Ptr{ft_plan_struct}, Ptr{Float64}, Cint, Cint), p, x, size (x, 1 ), size (x, 2 ))
872
+ ccall (($ (string (fC)), libfasttransforms), Cvoid, (Cint, Ptr{ft_plan_struct}, Ptr{Float64}, Cint, Cint, Cint), ' N' , p, x, size (x)... )
873
+ return x
874
+ end
875
+ function $fJ (p:: AdjointFTPlan{Float64, FTPlan{Float64, 3, TETRAHEDRON}} , x:: Array{Float64, 3} )
876
+ checksize (p, x)
877
+ ccall (($ (string (fC)), libfasttransforms), Cvoid, (Cint, Ptr{ft_plan_struct}, Ptr{Float64}, Cint, Cint, Cint), ' T' , p, x, size (x)... )
878
+ return x
879
+ end
880
+ function $fJ (p:: TransposeFTPlan{Float64, FTPlan{Float64, 3, TETRAHEDRON}} , x:: Array{Float64, 3} )
881
+ checksize (p, x)
882
+ ccall (($ (string (fC)), libfasttransforms), Cvoid, (Cint, Ptr{ft_plan_struct}, Ptr{Float64}, Cint, Cint, Cint), ' T' , p, x, size (x)... )
869
883
return x
870
884
end
871
885
end
872
886
end
873
887
874
- function lmul! (p:: FTPlan{Float64, 3, TETRAHEDRON} , x:: Array{Float64, 3} )
875
- checksize (p, x)
876
- ccall ((:ft_execute_tet2cheb , libfasttransforms), Cvoid, (Ptr{ft_plan_struct}, Ptr{Float64}, Cint, Cint, Cint), p, x, size (x, 1 ), size (x, 2 ), size (x, 3 ))
877
- return x
878
- end
879
-
880
- function ldiv! (p:: FTPlan{Float64, 3, TETRAHEDRON} , x:: Array{Float64, 3} )
881
- checksize (p, x)
882
- ccall ((:ft_execute_cheb2tet , libfasttransforms), Cvoid, (Ptr{ft_plan_struct}, Ptr{Float64}, Cint, Cint, Cint), p, x, size (x, 1 ), size (x, 2 ), size (x, 3 ))
883
- return x
884
- end
885
-
886
- function lmul! (p:: FTPlan{Complex{Float64}, 2, SPINSPHERE} , x:: Matrix{Complex{Float64}} )
887
- checksize (p, x)
888
- ccall ((:ft_execute_spinsph2fourier , libfasttransforms), Cvoid, (Ptr{ft_plan_struct}, Ptr{Complex{Float64}}, Cint, Cint), p, x, size (x, 1 ), size (x, 2 ))
889
- return x
890
- end
891
-
892
- function ldiv! (p:: FTPlan{Complex{Float64}, 2, SPINSPHERE} , x:: Matrix{Complex{Float64}} )
893
- checksize (p, x)
894
- ccall ((:ft_execute_fourier2spinsph , libfasttransforms), Cvoid, (Ptr{ft_plan_struct}, Ptr{Complex{Float64}}, Cint, Cint), p, x, size (x, 1 ), size (x, 2 ))
895
- return x
896
- end
897
-
898
888
function execute_sph_polar_rotation! (x:: Matrix{Float64} , α)
899
889
ccall ((:ft_execute_sph_polar_rotation , libfasttransforms), Cvoid, (Ptr{Float64}, Cint, Cint, Float64, Float64), x, size (x, 1 ), size (x, 2 ), sin (α), cos (α))
900
890
return x
0 commit comments