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 | * Version: $Id: p_Procs.h,v 1.5 2000-09-18 09:19:27 obachman Exp $ |
---|
11 | *******************************************************************/ |
---|
12 | #ifndef P_PROCS_H |
---|
13 | #define P_PROCS_H |
---|
14 | #include "structs.h" |
---|
15 | |
---|
16 | /*------------- p_Proc stuff ----------------------*/ |
---|
17 | typedef poly (*p_Copy_Proc_Ptr)(poly p, const ring r); |
---|
18 | typedef void (*p_Delete_Proc_Ptr)(poly *p, const ring r); |
---|
19 | typedef poly (*p_ShallowCopyDelete_Proc_Ptr)(poly p, const ring r, omBin_s* dest_bin); |
---|
20 | typedef poly (*p_Mult_nn_Proc_Ptr)(poly p, number n, const ring r); |
---|
21 | typedef poly (*pp_Mult_nn_Proc_Ptr)(poly p, number n, const ring r); |
---|
22 | typedef poly (*p_Mult_mm_Proc_Ptr)(poly p, poly m, const ring r); |
---|
23 | typedef poly (*pp_Mult_mm_Proc_Ptr)(poly p, poly m, |
---|
24 | poly spNoether, const ring r); |
---|
25 | typedef poly (*p_Add_q_Proc_Ptr)(poly p, poly q, int & shorter, const ring r); |
---|
26 | typedef poly (*p_Minus_mm_Mult_qq_Proc_Ptr)(poly p, poly m, poly q, |
---|
27 | int &shorter, poly spNoether, |
---|
28 | const ring r); |
---|
29 | typedef poly (*p_Neg_Proc_Ptr)(poly p, const ring r); |
---|
30 | |
---|
31 | typedef struct p_Procs_s |
---|
32 | { |
---|
33 | p_Copy_Proc_Ptr p_Copy; |
---|
34 | p_Delete_Proc_Ptr p_Delete; |
---|
35 | p_ShallowCopyDelete_Proc_Ptr p_ShallowCopyDelete; |
---|
36 | p_Mult_nn_Proc_Ptr p_Mult_nn; |
---|
37 | pp_Mult_nn_Proc_Ptr pp_Mult_nn; |
---|
38 | pp_Mult_mm_Proc_Ptr pp_Mult_mm; |
---|
39 | p_Mult_mm_Proc_Ptr p_Mult_mm; |
---|
40 | p_Add_q_Proc_Ptr p_Add_q; |
---|
41 | p_Minus_mm_Mult_qq_Proc_Ptr p_Minus_mm_Mult_qq; |
---|
42 | p_Neg_Proc_Ptr p_Neg; |
---|
43 | } pProcs_s; |
---|
44 | |
---|
45 | |
---|
46 | void p_SetProcs(ring r, p_Procs_s* p_Procs); |
---|
47 | #ifdef RDEBUG |
---|
48 | void p_Debug_GetSpecNames(const ring r, char* &field, char* &length, |
---|
49 | char* &ord); |
---|
50 | void p_Debug_GetProcNames(const ring r, p_Procs_s* p_Procs); |
---|
51 | #endif |
---|
52 | |
---|
53 | #endif /* ! P_PROCS_H */ |
---|