source: git/Singular/syz.h @ fdc537

spielwiese
Last change on this file since fdc537 was dad52a, checked in by Thomas Siebert <siebert@…>, 24 years ago
New syzygy command kres git-svn-id: file:///usr/local/Singular/svn/trunk@4403 2c84dea3-7e68-4137-9b89-c4e89433aadc
  • Property mode set to 100644
File size: 4.6 KB
Line 
1#ifndef SYZ_H
2#define SYZ_H
3/****************************************
4*  Computer Algebra System SINGULAR     *
5****************************************/
6/* $Id: syz.h,v 1.25 2000-05-26 11:23:32 siebert Exp $ */
7/*
8* ABSTRACT: Resolutions
9*/
10#include "structs.h"
11#if HAVE_ASO == 1
12#include "syz.aso"
13#endif
14
15// Logarithm of estimate of maximal number of new components
16#define SYZ_SHIFT_MAX_NEW_COMP_ESTIMATE 8
17// Logarithm of "distance" between a new component and prev component
18#define SYZ_SHIFT_BASE_LOG (BIT_SIZEOF_LONG - 1 - SYZ_SHIFT_MAX_NEW_COMP_ESTIMATE)
19#define SYZ_SHIFT_BASE (1 << SYZ_SHIFT_BASE_LOG)
20struct sSObject{
21                 poly  p;
22                 poly  p1,p2; /*- the pair p comes from -*/
23                 poly  lcm;   /*- the lcm of p1,p2 -*/
24                 poly  syz;   /*- the syzygy associated to p1,p2 -*/
25                 int   ind1,ind2; /*- the indeces of p1,p2 -*/
26                 poly  isNotMinimal;
27                 int   syzind;
28                 int   order;
29                 int   length;
30                 int   reference;
31               };
32typedef struct sSObject SObject;
33typedef SObject * SSet;
34typedef SSet * SRes;
35
36class ssyStrategy;
37typedef ssyStrategy * syStrategy;
38class ssyStrategy{
39  public:
40  int ** truecomponents;
41  long** ShiftedComponents;
42  int ** backcomponents;
43  int ** Howmuch;
44  int ** Firstelem;
45  int ** elemLength;
46  intvec ** weights;
47  intvec ** hilb_coeffs;
48  resolvente res;              //polynomial data for internal use only
49  resolvente orderedRes;       //polynomial data for internal use only
50  SRes resPairs;               //polynomial data for internal use only
51  intvec * Tl;
52  intvec * resolution;
53  intvec * cw;
54  intvec * betti;
55  kBucket_pt bucket;
56  kBucket_pt syz_bucket;
57  ring syRing;
58  resolvente fullres;
59  resolvente minres;
60  unsigned long ** sev;
61  int length;
62  short list_length;
63  short references;
64};
65
66void sySchreyersSyzygiesM(polyset F,int Fmax,polyset* Shdl,int* Smax,
67   BOOLEAN noSort);
68
69void sySchreyersSyzygiesB(polyset F,int Fmax,polyset* Shdl,int* Smax,
70   BOOLEAN noSort);
71
72resolvente sySchreyerResolvente(ideal arg, int maxlength, int * length,
73   BOOLEAN isMonomial=FALSE, BOOLEAN notReplace=FALSE);
74
75syStrategy sySchreyer(ideal arg, int maxlength);
76
77resolvente syResolvente(ideal arg, int maxlength, int * length,
78                        intvec *** weights, BOOLEAN minim);
79
80syStrategy syResolution(ideal arg, int maxlength,intvec * w, BOOLEAN minim);
81
82void syMinimizeResolvente(resolvente res, int length, int first);
83
84intvec * syBetti(resolvente res,int length, int * regularity,
85         intvec* weights=NULL,BOOLEAN tomin=TRUE, int * row_shift=NULL);
86
87ideal syMinBase(ideal arg);
88
89BOOLEAN syTestOrder(ideal i);
90
91void syReOrderResolventFB(resolvente res,int length, int initial=1);
92
93resolvente syLaScala1(ideal arg,int * length);
94syStrategy syLaScala3(ideal arg,int * length);
95syStrategy syHilb(ideal arg,int * length);
96syStrategy syKosz(ideal arg,int * length);
97
98void syDeleteRes(resolvente * res,int length);
99void syKillComputation(syStrategy syzstr);
100intvec * syBettiOfComputation(syStrategy syzstr, BOOLEAN minim=TRUE,int * row_shift=NULL);
101BOOLEAN syBetti1(leftv res, leftv u);
102BOOLEAN syBetti2(leftv res, leftv u, leftv w);
103int syLength(syStrategy syzstr);
104int sySize(syStrategy syzstr);
105int syDim(syStrategy syzstr);
106syStrategy syCopy(syStrategy syzstr);
107void syPrint(syStrategy syzstr);
108lists syConvRes(syStrategy syzstr,BOOLEAN toDel=FALSE);
109syStrategy syConvList(lists li,BOOLEAN toDel=FALSE);
110syStrategy syForceMin(lists li);
111syStrategy syMinimize(syStrategy syzstr);
112void syKillEmptyEntres(resolvente res,int length);
113
114extern int *  currcomponents;
115extern long *  currShiftedComponents;
116
117int syzcomp1dpc(poly p1, poly p2);
118void syDeletePair(SObject * so);
119void syInitializePair(SObject * so);
120void syCopyPair(SObject * argso, SObject * imso);
121void syCompactifyPairSet(SSet sPairs, int sPlength, int first);
122void syCompactify1(SSet sPairs, int* sPlength, int first);
123SRes syInitRes(ideal arg,int * length, intvec * Tl, intvec * cw=NULL);
124void syResetShiftedComponents(syStrategy syzstr, int index,int hilb=0);
125void syEnlargeFields(syStrategy syzstr,int index);
126void syEnterPair(syStrategy syzstr, SObject * so, int * sPlength,int index);
127SSet syChosePairs(syStrategy syzstr, int *index, int *howmuch, int * actdeg);
128int syInitSyzMod(syStrategy syzstr, int index, int init=17);
129long syReorderShiftedComponents(long * sc, int n);
130void syGaussForOne(ideal arg,int gen,int ModComp,int from=-1,int till=0);
131void syEnterPair(SSet sPairs, SObject * so, int * sPlength,int index);
132void syEnterPair(syStrategy syzstr, SObject * so, int * sPlength,int index);
133syStrategy syKosz(ideal arg,int * length);
134
135#endif
Note: See TracBrowser for help on using the repository browser.