= Givaro =

== Description ==

Givaro is a C++ library for arithmetic and algebraic computations. Its
main features are implementations of the basic arithmetic of many
mathematical entities: Primes fields, Extensions Fields, Finite
Fields, Finite Rings, Polynomials, Algebraic numbers, Arbitrary
precision integers and rationals (C++ wrappers over gmp) It also
provides data-structures and templated classes for the manipulation of
basic algebraic objects, such as vectors, matrices (dense, sparse,
structured), univariate polynomials (and therefore recursive
multivariate).

Website: http://www-lmc.imag.fr/CASYS/LOGICIELS/givaro/

SPKG Repository: https://bitbucket.org/malb/givaro-spkg

== License ==

 * GNU GPL

== Upstream Contact ==

 * Clement Pernet

== Dependencies ==

 * GNU patch
 * GMP/MPIR

== Changelog ==

=== givaro-4.0.3 (Clement Pernet, 18 November 2017) ===
 * #24214: updated to new upstream release.

=== givaro-4.0.2 (Clement Pernet, 30 July 2016) ===
 * #13164: updated to new upstream release.

=== givaro-3.7.1 (Jean-Pierre Flori, 9 August 2012) ===
 * #13164: updated to new upstream release.

=== givaro-3.7.0 (Martin Albrecht, June 7th, 2012) ===
 * #9511: updated to new upstream release.

=== givaro-3.2.13.p0 (Jeroen Demeyer, 25 May 2012) ===
 * #12761: Restore upstream sources to vanilla 3.2.13 (the previous
   src/ directory was some never-released CVS version between
   givaro-3.2.13.rc1 and givaro-3.2.13, but bootstrapped with a
   different automake).
 * Remove gmp++.h.patch which is upstreamed (the old diff was wrong).
 * Use `patch` to apply all patches.
 * Fix patch for givtablelimits.h such that it can be applied on all
   systems, not only Cygwin.
 * Merged all GCC-4.7.0 patches into one: cplusplus_scoping.patch
 * Don't touch .pyx files, instead fix module_list.py (also on #12761).

=== givaro-3.2.13.rc1.p4 (Leif Leonhardy, March 27th 2012) ===
 * #12761: Fix headers not conforming to C++11 to make Sage (especially the
   Sage library) build with GCC 4.7.0 (and without `-fpermissive`).
   Same for Givaro's test suite, which uses / instantiates much more!
   (These headers get installed into `$SAGE_LOCAL/include/givaro/`.)
   New patches:
   - patches/src.kernel.integer.givintnumtheo.inl.patch
   - patches/src.kernel.integer.givintrsa.inl.patch
   - patches/src.library.poly1.givpoly1factor.inl.patch
   - patches/src.library.poly1.givpoly1padic.h.patch
   - patches/src.library.poly1.givpoly1proot.inl.patch
 * Remove the obsolete Debian `dist/` directory.
 * Remove obsolete GCC 4.3 patch.
 * Rename diffs of prepatched files that are (still) copied over to `*.diff`
   (rather than `*.patch`) such that they don't get "automatically" applied
   by the `patch -p1` loop, which I added.
 * Fix permissions of `SPKG.txt` and `spkg-install`, and two upstream files.
 * Add "Special Update/Build Instructions" section.
 * Clean up `spkg-check` and `spkg-install`.
 * Also set up environment variables in `spkg-check`, as `make check` involves
   compilation.  (Although `configure` should have put them into the generated
   Makefiles.)
 * Use `$MAKE` in `spkg-check` as well.
 * Exit in case the build failed!
 * Only `touch` extension modules (`*.pyx`) if they (already) exist.

=== givaro-3.2.13.rc1.p3 (Simon King, Dec 10th, 2011) ===
 * #12131: Use --libdir, to make the package work on openSUSE.

=== givaro-3.2.13rc1.p2 (John Palmieri, June 27th, 2010) ===
 * #9352: Trivial typo in spkg-check.

=== givaro-3.2.13rc1.p1 (Willem Jan Palenstijn, Apr 30th, 2010) ===
 * #8788: Avoid local static object with destructor to prevent double frees
   on some platforms.

