30#ifdef HAVE_MORE_FIELDS_IMPLEMENTED
60 if (
sgn[
i] > 0)
return 0;
69 if (
sgn[
i] < 0)
return 0;
75 long*
sgn = r->ordsgn;
76 long l = r->ExpL_Size;
124#define CheckProc(which) \
127 if (p_Procs->which == NULL) \
129 dReportBug("p_Procs is NULL"); \
130 WarnS("Singular will work properly, but much slower"); \
131 WarnS("If you chose a coef ring, it may not work at all");\
132 p_Procs->which = (which##_Proc_Ptr)( \
133 which##__FieldGeneral_LengthGeneral_OrdGeneral); \
152 extern poly p_Mult_nn_pthread(poly
p,
const number n,
const ring r);
182 CheckProc(pp_Mult_Coeff_mm_DivSelectMult);
199 dReportError(
"Setting pProcs in p_ProcsSet (rDebugPrint!?)!!!");
int sgn(const Rational &a)
static FORCE_INLINE BOOLEAN nCoeff_is_Domain(const coeffs r)
returns TRUE, if r is a field or r has no zero divisors (i.e is a domain)
static BOOLEAN length(leftv result, leftv arg)
int dReportError(const char *fmt,...)
static const char * p_FieldEnum_2_String(p_Field field)
#define SetProcs_ring(field, length, ord)
#define SetProcs(field, length, ord)
static const char * p_OrdEnum_2_String(p_Ord ord)
static const char * p_LengthEnum_2_String(p_Length length)
static int p_IsPomog(long *sgn, int l)
static p_Length p_LengthIs(ring r)
static p_Ord p_OrdIs(ring r)
void nc_p_ProcsSet(ring rGR, p_Procs_s *p_Procs)
static int p_IsNomog(long *sgn, int l)
void p_ProcsSet(ring r, p_Procs_s *p_Procs)
STATIC_VAR p_Procs_s * _p_procs
void p_Debug_GetProcNames(const ring r, p_Procs_s *p_Procs)
void p_Debug_GetSpecNames(const ring r, const char *&field, const char *&length, const char *&ord)
static p_Field p_FieldIs(ring r)
static poly p_Neg(poly p, const ring r)
static poly p_Add_q(poly p, poly q, const ring r)
static poly pp_Mult_mm(poly p, poly m, const ring r)
static poly p_Merge_q(poly p, poly q, const ring r)
static poly pp_Mult_nn(poly p, number n, const ring r)
static poly p_ShallowCopyDelete(poly p, const ring r, omBin bin)
static poly p_Mult_nn(poly p, number n, const ring r)
static void p_Delete(poly *p, const ring r)
static poly p_Mult_mm(poly p, poly m, const ring r)
static poly p_Minus_mm_Mult_qq(poly p, const poly m, const poly q, int &lp, int lq, const poly spNoether, const ring r)
static poly pp_Mult_Coeff_mm_DivSelect(poly p, const poly m, const ring r)
static poly p_Copy(poly p, const ring r)
returns a copy of p
static BOOLEAN rField_is_R(const ring r)
static BOOLEAN rField_is_Zp_a(const ring r)
static BOOLEAN rField_is_Zp(const ring r)
struct p_Procs_s p_Procs_s
static BOOLEAN rIsPluralRing(const ring r)
we must always have this test!
static BOOLEAN rField_is_long_C(const ring r)
static BOOLEAN rField_is_Q_a(const ring r)
static BOOLEAN rField_is_Q(const ring r)
static BOOLEAN rField_is_long_R(const ring r)
static BOOLEAN rField_is_GF(const ring r)
#define rField_is_Ring(R)
poly shift_pp_Mult_Coeff_mm_DivSelect_STUB(poly, const poly, int &, const ring)
poly shift_p_Minus_mm_Mult_qq(poly p, poly m, poly q, int &Shorter, const poly, const ring ri)
poly shift_pp_mm_Mult(poly p, const poly m, const ring ri)
poly shift_pp_Mult_mm_Noether_STUB(poly p, const poly m, const poly, int &ll, const ring ri)
poly shift_p_mm_Mult(poly p, const poly m, const ring ri)
poly shift_p_Mult_mm(poly p, const poly m, const ring ri)
poly shift_pp_Mult_mm(poly p, const poly m, const ring ri)
poly shift_pp_Mult_Coeff_mm_DivSelectMult_STUB(poly, const poly, const poly, const poly, int &, const ring)