@@ -114,13 +114,13 @@ function do_quadgk{Tw}(f, s, n, ::Type{Tw}, abstol, reltol, maxevals, nrm)
114
114
return do_quadgk_no_inf (f, s, n, Tw, abstol, reltol, maxevals, nrm)
115
115
end
116
116
117
- function do_quadgk_no_inf {Tw} (f, ss , n, :: Type{Tw} , abstol, reltol, maxevals, nrm)
117
+ function do_quadgk_no_inf {Tw} (f, s , n, :: Type{Tw} , abstol, reltol, maxevals, nrm)
118
118
key = rulekey (Tw,n)
119
119
x:: Vector{Tw} ,w:: Vector{Tw} ,gw:: Vector{Tw} = haskey (rulecache, key) ? rulecache[key] :
120
120
(rulecache[key] = kronrod (Tw, n))
121
- segs = [evalrule (f, ss [1 ],ss [2 ], x,w,gw, nrm)]
122
- for i in 2 : length (ss ) - 1
123
- heappush! (segs, evalrule (f, ss [i],ss [i+ 1 ], x,w,gw, nrm), Reverse)
121
+ segs = [evalrule (f, s [1 ],s [2 ], x,w,gw, nrm)]
122
+ for i in 2 : length (s ) - 1
123
+ heappush! (segs, evalrule (f, s [i], s [i+ 1 ], x,w,gw, nrm), Reverse)
124
124
end
125
125
numevals = (2 n+ 1 ) * length (segs)
126
126
I = segs[1 ]. I
@@ -132,14 +132,14 @@ function do_quadgk_no_inf{Tw}(f, ss, n, ::Type{Tw}, abstol, reltol, maxevals, nr
132
132
# Pop the biggest-error segment and subdivide (h-adaptation)
133
133
# until convergence is achieved or maxevals is exceeded.
134
134
while E > abstol && E > reltol * nrm (I) && numevals < maxevals
135
- s = heappop! (segs, Reverse)
136
- mid = (s . a + s . b) * 0.5
137
- s1 = evalrule (f, s . a, mid, x,w,gw, nrm)
138
- s2 = evalrule (f, mid, s . b, x,w,gw, nrm)
139
- heappush! (segs, s1 , Reverse)
140
- heappush! (segs, s2 , Reverse)
141
- I = (I - s . I) + s1 . I + s2 . I
142
- E = (E - s . E) + s1 . E + s2 . E
135
+ seg = heappop! (segs, Reverse)
136
+ mid = (seg . a + seg . b) * 0.5
137
+ seg1 = evalrule (f, seg . a, mid, x,w,gw, nrm)
138
+ seg2 = evalrule (f, mid, seg . b, x,w,gw, nrm)
139
+ heappush! (segs, seg1 , Reverse)
140
+ heappush! (segs, seg2 , Reverse)
141
+ I = (I - seg . I) + seg1 . I + seg2 . I
142
+ E = (E - seg . E) + seg1 . E + seg2 . E
143
143
numevals += 4 n+ 2
144
144
end
145
145
# re-sum (paranoia about accumulated roundoff)
0 commit comments