My Project
Loading...
Searching...
No Matches
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"
15
16/* MACROS */
17
18/* the part, related to the interface */
19
20/* ring nc_rCreateNCcomm(ring r); */
21
22void pLcmRat(poly a, poly b, poly m, int rat_shift);
23
24poly p_HeadRat(poly p, int ishift, ring r);
25
26void p_ExpVectorDiffRat(poly pr, poly p1, poly p2, int ishift, ring r);
27
28ideal ncGCD2(poly p, poly q, ring r); // real nc stuff
29
30ideal ncGCD(poly p, poly q, ring r); // for p,q from a commutative ring
31
32poly nc_rat_CreateSpoly(poly p1, poly p2, int ishift, ring r);
33
34poly 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
100BOOLEAN 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*/
107int redRat (poly* h,poly *reducer, int *red_length,int rl, int ishift, ring r);
108
109// Content stuff
110static inline void pContentRat(poly &ph, const ring r = currRing){ p_ContentRat(ph, r); } ;
111
112BOOLEAN p_LmIsConstantRat(const poly p, const ring r);
113
114BOOLEAN p_LmIsConstantCompRat(const poly p, const ring r);
115
116#endif /* HAVE_PLURAL */
117#endif
int BOOLEAN
Definition: auxiliary.h:87
int m
Definition: cfEzgcd.cc:128
int p
Definition: cfModGcd.cc:4078
CanonicalForm b
Definition: cfModGcd.cc:4103
STATIC_VAR Poly * h
Definition: janet.cc:971
void p_ContentRat(poly &ph, const ring r)
Definition: p_polys.cc:1744
VAR ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
Definition: polys.cc:13
BOOLEAN p_DivisibleByRat(poly a, poly b, int ishift, const ring r)
Definition: ratgring.cc:569
poly nc_rat_ReduceSpolyNew(poly p1, poly p2, int ishift, ring r)
Definition: ratgring.cc:465
BOOLEAN p_LmIsConstantCompRat(const poly p, const ring r)
Definition: ratgring.cc:651
BOOLEAN p_LmIsConstantRat(const poly p, const ring r)
Definition: ratgring.cc:642
void pLcmRat(poly a, poly b, poly m, int rat_shift)
Definition: ratgring.cc:30
poly p_HeadRat(poly p, int ishift, ring r)
Definition: ratgring.cc:64
void p_ExpVectorDiffRat(poly pr, poly p1, poly p2, int ishift, ring r)
Definition: ratgring.cc:81
ideal ncGCD2(poly p, poly q, ring r)
Definition: ratgring.cc:112
ideal ncGCD(poly p, poly q, ring r)
Definition: ratgring.cc:160
static void pContentRat(poly &ph, const ring r=currRing)
Definition: ratgring.h:110
int redRat(poly *h, poly *reducer, int *red_length, int rl, int ishift, ring r)
Definition: ratgring.cc:593
poly nc_rat_CreateSpoly(poly p1, poly p2, int ishift, ring r)
Definition: ratgring.cc:340