From 4d3c6f8113a46b45636367fbbd44748d3dece8a9 Mon Sep 17 00:00:00 2001 From: Richard Kreckel Date: Fri, 25 May 2001 17:30:21 +0000 Subject: [PATCH] * Removed LiDIA interface since that is now outdated (namespace cln) and maintained elsewhere. --- lidia-interface/LiDIA-patch1 | 321 ------- lidia-interface/LiDIA-patch2 | 27 - lidia-interface/README | 57 -- lidia-interface/TAR-FILE-LIST | 236 ------ lidia-interface/bigint.o.i386-linux | Bin 27412 -> 0 bytes lidia-interface/bigint.o.needs | 104 --- lidia-interface/bigint.o.undef | 62 -- .../src/interfaces/integers/cln/bigint.c | 784 ------------------ .../src/interfaces/integers/cln/bigint_def.h | 40 - .../src/interfaces/integers/cln/makefile | 69 -- .../src/kernel/integers/cln/README | 17 - .../src/kernel/integers/cln/cln/README.LiDIA | 6 - .../src/kernel/integers/cln/makefile | 178 ---- 13 files changed, 1901 deletions(-) delete mode 100644 lidia-interface/LiDIA-patch1 delete mode 100644 lidia-interface/LiDIA-patch2 delete mode 100644 lidia-interface/README delete mode 100644 lidia-interface/TAR-FILE-LIST delete mode 100644 lidia-interface/bigint.o.i386-linux delete mode 100644 lidia-interface/bigint.o.needs delete mode 100644 lidia-interface/bigint.o.undef delete mode 100644 lidia-interface/src/interfaces/integers/cln/bigint.c delete mode 100644 lidia-interface/src/interfaces/integers/cln/bigint_def.h delete mode 100644 lidia-interface/src/interfaces/integers/cln/makefile delete mode 100644 lidia-interface/src/kernel/integers/cln/README delete mode 100644 lidia-interface/src/kernel/integers/cln/cln/README.LiDIA delete mode 100755 lidia-interface/src/kernel/integers/cln/makefile diff --git a/lidia-interface/LiDIA-patch1 b/lidia-interface/LiDIA-patch1 deleted file mode 100644 index 5665cab..0000000 --- a/lidia-interface/LiDIA-patch1 +++ /dev/null @@ -1,321 +0,0 @@ -diff -r -c3 LiDIA-1.3.orig/Readme LiDIA-1.3/Readme -*** LiDIA-1.3.orig/Readme Wed Feb 5 21:51:10 1997 ---- LiDIA-1.3/Readme Sun Jan 25 00:44:29 1998 -*************** -*** 157,164 **** - o mpqs: large prime variant for quadratic sieve in the class - rational_factorization. - -! o You can now choose gmp as the integer arithmetic of the kernel. -! This LiDIA - release contains gmp version 2.0.2. - - - ---- 157,164 ---- - o mpqs: large prime variant for quadratic sieve in the class - rational_factorization. - -! o You can now choose gmp or cln as the integer arithmetic of the kernel. -! This LiDIA release contains gmp version 2.0.2 and cln version 1997-09-06. - - - -diff -r -c3 LiDIA-1.3.orig/config/CONFIG.in LiDIA-1.3/config/CONFIG.in -*** LiDIA-1.3.orig/config/CONFIG.in Wed Feb 5 12:02:16 1997 ---- LiDIA-1.3/config/CONFIG.in Sat Jan 24 18:42:57 1998 -*************** -*** 42,48 **** - # - # The Kernel And The Interface To Be compiled - # -! # Possible Integer Interfaces Are: libI, lip, gmp - # - # Possible Memory Managers Are: malloc, dentzer, boehm, - # default (no manager) ---- 42,48 ---- - # - # The Kernel And The Interface To Be compiled - # -! # Possible Integer Interfaces Are: libI, lip, gmp, cln - # - # Possible Memory Managers Are: malloc, dentzer, boehm, - # default (no manager) -*************** -*** 149,155 **** - LIDIA_INSTALL_DAT = ${LIDIA_INSTALL_DIR}/lib - - # -! # OS/2 Compatability Section - # - - CXX-off = ---- 149,155 ---- - LIDIA_INSTALL_DAT = ${LIDIA_INSTALL_DIR}/lib - - # -! # OS/2 Compatibility Section - # - - CXX-off = -*************** -*** 166,171 **** ---- 166,172 ---- - # Make Command Macros - # - # AR -- the archiver command -+ # ARX -- the archiver extract command - # RM -- command used to remove files - # RMR -- command used to remove directories - # CP -- command used to copy files -*************** -*** 178,183 **** ---- 179,185 ---- - # - - AR = @AR@ -+ ARX = ar x - RM = @RM@ - RMR = @RMR@ - CP = @CP@ -diff -r -c3 LiDIA-1.3.orig/config/CONFIG.os2 LiDIA-1.3/config/CONFIG.os2 -*** LiDIA-1.3.orig/config/CONFIG.os2 Tue Jan 21 14:55:44 1997 ---- LiDIA-1.3/config/CONFIG.os2 Sat Jan 24 18:43:28 1998 -*************** -*** 137,142 **** ---- 137,143 ---- - # Make Command Macros - # - # AR -- the archiver command -+ # ARX -- the archiver extract command - # RM -- command used to remove files - # RMR -- command used to remove directories - # CP -- command used to copy files -*************** -*** 147,152 **** ---- 148,154 ---- - # TOUCH -- command used to create an empry file - # - AR = ar ru -+ ARX = ar x - RM = del /N - RMR = del /N - CP = xcopy -diff -r -c3 LiDIA-1.3.orig/config/bin/integer-sh LiDIA-1.3/config/bin/integer-sh -*** LiDIA-1.3.orig/config/bin/integer-sh Tue Oct 22 22:25:57 1996 ---- LiDIA-1.3/config/bin/integer-sh Sun Jan 25 00:47:13 1998 -*************** -*** 7,15 **** - - echo " " - echo "You will now be asked for the integer arithmetic that " -! echo "will be used in the kernel of LiDIA (gmp, libI, lip)." - echo " " - echo "gmp - written by Torbjorn Granlund" - echo "libI - written by Ralf Dentzer" - echo "lip - written by Arjen Lenstra" - echo " " ---- 7,16 ---- - - echo " " - echo "You will now be asked for the integer arithmetic that " -! echo "will be used in the kernel of LiDIA (gmp, cln, libI, lip)." - echo " " - echo "gmp - written by Torbjorn Granlund" -+ echo "cln - written by Bruno Haible (based on gmp)" - echo "libI - written by Ralf Dentzer" - echo "lip - written by Arjen Lenstra" - echo " " -*************** -*** 23,35 **** - do - echo -n "integer arithmetic ? [$INTEGERS] : " - read ANSWER -! if test "$ANSWER" = "gmp" -o "$ANSWER" = "lip" -o "$ANSWER" = "libI" ; then - INTEGERS=$ANSWER - SUCCESS=y - elif test "$ANSWER" = "" ; then - SUCCESS=y - else -! echo "Please choose gmp, libI, or lip." - INTEGERS="libI" - fi - done ---- 24,36 ---- - do - echo -n "integer arithmetic ? [$INTEGERS] : " - read ANSWER -! if test "$ANSWER" = "gmp" -o "$ANSWER" = "cln" -o "$ANSWER" = "lip" -o "$ANSWER" = "libI" ; then - INTEGERS=$ANSWER - SUCCESS=y - elif test "$ANSWER" = "" ; then - SUCCESS=y - else -! echo "Please choose gmp, cln, libI, or lip." - INTEGERS="libI" - fi - done -diff -r -c3 LiDIA-1.3.orig/doc/manual/FIG/lidia_model.fig LiDIA-1.3/doc/manual/FIG/lidia_model.fig -*** LiDIA-1.3.orig/doc/manual/FIG/lidia_model.fig Tue Feb 27 11:57:01 1996 ---- LiDIA-1.3/doc/manual/FIG/lidia_model.fig Sun Jan 25 00:48:58 1998 -*************** -*** 55,61 **** - 4 0 -1 0 0 2 16 0.0000000 4 225 2085 1200 2850 parameterized classes\001 - 4 0 -1 0 0 2 16 0.0000000 4 225 1365 1200 4035 simple classes\001 - 4 0 -1 0 0 2 16 0.0000000 4 165 930 1200 5220 interfaces\001 -! 4 2 -1 0 0 12 12 0.0000000 4 180 2100 9000 6375 (libI, lip, gmp, mm)\001 - 4 2 -1 0 0 12 12 0.0000000 4 180 1365 9000 5175 (bigint, gmm)\001 - 4 2 -1 0 0 12 12 0.0000000 4 180 2940 9000 3975 (bigrational, bigfloat, ...)\001 - 4 2 -1 0 0 12 12 0.0000000 4 180 3675 9000 2775 (vector, matrix, power series, ...)\001 ---- 55,61 ---- - 4 0 -1 0 0 2 16 0.0000000 4 225 2085 1200 2850 parameterized classes\001 - 4 0 -1 0 0 2 16 0.0000000 4 225 1365 1200 4035 simple classes\001 - 4 0 -1 0 0 2 16 0.0000000 4 165 930 1200 5220 interfaces\001 -! 4 2 -1 0 0 12 12 0.0000000 4 180 2100 9000 6375 (libI, lip, gmp, cln, mm)\001 - 4 2 -1 0 0 12 12 0.0000000 4 180 1365 9000 5175 (bigint, gmm)\001 - 4 2 -1 0 0 12 12 0.0000000 4 180 2940 9000 3975 (bigrational, bigfloat, ...)\001 - 4 2 -1 0 0 12 12 0.0000000 4 180 3675 9000 2775 (vector, matrix, power series, ...)\001 -diff -r -c3 LiDIA-1.3.orig/doc/manual/bibliography.tex LiDIA-1.3/doc/manual/bibliography.tex -*** LiDIA-1.3.orig/doc/manual/bibliography.tex Fri Jan 24 13:22:31 1997 ---- LiDIA-1.3/doc/manual/bibliography.tex Sun Jan 25 00:55:48 1998 -*************** -*** 151,156 **** ---- 151,159 ---- - \IT{A rigorous subexponential algorithm for computation of class groups}, - Tech. report, IBM Research Report, San Jose, CA, 1989. - -+ \bibitem{haible} B. Haible: -+ \IT{CLN, a Class Library for Numbers}, 1997. -+ - \bibitem{HLConF} G.H. Hardy and J.E. Littlewood: - \IT{\em Partitio numerorum {III}: On the expression of a number as a sum of - primes}, Acta Math. {\bf 44} (1923), 1--70. -diff -r -c3 LiDIA-1.3.orig/doc/manual/installing.tex LiDIA-1.3/doc/manual/installing.tex -*** LiDIA-1.3.orig/doc/manual/installing.tex Wed Feb 5 17:33:40 1997 ---- LiDIA-1.3/doc/manual/installing.tex Sun Jan 25 00:58:30 1998 -*************** -*** 309,316 **** - of the kernel. - \item BIGINT\\ - This is used to decide which integer arithmetic is to be compiled with -! {\LiDIA}. At the moment we support three possibilities: \TT{gmp}, \TT{libI}, -! and \TT{lip}. We suggest that you use the \TT{gmp} with the GNU g++ - compiler and \TT{libI} otherwise. Use \TT{lip}, if you have chosen - \TT{libI} during the configuration process and TARGET has been set - to c by configure. In this case, no \TT{libI} assembler code is ---- 309,316 ---- - of the kernel. - \item BIGINT\\ - This is used to decide which integer arithmetic is to be compiled with -! {\LiDIA}. At the moment we support four possibilities: \TT{gmp}, \TT{cln}, -! TT{libI}, and \TT{lip}. We suggest that you use the \TT{gmp} with the GNU g++ - compiler and \TT{libI} otherwise. Use \TT{lip}, if you have chosen - \TT{libI} during the configuration process and TARGET has been set - to c by configure. In this case, no \TT{libI} assembler code is -diff -r -c3 LiDIA-1.3.orig/doc/manual/overview.tex LiDIA-1.3/doc/manual/overview.tex -*** LiDIA-1.3.orig/doc/manual/overview.tex Wed Jan 29 19:32:32 1997 ---- LiDIA-1.3/doc/manual/overview.tex Sun Jan 25 00:57:36 1998 -*************** -*** 19,24 **** ---- 19,25 ---- - \newcommand{\libi}{{\bf libI}} - \newcommand{\gmp}{{\bf GNU gmp}} - \newcommand{\lip}{{\bf lip}} -+ \newcommand{\cln}{{\bf cln}} - \newcommand{\bigint}{{\bf bigint}} - - -*************** -*** 70,76 **** - It is a serious problem to decide which multiprecision integer package - and which memory manager should be used in \LiDIA. There are - competing multiprecision integer packages, for example the -! \gmp\ package \cite{gnump}, the \libi\ package \cite{dentzer} and - the \lip\ package \cite{lenstra}. Some of those packages are more - efficient on one architecture and some on others. Also, new - architectures lead very fast to new multiprecision packages. We decided ---- 71,78 ---- - It is a serious problem to decide which multiprecision integer package - and which memory manager should be used in \LiDIA. There are - competing multiprecision integer packages, for example the -! \gmp\ package \cite{gnump}, the \cln\ package \cite{haible}, -! the \libi\ package \cite{dentzer} and - the \lip\ package \cite{lenstra}. Some of those packages are more - efficient on one architecture and some on others. Also, new - architectures lead very fast to new multiprecision packages. We decided -*************** -*** 112,120 **** - whole functionality of the interface can be used in the kernel. - Currently, we support the multiprecision integer packages - \libi\ \cite{dentzer}, Arjen Lenstra's \Index{lip} package \cite{lenstra} -! (available by anonymous ftp via \TT{flash.bellcore.com:/pub/lenstra}) and GNU's - \IndexSUBTT{GNU}{gmp} arithmetic \cite{gnump} (available by anonymous -! ftp via \TT{prep.ai.mit.edu}). - - The second \LiDIA\ level is the \BF{interface} through which {\CPP} - applications on higher levels have access to the kernel. By that ---- 114,123 ---- - whole functionality of the interface can be used in the kernel. - Currently, we support the multiprecision integer packages - \libi\ \cite{dentzer}, Arjen Lenstra's \Index{lip} package \cite{lenstra} -! (available by anonymous ftp via \TT{flash.bellcore.com:/pub/lenstra}), GNU's - \IndexSUBTT{GNU}{gmp} arithmetic \cite{gnump} (available by anonymous -! ftp via \TT{prep.ai.mit.edu}), and CLN (available by anonymous ftp from -! \TT{ma2s2.mathematik.uni-karlsruhe.de:/pub/gnu}). - - The second \LiDIA\ level is the \BF{interface} through which {\CPP} - applications on higher levels have access to the kernel. By that -diff -r -c3 LiDIA-1.3.orig/include/LiDIA/bigint.h LiDIA-1.3/include/LiDIA/bigint.h -*** LiDIA-1.3.orig/include/LiDIA/bigint.h Tue Oct 29 17:47:17 1996 ---- LiDIA-1.3/include/LiDIA/bigint.h Sat Jan 24 20:29:16 1998 -*************** -*** 51,56 **** ---- 51,57 ---- - bigint(long l); - bigint(unsigned long ul); - bigint(const bigint & a); -+ bigint(const integer_type_name & II) : I (II) {} // cln needs this - ~bigint(); - - /** -Only in LiDIA-1.3/src/interfaces/integers: cln -diff -r -c3 LiDIA-1.3.orig/src/interfaces/integers/gmp/bigint.c LiDIA-1.3/src/interfaces/integers/gmp/bigint.c -*** LiDIA-1.3.orig/src/interfaces/integers/gmp/bigint.c Fri Jan 10 18:19:00 1997 ---- LiDIA-1.3/src/interfaces/integers/gmp/bigint.c Sat Jan 24 17:41:29 1998 -*************** -*** 610,616 **** - - void invert(bigint & a, const bigint & b) - { -! if ((a.I._mp_size == 1 || a.I._mp_size == -1) && a.I._mp_d[0] == 1) - mpz_set(&a.I, &b.I); - else - lidia_error_handler("bigint", "invert::inverting of a non-unit."); ---- 610,616 ---- - - void invert(bigint & a, const bigint & b) - { -! if ((b.I._mp_size == 1 || b.I._mp_size == -1) && b.I._mp_d[0] == 1) - mpz_set(&a.I, &b.I); - else - lidia_error_handler("bigint", "invert::inverting of a non-unit."); -Only in LiDIA-1.3/src/kernel/integers: cln -diff -r -c3 LiDIA-1.3.orig/src/simple_classes/factorization/mpqs.c LiDIA-1.3/src/simple_classes/factorization/mpqs.c -*** LiDIA-1.3.orig/src/simple_classes/factorization/mpqs.c Tue Jan 28 14:00:36 1997 ---- LiDIA-1.3/src/simple_classes/factorization/mpqs.c Sat Jan 24 17:45:17 1998 -*************** -*** 17,23 **** - //extern "C" int system(char*); - #endif - -! #if !defined(__GNUG__) - #include - #else - #define SIGHUP 1 /* hangup */ ---- 17,23 ---- - //extern "C" int system(char*); - #endif - -! #if defined(__linux__) || !defined(__GNUG__) - #include - #else - #define SIGHUP 1 /* hangup */ diff --git a/lidia-interface/LiDIA-patch2 b/lidia-interface/LiDIA-patch2 deleted file mode 100644 index 31ea28c..0000000 --- a/lidia-interface/LiDIA-patch2 +++ /dev/null @@ -1,27 +0,0 @@ -diff -r -c3 LiDIA-1.3/config/CONFIG LiDIA/config/CONFIG -*** LiDIA-1.3/config/CONFIG Mon Apr 15 15:00:47 1996 ---- LiDIA/config/CONFIG Sun Nov 17 18:43:41 1996 -*************** -*** 49,57 **** - # default (no manager) - # - -! BIGINT = libI -! GMM = default - - - # - # The Compiler/Assembler/Linker Settings ---- 49,60 ---- - # default (no manager) - # - -! BIGINT = cln -! GMM = default - -+ CLN_DIR = /home/bruno/cln -+ CLN_TARGETDIR = /home/bruno/cln/linuxelf -+ CLN_INCLUDES = -I$(CLN_TARGETDIR)/include -I$(CLN_DIR)/include -I$(CLN_DIR)/src/base -I$(CLN_DIR)/src/float -I$(CLN_DIR)/src/float/dfloat -I$(CLN_DIR)/src/io - - # - # The Compiler/Assembler/Linker Settings diff --git a/lidia-interface/README b/lidia-interface/README deleted file mode 100644 index 702053d..0000000 --- a/lidia-interface/README +++ /dev/null @@ -1,57 +0,0 @@ -This directory contains an interface to the LiDIA library, version 1.3.1. -It is already contained in LiDIA-1.3.1 and LiDIA-1.4a1, and is reproduced -here only as a sample for the use of CLN. - -LiDIA is available from - ftp://ftp.informatik.th-darmstadt.de/pub/TI/systems/LiDIA -(The LiDIA group has also a nice Web page.) - -LiDIA has an abstract interface to the underlying long integer implementation. -Using CLN instead of the default libI, lip or gmp has the following -advantages: - - - Maximum speed on all CPUs, since CLN is based on the highly - optimized gmp-2.0.2. - - - Very large integers profit from CLN's Schönhage-Strassen FFT multiplication - (asymptotic bit complexity: O(N log N log log N)). - - - Copying integers is fast: no copying is actually involved, only a - reference count is manipulated. - - - Small integers (absolute value < 2^29) are represented immediately, - thus no memory allocation/deallocation is involved when dealing with - small integers. - -CLN does all this automatically. - -INSTALLATION ------------- - -1. Build CLN. - -2. Apply the first patch to LiDIA: - $ cd .../LiDIA - $ patch -p1 < .../cln/lidia-interface/LiDIA-patch1 - -3. Configure LiDIA as described in its manual. - -4. Apply the second patch to LiDIA: - $ cd .../LiDIA - $ patch -p1 < .../cln/lidia-interface/LiDIA-patch2 - You may have to do this by hand, if the patch fails. - -5. Make two symbolic links - $ ln -s .../cln/lidia-interface/interfaces/integers/cln \ - .../LiDIA/src/interfaces/integers/cln - $ ln -s .../cln/BUILDDIR/src .../LiDIA/src/kernel/integers/cln - where .../cln/BUILDDIR is the directory in which you have built - cln (i.e. there is a file .../cln/BUILDDIR/src/libcln.a). - -6. Modify the definitions of the variables CLN_DIR and CLN_TARGETDIR in - the file .../LiDIA/config/CONFIG : - CLN_DIR must point to .../cln, - CLN_TARGETDIR must point to .../cln/BUILDDIR. - -7. Build LiDIA as described in its manual. - diff --git a/lidia-interface/TAR-FILE-LIST b/lidia-interface/TAR-FILE-LIST deleted file mode 100644 index 9411232..0000000 --- a/lidia-interface/TAR-FILE-LIST +++ /dev/null @@ -1,236 +0,0 @@ -cln/COPYING -cln/INSTALL -cln/INSTALL.generic -cln/Makefile.in -cln/README -cln/configure -cln/autoconf/config.guess -cln/autoconf/config.sub -cln/autoconf/floatparam.c -cln/autoconf/intparam.c -cln/autoconf/ltconfig -cln/autoconf/ltmain.sh -cln/benchmarks/Makefile.in -cln/doc/Makefile.in -cln/examples/Makefile.in -cln/gmp/ -cln/include/cl_abort.h -cln/include/cl_complex_class.h -cln/include/cl_config.h.in -cln/include/cl_dfloat.h -cln/include/cl_dfloat_class.h -cln/include/cl_ffloat.h -cln/include/cl_ffloat_class.h -cln/include/cl_float.h -cln/include/cl_floatformat.h -cln/include/cl_float_class.h -cln/include/cl_input.h -cln/include/cl_integer.h -cln/include/cl_integer_class.h -cln/include/cl_integer_io.h -cln/include/cl_io.h -cln/include/cl_lfloat.h -cln/include/cl_lfloat_class.h -cln/include/cl_malloc.h -cln/include/cl_modules.h -cln/include/cl_number.h -cln/include/cl_number_io.h -cln/include/cl_object.h -cln/include/cl_output.h -cln/include/cl_random.h -cln/include/cl_rational_class.h -cln/include/cl_real_class.h -cln/include/cl_sfloat_class.h -cln/include/cl_string.h -cln/include/cl_types.h -cln/src/Makefile.in -cln/src/Makeflags -cln/src/base/Makeflags -cln/src/base/cl_N.h -cln/src/base/cl_N_err_d0.cc -cln/src/base/cl_alloca.cc -cln/src/base/cl_alloca.h -cln/src/base/cl_base_config.h.in -cln/src/base/cl_free.cc -cln/src/base/cl_gmpconfig.h.in -cln/src/base/cl_low.h -cln/src/base/cl_macros.h -cln/src/base/cl_malloc.cc -cln/src/base/cl_notreached.cc -cln/src/base/cl_offsetof.h -cln/src/base/cl_sysdep.h -cln/src/base/cl_xmacros.h -cln/src/base/digit/Makeflags -cln/src/base/digit/cl_D.h -cln/src/base/digitseq/Makeflags -cln/src/base/digitseq/cl_DS.h -cln/src/base/digitseq/cl_DS_div.cc -cln/src/base/digitseq/cl_DS_endian.h -cln/src/base/digitseq/cl_DS_mul.cc -cln/src/base/digitseq/cl_DS_mul_fftm.h -cln/src/base/digitseq/cl_DS_mul_kara.h -cln/src/base/digitseq/cl_DS_mul_kara_sqr.h -cln/src/base/digitseq/cl_DS_random.cc -cln/src/base/digitseq/cl_DS_recip.cc -cln/src/base/digitseq/cl_DS_recipsqrt.cc -cln/src/base/digitseq/cl_DS_sqrt.cc -cln/src/base/digitseq/cl_asm.h -cln/src/base/digitseq/cl_asm_.cc -cln/src/base/digitseq/cl_asm_arm.h -cln/src/base/digitseq/cl_asm_arm_.cc -cln/src/base/digitseq/cl_asm_hppa.h -cln/src/base/digitseq/cl_asm_hppa_.cc -cln/src/base/digitseq/cl_asm_i386.h -cln/src/base/digitseq/cl_asm_i386_.cc -cln/src/base/digitseq/cl_asm_m68k.h -cln/src/base/digitseq/cl_asm_m68k_.cc -cln/src/base/digitseq/cl_asm_mips.h -cln/src/base/digitseq/cl_asm_mips_.cc -cln/src/base/digitseq/cl_asm_sparc.h -cln/src/base/digitseq/cl_asm_sparc_.cc -cln/src/base/digitseq/cl_asm_sparc64.h -cln/src/base/digitseq/cl_asm_sparc64_.cc -cln/src/base/input/Makeflags -cln/src/base/input/cl_read_err_bad.cc -cln/src/base/input/cl_read_err_junk.cc -cln/src/base/low/Makeflags -cln/src/base/low/cl_low_div.cc -cln/src/base/low/cl_low_mul.cc -cln/src/base/output/Makeflags -cln/src/base/output/cl_output_dec.cc -cln/src/base/output/cl_prin_globals.cc -cln/src/base/random/Makeflags -cln/src/base/random/cl_UL_random.cc -cln/src/base/random/cl_random_def.cc -cln/src/base/random/cl_random_from.cc -cln/src/base/random/cl_random_impl.h -cln/src/base/string/Makeflags -cln/src/base/string/cl_spushstring.h -cln/src/base/string/cl_spushstring_push.cc -cln/src/base/string/cl_sstring.cc -cln/src/base/string/cl_sstring.h -cln/src/base/string/cl_st_c2.cc -cln/src/base/string/cl_st_make1.cc -cln/src/base/string/cl_st_make2.cc -cln/src/base/string/cl_st_null.cc -cln/src/base/string/misc/Makeflags -cln/src/base/string/misc/cl_st_class.cc -cln/src/integer/Makeflags -cln/src/integer/cl_I.h -cln/src/integer/algebraic/Makeflags -cln/src/integer/algebraic/cl_I_sqrt.cc -cln/src/integer/bitwise/Makeflags -cln/src/integer/bitwise/cl_I_ash.cc -cln/src/integer/bitwise/cl_I_ash.h -cln/src/integer/bitwise/cl_I_ash_I.cc -cln/src/integer/bitwise/cl_I_asherr.cc -cln/src/integer/bitwise/cl_I_byte.h -cln/src/integer/bitwise/cl_I_fullbyte.cc -cln/src/integer/bitwise/cl_I_ilength.cc -cln/src/integer/bitwise/cl_I_ldb.cc -cln/src/integer/bitwise/cl_I_ldbx.cc -cln/src/integer/bitwise/cl_I_log.h -cln/src/integer/bitwise/cl_I_log_aux.cc -cln/src/integer/bitwise/cl_I_logand.cc -cln/src/integer/bitwise/cl_I_logbitp.cc -cln/src/integer/bitwise/cl_I_logior.cc -cln/src/integer/bitwise/cl_I_lognot.cc -cln/src/integer/bitwise/cl_I_logxor.cc -cln/src/integer/conv/Makeflags -cln/src/integer/conv/cl_I_digits_need.cc -cln/src/integer/conv/cl_I_from_DS.cc -cln/src/integer/conv/cl_I_from_L.cc -cln/src/integer/conv/cl_I_from_L2.cc -cln/src/integer/conv/cl_I_from_NDS.cc -cln/src/integer/conv/cl_I_from_NUDS.cc -cln/src/integer/conv/cl_I_from_Q.cc -cln/src/integer/conv/cl_I_from_UDS.cc -cln/src/integer/conv/cl_I_from_UL.cc -cln/src/integer/conv/cl_I_from_UQ.cc -cln/src/integer/conv/cl_I_from_digits.cc -cln/src/integer/conv/cl_I_to_L.cc -cln/src/integer/conv/cl_I_to_Q.cc -cln/src/integer/conv/cl_I_to_UL.cc -cln/src/integer/conv/cl_I_to_UQ.cc -cln/src/integer/conv/cl_I_to_digits.cc -cln/src/integer/division/Makeflags -cln/src/integer/division/cl_I_floor2.cc -cln/src/integer/division/cl_I_rem.cc -cln/src/integer/division/cl_I_trunc1.cc -cln/src/integer/division/cl_I_trunc2.cc -cln/src/integer/elem/Makeflags -cln/src/integer/elem/cl_I_compare.cc -cln/src/integer/elem/cl_I_div.cc -cln/src/integer/elem/cl_I_equal.cc -cln/src/integer/elem/cl_I_minus.cc -cln/src/integer/elem/cl_I_minus1.cc -cln/src/integer/elem/cl_I_minusp.cc -cln/src/integer/elem/cl_I_mul.cc -cln/src/integer/elem/cl_I_plus.cc -cln/src/integer/elem/cl_I_plus1.cc -cln/src/integer/elem/cl_I_square.cc -cln/src/integer/elem/cl_I_uminus.cc -cln/src/integer/elem/cl_I_zerop.cc -cln/src/integer/gcd/Makeflags -cln/src/integer/gcd/cl_I_gcd.cc -cln/src/integer/gcd/cl_I_gcd_aux.cc -cln/src/integer/gcd/cl_I_gcd_aux2.cc -cln/src/integer/gcd/cl_I_xgcd.cc -cln/src/integer/gcd/cl_low_gcd.cc -cln/src/integer/input/Makeflags -cln/src/integer/input/cl_I_from_string.cc -cln/src/integer/input/cl_I_read.cc -cln/src/integer/input/cl_I_readparsed.cc -cln/src/integer/misc/Makeflags -cln/src/integer/misc/cl_BN_class.cc -cln/src/integer/misc/cl_I_abs.cc -cln/src/integer/misc/cl_I_exptpos_I.cc -cln/src/integer/misc/cl_I_oddp.cc -cln/src/integer/output/Makeflags -cln/src/integer/output/cl_I_aprint.cc -cln/src/integer/output/cl_I_bprint.cc -cln/src/integer/output/cl_I_cprint.cc -cln/src/integer/output/cl_I_decstring.cc -cln/src/integer/output/cl_I_dprint.cc -cln/src/integer/output/cl_I_print.cc -cln/src/integer/output/cl_I_print_string.cc -cln/src/integer/random/Makeflags -cln/src/integer/random/cl_I_random.cc -cln/src/float/Makeflags -cln/src/float/cl_F.h -cln/src/float/cl_float_config.h.in -cln/src/float/base/Makeflags -cln/src/float/base/cl_F_err_nan.cc -cln/src/float/base/cl_F_err_ov.cc -cln/src/float/base/cl_F_err_un.cc -cln/src/float/base/cl_F_globals.cc -cln/src/float/base/cl_ieee.cc -cln/src/float/base/cl_ieee.h -cln/src/float/ffloat/Makeflags -cln/src/float/ffloat/cl_FF.h -cln/src/float/ffloat/elem/Makeflags -cln/src/float/ffloat/elem/cl_FF_globals.cc -cln/src/float/ffloat/misc/Makeflags -cln/src/float/ffloat/misc/cl_FF_class.cc -cln/src/float/dfloat/Makeflags -cln/src/float/dfloat/cl_DF.h -cln/src/float/dfloat/conv/Makeflags -cln/src/float/dfloat/conv/cl_DF_from_double.cc -cln/src/float/dfloat/conv/cl_I_to_double.cc -cln/src/float/dfloat/elem/Makeflags -cln/src/float/dfloat/elem/cl_DF_fround.cc -cln/src/float/dfloat/elem/cl_DF_globals.cc -cln/src/float/dfloat/elem/cl_DF_to_I.cc -cln/src/float/dfloat/misc/Makeflags -cln/src/float/dfloat/misc/cl_DF_class.cc -cln/src/float/lfloat/Makeflags -cln/src/float/lfloat/cl_LF.h -cln/src/float/lfloat/cl_LF_impl.h -cln/src/float/lfloat/elem/Makeflags -cln/src/float/lfloat/elem/cl_LF_globals.cc -cln/src/float/lfloat/misc/Makeflags -cln/src/float/lfloat/misc/cl_LF_class.cc -cln/src/timing/Makeflags -cln/src/timing/cl_t_config.h.in -cln/tests/.gdbinit -cln/tests/Makefile.in diff --git a/lidia-interface/bigint.o.i386-linux b/lidia-interface/bigint.o.i386-linux deleted file mode 100644 index ddd204b821b8c32375cb5a18c68d20cc748d0e6c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27412 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 -#include -#include -#include -#include -#include -#include - -/* - * The bit operations assume a sign/magnitude representation. (The doc - * seems to indicate this, and this is supported by the fact that libI, - * lip, gmp all work on sign/magnitude representation. Thomas Papanikolaou - * says the contrary, but I think he's not right about this detail.) HB - */ -#define BITOPS_ASSUME_ABS - -/** -** constructors and destructor; we could leave out some of these -**/ - -bigint::bigint() -: I () {} - -bigint::bigint(int i) -: I ((long)i) {} - -bigint::bigint(long l) -: I (l) {} - -bigint::bigint(unsigned long ul) -: I (ul) {} - -bigint::bigint(const cl_I & a) -: I (a) {} - -bigint::bigint(const bigint & a) -: I (a.I) {} - -bigint::~bigint() -{} - -/** -** inline member functions -**/ - -int bigint::bit(unsigned int i) const -{ -#ifdef BITOPS_ASSUME_ABS - if (minusp(I)) - return (int)logbitp(i,-I); - else -#endif - return (int)logbitp(i,I); -} - -lidia_size_t bigint::length() const -{ -#ifdef BITOPS_ASSUME_ABS - if (minusp(I)) - return (integer_length(-I)+intDsize-1)/intDsize; - else -#endif - return (integer_length(I)+intDsize-1)/intDsize; -} - -lidia_size_t bigint::bit_length() const -{ -#ifdef BITOPS_ASSUME_ABS - if (minusp(I)) - return integer_length(-I); - else -#endif - return integer_length(I); -} - -int bigint::sign() const -{ - if (minusp(I)) - return -1; - else if (zerop(I)) - return 0; - else - return 1; -} - -bool bigint::is_positive() const -{ if (!minusp(I)) - if (!zerop(I)) - return (bool)1; - return (bool)0; -} - -bool bigint::is_negative() const -{ return (bool)minusp(I); } - -bool bigint::is_even() const -{ return (bool)evenp(I); } - -bool bigint::is_odd() const -{ return (bool)oddp(I); } - -bool bigint::is_zero() const -{ return (bool)zerop(I); } - -bool bigint::is_gt_zero() const -{ if (!minusp(I)) - if (!zerop(I)) - return (bool)1; - return (bool)0; -} - -bool bigint::is_ge_zero() const -{ return (bool)!minusp(I); } - -bool bigint::is_lt_zero() const -{ return (bool)minusp(I); } - -bool bigint::is_le_zero() const -{ if (!minusp(I)) - if (!zerop(I)) - return (bool)0; - return (bool)1; -} - -bool bigint::is_one() const -{ return (bool)(I == 1); } - - -bool is_odd (const bigint & a) -{ return (bool)oddp(a.I); } - -bool is_even (const bigint & a) -{ return (bool)evenp(a.I); } - -bool is_positive (const bigint & a) -{ - if (!minusp(a.I)) - if (!zerop(a.I)) - return (bool)1; - return (bool)0; -} - -bool is_negative (const bigint & a) -{ return (bool)minusp(a.I); } - -bool is_zero (const bigint & a) -{ return (bool)zerop(a.I); } - -bool is_one (const bigint & a) -{ return (bool)(a.I == 1); } - - - -bool bigint::intify(int & i) const -{ - if (integer_length(I) >= int_bitsize) - return (bool)1; - i = cl_I_to_L(I); - return (bool)0; -} - -bool bigint::longify(long & i) const -{ - if (integer_length(I) >= long_bitsize) - return (bool)1; - i = cl_I_to_long(I); - return (bool)0; -} - -int bigint::abs_compare(const bigint & a) const -{ - return (int)cl_compare(::abs(I),::abs(a.I)); -} - -int bigint::compare(const bigint & a) const -{ - return (int)cl_compare(I,a.I); -} - -unsigned long bigint::most_significant_digit() const -{ - if (zerop(I)) return 0; - cl_I aI = ::abs(I); - return cl_I_to_UL(ldb(aI,cl_byte(intDsize,((integer_length(aI)-1)/intDsize)*intDsize))); -} - -unsigned long bigint::least_significant_digit() const -{ - cl_I aI = ::abs(I); - return cl_I_to_UL(ldb(aI,cl_byte(intDsize,0))); -} - -const double bigint::radix() -{ return ldexp(1.0,intDsize); } - -const int bigint::bits_per_digit() -{ return intDsize; } - -void bigint::absolute_value() -{ if (minusp(I)) { I = -I; } } - -void bigint::abs() -{ if (minusp(I)) { I = -I; } } - -void bigint::negate() -{ I = -I; } - -void bigint::assign_zero() -{ I = 0; } - -void bigint::assign_one() -{ I = 1; } - -void bigint::assign(int i) -{ I = (long)i; } - -void bigint::assign(long i) -{ I = i; } - -void bigint::assign(unsigned long ui) -{ I = ui; } - -void bigint::assign(double d) -{ I = round1((cl_DF)d); } - -void bigint::assign(const bigint & a) -{ I = a.I; } - -void bigint::multiply_by_2() -{ I = ash(I,1); } - -void bigint::divide_by_2() -{ if (minusp(I)) { I = ash(plus1(I),-1); } else { I = ash(I,-1); } } - -/** -** Type checking -**/ - -bool is_char(const bigint & a) -{ if (integer_length(a.I) < char_bitsize) - return (bool)1; - return (bool)0; -} - -bool is_uchar(const bigint & a) -{ if (!minusp(a.I)) - if (integer_length(a.I) <= char_bitsize) - return (bool)1; - return (bool)0; -} - -bool is_short(const bigint & a) -{ if (integer_length(a.I) < short_bitsize) - return (bool)1; - return (bool)0; -} - -bool is_ushort(const bigint & a) -{ if (!minusp(a.I)) - if (integer_length(a.I) <= short_bitsize) - return (bool)1; - return (bool)0; -} - -bool is_int(const bigint & a) -{ if (integer_length(a.I) < int_bitsize) - return (bool)1; - return (bool)0; -} - -bool is_uint(const bigint & a) -{ if (!minusp(a.I)) - if (integer_length(a.I) <= int_bitsize) - return (bool)1; - return (bool)0; -} - -bool is_long(const bigint & a) -{ if (integer_length(a.I) < long_bitsize) - return (bool)1; - return (bool)0; -} - -bool is_ulong(const bigint & a) -{ if (!minusp(a.I)) - if (integer_length(a.I) <= long_bitsize) - return (bool)1; - return (bool)0; -} - -/** -** assignments -**/ - - -int bigint::operator = (int i) -{ I = (long)i; return i; } - -long bigint::operator = (long l) -{ I = l; return l; } - -unsigned long bigint::operator = (unsigned long ul) -{ I = ul; return ul; } - -double bigint::operator = (double d) -{ I = round1((cl_DF)d); return d; } - -bigint & bigint::operator = (const bigint & a) -{ I = a.I; return *this; } - -/** -** comparisons -**/ - -bool operator == (const bigint & a, const bigint & b) -{ return (bool)(a.I == b.I); } - -bool operator != (const bigint & a, const bigint & b) -{ return (bool)(a.I != b.I); } - -bool operator > (const bigint & a, const bigint & b) -{ return (bool)(a.I > b.I); } - -bool operator >= (const bigint & a, const bigint & b) -{ return (bool)(a.I >= b.I); } - -bool operator < (const bigint & a, const bigint & b) -{ return (bool)(a.I < b.I); } - -bool operator <= (const bigint & a, const bigint & b) -{ return (bool)(a.I <= b.I); } - -/** -** operator overloading -**/ - -bigint operator - (const bigint & a) -{ return bigint(-a.I); } - -bigint operator + (const bigint & a, const bigint & b) -{ return bigint(a.I + b.I); } - -bigint operator - (const bigint & a, const bigint & b) -{ return bigint(a.I - b.I); } - -bigint operator * (const bigint & a, const bigint & b) -{ return bigint(a.I * b.I); } - -bigint operator / (const bigint & a, const bigint & b) -{ return bigint(truncate1(a.I,b.I)); } - -bigint operator % (const bigint & a, const bigint & b) -{ return bigint(rem(a.I,b.I)); } - -bigint operator << (const bigint & a, long ui) -{ - if (ui < 0) - lidia_error_handler("bigint", "operator<<::index is negative."); - return bigint(ash(a.I,(cl_I)ui)); -} - -bigint operator >> (const bigint & a, long ui) -{ - if (ui < 0) - lidia_error_handler("bigint", "operator>>::index is negative."); - return bigint(ash(a.I,-(cl_I)ui)); -} - -bigint operator & (const bigint & a, const bigint & b) -{ return bigint(logand(a.I,b.I)); } - -bigint operator | (const bigint & a, const bigint & b) -{ return bigint(logior(a.I,b.I)); } - -bigint operator ^ (const bigint & a, const bigint & b) -{ return bigint(logxor(a.I,b.I)); } - -bigint & bigint::operator += (const bigint & a) -{ I = I + a.I; return *this; } - -bigint & bigint::operator -= (const bigint & a) -{ I = I - a.I; return *this; } - -bigint & bigint::operator *= (const bigint & a) -{ I = I * a.I; return *this; } - -bigint & bigint::operator /= (const bigint & a) -{ I = truncate1(I,a.I); return *this; } - -bigint & bigint::operator %= (const bigint & a) -{ I = rem(I,a.I); return *this; } - -bigint & bigint::operator <<= (long ui) -{ - if (ui < 0) - lidia_error_handler("bigint", "operator<<=::index is negative."); - I = ash(I,(cl_I)ui); - return *this; -} - -bigint & bigint::operator >>= (long ui) -{ - if (ui < 0) - lidia_error_handler("bigint", "operator>>=::index is negative."); - I = ash(I,-(cl_I)ui); - return *this; -} - -bigint & bigint::operator &= (const bigint & a) -{ I = logand(I,a.I); return *this; } - -bigint & bigint::operator |= (const bigint & a) -{ I = logior(I,a.I); return *this; } - -bigint & bigint::operator ^= (const bigint & a) -{ I = logxor(I,a.I); return *this; } - -bigint & bigint::operator++ () -{ I = plus1(I); return *this; } - -bigint & bigint::operator-- () -{ I = minus1(I); return *this; } - -bigint bigint::operator++ (int) -{ bigint a = *this; I = plus1(I); return a; } - -bigint bigint::operator-- (int) -{ bigint a = *this; I = minus1(I); return a; } - -int bigint::operator ! () const -{ return (int)zerop(I); } - -bigint bigint::operator ~ () const -{ return bigint(lognot(I)); } - -/** -** Procedural versions -**/ - -void negate(bigint & a, const bigint & b) -{ a.I = -b.I; } - -void add(bigint & c, const bigint & a, const bigint & b) -{ c.I = a.I + b.I; } - -void subtract(bigint & c, const bigint & a, const bigint & b) -{ c.I = a.I - b.I; } - -void multiply(bigint & c, const bigint & a, const bigint & b) -{ c.I = a.I * b.I; } - -void divide(bigint & c, const bigint & a, const bigint & b) -{ c.I = truncate1(a.I,b.I); } - -void remainder(bigint & c, const bigint & a, const bigint & b) -{ c.I = rem(a.I,b.I); } - -void div_rem(bigint & q, bigint & r, const bigint & a, const bigint & b) -{ - cl_I_div_t q_r = truncate2(a.I,b.I); - q.I = q_r.quotient; - r.I = q_r.remainder; -} - -void invert(bigint & a, const bigint & b) -{ - if ((b.I == 1) || (b.I == -1)) - a.I = b.I; - else - lidia_error_handler("bigint", "invert::inverting of a non-unit."); -} - -void shift_left(bigint & c, const bigint & a, long ui) -{ - if (ui < 0) - lidia_error_handler("bigint", "shift_left()::index is negative."); - c.I = ash(a.I,(cl_I)ui); -} - -void shift_right(bigint & c, const bigint & a, long ui) -{ - if (ui < 0) - lidia_error_handler("bigint", "shift_right()::index is negative."); - c.I = ash(a.I,-(cl_I)ui); -} - -void power(bigint & c, const bigint & a, const bigint & b) -{ - if ((a.I == 1) || (a.I == -1)) - { - if (b.is_odd()) - c.I = a.I; - else - c.assign_one(); - } - else if (b.is_negative()) - c.assign_zero(); - else if (b.is_zero()) - c.assign_one(); - else - c.I = expt_pos(a.I,b.I); -} - -void power(bigint & c, const bigint & a, long i) -{ - if ((a.I == 1) || (a.I == -1)) - { - if (i&1) - c.I = a.I; - else - c.assign_one(); - } - else if (i < 0) - c.assign_zero(); - else if (i == 0) - c.assign_one(); - else - c.I = expt_pos(a.I,(cl_I)i); -} - -void and(bigint & c, const bigint & a, const bigint & b) -{ c.I = logand(a.I,b.I); } - -void or(bigint & c, const bigint & a, const bigint & b) -{ c.I = logior(a.I,b.I); } - -void xor(bigint & c, const bigint & a, const bigint & b) -{ c.I = logxor(a.I,b.I); } - -void not(bigint & b, const bigint & a) -{ b.I = lognot(a.I); } - -void inc(bigint & c) -{ c.I = plus1(c.I); } - -void dec(bigint & c) -{ c.I = minus1(c.I); } - -void add(bigint & c, const bigint & a, long i) -{ c.I = a.I + i; } - -void subtract(bigint & c, const bigint & a, long i) -{ c.I = a.I - i; } - -void multiply(bigint & c, const bigint & a, long i) -{ c.I = a.I * i; } - -void divide(bigint & c, const bigint & a, long i) -{ c.I = truncate1(a.I,i); } - -void remainder(long &r, const bigint & a, long i) -{ - r = cl_I_to_long(rem(a.I,i)); -} - -long remainder(const bigint & a, long i) -{ - return cl_I_to_long(rem(a.I,i)); -} - -void div_rem(bigint & q, long &r, const bigint & a, long i) -{ - cl_I_div_t q_r = truncate2(a.I,i); - q.I = q_r.quotient; - r = cl_I_to_long(q_r.remainder); -} - -/** -** gcd's -**/ - -bigint gcd(const bigint & a, const bigint & b) -{ return bigint(gcd(a.I,b.I)); } - -bigint bgcd(const bigint & a, const bigint & b) -{ return bigint(gcd(a.I,b.I)); } - -bigint dgcd(const bigint & a, const bigint & b) -{ return bigint(gcd(a.I,b.I)); } - -bigint xgcd(bigint & u, bigint & v, const bigint & a, const bigint & b) -{ -#if 0 - // In the case abs(a) == abs(b), LiDIA wants to have u=0, abs(v)=1. - // But CLN returns abs(u)=1, v=0. Therefore we swap the arguments. - return bigint(xgcd(b.I,a.I,&v.I,&u.I)); -#else - // I think the above special case is unimportant, and it's more important - // to be consistent with xgcd_left and xgcd_right below. - return bigint(xgcd(a.I,b.I,&u.I,&v.I)); -#endif -} - -bigint xgcd_left(bigint & u, const bigint & a, const bigint & b) -{ cl_I v; return bigint(xgcd(a.I,b.I,&u.I,&v)); } - -bigint xgcd_right(bigint & v, const bigint & a, const bigint & b) -{ cl_I u; return bigint(xgcd(a.I,b.I,&u,&v.I)); } - -/** -** functions -**/ - -bigint abs(const bigint & a) -{ return bigint(abs(a.I)); } - -void seed(const bigint & a) -{ - cl_default_random_state.seed.lo = cl_I_to_UL(ldb(a.I,cl_byte(32,0))); - cl_default_random_state.seed.hi = cl_I_to_UL(ldb(a.I,cl_byte(32,32))); -} - -void bigint::randomize(const bigint & a) -{ - if (minusp(a.I)) - *this = bigint(-random_I(-a.I)); - else - *this = bigint(random_I(a.I)); -} - -bigint randomize(const bigint & a) -{ - if (minusp(a.I)) - return bigint(-random_I(-a.I)); - else - return bigint(random_I(a.I)); -} - -double dbl(const bigint & a) -{ return cl_double_approx(a.I); } - -xdouble xdbl(const bigint & a) -{ - double d1 = dbl(a); - bigint a1; a1.assign(d1); - double d2 = dbl(a - a1); - return (xdouble)d1 + (xdouble)d2; -} - -void sqrt(bigint & a, const bigint & b) -{ a.I = isqrt(b.I); } - -void square(bigint & a, const bigint & b) -{ a.I = square(b.I); } - -void swap(bigint & a, bigint & b) -{ - void* tmp = a.I.pointer; - a.I.pointer = b.I.pointer; - b.I.pointer = tmp; -} - -/** -** input / output -**/ - -istream & operator >> (istream & in, bigint & a) -{ - a.scan (in); - return (in); -} - -ostream & operator << (ostream & out, const bigint & a) -{ out << a.I; return out; } - -int string_to_bigint(const char *s, bigint & a) -{ - int n = strlen(s); - char c[n+1]; - for (int i = 0; i < n; i++) - switch (s[i]) - { - case '+': case '-': case '.': - case '0': case '1': case '2': case '3': case '4': - case '5': case '6': case '7': case '8': case '9': - case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': - case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': - case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': - case 'V': case 'W': case 'X': case 'Y': case 'Z': - case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g': - case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n': - case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u': - case 'v': case 'w': case 'x': case 'y': case 'z': - c[i] = s[i]; break; - default: - c[i] = '\0'; goto eos; - } - c[n] = '\0'; -eos: - n = strlen(c); - if (n == 0) return -1; - a = (bigint)(cl_I)c; return n; -} - -int bigint_to_string(const bigint & a, char *s) -{ - char* r = print_integer_to_string(10,a.I); - strcpy(s,r); - cl_free_hook(r); - return strlen(s); -} - -/** -** using fread/fwrite -**/ - -void bigint::read_from_file(FILE * fp) -{ - scan_from_file(fp); - int c = getc(fp); if (c != EOF && c != '\n') { ungetc(c,fp); } -} - -void bigint::write_to_file(FILE * fp) -{ - print_to_file(fp); - putc('\n',fp); -} - -/** -** using fscanf/fprintf -**/ - -void bigint::scan_from_file(FILE * fp) -{ - cl_spushstring buffer; - int c; - while ((c = getc(fp)) != EOF) - if (!(c=='\n' || c=='\t' || c==' ')) - { ungetc(c,fp); break; } - while ((c = getc(fp)) != EOF) { - switch (c) - { case '0': case '1': case '2': case '3': case '4': - case '5': case '6': case '7': case '8': case '9': - case '+': case '-': - buffer.push((char)c); break; - default: - ungetc(c,fp); goto end; - } - } -end: - char* s = buffer.contents(); - if (s[0] != '\0') - I = (cl_I)s; - cl_free_hook(s); -} - -void bigint::print_to_file(FILE * fp) -{ - char* s = print_integer_to_string(10,I); - fprintf(fp,"%s",s); - cl_free_hook(s); -} - -/** -** Error handler -**/ - -void cl_abort (void) -{ - lidia_error_handler("cln", "cl_abort() called"); -} - diff --git a/lidia-interface/src/interfaces/integers/cln/bigint_def.h b/lidia-interface/src/interfaces/integers/cln/bigint_def.h deleted file mode 100644 index a799e63..0000000 --- a/lidia-interface/src/interfaces/integers/cln/bigint_def.h +++ /dev/null @@ -1,40 +0,0 @@ -// -// LiDIA - a library for computational number theory -// Copyright (c) 1996 by the LiDIA Group -// -// File : bigint_def.h -// Author : Bruno Haible (HB) -// Last change : HB, 1996-11-17, initial version -// HB, 1998-01-24, change #include to #include "cl_*" -// because the files are in $(LIDIA_HOME)/include/LiDIA, -// and the only -I option is -I$(LIDIA_HOME)/include . -// - -#ifndef LIDIA_BIGINT_DEF_H -#define LIDIA_BIGINT_DEF_H - -/** -** The next include MUST remain in this file in THIS position. -**/ - -#include - -/** -** include here the include file of the C multiple precision integers -** and define integer_type_name to be the integer type we have. Define -** base_digit to -** -** For example write something like -** -** #include "integer_include_file.h" -** #define integer_type_name your_integer_type_name -** -**/ - -#include -#include - -#define integer_type_name cl_I -#define base_digit uintD - -#endif diff --git a/lidia-interface/src/interfaces/integers/cln/makefile b/lidia-interface/src/interfaces/integers/cln/makefile deleted file mode 100644 index 20c250c..0000000 --- a/lidia-interface/src/interfaces/integers/cln/makefile +++ /dev/null @@ -1,69 +0,0 @@ -###################################################################### -# -# Name ................... LiDIA/src/interfaces/integers/cln/makefile -# -# Architecture : unix -# Compiler : gcc, g++ -# Flags : -g -O2 -# Program Flags: -# Author : Thomas Papanikolaou & Bruno Haible -# Release : 1.0 -# Last Change : 1998-01-24 -# Copyright : by the University of Saarland and Bruno Haible, 1996 -# - -# -# include the configuration file -# - -include ../../../../config/CONFIG - -# -# Object -# - -OBJ=bigint.o - -# -# Rules -# - -all: copyh $(libp)LiDIA.a - -appl: bigint_appl$(EXE) - -# -# Dependencies -# - -copyh: - $(CP) bigint_def.h $(LIDIA_HOME)$(DIRSEP)include$(DIRSEP)LiDIA - -bigint.o: bigint.c $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)bigint.h - $(CXX) -c $(CXXFLAGS) -I$(LIDIA_INC) -I$(LIDIA_HOME)$(DIRSEP)src$(DIRSEP)kernel$(DIRSEP)integers$(DIRSEP)cln$(DIRSEP)cln$(DIRSEP)include -I$(LIDIA_HOME)$(DIRSEP)src$(DIRSEP)kernel$(DIRSEP)integers$(DIRSEP)cln $*.c -o $(objp)$*.o - $(NOOMV) $*.o $(objp)$*.o - $(TOUCH) $*.o - -$(libp)LiDIA.a: $(OBJ) - -$(AR) $(LIDIA_LIB)$(DIRSEP)$(libp)LiDIA.a $(objp)*.o - -ranlib: - $(RANLIB) $(LIDIA_LIB)$(DIRSEP)$(libp)LiDIA.a - -bigint_appl$(EXE): bigint_appl.c - $(CXX) $(CXXFLAGS) bigint_appl.c $(CXX-off) -I$(LIDIA_INC) -L$(LIDIA_LIB) -o bigint_appl$(EXE) $(LIB) - -$(MV) bigint_appl$(EXE) $(LIDIA_BIN) - -# -# Clean -# - -clean: - -$(RM) *.o - -veryclean: clean - -$(RM) bigint_appl$(EXE) - -# -# End Of Makefile -# diff --git a/lidia-interface/src/kernel/integers/cln/README b/lidia-interface/src/kernel/integers/cln/README deleted file mode 100644 index 3c6799f..0000000 --- a/lidia-interface/src/kernel/integers/cln/README +++ /dev/null @@ -1,17 +0,0 @@ -LiDIA has an abstract interface to the underlying long integer implementation. -Using CLN instead of the default libI, lip or gmp has the following -advantages: - - - Maximum speed on all CPUs, since CLN is based on the highly - optimized gmp-2.0.2. - - - Very large integers profit from CLN's Schönhage-Strassen FFT multiplication - (asymptotic bit complexity: O(N log N log log N)). - - - Copying integers is fast: no copying is actually involved, only a - reference count is manipulated. - - - Small integers (absolute value < 2^29) are represented immediately, - thus no memory allocation/deallocation is involved when dealing with - small integers. - diff --git a/lidia-interface/src/kernel/integers/cln/cln/README.LiDIA b/lidia-interface/src/kernel/integers/cln/cln/README.LiDIA deleted file mode 100644 index 3b1756e..0000000 --- a/lidia-interface/src/kernel/integers/cln/cln/README.LiDIA +++ /dev/null @@ -1,6 +0,0 @@ -This directory contains a special version of CLN, trimmed down for LiDIA. -It was prepared from CLN version 1.0, found on ftp://ftp.santafe.edu/pub/gnu/, -by - 1. removing many unnecessary files (including many source files, the test - suite and the documentation), - 2. adding the file README.LiDIA diff --git a/lidia-interface/src/kernel/integers/cln/makefile b/lidia-interface/src/kernel/integers/cln/makefile deleted file mode 100755 index 4d4462e..0000000 --- a/lidia-interface/src/kernel/integers/cln/makefile +++ /dev/null @@ -1,178 +0,0 @@ -###################################################################### -# -# Name ............................... LiDIA/src/kernel/cln/makefile -# -# Architecture : unix -# Compiler : gcc, g++ -# Flags : -g -O2 -fno-exceptions -# Program Flags: -# Author : Markus Maurer, Bruno Haible -# Release : 1.0 -# Last Change : 1998-12-13 -# Copyright : by the University of Saarland and Bruno Haible, 1998 -# - -# -# include the configuration file -# - -include ../../../../config/CONFIG - -# -# Dependencies -# - - -default: library - -c: library - -sparc: library - -sparc7: library - -sparc8: library - -mips: library - -i386: library - -i486: library - -i586: library - -i686: library - -hppa1.1: library - - - - -# -# library and application files -# - -library: cln$(DIRSEP)include$(DIRSEP)cl_config.h cln$(DIRSEP)include$(DIRSEP)cl_intparam.h - cd cln$(DIRSEP)gmp $(SEP) $(MAKE) mpn/libmpn.la mp_clz_tab.lo - cd cln$(DIRSEP)src $(SEP) $(MAKE) - -$(CP) cln$(DIRSEP)include$(DIRSEP)cl_abort.h $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)kernel - -$(CP) cln$(DIRSEP)include$(DIRSEP)cl_complex_class.h $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)kernel - -$(CP) cln$(DIRSEP)include$(DIRSEP)cl_config.h $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)kernel - -$(CP) cln$(DIRSEP)include$(DIRSEP)cl_dfloat.h $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)kernel - -$(CP) cln$(DIRSEP)include$(DIRSEP)cl_dfloat_class.h $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)kernel - -$(CP) cln$(DIRSEP)include$(DIRSEP)cl_ffloat.h $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)kernel - -$(CP) cln$(DIRSEP)include$(DIRSEP)cl_ffloat_class.h $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)kernel - -$(CP) cln$(DIRSEP)include$(DIRSEP)cl_float.h $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)kernel - -$(CP) cln$(DIRSEP)include$(DIRSEP)cl_float_class.h $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)kernel - -$(CP) cln$(DIRSEP)include$(DIRSEP)cl_floatformat.h $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)kernel - -$(CP) cln$(DIRSEP)include$(DIRSEP)cl_floatparam.h $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)kernel - -$(CP) cln$(DIRSEP)include$(DIRSEP)cl_input.h $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)kernel - -$(CP) cln$(DIRSEP)include$(DIRSEP)cl_integer.h $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)kernel - -$(CP) cln$(DIRSEP)include$(DIRSEP)cl_integer_class.h $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)kernel - -$(CP) cln$(DIRSEP)include$(DIRSEP)cl_integer_io.h $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)kernel - -$(CP) cln$(DIRSEP)include$(DIRSEP)cl_intparam.h $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)kernel - -$(CP) cln$(DIRSEP)include$(DIRSEP)cl_io.h $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)kernel - -$(CP) cln$(DIRSEP)include$(DIRSEP)cl_lfloat.h $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)kernel - -$(CP) cln$(DIRSEP)include$(DIRSEP)cl_lfloat_class.h $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)kernel - -$(CP) cln$(DIRSEP)include$(DIRSEP)cl_malloc.h $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)kernel - -$(CP) cln$(DIRSEP)include$(DIRSEP)cl_modules.h $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)kernel - -$(CP) cln$(DIRSEP)include$(DIRSEP)cl_number.h $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)kernel - -$(CP) cln$(DIRSEP)include$(DIRSEP)cl_number_io.h $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)kernel - -$(CP) cln$(DIRSEP)include$(DIRSEP)cl_object.h $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)kernel - -$(CP) cln$(DIRSEP)include$(DIRSEP)cl_output.h $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)kernel - -$(CP) cln$(DIRSEP)include$(DIRSEP)cl_random.h $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)kernel - -$(CP) cln$(DIRSEP)include$(DIRSEP)cl_rational_class.h $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)kernel - -$(CP) cln$(DIRSEP)include$(DIRSEP)cl_real_class.h $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)kernel - -$(CP) cln$(DIRSEP)include$(DIRSEP)cl_sfloat_class.h $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)kernel - -$(CP) cln$(DIRSEP)include$(DIRSEP)cl_string.h $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)kernel - -$(CP) cln$(DIRSEP)include$(DIRSEP)cl_types.h $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)kernel - -$(CP) cln$(DIRSEP)src$(DIRSEP)base$(DIRSEP)cl_spushstring.h $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)kernel - -$(CP) cln$(DIRSEP)src$(DIRSEP)base$(DIRSEP)cl_sstring.h $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)kernel - -$(CP) cln$(DIRSEP)gmp$(DIRSEP)gmp.h $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)kernel - -$(CP) cln$(DIRSEP)gmp$(DIRSEP)gmp-impl.h $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)kernel - -$(CP) cln$(DIRSEP)gmp$(DIRSEP)longlong.h $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)kernel - -$(CP) cln$(DIRSEP)gmp$(DIRSEP)mpn$(DIRSEP)gmp-mparam.h $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)kernel - $(SHELL) cln$(DIRSEP)libtool --mode=install cp cln$(DIRSEP)src$(DIRSEP)libcln.la `pwd`$(DIRSEP)libcln.la - $(ARX) libcln.a - $(AR) $(LIDIA_LIB)$(DIRSEP)$(libp)LiDIA.a *.o - $(RM) *.o - $(RM) libcln.a - $(TOUCH) library - - -ranlib: - $(RANLIB) $(LIDIA_LIB)$(DIRSEP)$(libp)LiDIA.a - -appl: -# cd cln $(SEP) $(MAKE) check - - - -# -# Configuration command -# - - -configure: - cd cln $(SEP) CC="$(CC)" CFLAGS="$(CFLAGS) -fno-exceptions" CXX="$(CXX)" CXXFLAGS="$(CXXFLAGS) -fno-exceptions" .$(DIRSEP)configure --target=$(LIDIA_ARCH) - - - -# -# Installation commands -# - -install: installh - -installh: - -$(CP) cln$(DIRSEP)include$(DIRSEP)cl_abort.h $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)kernel - -$(CP) cln$(DIRSEP)include$(DIRSEP)cl_complex_class.h $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)kernel - -$(CP) cln$(DIRSEP)include$(DIRSEP)cl_config.h $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)kernel - -$(CP) cln$(DIRSEP)include$(DIRSEP)cl_dfloat.h $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)kernel - -$(CP) cln$(DIRSEP)include$(DIRSEP)cl_dfloat_class.h $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)kernel - -$(CP) cln$(DIRSEP)include$(DIRSEP)cl_ffloat.h $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)kernel - -$(CP) cln$(DIRSEP)include$(DIRSEP)cl_ffloat_class.h $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)kernel - -$(CP) cln$(DIRSEP)include$(DIRSEP)cl_float.h $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)kernel - -$(CP) cln$(DIRSEP)include$(DIRSEP)cl_float_class.h $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)kernel - -$(CP) cln$(DIRSEP)include$(DIRSEP)cl_floatformat.h $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)kernel - -$(CP) cln$(DIRSEP)include$(DIRSEP)cl_floatparam.h $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)kernel - -$(CP) cln$(DIRSEP)include$(DIRSEP)cl_input.h $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)kernel - -$(CP) cln$(DIRSEP)include$(DIRSEP)cl_integer.h $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)kernel - -$(CP) cln$(DIRSEP)include$(DIRSEP)cl_integer_class.h $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)kernel - -$(CP) cln$(DIRSEP)include$(DIRSEP)cl_integer_io.h $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)kernel - -$(CP) cln$(DIRSEP)include$(DIRSEP)cl_intparam.h $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)kernel - -$(CP) cln$(DIRSEP)include$(DIRSEP)cl_io.h $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)kernel - -$(CP) cln$(DIRSEP)include$(DIRSEP)cl_lfloat.h $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)kernel - -$(CP) cln$(DIRSEP)include$(DIRSEP)cl_lfloat_class.h $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)kernel - -$(CP) cln$(DIRSEP)include$(DIRSEP)cl_malloc.h $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)kernel - -$(CP) cln$(DIRSEP)include$(DIRSEP)cl_modules.h $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)kernel - -$(CP) cln$(DIRSEP)include$(DIRSEP)cl_number.h $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)kernel - -$(CP) cln$(DIRSEP)include$(DIRSEP)cl_number_io.h $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)kernel - -$(CP) cln$(DIRSEP)include$(DIRSEP)cl_object.h $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)kernel - -$(CP) cln$(DIRSEP)include$(DIRSEP)cl_output.h $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)kernel - -$(CP) cln$(DIRSEP)include$(DIRSEP)cl_random.h $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)kernel - -$(CP) cln$(DIRSEP)include$(DIRSEP)cl_rational_class.h $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)kernel - -$(CP) cln$(DIRSEP)include$(DIRSEP)cl_real_class.h $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)kernel - -$(CP) cln$(DIRSEP)include$(DIRSEP)cl_sfloat_class.h $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)kernel - -$(CP) cln$(DIRSEP)include$(DIRSEP)cl_string.h $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)kernel - -$(CP) cln$(DIRSEP)include$(DIRSEP)cl_types.h $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)kernel - -$(CP) cln$(DIRSEP)src$(DIRSEP)base$(DIRSEP)cl_spushstring.h $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)kernel - -$(CP) cln$(DIRSEP)src$(DIRSEP)base$(DIRSEP)cl_sstring.h $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)kernel - -$(CP) cln$(DIRSEP)gmp$(DIRSEP)gmp.h $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)kernel - -$(CP) cln$(DIRSEP)gmp$(DIRSEP)gmp-impl.h $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)kernel - -$(CP) cln$(DIRSEP)gmp$(DIRSEP)longlong.h $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)kernel - -$(CP) cln$(DIRSEP)gmp$(DIRSEP)mpn$(DIRSEP)gmp-mparam.h $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)kernel - - -# -# Clean -# - -clean: - -cd cln $(SEP) make clean - -$(RM) library - - -veryclean: clean - - -- 2.49.0