mat_GF2E operator-(const mat_GF2E& a) { mat_GF2E res; negate(res, a); NTL_OPT_RETURN(mat_GF2E, res); }
mat_ZZ operator+(const mat_ZZ& a, const mat_ZZ& b) { mat_ZZ res; add(res, a, b); NTL_OPT_RETURN(mat_ZZ, res); }
mat_ZZ operator-(const mat_ZZ& a) { mat_ZZ res; negate(res, a); NTL_OPT_RETURN(mat_ZZ, res); }
vec_ZZ_pE operator*(const vec_ZZ_pE& a, const mat_ZZ_pE& b) { vec_ZZ_pE res; mul_aux(res, a, b); NTL_OPT_RETURN(vec_ZZ_pE, res); }
vec_zz_pE operator-(const vec_zz_pE& a, const vec_zz_pE& b) { vec_zz_pE res; sub(res, a, b); NTL_OPT_RETURN(vec_zz_pE, res); }
vec_ZZ_p operator-(const vec_ZZ_p& a) { vec_ZZ_p res; negate(res, a); NTL_OPT_RETURN(vec_ZZ_p, res); }
mat_ZZ_pE operator-(const mat_ZZ_pE& a, const mat_ZZ_pE& b) { mat_ZZ_pE res; sub(res, a, b); NTL_OPT_RETURN(mat_ZZ_pE, res); }
mat_RR operator+(const mat_RR& a, const mat_RR& b) { mat_RR res; add(res, a, b); NTL_OPT_RETURN(mat_RR, res); }
mat_RR operator-(const mat_RR& a, const mat_RR& b) { mat_RR res; sub(res, a, b); NTL_OPT_RETURN(mat_RR, res); }
vec_RR operator-(const vec_RR& a) { vec_RR res; negate(res, a); NTL_OPT_RETURN(vec_RR, res); }
RR determinant(const mat_RR& a) { RR x; determinant(x, a); NTL_OPT_RETURN(RR, x); }
vec_RR operator-(const vec_RR& a, const vec_RR& b) { vec_RR res; sub(res, a, b); NTL_OPT_RETURN(vec_RR, res); }
vec_RR operator+(const vec_RR& a, const vec_RR& b) { vec_RR res; add(res, a, b); NTL_OPT_RETURN(vec_RR, res); }
vec_GF2E operator*(const vec_GF2E& a, const mat_GF2E& b) { vec_GF2E res; mul_aux(res, a, b); NTL_OPT_RETURN(vec_GF2E, res); }
vec_zz_p operator+(const vec_zz_p& a, const vec_zz_p& b) { vec_zz_p res; add(res, a, b); NTL_OPT_RETURN(vec_zz_p, res); }
mat_RR operator-(const mat_RR& a) { mat_RR res; negate(res, a); NTL_OPT_RETURN(mat_RR, res); }
vec_ZZ_p operator-(const vec_ZZ_p& a, const vec_ZZ_p& b) { vec_ZZ_p res; sub(res, a, b); NTL_OPT_RETURN(vec_ZZ_p, res); }
vec_RR operator*(const vec_RR& a, const mat_RR& b) { vec_RR res; mul_aux(res, a, b); NTL_OPT_RETURN(vec_RR, res); }
ZZ_p operator*(const vec_ZZ_p& a, const vec_ZZ_p& b) { ZZ_p res; InnerProduct(res, a, b); NTL_OPT_RETURN(ZZ_p, res); }
mat_ZZ_p operator-(const mat_ZZ_p& a, const mat_ZZ_p& b) { mat_ZZ_p res; sub(res, a, b); NTL_OPT_RETURN(mat_ZZ_p, res); }
mat_ZZ_pE operator-(const mat_ZZ_pE& a) { mat_ZZ_pE res; negate(res, a); NTL_OPT_RETURN(mat_ZZ_pE, res); }
mat_ZZ_p operator-(const mat_ZZ_p& a) { mat_ZZ_p res; negate(res, a); NTL_OPT_RETURN(mat_ZZ_p, res); }
vec_ZZ_pE operator+(const vec_ZZ_pE& a, const vec_ZZ_pE& b) { vec_ZZ_pE res; add(res, a, b); NTL_OPT_RETURN(vec_ZZ_pE, res); }
vec_ZZ_p operator*(const vec_ZZ_p& a, const mat_ZZ_p& b) { vec_ZZ_p res; mul_aux(res, a, b); NTL_OPT_RETURN(vec_ZZ_p, res); }
vec_zz_pE operator-(const vec_zz_pE& a) { vec_zz_pE res; negate(res, a); NTL_OPT_RETURN(vec_zz_pE, res); }
vec_GF2E operator-(const vec_GF2E& a, const vec_GF2E& b) { vec_GF2E res; sub(res, a, b); NTL_OPT_RETURN(vec_GF2E, res); }
mat_ZZ operator-(const mat_ZZ& a, const mat_ZZ& b) { mat_ZZ res; sub(res, a, b); NTL_OPT_RETURN(mat_ZZ, res); }
vec_GF2E operator-(const vec_GF2E& a) { vec_GF2E res; negate(res, a); NTL_OPT_RETURN(vec_GF2E, res); }
vec_ZZ operator*(const vec_ZZ& a, const mat_ZZ& b) { vec_ZZ res; mul_aux(res, a, b); NTL_OPT_RETURN(vec_ZZ, res); }
mat_GF2E operator-(const mat_GF2E& a, const mat_GF2E& b) { mat_GF2E res; sub(res, a, b); NTL_OPT_RETURN(mat_GF2E, res); }