source: git/kernel/gring.h @ 6b9532

spielwiese
Last change on this file since 6b9532 was e5fc4d4, checked in by Viktor Levandovskyy <levandov@…>, 19 years ago
*levandov: big update - in idElimination, the ordering check introduced, minor fixes throughout the code git-svn-id: file:///usr/local/Singular/svn/trunk@7888 2c84dea3-7e68-4137-9b89-c4e89433aadc
  • Property mode set to 100644
File size: 3.1 KB
Line 
1#ifndef GRING_H
2#define GRING_H
3/****************************************
4*  Computer Algebra System SINGULAR     *
5****************************************/
6/* $Id: gring.h,v 1.11 2005-04-22 18:09:42 levandov Exp $ */
7/*
8* ABSTRACT additional defines etc for --with-plural
9*/
10
11#ifdef HAVE_PLURAL
12#include "structs.h"
13
14/* MACROS */
15
16#define UPMATELEM(i,j,nVar) ( (nVar * ((i)-1) - ((i) * ((i)-1))/2 + (j)-1)-(i) )
17
18/* the part, related to the interface */ 
19BOOLEAN nc_CallPlural(matrix CC, matrix DD, poly CN, poly DN, ring r);
20BOOLEAN nc_CheckOrdCondition(matrix D, ring r);
21BOOLEAN nc_CheckSubalgebra(poly PolyVar, ring r);
22BOOLEAN nc_InitMultiplication(ring r);
23BOOLEAN rIsLikeOpposite(ring rBase, ring rCandidate);
24
25ring nc_rCreateNCcomm(ring r);
26void ncKill(ring r);
27void ncCleanUp(ring r); /* smaller than kill */
28
29/* poly functions defined in p_Procs : */
30poly nc_pp_Mult_mm(poly p, poly m, const ring r, poly &last);
31poly nc_p_Mult_mm(poly p, poly m, const ring r);
32poly nc_p_Minus_mm_Mult_qq(poly p, const poly m, poly q, const ring r);
33/* other routines we need in addition : */
34poly nc_p_Mult_mm_Common(poly p, const poly m, int side, const ring r);
35poly nc_mm_Mult_p(const poly m, poly p, const ring r);
36poly nc_mm_Mult_nn (int *F, int *G, const ring r); 
37poly nc_mm_Mult_uu (int *F,int jG,int bG, const ring r);
38
39/* #define nc_uu_Mult_ww nc_uu_Mult_ww_vert */
40poly nc_uu_Mult_ww (int i, int a, int j, int b, const ring r);
41/* poly nc_uu_Mult_ww_vert (int i, int a, int j, int b, const ring r); */
42/* poly nc_uu_Mult_ww_horvert (int i, int a, int j, int b, const ring r); */
43/* poly nc_uu_Mult_ww_hvdiag (int i, int a, int j, int b, const ring r); */
44/* not written yet */
45
46poly _nc_p_Mult_q(poly p, poly q, const int copy, const ring r);
47
48/* subst: */
49poly nc_pSubst(poly p, int n, poly e);
50
51/* copy : */
52poly nc_p_CopyGet(poly a, const ring r);
53poly nc_p_CopyPut(poly a, const ring r);
54
55/* syzygies : */
56/* former nc_spGSpolyCreate */
57poly nc_CreateSpoly(poly p1, poly p2, poly spNoether, const ring r);
58/* former nc_spGSpolyRed */
59poly nc_ReduceSpoly(poly p1, poly p2, poly spNoether, const ring r);
60/* former nc_spGSpolyRedNew */
61poly nc_ReduceSpolyNew(poly p1, poly p2, poly spNoether, const ring r);
62/* former nc_spGSpolyRedTail */
63void nc_ReduceSpolyTail(poly p1, poly q, poly q2, poly spNoether, const ring r);
64/* former nc_spShort */
65poly nc_CreateShortSpoly(poly p1, poly p2, const ring r=currRing);
66
67ideal gr_bba (ideal F, ideal Q,kStrategy strat);
68
69/* brackets: */
70poly nc_p_Bracket_qq(poly p, poly q);
71poly nc_mm_Bracket_nn(poly m1, poly m2);
72
73/* twostd: */
74ideal twostd(ideal I);
75/* Ann: */
76ideal Approx_Step(ideal L);
77
78/* complete reduction routines */
79
80/* void nc_kBucketPolyRed(kBucket_pt b, poly p); */
81void nc_kBucketPolyRed(kBucket_pt b, poly p, number *c);
82void nc_PolyPolyRed(poly &b, poly p, number *c);
83
84matrix nc_PrintMat(int a, int b, ring r, int metric);
85
86poly p_CopyEmbed(poly p, ring srcRing, int shift, int par_shift);
87poly pOppose(ring Rop, poly p);
88ideal idOppose(ring Rop, ideal I);
89
90#else
91/* dummy definition to make gcc happy */
92#define nc_kBucketPolyRed(A,B,C) 0
93#define nc_PolyPolyRed(A,B,C) 0
94
95#endif /* HAVE_PLURAL */
96#endif
97
Note: See TracBrowser for help on using the repository browser.