source: git/Singular/walk.h @ 50cbdc

spielwiese
Last change on this file since 50cbdc was 50cbdc, checked in by Hans Schönemann <hannes@…>, 23 years ago
*hannes: merge-2-0-2 git-svn-id: file:///usr/local/Singular/svn/trunk@5619 2c84dea3-7e68-4137-9b89-c4e89433aadc
  • Property mode set to 100644
File size: 6.2 KB
Line 
1/*****************************************
2*  Computer Algebra System SINGULAR      *
3*****************************************/
4/* $Id: walk.h,v 1.4 2001-08-27 14:47:45 Singular Exp $ */
5/*
6* ABSTRACT: Declaration of the Groebner walk
7*/
8
9#ifndef WALK_H
10#define WALK_H
11
12#include "mod2.h"
13#include "structs.h"
14
15//////////////////////////////////////////////////////////////////////
16//////////////////////////////////////////////////////////////////////
17//
18// IMPORTANT:
19// The following routines assume that pGetOrder(p) yields the scalar
20// product of the first row of the order matrix with the exponent
21// vector of p
22// Remark: This is true for all degree orderings (like dp) and block
23// orderings (like a(...),lp) BUT NOT FOR lp!!!
24//
25//////////////////////////////////////////////////////////////////////
26//////////////////////////////////////////////////////////////////////
27
28
29
30//////////////////////////////////////////////////////////////////////
31//
32// walkNextWeight
33// Returns : weight vector for next step in Groebner walk, if exists
34//           (int) 1, if next weight vector is target_weight
35//           (int) 0, if no next weight vectro exist
36
37
38// assumes that curr_weight is first row of order matrix
39//intvec* walkNextWeight(intvec* curr_weight, intvec* target_weight, ideal G);
40
41//intvec* MwalkNextWeight(intvec* curr_weight, intvec* target_weight, ideal G);
42// assume curr_weight and target_weight are arrays of length
43// currRing->N storing current and target weight
44
45//////////////////////////////////////////////////////////////////////
46//
47// walkInitials
48// assume polys of G are ordererd decreasingly w.r.t. curr_weight
49// returns ideal consisting of leading (w.r.t. curr_weight) monomials
50//ideal walkInitials(ideal G);
51
52//intvec* walkAddIntVec(intvec* v1, intvec* v2);
53
54//int MwalkWeightDegree(poly p, intvec* weight_vector);
55
56//poly MpolyInitialForm(poly g, intvec* curr_weight);
57
58ideal  MwalkInitialForm(ideal G, intvec* curr_weight);
59
60//poly MOrderedPoly(poly p, intvec* curr_weight);
61
62//compute the next weight vector
63intvec* MwalkNextWeight(intvec* curr_weight,intvec* target_weight, ideal G);
64//intvec* MwalkNextWeightZ(intvec* curr_weight);
65//return lead exponent of the polynomial f
66//intvec* MExpPol(poly f);//11.02
67
68//return the product  of two intvecs
69//intvec* MivMult(intvec* a, intvec* b); //11.02
70intvec* Mivdp(int n);
71intvec* Mivlp(int n);
72intvec* Mivdp0(int n);
73//intvec* MivUnit(int n);
74poly MivSame(intvec* u , intvec* v);
75poly M3ivSame(intvec* next_weight, intvec* u , intvec* v);
76/***********************
77 *  create a new ring  *
78 ***********************/
79//5.12 ring MNextRing(intvec* new_weight_vector);
80
81//ring MNextRing(ring startRing, intvec* new_weight_vector);
82char* MNextRingStringC(ring startRing, intvec* new_weight_vector); 
83
84// compute an intermediate Groebner basis
85//ideal MwalkStep(ideal G,intvec* origin_weight, intvec* curr_weight, intvec* weight_order);
86
87//ideal MwalkStep(ideal G, intvec* curr_weight, ring NRing);
88
89// compute a Groebner basis of an ideal G w.r.t. lexicographic order
90//ideal Mwalk(ideal G, intvec* curr_weight, intvec* target_weight);
91
92//compute the division of two monoms
93//poly MpDiv(poly a, poly b);
94
95//compute the multiplication of two monoms
96//poly MpMult(poly a, poly b);
97
98//compare a intvec to intvec NULL
99//int Mivcomp(intvec* op);
100
101//define a monomial which exponent is intvec iv
102poly MPolVar(intvec* iv); 
103
104
105//int* MExpSub(int* i1, int*i2);
106
107//int* Mleadexp(poly f);
108
109//compute the multiplikation of two ideals by "elementweise"
110ideal MidMultLift(ideal A, ideal B);   
111
112//poly maIMap(ring r, poly h);
113
114//compute a Groebner basis of an ideal G
115ideal Mstd(ideal G); 
116ideal Mstdhom(ideal G); 
117//compute a reduced Groebner basis of a Groebner basis G
118ideal MkInterRed(ideal G); 
119ideal MidMinBase(ideal G);
120/********** Perturbation Walk ******************/
121/*****************************************************************************
122* compute an ordering matrix of the basering ordering.                       *
123* if the basering ordering is a block order, then its weight vector must be  *
124*    entered as the input this programm, otherwise the input is arbitrary    *
125*    integer weight vector which its size is the numbers of variables.       *
126******************************************************************************/
127
128intvec* MivMatrixOrder(intvec* iv); 
129intvec* MivMatrixOrderdp(int iv); 
130intvec* MPertVectors(ideal G, intvec* ivtarget, int pdeg); 
131intvec* MPertVectorslp(ideal G, intvec* ivtarget, int pdeg); 
132//ideal pwalk(ideal G, intvec* delta, intvec* teta, int op_deg, int tp_deg);
133
134/**** Fractal Walk *****/
135intvec* MivMatrixOrderlp(int nV);
136
137intvec* Mfpertvector(ideal G, intvec* iv); 
138intvec* MivUnit(int nV);
139/*
140//ideal MFractalWalkR(ideal G, int nlev, intvec* sigma, intvec* tau, int step);
141ideal MFractalWalkR(ideal G, int nlev, intvec* tau, int step);
142ideal MFractalWalk(ideal I, intvec* ivstart);
143poly Mpsimple(poly p);
144poly Mpofid(ideal H);
145
146intvec* MivMatrixOrderlp(int n);
147*/
148intvec* MivWeightOrderlp(intvec* ivstart); 
149intvec* MivWeightOrderdp(intvec* ivstart); 
150//ideal Mimap(ring oldRing, ideal G);
151
152ideal MidLift(ideal Gomega, ideal M); 
153ideal MLiftLmalG(ideal L, ideal G);
154ideal MLiftLmalGNew(ideal Gomega, ideal M, ideal G); 
155ideal MLiftLmalGMin(ideal L, ideal G); 
156//intvec* MwalkNextWeight(intvec* curr_weight,intvec* target_weight, ideal G);
157intvec* Mfivpert(ideal G, intvec* target, int p_deg); 
158
159
160//int MpSame(poly a, poly b); 
161//char* MidString(ideal G);
162
163
164//intvec* MwalkNextWeightZ(intvec* iv);
165//intvec* MNextWeightList(intvec* curr_weight, intvec* target_weight, ideal G);
166
167ideal MNWstdhomRed(ideal G, intvec* iv);
168poly MMinPoly(poly p, ideal G);
169ideal MMinIdeal(ideal G);
170ideal MadeLift4(ideal M, ideal pHGw, ideal Gw, ideal G);
171ideal MadeLift(ideal M, ideal Gw, ideal G);
172//poly MadepDivId(poly f, ideal Gw, ideal G);
173ideal MpHeadIdeal(ideal G);
174void* test_w_in_Cone(ideal G, intvec* iv);
175void* checkideal(ideal G);
176matrix MaMidLift(ideal Gomega, ideal M); 
177
178//ideal MNormalForm(poly f, ideal G);
179//poly MpolyConversion(poly f, ideal GW, ideal G);
180ideal MidealConversion(ideal M, ideal GW, ideal G);
181//poly MCheckpRedId(poly f, ideal G);
182poly MpReduceId(poly f, ideal G);
183//poly MpMinimId(poly f, ideal M);
184ideal MidMinimId(ideal M);
185
186
187#endif  //WALK_H
Note: See TracBrowser for help on using the repository browser.