walk.h
Go to the documentation of this file.
1 /*****************************************
2 * Computer Algebra System SINGULAR *
3 *****************************************/
4 /*
5 * ABSTRACT: Declaration of the Groebner walk
6 */
7 
8 #ifndef WALK_H
9 #define WALK_H
10 
11 #include <kernel/structs.h>
12 
13 ideal MwalkInitialForm(ideal G, intvec* curr_weight);
14 
15 //compute the next weight vector
16 intvec* MwalkNextWeight(intvec* curr_weight,intvec* target_weight, ideal G);
17 
18 int MivSame(intvec* u , intvec* v);
19 int M3ivSame(intvec* next_weight, intvec* u , intvec* v);
20 
21 
22 
23 intvec* Mivdp(int nR);
24 intvec* Mivlp(int nR);
25 
27 intvec* MivMatrixOrderdp(int iv);
28 intvec* MPertVectors(ideal G, intvec* ivtarget, int pdeg);
29 intvec* MPertVectorslp(ideal G, intvec* ivtarget, int pdeg);
30 
31 
32 intvec* MivMatrixOrderlp(int nV);
33 
34 intvec* Mfpertvector(ideal G, intvec* iv);
35 intvec* MivUnit(int nV);
36 
37 intvec* MivWeightOrderlp(intvec* ivstart);
38 intvec* MivWeightOrderdp(intvec* ivstart);
39 
40 ideal MidLift(ideal Gomega, ideal M);
41 ideal MLiftLmalG(ideal L, ideal G);
42 ideal MLiftLmalGNew(ideal Gomega, ideal M, ideal G);
43 ideal MLiftLmalGMin(ideal L, ideal G);
44 
45 
46 intvec* MkInterRedNextWeight(intvec* iva, intvec* ivb, ideal G);
47 intvec* MPertNextWeight(intvec* iva, ideal G, int deg);
48 intvec* Mivperttarget(ideal G, int ndeg);
49 
50 
51 intvec* MSimpleIV(intvec* iv);
52 
53 /* Okt -- Nov'01 */
54 // compute a Groebner basis of an ideal G w.r.t. lexicographic order
55 //ideal Mwalk(ideal Go, intvec* orig_M, intvec* target_M);
56 ideal Mwalk(ideal Go, intvec* orig_M, intvec* target_M, ring baseRing);
57 
58 // random walk algorithm to compute a Groebner basis
59 ideal Mrwalk(ideal Go, intvec* curr_weight, intvec* target_weight, int weight_rad, int pert_deg, ring baseRing);
60 
61 /* the perturbation walk algorithm */
62 
63 ideal Mpwalk(ideal Go, int op_deg, int tp_deg,intvec* curr_weight,intvec* target_weight, int nP);
64 
65 /* the perturbation walk algorithm with random element */
66 
67 ideal Mprwalk(ideal Go, intvec* curr_weight, intvec* target_weight, int weight_rad, int op_deg, int tp_deg, ring baseRing);
68 
69 /* The fractal walk algorithm */
70 ideal Mfwalk(ideal G, intvec* ivstart, intvec* ivtarget);
71 
72 /* The fractal walk algorithm with random element */
73 ideal Mfrwalk(ideal G, intvec* ivstart, intvec* ivtarget,int weight_rad);
74 
75 /* Implement Tran's idea */
77 ideal TranMImprovwalk(ideal Go, intvec* curr_weight,intvec* target_weight, int nP);
78 
79 /* the first alternative algorithm */
80 ideal MAltwalk1(ideal G,int op,int tp,intvec* curr_weight,intvec* target_weight);
81 
82 /* the second alternative algorithm */
83 ideal MAltwalk2(ideal G, intvec* curr_weight, intvec* target_weight);
84 
85 #endif //WALK_H
intvec * Mfpertvector(ideal G, intvec *iv)
Definition: walk.cc:1492
intvec * MSimpleIV(intvec *iv)
ideal MLiftLmalGMin(ideal L, ideal G)
ideal MAltwalk2(ideal G, intvec *curr_weight, intvec *target_weight)
Definition: walk.cc:4077
ideal Mfrwalk(ideal G, intvec *ivstart, intvec *ivtarget, int weight_rad)
Definition: walk.cc:6940
intvec * MivMatrixOrderlp(int nV)
Definition: walk.cc:1381
ideal Mrwalk(ideal Go, intvec *curr_weight, intvec *target_weight, int weight_rad, int pert_deg, ring baseRing)
Definition: walk.cc:5341
static TreeM * G
Definition: janet.cc:38
ideal MidLift(ideal Gomega, ideal M)
#define M
Definition: sirandom.c:24
ideal MLiftLmalG(ideal L, ideal G)
int MivSame(intvec *u, intvec *v)
Definition: walk.cc:868
intvec * MivWeightOrderlp(intvec *ivstart)
Definition: walk.cc:1416
Definition: intvec.h:16
intvec * MwalkNextWeight(intvec *curr_weight, intvec *target_weight, ideal G)
intvec * MPertNextWeight(intvec *iva, ideal G, int deg)
intvec * MkInterRedNextWeight(intvec *iva, intvec *ivb, ideal G)
Definition: walk.cc:2248
intvec * MivMatrixOrder(intvec *iv)
Definition: walk.cc:938
ideal Mpwalk(ideal Go, int op_deg, int tp_deg, intvec *curr_weight, intvec *target_weight, int nP)
Definition: walk.cc:5752
intvec * Mivperttarget(ideal G, int ndeg)
intvec * MPertVectors(ideal G, intvec *ivtarget, int pdeg)
Definition: walk.cc:1061
ideal MAltwalk1(ideal G, int op, int tp, intvec *curr_weight, intvec *target_weight)
Definition: walk.cc:8446
intvec * MivMatrixOrderdp(int iv)
Definition: walk.cc:1397
intvec * MivUnit(int nV)
Definition: walk.cc:1476
ideal Mfwalk(ideal G, intvec *ivstart, intvec *ivtarget)
Definition: walk.cc:6814
const Variable & v
< [in] a sqrfree bivariate poly
Definition: facBivar.h:37
intvec * Mivlp(int nR)
Definition: walk.cc:995
intvec * TranMPertVectorslp(ideal G)
ideal TranMImprovwalk(ideal Go, intvec *curr_weight, intvec *target_weight, int nP)
Definition: walk.cc:7071
ideal Mprwalk(ideal Go, intvec *curr_weight, intvec *target_weight, int weight_rad, int op_deg, int tp_deg, ring baseRing)
Definition: walk.cc:8246
ideal MLiftLmalGNew(ideal Gomega, ideal M, ideal G)
int M3ivSame(intvec *next_weight, intvec *u, intvec *v)
Definition: walk.cc:889
ideal MwalkInitialForm(ideal G, intvec *curr_weight)
Definition: walk.cc:736
intvec * Mivdp(int nR)
Definition: walk.cc:980
intvec * MivWeightOrderdp(intvec *ivstart)
Definition: walk.cc:1436
ideal Mwalk(ideal Go, intvec *orig_M, intvec *target_M, ring baseRing)
Definition: walk.cc:5067
intvec * MPertVectorslp(ideal G, intvec *ivtarget, int pdeg)
Definition: walk.cc:1279