Raymond Toy [Fri, 26 Apr 2013 03:11:27 +0000]
Add continued fractions for erf, erfc, w and Dawson's integral.
qd-gamma.lisp::
Add continued fractions
rt-tests.lisp::
Add a test for erfc
Raymond Toy [Tue, 17 Apr 2012 23:16:07 +0000]
Merge branch 'master' of ssh://common-lisp.net/var/git/projects/oct/oct
Raymond Toy [Tue, 17 Apr 2012 23:15:37 +0000]
Add function to compute J(1/2,z) and use it in the tests.
Raymond Toy [Tue, 17 Apr 2012 16:32:27 +0000]
sum-an was summing one too many terms.
Raymond Toy [Tue, 17 Apr 2012 03:45:12 +0000]
Add iterative versions for some functions.
Raymond Toy [Tue, 17 Apr 2012 02:30:12 +0000]
Make big-n a defvar so we can change it easily.
Raymond Toy [Mon, 16 Apr 2012 17:05:21 +0000]
Merge branch 'master' of ssh://common-lisp.net/var/git/projects/oct/oct
Raymond Toy [Sun, 15 Apr 2012 17:50:16 +0000]
* Add comments for {{{integer-bessel-j-exp-arc}}}.
* Simplify {{{sum-an}}} so we stop the sum when the terms no longer
contribute to the sum.
* Change {{{big-n}}}. This still needs work.
Raymond Toy [Fri, 13 Apr 2012 06:24:03 +0000]
Add more tests for Bessel J. Not all of them pass.
Raymond Toy [Fri, 13 Apr 2012 01:27:08 +0000]
Add more tests.
Raymond Toy [Thu, 12 Apr 2012 22:32:00 +0000]
Merge branch 'master' of ssh://common-lisp.net/var/git/projects/oct/oct
Raymond Toy [Thu, 12 Apr 2012 21:37:38 +0000]
Enable test of complex args.
Raymond Toy [Thu, 12 Apr 2012 21:37:27 +0000]
Fix for complex args.
Raymond Toy [Thu, 12 Apr 2012 16:46:59 +0000]
Update accuracy for bessel-j-1/2.q test.
Raymond Toy [Thu, 12 Apr 2012 16:30:28 +0000]
Add tests for bessel-j.
Raymond Toy [Thu, 12 Apr 2012 16:30:10 +0000]
* Use the g[k] formula instead of r[2*k+1] because we fail to
converge when v = 0.
* Clear hash tables in bessel-j.
Raymond Toy [Thu, 12 Apr 2012 03:32:23 +0000]
First cut at Bessel Y. Not working yet.
Raymond Toy [Thu, 12 Apr 2012 03:15:47 +0000]
Add TODO list for bessel-j.
Raymond Toy [Thu, 12 Apr 2012 03:06:38 +0000]
Correct the computation of alpha and beta.
Raymond Toy [Wed, 11 Apr 2012 20:53:07 +0000]
Merge branch 'master' of ssh://common-lisp.net/var/git/projects/oct/oct
Raymond Toy [Wed, 11 Apr 2012 16:18:31 +0000]
Correct some comments, remove unused code.
Raymond Toy [Wed, 11 Apr 2012 15:47:28 +0000]
Update accuracy for oct.elliptic-pi.n2.d and add new test that
caused oct.elliptic-pi.n2.d to fail.
Raymond Toy [Wed, 11 Apr 2012 03:36:11 +0000]
VALUE-OR-TINY returned a value that was too tiny.
* qd-gamma.lisp::
* Return sqrt(least-positive-normalized-double) instead of
least-positive-normalized-double.
* rt-tests.lisp::
* Add test for this case.
Raymond Toy [Tue, 10 Apr 2012 16:51:55 +0000]
Fix bug in s-bessel-j. Microoptimize integer-bessel-j-exp-arc for the
case where v is an integer.
Raymond Toy [Tue, 10 Apr 2012 07:45:13 +0000]
* Implement sum-big-ia.
* Add series for Bessel J. (Not working yet.)
Raymond Toy [Mon, 9 Apr 2012 18:14:16 +0000]
Merge branch 'master' of ssh://common-lisp.net/var/git/projects/oct/oct
Raymond Toy [Mon, 9 Apr 2012 15:55:27 +0000]
Fix two typos in the names of tests.
Raymond Toy [Mon, 9 Apr 2012 15:52:08 +0000]
Fix some mistakes in exp-integral-e when changing algorithm to use
series.
Raymond Toy [Mon, 9 Apr 2012 15:37:51 +0000]
Merge branch 'master' of ssh://common-lisp.net/var/git/projects/oct/oct
Raymond Toy [Sun, 8 Apr 2012 17:14:37 +0000]
Define FLOATP, fix bugs in FLOAT.
qd-methods.lisp:
* Define FLOATP
* Fix bugs in FLOAT:
* (FLOAT float nil) is an error
* (FLOAT float) returns the float
* (FLOAT rational) returns a single-float.
qd-package.lisp:
o Export FLOATP, shadowing CL:FLOAT.
rt-tests.lisp:
o Add a few tests for FLOAT.
Raymond Toy [Sun, 8 Apr 2012 16:59:39 +0000]
Oops. The second arg to FLOAT is optional!
Raymond Toy [Sun, 8 Apr 2012 16:57:12 +0000]
Fix typo in %big-a. Just use incomplete-gamma-tail in big-i.
Raymond Toy [Sun, 8 Apr 2012 16:37:22 +0000]
T is not a variable. Use a different name.
Raymond Toy [Sun, 8 Apr 2012 16:36:46 +0000]
Build qd-bessel now. (qd-bessel is a work in progress.)
Raymond Toy [Sun, 8 Apr 2012 16:35:35 +0000]
Define macro WITH-FLOATING-POINT-CONTAGION.
qd-methods.lisp:
o Define the macro
qd-gamma.lisp:
o Use it.
Raymond Toy [Sun, 8 Apr 2012 16:04:18 +0000]
Fix some comments.
Raymond Toy [Sun, 8 Apr 2012 06:28:08 +0000]
Fix a divide by zero error in s-exp-integral-e for v = 1. We need to
skip the first term in the series.
Raymond Toy [Sat, 7 Apr 2012 16:28:16 +0000]
Add more parts of the exp-arc algorithm. Needs lots of work, but it
seems that bessel_j(n,z) mostly works.
Raymond Toy [Sat, 7 Apr 2012 02:28:23 +0000]
Add some comments, rename bessel-j-exp-arc to integer-bessel-j-exp-arc.
Raymond Toy [Sat, 7 Apr 2012 02:21:46 +0000]
First cut at Bessel functions. Needs lots of work.
Raymond Toy [Sat, 24 Mar 2012 03:48:40 +0000]
qd-gamma depends on qd-complex.
Raymond Toy [Sat, 24 Mar 2012 02:10:16 +0000]
Need to take ABS before testing for 1/2.
Raymond Toy [Sat, 24 Mar 2012 02:05:24 +0000]
Oops. Need to take the realpart before call FLOAT-NAN-P.
Raymond Toy [Fri, 23 Mar 2012 20:00:24 +0000]
Need to apply contagion for exp-integral-e.
Raymond Toy [Fri, 23 Mar 2012 19:48:54 +0000]
Use exp-integral-e to evaluate incomplete-gamma-tail for real,
negative values of the parameter.
Raymond Toy [Fri, 23 Mar 2012 17:38:31 +0000]
Document CHECK-ACCURACY
Raymond Toy [Fri, 23 Mar 2012 17:21:40 +0000]
Bug fix for check-accuracy, and more tests for exp-integral-e.
* Don't let NaN's fool check-accuracy
* Add tests for exp-integral-e with v = 1.
Raymond Toy [Fri, 23 Mar 2012 17:20:27 +0000]
Cleanups for psi and bug fix for exp-integral-e.
* Allow (exp-integral-e 1 z) to work.
* psi
* Handle psi(1) specially.
* Do a better job with cot(%pi*z) when z is an odd multiple of 1/2
where cot is 0.
* Fib bug in computing the number of terms when we try to float a
complex. Just float the realpart.
Raymond Toy [Fri, 23 Mar 2012 17:06:28 +0000]
Oops. In FLOAT, if it's already a float, don't change it if the
second arg is not given.
Raymond Toy [Fri, 23 Mar 2012 16:47:16 +0000]
Fix bug in FLOAT: second arg is optional! Add FLOAT-NAN-P method.
qd-methods.lisp:
* Second arg to {{{FLOAT}}} is optional.
* Add {{{FLOAT-NAN-P}}}.
qd-package.lisp:
* Need to shadow {{{EXT:FLOAT-NAN-P}}} on cmucl.
Raymond Toy [Fri, 23 Mar 2012 15:38:53 +0000]
Merge branch 'master' of git://common-lisp.net/projects/oct/oct
Raymond Toy [Fri, 23 Mar 2012 05:58:43 +0000]
Clean up implemenation of s-exp-integral-e a bit.
Raymond Toy [Fri, 23 Mar 2012 04:13:07 +0000]
Correct the computation of s-exp-integral-e when v is an integer. Add
tests.
Raymond Toy [Thu, 22 Mar 2012 16:02:16 +0000]
Merge branch 'master' of git://common-lisp.net/projects/oct/oct
Conflicts:
qd-gamma.lisp
Raymond Toy [Thu, 22 Mar 2012 05:24:48 +0000]
Handle the case of negative v in exp-integral-e(v, z). Add tests.
Raymond Toy [Thu, 22 Mar 2012 04:53:37 +0000]
Fix bug in psi for -n/2 for n odd which was causing an overflow. Add
tests too.
Raymond Toy [Thu, 22 Mar 2012 01:58:02 +0000]
Add a few tests for exp-integral-e. More needed.
Raymond Toy [Thu, 22 Mar 2012 01:45:44 +0000]
Implement psi and fix exp-integral-e for integral values of v. Needs
some more work.
Raymond Toy [Wed, 21 Mar 2012 23:20:04 +0000]
Allow exp-integral-e to work with negative integer orders. First
cut....
Raymond Toy [Wed, 21 Mar 2012 22:29:07 +0000]
First cut at psi function.
Raymond Toy [Wed, 21 Mar 2012 16:37:15 +0000]
Merge branch 'master' of git://common-lisp.net/projects/oct/oct
Raymond Toy [Wed, 21 Mar 2012 16:35:22 +0000]
Add Euler's constant and fix dependencies.
oct.asd:
o qd-const2 depends on qd-const.
qd-const.lisp:
o Add qd value for Euler's constant
qd-const2.lisp:
o Add qd-real value for Euler's constant.
Raymond Toy [Tue, 6 Dec 2011 16:50:45 +0000]
Merge branch 'master' of git://common-lisp.net/projects/oct/oct
Raymond Toy [Tue, 6 Dec 2011 03:58:44 +0000]
Better exp-integral-e computation and fix for incomplete-gamma-tail.
For exp-integral-e, use the series for small z and the
incomplete-gamma-tail for near the negative real axis. Otherwise, use
the continued fraction.
In incomplete-gamma-tail, we were using the continued fraction instead
of the incomplete-gamma function for the region just below the negative
real axis. We should use the cf except in that region.
Raymond Toy [Mon, 5 Dec 2011 22:07:49 +0000]
Merge branch 'master' of git://common-lisp.net/projects/oct/oct
Raymond Toy [Mon, 5 Dec 2011 22:06:39 +0000]
Oops. Put back QEXPT method for QD-COMPLEX, QD-REAL.
Raymond Toy [Mon, 5 Dec 2011 21:44:51 +0000]
Merge branch 'master' of git://common-lisp.net/projects/oct/oct
Raymond Toy [Mon, 5 Dec 2011 20:48:30 +0000]
Clean up code:
o Get rid of unused var in FLOAT-CONTAGION.
o QEXPT for qd-complex first arg should be defined in
qd-complex.lisp.
Raymond Toy [Mon, 5 Dec 2011 20:47:02 +0000]
Get rid of compiler warning about unused variable in theta-1 and
theta-3.
Raymond Toy [Mon, 5 Dec 2011 19:29:30 +0000]
Reduce required accuracy so CCL can pass oct.theta2.1.d and
oct.elliptic-pi.n1.d
Raymond Toy [Mon, 5 Dec 2011 17:45:54 +0000]
Update version (and make it compatible with latest asdf2).
Raymond Toy [Mon, 5 Dec 2011 17:43:15 +0000]
Update asdf version (and make it compatible with latest asdf).
Raymond Toy [Mon, 5 Dec 2011 07:24:06 +0000]
Remove some random junk that we left in.
Raymond Toy [Mon, 5 Dec 2011 07:22:01 +0000]
Use exp-integral-e for (incomplete-gamma-tail 0 z).
We already have exp-integral-e function so move expintegral-e
implementation to exp-integral-e.
Raymond Toy [Mon, 5 Dec 2011 05:29:17 +0000]
Signal error for gamma of negative integers.
Raymond Toy [Mon, 5 Dec 2011 05:28:27 +0000]
Fix bug in CEILING and FCEILING; add tests.
Raymond Toy [Fri, 13 May 2011 14:07:54 +0000]
Revert previous blank line insertions.
The blanks were for testing integration of git and trac to close trac
tickets. It's working now.
Raymond Toy [Fri, 13 May 2011 14:05:29 +0000]
Fix ticket:1.
Attempt 9.
This is a white space change to test integration of git and trac to
see if the ticket is automatically closed or updated on commit.
Raymond Toy [Fri, 13 May 2011 13:59:46 +0000]
Fix ticket #1.
Attempt 8.
This is a white space change to test integration of git and trac to
see if the ticket is automatically closed or updated on commit.
Raymond Toy [Fri, 13 May 2011 13:57:37 +0000]
Fix ticket #1.
Attempt 7.
This is a white space change to test integration of git and trac to
see if the ticket is automatically closed or updated on commit.
Raymond Toy [Fri, 13 May 2011 11:39:22 +0000]
Fix ticket #1.
Attempt 6.
This is a white space change to test integration of git and trac to
see if the ticket is automatically closed or updated on commit.
Raymond Toy [Fri, 13 May 2011 02:46:57 +0000]
Fix ticket #1.
Attempt 5.
This is a white space change to test integration of git and trac to
see if the ticket is automatically closed or updated on commit.
Raymond Toy [Fri, 13 May 2011 02:39:11 +0000]
Fix ticket #1.
Attempt 4.
This is a white space change to test integration of git and trac to
see if the ticket is automatically closed or updated on commit.
Raymond Toy [Fri, 13 May 2011 02:33:34 +0000]
Fix ticket #1.
Attempt 3.
This is a white space change to test integration of git and trac to
see if the ticket is automatically closed or updated on commit.
Raymond Toy [Fri, 13 May 2011 01:45:55 +0000]
Fix ticket #1.
Attempt 2.
This is a white space change to test integration of git and trac to
see if the ticket is automatically closed or updated on commit.
Raymond Toy [Fri, 13 May 2011 01:38:53 +0000]
Fix ticket #1.
This is a white space change to test integration of git and trac to
see if the ticket is automatically closed or updated on commit.
Raymond Toy [Tue, 29 Mar 2011 13:58:45 +0000]
Make gamma accurate for integers; add precision test for
incomplete-gamma-tail.
qd-gamma.lisp:
o For integer values, just compute the gamma value directly by
multiplication. This works around the problem that the current
algorithm is not as accurate as we would like.
rt-test.lisp:
o Reduce required accuracy in gamma-incomplete-tail.3.d.
o Add precision test for gamm incomplete tail near the negative real
axis.
Raymond Toy [Tue, 29 Mar 2011 02:54:32 +0000]
Make INCOMPLETE-GAMMA-TAIL more accurate.
o Use the new continued fraction for the incomplete-gamma when the
argument z is close enough to the negative real axis.
Raymond Toy [Tue, 29 Mar 2011 02:37:32 +0000]
More accurate incomplete-gamma function, add debugging to lentz, and
some random clean ups.
o Add *DEBUG-CF-EVAL* to enable debugging prints in LENTZ.
o Modify LENTZ to terminate with an error if *MAX-CF-ITERATIONS* is
reached.
o Modify LENTZ to return the function value, the number of iterations,
and the number of times a zero value had to be replaced.
o Adjust cf-incomplete-gamma and cf-incomplete-gamma-tail not to
signal overflow prematurely when calculating z^a*exp(-z).
o Fix doc bug in reference for continued fraction for (original)
cf-incomplete-gamma.
o Add new version of cf-incomplete-gamma using a different continued
fraction. This appears to converge faster and to be more accurate
than the original, especially for points near the negative real
axis.
Raymond Toy [Mon, 28 Mar 2011 13:08:37 +0000]
Fix typo in #q() number in fresnel-s.2q test.
Raymond Toy [Fri, 25 Mar 2011 03:01:51 +0000]
Update required accuracy for elliptic-pi.n0.q.
Raymond Toy [Fri, 25 Mar 2011 03:01:08 +0000]
Add DOMAIN-ERROR condition; fix bug in FRESNEL-S-SERIES.
qd-methods.lisp:
o Define DOMAIN-ERROR condition to allow signaling errors for
incorrect domains.
qd-gamma.lisp:
o Signal domain error in CF-INCOMPLETE-GAMMA-TAIL if necessary.
o Fix bug in FRESNEL-S-SERIES. We were comparing a real against a
complex.
Raymond Toy [Thu, 24 Mar 2011 18:48:55 +0000]
Fix incomplete-gamma-tail for negative reals, use series for Fresnel S
for small arg and update tests.
qd-gamma.lisp:
o INCOMPLETE-GAMMA-TAIL was hanging for arguments on the negative real
axis. Use INCOMPLETE-GAMMA in this case too.
o Add the series expansion for Fresnel S and use it for evaluating it
for small arguments. We were losing accuracy with the existing
algorithm.
rt-tests.lisp:
o Update thresholds for elliptic-pi-n0.d, elliptic-pi.n2.q,
theta3.1.d.
o Fix typo in test name. gamma-incomplete-tail.1.q should have been
2.q.
o Add tests for gamma-incomplete-tail for arguments on the negative
real axis.
o Add tests for Fresnel S.
Raymond Toy [Thu, 24 Mar 2011 18:25:53 +0000]
qd-gamma depends on qd-reader.
Raymond Toy [Mon, 21 Mar 2011 23:39:24 +0000]
Move the uses of foo-t before the use of foo-t.
Raymond Toy [Sat, 19 Mar 2011 15:38:43 +0000]
Add rem and mod functions that were left out.
Raymond Toy [Fri, 18 Mar 2011 13:06:10 +0000]
Add series for incomplete-gamma for when the fraction is slow.
o Add series for incomplete gamma function for small a and z. Needed
because the continued fraction is slow in this range.
o In INCOMPLETE-GAMMA-TAIL, call INCOMPLETE-GAMMA instead of
CF-INCOMPLETE-GAMMA just in case a and z are small.
o In INCOMPLETE-GAMMA, use the series for small a and z.
o Simplify evaluation of Si(z) when z is real.
Raymond Toy [Fri, 18 Mar 2011 03:12:30 +0000]
Implement Si and Ci, sin and cos integrals.
Raymond Toy [Fri, 18 Mar 2011 02:14:25 +0000]
Add Fresnel integrals; fix issue in incomplete-gamma for large args.
o INCOMPLETE-GAMMA was returning bad values for large (complex)
arguments. Fix this by using incomplete gamma tail function since
the incomplete gamma function approaches gamma for large arguments.
o Implement Fresnel S and C functions.
Raymond Toy [Thu, 17 Mar 2011 17:37:29 +0000]
Implement exponential integral E.