Data Structures | Typedefs | Functions | Variables
p_Procs.h File Reference
#include <omalloc/omalloc.h>

Go to the source code of this file.

Data Structures

struct  pProcs_s
 

Typedefs

typedef polyrec * poly
 
typedef poly(* p_Copy_Proc_Ptr) (poly p, const ring r)
 
typedef void(* p_Delete_Proc_Ptr) (poly *p, const ring r)
 
typedef poly(* p_ShallowCopyDelete_Proc_Ptr) (poly p, const ring r, omBin dest_bin)
 
typedef poly(* p_Mult_nn_Proc_Ptr) (poly p, const number n, const ring r)
 
typedef poly(* pp_Mult_nn_Proc_Ptr) (poly p, const number n, const ring r)
 
typedef poly(* p_Mult_mm_Proc_Ptr) (poly p, const poly m, const ring r)
 
typedef poly(* pp_Mult_mm_Proc_Ptr) (poly p, const poly m, const ring r)
 
typedef poly(* pp_Mult_mm_Noether_Proc_Ptr) (poly p, const poly m, const poly spNoether, int &ll, const ring r)
 
typedef poly(* p_Add_q_Proc_Ptr) (poly p, poly q, int &shorter, const ring r)
 
typedef poly(* p_Minus_mm_Mult_qq_Proc_Ptr) (poly p, poly m, poly q, int &shorter, const poly spNoether, const ring r)
 
typedef poly(* p_Neg_Proc_Ptr) (poly p, const ring r)
 
typedef poly(* pp_Mult_Coeff_mm_DivSelect_Proc_Ptr) (poly p, const poly m, int &shorter, const ring r)
 
typedef poly(* pp_Mult_Coeff_mm_DivSelectMult_Proc_Ptr) (poly p, const poly m, const poly a, const poly b, int &shorter, const ring r)
 
typedef poly(* p_Merge_q_Proc_Ptr) (poly p, poly q, const ring r)
 
typedef void(* p_kBucketSetLm_Proc_Ptr) (kBucket_pt bucket)
 

Functions

void p_ProcsSet (ring r, p_Procs_s *p_Procs)
 

Variables

const BOOLEAN p_procs_dynamic
 

Data Structure Documentation

struct pProcs_s

Definition at line 45 of file p_Procs.h.

Data Fields
p_Add_q_Proc_Ptr p_Add_q
p_Copy_Proc_Ptr p_Copy
p_Delete_Proc_Ptr p_Delete
p_kBucketSetLm_Proc_Ptr p_kBucketSetLm
p_Merge_q_Proc_Ptr p_Merge_q
p_Minus_mm_Mult_qq_Proc_Ptr p_Minus_mm_Mult_qq
p_Mult_mm_Proc_Ptr p_Mult_mm
p_Mult_nn_Proc_Ptr p_Mult_nn
p_Neg_Proc_Ptr p_Neg
p_ShallowCopyDelete_Proc_Ptr p_ShallowCopyDelete
pp_Mult_Coeff_mm_DivSelect_Proc_Ptr pp_Mult_Coeff_mm_DivSelect
pp_Mult_Coeff_mm_DivSelectMult_Proc_Ptr pp_Mult_Coeff_mm_DivSelectMult
pp_Mult_mm_Proc_Ptr pp_Mult_mm
pp_Mult_mm_Noether_Proc_Ptr pp_Mult_mm_Noether
pp_Mult_nn_Proc_Ptr pp_Mult_nn

Typedef Documentation

typedef poly(* p_Add_q_Proc_Ptr) (poly p, poly q, int &shorter, const ring r)

Definition at line 32 of file p_Procs.h.

typedef poly(* p_Copy_Proc_Ptr) (poly p, const ring r)

Definition at line 22 of file p_Procs.h.

typedef void(* p_Delete_Proc_Ptr) (poly *p, const ring r)

Definition at line 23 of file p_Procs.h.

typedef void(* p_kBucketSetLm_Proc_Ptr) (kBucket_pt bucket)

Definition at line 43 of file p_Procs.h.

typedef poly(* p_Merge_q_Proc_Ptr) (poly p, poly q, const ring r)

Definition at line 42 of file p_Procs.h.

typedef poly(* p_Minus_mm_Mult_qq_Proc_Ptr) (poly p, poly m, poly q, int &shorter, const poly spNoether, const ring r)

Definition at line 33 of file p_Procs.h.

typedef poly(* p_Mult_mm_Proc_Ptr) (poly p, const poly m, const ring r)

Definition at line 27 of file p_Procs.h.

typedef poly(* p_Mult_nn_Proc_Ptr) (poly p, const number n, const ring r)

Definition at line 25 of file p_Procs.h.

typedef poly(* p_Neg_Proc_Ptr) (poly p, const ring r)

Definition at line 36 of file p_Procs.h.

typedef poly(* p_ShallowCopyDelete_Proc_Ptr) (poly p, const ring r, omBin dest_bin)

Definition at line 24 of file p_Procs.h.

typedef polyrec* poly

Definition at line 18 of file p_Procs.h.

typedef poly(* pp_Mult_Coeff_mm_DivSelect_Proc_Ptr) (poly p, const poly m, int &shorter, const ring r)

Definition at line 37 of file p_Procs.h.

typedef poly(* pp_Mult_Coeff_mm_DivSelectMult_Proc_Ptr) (poly p, const poly m, const poly a, const poly b, int &shorter, const ring r)

