source: git/Singular/kbPolyProcs.h @ faea11

spielwiese
Last change on this file since faea11 was faea11, checked in by Olaf Bachmann <obachman@…>, 25 years ago
* preparation for inclusion of Buckets git-svn-id: file:///usr/local/Singular/svn/trunk@3061 2c84dea3-7e68-4137-9b89-c4e89433aadc
  • Property mode set to 100644
File size: 2.6 KB
Line 
1#ifndef KBPOLYPROCS_H
2#define KBPOLYPROCS_H
3/****************************************
4*  Computer Algebra System SINGULAR     *
5****************************************/
6/* $Id: kbPolyProcs.h,v 1.2 1999-05-26 16:20:16 obachman Exp $ */
7#include "mod2.h"
8#include "mmheap.h"
9#include "ring.h"
10
11
12///////////////////////////////////////////////////////////////////////
13///
14/// Procedures for spolys and poly reductions
15///
16typedef void (*kb_n_Mult_p_Proc)(number n, poly p);
17extern void kb_n_Mult_p_General(number n, poly p);
18
19typedef void (*kb_p_Add_q_Proc)(poly *p, int *lp, 
20                                poly* q, int* lq, 
21                                memHeap heap = NULL);
22extern void kb_p_Add_q_General(poly *p, int *lp, 
23                               poly *q, int *lq, 
24                               memHeap heap = NULL);
25
26typedef poly (*kb_p_Mult_m_Proc)(poly p, 
27                                 poly m, 
28                                 poly spNoether,
29                                 memHeap heap = NULL);
30extern poly  kb_p_Mult_m_General(poly p, 
31                                 poly m, 
32                                 poly spNoether,
33                                 memHeap heap = NULL);
34
35typedef void (*kb_p_Minus_m_Mult_q_Proc)(poly *p, int *lp, 
36                                         poly m,
37                                         poly q, int lq,
38                                         poly spNoether,
39                                         kb_p_Mult_m_Proc kb_p_Mult_m,
40                                         memHeap heap = NULL);
41extern void kb_p_Minus_m_Mult_q_General(poly *p, int *lp, 
42                                        poly m,
43                                        poly q, int lq,
44                                        poly spNoether,
45                                        kb_p_Mult_m_Proc kb_p_Mult_m,
46                                        memHeap heap = NULL);
47
48typedef struct skbPolyProcs kbPolyProcs;
49typedef kbPolyProcs * kbPolyProcs_pt;
50struct skbPolyProcs
51{
52  kb_n_Mult_p_Proc          n_Mult_p;
53  kb_p_Add_q_Proc           p_Add_q;
54  kb_p_Mult_m_Proc          p_Mult_m;
55  kb_p_Minus_m_Mult_q_Proc  p_Minus_m_Mult_q;
56};
57
58extern void kbSetPolyProcs(kbPolyProcs_pt procs,
59                           // should be rGetOrderType(r), unless you
60                           // know better (e.g., for syz or schreyer
61                           // ordering, or if you know that components
62                           // are not involved)
63                           ring r,
64                           rOrderType_t ot = rOrderType_General,
65                           BOOLEAN homog = FALSE);
66
67#endif /* KBPOLYPROCS_H */
Note: See TracBrowser for help on using the repository browser.