1 #ifndef COEFFRINGS_H
2 #define COEFFRINGS_H
3 
4 #include "misc/auxiliary.h"
5 #include "coeffs/coeffs.h"
6 #include "polys/monomials/ring.h"
7 
n_Copy(number n,const ring r)8 static FORCE_INLINE number n_Copy(number n, const ring r){ return n_Copy(n, r->cf); }
n_Delete(number * p,const ring r)9 static FORCE_INLINE void n_Delete(number* p, const ring r){ n_Delete(p, r->cf); }
n_Equal(number a,number b,const ring r)10 static FORCE_INLINE BOOLEAN n_Equal(number a, number b, const ring r){ return n_Equal(a, b, r->cf); }
n_SetMap(const ring src,const ring dst)11 static FORCE_INLINE nMapFunc n_SetMap(const ring src, const ring dst){ return n_SetMap(src->cf,dst->cf); }
n_GetChar(const ring r)12 static FORCE_INLINE int n_GetChar(const ring r){ return n_GetChar(r->cf); }
13 
14 // static FORCE_INLINE BOOLEAN n_Test(number n, const char *filename, const int linenumber, const ring r){ return n_Test( n, r->cf); }
15 // static FORCE_INLINE BOOLEAN n_Test(number a, const ring r){  return n_Test(a, r); }
16 // #define n_Test(a,r)
17 
18 
19 
n_IsZero(number n,const ring r)20 static FORCE_INLINE BOOLEAN n_IsZero(number n, const ring r){ return n_IsZero(n,r->cf); }
n_IsOne(number n,const ring r)21 static FORCE_INLINE BOOLEAN n_IsOne(number n,  const ring r){ return n_IsOne(n,r->cf); }
n_IsMOne(number n,const ring r)22 static FORCE_INLINE BOOLEAN n_IsMOne(number n, const ring r){ return n_IsMOne(n,r->cf); }
n_GreaterZero(number n,const ring r)23 static FORCE_INLINE BOOLEAN n_GreaterZero(number n, const ring r){ return n_GreaterZero(n,r->cf); }
n_Init(int i,const ring r)24 static FORCE_INLINE number n_Init(int i,       const ring r){ return n_Init(i,r->cf); }
n_InpNeg(number n,const ring r)25 static FORCE_INLINE number n_InpNeg(number n,     const ring r){ return n_InpNeg(n,r->cf); }
n_Invers(number a,const ring r)26 static FORCE_INLINE number n_Invers(number a,  const ring r){ return n_Invers(a,r->cf); }
n_Size(number n,const ring r)27 static FORCE_INLINE int    n_Size(number n,    const ring r){ return n_Size(n,r->cf); }
n_Normalize(number & n,const ring r)28 static FORCE_INLINE void   n_Normalize(number& n, const ring r){ return n_Normalize(n,r->cf); }
n_Write(number & n,const ring r)29 static FORCE_INLINE void   n_Write(number& n,  const ring r){ return n_Write(n, r->cf, rShortOut(r)); }
n_GetDenom(number & n,const ring r)30 static FORCE_INLINE number n_GetDenom(number& n, const ring r){ return n_GetDenom(n, r->cf);}
n_GetNumerator(number & n,const ring r)31 static FORCE_INLINE number n_GetNumerator(number& n, const ring r){ return n_GetNumerator(n, r->cf);}
n_Power(number a,int b,number * res,const ring r)32 static FORCE_INLINE void   n_Power(number a, int b, number *res, const ring r){ n_Power(a,b,res,r->cf); }
n_Mult(number a,number b,const ring r)33 static FORCE_INLINE number n_Mult(number a, number b, const ring r){ return n_Mult(a, b, r->cf);}
n_InpMult(number & a,number b,const ring r)34 static FORCE_INLINE void n_InpMult(number &a, number b, const ring r){ n_InpMult(a,b,r->cf); }
n_Sub(number a,number b,const ring r)35 static FORCE_INLINE number n_Sub(number a, number b, const ring r){ return n_Sub(a, b, r->cf);}
n_Add(number a,number b,const ring r)36 static FORCE_INLINE number n_Add(number a, number b, const ring r){ return n_Add(a, b, r->cf);}
n_Div(number a,number b,const ring r)37 static FORCE_INLINE number n_Div(number a, number b, const ring r){ return n_Div(a,b, r->cf);}
n_ExactDiv(number a,number b,const ring r)38 static FORCE_INLINE number n_ExactDiv(number a, number b, const ring r){ return n_ExactDiv(a,b, r->cf);}
n_Gcd(number a,number b,const ring r)39 static FORCE_INLINE number n_Gcd(number a, number b, const ring r){ return n_Gcd(a,b, r->cf);}
40 
41 #ifdef HAVE_RINGS
n_IsUnit(number n,const ring r)42 static FORCE_INLINE BOOLEAN n_IsUnit(number n, const ring r){ return n_IsUnit(n, r->cf);}
n_GetUnit(number n,const ring r)43 static FORCE_INLINE number n_GetUnit(number n, const ring r){ return n_GetUnit(n, r->cf);}
n_DivBy(number a,number b,const ring r)44 static FORCE_INLINE BOOLEAN n_DivBy(number a, number b, const ring r){ return n_DivBy(a,b, r->cf);}
45 #endif
46 
n_ParDeg(number n,const ring r)47 static FORCE_INLINE int n_ParDeg(number n, const ring r){ assume(r != NULL); assume(r->cf != NULL); return n_ParDeg(n,r->cf); }
48 
49 #endif /* COEFFRINGS_H */
50