syz.h
Go to the documentation of this file.
1 #ifndef SYZ_H
2 #define SYZ_H
3 /****************************************
4 * Computer Algebra System SINGULAR *
5 ****************************************/
6 /*
7 * ABSTRACT: Resolutions
8 */
9 #include <misc/mylimits.h>
10 #include <kernel/structs.h>
11 #include <polys/monomials/ring.h>
12 #include <kernel/ideals.h>
13 
14 // Logarithm of estimate of maximal number of new components
15 #define SYZ_SHIFT_MAX_NEW_COMP_ESTIMATE 8
16 // Logarithm of "distance" between a new component and prev component
17 #define SYZ_SHIFT_BASE_LOG (BIT_SIZEOF_LONG - 1 - SYZ_SHIFT_MAX_NEW_COMP_ESTIMATE)
18 #define SYZ_SHIFT_BASE (1L << SYZ_SHIFT_BASE_LOG)
19 struct sSObject{
21  poly p1,p2; /*- the pair p comes from -*/
22  poly lcm; /*- the lcm of p1,p2 -*/
23  poly syz; /*- the syzygy associated to p1,p2 -*/
24  int ind1,ind2; /*- the indeces of p1,p2 -*/
26  int syzind;
27  int order;
28  int length;
29  int reference;
30  };
31 typedef struct sSObject SObject;
32 typedef SObject * SSet;
33 typedef SSet * SRes;
34 
36 typedef ssyStrategy * syStrategy;
38  public:
42  int ** Howmuch;
43  int ** Firstelem;
44  int ** elemLength;
47  resolvente res; //polynomial data for internal use only
48  resolvente orderedRes; //polynomial data for internal use only
49  SRes resPairs; //polynomial data for internal use only
56  ring syRing;
59  unsigned long ** sev;
60  int length;
62  short list_length;
63  short references;
64 };
65 
66 void sySchreyersSyzygiesM(polyset F,int Fmax,polyset* Shdl,int* Smax,
67  BOOLEAN noSort);
68 
69 void sySchreyersSyzygiesB(polyset F,int Fmax,polyset* Shdl,int* Smax,
70  BOOLEAN noSort);
71 
72 resolvente sySchreyerResolvente(ideal arg, int maxlength, int * length,
73  BOOLEAN isMonomial=FALSE, BOOLEAN notReplace=FALSE);
74 
75 syStrategy sySchreyer(ideal arg, int maxlength);
76 
77 resolvente syResolvente(ideal arg, int maxlength, int * length,
78  intvec *** weights, BOOLEAN minim);
79 
80 syStrategy syResolution(ideal arg, int maxlength,intvec * w, BOOLEAN minim);
81 
82 void syMinimizeResolvente(resolvente res, int length, int first);
83 
84 intvec * syBetti(resolvente res,int length, int * regularity,
85  intvec* weights=NULL,BOOLEAN tomin=TRUE, int * row_shift=NULL);
86 
87 ideal syMinBase(ideal arg);
88 
89 BOOLEAN syTestOrder(ideal i);
90 
92 
93 resolvente syLaScala1(ideal arg,int * length);
94 syStrategy syLaScala3(ideal arg,int * length);
95 
96 syStrategy syLaScala(ideal arg, int& maxlength, intvec* weights = NULL);
97 
98 syStrategy syHilb(ideal arg,int * length);
99 syStrategy syKosz(ideal arg,int * length);
100 
101 void syKillComputation(syStrategy syzstr, ring r=currRing);
102 intvec * syBettiOfComputation(syStrategy syzstr, BOOLEAN minim=TRUE,int * row_shift=NULL, intvec *weights=NULL);
103 
104 
105 int sySize(syStrategy syzstr);
106 int syDim(syStrategy syzstr);
108 void syPrint(syStrategy syzstr, const char *currRingName /* = currRingHdl->id */);
109 
112 
113 extern int * currcomponents;
114 extern long * currShiftedComponents;
115 
116 void syDeletePair(SObject * so);
117 void syInitializePair(SObject * so);
118 void syCopyPair(SObject * argso, SObject * imso);
119 void syCompactifyPairSet(SSet sPairs, int sPlength, int first);
120 void syCompactify1(SSet sPairs, int* sPlength, int first);
121 SRes syInitRes(ideal arg,int * length, intvec * Tl, intvec * cw=NULL);
122 void syResetShiftedComponents(syStrategy syzstr, int index,int hilb=0);
123 void syEnlargeFields(syStrategy syzstr,int index);
124 void syEnterPair(syStrategy syzstr, SObject * so, int * sPlength,int index);
125 SSet syChosePairs(syStrategy syzstr, int *index, int *howmuch, int * actdeg);
126 int syInitSyzMod(syStrategy syzstr, int index, int init=17);
127 long syReorderShiftedComponents(long * sc, int n);
128 void syGaussForOne(ideal arg,int gen,int ModComp,int from=-1,int till=0);
129 void syEnterPair(SSet sPairs, SObject * so, int * sPlength,int index);
130 void syEnterPair(syStrategy syzstr, SObject * so, int * sPlength,int index);
131 syStrategy syKosz(ideal arg,int * length);
132 
134  syStrategy syzstr,BOOLEAN toCopy=TRUE,resolvente totake=NULL);
136  syStrategy syzstr,BOOLEAN toCopy/*=TRUE*/,resolvente totake/*=NULL*/);
137 
138 #endif
int length
Definition: syz.h:60
poly p2
Definition: syz.h:21
intvec ** weights
Definition: syz.h:45
syStrategy syKosz(ideal arg, int *length)
Definition: syz3.cc:1765
resolvente syReorder(resolvente res, int length, syStrategy syzstr, BOOLEAN toCopy=TRUE, resolvente totake=NULL)
Definition: syz1.cc:1653
SRes syInitRes(ideal arg, int *length, intvec *Tl, intvec *cw=NULL)
Definition: syz1.cc:298
void syMinimizeResolvente(resolvente res, int length, int first)
Definition: syz.cc:360
kBucket_pt bucket
Definition: syz.h:54
Definition: syz.h:19
#define FALSE
Definition: auxiliary.h:140
int syzind
Definition: syz.h:26
poly p
Definition: syz.h:20
short references
Definition: syz.h:63
void syCompactifyPairSet(SSet sPairs, int sPlength, int first)
Definition: syz1.cc:112
intvec * betti
Definition: syz.h:53
void syGaussForOne(ideal arg, int gen, int ModComp, int from=-1, int till=0)
Definition: syz.cc:223
resolvente res
Definition: syz.h:47
#define TRUE
Definition: auxiliary.h:144
int syDim(syStrategy syzstr)
Definition: syz1.cc:1860
resolvente syLaScala1(ideal arg, int *length)
SSet syChosePairs(syStrategy syzstr, int *index, int *howmuch, int *actdeg)
Definition: syz1.cc:1293
void syPrint(syStrategy syzstr, const char *currRingName)
Definition: syz1.cc:1945
long * currShiftedComponents
Definition: syz1.cc:40
syStrategy syLaScala(ideal arg, int &maxlength, intvec *weights=NULL)
Definition: syz1.cc:2563
int ind1
Definition: syz.h:24
intvec ** hilb_coeffs
Definition: syz.h:46
int reference
Definition: syz.h:29
int regularity
Definition: syz.h:61
intvec * Tl
Definition: syz.h:50
poly res
Definition: myNF.cc:322
poly initial(const poly p, const ring r, const gfan::ZVector w)
Returns the initial form of p with respect to w.
Definition: initial.cc:32
resolvente syResolvente(ideal arg, int maxlength, int *length, intvec ***weights, BOOLEAN minim)
Definition: syz.cc:394
ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
Definition: polys.cc:12
const ring r
Definition: syzextra.cc:208
void syEnterPair(syStrategy syzstr, SObject *so, int *sPlength, int index)
Definition: syz1.cc:1040
resolvente orderedRes
Definition: syz.h:48
Definition: intvec.h:14
int syInitSyzMod(syStrategy syzstr, int index, int init=17)
Definition: syz1.cc:1461
poly lcm
Definition: syz.h:22
int order
Definition: syz.h:27
intvec * syBetti(resolvente res, int length, int *regularity, intvec *weights=NULL, BOOLEAN tomin=TRUE, int *row_shift=NULL)
Definition: syz.cc:793
ideal syMinBase(ideal arg)
Definition: syz.cc:1025
void sySchreyersSyzygiesM(polyset F, int Fmax, polyset *Shdl, int *Smax, BOOLEAN noSort)
void syCopyPair(SObject *argso, SObject *imso)
Definition: syz1.cc:90
int ** backcomponents
Definition: syz.h:41
int i
Definition: cfEzgcd.cc:123
int ** Howmuch
Definition: syz.h:42
syStrategy sySchreyer(ideal arg, int maxlength)
Definition: syz0.cc:1024
kBucket_pt syz_bucket
Definition: syz.h:55
resolvente sySchreyerResolvente(ideal arg, int maxlength, int *length, BOOLEAN isMonomial=FALSE, BOOLEAN notReplace=FALSE)
Definition: syz0.cc:861
int sySize(syStrategy syzstr)
Definition: syz1.cc:1840
resolvente fullres
Definition: syz.h:57
int ** Firstelem
Definition: syz.h:43
syStrategy syResolution(ideal arg, int maxlength, intvec *w, BOOLEAN minim)
Definition: syz.cc:623
static int index(p_Length length, p_Ord ord)
Definition: p_Procs_Impl.h:592
void syReOrderResolventFB(resolvente res, int length, int initial=1)
Definition: syz0.cc:746
resolvente minres
Definition: syz.h:58
int ** elemLength
Definition: syz.h:44
intvec * cw
Definition: syz.h:52
poly p1
Definition: syz.h:21
int ** truecomponents
Definition: syz.h:39
void syCompactify1(SSet sPairs, int *sPlength, int first)
Definition: syz1.cc:140
long ** ShiftedComponents
Definition: syz.h:40
#define NULL
Definition: omList.c:10
poly * polyset
Definition: hutil.h:15
int * currcomponents
Definition: syz1.cc:39
intvec * syBettiOfComputation(syStrategy syzstr, BOOLEAN minim=TRUE, int *row_shift=NULL, intvec *weights=NULL)
Definition: syz1.cc:1767
ring syRing
Definition: syz.h:56
SRes resPairs
Definition: syz.h:49
BOOLEAN syTestOrder(ideal i)
Definition: syz0.cc:835
syStrategy syCopy(syStrategy syzstr)
Definition: syz1.cc:1895
long syReorderShiftedComponents(long *sc, int n)
Definition: syz1.cc:339
void syEnlargeFields(syStrategy syzstr, int index)
Definition: syz1.cc:739
poly isNotMinimal
Definition: syz.h:25
unsigned long ** sev
Definition: syz.h:59
const CanonicalForm & w
Definition: facAbsFact.cc:55
poly syz
Definition: syz.h:23
SObject * SSet
Definition: syz.h:32
SSet * SRes
Definition: syz.h:33
short list_length
Definition: syz.h:62
ideal * resolvente
Definition: ideals.h:20
void syResetShiftedComponents(syStrategy syzstr, int index, int hilb=0)
Definition: syz1.cc:414
int length
Definition: syz.h:28
polyrec * poly
Definition: hilb.h:10
int ind2
Definition: syz.h:24
syStrategy syHilb(ideal arg, int *length)
Definition: syz2.cc:953
void syInitializePair(SObject *so)
Definition: syz1.cc:71
int BOOLEAN
Definition: auxiliary.h:131
void syKillEmptyEntres(resolvente res, int length)
Definition: syz1.cc:2209
syStrategy syLaScala3(ideal arg, int *length)
Definition: syz1.cc:2435
void syKillComputation(syStrategy syzstr, ring r=currRing)
Definition: syz1.cc:1497
void syDeletePair(SObject *so)
Definition: syz1.cc:52
syStrategy syMinimize(syStrategy syzstr)
Definition: syz1.cc:2403
intvec * resolution
Definition: syz.h:51
void sySchreyersSyzygiesB(polyset F, int Fmax, polyset *Shdl, int *Smax, BOOLEAN noSort)
ssyStrategy * syStrategy
Definition: syz.h:35