Loading...
Searching...
No Matches
syz.h
Go to the documentation of this file.
#ifndef SYZ_H
#define SYZ_H
/****************************************
* Computer Algebra System SINGULAR *
****************************************/
/*
* ABSTRACT: Resolutions
*/
#include "misc/mylimits.h"
#include "kernel/structs.h"
#include "polys/monomials/ring.h"
#include "kernel/ideals.h"
// Logarithm of estimate of maximal number of new components
#define SYZ_SHIFT_MAX_NEW_COMP_ESTIMATE 8
// Logarithm of "distance" between a new component and prev component
#define SYZ_SHIFT_BASE_LOG (BIT_SIZEOF_LONG - 1 - SYZ_SHIFT_MAX_NEW_COMP_ESTIMATE)
#define SYZ_SHIFT_BASE (1L << SYZ_SHIFT_BASE_LOG)
struct sSObject{
poly p;
poly p1,p2; /*- the pair p comes from -*/
poly lcm; /*- the lcm of p1,p2 -*/
poly syz; /*- the syzygy associated to p1,p2 -*/
int ind1,ind2; /*- the indices of p1,p2 -*/
poly isNotMinimal;
int syzind;
int order;
int length;
int reference;
};
typedef struct sSObject SObject;
typedef SObject * SSet;
typedef SSet * SRes;
class ssyStrategy;
typedef ssyStrategy * syStrategy;
class ssyStrategy{
public:
int ** truecomponents;
long** ShiftedComponents;
int ** backcomponents;
int ** Howmuch;
int ** Firstelem;
int ** elemLength;
intvec ** weights;
intvec ** hilb_coeffs;
resolvente res; //polynomial data for internal use only
resolvente orderedRes; //polynomial data for internal use only
SRes resPairs; //polynomial data for internal use only
intvec * Tl;
intvec * resolution;
intvec * cw;
intvec * betti;
kBucket_pt bucket;
kBucket_pt syz_bucket;
ring syRing;
resolvente fullres;
resolvente minres;
unsigned long ** sev;
int length;
int regularity;
short list_length;
short references;
};
void sySchreyersSyzygiesM(polyset F,int Fmax,polyset* Shdl,int* Smax,
BOOLEAN noSort);
void sySchreyersSyzygiesB(polyset F,int Fmax,polyset* Shdl,int* Smax,
BOOLEAN noSort);
resolvente sySchreyerResolvente(ideal arg, int maxlength, int * length,
BOOLEAN isMonomial=FALSE, BOOLEAN notReplace=FALSE);
syStrategy sySchreyer(ideal arg, int maxlength);
resolvente syResolvente(ideal arg, int maxlength, int * length,
intvec *** weights, BOOLEAN minim);
syStrategy syResolution(ideal arg, int maxlength,intvec * w, BOOLEAN minim);
void syMinimizeResolvente(resolvente res, int length, int first);
intvec * syBetti(resolvente res,int length, int * regularity,
intvec* weights=NULL,BOOLEAN tomin=TRUE, int * row_shift=NULL);
ideal syMinBase(ideal arg);
BOOLEAN syTestOrder(ideal i);
void syReOrderResolventFB(resolvente res,int length, int initial=1);
resolvente syLaScala1(ideal arg,int * length);
syStrategy syLaScala3(ideal arg,int * length);
syStrategy syLaScala(ideal arg, int& maxlength, intvec* weights = NULL);
syStrategy syHilb(ideal arg,int * length);
syStrategy syKosz(ideal arg,int * length);
// use_cache and use_tensor_trick are needed in PrymGreen.jl; do not delete!
syStrategy syFrank(const ideal arg, const int length, const char *method,
const bool use_cache = true, const bool use_tensor_trick = false);
void syKillComputation(syStrategy syzstr, ring r=currRing);
intvec * syBettiOfComputation(syStrategy syzstr, BOOLEAN minim=TRUE,int * row_shift=NULL, intvec *weights=NULL);
int sySize(syStrategy syzstr);
int syDim(syStrategy syzstr);
syStrategy syCopy(syStrategy syzstr);
void syPrint(syStrategy syzstr, const char *currRingName /* = currRingHdl->id */);
syStrategy syMinimize(syStrategy syzstr);
void syKillEmptyEntres(resolvente res,int length);
EXTERN_VAR int * currcomponents;
EXTERN_VAR long * currShiftedComponents;
void syDeletePair(SObject * so);
void syInitializePair(SObject * so);
void syCopyPair(SObject * argso, SObject * imso);
void syCompactifyPairSet(SSet sPairs, int sPlength, int first);
void syCompactify1(SSet sPairs, int* sPlength, int first);
SRes syInitRes(ideal arg,int * length, intvec * Tl, intvec * cw=NULL);
void syResetShiftedComponents(syStrategy syzstr, int index,int hilb=0);
void syEnlargeFields(syStrategy syzstr,int index);
void syEnterPair(syStrategy syzstr, SObject * so, int * sPlength,int index);
SSet syChosePairs(syStrategy syzstr, int *index, int *howmuch, int * actdeg);
int syInitSyzMod(syStrategy syzstr, int index, int init=17);
long syReorderShiftedComponents(long * sc, int n);
void syGaussForOne(ideal arg,int gen,int ModComp,int from=-1,int till=0);
void syEnterPair(SSet sPairs, SObject * so, int * sPlength,int index);
void syEnterPair(syStrategy syzstr, SObject * so, int * sPlength,int index);
syStrategy syKosz(ideal arg,int * length);
resolvente syReorder(resolvente res,int length,
syStrategy syzstr,BOOLEAN toCopy=TRUE,resolvente totake=NULL);
resolvente syReorder(resolvente res,int length,
syStrategy syzstr,BOOLEAN toCopy/*=TRUE*/,resolvente totake/*=NULL*/);
syStrategy syMres_with_map(ideal arg, int maxlength,intvec * w, ideal &trans);
void syMinimize_with_map(syStrategy res, ideal &trans);
syStrategy syMinimizeCopy(syStrategy org);
void syFix(syStrategy r);
#endif
BOOLEAN
int BOOLEAN
Definition auxiliary.h:88
TRUE
#define TRUE
Definition auxiliary.h:101
FALSE
#define FALSE
Definition auxiliary.h:97
i
int i
Definition cfEzgcd.cc:132
intvec
Definition intvec.h:24
res
CanonicalForm res
Definition facAbsFact.cc:60
w
const CanonicalForm & w
Definition facAbsFact.cc:51
EXTERN_VAR
#define EXTERN_VAR
Definition globaldefs.h:6
ideals.h
resolvente
ideal * resolvente
Definition ideals.h:18
initial
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:30
length
static BOOLEAN length(leftv result, leftv arg)
Definition interval.cc:257
mylimits.h
NULL
#define NULL
Definition omList.c:12
index
static int index(p_Length length, p_Ord ord)
Definition p_Procs_Impl.h:592
currRing
VAR ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
Definition polys.cc:13
polyset
poly * polyset
Definition polys.h:260
ring.h
kBucket_pt
kBucket * kBucket_pt
Definition ring.h:26
structs.h
sSObject::isNotMinimal
poly isNotMinimal
Definition syz.h:25
syCopyPair
void syCopyPair(SObject *argso, SObject *imso)
Definition syz1.cc:82
syResolvente
resolvente syResolvente(ideal arg, int maxlength, int *length, intvec ***weights, BOOLEAN minim)
Definition syz.cc:403
syHilb
syStrategy syHilb(ideal arg, int *length)
Definition syz2.cc:950
sySchreyerResolvente
resolvente sySchreyerResolvente(ideal arg, int maxlength, int *length, BOOLEAN isMonomial=FALSE, BOOLEAN notReplace=FALSE)
Definition syz0.cc:855
sySchreyer
syStrategy sySchreyer(ideal arg, int maxlength)
Definition syz0.cc:1018
ssyStrategy::syRing
ring syRing
Definition syz.h:56
ssyStrategy::hilb_coeffs
intvec ** hilb_coeffs
Definition syz.h:46
syMres_with_map
syStrategy syMres_with_map(ideal arg, int maxlength, intvec *w, ideal &trans)
Definition syz.cc:1180
sSObject::syzind
int syzind
Definition syz.h:26
syDim
int syDim(syStrategy syzstr)
Definition syz1.cc:1850
syMinimize
syStrategy syMinimize(syStrategy syzstr)
Definition syz1.cc:2393
syCopy
syStrategy syCopy(syStrategy syzstr)
Definition syz1.cc:1885
sSObject::p1
poly p1
Definition syz.h:21
ssyStrategy::minres
resolvente minres
Definition syz.h:58
ssyStrategy::betti
intvec * betti
Definition syz.h:53
syResolution
syStrategy syResolution(ideal arg, int maxlength, intvec *w, BOOLEAN minim)
Definition syz.cc:625
syKosz
syStrategy syKosz(ideal arg, int *length)
Definition syz3.cc:1766
syKillComputation
void syKillComputation(syStrategy syzstr, ring r=currRing)
Definition syz1.cc:1495
sySchreyersSyzygiesM
void sySchreyersSyzygiesM(polyset F, int Fmax, polyset *Shdl, int *Smax, BOOLEAN noSort)
syReorder
resolvente syReorder(resolvente res, int length, syStrategy syzstr, BOOLEAN toCopy=TRUE, resolvente totake=NULL)
Definition syz1.cc:1641
syBettiOfComputation
intvec * syBettiOfComputation(syStrategy syzstr, BOOLEAN minim=TRUE, int *row_shift=NULL, intvec *weights=NULL)
Definition syz1.cc:1756
syCompactifyPairSet
void syCompactifyPairSet(SSet sPairs, int sPlength, int first)
Definition syz1.cc:104
syInitRes
SRes syInitRes(ideal arg, int *length, intvec *Tl, intvec *cw=NULL)
Definition syz1.cc:293
currShiftedComponents
EXTERN_VAR long * currShiftedComponents
Definition syz.h:118
syLaScala1
resolvente syLaScala1(ideal arg, int *length)
syMinimizeCopy
syStrategy syMinimizeCopy(syStrategy org)
Definition syz.cc:1200
sySize
int sySize(syStrategy syzstr)
Definition syz1.cc:1830
ssyStrategy::references
short references
Definition syz.h:63
ssyStrategy::syz_bucket
kBucket_pt syz_bucket
Definition syz.h:55
syCompactify1
void syCompactify1(SSet sPairs, int *sPlength, int first)
Definition syz1.cc:132
syLaScala
syStrategy syLaScala(ideal arg, int &maxlength, intvec *weights=NULL)
Definition syz1.cc:2558
currcomponents
EXTERN_VAR int * currcomponents
Definition syz.h:117
syResetShiftedComponents
void syResetShiftedComponents(syStrategy syzstr, int index, int hilb=0)
Definition syz1.cc:409
syKillEmptyEntres
void syKillEmptyEntres(resolvente res, int length)
Definition syz1.cc:2199
sSObject::lcm
poly lcm
Definition syz.h:22
ssyStrategy::cw
intvec * cw
Definition syz.h:52
sSObject::p2
poly p2
Definition syz.h:21
ssyStrategy::list_length
short list_length
Definition syz.h:62
sSObject::reference
int reference
Definition syz.h:29
ssyStrategy::res
resolvente res
Definition syz.h:47
ssyStrategy::backcomponents
int ** backcomponents
Definition syz.h:41
syEnlargeFields
void syEnlargeFields(syStrategy syzstr, int index)
Definition syz1.cc:734
ssyStrategy::fullres
resolvente fullres
Definition syz.h:57
ssyStrategy::weights
intvec ** weights
Definition syz.h:45
sSObject::p
poly p
Definition syz.h:20
ssyStrategy::Tl
intvec * Tl
Definition syz.h:50
syStrategy
ssyStrategy * syStrategy
Definition syz.h:36
ssyStrategy::orderedRes
resolvente orderedRes
Definition syz.h:48
ssyStrategy::resolution
intvec * resolution
Definition syz.h:51
sySchreyersSyzygiesB
void sySchreyersSyzygiesB(polyset F, int Fmax, polyset *Shdl, int *Smax, BOOLEAN noSort)
sSObject::order
int order
Definition syz.h:27
syFix
void syFix(syStrategy r)
Definition syz.cc:1230
ssyStrategy::truecomponents
int ** truecomponents
Definition syz.h:39
syEnterPair
void syEnterPair(syStrategy syzstr, SObject *so, int *sPlength, int index)
Definition syz1.cc:1035
syMinBase
ideal syMinBase(ideal arg)
Definition syz.cc:1021
syInitializePair
void syInitializePair(SObject *so)
Definition syz1.cc:63
ssyStrategy::length
int length
Definition syz.h:60
syReOrderResolventFB
void syReOrderResolventFB(resolvente res, int length, int initial=1)
Definition syz0.cc:740
ssyStrategy::Firstelem
int ** Firstelem
Definition syz.h:43
ssyStrategy::elemLength
int ** elemLength
Definition syz.h:44
syReorderShiftedComponents
long syReorderShiftedComponents(long *sc, int n)
Definition syz1.cc:334
ssyStrategy::regularity
int regularity
Definition syz.h:61
ssyStrategy::sev
unsigned long ** sev
Definition syz.h:59
syTestOrder
BOOLEAN syTestOrder(ideal i)
Definition syz0.cc:829
syMinimize_with_map
void syMinimize_with_map(syStrategy res, ideal &trans)
Definition syz.cc:1189
ssyStrategy::resPairs
SRes resPairs
Definition syz.h:49
ssyStrategy::bucket
kBucket_pt bucket
Definition syz.h:54
SRes
SSet * SRes
Definition syz.h:33
syBetti
intvec * syBetti(resolvente res, int length, int *regularity, intvec *weights=NULL, BOOLEAN tomin=TRUE, int *row_shift=NULL)
Definition syz.cc:787
sSObject::ind2
int ind2
Definition syz.h:24
syPrint
void syPrint(syStrategy syzstr, const char *currRingName)
Definition syz1.cc:1935
syChosePairs
SSet syChosePairs(syStrategy syzstr, int *index, int *howmuch, int *actdeg)
Definition syz1.cc:1288
syGaussForOne
void syGaussForOne(ideal arg, int gen, int ModComp, int from=-1, int till=0)
Definition syz.cc:218
ssyStrategy::ShiftedComponents
long ** ShiftedComponents
Definition syz.h:40
sSObject::length
int length
Definition syz.h:28
syDeletePair
void syDeletePair(SObject *so)
Definition syz1.cc:44
sSObject::syz
poly syz
Definition syz.h:23
syFrank
syStrategy syFrank(const ideal arg, const int length, const char *method, const bool use_cache=true, const bool use_tensor_trick=false)
Definition syz4.cc:792
SSet
SObject * SSet
Definition syz.h:32
sSObject::ind1
int ind1
Definition syz.h:24
syMinimizeResolvente
void syMinimizeResolvente(resolvente res, int length, int first)
Definition syz.cc:367
ssyStrategy::Howmuch
int ** Howmuch
Definition syz.h:42
syLaScala3
syStrategy syLaScala3(ideal arg, int *length)
Definition syz1.cc:2432
syInitSyzMod
int syInitSyzMod(syStrategy syzstr, int index, int init=17)
Definition syz1.cc:1459
ssyStrategy
Definition syz.h:37
sSObject
Definition syz.h:19