SSPROG - a C-program Package ============================ Package version: 2.27 for Unix and Linux First version: Sometimes 1997 Latest update: 2010-03-20 Author ====== Stefan Spaennare, Lund, Sweden E-mail: stefan@spaennare.se Home page: http://www.spaennare.se/index.html Program page: http://www.spaennare.se/ssprog.html Contents ======== 1. General information 2. Disclaimer 3. How to compile 4. Future development 5. Package history 6. References 1. General information ====================== See the header of each C-program source code for information how to run the program etc. 2. Disclaimer ============= The following statement is valid for all the programs in this package: I make no warranties that this program is (1) free of errors, (2) consistent with any standard merchantability, or (3) meeting the requirements of a particular application. This software shall not, partly or as a whole, participate in a process, whose outcome can result in injury to a person or loss of property. It is solely designed for analytical work. Permission to use, copy, and distribute is hereby granted without fee, providing that the header above including this notice appears in all copies. 3. How to compile ================= >gcc -O3 -o program program.c -lm Or to compile all the programs in each directory run the file compall. I.e: >chmod +x compall >compall 4.Future development ==================== One or another small program will perhaps come (probably in the FUN directory).The procedures and functions in the man block of C-code of the programs in the NUMBERS directory will also get "how to use" comments. The add, sub and cmul procedures in these programs will get some temporary large variables so the a, b and c input variables can be the same variable. Note, this is work in progress so a new package version will probably come before end of April 2010. The old versions of the programs in the NUMBERS directory will also be kept in the package. 5. Package history ================== Whats new 2010-03-20 (2.27) --------------------------- Minor changes to this readme file. The programs cbrun2l.c and cbrun3l.c (in the PRIMES directory) now also come with 64-bit versions and pre- compiled executables with Intel icc C/C++ 11.1 compiler under Fedora 10 Linux. These executables (32- and 64-bit) are compiled for Intel Pentium III, Pentium 4 and Core 2 Duo/Quad processors as separate files. The Pentium 3 or 4 version also works fine on AMD Athlon CPUs or better. The 32-bit versions of these programs are now renamed to cbrun2l32.c and cbrun3l32.c and the 64-bit versions are named cbrun2l64.c and cbrun3l64.c. The sub directory for 32-bit versions is called ICC32EXE and 64-bit ICC64EXE. Source for GCC is found in GCCSRC. Whats new 2008-07-26 (2.26) --------------------------- Minor changes to this readme file. Whats new 2007-08-13 (2.25) --------------------------- The disclaimer notice has been made prettier for all the programs in the package. Very minor updates to the programs esieve.c, ptwins.c, cbrun.c, cbrun2.c, cbrun3.c, cbrunl.c, cbrun2l.c and cbrun3l.c (in the PRIMES directory). The main code has been somewhat prettified and shorter for the programs sspi.c, sseln2.c, ssgamma.c, ssgam134.c, sscatal.c, sszeta3.c, sszeta.c and sspieln2.c (in the NUMBERS directory). The programs have the same speed as before. Minor updates also to digit.c. Whats new 2007-07-28 (2.24) --------------------------- Major updates to the program lotto.c. The program lotto2.c is removed from the package. Minor updates to the program marith.c and the file marith.cfg. These programs are located in the FUN directory. Whats new 2007-07-27 (2.23) --------------------------- Major updates to the programs marith.c and rndpw.c (in the FUN directory). Whats new 2006-01-01 -------------------- Minor changes to marith.c (in the FUN directory). The programs cbrunl.c, cbrun2l.c and cbrun3l.c (in the PRIMES directory) now come with pre-compiled executables with Intel icc C/C++ 9.0 compiler under Fedora Core 4 Linux. Whats new 2005-06-19 -------------------- Minor corrections to the header of the source code of the programs in the PRIMES directory. In the PRIMES directory changes to the "compcbrunxl-icc" file to work with Fedora Core 4 Linux (and old gcc 3.23) using the "-gcc-name=gcc32" and "-i-static" options for the Intel 8.1 C/C++ compiler. The Intel compiler does not work with gcc 4.00 until version 9.0 is released. Whats new 2005-06-04 -------------------- The e-mail address of the author changed to "stefan@spaennare.se" and web links changed to the new home page and program page of the author ("http://www.spaennare.se/index.html" and "http://www.spaennare.se/ssprog.html") in the header of each C-program source code. References updated in the programs in the NUMBERS directory. Major changes to all the programs in the PRIMES directory. The programs cbrun2.c, cbrun3.c, cbrun2l.c and cbrun3l.c added. The programs cbrunl.c, cbrun2l.c and cbrun3l.c now come with pre-compiled executables with Intel C/C++ 8.1 compiler (included in the package). Separate readme file (readme_p.txt) in the PRIMES directory. Note, "latest update" and version number (if present) are only updated for the programs in the PRIMES directory, not for other programs in the package despite the changes in e-mail address, web links and references. Whats new 2004-06-23 -------------------- Minor changes to the text header of fac.c. Whats new 2004-02-04 -------------------- Minor changes to sscatal.c (in the NUMBERS directory). Whats new 2004-02-03 -------------------- The program sscatal.c added (in the NUMBERS directory). Whats new 2004-01-09 -------------------- The name of the Pi program (that uses Chudnovsky or Ramanujan series) has been changed to sspi.c (in the NUMBERS directory). Whats new 2003-10-07 -------------------- Very minor changes to the programs in the NUMBERS directory. Major changes to the program acker.c in the FUN directory. Whats new 2003-08-27 -------------------- The program sszeta.c added. Minor improvements to some procedures in the programs in the NUMBERS directory. Updated benchmarks. Minor changes to cbrun.c and cbrunl.c. Whats new 2003-07-24 -------------------- The program sszeta3.c added. Very minor changes to the other programs in the NUMBER directory. Whats new 2003-07-18 -------------------- These changes only affect the programs in the NUMBERS directory. The programs sseln2.c, ssgam134.c added. The program sspel2.c renamed to sspieln2.c. Extensive update of ssgamma.c and bug corrected. Functions for cube roots added. Multiplication version (mulversion) now set in the file "mulver.txt". Thus the programs ending with 'b' are removed. New or updated benchmarks for an Intel Celeron computer at 1400 MHz. Faster methods for calculating e=exp(1) are now moved from sspiel2.c to sseln2.c. Whats new 2003-06-30 -------------------- Improved FFT-multiplication (lmul) and up to 25 % faster inversions, divisions and square roots in sspibs.c, ssgamma.c and sspiel2.c. Whats new 2003-06-24 -------------------- Minor changes to sspibs.c, ssgamma.c and sspiel2.c. Whats new 2003-06-15 -------------------- The programs sspichu.c and ssgamma.c added. Some of the programs (sspichu.c, ssgamma.c, sspiel2.c, hexediv.c and fhex2dec.c) now use very fast FFT (fftsg_h.c) by Takuya Ooura. New benchmarks (for Intel Celeron CPU at 1400 MHz) added to these programs New references. The programs sspichu.c, ssgamma.c, sspiel2.c and digit.c are now located in the directory NUMBERS. The programs (ending with 'b' - sspichub.c, ssgammab.c and sspiel2b.c) use mulversion=2 (in the C-code of each program) to make it possible to calculate more than 100 million digits (although slower and more memory consuming than mulversion=1). Whats new 2003-03-29 -------------------- The program rndpw.c added. Whats new 2003-03-23 -------------------- Minor changes to cbrun.c and cbrunl.c. Whats new 2003-02-19 -------------------- Unused variables removed from the source code in all the programs. Minor changes in some programs. Whats new 2002-08-19 -------------------- Minor changes in the text header of sspiel2.c. Whats new 2002-07-15 -------------------- The programs cbrun.c and cbrunl.c added. New benchmarks with a 1200 MHz Celeron computer added to many of the programs. See the header of each C-program code. Whats new 2002-01-07 -------------------- The program marith.c added. Whats new 2000-09-02 -------------------- Very minor (non critical) changes to sspiel2.c. The program lotto.c now with automatic random seed generation. The old lotto program has been moved to lotto2.c Whats new 1999-09-25 -------------------- Minor speed improvements to sspiel2.c. The C-code has also been a little bit "prettier" and the procedures easier to use (fewer temporary parameters). Whats new 1999-09-18 -------------------- Significant speed improvements to sspiel2.c. Improvements to inversions, divisions and square roots. Borwein's 2-th order algorithm for pi added to sspiel2.c. Old benchmark results removed in sspiel2.c. New benchmarks for 600 MHz Pentium III added. Whats new 1999-08-08 -------------------- More information added to the header of the programs in the SSEHEX directory. Output filenames from ssehex.c, ssehex2.c and ssehex3.c changed to have less than 8 characters (that works with DOS). New benchmarks results added to the header of the programs in the SSEDEC directory. Whats new 1999-08-05 -------------------- The programs are divided into different directories. The directory SSEHEX containing programs to calculate e=exp(1) hexadecimal is added. Whats new 1999-07-28 -------------------- The program sspie.c has been changed to sspiel2.c. AGM algorithm for ln(2) and Newton's Iteration for e=exp(1) with AGM for ln(x) added. Whats new 1998-08-18 -------------------- Random number function (ran2) from Numerical Recipes in C, Second Edition used in some of the programs. Whats new 1997 -------------- First version of the program package sometimes 1997. 6. References ============= 1. Some of the algorithms are found on the web-page "Mathematical constants and computation" by Xavier Gourdon and Pascal Sebah: http://numbers.computation.free.fr/Constants/constants.html 2. The web-page "Fast Algorithms and the FEE Method", by Ekatherina A. Karatsuba: http://www.ccas.ru/personal/karatsuba/algen.htm 3. The web-page "The Karatsuba Method 'Divide and Conquer'", by Ekatherina A. Karatsuba: http://www.ccas.ru/personal/karatsuba/divcen.htm 4. The article "Fast evaluation of transcendental functions", Problems of Information Transmission, vol. 27, (1991), p. 339-360, by Ekatherina A. Karatsuba. 5. The article "Fast multiprecision evaluation of series of rational numbers", by Bruno Haible and Thomas Papanikolaou, 1997. 6. The program now use a very fast FFT (fftsg_h.c) by Takuya Ooura: http://momonga.t.u-tokyo.ac.jp/~ooura/ 7. "CLN - Class Library for Numbers" by Bruno Haible et. al: http://www.ginac.de/CLN/ 8. The documentation "Programs to Calculate some Mathematical Constants to Large Precision", by Stefan Spaennare. --------------------------------------------------------------- End of readme_l.txt file.