@@ -230,11 +230,9 @@ function checksize(p::FTPlan{T, 1}, x::StridedArray{T}) where T
230230 end
231231end
232232
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." )
238236 end
239237end
240238
@@ -336,11 +334,11 @@ function checksize(p::AdjointFTPlan, x)
336334 end
337335end
338336
339- function checkstrides (p:: AdjointFTPlan , x)
337+ function checkstride (p:: AdjointFTPlan , x)
340338 try
341- checkstrides (p. adjoint, x)
339+ checkstride (p. adjoint, x)
342340 catch
343- checkstrides (p. parent, x)
341+ checkstride (p. parent, x)
344342 end
345343end
346344
@@ -392,11 +390,11 @@ function checksize(p::TransposeFTPlan, x)
392390 end
393391end
394392
395- function checkstrides (p:: TransposeFTPlan , x)
393+ function checkstride (p:: TransposeFTPlan , x)
396394 try
397- checkstrides (p. transpose, x)
395+ checkstride (p. transpose, x)
398396 catch
399- checkstrides (p. parent, x)
397+ checkstride (p. parent, x)
400398 end
401399end
402400
@@ -832,19 +830,19 @@ for (fJ, fC, elty) in ((:lmul!, :ft_bfmvf, :Float32),
832830 @eval begin
833831 function $fJ (p:: FTPlan{$elty, 1} , x:: StridedVector{$elty} )
834832 checksize (p, x)
835- checkstrides (p, x)
833+ checkstride (p, x)
836834 ccall (($ (string (fC)), libfasttransforms), Cvoid, (Cint, Ptr{ft_plan_struct}, Ptr{$ elty}), ' N' , p, x)
837835 return x
838836 end
839837 function $fJ (p:: AdjointFTPlan{$elty, FTPlan{$elty, 1, K}} , x:: StridedVector{$elty} ) where K
840838 checksize (p, x)
841- checkstrides (p, x)
839+ checkstride (p, x)
842840 ccall (($ (string (fC)), libfasttransforms), Cvoid, (Cint, Ptr{ft_plan_struct}, Ptr{$ elty}), ' T' , p, x)
843841 return x
844842 end
845843 function $fJ (p:: TransposeFTPlan{$elty, FTPlan{$elty, 1, K}} , x:: StridedVector{$elty} ) where K
846844 checksize (p, x)
847- checkstrides (p, x)
845+ checkstride (p, x)
848846 ccall (($ (string (fC)), libfasttransforms), Cvoid, (Cint, Ptr{ft_plan_struct}, Ptr{$ elty}), ' T' , p, x)
849847 return x
850848 end
@@ -856,19 +854,19 @@ for (fJ, fC, elty) in ((:lmul!, :ft_bbbfmvf, :Float32),
856854 @eval begin
857855 function $fJ (p:: FTPlan{$elty, 1, ASSOCIATEDJAC2JAC} , x:: StridedVector{$elty} )
858856 checksize (p, x)
859- checkstrides (p, x)
857+ checkstride (p, x)
860858 ccall (($ (string (fC)), libfasttransforms), Cvoid, (Cint, Cint, Cint, Ptr{ft_plan_struct}, Ptr{$ elty}), ' N' , ' 2' , ' 1' , p, x)
861859 return x
862860 end
863861 function $fJ (p:: AdjointFTPlan{$elty, FTPlan{$elty, 1, ASSOCIATEDJAC2JAC}} , x:: StridedVector{$elty} )
864862 checksize (p, x)
865- checkstrides (p, x)
863+ checkstride (p, x)
866864 ccall (($ (string (fC)), libfasttransforms), Cvoid, (Cint, Cint, Cint, Ptr{ft_plan_struct}, Ptr{$ elty}), ' T' , ' 1' , ' 2' , p, x)
867865 return x
868866 end
869867 function $fJ (p:: TransposeFTPlan{$elty, FTPlan{$elty, 1, ASSOCIATEDJAC2JAC}} , x:: StridedVector{$elty} )
870868 checksize (p, x)
871- checkstrides (p, x)
869+ checkstride (p, x)
872870 ccall (($ (string (fC)), libfasttransforms), Cvoid, (Cint, Cint, Cint, Ptr{ft_plan_struct}, Ptr{$ elty}), ' T' , ' 1' , ' 2' , p, x)
873871 return x
874872 end
@@ -880,19 +878,19 @@ for (fJ, fC, elty) in ((:lmul!, :ft_mpmv, :Float64),
880878 @eval begin
881879 function $fJ (p:: ModifiedFTPlan{$elty} , x:: StridedVector{$elty} )
882880 checksize (p, x)
883- checkstrides (p, x)
881+ checkstride (p, x)
884882 ccall (($ (string (fC)), libfasttransforms), Cvoid, (Cint, Ptr{ft_plan_struct}, Ptr{$ elty}), ' N' , p, x)
885883 return x
886884 end
887885 function $fJ (p:: AdjointFTPlan{$elty, ModifiedFTPlan{$elty}} , x:: StridedVector{$elty} )
888886 checksize (p, x)
889- checkstrides (p, x)
887+ checkstride (p, x)
890888 ccall (($ (string (fC)), libfasttransforms), Cvoid, (Cint, Ptr{ft_plan_struct}, Ptr{$ elty}), ' T' , p, x)
891889 return x
892890 end
893891 function $fJ (p:: TransposeFTPlan{$elty, ModifiedFTPlan{$elty}} , x:: StridedVector{$elty} )
894892 checksize (p, x)
895- checkstrides (p, x)
893+ checkstride (p, x)
896894 ccall (($ (string (fC)), libfasttransforms), Cvoid, (Cint, Ptr{ft_plan_struct}, Ptr{$ elty}), ' T' , p, x)
897895 return x
898896 end
@@ -904,19 +902,19 @@ for (fJ, fC) in ((:lmul!, :ft_mpfr_trmv_ptr),
904902 @eval begin
905903 function $fJ (p:: FTPlan{BigFloat, 1} , x:: StridedVector{BigFloat} )
906904 checksize (p, x)
907- checkstrides (p, x)
905+ checkstride (p, x)
908906 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[])
909907 return x
910908 end
911909 function $fJ (p:: AdjointFTPlan{BigFloat, FTPlan{BigFloat, 1, K}} , x:: StridedVector{BigFloat} ) where K
912910 checksize (p, x)
913- checkstrides (p, x)
911+ checkstride (p, x)
914912 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[])
915913 return x
916914 end
917915 function $fJ (p:: TransposeFTPlan{BigFloat, FTPlan{BigFloat, 1, K}} , x:: StridedVector{BigFloat} ) where K
918916 checksize (p, x)
919- checkstrides (p, x)
917+ checkstride (p, x)
920918 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[])
921919 return x
922920 end
@@ -930,20 +928,20 @@ for (fJ, fC, elty) in ((:lmul!, :ft_bfmmf, :Float32),
930928 @eval begin
931929 function $fJ (p:: FTPlan{$elty, 1} , x:: StridedMatrix{$elty} )
932930 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 ))
935933 return x
936934 end
937935 function $fJ (p:: AdjointFTPlan{$elty, FTPlan{$elty, 1, K}} , x:: StridedMatrix{$elty} ) where K
938936 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 ))
941939 return x
942940 end
943941 function $fJ (p:: TransposeFTPlan{$elty, FTPlan{$elty, 1, K}} , x:: StridedMatrix{$elty} ) where K
944942 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 ))
947945 return x
948946 end
949947 end
@@ -954,20 +952,20 @@ for (fJ, fC, elty) in ((:lmul!, :ft_bbbfmmf, :Float32),
954952 @eval begin
955953 function $fJ (p:: FTPlan{$elty, 1, ASSOCIATEDJAC2JAC} , x:: StridedMatrix{$elty} )
956954 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 ))
959957 return x
960958 end
961959 function $fJ (p:: AdjointFTPlan{$elty, FTPlan{$elty, 1, ASSOCIATEDJAC2JAC}} , x:: StridedMatrix{$elty} )
962960 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 ))
965963 return x
966964 end
967965 function $fJ (p:: TransposeFTPlan{$elty, FTPlan{$elty, 1, ASSOCIATEDJAC2JAC}} , x:: StridedMatrix{$elty} )
968966 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 ))
971969 return x
972970 end
973971 end
@@ -978,20 +976,20 @@ for (fJ, fC, elty) in ((:lmul!, :ft_mpmm, :Float64),
978976 @eval begin
979977 function $fJ (p:: ModifiedFTPlan{$elty} , x:: StridedMatrix{$elty} )
980978 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 ))
983981 return x
984982 end
985983 function $fJ (p:: AdjointFTPlan{$elty, ModifiedFTPlan{$elty}} , x:: StridedMatrix{$elty} )
986984 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 ))
989987 return x
990988 end
991989 function $fJ (p:: TransposeFTPlan{$elty, ModifiedFTPlan{$elty}} , x:: StridedMatrix{$elty} )
992990 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 ))
995993 return x
996994 end
997995 end
@@ -1002,20 +1000,20 @@ for (fJ, fC) in ((:lmul!, :ft_mpfr_trmm_ptr),
10021000 @eval begin
10031001 function $fJ (p:: FTPlan{BigFloat, 1} , x:: StridedMatrix{BigFloat} )
10041002 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[])
10071005 return x
10081006 end
10091007 function $fJ (p:: AdjointFTPlan{BigFloat, FTPlan{BigFloat, 1, K}} , x:: StridedMatrix{BigFloat} ) where K
10101008 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[])
10131011 return x
10141012 end
10151013 function $fJ (p:: TransposeFTPlan{BigFloat, FTPlan{BigFloat, 1, K}} , x:: StridedMatrix{BigFloat} ) where K
10161014 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[])
10191017 return x
10201018 end
10211019 end
0 commit comments