My Project
Toggle main menu visibility
Loading...
Searching...
No Matches
kernel
GBEngine
ratgring.h
Go to the documentation of this file.
1
#ifndef RATGRING_H
2
#define RATGRING_H
3
/****************************************
4
* Computer Algebra System SINGULAR *
5
****************************************/
6
/*
7
* ABSTRACT additional defines etc for --with-plural
8
*/
9
// #define HAVE_RATGRING to activate
10
11
#ifdef HAVE_RATGRING
12
#include "
kernel/structs.h
"
13
#include "
polys/nc/nc.h
"
14
#include "
polys/monomials/p_polys.h
"
15
16
/* MACROS */
17
18
/* the part, related to the interface */
19
20
/* ring nc_rCreateNCcomm(ring r); */
21
22
void
pLcmRat
(poly a, poly
b
, poly
m
,
int
rat_shift);
23
24
poly
p_HeadRat
(poly
p
,
int
ishift, ring r);
25
26
void
p_ExpVectorDiffRat
(poly pr, poly p1, poly p2,
int
ishift, ring r);
27
28
ideal
ncGCD2
(poly
p
, poly q, ring r);
// real nc stuff
29
30
ideal
ncGCD
(poly
p
, poly q, ring r);
// for p,q from a commutative ring
31
32
poly
nc_rat_CreateSpoly
(poly p1, poly p2,
int
ishift, ring r);
33
34
poly
nc_rat_ReduceSpolyNew
(poly p1, poly p2,
int
ishift, ring r);
35
36
37
/* poly functions defined in p_Procs : */
38
// poly nc_pp_Mult_mm(poly p, poly m, const ring r, poly &last);
39
// poly nc_p_Mult_mm(poly p, const poly m, const ring r);
40
// poly nc_p_Minus_mm_Mult_qq(poly p, const poly m, poly q, const ring r);
41
// poly nc_p_Minus_mm_Mult_qq_ign(poly p, const poly m, poly q, int & d1, poly d2, const ring ri, poly &d3);
42
43
/* other routines we need in addition : */
44
// poly nc_p_Mult_mm_Common(poly p, const poly m, int side, const ring r);
45
// poly nc_mm_Mult_p(const poly m, poly p, const ring r);
46
// poly nc_mm_Mult_nn (int *F, int *G, const ring r);
47
// poly nc_mm_Mult_uu (int *F,int jG,int bG, const ring r);
48
49
// /* subst: */
50
// poly nc_pSubst(poly p, int n, poly e);
51
52
// /* copy : */
53
// poly nc_p_CopyGet(poly a, const ring r);
54
// poly nc_p_CopyPut(poly a, const ring r);
55
56
// /* syzygies : */
57
// /* former nc_spGSpolyCreate */
58
// poly nc_CreateSpoly(poly p1, poly p2, poly spNoether, const ring r);
59
// /* former nc_spGSpolyRed */
60
// poly nc_ReduceSpoly(poly p1, poly p2, poly spNoether, const ring r);
61
// /* former nc_spGSpolyRedNew */
62
// poly nc_ReduceSpolyNew(poly p1, poly p2, poly spNoether, const ring r);
63
// /* former nc_spGSpolyRedTail */
64
// void nc_ReduceSpolyTail(poly p1, poly q, poly q2, poly spNoether, const ring r);
65
// /* former nc_spShort */
66
// poly nc_CreateShortSpoly(poly p1, poly p2, const ring r=currRing);
67
68
// ideal gr_bba (ideal F, ideal Q,kStrategy strat);
69
70
// /* brackets: */
71
// poly nc_p_Bracket_qq(poly p, poly q);
72
// poly nc_mm_Bracket_nn(poly m1, poly m2);
73
74
// /* twostd: */
75
// ideal twostd(ideal I);
76
// /* Ann: */
77
// ideal Approx_Step(ideal L);
78
79
// /* complete reduction routines */
80
81
// /* void nc_kBucketPolyRed(kBucket_pt b, poly p); */
82
// void nc_kBucketPolyRed(kBucket_pt b, poly p, number *c);
83
// void nc_kBucketPolyRed_Z(kBucket_pt b, poly p, number *c);
84
// void nc_PolyPolyRed(poly &b, poly p, number *c);
85
86
// matrix nc_PrintMat(int a, int b, ring r, int metric);
87
88
// poly p_CopyEmbed(poly p, ring srcRing, int shift, int par_shift);
89
// poly pOppose(ring Rop, poly p);
90
// ideal idOppose(ring Rop, ideal I);
91
92
// #else
93
// /* dummy definition to make gcc happy */
94
// #define nc_kBucketPolyRed(A,B,C) 0
95
// #define nc_PolyPolyRed(A,B,C) 0
96
97
// return: FALSE, if there exists i in ishift..r->N,
98
// such that a->exp[i] > b->exp[i]
99
// TRUE, otherwise
100
BOOLEAN
p_DivisibleByRat
(poly a, poly
b
,
int
ishift,
const
ring r);
101
102
/*2
103
*reduces h with elements from reducer choosing the best possible
104
* element in t with respect to the given red_length
105
* arrays reducer and red_length are [0..(rl-1)]
106
*/
107
int
redRat
(poly*
h
,poly *reducer,
int
*red_length,
int
rl,
int
ishift, ring r);
108
109
// Content stuff
110
static
inline
void
pContentRat
(poly &ph,
const
ring r =
currRing
){
p_ContentRat
(ph, r); } ;
111
112
BOOLEAN
p_LmIsConstantRat
(
const
poly
p
,
const
ring r);
113
114
BOOLEAN
p_LmIsConstantCompRat
(
const
poly
p
,
const
ring r);
115
116
#endif
/* HAVE_PLURAL */
117
#endif
BOOLEAN
int BOOLEAN
Definition
auxiliary.h:88
m
int m
Definition
cfEzgcd.cc:128
p
int p
Definition
cfModGcd.cc:4086
b
CanonicalForm b
Definition
cfModGcd.cc:4111
h
STATIC_VAR Poly * h
Definition
janet.cc:971
nc.h
p_ContentRat
void p_ContentRat(poly &ph, const ring r)
Definition
p_polys.cc:1748
p_polys.h
currRing
VAR ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
Definition
polys.cc:13
p_DivisibleByRat
BOOLEAN p_DivisibleByRat(poly a, poly b, int ishift, const ring r)
Definition
ratgring.cc:569
nc_rat_ReduceSpolyNew
poly nc_rat_ReduceSpolyNew(poly p1, poly p2, int ishift, ring r)
Definition
ratgring.cc:465
p_LmIsConstantCompRat
BOOLEAN p_LmIsConstantCompRat(const poly p, const ring r)
Definition
ratgring.cc:651
p_LmIsConstantRat
BOOLEAN p_LmIsConstantRat(const poly p, const ring r)
Definition
ratgring.cc:642
pLcmRat
void pLcmRat(poly a, poly b, poly m, int rat_shift)
Definition
ratgring.cc:30
p_HeadRat
poly p_HeadRat(poly p, int ishift, ring r)
Definition
ratgring.cc:64
p_ExpVectorDiffRat
void p_ExpVectorDiffRat(poly pr, poly p1, poly p2, int ishift, ring r)
Definition
ratgring.cc:81
ncGCD2
ideal ncGCD2(poly p, poly q, ring r)
Definition
ratgring.cc:112
ncGCD
ideal ncGCD(poly p, poly q, ring r)
Definition
ratgring.cc:160
pContentRat
static void pContentRat(poly &ph, const ring r=currRing)
Definition
ratgring.h:110
redRat
int redRat(poly *h, poly *reducer, int *red_length, int rl, int ishift, ring r)
Definition
ratgring.cc:593
nc_rat_CreateSpoly
poly nc_rat_CreateSpoly(poly p1, poly p2, int ishift, ring r)
Definition
ratgring.cc:340
structs.h
Generated on
for My Project by
doxygen 1.17.0
for
Singular