Release Notes for LiDIA 2.1.3 ============================= Darmstadt, December 06, 2004: LiDIA 2.1.3 is out. This is a bugfix release only. Changes since LiDIA 2.1.2: * An off-by-one error in src/linear_algebra/crt_and_prime_handling.cc that could cause applications to crash, e.g., when they computed determinants of matrices. Please refer to the release notes for LiDIA 2.1, LiDIA 2.1.1, and LiDIA 2.1.2 quoted below for further changes since LiDIA 2.1pre7. LiDIA 2.1.2 is out. This is a bugfix release only. Changes since LiDIA 2.1.1: * Depending on the arithmetic kernel chosen with the configure parameter `--with-arithmetic' and the status flags of the input stream, operator>>(istream&, bigint&) could fail to correctly parse the number 0. The code for bigint-I/O will eventually be simplified and thus be made more robust. But since the 2.1.x release series is reserved for bugfixes only, such changes will only appear in a future 2.2 release. * The member function isomorphism_type() in class elliptic_curve< gf_element > produced inreliable results. Many thanks to Volker Mueller for providing a bugfix! Please refer to the release notes for LiDIA 2.1 and LiDIA 2.1.1 quoted below for other changes since LiDIA 2.1pre7. LiDIA 2.1.1 is out. This is a bugfix release only that resolves problems with the recent LiDIA 2.1 on some platforms. Changes since LiDIA 2.1: * BUG: add missing `#include ' in prime_proof_factorize.cc * WORKAROUND: Do not fully qualify std::isdigit() etc. in bigint_share.cc but add `using namespace std;' at function scope instead. Otherwise g++ 2.95.2 encounters parser errors. For other changes since LiDIA 2.1pre7 we refer to to the Release Notes for LiDIA 2.1, quoted below: LiDIA 2.1 is out. This release consolidates all patches that accumulated since release 2.1pre7. It also includes a new primality proof class in the GEC package submitted by Jochen Hechler. LiDIA is a C++ library for computational number theory which provides a collection of highly optimized implementation of various multiprecision data types and time-intensive algorithms. LiDIA is developed by the LiDIA Group at the Darmstadt University of Technology. For more information go to LiDIA's homepage http://www.informatik.tu-darmstadt.de/TI/LiDIA/Welcome.html. Changes since LiDIA 2.1pre7 in roughly chronological order: * BUG: fix quadratic_ideal and quadratic order, see http://www.cdc.informatik.tu-darmstadt.de/pipermail/lidia/2002-November/000540.html * ADD: class LiDIA::isstream hides incompatibilities between std::stringstream and std::strstream. * BUG: gec::generate_oef(), see http://www.cdc.informatik.tu-darmstadt.de/pipermail/lidia/2003-February/000564.html * BUG: fixes mpqs failures if the algorithm did not find a complete factorization at once, see http://www.cdc.informatik.tu-darmstadt.de/pipermail/lidia/2003-February/000572.html * BUG: power(bigrational&, bigrational const&, long), see http://www.cdc.informatik.tu-darmstadt.de/pipermail/lidia/2003-March/000604.html * BUG: fix "make doc"; lidia_model.eps is no longer needed * CHANGE: "--disable-shared" is now the default configuration * BUG: configure works properly without explicit "--prefix", see http://www.cdc.informatik.tu-darmstadt.de/pipermail/lidia/2003-May/000653.html * ADD: discriminants for class numbers < 200 in share/lIDIA/Discriminants * BUG: replace log2 macro by an inline function in order to avoid problems on some platforms (e.g., cygwin) that define a log2 macro. * BUG: change bigmod::modulus in eco_prime::set_curve, see http://www.cdc.informatik.tu-darmstadt.de/pipermail/lidia/2004-March/000738.html * BUG: fix in ECO's schoofpart() by Volker Mueller, see http://www.cdc.informatik.tu-darmstadt.de/pipermail/lidia/2004-March/000745.html * BUG: use of uninitialized gf_element in gf_polynomial::operator(), see http://www.cdc.informatik.tu-darmstadt.de/pipermail/lidia/2004-March/000760.html * BUG: patches by Volker Mueller for ellptic_curve, see http://www.cdc.informatik.tu-darmstadt.de/pipermail/lidia/2004-March/000753.html and http://www.cdc.informatik.tu-darmstadt.de/pipermail/lidia/2004-March/000755.html * BUG: compute transcendental functions (bigfloat) with sufficient accuracy * BUG: due to an implicit conversion, operator=(multi_bigmod const&) used to call multi_bigmod::assign(bigmod const&), causing a SEGV if bigmod::modulus was not initialized yet. * BUG: all overloads of bigmod::is_equal() gave wrong results since bigint::compare() returns 0 on equality * ADD: all *_appl programs support now both configurations with and without exceptions. * BUG: handle the case g'(x) == 0 in quartic::lemma7() * BUG: fixed a spurious minus sign in subBJT_real() and quadratic_order::cgBJT_real() (src/number_fields/quadratic_order/{qi_class.cc,quadratic_order2.cc}) * BUG: don't access non-existent rows in column_oriented_sparse_matrix_modules::normalize_row() * BUG: separate check if Delta is a perfect power in is_regular_disc() (src/number_fields/quadratic_order/quadratic_form.cc) * BUG: handle units in factorization::append() * ADD: prime_proof by Jochen Hechler added to GEC * BUG: check that requested element order divides group order in ff1_appl.cc * BUG: use an irreducible polynomial as modulus in wep_rat_function_appl.cc * BUG: fix all incompatibilities with gcc-3.4.0 due to its (standard conformant) two phase name lookup * CHANGE: don't add -fno-implicit-templates to CXXFLAGS. This compiler option is no longer necessary and erroneously causes some concept checks within libstdc++v3 to fail. * BUG: report time spent for factoring orders in EC_domain_parameters_P1363.cc * BUG: base_sparse_power_series::is_equal() gave wrong results if this->first == b.first and this->last == b.last * BUG: moved src/base/matrix/*matrix_appl*.{cc,dat} to src/linear_algebra because they depend on the LA package. * BUG: Make LiDIA build with cln-1.1.6 * ADD: operator<<(ostream&, bigint const&) and operator>>(istream&, bigint&) support the format flags hex, dec, and oct as well as showpos (in std::ios). See http://www.cdc.informatik.tu-darmstadt.de/pipermail/lidia/2004-April/000786.html * BUG: provide correct error message, even on 64 bit machines and advise to use the ECO package instead (point_gf_element.cc) * BUG: don't call lidia_error_handler if bigint::scan() encounters EOF * BUG: the point Q returned by elliptic_curve::isomorphism_type() was not always a generator of the "small" subgroup. * BUG: replace all #include by #include "LiDIA/xxx.h" to stop the preprocessor from munging the includepath if namespaces are diesabled. This #include variant is arguably better style for user libraries, anyway. * BUG: protect all "using namespace LiDIA;" by "#ifdef LIDIA_NAMESPACE" so gec_appl and prime_proof_appl can be built even if LiDIA is configured with --disable-namespaces. Please refer to http://www.informatik.tu-darmstadt.de/TI/LiDIA/News.html for a list of changes in previouses releases. Known Problems: * In some places, the manual does not reflect the current interface or mention all algorithms implemented. * qi_class_real_appl triggers an error quadratic_order::qo_hnf_and_det(). (The preconditions of quadratic_number_power_product::generating_unit() are violated.) The current LiDIA administrator is not familiar with these algorithms at all whence he can't fix this problem with a reasonable effort. If there are any volunteer "bug hunters", please step forward!