27 if (rField_is_R(r))
return FieldR;
28 if (rField_is_GF(r))
return FieldGF;
29 if (rField_is_Q(r))
return FieldQ;
30#ifdef HAVE_MORE_FIELDS_IMPLEMENTED
34 if (rField_is_Q_a(r))
return FieldQ_a;
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);
159 SetProcs_nv(
FieldZp, length,ord);
182 CheckProc(pp_Mult_Coeff_mm_DivSelectMult);
197 if (rIsPluralRing(r))
199 dReportError(
"Setting pProcs in p_ProcsSet (rDebugPrint!?)!!!");
227 field = p_FieldEnum_2_String(
p_FieldIs(r));
228 length = p_LengthEnum_2_String(
p_LengthIs(r));
229 ord = p_OrdEnum_2_String(
p_OrdIs(r));
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)
void nc_p_ProcsSet(ring rGR, p_Procs_s *p_Procs)
int dReportError(const char *fmt,...)
void p_ProcsSet(ring r, 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)
#define SetProcs_ring(field, length, ord)
#define SetProcs(field, length, ord)
static int p_IsPomog(long *sgn, int l)
static p_Length p_LengthIs(ring r)
static p_Ord p_OrdIs(ring r)
static int p_IsNomog(long *sgn, int l)
STATIC_VAR p_Procs_s * _p_procs
static p_Field p_FieldIs(ring r)
static poly p_Merge_q(poly p, poly q, const ring r)
static poly pp_Mult_Coeff_mm_DivSelect(poly p, const poly m, const ring r)
struct p_Procs_s p_Procs_s
#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)