source: git/kernel/gring.h @ 1d138c

fieker-DuValspielwiese
Last change on this file since 1d138c was 9306b5d, checked in by Hans Schönemann <hannes@…>, 18 years ago
*hannes: avoid some PLURAL tests git-svn-id: file:///usr/local/Singular/svn/trunk@9254 2c84dea3-7e68-4137-9b89-c4e89433aadc
  • Property mode set to 100644
File size: 3.3 KB
Line 
1#ifndef GRING_H
2#define GRING_H
3/****************************************
4*  Computer Algebra System SINGULAR     *
5****************************************/
6/* $Id: gring.h,v 1.14 2006-06-22 12:08:58 Singular 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, const poly m, const ring r);
32poly nc_p_Minus_mm_Mult_qq(poly p, const poly m, poly q, const ring r);
33poly nc_p_Minus_mm_Mult_qq_ign(poly p, const poly m, poly q, int & d1, poly d2, const ring ri, poly &d3);
34/* other routines we need in addition : */
35poly nc_p_Mult_mm_Common(poly p, const poly m, int side, const ring r);
36poly nc_mm_Mult_p(const poly m, poly p, const ring r);
37poly nc_mm_Mult_nn (int *F, int *G, const ring r); 
38poly nc_mm_Mult_uu (int *F,int jG,int bG, const ring r);
39
40/* #define nc_uu_Mult_ww nc_uu_Mult_ww_vert */
41poly nc_uu_Mult_ww (int i, int a, int j, int b, const ring r);
42/* poly nc_uu_Mult_ww_vert (int i, int a, int j, int b, const ring r); */
43/* poly nc_uu_Mult_ww_horvert (int i, int a, int j, int b, const ring r); */
44/* poly nc_uu_Mult_ww_hvdiag (int i, int a, int j, int b, const ring r); */
45/* not written yet */
46
47poly _nc_p_Mult_q(poly p, poly q, const int copy, const ring r);
48
49/* subst: */
50poly nc_pSubst(poly p, int n, poly e);
51
52/* copy : */
53poly nc_p_CopyGet(poly a, const ring r);
54poly nc_p_CopyPut(poly a, const ring r);
55
56/* syzygies : */
57/* former nc_spGSpolyCreate */
58poly nc_CreateSpoly(poly p1, poly p2, poly spNoether, const ring r);
59/* former nc_spGSpolyRed */
60poly nc_ReduceSpoly(poly p1, poly p2, poly spNoether, const ring r);
61/* former nc_spGSpolyRedNew */
62poly nc_ReduceSpolyNew(poly p1, poly p2, poly spNoether, const ring r);
63/* former nc_spGSpolyRedTail */
64void nc_ReduceSpolyTail(poly p1, poly q, poly q2, poly spNoether, const ring r);
65/* former nc_spShort */
66poly nc_CreateShortSpoly(poly p1, poly p2, const ring r=currRing);
67
68ideal gr_bba (ideal F, ideal Q,kStrategy strat);
69
70/* brackets: */
71poly nc_p_Bracket_qq(poly p, poly q);
72poly nc_mm_Bracket_nn(poly m1, poly m2);
73
74/* twostd: */
75ideal twostd(ideal I);
76/* Ann: */
77ideal Approx_Step(ideal L);
78
79/* complete reduction routines */
80
81/* void nc_kBucketPolyRed(kBucket_pt b, poly p); */
82void nc_kBucketPolyRed(kBucket_pt b, poly p, number *c);
83void nc_kBucketPolyRed_Z(kBucket_pt b, poly p, number *c);
84void nc_PolyPolyRed(poly &b, poly p, number *c);
85
86matrix nc_PrintMat(int a, int b, ring r, int metric);
87
88poly p_CopyEmbed(poly p, ring srcRing, int shift, int par_shift);
89poly pOppose(ring Rop, poly p);
90ideal 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#endif /* HAVE_PLURAL */
98#endif
99
Note: See TracBrowser for help on using the repository browser.