@@ -56,7 +56,7 @@ function plan_r2r end
5656# # FFT: Implement fft by calling fftw.
5757
5858const version = VersionNumber (split (unsafe_string (cglobal (
59- (:fftw_version ,libfftw3[] ), UInt8)), [' -' , ' ' ])[2 ])
59+ (:fftw_version ,libfftw3 () ), UInt8)), [' -' , ' ' ])[2 ])
6060
6161# # Direction of FFT
6262
@@ -141,32 +141,32 @@ alignment_of(A::FakeArray) = Int32(0)
141141@exclusive function export_wisdom (fname:: AbstractString )
142142 f = ccall (:fopen , Ptr{Cvoid}, (Cstring,Cstring), fname, :w )
143143 systemerror (" could not open wisdom file $fname for writing" , f == C_NULL )
144- ccall ((:fftw_export_wisdom_to_file ,libfftw3[] ), Cvoid, (Ptr{Cvoid},), f)
144+ ccall ((:fftw_export_wisdom_to_file ,libfftw3 () ), Cvoid, (Ptr{Cvoid},), f)
145145 ccall (:fputs , Int32, (Ptr{UInt8},Ptr{Cvoid}), " " ^ 256 , f) # no NUL, hence no Cstring
146- ccall ((:fftwf_export_wisdom_to_file ,libfftw3f[] ), Cvoid, (Ptr{Cvoid},), f)
146+ ccall ((:fftwf_export_wisdom_to_file ,libfftw3f () ), Cvoid, (Ptr{Cvoid},), f)
147147 ccall (:fclose , Cvoid, (Ptr{Cvoid},), f)
148148end
149149
150150@exclusive function import_wisdom (fname:: AbstractString )
151151 f = ccall (:fopen , Ptr{Cvoid}, (Cstring,Cstring), fname, :r )
152152 systemerror (" could not open wisdom file $fname for reading" , f == C_NULL )
153- if ccall ((:fftw_import_wisdom_from_file ,libfftw3[] ),Int32,(Ptr{Cvoid},),f)== 0 ||
154- ccall ((:fftwf_import_wisdom_from_file ,libfftw3f[] ),Int32,(Ptr{Cvoid},),f)== 0
153+ if ccall ((:fftw_import_wisdom_from_file ,libfftw3 () ),Int32,(Ptr{Cvoid},),f)== 0 ||
154+ ccall ((:fftwf_import_wisdom_from_file ,libfftw3f () ),Int32,(Ptr{Cvoid},),f)== 0
155155 error (" failed to import wisdom from $fname " )
156156 end
157157 ccall (:fclose , Cvoid, (Ptr{Cvoid},), f)
158158end
159159
160160@exclusive function import_system_wisdom ()
161- if ccall ((:fftw_import_system_wisdom ,libfftw3[] ), Int32, ()) == 0 ||
162- ccall ((:fftwf_import_system_wisdom ,libfftw3f[] ), Int32, ()) == 0
161+ if ccall ((:fftw_import_system_wisdom ,libfftw3 () ), Int32, ()) == 0 ||
162+ ccall ((:fftwf_import_system_wisdom ,libfftw3f () ), Int32, ()) == 0
163163 error (" failed to import system wisdom" )
164164 end
165165end
166166
167167@exclusive function forget_wisdom ()
168- ccall ((:fftw_forget_wisdom ,libfftw3[] ), Cvoid, ())
169- ccall ((:fftwf_forget_wisdom ,libfftw3f[] ), Cvoid, ())
168+ ccall ((:fftw_forget_wisdom ,libfftw3 () ), Cvoid, ())
169+ ccall ((:fftwf_forget_wisdom ,libfftw3f () ), Cvoid, ())
170170end
171171
172172# Threads
@@ -176,15 +176,15 @@ function _set_num_threads(num_threads::Integer)
176176 @static if fftw_provider == " mkl"
177177 _last_num_threads[] = num_threads
178178 end
179- ccall ((:fftw_plan_with_nthreads ,libfftw3[] ), Cvoid, (Int32,), num_threads)
180- ccall ((:fftwf_plan_with_nthreads ,libfftw3f[] ), Cvoid, (Int32,), num_threads)
179+ ccall ((:fftw_plan_with_nthreads ,libfftw3 () ), Cvoid, (Int32,), num_threads)
180+ ccall ((:fftwf_plan_with_nthreads ,libfftw3f () ), Cvoid, (Int32,), num_threads)
181181end
182182
183183@exclusive set_num_threads (num_threads:: Integer ) = _set_num_threads (num_threads)
184184
185185function get_num_threads ()
186186 @static if fftw_provider == " fftw"
187- ccall ((:fftw_planner_nthreads ,libfftw3[] ), Cint, ())
187+ ccall ((:fftw_planner_nthreads ,libfftw3 () ), Cint, ())
188188 else
189189 _last_num_threads[]
190190 end
@@ -211,9 +211,9 @@ const NO_TIMELIMIT = -1.0 # from fftw3.h
211211
212212# only call these when fftwlock is held:
213213unsafe_set_timelimit (precision:: fftwTypeDouble ,seconds) =
214- ccall ((:fftw_set_timelimit ,libfftw3[] ), Cvoid, (Float64,), seconds)
214+ ccall ((:fftw_set_timelimit ,libfftw3 () ), Cvoid, (Float64,), seconds)
215215unsafe_set_timelimit (precision:: fftwTypeSingle ,seconds) =
216- ccall ((:fftwf_set_timelimit ,libfftw3f[] ), Cvoid, (Float64,), seconds)
216+ ccall ((:fftwf_set_timelimit ,libfftw3f () ), Cvoid, (Float64,), seconds)
217217@exclusive set_timelimit (precision, seconds) = unsafe_set_timelimit (precision, seconds)
218218
219219# Array alignment mod 16:
@@ -234,9 +234,9 @@ unsafe_set_timelimit(precision::fftwTypeSingle,seconds) =
234234 convert (Int32, convert (Int64, pointer (A)) % 16 )
235235else
236236 alignment_of (A:: StridedArray{T} ) where {T<: fftwDouble } =
237- ccall ((:fftw_alignment_of , libfftw3[] ), Int32, (Ptr{T},), A)
237+ ccall ((:fftw_alignment_of , libfftw3 () ), Int32, (Ptr{T},), A)
238238 alignment_of (A:: StridedArray{T} ) where {T<: fftwSingle } =
239- ccall ((:fftwf_alignment_of , libfftw3f[] ), Int32, (Ptr{T},), A)
239+ ccall ((:fftwf_alignment_of , libfftw3f () ), Int32, (Ptr{T},), A)
240240end
241241
242242# FFTWPlan (low-level)
@@ -320,9 +320,9 @@ unsafe_convert(::Type{PlanPtr}, p::FFTWPlan) = p.plan
320320
321321# these functions should only be called while the fftwlock is held
322322unsafe_destroy_plan (@nospecialize (plan:: FFTWPlan{<:fftwDouble} )) =
323- ccall ((:fftw_destroy_plan ,libfftw3[] ), Cvoid, (PlanPtr,), plan)
323+ ccall ((:fftw_destroy_plan ,libfftw3 () ), Cvoid, (PlanPtr,), plan)
324324unsafe_destroy_plan (@nospecialize (plan:: FFTWPlan{<:fftwSingle} )) =
325- ccall ((:fftwf_destroy_plan ,libfftw3f[] ), Cvoid, (PlanPtr,), plan)
325+ ccall ((:fftwf_destroy_plan ,libfftw3f () ), Cvoid, (PlanPtr,), plan)
326326
327327const deferred_destroy_lock = ReentrantLock () # lock protecting the deferred_destroy_plans list
328328const deferred_destroy_plans = FFTWPlan[]
@@ -388,19 +388,19 @@ end
388388# ################################################################################################
389389
390390cost (plan:: FFTWPlan{<:fftwDouble} ) =
391- ccall ((:fftw_cost ,libfftw3[] ), Float64, (PlanPtr,), plan)
391+ ccall ((:fftw_cost ,libfftw3 () ), Float64, (PlanPtr,), plan)
392392cost (plan:: FFTWPlan{<:fftwSingle} ) =
393- ccall ((:fftwf_cost ,libfftw3f[] ), Float64, (PlanPtr,), plan)
393+ ccall ((:fftwf_cost ,libfftw3f () ), Float64, (PlanPtr,), plan)
394394
395395@exclusive function arithmetic_ops (plan:: FFTWPlan{<:fftwDouble} )
396396 add, mul, fma = Ref (0.0 ), Ref (0.0 ), Ref (0.0 )
397- ccall ((:fftw_flops ,libfftw3[] ), Cvoid,
397+ ccall ((:fftw_flops ,libfftw3 () ), Cvoid,
398398 (PlanPtr,Ref{Float64},Ref{Float64},Ref{Float64}), plan, add, mul, fma)
399399 return (round (Int64, add[]), round (Int64, mul[]), round (Int64, fma[]))
400400end
401401@exclusive function arithmetic_ops (plan:: FFTWPlan{<:fftwSingle} )
402402 add, mul, fma = Ref (0.0 ), Ref (0.0 ), Ref (0.0 )
403- ccall ((:fftwf_flops ,libfftw3f[] ), Cvoid,
403+ ccall ((:fftwf_flops ,libfftw3f () ), Cvoid,
404404 (PlanPtr,Ref{Float64},Ref{Float64},Ref{Float64}), plan, add, mul, fma)
405405 return (round (Int64, add[]), round (Int64, mul[]), round (Int64, fma[]))
406406end
@@ -431,9 +431,9 @@ const has_sprint_plan = version >= v"3.3.4" && fftw_provider == "fftw"
431431
432432@static if has_sprint_plan
433433 sprint_plan_ (plan:: FFTWPlan{<:fftwDouble} ) =
434- ccall ((:fftw_sprint_plan ,libfftw3[] ), Ptr{UInt8}, (PlanPtr,), plan)
434+ ccall ((:fftw_sprint_plan ,libfftw3 () ), Ptr{UInt8}, (PlanPtr,), plan)
435435 sprint_plan_ (plan:: FFTWPlan{<:fftwSingle} ) =
436- ccall ((:fftwf_sprint_plan ,libfftw3f[] ), Ptr{UInt8}, (PlanPtr,), plan)
436+ ccall ((:fftwf_sprint_plan ,libfftw3f () ), Ptr{UInt8}, (PlanPtr,), plan)
437437 function sprint_plan (plan:: FFTWPlan )
438438 p = sprint_plan_ (plan)
439439 str = unsafe_string (p)
@@ -515,49 +515,49 @@ _colmajorstrides(p) = ()
515515# Execute
516516
517517unsafe_execute! (plan:: FFTWPlan{<:fftwDouble} ) =
518- ccall ((:fftw_execute ,libfftw3[] ), Cvoid, (PlanPtr,), plan)
518+ ccall ((:fftw_execute ,libfftw3 () ), Cvoid, (PlanPtr,), plan)
519519
520520unsafe_execute! (plan:: FFTWPlan{<:fftwSingle} ) =
521- ccall ((:fftwf_execute ,libfftw3f[] ), Cvoid, (PlanPtr,), plan)
521+ ccall ((:fftwf_execute ,libfftw3f () ), Cvoid, (PlanPtr,), plan)
522522
523523unsafe_execute! (plan:: cFFTWPlan{T} ,
524524 X:: StridedArray{T} , Y:: StridedArray{T} ) where {T<: fftwDouble } =
525- ccall ((:fftw_execute_dft ,libfftw3[] ), Cvoid,
525+ ccall ((:fftw_execute_dft ,libfftw3 () ), Cvoid,
526526 (PlanPtr,Ptr{T},Ptr{T}), plan, X, Y)
527527
528528unsafe_execute! (plan:: cFFTWPlan{T} ,
529529 X:: StridedArray{T} , Y:: StridedArray{T} ) where {T<: fftwSingle } =
530- ccall ((:fftwf_execute_dft ,libfftw3f[] ), Cvoid,
530+ ccall ((:fftwf_execute_dft ,libfftw3f () ), Cvoid,
531531 (PlanPtr,Ptr{T},Ptr{T}), plan, X, Y)
532532
533533unsafe_execute! (plan:: rFFTWPlan{Float64,FORWARD} ,
534534 X:: StridedArray{Float64} , Y:: StridedArray{Complex{Float64}} ) =
535- ccall ((:fftw_execute_dft_r2c ,libfftw3[] ), Cvoid,
535+ ccall ((:fftw_execute_dft_r2c ,libfftw3 () ), Cvoid,
536536 (PlanPtr,Ptr{Float64},Ptr{Complex{Float64}}), plan, X, Y)
537537
538538unsafe_execute! (plan:: rFFTWPlan{Float32,FORWARD} ,
539539 X:: StridedArray{Float32} , Y:: StridedArray{Complex{Float32}} ) =
540- ccall ((:fftwf_execute_dft_r2c ,libfftw3f[] ), Cvoid,
540+ ccall ((:fftwf_execute_dft_r2c ,libfftw3f () ), Cvoid,
541541 (PlanPtr,Ptr{Float32},Ptr{Complex{Float32}}), plan, X, Y)
542542
543543unsafe_execute! (plan:: rFFTWPlan{Complex{Float64},BACKWARD} ,
544544 X:: StridedArray{Complex{Float64}} , Y:: StridedArray{Float64} ) =
545- ccall ((:fftw_execute_dft_c2r ,libfftw3[] ), Cvoid,
545+ ccall ((:fftw_execute_dft_c2r ,libfftw3 () ), Cvoid,
546546 (PlanPtr,Ptr{Complex{Float64}},Ptr{Float64}), plan, X, Y)
547547
548548unsafe_execute! (plan:: rFFTWPlan{Complex{Float32},BACKWARD} ,
549549 X:: StridedArray{Complex{Float32}} , Y:: StridedArray{Float32} ) =
550- ccall ((:fftwf_execute_dft_c2r ,libfftw3f[] ), Cvoid,
550+ ccall ((:fftwf_execute_dft_c2r ,libfftw3f () ), Cvoid,
551551 (PlanPtr,Ptr{Complex{Float32}},Ptr{Float32}), plan, X, Y)
552552
553553unsafe_execute! (plan:: r2rFFTWPlan{T} ,
554554 X:: StridedArray{T} , Y:: StridedArray{T} ) where {T<: fftwDouble } =
555- ccall ((:fftw_execute_r2r ,libfftw3[] ), Cvoid,
555+ ccall ((:fftw_execute_r2r ,libfftw3 () ), Cvoid,
556556 (PlanPtr,Ptr{T},Ptr{T}), plan, X, Y)
557557
558558unsafe_execute! (plan:: r2rFFTWPlan{T} ,
559559 X:: StridedArray{T} , Y:: StridedArray{T} ) where {T<: fftwSingle } =
560- ccall ((:fftwf_execute_r2r ,libfftw3f[] ), Cvoid,
560+ ccall ((:fftwf_execute_r2r ,libfftw3f () ), Cvoid,
561561 (PlanPtr,Ptr{T},Ptr{T}), plan, X, Y)
562562
563563# NOTE ON GC (garbage collection):
@@ -654,7 +654,7 @@ for (Tr,Tc,fftw,lib) in ((:Float64,:(Complex{Float64}),"fftw",:libfftw3),
654654 unsafe_set_timelimit ($ Tr, timelimit)
655655 R = isa (region, Tuple) ? region : copy (region)
656656 dims, howmany = dims_howmany (X, Y, size (X), R)
657- plan = ccall (($ (string (fftw," _plan_guru64_dft" )),$ lib[] ),
657+ plan = ccall (($ (string (fftw," _plan_guru64_dft" )),$ lib () ),
658658 PlanPtr,
659659 (Int32, Ptr{Int}, Int32, Ptr{Int},
660660 Ptr{$ Tc}, Ptr{$ Tc}, Int32, UInt32),
@@ -674,7 +674,7 @@ for (Tr,Tc,fftw,lib) in ((:Float64,:(Complex{Float64}),"fftw",:libfftw3),
674674 regionshft = _circshiftmin1 (region) # FFTW halves last dim
675675 unsafe_set_timelimit ($ Tr, timelimit)
676676 dims, howmany = dims_howmany (X, Y, size (X), regionshft)
677- plan = ccall (($ (string (fftw," _plan_guru64_dft_r2c" )),$ lib[] ),
677+ plan = ccall (($ (string (fftw," _plan_guru64_dft_r2c" )),$ lib () ),
678678 PlanPtr,
679679 (Int32, Ptr{Int}, Int32, Ptr{Int},
680680 Ptr{$ Tr}, Ptr{$ Tc}, UInt32),
@@ -694,7 +694,7 @@ for (Tr,Tc,fftw,lib) in ((:Float64,:(Complex{Float64}),"fftw",:libfftw3),
694694 regionshft = _circshiftmin1 (region) # FFTW halves last dim
695695 unsafe_set_timelimit ($ Tr, timelimit)
696696 dims, howmany = dims_howmany (X, Y, size (Y), regionshft)
697- plan = ccall (($ (string (fftw," _plan_guru64_dft_c2r" )),$ lib[] ),
697+ plan = ccall (($ (string (fftw," _plan_guru64_dft_c2r" )),$ lib () ),
698698 PlanPtr,
699699 (Int32, Ptr{Int}, Int32, Ptr{Int},
700700 Ptr{$ Tc}, Ptr{$ Tr}, UInt32),
@@ -716,7 +716,7 @@ for (Tr,Tc,fftw,lib) in ((:Float64,:(Complex{Float64}),"fftw",:libfftw3),
716716 knd = fix_kinds (region, kinds)
717717 unsafe_set_timelimit ($ Tr, timelimit)
718718 dims, howmany = dims_howmany (X, Y, size (X), region)
719- plan = ccall (($ (string (fftw," _plan_guru64_r2r" )),$ lib[] ),
719+ plan = ccall (($ (string (fftw," _plan_guru64_r2r" )),$ lib () ),
720720 PlanPtr,
721721 (Int32, Ptr{Int}, Int32, Ptr{Int},
722722 Ptr{$ Tr}, Ptr{$ Tr}, Ptr{Int32}, UInt32),
@@ -744,7 +744,7 @@ for (Tr,Tc,fftw,lib) in ((:Float64,:(Complex{Float64}),"fftw",:libfftw3),
744744 howmany[2 : 3 , :] .*= 2
745745 end
746746 howmany = [howmany [2 ,1 ,1 ]] # append loop over real/imag parts
747- plan = ccall (($ (string (fftw," _plan_guru64_r2r" )),$ lib[] ),
747+ plan = ccall (($ (string (fftw," _plan_guru64_r2r" )),$ lib () ),
748748 PlanPtr,
749749 (Int32, Ptr{Int}, Int32, Ptr{Int},
750750 Ptr{$ Tc}, Ptr{$ Tc}, Ptr{Int32}, UInt32),
0 commit comments