p_Procs.h
Go to the documentation of this file.
1 /****************************************
2 * Computer Algebra System SINGULAR *
3 ****************************************/
4 
5 /***************************************************************
6  * File: pProcs.h
7  * Purpose: declaration of primitive procs for polys
8  * Author: obachman (Olaf Bachmann)
9  * Created: 8/00
10  *******************************************************************/
11 #ifndef P_PROCS_H
12 #define P_PROCS_H
13 
14 // #include <polys/monomials/ring.h>
15 // #include <polys/structs.h>
16 #include <omalloc/omalloc.h>
17 
18 struct spolyrec; typedef struct spolyrec polyrec; typedef polyrec* poly;
19 struct ip_sring; typedef struct ip_sring* ring; typedef struct ip_sring const* const_ring;
20 
21 /*------------- p_Proc stuff ----------------------*/
22 typedef poly (*p_Copy_Proc_Ptr)(poly p, const ring r);
23 typedef void (*p_Delete_Proc_Ptr)(poly *p, const ring r);
24 typedef poly (*p_ShallowCopyDelete_Proc_Ptr)(poly p, const ring r, omBin dest_bin);
25 typedef poly (*p_Mult_nn_Proc_Ptr)(poly p, const number n, const ring r);
26 typedef poly (*pp_Mult_nn_Proc_Ptr)(poly p, const number n, const ring r);
27 typedef poly (*p_Mult_mm_Proc_Ptr)(poly p, const poly m, const ring r);
28 typedef poly (*pp_Mult_mm_Proc_Ptr)(poly p, const poly m, const ring r);
30  const poly spNoether, int &ll,
31  const ring r);
32 typedef poly (*p_Add_q_Proc_Ptr)(poly p, poly q, int & shorter, const ring r);
34  int &shorter, const poly spNoether,
35  const ring r);
36 typedef poly (*p_Neg_Proc_Ptr)(poly p, const ring r);
38  int &shorter,const ring r);
40  (poly p,const poly m, const poly a, const poly b, int &shorter,const ring r);
41 
42 typedef poly (*p_Merge_q_Proc_Ptr)(poly p, poly q, const ring r);
44 
45 typedef struct p_Procs_s
46 {
62 } pProcs_s;
63 
64 
65 void p_ProcsSet(ring r, p_Procs_s* p_Procs);
66 #ifdef RDEBUG
67 void p_Debug_GetSpecNames(const ring r, const char* &field, const char* &length,
68  const char* &ord);
69 void p_Debug_GetProcNames(const ring r, p_Procs_s* p_Procs);
70 #endif
71 // if set, then dynamic p_procs are used, otherwise static
72 extern const BOOLEAN p_procs_dynamic;
73 
74 #endif /* ! P_PROCS_H */
poly(* p_Copy_Proc_Ptr)(poly p, const ring r)
Definition: p_Procs.h:22
pp_Mult_Coeff_mm_DivSelect_Proc_Ptr pp_Mult_Coeff_mm_DivSelect
Definition: p_Procs.h:58
const poly a
Definition: syzextra.cc:212
omBin_t * omBin
Definition: omStructs.h:12
p_Merge_q_Proc_Ptr p_Merge_q
Definition: p_Procs.h:60
const BOOLEAN p_procs_dynamic
p_Mult_mm_Proc_Ptr p_Mult_mm
Definition: p_Procs.h:54
poly(* pp_Mult_mm_Noether_Proc_Ptr)(poly p, const poly m, const poly spNoether, int &ll, const ring r)
Definition: p_Procs.h:29
void(* p_Delete_Proc_Ptr)(poly *p, const ring r)
Definition: p_Procs.h:23
return P p
Definition: myNF.cc:203
poly(* p_ShallowCopyDelete_Proc_Ptr)(poly p, const ring r, omBin dest_bin)
Definition: p_Procs.h:24
struct p_Procs_s p_Procs_s
Definition: ring.h:29
pp_Mult_mm_Noether_Proc_Ptr pp_Mult_mm_Noether
Definition: p_Procs.h:53
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: p_Procs.h:40
poly(* pp_Mult_nn_Proc_Ptr)(poly p, const number n, const ring r)
Definition: p_Procs.h:26
void p_Debug_GetSpecNames(const ring r, const char *&field, const char *&length, const char *&ord)
Definition: p_Procs_Set.h:194
Definition: ring.h:209
poly(* p_Minus_mm_Mult_qq_Proc_Ptr)(poly p, poly m, poly q, int &shorter, const poly spNoether, const ring r)
Definition: p_Procs.h:33
poly(* p_Mult_mm_Proc_Ptr)(poly p, const poly m, const ring r)
Definition: p_Procs.h:27
poly(* pp_Mult_Coeff_mm_DivSelect_Proc_Ptr)(poly p, const poly m, int &shorter, const ring r)
Definition: p_Procs.h:37
p_Neg_Proc_Ptr p_Neg
Definition: p_Procs.h:57
p_Minus_mm_Mult_qq_Proc_Ptr p_Minus_mm_Mult_qq
Definition: p_Procs.h:56
const ring r
Definition: syzextra.cc:208
polyrec * poly
Definition: p_Procs.h:18
poly(* p_Add_q_Proc_Ptr)(poly p, poly q, int &shorter, const ring r)
Definition: p_Procs.h:32
poly(* p_Mult_nn_Proc_Ptr)(poly p, const number n, const ring r)
Definition: p_Procs.h:25
p_kBucketSetLm_Proc_Ptr p_kBucketSetLm
Definition: p_Procs.h:61
P bucket
Definition: myNF.cc:79
int m
Definition: cfEzgcd.cc:119
poly(* p_Merge_q_Proc_Ptr)(poly p, poly q, const ring r)
Definition: p_Procs.h:42
void p_Debug_GetProcNames(const ring r, p_Procs_s *p_Procs)
Definition: p_Procs_Set.h:205
pp_Mult_nn_Proc_Ptr pp_Mult_nn
Definition: p_Procs.h:51
void(* p_kBucketSetLm_Proc_Ptr)(kBucket_pt bucket)
Definition: p_Procs.h:43
p_Copy_Proc_Ptr p_Copy
Definition: p_Procs.h:47
p_Delete_Proc_Ptr p_Delete
Definition: p_Procs.h:48
pp_Mult_mm_Proc_Ptr pp_Mult_mm
Definition: p_Procs.h:52
void p_ProcsSet(ring r, p_Procs_s *p_Procs)
Definition: p_Procs_Set.h:139
p_Mult_nn_Proc_Ptr p_Mult_nn
Definition: p_Procs.h:50
poly(* p_Neg_Proc_Ptr)(poly p, const ring r)
Definition: p_Procs.h:36
poly(* pp_Mult_mm_Proc_Ptr)(poly p, const poly m, const ring r)
Definition: p_Procs.h:28
#define const
Definition: fegetopt.c:41
pp_Mult_Coeff_mm_DivSelectMult_Proc_Ptr pp_Mult_Coeff_mm_DivSelectMult
Definition: p_Procs.h:59
polyrec * poly
Definition: hilb.h:10
int BOOLEAN
Definition: auxiliary.h:131
const poly b
Definition: syzextra.cc:213
p_Add_q_Proc_Ptr p_Add_q
Definition: p_Procs.h:55
p_ShallowCopyDelete_Proc_Ptr p_ShallowCopyDelete
Definition: p_Procs.h:49