My Project
Loading...
Searching...
No Matches
Enumerations | Functions
walkMain.h File Reference
#include "misc/intvec.h"
#include "misc/int64vec.h"

Go to the source code of this file.

Enumerations

enum  WalkState {
  WalkNoIdeal , WalkIncompatibleRings , WalkIntvecProblem , WalkOverFlowError ,
  WalkIncompatibleDestRing , WalkIncompatibleSourceRing , WalkOk
}
 

Functions

WalkState walkstep64 (ideal &G, int64vec *currw, int step)
 
WalkState walk64 (ideal I, int64vec *currw64, ring destRing, int64vec *destVec64, ideal &destIdeal, BOOLEAN sourceIsSB=FALSE)
 
WalkState fractalWalk64 (ideal sourceIdeal, ring destRing, ideal &destIdeal, BOOLEAN sourceIsSB, BOOLEAN unperturbedStartVectorStrategy)
 
WalkState unperturbedFirstStep64 (ideal &G, int64vec *currw64, ring destRing)
 

Enumeration Type Documentation

◆ WalkState

Enumerator
WalkNoIdeal 
WalkIncompatibleRings 
WalkIntvecProblem 
WalkOverFlowError 
WalkIncompatibleDestRing 
WalkIncompatibleSourceRing 
WalkOk 

Definition at line 7 of file walkMain.h.

7 {
12 /*
13 these could be defined to make error management more elegant
14 WalkOverFlowError1,
15 WalkOverFlowError2,
16 WalkOverFlowError3,
17 WalkOverFlowError4,
18 WalkOverFlowError5,
19 WalkOverFlowError6,
20 WalkOverFlowError7,
21 WalkOverFlowError8,
22 WalkOverFlowError9,
23 WalkOverFlowError10,
24 WalkOverFlowError11,
25 WalkOverFlowError12,
26 WalkOverFlowError13,
27 */
30 WalkOk
31
32};
@ WalkIncompatibleDestRing
Definition walkMain.h:28
@ WalkIntvecProblem
Definition walkMain.h:10
@ WalkIncompatibleRings
Definition walkMain.h:9
@ WalkOverFlowError
Definition walkMain.h:11
@ WalkOk
Definition walkMain.h:30
@ WalkNoIdeal
Definition walkMain.h:8
@ WalkIncompatibleSourceRing
Definition walkMain.h:29

Function Documentation

◆ fractalWalk64()

WalkState fractalWalk64 ( ideal  sourceIdeal,
ring  destRing,
ideal destIdeal,
BOOLEAN  sourceIsSB,
BOOLEAN  unperturbedStartVectorStrategy 
)

Definition at line 614 of file walkMain.cc.

617{
618
619 overflow_error=FALSE; //global
620 WalkState state=WalkOk;
623
625 ideal G;
626
627 if(!sourceIsSB)
628 {
630 }
631
632 else
633 {
635 }
636
637 SI_RESTORE_OPT(save1,save2); //switches REDSB off
638
639 //matrices for the orders of the rings
642
643 int64vec* currw64=getNthRow64(currMat,1); //start vector
644
647 delete currMat;
648
649 state=fractalRec64(G,currw64,destMat,1,1);
650 if(state==WalkOk)
651 destIdeal=G;
652
654 state=WalkOverFlowError;
655
656 delete currw64;
657 delete destMat;
658 return state;
659}
#define FALSE
Definition auxiliary.h:96
ideal idCopy(ideal A)
Definition ideals.h:60
STATIC_VAR TreeM * G
Definition janet.cc:31
VAR unsigned si_opt_1
Definition options.c:5
#define SI_SAVE_OPT(A, B)
Definition options.h:20
#define OPT_REDTAIL
Definition options.h:91
#define OPT_REDSB
Definition options.h:76
#define Sy_bit(x)
Definition options.h:31
#define SI_RESTORE_OPT(A, B)
Definition options.h:23
VAR ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
Definition polys.cc:13
#define BITSET
Definition structs.h:16
VAR int overflow_error
Definition walkMain.cc:37
WalkState firstFractalWalkStep64(ideal &G, int64vec *&currw64, intvec *currMat, ring destRing, BOOLEAN unperturbedStartVectorStrategy)
Definition walkMain.cc:311
WalkState fractalRec64(ideal &G, int64vec *currw64, intvec *destMat, int level, int step)
Definition walkMain.cc:434
WalkState
Definition walkMain.h:7
int64vec * rGetGlobalOrderMatrix(ring r)
intvec * int64VecToIntVec(int64vec *source)
int64vec * getNthRow64(intvec *v, int n)
ideal idInterRed(ideal G)
ideal idStd(ideal G)

