diff -p -up linbox-1.1.6/linbox/field/givaro-extension.h.orig linbox-1.1.6/linbox/field/givaro-extension.h --- linbox-1.1.6/linbox/field/givaro-extension.h.orig 2010-01-28 20:29:59.263264304 -0200 +++ linbox-1.1.6/linbox/field/givaro-extension.h 2010-01-28 20:30:21.140261921 -0200 @@ -100,8 +100,8 @@ namespace LinBox } - // -- amxy: r <- c - a * b mod p - Rep& amxy (Rep& r, const Rep a, const Rep b, const Rep c) const { + // -- maxpy: r <- c - a * b mod p + Rep& maxpy (Rep& r, const Rep a, const Rep b, const Rep c) const { Rep tmp; this->mul(tmp, a, b); this->assign(r,c); diff -p -up linbox-1.1.6/linbox/field/modular-double.h.orig linbox-1.1.6/linbox/field/modular-double.h --- linbox-1.1.6/linbox/field/modular-double.h.orig 2010-01-28 20:29:16.190263600 -0200 +++ linbox-1.1.6/linbox/field/modular-double.h 2010-01-28 20:30:54.935261791 -0200 @@ -341,6 +341,11 @@ namespace LinBox { //return r= tmp- floor(tmp*inv_modulus)*modulus; } + inline Element &axmyin (Element &r, const Element &a, const Element &x) const { + double tmp = r - a * x; + return r = fmod(tmp, modulus); + } + static inline double getMaxModulus() { return 67108864.0; } // 2^26 diff -p -up linbox-1.1.6/linbox/field/modular.h.orig linbox-1.1.6/linbox/field/modular.h --- linbox-1.1.6/linbox/field/modular.h.orig 2010-01-28 20:29:26.982264505 -0200 +++ linbox-1.1.6/linbox/field/modular.h 2010-01-28 20:50:32.541599249 -0200 @@ -241,6 +241,11 @@ namespace LinBox return is; } + /* this is required to get unsigned int definitions */ + inline Element& axmyin(Element& r, const Element& a, const Element& b) const { + return r = (r - a * b) % _modulus; + } + //@} protected: