@@ -230,11 +230,9 @@ function checksize(p::FTPlan{T, 1}, x::StridedArray{T}) where T
230
230
end
231
231
end
232
232
233
- function checkstrides (p:: FTPlan{T, 1} , x:: StridedArray{T} ) where T
234
- sz = size (x)
235
- st = strides (x)
236
- if (1 , cumprod (sz)... ) != (st... , length (x))
237
- error (" FTPlan requires unit strides, x has strides $(strides (x)) " )
233
+ function checkstride (p:: FTPlan{T, 1} , x:: StridedArray{T} ) where T
234
+ if stride (x, 1 ) != 1
235
+ error (" FTPlan requires unit stride in the leading dimension, x has stride $(stride (x, 1 )) in the leading dimension." )
238
236
end
239
237
end
240
238
@@ -336,11 +334,11 @@ function checksize(p::AdjointFTPlan, x)
336
334
end
337
335
end
338
336
339
- function checkstrides (p:: AdjointFTPlan , x)
337
+ function checkstride (p:: AdjointFTPlan , x)
340
338
try
341
- checkstrides (p. adjoint, x)
339
+ checkstride (p. adjoint, x)
342
340
catch
343
- checkstrides (p. parent, x)
341
+ checkstride (p. parent, x)
344
342
end
345
343
end
346
344
@@ -392,11 +390,11 @@ function checksize(p::TransposeFTPlan, x)
392
390
end
393
391
end
394
392
395
- function checkstrides (p:: TransposeFTPlan , x)
393
+ function checkstride (p:: TransposeFTPlan , x)
396
394
try
397
- checkstrides (p. transpose, x)
395
+ checkstride (p. transpose, x)
398
396
catch
399
- checkstrides (p. parent, x)
397
+ checkstride (p. parent, x)
400
398
end
401
399
end
402
400
@@ -832,19 +830,19 @@ for (fJ, fC, elty) in ((:lmul!, :ft_bfmvf, :Float32),
832
830
@eval begin
833
831
function $fJ (p:: FTPlan{$elty, 1} , x:: StridedVector{$elty} )
834
832
checksize (p, x)
835
- checkstrides (p, x)
833
+ checkstride (p, x)
836
834
ccall (($ (string (fC)), libfasttransforms), Cvoid, (Cint, Ptr{ft_plan_struct}, Ptr{$ elty}), ' N' , p, x)
837
835
return x
838
836
end
839
837
function $fJ (p:: AdjointFTPlan{$elty, FTPlan{$elty, 1, K}} , x:: StridedVector{$elty} ) where K
840
838
checksize (p, x)
841
- checkstrides (p, x)
839
+ checkstride (p, x)
842
840
ccall (($ (string (fC)), libfasttransforms), Cvoid, (Cint, Ptr{ft_plan_struct}, Ptr{$ elty}), ' T' , p, x)
843
841
return x
844
842
end
845
843
function $fJ (p:: TransposeFTPlan{$elty, FTPlan{$elty, 1, K}} , x:: StridedVector{$elty} ) where K
846
844
checksize (p, x)
847
- checkstrides (p, x)
845
+ checkstride (p, x)
848
846
ccall (($ (string (fC)), libfasttransforms), Cvoid, (Cint, Ptr{ft_plan_struct}, Ptr{$ elty}), ' T' , p, x)
849
847
return x
850
848
end
@@ -856,19 +854,19 @@ for (fJ, fC, elty) in ((:lmul!, :ft_bbbfmvf, :Float32),
856
854
@eval begin
857
855
function $fJ (p:: FTPlan{$elty, 1, ASSOCIATEDJAC2JAC} , x:: StridedVector{$elty} )
858
856
checksize (p, x)
859
- checkstrides (p, x)
857
+ checkstride (p, x)
860
858
ccall (($ (string (fC)), libfasttransforms), Cvoid, (Cint, Cint, Cint, Ptr{ft_plan_struct}, Ptr{$ elty}), ' N' , ' 2' , ' 1' , p, x)
861
859
return x
862
860
end
863
861
function $fJ (p:: AdjointFTPlan{$elty, FTPlan{$elty, 1, ASSOCIATEDJAC2JAC}} , x:: StridedVector{$elty} )
864
862
checksize (p, x)
865
- checkstrides (p, x)
863
+ checkstride (p, x)
866
864
ccall (($ (string (fC)), libfasttransforms), Cvoid, (Cint, Cint, Cint, Ptr{ft_plan_struct}, Ptr{$ elty}), ' T' , ' 1' , ' 2' , p, x)
867
865
return x
868
866
end
869
867
function $fJ (p:: TransposeFTPlan{$elty, FTPlan{$elty, 1, ASSOCIATEDJAC2JAC}} , x:: StridedVector{$elty} )
870
868
checksize (p, x)
871
- checkstrides (p, x)
869
+ checkstride (p, x)
872
870
ccall (($ (string (fC)), libfasttransforms), Cvoid, (Cint, Cint, Cint, Ptr{ft_plan_struct}, Ptr{$ elty}), ' T' , ' 1' , ' 2' , p, x)
873
871
return x
874
872
end
@@ -880,19 +878,19 @@ for (fJ, fC, elty) in ((:lmul!, :ft_mpmv, :Float64),
880
878
@eval begin
881
879
function $fJ (p:: ModifiedFTPlan{$elty} , x:: StridedVector{$elty} )
882
880
checksize (p, x)
883
- checkstrides (p, x)
881
+ checkstride (p, x)
884
882
ccall (($ (string (fC)), libfasttransforms), Cvoid, (Cint, Ptr{ft_plan_struct}, Ptr{$ elty}), ' N' , p, x)
885
883
return x
886
884
end
887
885
function $fJ (p:: AdjointFTPlan{$elty, ModifiedFTPlan{$elty}} , x:: StridedVector{$elty} )
888
886
checksize (p, x)
889
- checkstrides (p, x)
887
+ checkstride (p, x)
890
888
ccall (($ (string (fC)), libfasttransforms), Cvoid, (Cint, Ptr{ft_plan_struct}, Ptr{$ elty}), ' T' , p, x)
891
889
return x
892
890
end
893
891
function $fJ (p:: TransposeFTPlan{$elty, ModifiedFTPlan{$elty}} , x:: StridedVector{$elty} )
894
892
checksize (p, x)
895
- checkstrides (p, x)
893
+ checkstride (p, x)
896
894
ccall (($ (string (fC)), libfasttransforms), Cvoid, (Cint, Ptr{ft_plan_struct}, Ptr{$ elty}), ' T' , p, x)
897
895
return x
898
896
end
@@ -904,19 +902,19 @@ for (fJ, fC) in ((:lmul!, :ft_mpfr_trmv_ptr),
904
902
@eval begin
905
903
function $fJ (p:: FTPlan{BigFloat, 1} , x:: StridedVector{BigFloat} )
906
904
checksize (p, x)
907
- checkstrides (p, x)
905
+ checkstride (p, x)
908
906
ccall (($ (string (fC)), libfasttransforms), Cvoid, (Cint, Cint, Ptr{mpfr_t}, Cint, Ptr{BigFloat}, Int32), ' N' , p. n, p, p. n, renew! (x), Base. MPFR. ROUNDING_MODE[])
909
907
return x
910
908
end
911
909
function $fJ (p:: AdjointFTPlan{BigFloat, FTPlan{BigFloat, 1, K}} , x:: StridedVector{BigFloat} ) where K
912
910
checksize (p, x)
913
- checkstrides (p, x)
911
+ checkstride (p, x)
914
912
ccall (($ (string (fC)), libfasttransforms), Cvoid, (Cint, Cint, Ptr{mpfr_t}, Cint, Ptr{BigFloat}, Int32), ' T' , p. parent. n, p, p. parent. n, renew! (x), Base. MPFR. ROUNDING_MODE[])
915
913
return x
916
914
end
917
915
function $fJ (p:: TransposeFTPlan{BigFloat, FTPlan{BigFloat, 1, K}} , x:: StridedVector{BigFloat} ) where K
918
916
checksize (p, x)
919
- checkstrides (p, x)
917
+ checkstride (p, x)
920
918
ccall (($ (string (fC)), libfasttransforms), Cvoid, (Cint, Cint, Ptr{mpfr_t}, Cint, Ptr{BigFloat}, Int32), ' T' , p. parent. n, p, p. parent. n, renew! (x), Base. MPFR. ROUNDING_MODE[])
921
919
return x
922
920
end
@@ -930,20 +928,20 @@ for (fJ, fC, elty) in ((:lmul!, :ft_bfmmf, :Float32),
930
928
@eval begin
931
929
function $fJ (p:: FTPlan{$elty, 1} , x:: StridedMatrix{$elty} )
932
930
checksize (p, x)
933
- checkstrides (p, x)
934
- ccall (($ (string (fC)), libfasttransforms), Cvoid, (Cint, Ptr{ft_plan_struct}, Ptr{$ elty}, Cint, Cint), ' N' , p, x, size (x, 1 ), size (x, 2 ))
931
+ checkstride (p, x)
932
+ ccall (($ (string (fC)), libfasttransforms), Cvoid, (Cint, Ptr{ft_plan_struct}, Ptr{$ elty}, Cint, Cint), ' N' , p, x, stride (x, 2 ), size (x, 2 ))
935
933
return x
936
934
end
937
935
function $fJ (p:: AdjointFTPlan{$elty, FTPlan{$elty, 1, K}} , x:: StridedMatrix{$elty} ) where K
938
936
checksize (p, x)
939
- checkstrides (p, x)
940
- ccall (($ (string (fC)), libfasttransforms), Cvoid, (Cint, Ptr{ft_plan_struct}, Ptr{$ elty}, Cint, Cint), ' T' , p, x, size (x, 1 ), size (x, 2 ))
937
+ checkstride (p, x)
938
+ ccall (($ (string (fC)), libfasttransforms), Cvoid, (Cint, Ptr{ft_plan_struct}, Ptr{$ elty}, Cint, Cint), ' T' , p, x, stride (x, 2 ), size (x, 2 ))
941
939
return x
942
940
end
943
941
function $fJ (p:: TransposeFTPlan{$elty, FTPlan{$elty, 1, K}} , x:: StridedMatrix{$elty} ) where K
944
942
checksize (p, x)
945
- checkstrides (p, x)
946
- ccall (($ (string (fC)), libfasttransforms), Cvoid, (Cint, Ptr{ft_plan_struct}, Ptr{$ elty}, Cint, Cint), ' T' , p, x, size (x, 1 ), size (x, 2 ))
943
+ checkstride (p, x)
944
+ ccall (($ (string (fC)), libfasttransforms), Cvoid, (Cint, Ptr{ft_plan_struct}, Ptr{$ elty}, Cint, Cint), ' T' , p, x, stride (x, 2 ), size (x, 2 ))
947
945
return x
948
946
end
949
947
end
@@ -954,20 +952,20 @@ for (fJ, fC, elty) in ((:lmul!, :ft_bbbfmmf, :Float32),
954
952
@eval begin
955
953
function $fJ (p:: FTPlan{$elty, 1, ASSOCIATEDJAC2JAC} , x:: StridedMatrix{$elty} )
956
954
checksize (p, x)
957
- checkstrides (p, x)
958
- ccall (($ (string (fC)), libfasttransforms), Cvoid, (Cint, Cint, Cint, Ptr{ft_plan_struct}, Ptr{$ elty}, Cint, Cint), ' N' , ' 2' , ' 1' , p, x, size (x, 1 ), size (x, 2 ))
955
+ checkstride (p, x)
956
+ ccall (($ (string (fC)), libfasttransforms), Cvoid, (Cint, Cint, Cint, Ptr{ft_plan_struct}, Ptr{$ elty}, Cint, Cint), ' N' , ' 2' , ' 1' , p, x, stride (x, 2 ), size (x, 2 ))
959
957
return x
960
958
end
961
959
function $fJ (p:: AdjointFTPlan{$elty, FTPlan{$elty, 1, ASSOCIATEDJAC2JAC}} , x:: StridedMatrix{$elty} )
962
960
checksize (p, x)
963
- checkstrides (p, x)
964
- ccall (($ (string (fC)), libfasttransforms), Cvoid, (Cint, Cint, Cint, Ptr{ft_plan_struct}, Ptr{$ elty}, Cint, Cint), ' T' , ' 1' , ' 2' , p, x, size (x, 1 ), size (x, 2 ))
961
+ checkstride (p, x)
962
+ ccall (($ (string (fC)), libfasttransforms), Cvoid, (Cint, Cint, Cint, Ptr{ft_plan_struct}, Ptr{$ elty}, Cint, Cint), ' T' , ' 1' , ' 2' , p, x, stride (x, 2 ), size (x, 2 ))
965
963
return x
966
964
end
967
965
function $fJ (p:: TransposeFTPlan{$elty, FTPlan{$elty, 1, ASSOCIATEDJAC2JAC}} , x:: StridedMatrix{$elty} )
968
966
checksize (p, x)
969
- checkstrides (p, x)
970
- ccall (($ (string (fC)), libfasttransforms), Cvoid, (Cint, Cint, Cint, Ptr{ft_plan_struct}, Ptr{$ elty}, Cint, Cint), ' T' , ' 1' , ' 2' , p, x, size (x, 1 ), size (x, 2 ))
967
+ checkstride (p, x)
968
+ ccall (($ (string (fC)), libfasttransforms), Cvoid, (Cint, Cint, Cint, Ptr{ft_plan_struct}, Ptr{$ elty}, Cint, Cint), ' T' , ' 1' , ' 2' , p, x, stride (x, 2 ), size (x, 2 ))
971
969
return x
972
970
end
973
971
end
@@ -978,20 +976,20 @@ for (fJ, fC, elty) in ((:lmul!, :ft_mpmm, :Float64),
978
976
@eval begin
979
977
function $fJ (p:: ModifiedFTPlan{$elty} , x:: StridedMatrix{$elty} )
980
978
checksize (p, x)
981
- checkstrides (p, x)
982
- ccall (($ (string (fC)), libfasttransforms), Cvoid, (Cint, Ptr{ft_plan_struct}, Ptr{$ elty}, Cint, Cint), ' N' , p, x, size (x, 1 ), size (x, 2 ))
979
+ checkstride (p, x)
980
+ ccall (($ (string (fC)), libfasttransforms), Cvoid, (Cint, Ptr{ft_plan_struct}, Ptr{$ elty}, Cint, Cint), ' N' , p, x, stride (x, 2 ), size (x, 2 ))
983
981
return x
984
982
end
985
983
function $fJ (p:: AdjointFTPlan{$elty, ModifiedFTPlan{$elty}} , x:: StridedMatrix{$elty} )
986
984
checksize (p, x)
987
- checkstrides (p, x)
988
- ccall (($ (string (fC)), libfasttransforms), Cvoid, (Cint, Ptr{ft_plan_struct}, Ptr{$ elty}, Cint, Cint), ' T' , p, x, size (x, 1 ), size (x, 2 ))
985
+ checkstride (p, x)
986
+ ccall (($ (string (fC)), libfasttransforms), Cvoid, (Cint, Ptr{ft_plan_struct}, Ptr{$ elty}, Cint, Cint), ' T' , p, x, stride (x, 2 ), size (x, 2 ))
989
987
return x
990
988
end
991
989
function $fJ (p:: TransposeFTPlan{$elty, ModifiedFTPlan{$elty}} , x:: StridedMatrix{$elty} )
992
990
checksize (p, x)
993
- checkstrides (p, x)
994
- ccall (($ (string (fC)), libfasttransforms), Cvoid, (Cint, Ptr{ft_plan_struct}, Ptr{$ elty}, Cint, Cint), ' T' , p, x, size (x, 1 ), size (x, 2 ))
991
+ checkstride (p, x)
992
+ ccall (($ (string (fC)), libfasttransforms), Cvoid, (Cint, Ptr{ft_plan_struct}, Ptr{$ elty}, Cint, Cint), ' T' , p, x, stride (x, 2 ), size (x, 2 ))
995
993
return x
996
994
end
997
995
end
@@ -1002,20 +1000,20 @@ for (fJ, fC) in ((:lmul!, :ft_mpfr_trmm_ptr),
1002
1000
@eval begin
1003
1001
function $fJ (p:: FTPlan{BigFloat, 1} , x:: StridedMatrix{BigFloat} )
1004
1002
checksize (p, x)
1005
- checkstrides (p, x)
1006
- ccall (($ (string (fC)), libfasttransforms), Cvoid, (Cint, Cint, Ptr{mpfr_t}, Cint, Ptr{BigFloat}, Cint, Cint, Int32), ' N' , p. n, p, p. n, renew! (x), size (x, 1 ), size (x, 2 ), Base. MPFR. ROUNDING_MODE[])
1003
+ checkstride (p, x)
1004
+ ccall (($ (string (fC)), libfasttransforms), Cvoid, (Cint, Cint, Ptr{mpfr_t}, Cint, Ptr{BigFloat}, Cint, Cint, Int32), ' N' , p. n, p, p. n, renew! (x), stride (x, 2 ), size (x, 2 ), Base. MPFR. ROUNDING_MODE[])
1007
1005
return x
1008
1006
end
1009
1007
function $fJ (p:: AdjointFTPlan{BigFloat, FTPlan{BigFloat, 1, K}} , x:: StridedMatrix{BigFloat} ) where K
1010
1008
checksize (p, x)
1011
- checkstrides (p, x)
1012
- ccall (($ (string (fC)), libfasttransforms), Cvoid, (Cint, Cint, Ptr{mpfr_t}, Cint, Ptr{BigFloat}, Cint, Cint, Int32), ' T' , p. parent. n, p, p. parent. n, renew! (x), size (x, 1 ), size (x, 2 ), Base. MPFR. ROUNDING_MODE[])
1009
+ checkstride (p, x)
1010
+ ccall (($ (string (fC)), libfasttransforms), Cvoid, (Cint, Cint, Ptr{mpfr_t}, Cint, Ptr{BigFloat}, Cint, Cint, Int32), ' T' , p. parent. n, p, p. parent. n, renew! (x), stride (x, 2 ), size (x, 2 ), Base. MPFR. ROUNDING_MODE[])
1013
1011
return x
1014
1012
end
1015
1013
function $fJ (p:: TransposeFTPlan{BigFloat, FTPlan{BigFloat, 1, K}} , x:: StridedMatrix{BigFloat} ) where K
1016
1014
checksize (p, x)
1017
- checkstrides (p, x)
1018
- ccall (($ (string (fC)), libfasttransforms), Cvoid, (Cint, Cint, Ptr{mpfr_t}, Cint, Ptr{BigFloat}, Cint, Cint, Int32), ' T' , p. parent. n, p, p. parent. n, renew! (x), size (x, 1 ), size (x, 2 ), Base. MPFR. ROUNDING_MODE[])
1015
+ checkstride (p, x)
1016
+ ccall (($ (string (fC)), libfasttransforms), Cvoid, (Cint, Cint, Ptr{mpfr_t}, Cint, Ptr{BigFloat}, Cint, Cint, Int32), ' T' , p. parent. n, p, p. parent. n, renew! (x), stride (x, 2 ), size (x, 2 ), Base. MPFR. ROUNDING_MODE[])
1019
1017
return x
1020
1018
end
1021
1019
end
0 commit comments