◆ unperturbedFirstStep64()

WalkState unperturbedFirstStep64 ( ideal G,
int64vec currw64,
ring  destRing 
)

Definition at line 358 of file walkMain.cc.

359{
360 WalkState state=WalkOk;
361 /* OLDRING **************************************************** */
362 ideal nextG;
365
367 {
370 /* NEWRING **************************************************** */
374
376
377 //turn off bucket representation of polynomials and on redSB
378 //si_opt_1|=Sy_bit(OPT_NOT_BUCKETS);
380
382
383 //turn on bucket representation of polynomials and off redSB
385
388 idDelete(&newGw);
389
391
393
394 matrix resMat=mp_Mult(nextGmat,L,rnew);
396 idDelete((ideal *)&L);
397
398 nextG=(ideal)resMat;
399
403 }
404 else
405 {
411 }
412
413 G=nextG;
414 return(state);
415}
#define idDelete(H)
delete an ideal
Definition ideals.h:29
#define idTest(id)
Definition ideals.h:47
matrix mp_Mult(matrix a, matrix b, const ring R)
Definition matpol.cc:206
ip_smatrix * matrix
Definition matpol.h:43
void rChangeCurrRing(ring r)
Definition polys.cc:15
ideal idrMoveR(ideal &id, ring src_r, ring dest_r)
Definition prCopy.cc:248
BOOLEAN rComplete(ring r, int force)
this needs to be called whenever a new ring is created: new fields in ring are created (like VarOffse...
Definition ring.cc:3466
ring rCopy0AndAddA(const ring r, int64vec *wv64, BOOLEAN copy_qideal, BOOLEAN copy_ordering)
Definition ring.cc:1566
matrix matIdLift(ideal Gomega, ideal M)
BOOLEAN currwOnBorder64(ideal G, int64vec *currw64)
ideal init64(ideal G, int64vec *currw64)

◆ walk64()

WalkState walk64 ( ideal  I,
int64vec currw64,
ring  destRing,
int64vec destVec64,
ideal destIdeal,
BOOLEAN  sourceIsSB = FALSE 
)

Definition at line 222 of file walkMain.cc.

224{
225 //some initializations
226 WalkState state=WalkOk;
229
232 int step=0;
233 ideal G=I;
234
236 if(!sourceIsSB)
237 {
238 ideal GG=idStd(G);
239 idDelete(&G); G=GG;
240 }
241 else
242 G=idInterRed(G);
244
245 ideal nextG;
247 nextG=G;
248
250 {
251 state=WalkOverFlowError;
252 return(state);
253 }
254
256 //int64vec* nexttvec64=nextt64(nextG,currw64,destVec64);
258
259 //while(0<t<=1) ( t=((*nexttvec64)[0])/((*nexttvec64)[1]) )
260 //while( (*nexttvec64)[0]<=(*nexttvec64)[1] ) {
261 while (nexttvec0<=nexttvec1 )
262 {
263 step=step+1;
264
265 //int64vec *tt=nextw64(currw64,destVec64,nexttvec64);
267 delete currw64; currw64=tt; tt=NULL;
268
269 if (TEST_OPT_PROT)
270 {
271 PrintS("walk step:"); currw64->show(); PrintLn();
272 }
273
274 state=walkStep64(nextG,currw64);
275 //uppdates nextG if all is OK
276
278 return(WalkOverFlowError);
279
280 //delete nexttvec64;
281 //nexttvec64=nextt64(nextG,currw64,destVec64);
283
284 }
285
287 return(state);
288}
long int64
Definition auxiliary.h:68
const CanonicalForm & GG
Definition cfModGcd.cc:4084
#define NULL
Definition omList.c:12
#define TEST_OPT_PROT
Definition options.h:103
void PrintS(const char *s)
Definition reporter.cc:284
void PrintLn()
Definition reporter.cc:310
WalkState firstWalkStep64(ideal &G, int64vec *currw64, ring destRing)
Definition walkMain.cc:69
WalkState walkStep64(ideal &G, int64vec *currw64)
Definition walkMain.cc:148
void nextt64(ideal G, int64vec *currw64, int64vec *targw64, int64 &tvec0, int64 &tvec1)
int64vec * nextw64(int64vec *currw, int64vec *targw, int64 nexttvec0, int64 nexttvec1)
ideal sortRedSB(ideal G)

◆ walkstep64()

WalkState walkstep64 ( ideal G,
int64vec currw,
int  step 
)