source: git/Singular/p_Procs.h @ 4508ce5

fieker-DuValspielwiese
Last change on this file since 4508ce5 was 7e5a38, checked in by Olaf Bachmann <obachman@…>, 23 years ago
* dynamic loading of p_Procs git-svn-id: file:///usr/local/Singular/svn/trunk@4833 2c84dea3-7e68-4137-9b89-c4e89433aadc
  • Property mode set to 100644
File size: 3.0 KB
Line 
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.11 2000-12-07 15:03:59 obachman Exp $
11 *******************************************************************/
12#ifndef P_PROCS_H
13#define P_PROCS_H
14#include "structs.h"
15
16/*------------- p_Proc stuff ----------------------*/
17typedef poly (*p_Copy_Proc_Ptr)(poly p, const ring r);
18typedef void (*p_Delete_Proc_Ptr)(poly *p, const ring r);
19typedef poly (*p_ShallowCopyDelete_Proc_Ptr)(poly p, const ring r, omBin_s* dest_bin);
20typedef poly (*p_Mult_nn_Proc_Ptr)(poly p, number n, const ring r);
21typedef poly (*pp_Mult_nn_Proc_Ptr)(poly p, number n, const ring r);
22typedef poly (*p_Mult_mm_Proc_Ptr)(poly p, poly m, const ring r);
23typedef poly (*pp_Mult_mm_Proc_Ptr)(poly p, poly m, 
24                                    const ring r, 
25                                    poly &last);
26typedef poly (*pp_Mult_mm_Noether_Proc_Ptr)(poly p, poly m, 
27                                            const poly spNoether, int &ll,
28                                            const ring r, poly &last);
29typedef poly (*p_Add_q_Proc_Ptr)(poly p, poly q, int & shorter, const ring r);
30typedef poly (*p_Minus_mm_Mult_qq_Proc_Ptr)(poly p, poly m, poly q, 
31                                            int &shorter, const poly spNoether,
32                                            const ring r, poly &last);
33typedef poly (*p_Neg_Proc_Ptr)(poly p, const ring r);
34typedef poly (*pp_Mult_Coeff_mm_DivSelect_Proc_Ptr)(poly p, const poly m, 
35                                                    const ring r);
36typedef poly (*p_Merge_q_Proc_Ptr)(poly p, poly q, const ring r);
37typedef void (*p_kBucketSetLm_Proc_Ptr)(kBucket_pt bucket);
38
39typedef struct p_Procs_s
40{
41  p_Copy_Proc_Ptr                       p_Copy;
42  p_Delete_Proc_Ptr                     p_Delete;
43  p_ShallowCopyDelete_Proc_Ptr          p_ShallowCopyDelete;
44  p_Mult_nn_Proc_Ptr                    p_Mult_nn;
45  pp_Mult_nn_Proc_Ptr                   pp_Mult_nn;
46  pp_Mult_mm_Proc_Ptr                   pp_Mult_mm;
47  pp_Mult_mm_Noether_Proc_Ptr           pp_Mult_mm_Noether;
48  p_Mult_mm_Proc_Ptr                    p_Mult_mm;
49  p_Add_q_Proc_Ptr                      p_Add_q;
50  p_Minus_mm_Mult_qq_Proc_Ptr           p_Minus_mm_Mult_qq;
51  p_Neg_Proc_Ptr                        p_Neg;
52  pp_Mult_Coeff_mm_DivSelect_Proc_Ptr   pp_Mult_Coeff_mm_DivSelect;
53  p_Merge_q_Proc_Ptr                    p_Merge_q;
54  p_kBucketSetLm_Proc_Ptr               p_kBucketSetLm;
55} pProcs_s;
56
57 
58void p_ProcsSet(ring r, p_Procs_s* p_Procs);
59#ifdef RDEBUG
60void p_Debug_GetSpecNames(const ring r, char* &field, char* &length, 
61                          char* &ord);
62void p_Debug_GetProcNames(const ring r, p_Procs_s* p_Procs);
63#endif
64// if set, then dynamic p_procs are used, otherwise static
65extern BOOLEAN p_procs_dynamic;
66
67#endif /* ! P_PROCS_H */
Note: See TracBrowser for help on using the repository browser.