Mon Dec 18 2006 08:29:19 zimmerma Released version 6.1.2: changed copyright header from sp.h, to recognize the FSF for parts inspired or taken from gmp-impl.h. Mon May 01 2006 22:49:07 zimmerma -- r927 Released version 6.1. Mon May 01 2006 13:01:15 kruppa -- r923 * trunk/Fgw.c, trunk/main.c, trunk/ecm2.c: modified Small cleanups. Added exit code 143 when exiting due to signal. Sun Apr 02 2006 18:38:08 zimmerma -- r922 * trunk/INSTALL: modified updated to gmp-4.2 and ecm-6.1 Fri Mar 31 2006 13:36:34 zimmerma -- r921 * trunk/TODO: modified added item Wed Mar 22 2006 11:46:18 gaudry -- r920 * trunk/configure.in: modified When asm-redc is enabled, check whether the computer is not too hold, because the default asm code needs at least a PPro or a k7. Fri Mar 17 2006 15:31:58 zimmerma -- r919 * trunk/TODO, trunk/configure.in, trunk/Makefile.am: modified added missing sources in Makefile.am added suggestion from James Wanless Fri Mar 17 2006 14:18:39 zimmerma -- r918 * trunk/README.dev: modified updated ChangeLog instructions Fri Mar 17 2006 13:55:41 zimmerma -- r917 * trunk/ecm.1, trunk/ecm.xml, trunk/AUTHORS, trunk/TODO, trunk/configure.in, trunk/ChangeLog, trunk/README.dev, trunk/NEWS: modified updated NEWS/ChangeLog for 6.0.1 release Fri Mar 17 2006 08:51:14 zimmerma -- r916 * trunk/pm1.c, trunk/pp1.c, trunk/ecm.c, trunk/ecm-impl.h: modified default B2 is less aggressive (exponent 1.43 instead of 1.5) put exponent and costs as macros in ecm-impl.h Tue Mar 14 2006 15:45:26 zimmerma -- r915 * trunk/mpmod.c, trunk/test.ecm: modified fixed bug reported by Allan Steel Fri Mar 10 2006 15:42:07 zimmerma -- r914 * trunk/test.pp1: modified fixed new test to work on 32-bit machine too Fri Mar 10 2006 15:11:54 zimmerma -- r913 * trunk/test.pp1: modified added test case for P+1 bug Fri Mar 10 2006 14:45:29 zimmerma -- r912 * trunk/TODO: modified added workaround Fri Mar 10 2006 14:11:26 zimmerma -- r911 * trunk/TODO: modified added suggestion from Bernstein Tue Mar 07 2006 16:15:54 zimmerma -- r910 * trunk/lucas.c: modified fixed overflow bug in P+1 (unsigned int -> unsigned long) P+1 was probably not working for B1>2^32 on 64-bit machines Tue Mar 07 2006 15:59:57 zimmerma -- r909 * trunk/README: modified changed s into x0 Mon Mar 06 2006 13:49:35 gaudry -- r908 * (MANY FILES) : added * trunk/redc.asm: deleted * trunk/mpmod.c, trunk/ecm.c, trunk/configure.in, trunk/Makefile.am: modified Redc and combined Mul/Redc in asm for different archi (p4, athlon, amd64) Configure.in and Makefile.am modified accordingly. Wed Feb 22 2006 15:58:39 zimmerma -- r907 * trunk/mpmod.c, trunk/schoen_strass.c, trunk/Fgw.c: modified added warnings for uses of _mpz_realloc Wed Feb 22 2006 15:05:45 zimmerma -- r906 * trunk/TODO: modified modified one bug item Thu Feb 16 2006 13:40:16 gaudry -- r905 * trunk/ecm2.c: modified Fixed some memory bugs in multiplyW2n(), that occured in -v -v and/or WANT_ASSERT mode, because it is called with NULL as first arguments. Fixed a double free of variables "coeffs" and a missing free for fd. Wed Feb 15 2006 14:08:12 zimmerma -- r904 * trunk/TODO, trunk/INSTALL: modified modified instructions for gwnum Wed Feb 15 2006 13:50:49 zimmerma -- r903 * trunk/TODO, trunk/stage2.c: modified disable NTT for Fermat numbers Tue Feb 14 2006 10:49:15 zimmerma -- r902 * trunk/TODO: modified added more examples of problems with Fermat numbers Mon Feb 13 2006 13:06:33 zimmerma -- r901 * trunk/TODO: modified added item Thu Jan 19 2006 17:40:59 zimmerma -- r900 * trunk/TODO: modified added item in TODO Mon Jan 16 2006 21:47:11 zimmerma -- r899 * trunk/ecm.c, trunk/lucas.c: modified improved to 17-digit values of decimal constants used in PRAC Sun Jan 15 2006 21:31:16 kruppa -- r898 * trunk/pm1.c, trunk/pp1.c, trunk/ecm.c, trunk/stage2.c, trunk/ecm- impl.h: modified Added some stop_asap() checks to stage 2. Sun Jan 15 2006 09:13:20 zimmerma -- r897 * trunk/TODO: modified added item in TODO (CPUTIME) Fri Jan 13 2006 21:22:14 kruppa -- r896 * trunk/pm1.c, trunk/factor.c, trunk/pp1.c, trunk/ecm.c, trunk/main.c, trunk/ecm-impl.h, trunk/ecm.h: modified Signal handling for P+1 added, save files contain correct B1done value. Stage 2 and cleanup TBD. Thu Jan 12 2006 23:08:21 kruppa -- r895 * trunk/pm1.c, trunk/factor.c, trunk/pp1.c, trunk/ecm.c, trunk/main.c, trunk/configure.in, trunk/ecm.h: modified Add signal handler to exit gracefully. ECM and P-1 stage 1 mostly done, rest TBD. Wed Dec 21 2005 08:36:30 kruppa -- r894 * trunk/schoen_strass.c: modified Bugfix: static mpz_t gt might be used after being mpz_clear()'ed Wed Dec 21 2005 00:38:10 kruppa -- r893 * trunk/schoen_strass.c, trunk/stage2.c: modified Mem leak fix: clear static mpz_t in schoen_strass.c at end of stage 2. Wed Dec 21 2005 00:31:33 kruppa -- r892 * trunk/mpmod.c, trunk/test.ecm, trunk/listz.c, trunk/stage2.c, trunk/ecm2.c, trunk/ecm-impl.h: modified Print stage 2 prime of group order if factor was found and -v -v. Needs more polishing and not tested as much as I'd like yet. Sun Nov 13 2005 09:29:37 kruppa -- r891 * trunk/README, trunk/ecm.1, trunk/ecm.xml, trunk/main.c: modified Added -idlecmd option to pause or quit GMP-ECM when system is busy Sat Nov 12 2005 07:40:08 kruppa -- r890 * trunk/ecm.c: modified Tests in stage 1 if point at infinity is reached and prints message in verbose mode. Nice for finding group order of curves. Fri Nov 11 2005 07:18:51 zimmerma -- r889 * trunk/main.c: modified changed champs information, and updated minimal digit size to get champions Thu Oct 27 2005 11:11:19 zimmerma -- r888 * trunk/ecm.1: modified file generated from ecm.xml, with empty lines manually removed in the last paragraph Thu Oct 27 2005 11:01:53 zimmerma -- r887 * trunk/ecm.xml: modified added line-breaks in AUTHORS section Thu Oct 27 2005 07:54:42 zimmerma -- r886 * trunk/README.dev: modified add hint for autoreconf Wed Oct 26 2005 07:51:56 zimmerma -- r885 * trunk/ecm-impl.h: modified patch for old gcc versions Wed Oct 26 2005 07:01:04 zimmerma -- r884 * trunk/TODO: modified added item Mon Oct 24 2005 17:13:15 zimmerma -- r883 * trunk/ecm.c: modified changed default B2 for ecm Sat Oct 22 2005 15:45:43 zimmerma -- r882 * trunk/AUTHORS: modified added pointer to gforge Thu Sep 29 2005 19:26:35 zimmerma -- r881 * trunk/runecm2.c: modified fixed potential buffer overrun Thu Sep 29 2005 12:08:52 zimmerma -- r880 * trunk/runecm2.c: added contribution from Torbjo"rn Wed Sep 28 2005 13:30:51 kruppa -- r879 * trunk/ecm.c: modified Added warning about prac() bug (calling add3() with identical points) Sat Sep 10 2005 19:56:55 kruppa -- r878 * trunk/README, trunk/main.c: modified Slight cleanup of shell command code, replaced "-prp*" section of README by shellcmd section. Thu Sep 08 2005 19:51:02 kruppa -- r877 * trunk/README, trunk/candi.c, trunk/main.c, trunk/TODO: modified Made -one work better when used with -resume Tue Sep 06 2005 14:02:20 zimmerma -- r876 * trunk/TODO: modified added item Mon Sep 05 2005 12:09:53 zimmerma -- r875 * trunk/Makefile.am: modified added missing entries for "make dist" Thu Sep 01 2005 15:17:44 dnewman -- r874 * trunk/stage2.c: modified Make memory_use take into account sp_F. Thu Sep 01 2005 13:15:42 dnewman -- r873 * trunk/stage2.c, trunk/ecm-impl.h, trunk/ecm_ntt.c, trunk/tune.c: modified Precompute transform of F for use in ntt_PrerevertDivision. Wed Aug 24 2005 13:55:52 zimmerma -- r872 * trunk/check.mpl: modified added add3/duplicate code in Montgomery's coordinates Sat Aug 20 2005 18:41:19 kruppa -- r871 * trunk/TODO: modified Marked -stage1time done, removed shell commands entry (also done) Sat Aug 20 2005 18:37:59 kruppa -- r870 * trunk/Fgw.c, trunk/ecm.c: modified Assume ecm stage 1 always available in GWNUM library, pass error codes from gw_stage_1() back correctly Sat Aug 20 2005 18:16:24 kruppa -- r869 * trunk/test.ecm: modified Some more tests for base 2 numbers, for testing the GWNUM stage 1 Fri Aug 19 2005 21:00:35 kruppa -- r868 * trunk/Makefile.am: modified Fixed filenames in EXTRA_DIST Fri Aug 19 2005 14:23:03 dnewman -- r867 * (MANY FILES) : modified Comprehensive header cleanup; in particular, headers now satisfy their dependencies on other headers. Moved the -n / -nn renicing code from main.c to macros NICE10 / NICE20 in ecm-ecm.h. Added the configure option --enable-memory-debug to conditionally compile memory.c. Fixed some printf format/argument mismatches in tune.c and memory.c. Added some info on NTT and tune to README and documented -no-ntt in ecm.xml. Wed Aug 17 2005 22:47:58 dnewman -- r866 * trunk/mpzspv.c, trunk/TODO, trunk/configure.in, trunk/mpzspm.c, trunk/sp.h, trunk/spv.c, trunk/tune.c: modified Changed mpzspm_t to use spm's instead of __spm_struct's. Added code to use memmove in spv_set. Removed all bovine activity in configure.in. Minor update to TODO. Wed Aug 17 2005 16:11:28 dnewman -- r865 * trunk/schoen_strass.c, trunk/spv.c, trunk/ecm-gmp.h, trunk/tune.c: modified Changed RNG in tune.c to avoid using get_random_ui() as on some platforms (MinGW) it's too slow to be called many times. Fixed declarations of __gmpn_add_nc and __gmpn_mod_34lsub1 which were causing segfaults under Cygwin. Wed Aug 10 2005 12:22:34 dnewman -- r864 * trunk/spm.c, trunk/sp.c, trunk/sp.h, trunk/tune.c: modified Fixed potential problem with spm_init's generation of primitive roots. Tue Aug 09 2005 16:31:34 dnewman -- r863 * trunk/tune.c: modified Changed GRANULARITY to 250ms for more precision. Added a '-v' cmdline option that prints every function evaluation to stderr; also added a TUNE_SLOW define to give possibly more consistent results. Wed Aug 03 2005 20:45:24 dnewman -- r862 * trunk/nbdigits.c: deleted * trunk/auxi.c: modified Rewrote nb_digits() to remove dependency on string.h and FREE(). Deleted an empty file. Wed Aug 03 2005 20:13:48 dnewman -- r861 * trunk/redc.asm: added * trunk/redc.s: deleted * trunk/acinclude.m4, trunk/configure.in, trunk/Makefile.am: modified Imported some more routines from GMP's acinclude.m4 to fix problem with --enable-asm-redc under windows. Renamed redc.s back to redc.asm as it now goes through m4 before the assembler. Fixed a minor issue with architecture detection in configure.in. Wed Aug 03 2005 09:14:19 dnewman -- r860 * trunk/ecm-params.h.athlon, trunk/ecm-params.h.powerpc7450: added * trunk/ecm-params.h.athlonxp, trunk/ecm-params.h.power4: deleted * trunk/configure.in: modified Some tweaks to ecm-params detection. Wed Aug 03 2005 08:42:27 dnewman -- r859 * trunk/config.sub, trunk/configfsf.guess, trunk/config.guess, trunk/configfsf.sub: added Added GMP's finer-grained CPU detection (useful for selecting the right ecm-params.h) Tue Aug 02 2005 18:47:24 kruppa -- r858 * trunk/ecm.1: added Adding man page ecm.1 to CVS (xsltproc/docbook not available everywhere) Tue Aug 02 2005 17:46:09 dnewman -- r857 * trunk/pm1.c, trunk/factor.c, trunk/pp1.c, trunk/bestd.c, trunk/TODO, trunk/ecm.c, trunk/main.c, trunk/configure.in, trunk/stage2.c, trunk/Makefile.am, trunk/ecm-impl.h, trunk/ecm.h, trunk/tune.c: modified Removed the configure option --enable-ntt. Now ntt code is used by default but can be disabled with the command-line option -no-ntt. Lots of changes to function prototypes to accommodate this. Tue Aug 02 2005 16:58:46 kruppa -- r856 * trunk/test.pp1, trunk/test.ecm, trunk/test.pm1: modified Changed syntax of function to sh (Bourne shell) instead of bash Tue Aug 02 2005 16:30:21 dnewman -- r855 * trunk/getprime2.c, trunk/random2.c: deleted * trunk/test.pp1, trunk/random.c, trunk/test.ecm, trunk/Makefile.am, trunk/test.pm1: modified Changed test script shell to /bin/sh as MinGW doesn't have bash. Makefile.am now replaces the getprime2.c and random2.c hacks. Fixed CryptGenRandom() in random.c (maybe) and cleaned up the #includes a bit. Tue Aug 02 2005 15:14:30 kruppa -- r854 * trunk/bestd.c, trunk/ks-multiply.c, trunk/tune.c, trunk/trial.c: modified Fixed compiler warnings with gcc -Wall -W Tue Aug 02 2005 10:06:02 kruppa -- r853 * trunk/ecm.xml: modified Removed -prp* section, added shell commands section. Fixed exit code tables. Mon Aug 01 2005 22:52:06 dnewman -- r852 * trunk/main.c, trunk/trial.c: modified Cleanups to trial.c. Bugfix to probab_prime_p. Mon Aug 01 2005 22:00:03 kruppa -- r851 * trunk/smartprp.c: deleted * trunk/candi.c, trunk/main.c, trunk/configure.in, trunk/Makefile.am, trunk/ecm-ecm.h: modified Removed -prp* options and smartprp.c, added -prpcmd option Mon Aug 01 2005 20:13:11 kruppa -- r850 * trunk/pm1.c, trunk/factor.c, trunk/pp1.c, trunk/random.c, trunk/auxlib.c, trunk/main.c, trunk/ecm.c, trunk/stage2.c, trunk/ecm2.c, trunk/ecm-impl.h, trunk/memory.c, trunk/ecm.h, trunk /ks-multiply.c, trunk/tune.c: modified Added -stage1time option. All time-keeping variables are of type long now. Mon Aug 01 2005 16:45:56 kruppa -- r849 * trunk/mul_fft.c: deleted Not needed for GMP-ECM (part of GMP) Sun Jul 31 2005 18:10:36 kruppa -- r848 * trunk/mpmod.c, trunk/factor.c, trunk/bestd.c, trunk/auxlib.c, trunk/TODO, trunk/main.c, trunk/ecm.c, trunk/listz.c, trunk/stage2.c, trunk/ecm2.c: modified Allocate more memory to mpz_t's in stage 2 to avoid reallocs. More allocation locations tagged for mem leak/realloc debugging. Fixed segfault in stage 2 (if factor found in roots of F) Sun Jul 31 2005 18:00:32 kruppa -- r847 * trunk/memory.c: modified Prints peak memory allocation Sat Jul 30 2005 15:24:49 kruppa -- r846 * trunk/mpmod.c, trunk/median.c, trunk/TODO, trunk/listz.c, trunk/stage2.c, trunk/ecm2.c, trunk/ecm-impl.h, trunk/memory.c, trunk/ks-multiply.c, trunk/ecm-ecm.h, trunk/polyeval.c: modified Some changes to avoid unnecessary reallocs. memory.c can print location of mpz_init() that led to mem leak/realloc (if tagged) Sat Jul 30 2005 15:08:14 kruppa -- r845 * trunk/configure.in: modified Looks for DocBook stylesheets in several directories Sat Jul 30 2005 15:07:08 kruppa -- r844 * trunk/README.lib: modified Added maxmem entry Fri Jul 29 2005 13:50:56 kruppa -- r843 * trunk/random.c: modified Removed leftover debug output Thu Jul 28 2005 23:17:58 kruppa -- r842 * trunk/pm1.c, trunk/factor.c, trunk/random.c, trunk/pp1.c, trunk/ecm.c, trunk/main.c, trunk/ecm.h: modified Seed RNG only once per program invocation. Use GetRandCrypt() under Windows, but untested yet: Wine lacks required dlls. Thu Jul 28 2005 20:55:16 kruppa -- r841 * trunk/pm1.c, trunk/factor.c, trunk/pp1.c, trunk/bestd.c, trunk/ecm.xml, trunk/TODO, trunk/auxlib.c, trunk/ecm.c, trunk/main.c, trunk/stage2.c, trunk/ecm2.c, trunk/ecm-impl.h, trunk/rho.c, trunk/ecm.h: modified Added -maxmem option. Memory estimate not perfectly accurate yet. Sun Jul 24 2005 21:40:14 kruppa -- r840 * trunk/pm1.c, trunk/test.pp1, trunk/pp1.c, trunk/bestd.c, trunk/test.ecm, trunk/ecm.c, trunk/stage2.c, trunk/test.pm1: modified Fixed bug that occurred when B2 < B2min (did a stage 2, but shouldn't) Sun Jul 24 2005 19:51:36 kruppa -- r839 * trunk/Fgw.c, trunk/ecm.c, trunk/main.c: modified Cleanups in Fgw.c Sat Jul 23 2005 23:00:51 kruppa -- r838 * trunk/ecm.xml: modified Added chapter for exit status values Sat Jul 23 2005 21:51:24 kruppa -- r837 * trunk/mpmod.c, trunk/schoen_strass.c, trunk/configure.in, trunk/Makefile.am: modified Correctly aligns GWDATA segment when GWNUM libaray is used. Fixed compilation of tune when using GWNUM. Fri Jul 22 2005 21:14:45 kruppa -- r836 * trunk/Fgw.c, trunk/Makefile.am: modified Speedup for mpz_t <-> gwnum conversion. An elusive bug remains. Thu Jul 21 2005 13:22:12 dnewman -- r835 * trunk/tune2.c: deleted * trunk/ecm-params.h.alpha-ev6, trunk/mpmod.c, trunk/ecm- params.h.default, trunk/TODO, trunk/ecm-params.h.athlonxp, trunk/mul_lo.c, trunk/sp.h, trunk/Makefile.am, trunk/ecm- params.h.athlon64, trunk/ecm_ntt.c, trunk/mpzspv.c, trunk/ntt_gfp.c, trunk/configure.in, trunk/ecm-impl.h, trunk/ecm- params.h.power4, trunk/ecm-params.h.alpha-ev5, trunk/tune.c: modified Added mpn_mul_n tuning to tune.c and erased tune2.c. Moved all the '#ifdef TUNE' blocks to sp.h and ecm-impl.h. Updated ecm-params.*. Fixed minor bug in configure.in. Updated TODO. Wed Jul 20 2005 23:37:17 dnewman -- r834 * trunk/test.pp1, trunk/mpzspv.c, trunk/test.ecm, trunk/auxlib.c, trunk/TODO, trunk/configure.in, trunk/mpzspm.c, trunk/spv.c, trunk/Makefile.am, trunk/test.pm1, trunk/tune.c: modified Complete overhaul of cputime () in auxlib.c, including changes to configure.in. This fixes the mingw issue of cputime () giving calendar time instead of process time. Tested on cygwin, mingw, athlon, athlon 64, alpha. Fixed tune.c to use elltime (). Some portability fixes in spv.c, mpzspv.c. Changed /bin/bash to /bin/sh in the test scripts. Shortened an unnecessarily long expression in mpzspm.c. Updated TODO. Tue Jul 19 2005 16:13:28 dnewman -- r833 * trunk/TODO, trunk/TODO.sp, trunk/stage2.c: modified Adjusted the expected memory calculation to take into account -treefile and NTT memory. Removed some items from TODO, TODO.sp Tue Jul 19 2005 13:49:33 dnewman -- r832 * trunk/tune-ecm_ntt.c, trunk/tune-mpmod.c, trunk/tune-mpzspv.c, trunk/tune-ntt_gfp.c: deleted * trunk/configure.in, trunk/Makefile.am, trunk/tune.c: modified Removed the dirty hack used to compile tune separately from the main code. Fixed a segfault bug in tune.c. Now configure links ecm- params.h.xxx to ecm-params.h (but see the TODO in configure.in) Fri Jul 15 2005 14:59:11 dnewman -- r831 * trunk/ecm-params.h.power4: added * trunk/mpzspv.c, trunk/mpzspm.c, trunk/spv.c: modified Corrected header for malloc() to fix compilation problem on OS X. Added ecm-params.h for the power4 line of cpus. Wed Jul 13 2005 20:53:53 dnewman -- r830 * trunk/ecm-params.h.alpha-ev6, trunk/ecm-params.h.default, trunk /tune-mpmod.c, trunk/ecm-params.h.athlonxp, trunk/ecm- params.h.athlon64, trunk/tune-ecm_ntt.c, trunk/tune-mpzspv.c, trunk /tune-ntt_gfp.c, trunk/ecm-params.h.alpha-ev5: added * trunk/mpmod.c, trunk/sp.h, trunk/Makefile.am, trunk/ecm_ntt.c, trunk/test.pm1, trunk/test.pp1, trunk/mpzspv.c, trunk/ntt_gfp.c, trunk/test.ecm, trunk/ecm-impl.h, trunk/tune.c: modified Added computation of NTT thresholds to tune.c by means of tune-*.c. Added ecm-params target to Makefile.am and ecm-params.h for some architectures. Fixed minor problem in test.* that was causing script errors on alphas. Wed Jul 13 2005 10:35:28 dnewman -- r829 * trunk/ntt_gfp.c, trunk/configure.in, trunk/sp.h, trunk/tune.c: modified Rewrote tune.c to use a function pointer framework for computing thresholds. Removed a redundant line from configure.in. Commented out unused functions in ntt_gfp.c. Tue Jul 12 2005 17:19:19 kruppa -- r828 * trunk/getprime.c, trunk/mpmod.c, trunk/factor.c, trunk/schoen_strass.c, trunk/main.c, trunk/stage2.c, trunk/ecm2.c, trunk/eval.c, trunk/test.pm1, trunk/test.pp1, trunk/pm1.c, trunk/pp1.c, trunk/test.ecm, trunk/ecm.c, trunk/lucas.c, trunk/ecm- impl.h, trunk/ecm.h, trunk/ecm-ecm.h, trunk/tune.c: modified Return code of ecm reflects primality of factor (if any) and cofactor. Renamed MOD_* macros to ECM_MOD_* and moved to ecm.h Mon Jul 11 2005 22:19:32 kruppa -- r827 * trunk/TODO: modified Removed entries for Montgomery roots, moving param selection out of stage 2. Added entries for fixing cputime and RNG seeding under Windows Mon Jul 11 2005 09:48:56 zimmerma -- r826 * trunk/mpmod.c: modified fixed bug in mpmod_init (use of mpz_sizeinbase instead of mpz_size) Sat Jul 09 2005 22:05:42 kruppa -- r825 * trunk/ecm.c, trunk/ecm2.c, trunk/ecm-impl.h: modified Added code for generating roots of F,G for ECM in Montgomery coordinates if S==1. Does now work yet and will probably never be fast. Disabled by default Thu Jul 07 2005 13:07:58 kruppa -- r824 * trunk/mpmod.c, trunk/pm1.c, trunk/ecm-impl.h: modified Fixes bug introduced with negative i0 Wed Jul 06 2005 15:29:12 kruppa -- r823 * trunk/pp1.c, trunk/stage2.c, trunk/ecm-impl.h: modified Fixes bug in P+1 introduced in last update Wed Jul 06 2005 07:34:04 dnewman -- r822 * trunk/mpzspv.c, trunk/TODO.sp: modified Rewrote mpzspv_to_mpzv to use a constant amount of memory, with a small resulting speedup. Updated TODO.sp. Wed Jul 06 2005 06:37:19 dnewman -- r821 * trunk/acinclude.m4: added * trunk/configure.in, trunk/Makefile.am: modified Some improvements to configure.in. Now --enable-redc verifies that the cpu really is a 32-bit x86 (with the help of a macro in acinclude.m4), and the manpage is only compiled if xsltproc and docbook.xsl are present. Tue Jul 05 2005 22:00:03 dnewman -- r820 * trunk/Fgw.c, trunk/TODO, trunk/configure.in, trunk/Makefile.am, trunk/ecm-impl.h: modified Added options --enable-asm-redc and --enable-ntt - now the gwnum, redc.s and ntt code compiles conditionally. Removed corresponding items from TODO, added one more. Tue Jul 05 2005 21:05:43 dnewman -- r819 * trunk/redc.s: added * trunk/redc.asm: deleted Renamed redc.asm to redc.s Mon Jul 04 2005 22:24:06 dnewman -- r818 * trunk/stage2.c: modified Changed how sp_num is displayed when using -v Mon Jul 04 2005 21:13:00 kruppa -- r817 * trunk/mpmod.c, trunk/pm1.c, trunk/schoen_strass.c, trunk/resume.c, trunk/bestd.c, trunk/auxlib.c, trunk/stage2.c, trunk/rho.c, trunk/ecm_ntt.c, trunk/ecm-gmp.h, trunk/ecm-ecm.h, trunk/polyeval.c: modified Some cleanups to avoid compiler warnings Mon Jul 04 2005 20:20:52 dnewman -- r816 * trunk/configure.in: modified Removed AC_FUNC_MALLOC and AC_FUNC_REALLOC from configure.in, see http://lists.gnu.org/archive/html/bug-autoconf/2002-10/msg00075.html Mon Jul 04 2005 19:49:38 dnewman -- r815 * trunk/mpzspv.c, trunk/sp.h, trunk/ecm_ntt.c: modified Added missing config.h include to sp.h. Commented memory usage in many of the ntt functions. Reduced memory usage of mpzspv_normalise, resulting in a speedup. Mon Jul 04 2005 19:43:14 kruppa -- r814 * trunk/ecm2.c: modified Replaced variable length array in multiplyW2n with an mpz_t Mon Jul 04 2005 18:45:57 dnewman -- r813 * trunk/TODO: modified Added estimated memory item to TODO. Mon Jul 04 2005 06:39:03 dnewman -- r812 * (MANY FILES) : modified Replaced snprintf with malloc + sprintf throughout. Fixed incorrect prototype for ceil_log2(). Removed prototype for (static) usage(). Changed #include "gmp.h" to #include throughout. Sun Jul 03 2005 21:33:49 kruppa -- r811 * trunk/pm1.c, trunk/pp1.c, trunk/bestd.c, trunk/ecm.c, trunk/main.c, trunk/listz.c, trunk/stage2.c, trunk/ecm2.c, trunk/ecm-impl.h, trunk/ecm.h: modified Moved selection of dF, k, d1, d2 out of stage 2 so correct parameters can be printed immediately. Print expected number of curves before stage 1. Made dF and k unsigned long throughout. Sun Jul 03 2005 21:12:34 dnewman -- r810 * trunk/mpmod.c, trunk/schoen_strass.c, trunk/mpzspv.c, trunk/random.c, trunk/main.c, trunk/listz.c, trunk/configure.in, trunk/stage2.c, trunk/sp.h, trunk/spv.c, trunk/ecm-impl.h, trunk/ecm_ntt.c, trunk/ks-multiply.c, trunk/ecm-ecm.h, trunk/polyeval.c: modified Preliminary changes to configure script, now configure.in generates config.h. Added some autoconf checks. Renamed some #defines for standardisation purposes. Commented out some unused functions in spv.c. Sat Jul 02 2005 19:47:25 kruppa -- r809 * trunk/TODO: modified Some updates Sat Jul 02 2005 19:35:30 kruppa -- r808 * trunk/pp1.c, trunk/bestd.c, trunk/ecm2.c: modified Code to init roots of G can deal with negative i0 now Sat Jul 02 2005 16:18:28 dnewman -- r807 * trunk/sp.c, trunk/sp.h: modified Added 64-bit primality test for 64-bit machines. Defined UDItype in sp.h for longlong.h (fixes compilation on Athlon 64). Sat Jul 02 2005 15:26:32 kruppa -- r806 * trunk/pm1.c, trunk/pp1.c, trunk/stage2.c, trunk/ecm2.c: modified Cleanup. Removed redundant variable "s", using "i0" instead Sat Jul 02 2005 10:21:56 kruppa -- r805 * trunk/Fgw.c: modified Added dummy function to avoid "empty file" warning. To be fixed, use conditional compilation instead Sat Jul 02 2005 10:09:01 kruppa -- r804 * trunk/stage2.c: modified Removed stray "%" (caused segfault) Sat Jul 02 2005 09:40:34 kruppa -- r803 * trunk/mpzspv.c: modified Added for valloc() etc. Fixes crash on Sparc v9 Fri Jul 01 2005 20:08:28 kruppa -- r802 * trunk/stage2.c: modified Avoid floating point division by 0. when printing expected nr. of curves Thu Jun 30 2005 22:41:30 dnewman -- r801 * trunk/tune2.c, trunk/schoen_strass.c, trunk/TODO, trunk/configure.in, trunk/stage2.c, trunk/mul_lo.c, trunk/sp.h, trunk/ecm-impl.h: modified Added item to TODO. Fixed compilation for when HAVE_NTT not defined. Added AC_C_INLINE to configure.in and changed INLINE to inline everywhere. Wed Jun 15 2005 12:28:17 zimmerma -- r800 * trunk/TODO: modified added new item Mon Jun 13 2005 12:31:58 dnewman -- r799 * trunk/mpzspv.c, trunk/ecm_ntt.c: modified Minor fixes to header inclusion. Thu Jun 09 2005 14:35:21 dnewman -- r798 * trunk/ecm_ntt.c: modified Fixed potential segfault Thu Jun 09 2005 14:00:38 dnewman -- r797 * trunk/mpzspv.c, trunk/ntt_gfp.c, trunk/Fgw.c, trunk/stage2.c, trunk/spv.c, trunk/ecm_ntt.c: modified Removed declaration-within-code ISO-C unorthodoxy Thu Jun 09 2005 13:17:57 zimmerma -- r796 * trunk/stage2.c: modified // -> /* ... */ Thu Jun 09 2005 13:13:49 zimmerma -- r795 * trunk/sp.h: modified removed C++-style comments Thu Jun 09 2005 13:12:34 zimmerma -- r794 * trunk/Makefile.am: modified added longlong.h in noinst_HEADERS Thu Jun 09 2005 12:05:05 dnewman -- r793 * trunk/stage2.c, trunk/ecm-impl.h, trunk/ecm_ntt.c: modified Added -treefile support to ntt_PolyFromRoots_Tree and ntt_polyevalT Tue Jun 07 2005 19:34:46 kruppa -- r792 * trunk/rho.c: modified Minor cleanups (no change in functionality) Tue Jun 07 2005 19:32:43 kruppa -- r791 * trunk/mpmod.c, trunk/Fgw.c, trunk/ecm.c, trunk/ecm-impl.h: modified Interface to Woltman's GWNUM stage 1 for ECM Wed May 18 2005 11:56:07 kruppa -- r790 * trunk/mpzspv.c: modified #ifdef'd an malloc_usable_size() Sun Apr 24 2005 13:40:50 dnewman -- r789 * trunk/mpzspv.c, trunk/configure.in: modified Check for malloc_usable_size in autoconf as not all libc's have it. Sat Apr 23 2005 04:57:32 zimmerma -- r788 * trunk/getprime.c: modified improved getprime main loop Mon Apr 11 2005 16:12:23 dnewman -- r787 * trunk/ntt_gfp.c: modified Changed large length DIT's to use a recursive algorithm, rather than scramble + DIF + scramble. Sun Apr 10 2005 14:50:51 kruppa -- r786 * trunk/TODO: modified Added sliding window multiplication for ECM entry Thu Apr 07 2005 16:07:06 dnewman -- r785 * trunk/mpzspv.c: added * trunk/spm.c, trunk/ntt_gfp.c, trunk/stage2.c, trunk/sp.h, trunk/spv.c: modified Changed mpzspp to mpzspv and mpzp to mpzv. Added mpzspv_verify and lots of mpzspv assertions. Minor speedup by using valloc rather than malloc for sp coeff alignment. Speedup for ntt_PolyFromRoots. Memory reduction and speedup for ntt_polyevalT, also fixed a memory leak. mpzspv_to_mpzv no longer clobbers the input. Minor cosmetic changes. Fixed (probably) and documented the upper bound on sp_num in mpzspm_init. Check for some malloc errors. Thu Apr 07 2005 15:48:30 dnewman -- r784 * trunk/mpzspp.c: deleted * trunk/TODO.sp, trunk/mpzspm.c, trunk/Makefile.am, trunk/ecm-impl.h, trunk/ecm_ntt.c: modified Renamed mpzspp.c to mpzspv.c Tue Apr 05 2005 17:43:10 kruppa -- r783 * trunk/main.c: modified Added -faccmd option, compiled in only if WANT_FACCMD is defined Sat Apr 02 2005 00:40:57 dnewman -- r782 * trunk/stage2.c, trunk/sp.h, trunk/ecm-impl.h, trunk/mpzspp.c, trunk/ecm_ntt.c, trunk/polyeval.c: modified Added a preliminary version of ntt_polyevalT (without treefile support) and a couple of helper routines in mpzspp.c. Minor change to alignment of sp_invF. Un-static'd TUpTree in polyeval.c so ntt_polyevalT can use it. Minor change to thresholds in sp.h. Fri Apr 01 2005 08:15:57 kruppa -- r781 * trunk/NEWS: modified Added news entries for 6.0.1 Thu Mar 31 2005 21:57:41 dnewman -- r780 * trunk/TODO.sp, trunk/stage2.c, trunk/sp.h, trunk/ecm-impl.h, trunk/mpzspp.c, trunk/ecm_ntt.c: modified Adjusted functions in ecm_ntt.c so mpzspm_init is now only called once (ever). Abandoned the "automatic transform" idea. Rewrote ntt_PolyInvert and saved a transform per level. Rewrote ntt_PrerevertDivision to use a cached transform of 1/F. Fixed potential bug in mpzspp_normalise. Updated TODO.sp Thu Mar 31 2005 21:50:35 kruppa -- r779 * trunk/INSTALL: modified Added detail to, removed typo from Win install instruction Thu Mar 31 2005 19:35:36 fousse -- r778 * trunk/INSTALL: modified Typo. Thu Mar 31 2005 19:22:16 kruppa -- r777 * trunk/INSTALL: modified Added install instructions for Windows/MinGW Wed Mar 30 2005 15:53:29 kruppa -- r776 * trunk/README: modified Updated Note on ECM extra smoothness Wed Mar 30 2005 15:34:47 kruppa -- r775 * trunk/rho.c: modified Remove GSL dilog_series code (is GPL, not LGPL). Changed EXTRA_SMOOTHNESS to 23.4 (Montgomery's value) Mon Mar 28 2005 18:07:54 kruppa -- r774 * trunk/TODO: modified Added shell command on event entry Mon Mar 28 2005 18:05:52 kruppa -- r773 * trunk/main.c: modified Fix segfault when parsing B2, work around MinGW scanf() bug Mon Mar 28 2005 18:04:57 kruppa -- r772 * trunk/stage2.c, trunk/rho.c: modified Free rhotable memory at end of stage 2 Wed Mar 23 2005 19:45:30 zimmerma -- r771 * trunk/ecm-impl.h: modified added missing macro Wed Mar 23 2005 19:36:35 zimmerma -- r770 * trunk/pp1.c, trunk/ecm.c, trunk/mul_lo.c: modified added comments and normalization when FULL_REDUCTION is not defined Wed Mar 23 2005 17:07:25 kruppa -- r769 * trunk/TODO: modified Added negative i0, composite d2, avoiding reallocs, getting bestD() out of stage 2. Added release targets for some entries. Tue Mar 22 2005 15:02:43 zimmerma -- r768 * trunk/bestd.c, trunk/TODO: modified added one TODO item added one dF value (600600) Mon Mar 14 2005 01:24:18 dnewman -- r767 * trunk/ntt_gfp.c, trunk/sp.h, trunk/spv.c, trunk/mpzspp.c, trunk/ecm_ntt.c: modified Started work on a framework for transform caching - now mpzspp's should automatically cache transforms and normalise. Added mpzspp_[to/from]_ntt functions to facilitate this and help simplify ntt_PrerevertDivision. Fixed an incorrect assertion in spv_mul. Sat Mar 12 2005 19:24:44 dnewman -- r766 * trunk/sp.h, trunk/mpzspp.c, trunk/ecm_ntt.c: modified mpzspp_t's are now passed by reference instead of by value. Tue Mar 08 2005 17:22:18 dnewman -- r765 * trunk/listz.c: modified Fixed a bug in list_neg Tue Mar 08 2005 13:50:34 zimmerma -- r764 * trunk/listz.c: modified fixed potential bug in list_neg Tue Mar 08 2005 13:35:27 dnewman -- r763 * trunk/ecm.xml: modified Corrected Dave Newman's email address from firstname.lastname@... to david.lastname@... Tue Mar 08 2005 01:21:37 dnewman -- r762 * trunk/sp.h, trunk/ecm_ntt.c: modified Unrolled recursion in ntt_PolyInvert and added a DEBUG block to verify it gives the right answer. Adjusted NTT_POLYINVERT_THRESHOLD in sp.h Mon Mar 07 2005 11:57:47 dnewman -- r761 * trunk/sp.h, trunk/ecm_ntt.c: modified Rewrote ntt_PolyInvert. This seems to stop the "Found input number N" errors. Adjusted POLYINVERT_NTT_THRESHOLD accordingly. Sun Mar 06 2005 19:21:41 kruppa -- r760 * trunk/ecm.xml: modified Small corrections, Sch"onhage now spelled with oe. Sun Mar 06 2005 13:29:07 zimmerma -- r759 * trunk/TODO, trunk/configure.in: modified changed version to 6.1 added item in TODO Sat Mar 05 2005 21:29:25 zimmerma -- r758 * trunk/resume.c, trunk/main.c, trunk/eval.c, trunk/ecm.h: modified patch for Apple ('\r' instead of '\n' for newline) Fri Mar 04 2005 20:46:07 kruppa -- r757 * trunk/README.lib, trunk/main.c, trunk/INSTALL: modified Small correction to --help output (missing abs bars in -base2 option) Fri Mar 04 2005 13:05:24 kruppa -- r756 * trunk/Fgw.c: modified Added copyright notice for GWNUM based code Fri Mar 04 2005 12:33:06 dnewman -- r755 * trunk/spm.c, trunk/ntt_gfp.c, trunk/sp.c, trunk/longlong.h, trunk/mpzspm.c, trunk/sp.h, trunk/spv.c, trunk/ecm_ntt.c, trunk/mpzspp.c: modified added licence headers Fri Mar 04 2005 12:07:47 dnewman -- r754 * trunk/ecm-impl.h: modified added ecm-specific ntt functions Fri Mar 04 2005 11:51:38 dnewman -- r753 * trunk/stage2.c: modified added HAVE_NTT option to enable sp code, changed dF to be always a power-of-two Fri Mar 04 2005 11:49:40 dnewman -- r752 * trunk/spv.c: added added spv.c Fri Mar 04 2005 11:49:29 dnewman -- r751 * trunk/spm.c: added added spm.c Fri Mar 04 2005 11:49:04 dnewman -- r750 * trunk/ntt_gfp.c: added added ntt_gfp.c Fri Mar 04 2005 11:48:47 dnewman -- r749 * trunk/mpzspp.c: added added mpzspp.c Fri Mar 04 2005 11:48:29 dnewman -- r748 * trunk/mpzspm.c: added added mpzspm.c Fri Mar 04 2005 11:48:08 dnewman -- r747 * trunk/longlong.h: added added longlong.h (copy from gmp-4.1.4) Fri Mar 04 2005 11:47:33 dnewman -- r746 * trunk/listz.c: modified removed static from list_mul and list_neg so the sp code can use them Fri Mar 04 2005 11:46:23 dnewman -- r745 * trunk/ecm_ntt.c: added added ecm_ntt.c Fri Mar 04 2005 11:46:02 dnewman -- r744 * trunk/TODO.sp: added added TODO.sp Fri Mar 04 2005 11:45:34 dnewman -- r743 * trunk/Makefile.am: modified added sp sources Fri Mar 04 2005 10:39:30 dnewman -- r742 * trunk/sp.c: added added sp.c Fri Mar 04 2005 10:39:12 dnewman -- r741 * trunk/sp.h: added added sp.h Fri Mar 04 2005 09:11:07 zimmerma -- r740 * trunk/README: modified added note about GMP thresholds Wed Mar 02 2005 22:46:58 zimmerma -- r739 * trunk/tune2.c: modified added ECM_STDOUT, ECM_STDERR Wed Mar 02 2005 22:06:00 zimmerma -- r738 * trunk/schoen_strass.c, trunk/random.c, trunk/main.c, trunk/listz.c, trunk/stage2.c, trunk/ecm2.c, trunk/eval.c, trunk/ks-multiply.c, trunk/polyeval.c: modified small changes for _MSC_VER prints memory usage (with -v) prints argv[0] instead of "ecm" in case of error Wed Mar 02 2005 22:02:34 zimmerma -- r737 * trunk/TODO: modified added item (-maxmem) Wed Mar 02 2005 22:02:06 zimmerma -- r736 * trunk/README: modified added "10. Known problems" Wed Mar 02 2005 22:01:17 zimmerma -- r735 * trunk/AUTHORS: modified added beta-testers Wed Mar 02 2005 21:30:08 kruppa -- r734 * trunk/README: modified Mention default S for Fermat numbers (S=1 or 2). "he thinks" -> "it thinks". Wed Mar 02 2005 12:37:53 zimmerma -- r733 * trunk/main.c: modified put back "Run xxx out of yyy" in loop mode Wed Mar 02 2005 12:24:42 zimmerma -- r732 * trunk/TODO: modified added new item Tue Mar 01 2005 21:52:27 kruppa -- r731 * trunk/rho.c: modified Fixed array out-of-bounds access, reported by Jon Becker Tue Mar 01 2005 21:51:31 kruppa -- r730 * trunk/b1_ainc.c, trunk/pm1.c, trunk/pp1.c, trunk/ecm.c: modified Calculation of default B2 in ecm(), pm1() or pp1() would overwrite caller's B2min, B2 (mpz_t), using local copies now. Auto-increment returns rounded B1. Fixes bug reported by "Phil MjX" on mersenneforum.org Tue Mar 01 2005 10:19:55 zimmerma -- r729 * trunk/test.ecm: modified simplified test so that it takes less time (overall gain of about 3) Tue Mar 01 2005 08:30:01 zimmerma -- r728 * trunk/mpmod.c, trunk/ecm.c, trunk/tune.c: modified fix to link problem for "tune" Mon Feb 28 2005 16:07:28 kruppa -- r727 * trunk/stage2.c, trunk/configure.in, trunk/polyeval.c: modified Checks for snprintf(), if not available falls back to sprintf() Mon Feb 28 2005 13:11:10 kruppa -- r726 * trunk/Fgw.c: modified Removed original gwnum dword->fft conversion code Mon Feb 28 2005 11:40:55 zimmerma -- r724 * trunk/ChangeLog, trunk/README.dev: modified updated ChangeLog/README.dev 2005-02-28 paul * release version 6.0 * ecm.xml: updated -primetest 2005-02-27 alex * pm1.c, pp1.c, ecm.c: For Fermat numbers, S=1 (S=2 for P-1) is now default * Makefile.am, configure.in, ecm-impl.h, main.c, mpmod.c, schoen_strass.c, Fgw.c: More changes for linking gwnum 2005-02-24 alex * Fgw.c, configure.in: Changes for linking gwnum (incomplete) * main.c: Added option -h for getting help * ecm.xml: More cleanup 2005-02-23 paul * auxlib.c, ecm-impl.h, ecm.c, ecm2.c, ks-multiply.c, pm1.c, pp1.c, stage2.c, tune.c, tune2.c: hopefully fixed the wrap-around bug of cputime() * INSTALL, NEWS, README, configure.in: changed version to 6.0 removed "Known problems" in README (were obsolete) * random2.c, smartprp.c, trial.c, auxi.c, b1_ainc.c, candi.c, eval.c, getprime2.c, main.c: fixed copyright years/names 2005-02-23 alex * ecm.xml: Some inconsistent typesetting fixed * ecm.xml: added -base2, -timestamp, -savea, different loglevels 2005-02-23 paul * ChangeLog, Makefile.am, README, README.lib, auxi.c, configure.in, ecmfactor.c, factor.c, pp1.c, smartprp.c, tune2.c: gmp -> GMP fixed one memory leak added missing (L)GPL headers 2005-02-22 paul * Makefile.am, README: forgot to install ecm.h * AUTHORS, ChangeLog, INSTALL, Makefile.am, NEWS, README, README.lib, TODO, ecm-ecm.h, ecm-impl.h, ecm.xml, eval.c, mpmod.c, mul_lo.c, polyeval.c, tune2.c: changes after remarks from Torbjo"rn on rc4 * INSTALL, Makefile.am, auxi.c, candi.c, eval.c, main.c, memory.c: don't install tune*, ecmfactor fixed problems with -DMEMORY_DEBUG 2005-02-22 paul * INSTALL, Makefile.am, auxi.c, candi.c, eval.c, main.c, memory.c: don't install tune*, ecmfactor fixed problems with -DMEMORY_DEBUG 2005-02-22 alex * stage2.c: bestD() overwriting original B2 caused B2 to keep ever growing. Fixed * README, bestd.c: Corrected computation of effective B2 value in bestD(). It did not account for rounding up due to integer block size. This changes computed probabilities, table in README updated accordingly * main.c: Added option -timestamp * INSTALL: On SunOS, the compiler and flags must be specified at configure time, or testing for GMP lib/header version match fails * TODO: Removed -base2 entry, it's done 2005-02-22 laurent * Makefile.am: Distribute ecm.xml too. 2005-02-22 paul * factor.c, main.c: fixed memory leaks * listz.c: moved declaration outside a #ifdef 2005-02-22 alex * bestd.c, rho.c, stage2.c, README: bestD() computes new effective B2 value. ecmprob() now assumes group order divisible by 24 on average (README updated). * auxlib.c: outputf() was missing the va_end(). Not sure if it is really needed (i.e. to avoid memleaks), but it's cleaner to have it 2005-02-22 paul * TODO, auxlib.c: fixed problem under MinGW (thanks Japke Rosink) 2005-02-22 alex * main.c: Added #include , missing it causes segfault on Amd64 because sizeof(int) != sizeof(char*) 2005-02-22 paul * ecmprob.magma: added some results 2005-02-21 alex * stage2.c, main.c, pm1.c, pp1.c, ecm.c, ecm.h, factor.c, bestd.c, ecm-impl.h: Changed B2, B2min to mpz_t, can now be arbitrarily large so long as B2-B2min < ~1e24. 2005-02-19 paul * pm1.c, pp1.c: put back x0=... in normal verbose mode (P-1/P+1) 2005-02-19 alex * ecm2.c, main.c, mpmod.c, pm1.c, pp1.c, ecm-impl.h, ecm.c: Added option -base2. Added option -savea (appending to save files). Fixed bug in ecm2.c multiplyWn() debugging code * pp1.c, stage2.c, pm1.c, ecm.c, ecm-impl.h: Added another verbosity level: RESVERBOSE, enabled with "-v -v". Prints intermediate residues (after stage 1 etc), mere "-v" does not anymore 2005-02-18 paul * pp1.c: fixed problem with |S|=1 (was: pp1_mul did modify the exponent passed) 2005-02-18 alex * pp1.c: A bug for |S| > 1 fixed, |S| == 1 still mysteriously broken * stage2.c, bestd.c, ecm-impl.h, ecm.h, ecm2.c, main.c, pm1.c, pp1.c: Using mpz_t for i0, s and related vars. Eliminates most overflow conditions. Currently, P+1 with S=1 does not work correctly, to be fixed later 2005-02-17 alex * ChangeLog: Added treefile, double sieve, new ECM root generation that reduces extgcds * TODO: treefile is done, removed 2005-02-17 paul * ecm-impl.h, ecm.c, pp1.c, ChangeLog, TODO: changed default poly. choice in P+1 (now same as in ECM) 2005-02-17 alex * stage2.c: Fixed segfault: n could get mpz_clear'd without having been inited Fixed overflow condition in fin_diff_coeff() by using mpz_t's. Makes test.pp1 work with |S| > 1. Small comment changes. * pm1.c: Changed printf to outputf, #ifdef DEBUG to WANT_ASSERT and exit() to return with error status 2005-02-17 paul * ecmprob.magma, pm1.c, pp1.c, stage2.c, ecm-impl.h, ecm.h: finished Brent-Suyama's extension for P+1 2005-02-16 paul * ecm-impl.h, ecm2.c, pp1.c, stage2.c: Brent/Suyama for P+1 (cont'd) 2005-02-16 alex * ecm2.c: Replaced printf by outputf 2005-02-16 paul * stage2.c, ecm-impl.h, ecm2.c, pp1.c: preliminary code for Brent/Suyama's extension in P+1 2005-02-15 alex * ecm.c: Increased thresholds for high Brent-Suyama degrees * README: A small correction about mem saving with treefiles, and typo * ecm-impl.h, pp1.c, stage2.c, bestd.c: My latest attempt to get bestD() right: new conditions for i0 and i1, and fixed init of progressions if i0 != 0 (mod d2) 2005-02-14 alex * polyeval.c, stage2.c: Small cleanups of treefile code 2005-02-13 alex * README: Added description of -treefile, plus some small changes 2005-02-11 paul * random.c: commented the outputf calls in non-library mode 2005-02-11 alex * bestd.c, random.c, stage2.c, TODO: Small changes to use ECM_ERROR and outputf(), updated TODO 2005-02-11 paul * polyeval.c: removed unused variable 2005-02-11 alex * pp1.c, stage2.c, main.c, pm1.c, polyeval.c, ecm.h, factor.c, listz.c, ecm-impl.h, ecm.c: Storing product tree of F in files pretty much works now. Some cleanups tbd 2005-02-10 alex * test.ecm: Small comment change 2005-02-09 paul * pp1.c, stage2.c, README.lib, ecm.c, ecm.h, factor.c, main.c, pm1.c: updated README.lib now use the library function ecm_factor() in main.c too! 2005-02-09 alex * schoen_strass.c: Changes for library, uses ASSERT and outputf() now 2005-02-08 paul * Makefile.am, README, auxlib.c, bestd.c, ecm-impl.h, ecm2.c, ecmfactor.c, main.c, mul_lo.c, trial.c, tune.c, tune2.c: further cleanup * README.lib: documentation for libecm * pm1.c, pp1.c, stage2.c, factor.c, listz.c, main.c, mpmod.c, ecm-impl.h, ecm.c, ecm.h, ecm2.c, auxlib.c: got rid of verbose parameter through outputf() interface * random.c, ecm.h, ecm2.c, ecmfactor.c, factor.c, main.c, pm1.c, pp1.c, auxi.c, ecm-ecm.h, ecm-impl.h, ecm.c: further work for library interface * mul_lo.c, stage2.c, main.c: fixed problems to please icc * test.pm1: added test for step 2 primes near B2min * Makefile.am, ecm-ecm.h, ecm-impl.h, ecm.c, ecm.h, factor.c, main.c, pm1.c, pp1.c, resume.c, stage2.c: preliminary new file factor.c for library interface 2005-02-07 alex * rho.c: Changed error testing/handling to ASSERT. 2005-02-07 paul * auxlib.c, bestd.c, ecm-impl.h, ecm2.c, getprime.c, ks-multiply.c, mpmod.c, rho.c, stage2.c, toomcook.c: got rid of xmalloc() [now allocation errors are signaled to caller] replaced abort, exit, stdout, stderr, printf, gmp_printf... * schoen_strass.c, configure.in: check for __gmpn_mod_34lsub1 in configure, and wrote a replacement for it when it does not exist * auxlib.c: use ECM_STDOUT/ECM_STDERR * auxi.c, ecm-ecm.h: removed gcd in auxi.c, ecm-ecm.h * ks-multiply.c, listz.c, lucas.c, median.c, mpmod.c, mul_lo.c, pm1.c, polyeval.c, pp1.c, rho.c, schoen_strass.c, stage2.c, tune2.c, TODO, auxlib.c, bestd.c, ecm-ecm.h, ecm-impl.h, ecm.c, ecm2.c, getprime.c: removed FILE arguments 2005-02-06 alex * ecm-ecm.h, ecm-impl.h, ecm.c, main.c, stage2.c, auxlib.c: Encapsuled output control in outputf() function, made stage2.c and ecm.c use that function * rho.c: For B1=1, computation would go into very long loop. Fixed * stage2.c: Removed experimental SAVE_TREE code, put back in for pow() etc. 2005-02-05 alex * rho.c, stage2.c: Got rid of finite() in stage2.c, made sure ecmprob() does not return negative values 2005-02-04 paul * TODO: put proposal from Karim Belabas * schoen_strass.c, stage2.c, toomcook.c, mul_lo.c, polyeval.c, rho.c, median.c, listz.c, ks-multiply.c, TODO, ecm-impl.h: more changes to catch errors and specify output/error streams * ecm-impl.h, stage2.c, test.pm1: changed one P-1 test (B2 was too near from 2^53, so that B2' overflowed) 2005-02-04 alex * bestd.c: Fixed bug in bestd() ...again (following PaulZ's suggestion) 2005-02-04 paul * bestd.c, mul_lo.c: added FIXME in bestd.c changed mul_lo.c to use table computed by tune2.c * tune2.c: fixed pb with return value * median.c, mpmod.c, pm1.c, polyeval.c, pp1.c, stage2.c, ecmfactor.c, getprime.c, listz.c, lucas.c, main.c, ecm2.c, ecm-impl.h, ecm.c, ecm.h: put back changes from Alex (rev 1.57 to 1.58 of pm1.c) that I removed by error added control for output/error streams changed exit(1) into error return values 2005-02-03 paul * TODO, configure.in: updated TODO removed useless message in configure 2005-02-03 alex * ecm-impl.h, ecm2.c, mpmod.c, pm1.c, pp1.c: Replaced UNUSED by ATTRIBUTE_UNUSED, following GMP convention (see gmp-impl.h) * TODO: Montgomery's double sieve is pretty much implemented now * bestd.c: Fixed bug in bestd() which sometimes caused too small d values to be chosen, thus failing to test entire [B2min,B2] interval * auxlib.c: SunOS needs time.h for CLOCKS_PER_SEC 2005-02-03 paul * pm1.c, polyeval.c, pp1.c, random.c, rho.c, schoen_strass.c, stage2.c, toomcook.c, mpmod.c, mul_lo.c, ecm2.c, getprime.c, ks-multiply.c, listz.c, lucas.c, median.c, auxlib.c, bestd.c, ecm.c: changed header from GPL to LGPL added missing years if any * ecmfactor.c: improved readability 2005-02-03 laurent * median-aux.c: Removed unused file median-aux.c. * ecm.xml: ecm.xml validates again. 2005-02-03 paul * Makefile.am: added missing headers * getprime.c: added main() to compile with -DMAIN * countsmooth.c: added missing #ifndef and url for primegen 2005-02-03 alex * schoen_strass.c: Made F_mod_*() static, hopefully to please icc 2005-02-03 paul * auxlib.c, ecm-ecm.h, ecm-impl.h, ecmfactor.c, getprime2.c, nbdigits.c, random.c, random2.c: new files for library * stage2.c, toomcook.c, trial.c, tune.c, tune2.c, smartprp.c, resume.c, rho.c, schoen_strass.c, mul_lo.c, pm1.c, polyeval.c, pp1.c, ks-multiply.c, listz.c, lucas.c, main.c, median.c, mpmod.c, ecm.h, ecm2.c, eval.c, getprime.c, bestd.c, candi.c, configure.in, countsmooth.c, ecm-gmp.h, ecm.c, Makefile.am, auxi.c, b1_ainc.c: complete rewrite to separate library/frontend * test.pp1, check.mpl, ecm.h, listz.c, stage2.c: modified one P+1 test * ecm-gmp.h, pm1.c, tune.c, tune2.c: fixed warnings (with -W -Wall -pedantic -Wmissing-prototypes) 2005-02-02 alex * ecm2.c, pm1.c, stage2.c, ecm.h: Cleanup of ecm/pm1_rootsF code. Small speedup in pm1_rootsF init. 2005-02-02 paul * Makefile.am, ecm.h, mul_lo.c, tune.c, tune2.c: added new file tune2.c for tuning mpn_mul_lo_n() * ecm-gmp.h: added missing MPN_OVERLAP_P * ecm.xml: changed email for Jim * AUTHORS: added item for Jim * AUTHORS: mungled email addresses * README, configure.in, ecm-gmp.h, ecm.h, ks-multiply.c, mpmod.c, mul_lo.c, pm1.c, tune.c: added --enable-assert to configure got rid of WANT_GMP_IMPL * README, ecm.xml: added -prp options in ecm.xml cleaned README * main.c, pm1.c, stage2.c, eval.c: more cleanup * README, bestd.c, countsmooth.c, ecm.c, ecm.h, eval.c, getprime.c, main.c, mpmod.c, pm1.c, pp1.c, trial.c: more cleanup (fixed icc warnings) * Makefile.am, README, TODO, configure.in, ecm.xml, mpmod.c: updated README added target tune in Makefile 2005-02-01 alex * pp1.c, stage2.c, ecm.h: Printing of mul count in rootsF/G for P+1 put back in * ecm2.c: Better selection of number of parallel progressions in ecm_rootsF(), avoids unreasonably long init times 2005-02-01 paul * main.c, pm1.c, pp1.c, test.ecm, README, candi.c, ecm.c, ecm.h: made -go work for P+1 and ECM 2005-02-01 alex * pm1.c: Merge errors. :( Fixed * ecm2.c, pm1.c: Put counting of muls/extgcds when computing roots of F/G back in. Only printed with "-v -v" (or more -v) 2005-02-01 paul * ChangeLog, Makefile.am, README.dev, TODO, configure.in, ecm.xml, main.c: updated TODO, ChangeLog, ecm.xml * AUTHORS: obscured my email 2005-02-01 alex * AUTHORS: Updated (and obscured) my email address 2005-02-01 paul * configure.in: avoid AC_CHECK_LIB 2005-02-01 alex * INSTALL: Minor corrections 2005-02-01 paul * configure.in: check mpn_mul_fft *after* LDFLAGS/LIBS are defined * TODO, ecm.c, ecm.h, main.c, pm1.c, pp1.c, stage2.c, ChangeLog, README: removed -ticdelay option (was unsupported) * INSTALL, Makefile.am, ecm.xml: added man page (ecm.1) in distribution added install instruction in INSTALL * auxi.c: added missing years * ecm.xml: added missing * INSTALL, ecm.xml: modified INSTALL for new configure/make 2005-01-31 paul * bestd.c, ecm.h, ks-multiply.c, listz.c, median.c, resume.c, toomcook.c: code cleanup (removed muls count, unused code, ...) * AUTHORS, README, ecm.xml, ks-multiply.c, listz.c: improved documentation 2005-01-31 alex * resume.c: Fixed possible unterminated string 2005-01-31 paul * Makefile.am, README.dev, configure.in: simplified LDFLAGS/LIBS * README.dev, ecm.1, ecm.xml: source documentation is now ecm.xml (docbook) * main.c: updated champion's digits 2005-01-28 paul * test.ecm: removed last line 2005-01-28 laurent * configure.in: Configure.in needs to set LDFLAGS. 2005-01-28 paul * ks-multiply.c, listz.c, ecm.h: fixed bug (MPN_COPY requires size > 0) * ks-multiply.c, test.ecm, test.pm1, test.pp1: check non-zero size in MPN_COPY 2005-01-28 laurent * ecm.h, main.c, resume.c: VERSION is defined in configure.in now. 2005-01-28 paul * pp1.c, schoen_strass.c, stage2.c, Makefile.am, README, TODO, bestd.c, configure.in, ecm.c, ecm.h, ecm2.c, eval.c, listz.c, lucas.c, main.c, mul_lo.c, ntl.c, pm1.c, polyeval.c, polyz.c: removed counting of multiplications removed use of NTL updated TODO 2005-01-27 paul * AUTHORS, ks-multiply.c: filled AUTHORS file * main.c: typo * README.dev: need aclocal too * Makefile: removed -> switch to autotools * AUTHORS, NEWS, README.dev: new files for autotools * ecm2.c, ks-multiply.c, listz.c, stage2.c: fixed a few memory leaks 2005-01-27 alex * pm1.c: Fixed mem leak (pointed out by PaulZ) 2005-01-26 paul * INSTALL, README, b1_ainc.c, main.c: updated README * ChangeLog, mpmod.c: modified ChangeLog added special base2mod for Fermat numbers 2005-01-26 laurent * Makefile.am, configure.in: Rules cleaning. * Makefile.am, configure.in: More autotools voodoo, borrowed from MPFR. 2005-01-26 paul * listz.c, mpmod.c, pm1.c, schoen_strass.c, INSTALL: further cleaning of "unused" variables * bestd.c, ecm.c, ecm.h, listz.c, main.c, pm1.c, pp1.c: removed unused code and variables 2005-01-25 paul * bestd.c, ecm.h, ks-multiply.c, listz.c: fixed a problem in bestD changed version to 5.2.0 implemented wrap-around trick in division 2005-01-17 laurent * Makefile.am: Add missing source file. * bestd.c: No need to bother with values.h, float.h is enough and seems to work just as well. 2005-01-15 laurent * auxi.c: Correct call to getrusage. 2005-01-14 alex * ecm.h, pm1.c, pp1.c, stage2.c, ecm.c: Expected time to find a factor printed at end of stage 2 2005-01-07 paul * redc.asm: added copyright header * mpmod.c, redc.asm, Makefile: added assembly support for redc 2005-01-05 paul * mpmod.c: renamed ecm functions with mpz_ or mpn_ prefix 2005-01-04 paul * mpmod.c: improved mpz_mod_n 2004-10-24 alex * rho.c: Added missing prototypes * ecm.h, rho.c, stage2.c, Makefile: Dickman's rho function for computing ECM's probability of success. Is printed for various factor sizes with -v parameter. 2004-10-12 alex * ecm-gmp.h: Replaced #if ... /#else #if ... by /#elif ... * schoen_strass.c: Fixed checksum debugging code for NOPAD case 2004-10-06 paul * mul_fft.c: this is the mul_fft.c code from GMP (gmp-cvs-20040917 patched) * main.c: changed default k to 2 2004-09-29 paul * ks-multiply.c, listz.c, stage2.c: added wrapmul in ks-multiply.c (not used so far) removed check for number of multiplies in stage2.c (not possible with KS) 2004-09-28 alex * stage2.c: Print final residue (product of polyeval output) if verbosity >= 3, i.e. "-v -v" * schoen_strass.c, mpmod.c, Fgw.c, Makefile, ecm.h: Interface to use George Woltman's gwnum library for Fermat numbers 2004-09-23 alex * mpmod.c: Stupid bug: = instead of == in comparison. :( 2004-09-21 paul * mpmod.c: fixed misusage of mpn_mul_fft() 2004-09-21 alex * ecm.h, mpmod.c, schoen_strass.c: Use of GMP FFT in mpmod.c self-contained now, and used only for exponent >=32768. Use of GMP FFT added to schoen_strass.c, but currently disabled - misses a factor of F15. * README: Small changes to Note on Fermat numbers section 2004-09-21 paul * mpmod.c: with HAVE_FFT defined, mpres_mul() directly calls mpn_mul_fft() * README: removed one sentence 2004-09-13 alex * README: Some changes to Brent-Suyama section. Added note on factoring Fermat numbers. 2004-09-13 paul * main.c: disable Line=... messages by default * ks-multiply.c: fixed bug when m=0 * Makefile: added CFLAGS to LD (needed on Sparc) 2004-09-11 alex * schoen_strass.c, listz.c: PolyInvert() now uses a middle product for Fermat numbers * schoen_strass.c, stage2.c: Moved global var Fermat from stage2.c to schoen_strass.c 2004-09-10 alex * polyeval.c: Oops - accidentally deleted a list_mod() statement. Fixed. * polyeval.c, bestd.c: polyeval_tellegen() still used a short product instead of Schoenhage-Strassen for Fermat numbers! Fixed, approx. doubles speed for POLYEVAL and mul count matches theory now. * median.c: Additional paramter check for Fermat case of KMulGen() * ecm.h: KS_MULTIPLY was accidentally #undef'd, now #define'd again * median.c: TMulGen would call TMulKS() even if KS_MULTIPLY was undef'd. Fixed. 2004-09-09 alex * bestd.c, ecm.h, pp1.c, stage2.c: Double sieve for P+1 (does not use multiple progressions, only skips) bestD() takes d2 into account. 2004-09-09 laurent * configure.in: Verify that GMP was compiled with FFT enabled. * Makefile.am, configure.in: Actually test for GMP presence in configure. Support for test targets in Makefile.am. 2004-09-09 paul * median.c, test.pm1, ecm.h, ks-multiply.c, listz.c, main.c, bestd.c: use middle product in PolyInvert changed bestD() for new KS routines now TMulKS takes an additional parameter "rev" 2004-09-09 alex * mpmod.c, pm1.c, stage2.c, test.ecm, bestd.c, ecm.h, ecm2.c: Double sieve for generating roots of ECM and P-1, see Montgomery "Speeding", section 9. P+1 tbd. bestD() does not know about larger block length yet, tbd. 2004-09-09 paul * ks-multiply.c: malloc -> xmalloc * ks-multiply.c: fixed malloc bug * trial.c, auxi.c: fixed warning 2004-09-08 alex * listz.c: added #else to avoid warning about unreachable code by Sun CC. 2004-09-08 paul * polyeval.c, ecm2.c, ks-multiply.c, median.c, ecm.h, ecm-gmp.h: added TMulKS() [and macro FFT_WRAP, and KS_TMUL_THRESHOLD] moved ASSERT() to ecm.h fixed typo in ecm2.c * ecm.h, listz.c, median.c, polyeval.c: added list_swap fixed inefficiency in polyeval_tellegen (list_mul_high call did not reduce coefficients mod n) 2004-09-07 paul * listz.c, median-aux.c, median.c, polyeval.c, ecm.h, ks-multiply.c: cleaned up polyeval_tellegen and median.c: - converted comments in english - use functions of listz.c when possible - translate mpz_mul_ui (.., .., 2) into mpz_mul_2exp - other tiny optimizations * TODO: sorted items * pm1.c, pp1.c, main.c: default for -ticdelay is now -1 * ecm.h: added comments about #define's 2004-09-06 paul * mpmod.c: oops, modulus->bits can be negative * mpmod.c: modulus->bits is always positive * ecm.h, mpmod.c, pm1.c: now isbase2() is called with same threshold BASE2_THRESHOLD (in ecm.h) base2mod() changed to perform no division any more 2004-09-03 alex * stage2.c, listz.c: Where possible, polynomials F, G and invF are deallocated before calling polyeval(), polyeval_tellegen() or poly_gcd(). * ecm.h: POLYEVAL got set whenever POLYEVALTELLEGEN was set, overriding POLYGCD. Changed so that POLYGCD overrides both POLYEVAL and POLYEVALTELLEGEN. 2004-09-03 paul * stage2.c: experimental code to save/restore the product tree 2004-09-03 alex * schoen_strass.c, listz.c: PrerevertDivision() uses a non-zeropadded transforms for Fermat numbers if poly degree is not too large. Removed Matrix Fourier Algorithm (no faster) and testing code in schoen_strass.c 2004-09-03 paul * ks-multiply.c: added comment 2004-09-01 laurent * Makefile.am, configure.in: Autoconf'ing the project. 2004-09-01 alex * ecm.h, listz.c, schoen_strass.c: Added option for transform without zero padding to Sch"onhage-Strassen. 2004-08-31 paul * ks-multiply.c: thresholds now takes into account number size too 2004-08-31 alex * TODO: Added entry for idea of choosing roots of F and G from Montgomery "Speeding", 9.1.3 2004-08-31 paul * Makefile, ks-multiply.c, listz.c: improved PrerevertDivision when KS_MULTIPLY defined 2004-08-30 alex * Makefile, auxi.c, ecm.h, listz.c, schoen_strass.c, toomcook.c: Sch"onhage-Strassen code now can multiply monic polynomials directly. This saves adds when building polys from their roots, unfortunately the speed gain is minimal. mpz_divby3_1op() moved to auxi.c 2004-08-30 paul * ks-multiply.c: Kronecker-Scho"nhage's code, contributed by David Newman * Makefile, bestd.c, ecm-gmp.h, ecm.h, listz.c, mpmod.c, polyeval.c, stage2.c: integrated David Newman's Kronecker-Scho"nhage's code * schoen_strass.c: commented out mpz_divby3_1op (already in toomcook.c) * TODO: added one todo line (KS mult) 2004-08-26 alex * bestd.c, ecm.h, ecm2.c, stage2.c: bestd_po2() examines both B2min and B2 instead of just their difference, and has better d values for very small polynomial degrees. * resume.c: Resuming now always reduces the x-coordinate (mod N). * schoen_strass.c: Multiplication of transformed coefficients inside the MFA transform. Should save uncached memory accessed but isn't much faster in practice. * ecm.h, ecm2.c, stage2.c: Correct handling of adding identical points in addWnm() by doubling. * Makefile: Commented out Sun cc specific options * schoen_strass.c: Routines for Sch"onhage-Strassen multiplication of polynomials 2004-07-28 alex * pm1.c, pp1.c, resume.c, stage2.c, Makefile, auxi.c, bestd.c, ecm-gmp.h, ecm.h, ecm2.c, listz.c, main.c, median.c: Schoenhage-Strassen for multiplying polynomials modulo Fermat numbers. Computation of roots for F and G for ECM does several progressions in parallel, to reduce number of extgcds and, for F, reduce the number of roots computed. * eval.c: Sun cc doesn't like leading underscores in variable names. _B and _N renamed to B and N. 2004-06-24 laurent * Makefile, README, ecm.1: Fix typo in documentation and clarify the `nobase2' option. 2004-04-06 paul * bestd.c, listz.c: added Weimerskirch/Paar trick for Karatsuba (K=3) 2004-02-13 laurent * median.c: Deleted some unused lines. 2004-01-21 laurent * ecm.1: Added ecm.1 man page; needs update. 2004-01-20 laurent * ecm.h, main.c: Added usage function and changed usage output stream to stdout. 2004-01-20 jim * main.c: Fixed for MinGW builds (no res/resource.h) 2004-01-20 laurent * main.c: Fixed "-n" and "-nn" parameters for unix. 2004-01-16 jim * README, TODO, candi.c, ecm.c, ecm.h, main.c, pm1.c, pp1.c: Added -go handling. The code to use this has NOT been added to ecm_stage1() or pp1_stage1(). It has been placed into pm1_stage1(). Also, the full syntax processing has been added to main.c. Candi.c has a new structure to handle this (mpgocandi_t). can be of any valid expression form, and may contain N letter(s) as a placeholder for the current processing candidate number. * stage2.c, pp1.c, pm1.c: Modifications to allow screen percentage ticks to run through a global function. That function will only update at the proper delay, or possibly NOT show anything at all * main.c: Modifications to allow screen percentage ticks to run through a global function. That function will only update at the proper delay, or possibly NOT show anything at all The showscreenticks() and showscreenticks_change_stage() functions are in this source file. * ecm.h, ecm.c: Modifications to allow screen percentage ticks to run through a global function. That function will only update at the proper delay, or possibly NOT show anything at all * TODO: Added information about -ticdelay n (note ticdelay -1 turns off the percentage done stuff). Any other n value simply is the number of ms between percentage done stderr updates. 2004-01-12 jim * smartprp.c: Bug in the hex escape sequence parser in the -prp cmd * README: Added explanation of the escape %xH[H] to the -prp cmd * smartprp.c: Added the excape %xH[H] to the -prp cmd cmd parsing. 2004-01-12 paul * smartprp.c: new file (added for Jim) 2004-01-12 jim * ecm.h: Updated beta version and added new declarations for the smart prp function * main.c: Use the new "smart" prp function and parse the new -prp* command args * candi.c: Use the new "smart" prp function * Makefile: Updated with new smartprp.c (and updated DIST to be all .c files) * README: Added new section about exteral spawned prp app, and added to the command line section * ChangeLog: Added info about changes since 5.1-beta (Hex expressions and VC porting in 5.1.1-beta) (External PRP program spawning in 5.1.2-beta) 2004-01-12 paul * ecm.h, eval.c, main.c, pm1.c, pp1.c, candi.c: number of primality loops is now controlled by PROBAB_PRIME_TESTS (ecm.h) 2004-01-09 laurent * main.c: Fixed "warning: C++ style comments are not allowed in ISO C90" 2004-01-09 jim * auxi.c, resume.c, trial.c, main.c: Porting needed for VC to build * median.c: Port change needed to compile under VC * ecm-gmp.h: Porting needed for VC to build This latest change taken from the latest (4.1.2) GMP's gmp-impl.h file. * eval.c, candi.c, bestd.c: Porting needed for VC to build * ecm.h: Bumped up beta version number. This version has hex number handling in expressions, and is ported to VC 2004-01-06 jim * eval.c: Added handling of Hex numbers to the expression parser. * median.c: Modified to build under MinGW (and VC) * bestd.c: Modified to comiple under MinGW 2003-12-12 paul * polyeval.c: changed copyright line * Makefile, bestd.c, ecm.h, listz.c, median.c, polyeval.c, stage2.c: several improvements in polyeval_tellegen (now default) 2003-12-11 paul * ecm.h, median.c, polyeval.c, bestd.c: added option -DCHECK_MULS to check number of muls * stage2.c: added warning when estimated and computed muls differ * polyeval.c: a factor of 2 was missing in muls_tuptree (case l=m) * median.c: now muls_tgen calls directly muls_gen * listz.c: replaced calls to toomcook4/toomcook4_low/toomcook4_high by calls to LIST_MULT_N/list_mul_low/list_mul_high * ecm.h: type of multiplication (kara, toom3, toom4) is now defined in ecm.h * bestd.c: replaced muls_toom4 by muls_gen 2003-12-10 laurent * polyeval.c: Multiplication accounting is added in polyeval_tellegen. 2003-12-09 laurent * stage2.c: Timing added when using polyeval_tellegen. 2003-12-09 paul * mpmod.c: changed temp1 -> temp2 in mpres_out_str 2003-12-09 laurent * ecm.h, median-aux.c, median.c, polyeval.c: Polyeval_tellegen now uses transposed Toom Cook. 2003-12-05 alex * countsmooth.c: Reports values of lucky Brent-Suyama matches. Barely tested, beware! 2003-12-05 laurent * median.c: Used better ad hoc divisions by 2 and 3. 2003-12-04 laurent * median.c: Fixed bugs in transposed Toom Cook multiplication with weird argument sizes. 2003-12-03 alex * Makefile, countsmooth.c: computes roots at 1 (mod 6). -pm1, -blocks and -ecm flags. Makefile target. 2003-12-03 laurent * Makefile, median.c: Transposed Toom-Cook3 should work now. 2003-12-02 alex * countsmooth.c: Can use getprime() now. * countsmooth.c: Tool to count smooth values. Supports Brent-Suyama. 2003-12-01 alex * TODO: Added Colin Percivals generalized DWT, moved rootsF [j*d, i] -> [j*d+1, i] to done. 2003-12-01 laurent * ecm.h, median.c, polyeval.c: Fixed muls_tkara. 2003-11-27 paul * TODO: added new entry 2003-11-27 laurent * Makefile, bestd.c, ecm.h, median.c, polyeval.c, stage2.c: Added a new multipoint evaluation function in stage2 (polyeval_tellegen) with associated functions. #define POLYEVALTELLEGEN if you want to use it. 2003-11-26 paul * COPYING.LIB, Makefile: added COPYING.LIB (for ecm-gmp.h and memory.c) 2003-11-24 paul * test.ecm: put in sh syntax * stage2.c: comptue one more term of 1/F (needed for TupTree) 2003-11-19 paul * INSTALL: new timings for ppc 2003-11-18 paul * main.c: updated minimum sizes for potential champions * INSTALL: updated timings for ppc 2003-11-17 paul * INSTALL: added timings for ppc 2003-11-07 paul * ecm.h: new function mpres_realloc * ecm.c, ecm2.c: defined local procedures as 'static' * mpmod.c: mpz_mod_n now always assumes ALLOC(r) >= nn * stage2.c: check alloc. size of f (used as mpres_t) * test.ecm: added new tests for ecm-5.0.1 bug 2003-11-05 paul * ecm.h: changed some prototypes, added some others * toomcook.c: redirect directly to karatsuba in toom4 * test.pp1: added newline before ok * test.pm1: added newline before ok message * test.ecm: ok message made similar to other tests * stage2.c: now compute estimated number of muls for stage2 (and prints corresponding percentage) * polyeval.c: modified calls to RecursiveDivision * pm1.c: removed unused variable * mpmod.c: incorporated changes to fix ecm-5.0.1 bug (overflow in input of mpz_mod_n) * listz.c: new routines to compute short products (low and high) * check.mpl: new routines to determine numbers of muls of short products * bestd.c: completely rewritten (now determine the exact number of muls and not an estimation) * TODO: removed several done items 2003-10-31 paul * test.ecm: added test for bug in 5.0.1 2003-10-20 paul * Makefile, auxi.c, bestd.c, candi.c, eval.c: changes suggested by Laurent Fousse to enable compilation with gcc 3.3.2 * TODO: removed done item 2003-10-17 paul * ChangeLog, ecm.c, ecm.h, main.c, pm1.c, pp1.c, stage2.c, test.ecm, test.pp1: changed quiet mode (-q) to print all factors on same line (contributed by Laurent Fousse) 2003-10-16 paul * Makefile, bestd.c, ecm.h, ecm2.c, stage2.c, test.ecm, test.pm1, test.pp1: put in patch from Alex to solve "B2min too small" problem 2003-07-22 paul * TODO: added one item (-Q) * TODO: added one item * polyeval.c: fixed potential memory leak 2003-07-02 paul * bestdaux.c, candi.c, ecm2.c, eval.c, getprime.c, listz.c, main.c, ntl.c, pm1.c, stage2.c: added check for return value of malloc 2003-06-20 paul * Makefile, ntl.c: applied patches from Christian Cornelssen * stage2.c: moved check for overflow at the beginning * TODO: added suggestion from one user 2003-06-19 paul * TODO: added one item 2003-05-09 paul * main.c: smallest P+1 champion is now 37 digits 2003-04-22 alex * Makefile, mul_lo.c, stage2.c: Changes to make building with NTL work 2003-04-22 paul * INSTALL: fixed typo * test_sh.ecm, test_sh.pm1, test_sh.pp1: now replaced by test.* * test.ecm, test.pm1, test.pp1: converted from csh to sh * Makefile: now only GMP is linked statically 2003-04-16 jim * main.c: Changes for incremental saving (but commented out). * resume.c: Changes to incremental resuming (but it is commented out) * stage2.c, pp1.c: Stage 2 overflow fixes from 5.01 * pm1.c: Stage 2 overflow fixes from 5.01 Added some new logic for the incremental save/resume, but it is commented out. * ecm2.c: Stage 2 overflow fixes from 5.01 * ecm.h: Stage 2 overflow fixes (from 5.01). * ecm.c: Partial resume code commented out for now. * test_sh.ecm, test_sh.pm1, test_sh.pp1, test.ecm, test.pp1, test.pm1: Added stage2 overflow test * Makefile: Added ChangeLog to EXTRADIST section * ChangeLog: Version 5.01 additional file to ECM project * INSTALL: Added new changes which were in release 5.01 Added new information about MinGW32 timings (and compiling switches) * README: Updated to Pauls changes in 5.01 2003-04-11 paul * main.c: limit for P+1 champion is now 35 digits 2003-04-09 jim * auxi.c: Failed to set the "first time flag" and convert the double to unsigned to fix a roundoff bug. 2003-04-05 alex * mpmod.c: GMP prior to 4.1 does not have GMP_NUMB_BITS defined. Using __GMP_BITS_PER_MP_LIMB in that case. * resume.c: Bugfix: save file lines were not correct if both sigma and A value was given (a semikolon was missing). 2003-03-30 jim * README: Added section 6 "ECM-GMP Expression syntax" (and adjusted original sections 6-10 to 7-11) Added docs about b1_ainc.c candi.c trial.c eval.c and the test_sh.* files which are newly added to version 5.1 List trial div, expressions, and looping in section 2 (new major items since ecm4c). Added the -I f and -i n and -B2scale switches to section 3 (efficient use of ecm-gmp) Changed section 5 (memory usage) to list that in -b breadthfirst mode (the default for -inp), that the whole file is read into memory at one time, thus increasing memory footprint (but for good reasons). Added [-inp file] as an optional paramter (even though it is really an option), and list that the redirection of a file i.e. < file is now optional [ < file]. It is optional because of -inp file. Added -t n to "Options to control factorization method" Added -B2scale f to Options to control step 2 Added -cofdec and -ve n to Options to control output Added info about incremental saving during B1 stage, and also documented that it is currently NOT working Added options "-i n", "-I f", "-n", "-nn", "-one" and "-b -d" to Miscellaneous options section. Added information that the first known problem has been eliminated (at least I know it is gone in my MinGW32 builds). Added 2 new "known problems" which are caused by the new stderr output for the 1 line output, and for the stage1/stage2 "percentage" done screen output (which btw, the stage2 percentage done is not yet done ;) The "second" of these new known problems is not a "certain" problem. It is one that someone (Paul) needs to look into and see how the interaction of this new stderr output works with the client server, and with things like nohup & under unix (I myself don't have access to any *nix shell) * main.c, pm1.c, pp1.c, ecm.h, ecm.c: Added a B2 scaling factor (user supplied multipler for calculated B2 values) 2003-03-25 jim * ecm2.c: ecm.h was modified, but ecm2.c was missed and needed modified also. * resume.c: The incremental saving function has been neutered until it is working correctly in ecm/pm1/pp1 stage 1 functions. * main.c: Added -cofdef (forced cofactor in decimal even if an expression is "valid") Added a Cnnn "header" to the B1= .. line listing the length of the candidate (unless the candidate expression is explicitily listed) Fixed a couple of spots where the stderr 1 line output (in > redirection mode) was not erasing the prior line * auxi.c: Added high resulution timers to MinGW and MSVC builds. 2003-03-14 jim * main.c: B2min was broken due to handling of the -i n and -I f auto incrementation code. 2003-03-14 paul * main.c: smallest top-ten P-1 has now 39 digits * test.pm1: B1 was too small in new test * pp1.c, stage2.c, test.pm1, pm1.c: added check for overflow in stage2 + test * ecm.h: changed "unsigned int" into "unsigned long" for s parameter 2003-03-12 paul * Makefile: added -pedantic 2003-03-12 jim * main.c: On "usage" screen, had not renamed -a n to -i n, nor had -I f been added. Removed a C++ comment. * main.c: Removed C++ comment * resume.c, candi.c: Removed C++ comments * resume.c: Removed a couple C++ comments * pp1.c: Fixed Boo boo. * pm1.c: Fixed boo boo. * eval.c: Removed C++ comments * ecm.c: fixed boo boo. * b1_ainc.c, auxi.c: Removed some C++ comments * main.c: Changed default "shallow" mode factor finding to "deep" mode (continues to find more factors Removed the -deep command line switch Added command line switch -one (forces ECM back into shallow mode). -i file changed to -inp file. -ib file removed. -i defaults to width-first and cat file | ecm b1 defaults to depth-first searching. added a -d for depth-first processing (to complement the -b breadth-first mode). Removed -a n (constant B1 increment mode) Added -i n (constant B1 increment mode) Added -I f (Auto calculation (with scaling by f) B1 increment mode) Removed stage 1 precentage "setup" output. That is now output in the 3 stage1 functions. * README: Added new options to document, but there is very little docmentation about them yet. THIS IS STILL todo * TODO: Updated todo list with new items, and moved items that are done, or partly done * pp1.c: Finished stage 1 percentage counter * pm1.c: Finished stage1 percentage done * ecm.c: Completed percentage done in stage one, and removed 'setup' output for stage2 * stage2.c: Added "starting" code for percentage counter on stage 2 * ecm.h: Added declaration of B1 incrementation function * b1_ainc.c: Code to do auto-incrementation of B1. It works with a constant increment value, or it computes the "ideal" increment (based on current B1). It can also scale this calculated "ideal" * toomcook.c: Removed ABS define, since it is now in ecm.h * Makefile: Added new source file b1_ainc.c (does "auto" incrementation of B1 values) 2003-03-11 paul * main.c: changed P-1 champion limit * main.c, pp1.c: fixed problem with potential champions for -pp1, when it performs P-1 * ecm-gmp.h, ecm.h: moved ABS to ecm.h 2003-03-07 jim * TODO: Updated the % done item. * pp1.c, pm1.c: Added Stage 1 screen percentage updating. Added Stage 1 Auto incremental saving * main.c: Added -deep to trial factoring (actually added !(-deep) Added space after function calls to bring my code into existing coding specifications. * ecm.h: Added -deep command to trial factoring * trial.c: If we are not in -deep mode, then bail out after first factor is found * TODO: Added -qq for ultra quiet mode (i.e. for running under the client/server) * eval.c: Fixed bugs introduced removing C++'ism. The max val needed to be adjusted before the realloc, or we would simply realloc the same sized buffer (and then overwrite it) * main.c: Placed the fprintf(T:000) back where it needed to be. Remove any temp AutoSaved B1 file since it is no longer needed. * candi.c: Wrong function title in the validation check logic. * ecm.c: Added "plumbing" for incremental AutoSaving of B1 (every 15 minutes) !!NOT YET WORKING CORRECTLY!! Changed 1:000 percentage screen updates to once every 30 seconds. 2003-03-07 paul * Makefile, ecm.h: changed version to 5.1-beta 2003-03-07 jim * resume.c: Added const to char * in resume, and put an else so that sigma AND A could not both be written Created write_temp_resumefile() and kill_temp_resume_file() functions. * ecm.h: Added defines for write_temp_resumefile and kill_temp_resume_file (found in resume.c) Added spaces to my function declarations to more conform to the ecm standard. * eval.c: Added a strnicmp() function (in VC and MinGW, we use the native version) * TODO: Changed incremental saving and Percentage done to be partially done 2003-03-07 paul * ecm-gmp.h, ecm.c, eval.c, main.c, trial.c: fixed a few C++-specific idioms 2003-03-07 jim * ecm.c: Stage 1 ECM code for 1:000 to 1:100 done and working fine. * trial.c: The "testing code" for the T:000 to T:100 was not quite in the right place 2003-03-06 jim * main.c: Added some code to do T:000 to T:100 (and 1: 2:) "percentage done" output to stderr (i.e. dummy lights) Changed Factors= to factors= on the stderr line in Breadthfirst mode, now show "loop count" stderr line on first loop. in Breadthfirst mode, show the current line processing/total lines in file on the output line. * eval.c: Added C++ style sinle line comment to expression parser Now lines starting with '#' is a comment, and from where ever a // is found, to the end of a line is a comment. * TODO: Added information about 80 dots and how to do that with the existing stderr output of the lines/loops * trial.c: Added code to do T:000 to T:100 "percentage done" output to stderr (i.e. dummy lights) * ecm.h: Updated "internal" version to current interim build 2003-03-05 jim * test_sh.pp1: P+1 Test script file (for borne shell) * test_sh.pm1: P-1 Test script file (for borne shell) * test_sh.ecm: ECM Test script file (for borne shell) * dummy: Bye bye dummy * dummy: Test for PauZ (and help for me) 2003-03-05 paul * candi.c, eval.c, trial.c: files from Jim 2003-03-04 jim * main.c: LOT of changes. New switches: -a n (auto increment B1 after each loop) -i file (input file, not from stdin) -ib file (breadth-first looping) -b (breadth-first looping for stdin) -deep (continued factoring after a factor is found) -n (nice mode, only fully implemented in Win32) -nn (VERY nice mode, i.e. idle) -t n (trial factoring, up to n) -ve n (verbose expression printing, for expressions < n chars) The read_number() now calls the expression parser. read_number is only used to skip blank (or commented) lines. The expression parser does the rest. Most changes took place in the "looping" code, since now we loop either width first (the current 5.0 default), or "breadth-first", and since during looping the program may handle found factors either "shallow" (the current default 5.0 mode), or -deep. * auxi.c: nb_bits now const. A MUCH improved rand generator for Win32 * TODO: Expression parse done. -nice done (not -kill). a "key" added so that todo's and done's can be listed * ecm-gmp.h: alloc.h did not work with MinGW. The change was taken from a GMP header * ecm.h: Created mpcandi_t struction (for warehousing info about the candidate) Use the mpcandi_t object instead of simple mpz_t where it is needed Added functions from candi.c, eval.c, trial.c (and main.c since read_number is needed by resume code) Made nb_bits be const * resume.c: Use mpcand_t for candidate numbers Output expressions in save/resume file (if expression exists) Patches for MinGW and MSVC for machine name * Makefile: Added candi.c eval.c and trial.c to Makefile 2003-03-04 paul * main.c: check mp_bits_per_limb = GMP_NUMB_BITS * toomcook.c: rewrote comparison in toomcook4() * test.ecm: updated for new bestD() * stage2.c: use new bestD() function * main.c: new semantics of -k * README: new semantics for -k option * main.c: now default k is 0 (lower bound) * ecm.h: updated wrt changes in bestd.c * check.mpl: new functions to compute number of multiplies in step 2 * bestd.c: new code using data generated by bestdaux.c * TODO: added several new items * Makefile, bestdaux.c: added bestdaux.c, auxiliary file to determine optimal parameters for bestd.c 2003-03-03 paul * INSTALL: updated timings for Athlon and EV6 * README: added comments about probability wrt Table 1 * tune.c: print MUL_KARATSUBA_THRESHOLD and DIV_DC_THRESHOLD * main.c: error when factor found is 1 * TODO: added 3 items * mul_lo.c: put ecm.h after gmp-impl.h * ecm-gmp.h, ecm.h: now all thresholds are in ecm.h (should go after gmp-impl.h or ecm-gmp.h) * tune.c: fixed typo found by Christian Cornelssen * mpmod.c: changes from Christian Cornelssen to change thresholds * README: added info on "tune" * Makefile: use LDFLAGS for tune added tune in clean target * INSTALL: added info on Darwin 2003-02-28 paul * test.ecm: added tests for bug found by Jim * ecm.c: fixed bug found by Jim Fougeron 2003-02-24 paul * TODO: added 1 item * INSTALL, Makefile: get rid of -LNTL/... in Makefile added instructions for LDFLAGS/-D__freebsd in INSTALL 2003-02-24 alex * pm1.c: Added comment to why we use Dickson(4), Dickson(6), x^12,.. 2003-02-24 paul * TODO: updated 2003-02-23 alex * README: small changes, notably maximum possible B1 for ECM and P+1. 2003-02-23 paul * ecm.c, main.c: now prints the *exact* number of digits for large numbers * TODO, listz.c: updated TODO changed list_gcd to use 'p' only at the end * README: stage -> step * Makefile, ecm.h: version is now 5.0 * INSTALL: minor changes * memory.c: added tests_memory_status * mpmod.c: changed threshold for isbase2 * resume.c: added space 2003-02-23 alex * toomcook.c: Made indentation more Gnuish * main.c: Revered order of opening save and resume file 2003-02-23 paul * ecm.h: removed __gmp_default_free * listz.c: style editing * getprime.c: forgot to reinitialize offset * ecm.c: style editing static val -> non static * TODO: added 2 items * Makefile: CFLAGS not needed in link phase 2003-02-22 alex * listz.c, lucas.c, main.c, mpmod.c, mul_lo.c, ntl.c, pm1.c, polyeval.c, polyz.c, pp1.c, resume.c, stage2.c, test.ecm, test.pm1, test.pp1, toomcook.c, tune.c, Makefile, TODO, auxi.c, bestd.c, ecm.c, ecm.h, ecm2.c, getprime.c: Changed copyright notice * auxi.c: Small cleanup of get_random_ui() 2003-02-21 alex * main.c: Initialising comment etc. with empty string to avoid comment fields containig garbage being printed. * pp1.c: Using n^2-1 instead of n-1 for inclusion in stage 1. Unconditionally setting g to 1 afterwards to avoid including n^2-1 again later. 2003-02-20 alex * README: Small changes. Comments on default values of k and Brent-Suyama updated. * ecm.h, mpmod.c: mpres_clear, mpres_set and mpres_swap are now macros * resume.c: addef fflush() after writing save file lines to avoid partial line in case of abort * main.c: Added test for existing save file 2003-02-20 paul * test.pm1: rm -> /bin/rm * README, ecm-gmp.h: put back #include by default (unless __freebsd is defined) * ecm.h: defined macro FREE * pm1.c, pp1.c: don't print x0 when resume * memory.c: exported tests_free * main.c: __gmp_free_func -> FREE * ecm2.c: use variable for 2S+2 * ecm.c: use fprintf for error * ecm-gmp.h: use alloca when __sun is defined * auxi.c: use macro FREE * TODO: added some items * README: added note about different -save and -resume names added note about alloca.h problems * Makefile: added -static * Makefile: more changes from Granlund * Makefile, ecm.h: changed version to 5.0-beta-pl3 improved Makefile clean entry 2003-02-19 alex * auxi.c: Made changes suggested by Torbjorn * ecm2.c: Fixed bug freeing unallocated vars in ecm_rootsG_init(). (thanks again Torbjorn) * auxi.c, ecm.h, main.c: Better seed for RNG 2003-02-19 paul * Makefile, auxi.c, ecm-gmp.h: patches from Granlund for FreeBSD * Makefile, ecm-gmp.h, ecm.h, mpmod.c, test.ecm: put extract from gmp-impl.h in separate file (copyright is different) 2003-02-19 alex * ecm.c, ecm.h, ecm2.c, mpmod.c, pm1.c, pp1.c, stage2.c: P-1 selects reasonable degree for Brent-Suyama if none given by user *_roots[FG] return number of multiplies used 2003-02-19 paul * stage2.c, test.ecm, README, TODO, main.c: added -c option improved documentation * Makefile, ecm.h: changed version to ecm-5.0-beta-pl2 * Makefile, ecm.c, ecm.h, ecm2.c, mpmod.c, pp1.c, stage2.c: fixed warnings with -W * test.pm1: forced remove 2003-02-18 paul * bestd.c, ecm2.c, lucas.c, main.c, memory.c, resume.c, stage2.c: changed stream back to stdout for factors found * README, TODO: note on B2 > 100*B1 added items in TODO 2003-02-18 alex * ecm.c: The temp variable "t" was passed around, but never actually used anywhere. Removed. * ecm.h, ecm2.c, mpmod.c, pm1.c, stage2.c, test.pm1: ECM and P-1 print a message if a factor is found during the computation of the roots of F or G and verbosity is >= 2 Eliminated "comparison between signed and unsigned" warnings when compiling with -W Added a test for saving/resuming to test.pm1 2003-02-16 alex * ecm.c: Added default values for Brent-Suyama's extension for ECM. * TODO: Added a suggestion from Jay Berg, and one from me 2003-02-16 paul * INSTALL, Makefile, README, TODO, bestd.c, ecm.c, ecm.h, main.c, mpmod.c, pm1.c, pp1.c, stage2.c, test.pm1, test.pp1: fixed several issues found by Jay Berg 2003-02-16 alex * main.c: Fixed generation of random sigmas (new sigma for each input number) 2003-02-15 alex * pm1.c: cascade_mul_ui replaced by cascade_mul_d to avoid nasty bug: the power of a small prime is accumulated and *then* passed to cascade_mul_ui, so that overflow would occur for B1 >= 2^32. * resume.c: Make read_resumefile_line less ugly. Also reads Prime95 v22 ECM residues now. The users name and machine name are written when saving to file. 2003-02-14 paul * README, TODO: remarks from Jay Berg * INSTALL, README: added advertizing for ECMNET * TODO, pm1.c: fixed problem with mul_casc (powerpc630-ibm-aix5.1.0.0) * Makefile, README: added c155 in distrib * Makefile, README, ecm.h: version is back to 5.0-beta added timings in README * Makefile: missing tab * Makefile: get rid of recursive make * mpmod.c, mul_lo.c: __GMP_BITS_PER_MP_LIMB -> GMP_NUMB_BITS use inline only with gcc * INSTALL: moved comments about CC/CFLAGS * c155: test number for ecm efficiency * INSTALL: added comment about CC/CFLAGS * resume.c: changed char c to int c in freadstrn (otherwise c != EOF always true on irix64) * mpmod.c: put back reduction in mpres_add/sub * Makefile: transfer LD in recursive make * mpmod.c: fixed two problems (missing include alloca.h, add_nc not always defined) * pm1.c: include gmp-mparam.h only when WANT_GMP_IMPL * ecm.h, listz.c, polyeval.c: now list_mul_z also reduces mod modulus * pm1.c: fixed typo * mpmod.c: now mpz_mod_n takes both source and destination, to avoid copies * main.c: added -primetest option * listz.c: added function to check size of residues (DEBUG) * ecm.c: used swap in add3 to avoid copies * TODO: removed done item (-primetest) 2003-02-13 paul * Makefile, ecm.h: changed version * mul_lo.c, pp1.c, stage2.c, mpmod.c: minor editing * main.c: updated on-line help * listz.c: added missing space * cputime.h: now in auxi.c * TODO: removed 2 done items * README: updated with -resume, new files, etc * ecm.h, main.c, mpmod.c, pm1.c, pp1.c, ecm.c: implemented -nobase2 option * mpmod.c, mul_lo.c: got rid of gmp-impl.h (if WANT_GMP_IMPL not defined) * Makefile: removed -pedantic now -DPOLYEVAL is no longer needed (it is the default) * ecm.h: define MUL_KARATSUBA_THRESHOLD (if not already) define POLYEVAL (if not POLYGCD) * main.c: replaced #ifdef POLYEVAL by #ifndef POLYGCD (now POLYEVAL is the default) 2003-02-13 alex * main.c: Small change to "Usage" text: added remark that -resume can read from stdin. 2003-02-12 paul * main.c: updated on-line help 2003-02-12 alex * resume.c: I'll try to stop violating my own specs. METHOD= values changed from PM1 and PP1 to P-1 and P+1. 2003-02-12 paul * mpmod.c: improved mpz_mod_n (gain of about 10%) * test.ecm: added -k for "extra" factor * TODO: removed done items * Makefile: removed mul_hi from tune target * mpmod.c: new REDC at mpn-level, using fast mpn_mul_lo * main.c: changed default number of blocks for POLYEVAL * ecm.h: added prototype for mul_lo * README: added "how to get the best of GMP-ECM" * mul_lo.c: low-half multiplication * tune.c: to tune mpmod algorithms * Makefile: added mul_lo and tune * stage2.c: removed number of muls without -v * Makefile: replaced CXX by LD when appropriate 2003-02-12 alex * resume.c: Routines for saving/resuming residues 2003-02-12 paul * stage2.c: fixed another memory leak * stage2.c: fixed memory leak * pm1.c: added default POWM_THRESHOLD 2003-02-11 alex * test.ecm, test.pm1, test.pp1: Modified test suites to work with new command line paramters * Makefile, ecm.c, ecm.h, ecm2.c, main.c, pm1.c, pp1.c, stage2.c, test.ecm: Added -resume option. Sigma, the A paramter and starting point are now specified by the command line option -sigma, -A and -x0. 2003-02-08 paul * INSTALL: added comment about editing Makefile 2003-02-06 alex * toomcook.c: Changed copyright. 2003-02-06 paul * mpmod.c: added mpn-version of REDC * Makefile: ecm5 -> ecm * test.pm1: put missing | * Makefile: removed -static 2003-02-05 paul * TODO: added one item * mpmod.c: added cast to mp_limb_t * Makefile: added GMP= and NTL= in recursive make call * Makefile: updated VERSION * INSTALL, README, ecm.h: version is now 5.0-beta updated INSTALL and README * main.c: use ECM_VERSION for -save * test.ecm, test.pm1: removed too long tests * TODO: added item for long term * toomcook.c: added spaces * test.ecm, test.pm1, test.pp1: added license * stage2.c: removed #ifdef INVF (now INVF always used) added B2min added total count of muls * pp1.c: added B2min * polyz.c: removed/commented unused code * polyeval.c: added count of muls * pm1.c: updated copyright line added B2min * ntl.c: updated copyright line * mpmod.c: fixed efficiency problem in mpz_mod_n * memory.c: updated document origin * main.c: added champion treatment allow rational seed added B2min * lucas.c, listz.c, getprime.c: updated copyright line * ecm2.c: updated copyright line removed unused code * ecm.h: added licence modified prototypes to include B2min * ecm.c: updated copyright line added B2min in args to ecm() * bestd.c: updated copyright line * auxi.c: updated copyright line added cputime (from cputime.h, now removed) * TODO: removed items done * README: added explanation on - how to use P-1, P+1, ECM - table of optimal B1, B2 - memory usage - option -save * Makefile: added licence moved polyz.c in EXTRAFILES * INSTALL: updated (NTL not needed any more) 2003-02-04 paul * polyeval.c: implement algorithm POLYEVAL * stage2.c: adapted for polyeval * polyz.c: commented poly_gcd when POLYEVAL * mpmod.c: cosmetic changes * listz.c: several changes for polyeval, in particular modified PolyFromRoots to complete the whole product tree * ecm.h: several changes for polyeval * auxi.c: added ceil_log2 * Makefile: adapted to allow both compilation with NTL (POLYGCD=1) and without (default) * test.ecm: added -k option to one test with g1 > B2 * TODO: added one item * main.c: added -power in on-line help * main.c: added option -power 2003-01-30 alex * ecm.c, ecm.h, ecm2.c, main.c, mpmod.c, pm1.c, pp1.c, stage2.c: Command line option -dickson to control whether Dickson polys are used or not. Factors found in ecm_rootsG are handeled properly. Added checksum to save file lines. 2003-01-29 alex * main.c, pm1.c, pp1.c: P-1 and P+1 are again exponentiating by N-1 and the default seed for P-1 is random again, which I had disabled during test runs. 2003-01-27 alex * mpmod.c, pm1.c, pp1.c, stage2.c, ecm.c, ecm.h, ecm2.c, main.c: Choosing the modulo reduction algorithm inside the different factoring algos now, residue and modulus passed to pm1(), pp1() and ecm() are mpz_t again. Initialisation for different mod algos are separate functions now to allow specifically choosing one. New command line paramters added for doing so. 2003-01-27 paul * mpmod.c: added explicit casts for 64-bit machines * main.c: char -> int for return value of getchar() 2003-01-13 alex * ecm.h, mpmod.c: Another attempt to check in the MODMULN code. 2003-01-12 alex * pp1.c: Fixed typo and a small memory leak in rootsG_init/clear. 2003-01-10 paul * Makefile: added mpmod.{c,o} 2003-01-03 alex * mpmod.c: Basic functionality for modular arithmetic. Plain mpz_mod, base-2 and REDC are implemented. MULMODN is to follow. * listz.c, lucas.c, main.c, memory.c, pm1.c, pp1.c, stage2.c, ecm.c, ecm.h, ecm2.c: Changes for using mpmod arithmetic. Moved computation of roots of F and G into ecm2.c, pp1.c and pm1.c, respectively. 2002-12-20 paul * stage2.c: comments should be in standard C format /* ... */ and not in C++ format // ... 2002-12-19 alex * auxi.c, ecm.h, stage2.c: Basic functions for Dickman's polynomials. Not enabled yet. 2002-12-17 paul * test.ecm: test file for ecm (from ecm4c) * check.mpl: added useful routines for ecm * stage2.c: adapted for ecm stage 2 * main.c: removed temporary try with MPM * pp1.c: added computation of multiplies added routine to check if factor found by P-1 or P+1 now always uses PRAC * polyz.c: inhibit memory check functions during NTL call * pm1.c: adapted to generic stage 2 * main.c: added memory check functions (with -DDEBUG) fixed some memory leaks * lucas.c: started to adapt to generic modular multiplication * listz.c: put mpz_mulmod macro in ecm.h * ecm.h: modified for ecm stage 2 * ecm.c: adapted for stage 2 * TODO: removed 2 items * ecm2.c: functions for ecm stage 2 * Makefile: added ecm2.c and memory.c * memory.c: file to check memory allocation 2002-12-06 paul * pm1.c, pp1.c, ecm.c: added fflush() after "Using sigma/seed=..." * TODO: added format proposal for save/restore * TODO: changed one item * TODO: added 4 items 2002-12-05 alex * ecm.c, ecm.h, main.c, pm1.c, pp1.c, stage2.c: Support for save files half finished. Factors are returned in a new variable, f. p is only for passing residues around, and stage2() must not change p. New parameter: B1done, which tells factoring functions up to which bound stage 1 has been completed before. Save files can be created, but not read in yet. 2002-12-03 paul * Makefile: aux.c -> auxi.c 2002-11-30 paul * aux.c, auxi.c: renamed aux.c to auxi.c (problems under Windows) 2002-11-29 paul * pp1.c: get rid of count_leading_zeros * Makefile, lucas.c: added file lucas.c * stage2.c: changed order of operands in pp1_mul * pp1.c: now uses Lucas sequences when PRAC is defined * main.c: defined B1cost for ECM * ecm.h: changed order of arguments of pp1_mul_ui for consistency added prototype for pp1_mul_prac * ecm.c: cosmetic changes * TODO: added several items 2002-11-28 paul * INSTALL, Makefile, README: added INSTALL file * pp1.c, stage2.c: use pp1_mul instead of pp1_mul_ui to avoid depending on longlong.h * Makefile: put /usr/local/gmp and /usr/local/ntl as default directories for GMP and NTL * toomcook.c: changed to "gmp.h" for consistency * ecm.h, main.c, pm1.c, pp1.c: now use random seed for all methods when sigma=0 use getpid() in addition of time() for random seed 2002-11-27 paul * pp1.c: fixed bug in pp1_mul_ui 2002-11-26 alex * ecm.c, main.c, pm1.c, pp1.c: Cleaned up handling of default values and method-specific screen output. 2002-11-26 paul * test.pp1: test file for Williams P+1 * pp1.c: Williams P+1 method * stage2.c: adapted for P+1 * ecm.h: added prototypes for P+1 added 'method' argument to stage2 functions * pm1.c: passed method=PM1_METHOD to stage2() call * main.c: added P+1 * ecm.c: added method in stage2() call * README: todo in a separate file updated * TODO: TODO file :-) * Makefile: added pp1.c 2002-11-25 paul * ecm.h, listz.c, stage2.c: added INVF trick (precomputation of 1/F to speed up divisions by F) * check.mpl: added auxiliary functions to compute numbers of multiplies of karatsuba, toomcook3, toomcook4 * README: removed one item done in TODO, added one more 2002-11-24 alex * toomcook.c: Proof for temp space now reflects the reduced memory requirements of toomcook3(). No change to code itself. 2002-11-19 paul * ecm.h, listz.c: karatsuba() returns int again 2002-11-19 alex * ecm.c, ecm.h, main.c: Added ECM stage 1. In ecm.h, return type of karatsuba changed to void again, to match karatsuba in listz.c. * listz.c: Toom-Cook 4 is default again. buildG now prints timing info to stdout instead of stderr. 2002-11-15 paul * ecm.h: return type changed to int * toomcook.c: optimized karatsuba/toomcook3/toomcook4 thresholds for minimum of scalar multiplies * test.pm1: added one test 2002-11-14 paul * main.c: replaced __GNU_MP_VERSION etc by gmp_version (better for dynamic library) * Makefile: removed -static 2002-11-07 alex * ecm.h, toomcook.c: Bug: forgot to change definition of T in toomcook.c, so the temp space required still was 2*len+4*log_3(len). Oddly, it did not crash. Fixed (the "too much space" problem, not "the did not crash" problem). 2002-11-06 alex * listz.c, toomcook.c: toomcook[34]() use <= 2*len+2*log_3(len) temp space now 2002-11-05 paul * check.mpl: included Williams P+1 stage 1 code and test inputs * ecm.h, main.c, pm1.c, stage2.c: replaced INVS macros by if-statements (use the x+1/x trick whenever Pollard P-1 is performed) * main.c: changed default choice of B2 so that stage 2 takes about half of stage 1 (assuming Toom-Cook 3 is used) * test.pm1: added 3 more tests changed -e 6 into -e 12 (if "invs" trick not used) * stage2.c: added INVS macro to enable "invs" trick * pm1.c: added trick from Peter for Cunningham numbers * main.c: changed default k to 7 set default S to 1 for ecm, 2 for Pollard (without INVS) * listz.c: only style changes 2002-11-04 alex * ecm.h, listz.c, toomcook.c: Added toomcook4(). 2002-11-01 alex * test.pm1: Added a factor that was missed by old polygcd code to test cases 2002-10-29 alex * ecm.h, stage2.c, test.pm1: rootsG uses batch inversion for large Suyamas powers. Tried to make indentation coherent. 2002-10-28 alex * stage2.c: Fixed bad merge, T was allocated twice 2002-10-27 alex * ecm.c, ecm.h, listz.c, main.c, pm1.c, stage2.c: Added Suyamas powers for stage 2. 2002-10-25 alex * toomcook.c: Added GPL header. Cleaned up comments a little. No change to code itself. 2002-10-25 paul * check.mpl: added function to compute Toom-Cook 3 auxiliary space * toomcook.c: edited according to GNU coding style and added analysis of temp. space needed * stage2.c: modified memory space for T * main.c: put back sigma=17 as initial value for P-1 * listz.c: incorporated toomcook3 code from Alex * ecm.h: added prototype for toomcook3 * Makefile: added toomcook.c * test.pm1: added one test * stage2.c: fixed bug in rootsG (G[0] was not set) * test.pm1: test file for Pollard P-1 * poly.c: replaced by listz.c (lists) and polyz.c (polynomials) * polyz.c: routines for polynomials of integers (mpz_t) * listz.c: routines for arrays of mpz_t's * ntl.c: NTL interface (first version) * stage2.c, pm1.c: added verbose flag * main.c: adapted for NTL interface * getprime.c: fixed problems with signed/unsigned integers * ecm.h: modified for NTL interface * ecm.c: added verbose flag * check.mpl: added routine for Pollard P-1 stage 1 * bestd.c: added missing stdlib.h * aux.c: added missing string.h * README: gcd stuff is ok now (using NTL) * Makefile: adapted for NTL interface 2002-10-24 paul * toomcook.c: Toom-Cook 3-way code from Alexander Kruppa 2002-09-13 paul * COPYING: New file. * COPYING: first version * Makefile, README, aux.c, bestd.c, check.mpl, cputime.h, ecm.c, ecm.h, getprime.c, main.c, pm1.c, poly.c, stage2.c: New file. * Makefile, README, aux.c, bestd.c, check.mpl, cputime.h, ecm.c, ecm.h, getprime.c, main.c, pm1.c, poly.c, stage2.c: first version