source: git/kernel/gring.h @ b39bc1f

spielwiese
Last change on this file since b39bc1f was b39bc1f, checked in by Viktor Levandovskyy <levandov@…>, 20 years ago
*levandov: new commands oppose, opposite and envelope are available git-svn-id: file:///usr/local/Singular/svn/trunk@7578 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.9 2004-10-18 18:57:06 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_InitMultiplication(ring r);
21BOOLEAN rIsLikeOpposite(ring rBase, ring rCandidate);
22
23ring nc_rCreateNCcomm(ring r);
24void ncKill(ring r);
25void ncCleanUp(ring r); /* smaller than kill */
26
27/* poly functions defined in p_Procs : */
28poly nc_pp_Mult_mm(poly p, poly m, const ring r, poly &last);
29poly nc_p_Mult_mm(poly p, poly m, const ring r);
30poly nc_p_Minus_mm_Mult_qq(poly p, const poly m, poly q, const ring r);
31/* other routines we need in addition : */
32poly nc_p_Mult_mm_Common(poly p, const poly m, int side, const ring r);
33poly nc_mm_Mult_p(const poly m, poly p, const ring r);
34poly nc_mm_Mult_nn (int *F, int *G, const ring r); 
35poly nc_mm_Mult_uu (int *F,int jG,int bG, const ring r);
36
37/* #define nc_uu_Mult_ww nc_uu_Mult_ww_vert */
38poly nc_uu_Mult_ww (int i, int a, int j, int b, const ring r);
39/* poly nc_uu_Mult_ww_vert (int i, int a, int j, int b, const ring r); */
40/* poly nc_uu_Mult_ww_horvert (int i, int a, int j, int b, const ring r); */
41/* poly nc_uu_Mult_ww_hvdiag (int i, int a, int j, int b, const ring r); */
42/* not written yet */
43
44poly _nc_p_Mult_q(poly p, poly q, const int copy, const ring r);
45
46/* subst: */
47poly nc_pSubst(poly p, int n, poly e);
48
49/* copy : */
50poly nc_p_CopyGet(poly a, const ring r);
51poly nc_p_CopyPut(poly a, const ring r);
52
53/* syzygies : */
54/* former nc_spGSpolyCreate */
55poly nc_CreateSpoly(poly p1, poly p2, poly spNoether, const ring r);
56/* former nc_spGSpolyRed */
57poly nc_ReduceSpoly(poly p1, poly p2, poly spNoether, const ring r);
58/* former nc_spGSpolyRedNew */
59poly nc_ReduceSpolyNew(poly p1, poly p2, poly spNoether, const ring r);
60/* former nc_spGSpolyRedTail */
61void nc_ReduceSpolyTail(poly p1, poly q, poly q2, poly spNoether, const ring r);
62/* former nc_spShort */
63poly nc_CreateShortSpoly(poly p1, poly p2, const ring r=currRing);
64
65ideal gr_bba (ideal F, ideal Q,kStrategy strat);
66
67/* brackets: */
68poly nc_p_Bracket_qq(poly p, poly q);
69poly nc_mm_Bracket_nn(poly m1, poly m2);
70
71/* twostd: */
72ideal twostd(ideal I);
73/* Ann: */
74ideal Approx_Step(ideal L);
75
76/* complete reduction routines */
77
78/* void nc_kBucketPolyRed(kBucket_pt b, poly p); */
79void nc_kBucketPolyRed(kBucket_pt b, poly p, number *c);
80void nc_PolyPolyRed(poly &b, poly p, number *c);
81
82matrix nc_PrintMat(int a, int b, ring r, int metric);
83
84int nc_CheckSubalgebra(poly PolyVar, ring r);
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.