25{
return n_Mult(n1, n2, r); }
28{
return n_Add(n1, n2, r); }
40{
return n_Sub(n1, n2, r); }
49#define n_Copy_RingGeneral(n, r) n_Copy_FieldGeneral(n, r)
50#define n_Delete_RingGeneral(n, r) n_Delete_FieldGeneral(n, r)
51#define n_Mult_RingGeneral(n1, n2, r) n_Mult_FieldGeneral(n1, n2, r)
52#define n_Add_RingGeneral(n1, n2, r) n_Add_FieldGeneral(n1, n2, r)
53#define n_IsZero_RingGeneral(n, r) n_IsZero_FieldGeneral(n, r)
54#define n_Equal_RingGeneral(n1, n2, r) n_Equal_FieldGeneral(n1, n2, r)
55#define n_Neg_RingGeneral(n, r) n_Neg_FieldGeneral(n, r)
56#define n_Sub_RingGeneral(n1, n2, r) n_Sub_FieldGeneral(n1, n2, r)
57#define n_InpMult_RingGeneral(n1, n2, r) n_InpMult_FieldGeneral(n1, n2, r)
58#define n_InpAdd_RingGeneral(n1,n2,r) n_InpAdd(n1, n2, r)
64#define n_Copy_FieldZp(n, r) n
65#define n_Delete_FieldZp(n, r) do {} while (0)
66#define n_Mult_FieldZp(n1,n2,r) npMultM(n1,n2,r)
67#define n_Add_FieldZp(n1,n2,r) npAddM(n1,n2,r)
68#define n_Sub_FieldZp(n1,n2,r) npSubM(n1,n2,r)
69#define n_IsZero_FieldZp(n,r) npIsZeroM(n,r)
70#define n_Equal_FieldZp(n1,n2,r) npEqualM(n1,n2,r)
71#define n_Neg_FieldZp(n,r) npNegM(n,r)
72#define n_InpMult_FieldZp(n1,n2,r) npInpMultM(n1,n2,r)
73#define n_InpAdd_FieldZp(n1,n2,r) npInpAddM(n1,n2,r)
75#define DO_LFORCE_INLINE
78#define n_Copy_FieldQ(n,r) nlCopy(n,r)
79#define n_Delete_FieldQ(n,r) nlDelete(n,r)
80#define n_Mult_FieldQ(n1,n2,r) nlMult(n1,n2,r)
81#define n_Add_FieldQ(n1,n2,r) nlAdd(n1,n2,r)
82#define n_Sub_FieldQ(n1,n2,r) nlSub(n1,n2,r)
83#define n_IsZero_FieldQ(n,r) nlIsZero(n,r)
84#define n_Equal_FieldQ(n1,n2,r) nlEqual(n1,n2,r)
85#define n_Neg_FieldQ(n,r) nlNeg(n,r)
86#define n_InpMult_FieldQ(n1,n2,r) nlInpMult(n1,n2,r)
87#define n_InpAdd_FieldQ(n1,n2,r) nlInpAdd(n1,n2,r)
Coefficient rings, fields and other domains suitable for Singular polynomials.
static FORCE_INLINE number n_Mult(number a, number b, const coeffs r)
return the product of 'a' and 'b', i.e., a*b
static FORCE_INLINE number n_Copy(number n, const coeffs r)
return a copy of 'n'
static FORCE_INLINE number n_Add(number a, number b, const coeffs r)
return the sum of 'a' and 'b', i.e., a+b
static FORCE_INLINE number n_InpNeg(number n, const coeffs r)
in-place negation of n MUST BE USED: n = n_InpNeg(n) (no copy is returned)
static FORCE_INLINE BOOLEAN n_IsZero(number n, const coeffs r)
TRUE iff 'n' represents the zero element.
static FORCE_INLINE number n_Sub(number a, number b, const coeffs r)
return the difference of 'a' and 'b', i.e., a-b
static FORCE_INLINE void n_Delete(number *p, const coeffs r)
delete 'p'
static FORCE_INLINE void n_InpMult(number &a, number b, const coeffs r)
multiplication of 'a' and 'b'; replacement of 'a' by the product a*b
static FORCE_INLINE BOOLEAN n_Equal(number a, number b, const coeffs r)
TRUE iff 'a' and 'b' represent the same number; they may have different representations.
static FORCE_INLINE void n_InpAdd(number &a, number b, const coeffs r)
addition of 'a' and 'b'; replacement of 'a' by the sum a+b
The main handler for Singular numbers which are suitable for Singular polynomials.
static FORCE_INLINE BOOLEAN n_Equal_FieldGeneral(number n1, number n2, const coeffs r)
static FORCE_INLINE void n_InpAdd_FieldGeneral(number &n1, number n2, const coeffs r)
static FORCE_INLINE number n_Add_FieldGeneral(number n1, number n2, const coeffs r)
static FORCE_INLINE void n_Delete_FieldGeneral(number *p, const coeffs r)
static FORCE_INLINE number n_Sub_FieldGeneral(number n1, number n2, const coeffs r)
static FORCE_INLINE number n_Mult_FieldGeneral(number n1, number n2, const coeffs r)
static FORCE_INLINE number n_Neg_FieldGeneral(number n, const coeffs r)
static FORCE_INLINE number n_Copy_FieldGeneral(number n, const coeffs r)
static FORCE_INLINE void n_InpMult_FieldGeneral(number &n1, number n2, const coeffs r)
static FORCE_INLINE BOOLEAN n_IsZero_FieldGeneral(number n, const coeffs r)