= sympow =

== Description ==
SYMPOW is a package to compute special values of symmetric power elliptic
curve L-functions. It can compute up to about 64 digits of precision.

== License ==

 * See the file src/COPYING

== Upstream Contact ==
  SYMPOW does not appear to be maintained any longer, so there is no
  upstream web site.
  Mark Watkins, the package author, now works at Magma.
  Previous (possibly still usable) email is watkins@maths.usyd.edu.au

== Dependencies ==
 * GNU patch

== Special Update/Build Instructions ==
 * Some of the code is very dubious, and it is anyones guess really what
   the compiler does with it. For example, the following line exists in
   src/eulerfactors.c:

   if ((HECKE) && (d==1)) return hecke_good(p,ap,m,v);

   But since hecke_good is defined as returning void, it's hard to know
   exactly how this code behaves. I would not be surprised by any bugs
   that might show up. I (David Kirkby) would personally not trust this
   code much at all.
 * This is a difficult package to maintain. A trac ticket (#9758) has been
   opened to implement Watkins-Delaunay's algorithm for computing modular
   degrees in Sage. Once implemented, it should be possible to remove this
   package.
 * The package is configured such that the data files are in a directory
   below where 'sympow' is installed. If Sage is installed globally, then
   it will be impossible to create the data files without being root.
   This has been fixed in the Gentoo Linux distribution. Some information
   from Christopher can be see on http://trac.sagemath.org/sage_trac/ticket/9703
   This package will generate binary versions of all shipped datafiles,
   so these will work. However, creating totally new datafiles from scratch
   will not work.

== Changelog ==

=== sympow-1.018.1.p11 (Jeroen Demeyer, 19 Jan 2012) ===
 * #11920: Remove -fno-expensive-optimizations workaround, instead try
   various flags which might force 53-bit precision doubles.
 * Find out the actual FPU precision with config/fpubits1.c and
   config/fpubits2.c.
 * Move all x86 extended precision FPU-control word stuff from
   src/Configure to spkg-install
 * Generate binary datafiles when installing SYMPOW. This ensures that
   all users (not only the one which installed Sage) can use the standard
   datafiles.
 * execlp.patch: Use execlp() instead of execl() to execute "sh".  This
   is needed for the -new_data option to work (which surely could never
   have worked before).
 * Use `patch` instead of `cp` for patching.
 * Lots of small fixes in spkg-install.
 * Remove dist/debian directory.

=== sympow-1.018.1.p9 (Jeroen Demeyer, 2 May 2011) ===
 * #11226: Add flag -fno-expensive-optimizations when compiling with
   gcc 4.6.x on a ia64 system.  See also gcc bugzilla:
   http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48823

=== sympow-1.018.1.p8 (David Kirkby, 21st August 2010) ===
 * #9703 + #9166 Implement inline assembly code to set the control
   word of the floating point processor to round to an
   IEEE-754 double (53-bit mantissa, 64-bits in total), rather
   than the default extended precision. This resolves problems with
   doctest failures on Solaris 10 x86, OpenSolaris on x86 and Cygwin.
   This is in the file patches/fpu.c
 * Tidied up SPKG.txt, to conform to the Sage Developers Guide.
 * Move part of the contents of SPKG.txt to a file called 'email-exchange.txt'
   which shows some email exchanges between William Stein and Mark
   Watkins. It was previously here in SPKG.txt, but is rather out of place.
 * Changed the very badly written Configure script to work with any compiler
   (not gcc as before). Actually, since the C code is so badly written,
   the Sun compiler will not compile it, but at least the errors can be seen
   if one tries.
 * Changed the Configure script so the code to change the precision control
   of the floating point processor is implemented on any non-OS X system
   with an x86 CPU. It now no longer assumes Linux.
 * Removed code from spkg-install which tries to first build SYMPOW  with
   assembly code, then without it. The code must be old and redundant, as
   the varibles set are not anywhere in the SYMPOW source code.

=== sympow-1.018.1.p7 (David Kirkby, 25th May 2010) ===
 * #9029 Allow to build 64-bit

=== sympow-1.018.1.p6 (Michael Abshoff, November 30th, 2008) ===
 * add build fix for tcsh by Willem Jan Palenstijn (trac #4261)
 * small cleanups

=== sympow-1.018.1.p5 ===
 * make sure we pick gcc over cc