Definition at line 40 of file p_Procs.h.

typedef poly(* pp_Mult_mm_Noether_Proc_Ptr) (poly p, const poly m, const poly spNoether, int &ll, const ring r)

Definition at line 29 of file p_Procs.h.

typedef poly(* pp_Mult_mm_Proc_Ptr) (poly p, const poly m, const ring r)

Definition at line 28 of file p_Procs.h.

typedef poly(* pp_Mult_nn_Proc_Ptr) (poly p, const number n, const ring r)

Definition at line 26 of file p_Procs.h.

Function Documentation

void p_ProcsSet ( ring  r,
p_Procs_s p_Procs 
)

Definition at line 139 of file p_Procs_Set.h.

140 {
141  p_Field field = p_FieldIs(r);
142  p_Length length = p_LengthIs(r);
143  p_Ord ord = p_OrdIs(r);
144 
145  assume(p_Procs != NULL);
146  memset(p_Procs, 0, sizeof(p_Procs_s));
147  _p_procs = p_Procs;
148  assume(IsValidSpec(field, length, ord));
149 
150  SetProcs(field, length, ord);
151  extern poly p_Mult_nn_pthread(poly p, const number n, const ring r);
152  #ifdef NV_OPS
153  if ((field==FieldZp) && (r->cf->ch>NV_MAX_PRIME))
154  {
155  // set all (mult/div.) routines to FieldGeneral-variants
156  SetProcs(FieldGeneral, length,ord); // p_Mult_nn, ...
157  // set all non-mult/div. routines to FieldZp-variants
158  SetProcs_nv(FieldZp, length,ord); // p_Delete, p_ShallowCopyDelete...
159  }
160  #endif
161  CheckProc(p_Copy);
169  CheckProc(pp_Mult_mm_Noether);
171  CheckProc(p_Neg);
173  CheckProc(pp_Mult_Coeff_mm_DivSelectMult);
175  CheckProc(p_kBucketSetLm);
176 
177 /*
178  assume(p_Procs->pp_Mult_mm_Noether != pp_Mult_mm_Noether__FieldGeneral_LengthGeneral_OrdGeneral ||
179  p_Procs->p_Minus_mm_Mult_qq == p_Minus_mm_Mult_qq__FieldGeneral_LengthGeneral_OrdGeneral ||
180  r->OrdSgn == 1 || r->LexOrder);
181 */
182 #ifdef HAVE_PLURAL
183 #ifndef SING_NDEBUG
184  if (rIsPluralRing(r))
185  {
186  dReportError("Setting pProcs in p_ProcsSet (rDebugPrint!?)!!!");
187  nc_p_ProcsSet(r, _p_procs); // Setup non-commutative p_Procs table!
188  }
189 #endif
190 #endif
191 }
static p_Field p_FieldIs(ring r)
Definition: p_Procs_Set.h:19
return P p
Definition: myNF.cc:203
static poly p_Mult_mm(poly p, poly m, const ring r)
Definition: p_polys.h:973
struct p_Procs_s p_Procs_s
Definition: ring.h:29
#define SetProcs(field, length, ord)
Definition: p_Procs_Impl.h:667
static poly pp_Mult_nn(poly p, number n, const ring r)
Definition: p_polys.h:927
static poly pp_Mult_mm(poly p, poly m, const ring r)
Definition: p_polys.h:962
#define CheckProc(which)
Definition: p_Procs_Set.h:122
static p_Length p_LengthIs(ring r)
Definition: p_Procs_Set.h:38
static bool rIsPluralRing(const ring r)
we must always have this test!
Definition: ring.h:361
static p_Ord p_OrdIs(ring r)
Definition: p_Procs_Set.h:71
static poly p_Copy(poly p, const ring r)
returns a copy of p
Definition: p_polys.h:811
p_Length
Definition: p_Procs_Impl.h:127
const ring r
Definition: syzextra.cc:208
#define assume(x)
Definition: mod2.h:405
p_Field
Definition: p_Procs_Impl.h:109
static poly p_ShallowCopyDelete(poly p, const ring r, omBin bin)
Definition: p_polys.h:876
static poly p_Mult_nn(poly p, number n, const ring r)
Definition: p_polys.h:902
static int IsValidSpec(p_Field field, p_Length length, p_Ord ord)
Definition: p_Procs_Impl.h:573
#define NV_MAX_PRIME
Definition: modulop.h:21
static void p_Delete(poly *p, const ring r)
Definition: p_polys.h:850
p_Ord
Definition: p_Procs_Impl.h:140
#define NULL
Definition: omList.c:10
static poly p_Merge_q(poly p, poly q, const ring r)
Definition: p_polys.h:1140
static p_Procs_s * _p_procs
Definition: p_Procs_Set.h:114
void nc_p_ProcsSet(ring rGR, p_Procs_s *p_Procs)
Definition: old.gring.cc:3264
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)
Definition: p_polys.h:981
int dReportError(const char *fmt,...)
Definition: dError.cc:45
static poly p_Neg(poly p, const ring r)
Definition: p_polys.h:1018
polyrec * poly
Definition: hilb.h:10
static poly p_Add_q(poly p, poly q, const ring r)
Definition: p_polys.h:884
static poly pp_Mult_Coeff_mm_DivSelect(poly p, const poly m, const ring r)
Definition: p_polys.h:1001

Variable Documentation

const BOOLEAN p_procs_dynamic

Definition at line 31 of file p_Procs_Dynamic.cc.