source: git/kernel/ratgring.h @ fec53d

fieker-DuValspielwiese
Last change on this file since fec53d was 599326, checked in by Kai Krüger <krueger@…>, 14 years ago
Anne, Kai, Frank: - changes to #include "..." statements to allow cleaner build structure - affected directories: omalloc, kernel, Singular - not yet done: IntergerProgramming git-svn-id: file:///usr/local/Singular/svn/trunk@13032 2c84dea3-7e68-4137-9b89-c4e89433aadc
  • Property mode set to 100644
File size: 3.8 KB
Line 
1#ifndef RATGRING_H
2#define RATGRING_H
3/****************************************
4*  Computer Algebra System SINGULAR     *
5****************************************/
6/* $Id$ */
7/*
8* ABSTRACT additional defines etc for --with-plural
9*/
10// #define HAVE_RATGRING to activate
11
12#ifdef HAVE_RATGRING
13#include <kernel/structs.h>
14#include <kernel/gring.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_LcmRat(const poly a, const poly b, const long lCompM, const ring r);
25
26poly p_GetCoeffRat(poly p, int ishift, ring r);
27
28poly p_HeadRat(poly p, int ishift, ring r);
29
30void p_LmDeleteAndNextRat(poly *p, int ishift, ring r);
31
32void p_ExpVectorDiffRat(poly pr, poly p1, poly p2, int ishift, ring r);
33
34ideal ncGCD2(poly p, poly q, ring r); // real nc stuff
35
36ideal ncGCD(poly p, poly q, ring r); // for p,q from a commutative ring
37
38poly nc_rat_CreateSpoly(poly p1, poly p2, int ishift, ring r);
39
40poly nc_rat_ReduceSpolyNew(poly p1, poly p2, int ishift, ring r);
41
42
43/* poly functions defined in p_Procs : */
44// poly nc_pp_Mult_mm(poly p, poly m, const ring r, poly &last);
45// poly nc_p_Mult_mm(poly p, const poly m, const ring r);
46// poly nc_p_Minus_mm_Mult_qq(poly p, const poly m, poly q, const ring r);
47// poly nc_p_Minus_mm_Mult_qq_ign(poly p, const poly m, poly q, int & d1, poly d2, const ring ri, poly &d3);
48
49/* other routines we need in addition : */
50// poly nc_p_Mult_mm_Common(poly p, const poly m, int side, const ring r);
51// poly nc_mm_Mult_p(const poly m, poly p, const ring r);
52// poly nc_mm_Mult_nn (int *F, int *G, const ring r);
53// poly nc_mm_Mult_uu (int *F,int jG,int bG, const ring r);
54
55// /* subst: */
56// poly nc_pSubst(poly p, int n, poly e);
57
58// /* copy : */
59// poly nc_p_CopyGet(poly a, const ring r);
60// poly nc_p_CopyPut(poly a, const ring r);
61
62// /* syzygies : */
63// /* former nc_spGSpolyCreate */
64// poly nc_CreateSpoly(poly p1, poly p2, poly spNoether, const ring r);
65// /* former nc_spGSpolyRed */
66// poly nc_ReduceSpoly(poly p1, poly p2, poly spNoether, const ring r);
67// /* former nc_spGSpolyRedNew */
68// poly nc_ReduceSpolyNew(poly p1, poly p2, poly spNoether, const ring r);
69// /* former nc_spGSpolyRedTail */
70// void nc_ReduceSpolyTail(poly p1, poly q, poly q2, poly spNoether, const ring r);
71// /* former nc_spShort */
72// poly nc_CreateShortSpoly(poly p1, poly p2, const ring r=currRing);
73
74// ideal gr_bba (ideal F, ideal Q,kStrategy strat);
75
76// /* brackets: */
77// poly nc_p_Bracket_qq(poly p, poly q);
78// poly nc_mm_Bracket_nn(poly m1, poly m2);
79
80// /* twostd: */
81// ideal twostd(ideal I);
82// /* Ann: */
83// ideal Approx_Step(ideal L);
84
85// /* complete reduction routines */
86
87// /* void nc_kBucketPolyRed(kBucket_pt b, poly p); */
88// void nc_kBucketPolyRed(kBucket_pt b, poly p, number *c);
89// void nc_kBucketPolyRed_Z(kBucket_pt b, poly p, number *c);
90// void nc_PolyPolyRed(poly &b, poly p, number *c);
91
92// matrix nc_PrintMat(int a, int b, ring r, int metric);
93
94// poly p_CopyEmbed(poly p, ring srcRing, int shift, int par_shift);
95// poly pOppose(ring Rop, poly p);
96// ideal idOppose(ring Rop, ideal I);
97
98// #else
99// /* dummy definition to make gcc happy */
100// #define nc_kBucketPolyRed(A,B,C) 0
101// #define nc_PolyPolyRed(A,B,C) 0
102
103// return: FALSE, if there exists i in ishift..r->N,
104//                 such that a->exp[i] > b->exp[i]
105//         TRUE, otherwise
106BOOLEAN p_DivisibleByRat(poly a, poly b, int ishift, const ring r);
107
108/*2
109*reduces h with elements from reducer choosing the best possible
110* element in t with respect to the given red_length
111* arrays reducer and red_length are [0..(rl-1)]
112*/
113int redRat (poly* h,poly *reducer, int *red_length,int rl, int ishift, ring r);
114
115// Content stuff
116
117void pContentRat(poly &ph);
118
119BOOLEAN p_LmIsConstantRat(const poly p, const ring r);
120
121BOOLEAN p_LmIsConstantCompRat(const poly p, const ring r);
122
123#endif /* HAVE_PLURAL */
124#endif
Note: See TracBrowser for help on using the repository browser.