source: git/Singular/syz.h @ 8cfee1c

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