Skip to content
Toggle navigation
Toggle navigation
This project
Loading...
Sign in
oct
/
oct
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Snippets
Network
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Network
Compare
Branches
Tags
Commit cb1a5d41
authored
20120409 08:52:08 0700
by
Raymond Toy
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
Fix some mistakes in expintegrale when changing algorithm to use
series.
1 parent
6cfb0ac4
Hide whitespace changes
Inline
Sidebyside
Showing
1 changed file
with
9 additions
and
24 deletions
qdgamma.lisp
qdgamma.lisp
View file @
cb1a5d4
...
...
@@ 532,36 +532,21 @@
;; for arg(z) < pi.
;;
;;
(
let*
((
prec
(
floatcontagion
v
z
))
(
v
(
applycontagion
v
prec
))
(
z
(
applycontagion
z
prec
)))
(
withfloatingpointcontagion
(
v
z
)
(
cond
((
and
(
realp
v
)
(
minusp
v
))
;; E(v, z) = z^(v1)*incomplete_gamma_tail(v+1,z)
(
let
((
v
(

v
)))
(
*
(
expt
z
(

v
1
))
(
incompletegammatail
(
+
v
1
)
z
))))
((
<
(
abs
z
)
1
)
;; Use series for small z
((
or
(
<
(
abs
z
)
1
)
(
>=
(
abs
(
phase
z
))
3.1
))
;; Use series for small z or if z is near the negative real
;; axis because the continued fraction does not converge on
;; the negative axis and converges slowly near the negative
;; axis.
(
sexpintegrale
v
z
))
((
>=
(
abs
(
phase
z
))
3.1
)
;; The continued fraction doesn't converge on the negative
;; real axis, and converges very slowly near the negative
;; real axis, so use the incompletegammatail function in
;; this region. "Closeness" to the negative real axis is
;; teken to mean that z is in a sector near the axis.
;;
;; E(v,z) = z^(v1)*incomplete_gamma_tail(1v,z)
(
*
(
expt
z
(

v
1
))
(
incompletegammatail
(
+
v
1
)
z
))))
((
or
(
<
(
abs
z
)
1
)
(
>=
(
abs
(
phase
z
))
3.1
))
;; Use series for small z or if z is near the negative real
;; axis because the continued fraction does not converge on
;; the negative axis and converges slowly near the negative
;; axis.
(
sexpintegrale
v
z
))
(
t
;; Use continued fraction for everything else.
(
cfexpintegrale
v
z
))))
(
t
;; Use continued fraction for everything else.
(
cfexpintegrale
v
z
)))))
;; Series for Fresnel S
;;
...
...
Write
Preview
Styling with
Markdown
is supported
Attach a file
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to post a comment