=== givaro-3.2.13rc1.p0 (Jaap Spies, Jan 25th, 2010) ===
 * If $SAGE64="yes" add -m64 to CFLAGS. This works on Open Solaris x64 64 bit.
   It used to work only on OSX and may work on other 64 bit systems.
 * This is trac http://trac.sagemath.org/sage_trac/ticket/8062

=== givaro-3.2.13rc1 (Clement Pernet, Sept 18th, 2008) ===
 * Fix endianess pb with PPC-OSX

=== givaro-3.2.12rc0 (Clement Pernet, July 10th, 2008) ===
 * Upgrade to givaro-3.2.12rc0

=== givaro-3.2.11 (Clement Pernet, June 25th, 2008) ===
 * Upgrade to givaro-3.2.11 (fixing long long issue on 64 bit archs)

=== givaro-3.2.10.rc3.p3 (Michael Abshoff, May 18th, 2008) ===
 * improve 64 bit OSX build support

=== givaro-3.2.10.rc3.p2 (William Stein, May 16th, 2008) ===
 * Fix cygwin "missing logb declaration" problem.

=== givaro-3.2.10.rc3.p1 (Michael Abshoff, April 17th, 2008) ===
 * Fix Itanium specific gcc 4.3 build problem

=== givaro-3.2.10.rc3.p0 (Michael Abshoff, April 15th, 2008) ===
 * fix gcc 4.3 build - patch send upstream

=== givaro-3.2.10.rc3 (Michael Abshoff, March 15th, 2008) ===
  * update to upstream 3.2.10.rc3
  * add 64 bit OSX 10.5 support
  * remove all patches since they were integrated upstream
  * add spkg-check

=== givaro-3.2.10 (Clement Pernet, March 2nd, 2008)  ===
  * Updated to upstream 3.2.10
  * removed most patches
  * Note: this was based on 3.2.10.rc2

=== givaro-3.2.6.p5 (Michael Abshoff) ===
  * fix #1091. This copies over updated version of givintrsa.h,
    givintfactor.h and givintnumtheo.h into src/src/kernel/integer.
    I also keft the patch itself in the patches directory.

=== 2007-12-06 ===
  * include <cstring> in givaromm.C to fix gcc 4.3 issue

=== 2007-11-02 (Michael Abshoff) ===
  * apply rpw's work aorund for OSX 10.5
  * apply the same fix to givzpz32std.inl
  * add .hgignore

=== 2007-02-03 (Martin Albrecht) ===
  * new upstream release: 3.2.6
  * Changes to upstream (everything else below is irrelevant):
   ./src/library/poly1/givpoly1factor.h (2006-10-21 fix)
   ./src/kernel/zpz/givgfq.inl (2006-10-21 fix)
   ./src/kernel/zpz/givgfq.h  (2006-10-21 fix)
   ./aclocal.m4 64-bit (2006-10-29 fix)
   ./src/library/poly1/givpoly1padic.h (2006-11-09 fix)

=== 2006-12-15 William Stein ===
   * I don't know why, but I had to comment out "Rep& amxy( Rep& r, const Rep& a, const Rep& b, const Rep& c ) const { return Integer::amxy(r,a,b,c); }" in src/kernel/integer/givinteger.h in order to get Givaro to compile on my computer.  I'm guessing maybe amxy was deprecated from the C++ stl?

=== 2006-12-10 (Martin Albrecht) ===
 * delete[] not delete where new[] in GivaroMM

=== 2006-11-09 (Martin Albrecht) ===
 * GCC 4.0.0 on OSX PPC boxes doesn't seem to like "using Poly1Dom<Domain,Dense>::_domain" so we work around this in givpoly1padic.h

=== 2006-10-29 (Martin Albrecht) ===
  * replaced macro AC_LIBTOOL_SYS_DYNAMIC_LINKER with same macro from libtool 1.5.23a in aclocal.m4 to fix build on x86-64 systems as suggested by Kate Minola

=== 2006-10-21 (Martin Albrecht) ===
 * ported constructor with modulus parameter from linbox to givaro
 * added sage_generator() which returns the generator == cardinality if interpreted as an integer not a random one
