88
99# # Airy functions
1010function _airy (z:: Complex128 , id:: Int32 , kode:: Int32 )
11- rz1, rz2 = Ref (real (z)), Ref (imag (z))
12- rid = Ref (id)
13- rkode = Ref (kode)
1411 ai1, ai2 = Ref {Float64} (), Ref {Float64} ()
1512 ae1, ae2 = Ref {Int32} (), Ref {Int32} ()
1613
1714 ccall ((:zairy_ ,openspecfun), Void,
18- (Ptr {Float64}, Ptr {Float64}, Ptr {Int32}, Ptr {Int32},
15+ (Ref {Float64}, Ref {Float64}, Ref {Int32}, Ref {Int32},
1916 Ptr{Float64}, Ptr{Float64}, Ptr{Int32}, Ptr{Int32}),
20- rz1, rz2, rid, rkode ,
17+ real (z), imag (z), id, kode ,
2118 ai1, ai2, ae1, ae2)
2219
2320 if ae2[] == 0 || ae2[] == 3 # ignore underflow and less than half machine accuracy loss
@@ -28,16 +25,13 @@ function _airy(z::Complex128, id::Int32, kode::Int32)
2825end
2926
3027function _biry (z:: Complex128 , id:: Int32 , kode:: Int32 )
31- rz1, rz2 = Ref (real (z)), Ref (imag (z))
32- rid = Ref (id)
33- rkode = Ref (kode)
3428 ai1, ai2 = Ref {Float64} (), Ref {Float64} ()
3529 ae1 = Ref {Int32} ()
3630
3731 ccall ((:zbiry_ ,openspecfun), Void,
38- (Ptr {Float64}, Ptr {Float64}, Ptr {Int32}, Ptr {Int32},
32+ (Ref {Float64}, Ref {Float64}, Ref {Int32}, Ref {Int32},
3933 Ptr{Float64}, Ptr{Float64}, Ptr{Int32}),
40- rz1, rz2, rid, rkode ,
34+ real (z), imag (z), id, kode ,
4135 ai1, ai2, ae1)
4236
4337 if ae1[] == 0 || ae1[] == 3 # ignore less than half machine accuracy loss
@@ -129,10 +123,9 @@ for afn in (:airyai, :airyaiprime, :airybi, :airybiprime,
129123end
130124
131125function airyai (x:: BigFloat )
132- rx = Ref (x)
133- rz = Ref (BigFloat ())
134- ccall ((:mpfr_ai , :libmpfr ), Int32, (Ptr{BigFloat}, Ptr{BigFloat}, Int32), rz, rx, ROUNDING_MODE[])
135- return rz[]
126+ z = BigFloat ()
127+ ccall ((:mpfr_ai , :libmpfr ), Int32, (Ref{BigFloat}, Ref{BigFloat}, Int32), z, x, ROUNDING_MODE[])
128+ return z
136129end
137130
138131# # Bessel functions
@@ -161,19 +154,14 @@ end
161154
162155
163156function _besselh (nu:: Float64 , k:: Int32 , z:: Complex128 , kode:: Int32 )
164- rnu = Ref (nu)
165- rz1, rz2 = Ref (real (z)), Ref (imag (z))
166- rkode = Ref (kode)
167- rk = Ref (k)
168- r1 = Ref {Int32} (1 )
169157 ai1, ai2 = Ref {Float64} (), Ref {Float64} ()
170158 ae1, ae2 = Ref {Int32} (), Ref {Int32} ()
171159
172160 ccall ((:zbesh_ ,openspecfun), Void,
173- (Ptr {Float64}, Ptr {Float64}, Ptr {Float64}, Ptr {Int32}, Ptr {Int32},
174- Ptr{Int32}, Ptr{Float64}, Ptr{Float64}, Ptr{Int32}, Ptr{Int32}),
175- rz1, rz2, rnu, rkode, rk, r1 ,
176- ai1, ai2, ae1, ae2)
161+ (Ref {Float64}, Ref {Float64}, Ref {Float64}, Ref {Int32}, Ref {Int32}, Ref{Int },
162+ Ptr{Float64}, Ptr{Float64}, Ptr{Int32}, Ptr{Int32}),
163+ real (z), imag (z), nu, kode, k, 1 ,
164+ ai1, ai2, ae1, ae2)
177165
178166 if ae2[] == 0 || ae2[] == 3
179167 return complex (ai1[],ai2[])
@@ -183,17 +171,13 @@ function _besselh(nu::Float64, k::Int32, z::Complex128, kode::Int32)
183171end
184172
185173function _besseli (nu:: Float64 , z:: Complex128 , kode:: Int32 )
186- rnu = Ref (nu)
187- rz1, rz2 = Ref (real (z)), Ref (imag (z))
188- rkode = Ref (kode)
189- r1 = Ref {Int32} (1 )
190174 ai1, ai2 = Ref {Float64} (), Ref {Float64} ()
191175 ae1, ae2 = Ref {Int32} (), Ref {Int32} ()
192176
193177 ccall ((:zbesi_ ,openspecfun), Void,
194- (Ptr {Float64}, Ptr {Float64}, Ptr {Float64}, Ptr {Int32}, Ptr {Int32},
178+ (Ref {Float64}, Ref {Float64}, Ref {Float64}, Ref {Int32}, Ref {Int32},
195179 Ptr{Float64}, Ptr{Float64}, Ptr{Int32}, Ptr{Int32}),
196- rz1, rz2, rnu, rkode, r1 ,
180+ real (z), imag (z), nu, kode, 1 ,
197181 ai1, ai2, ae1, ae2)
198182
199183 if ae2[] == 0 || ae2[] == 3
@@ -204,17 +188,13 @@ function _besseli(nu::Float64, z::Complex128, kode::Int32)
204188end
205189
206190function _besselj (nu:: Float64 , z:: Complex128 , kode:: Int32 )
207- rnu = Ref (nu)
208- rz1, rz2 = Ref (real (z)), Ref (imag (z))
209- rkode = Ref (kode)
210- r1 = Ref {Int32} (1 )
211191 ai1, ai2 = Ref {Float64} (), Ref {Float64} ()
212192 ae1, ae2 = Ref {Int32} (), Ref {Int32} ()
213193
214194 ccall ((:zbesj_ ,openspecfun), Void,
215- (Ptr {Float64}, Ptr {Float64}, Ptr {Float64}, Ptr {Int32}, Ptr {Int32},
195+ (Ref {Float64}, Ref {Float64}, Ref {Float64}, Ref {Int32}, Ref {Int32},
216196 Ptr{Float64}, Ptr{Float64}, Ptr{Int32}, Ptr{Int32}),
217- rz1, rz2, rnu, rkode, r1 ,
197+ real (z), imag (z), nu, kode, 1 ,
218198 ai1, ai2, ae1, ae2)
219199
220200 if ae2[] == 0 || ae2[] == 3
@@ -225,17 +205,13 @@ function _besselj(nu::Float64, z::Complex128, kode::Int32)
225205end
226206
227207function _besselk (nu:: Float64 , z:: Complex128 , kode:: Int32 )
228- rnu = Ref (nu)
229- rz1, rz2 = Ref (real (z)), Ref (imag (z))
230- rkode = Ref (kode)
231- r1 = Ref {Int32} (1 )
232208 ai1, ai2 = Ref {Float64} (), Ref {Float64} ()
233209 ae1, ae2 = Ref {Int32} (), Ref {Int32} ()
234210
235211 ccall ((:zbesk_ ,openspecfun), Void,
236- (Ptr {Float64}, Ptr {Float64}, Ptr {Float64}, Ptr {Int32}, Ptr {Int32},
212+ (Ref {Float64}, Ref {Float64}, Ref {Float64}, Ref {Int32}, Ref {Int32},
237213 Ptr{Float64}, Ptr{Float64}, Ptr{Int32}, Ptr{Int32}),
238- rz1, rz2, rnu, rkode, r1 ,
214+ real (z), imag (z), nu, kode, 1 ,
239215 ai1, ai2, ae1, ae2)
240216
241217 if ae2[] == 0 || ae2[] == 3
@@ -246,18 +222,14 @@ function _besselk(nu::Float64, z::Complex128, kode::Int32)
246222end
247223
248224function _bessely (nu:: Float64 , z:: Complex128 , kode:: Int32 )
249- rnu = Ref (nu)
250- rz1, rz2 = Ref (real (z)), Ref (imag (z))
251- rkode = Ref (kode)
252- r1 = Ref {Int32} (1 )
253225 ai1, ai2 = Ref {Float64} (), Ref {Float64} ()
254226 ae1, ae2 = Ref {Int32} (), Ref {Int32} ()
255227 wrk1, wrk2 = Ref {Float64} (), Ref {Float64} ()
256228
257229 ccall ((:zbesy_ ,openspecfun), Void,
258- (Ptr {Float64}, Ptr {Float64}, Ptr {Float64}, Ptr {Int32}, Ptr {Int32},
230+ (Ref {Float64}, Ref {Float64}, Ref {Float64}, Ref {Int32}, Ref {Int32},
259231 Ptr{Float64}, Ptr{Float64}, Ptr{Int32}, Ptr{Float64}, Ptr{Float64}, Ptr{Int32}),
260- rz1, rz2, rnu, rkode, r1 ,
232+ real (z), imag (z), nu, kode, 1 ,
261233 ai1, ai2, ae1, wrk1, wrk2, ae2)
262234
263235 if ae2[] == 0 || ae2[] == 3
536508Bessel function of the first kind of order 0, ``J_0(x)``.
537509"""
538510function besselj0 (x:: BigFloat )
539- rx = Ref (x)
540- rz = Ref (BigFloat ())
541- ccall ((:mpfr_j0 , :libmpfr ), Int32, (Ptr{BigFloat}, Ptr{BigFloat}, Int32), rz, x, ROUNDING_MODE[])
542- return rz[]
511+ z = BigFloat ()
512+ ccall ((:mpfr_j0 , :libmpfr ), Int32, (Ref{BigFloat}, Ref{BigFloat}, Int32), z, x, ROUNDING_MODE[])
513+ return z
543514end
544515
545516"""
@@ -548,17 +519,15 @@ end
548519Bessel function of the first kind of order 1, ``J_1(x)``.
549520"""
550521function besselj1 (x:: BigFloat )
551- rx = Ref (x)
552- rz = Ref (BigFloat ())
553- ccall ((:mpfr_j1 , :libmpfr ), Int32, (Ptr{BigFloat}, Ptr{BigFloat}, Int32), rz, rx, ROUNDING_MODE[])
554- return rz[]
522+ z = BigFloat ()
523+ ccall ((:mpfr_j1 , :libmpfr ), Int32, (Ref{BigFloat}, Ref{BigFloat}, Int32), z, x, ROUNDING_MODE[])
524+ return z
555525end
556526
557527function besselj (n:: Integer , x:: BigFloat )
558- rx = Ref (x)
559- rz = Ref (BigFloat ())
560- ccall ((:mpfr_jn , :libmpfr ), Int32, (Ptr{BigFloat}, Clong, Ptr{BigFloat}, Int32), rz, n, rx, ROUNDING_MODE[])
561- return rz[]
528+ z = BigFloat ()
529+ ccall ((:mpfr_jn , :libmpfr ), Int32, (Ref{BigFloat}, Clong, Ref{BigFloat}, Int32), z, n, x, ROUNDING_MODE[])
530+ return z
562531end
563532
564533"""
@@ -570,10 +539,9 @@ function bessely0(x::BigFloat)
570539 if x < 0
571540 throw (DomainError (x, " `x` must be nonnegative." ))
572541 end
573- rx = Ref (x)
574- rz = Ref (BigFloat ())
575- ccall ((:mpfr_y0 , :libmpfr ), Int32, (Ptr{BigFloat}, Ptr{BigFloat}, Int32), rz, rx, ROUNDING_MODE[])
576- return rz[]
542+ z = BigFloat ()
543+ ccall ((:mpfr_y0 , :libmpfr ), Int32, (Ref{BigFloat}, Ref{BigFloat}, Int32), z, x, ROUNDING_MODE[])
544+ return z
577545end
578546
579547"""
@@ -585,20 +553,18 @@ function bessely1(x::BigFloat)
585553 if x < 0
586554 throw (DomainError (x, " `x` must be nonnegative." ))
587555 end
588- rx = Ref (x)
589- rz = Ref (BigFloat ())
590- ccall ((:mpfr_y1 , :libmpfr ), Int32, (Ptr{BigFloat}, Ptr{BigFloat}, Int32), rz, rx, ROUNDING_MODE[])
591- return rz[]
556+ z = BigFloat ()
557+ ccall ((:mpfr_y1 , :libmpfr ), Int32, (Ref{BigFloat}, Ref{BigFloat}, Int32), z, x, ROUNDING_MODE[])
558+ return z
592559end
593560
594561function bessely (n:: Integer , x:: BigFloat )
595562 if x < 0
596563 throw (DomainError (x, " `x` must be nonnegative." ))
597564 end
598- rx = Ref (x)
599- rz = Ref (BigFloat ())
600- ccall ((:mpfr_yn , :libmpfr ), Int32, (Ptr{BigFloat}, Clong, Ptr{BigFloat}, Int32), rz, n, rx, ROUNDING_MODE[])
601- return rz[]
565+ z = BigFloat ()
566+ ccall ((:mpfr_yn , :libmpfr ), Int32, (Ref{BigFloat}, Clong, Ref{BigFloat}, Int32), z, n, x, ROUNDING_MODE[])
567+ return z
602568end
603569
604570"""
0 commit comments