#5396: Wrapping lcalc library
------------------------------------------+---------------------------------
   Reporter:  rishi                       |       Owner:  Rishi       
       Type:  enhancement                 |      Status:  needs_review
   Priority:  major                       |   Milestone:  sage-4.3.2  
  Component:  number theory               |    Keywords:  lcalc       
     Author:  rishi, ylchapuy             |    Upstream:  N/A         
   Reviewer:  John Cremona, David Kirkby  |      Merged:              
Work_issues:                              |  
------------------------------------------+---------------------------------

Old description:

> I plan to release version L-1.3 in a couple of weeks, and also to
> have Rishi update his cython wrapper during our march workshop (I made
> a handful of changes that will need him to update).
>
> There are a number of key improvements.
>
> Precision-
>
> I've spent quite a bit of effort getting a multiprecision version
> of lcalc to work. I now have it working with Bailey's double double
> and quad double (about 30 and 60 digits respectively) and also MPFR,
> though the latter seems quite slow, perhaps because of the c++ wrapper
> that I am using... haven't dug too deep with the latter since
> Bailey's dd and qd works quite nicely, and 60 digits is quite reasonable.
> Nonetheless,
> it does work to higher precision with mpfr.
>
> I am also developing a test suite to be run at compile time to check on
> accuracy of many of the routines and do various timing tests.
>
> Output precision-
>
> Rishi needs to handle this carefully since I have a parameter
> which describes how many digits of the working digits are accurate.
> I use this parameter when outputting my results. Not sure how
> or if Rishi makes use of this extra info, or just passes the double
> results
> of my routines.
>
> At the same time I am wiring in better control of output precision
> based on the explicit formula and also on using the smooth approximate
> functional equation with a couple of different test functions.
>
> Derivatives-
>
> the version in L-1.23 is very crummy and I fixed that up too
> in version L-1.3. I initially just wanted to get that functionality in
> there, and I now use (version L-1.3 to be released) higher central
> differences for the derivatives that gives an accuracy of about
> Digits*4/(n+4) for the nth derivative. So for the 1st derivative,
> my new version is accurate to about 4/5 the working precision, so roughly
> 12-13 digits with double precision and 24-25 digits with Bailey's dd.
>

> Zeros-
>
> I fixed a subtle bug that would on rare occasion cause some zeros to be
> omitted
> and other zeros to be duplicated in their place.
>
> I'm also finishing to wire in a test of the explicit formula (based on a
> prototype that Kevin McGown helped me with in our kickoff frg coding
> sprint) that will prevent
> such bugs from going unnoticed!
>
> Trivial zeros-
>
> I built in knowledge of the trivial zeros so that correct output is
> displayed there.
> This allowed me to apply the functional equation correctly, so that the
> new version
> works throughout the complex plane (previously it gave nonsense results
> left of 0).
>
> Band limited interpolation-
>
> I'm wiring in some code of ghaith Hiary for computing zeta using band
> limited
> interpolation. This will give a significant speedup in, for example,
> computing zeros of zeta.
>
> Start at Nth zero-
>
> Ability to start searching for zeros from the Nth zero onward (rather
> than
> always starting from the real axis). This one was long overdue!
>

> Many small improvements that have a big impact-
>
> For example I coded up my own trig functions that are about 4 times
> faster than
> the machines (for double precision) and also faster than Bailey's and
> MPFR's.
>
> Anyhow, my package definitely needs a companion paper and much better
> documentation. Something to work on...
>
> Other planned improvements for version L-1.4:
>
> 1) broader use of openmp in some of the key routines
> 2) fft algorithms- will lead to orders of magnitude improvement
> especially for higher degree L-funcitons
> 3) L-functions of number fields and symmetric powers

New description:

 Wrapping lcalc library

--

Comment(by mrubinst):

 I plan to release version L-1.3 in a couple of weeks, and also to
 have Rishi update his cython wrapper during our march workshop (I made
 a handful of changes that will need him to update).

 There are a number of key improvements.

 Precision-

 I've spent quite a bit of effort getting a multiprecision version
 of lcalc to work. I now have it working with Bailey's double double
 and quad double (about 30 and 60 digits respectively) and also MPFR,
 though the latter seems quite slow, perhaps because of the c++ wrapper
 that I am using... haven't dug too deep with the latter since
 Bailey's dd and qd works quite nicely, and 60 digits is quite reasonable.
 Nonetheless,
 it does work to higher precision with mpfr.

 I am also developing a test suite to be run at compile time to check on
 accuracy of many of the routines and do various timing tests.

 Output precision-

 Rishi needs to handle this carefully since I have a parameter
 which describes how many digits of the working digits are accurate.
 I use this parameter when outputting my results. Not sure how
 or if Rishi makes use of this extra info, or just passes the double
 results
 of my routines.

 At the same time I am wiring in better control of output precision
 based on the explicit formula and also on using the smooth approximate
 functional equation with a couple of different test functions.

 Derivatives-

 the version in L-1.23 is very crummy and I fixed that up too
 in version L-1.3. I initially just wanted to get that functionality in
 there, and I now use (version L-1.3 to be released) higher central
 differences for the derivatives that gives an accuracy of about
 Digits*4/(n+4) for the nth derivative. So for the 1st derivative,
 my new version is accurate to about 4/5 the working precision, so roughly
 12-13 digits with double precision and 24-25 digits with Bailey's dd.


 Zeros-

 I fixed a subtle bug that would on rare occasion cause some zeros to be
 omitted
 and other zeros to be duplicated in their place.

 I'm also finishing to wire in a test of the explicit formula (based on a
 prototype that Kevin McGown helped me with in our kickoff frg coding
 sprint) that will prevent
 such bugs from going unnoticed!

 Trivial zeros-

 I built in knowledge of the trivial zeros so that correct output is
 displayed there.
 This allowed me to apply the functional equation correctly, so that the
 new version
 works throughout the complex plane (previously it gave nonsense results
 left of 0).

 Band limited interpolation-

 I'm wiring in some code of ghaith Hiary for computing zeta using band
 limited
 interpolation. This will give a significant speedup in, for example,
 computing zeros of zeta.

 Start at Nth zero-

 Ability to start searching for zeros from the Nth zero onward (rather than
 always starting from the real axis). This one was long overdue!


 Many small improvements that have a big impact-

 For example I coded up my own trig functions that are about 4 times faster
 than
 the machines (for double precision) and also faster than Bailey's and
 MPFR's.

 Anyhow, my package definitely needs a companion paper and much better
 documentation. Something to work on...

 Other planned improvements for version L-1.4:

 1) broader use of openmp in some of the key routines
 2) fft algorithms- will lead to orders of magnitude improvement
 especially for higher degree L-funcitons
 3) L-functions of number fields and symmetric powers

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/5396#comment:62>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

-- 
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/sage-trac?hl=en.

Reply via email to