Loading...
Searching...
No Matches
kstd1.h
Go to the documentation of this file.
#ifndef KSTD1_H
#define KSTD1_H
/****************************************
* Computer Algebra System SINGULAR *
****************************************/
/*
* ABSTRACT
*/
#include "kernel/structs.h"
#include "polys/monomials/ring.h"
#include "coeffs/bigintmat.h"
ideal mora (ideal F, ideal Q,intvec *w,bigintmat *hilb,kStrategy strat);
typedef BOOLEAN (*s_poly_proc_t)(kStrategy strat);
// lazy_reduce flags: can be combined by |
#define KSTD_NF_LAZY 1
// do only a reduction of the leading term
#define KSTD_NF_ECART 2
// only local: reduce even with bad ecart
#define KSTD_NF_NONORM 4
// only global: avoid normalization, return a multiply of NF
#define KSTD_NF_CANCELUNIT 8
// apply cancelunit to f inf NF(f,I)
#define KSTD_NF_NOLF 4096
// avoid PrintLn with OPT_PROT
poly kNF1(ideal F, ideal Q, poly q, kStrategy strat, int lazyReduce);
ideal kNF1 (ideal F,ideal Q,ideal q, kStrategy strat, int lazyReduce);
poly kNF (ideal F, ideal Q, poly p,int syzComp=0, int lazyReduce=0);
ideal kNF(ideal F, ideal Q, ideal p,int syzComp=0, int lazyReduce=0);
poly kNFBound (ideal F, ideal Q, poly p,int bound,int syzComp=0, int lazyReduce=0);
ideal kNFBound (ideal F, ideal Q, ideal p,int bound,int syzComp=0, int lazyReduce=0);
ideal idDivRem(ideal A, const ideal quot, ideal &factor,ideal *unit,int lazyReduce=0);
/// NOTE: this is just a wrapper which sets currRing for the actual kNF call
poly k_NF (ideal F, ideal Q, poly p,int syzComp, int lazyReduce, const ring _currRing);
ideal kSba(ideal F,ideal Q, tHomog h, intvec ** mw, int incremental=0, int arri=0, bigintmat *hilb=NULL,
int syzComp=0,int newIdeal=0, intvec *vw=NULL);
/// generic interface to GB/SB computations
ideal kStd(ideal F, ideal Q, tHomog h, intvec ** mw,intvec *hilb=NULL,
int syzComp=0,int newIdeal=0, intvec *vw=NULL, s_poly_proc_t sp=NULL);
/// generic interface to GB/SB computations, large hilbert vectors
ideal kStd2(ideal F, ideal Q, tHomog h, intvec ** mw,bigintmat *hilb=NULL,
int syzComp=0,int newIdeal=0, intvec *vw=NULL, s_poly_proc_t sp=NULL);
/// pure GB/SB computations
ideal kStd_internal(ideal F, ideal Q, tHomog h,intvec ** w, bigintmat *hilb=NULL,
int syzComp=0, int newIdeal=0, intvec *vw=NULL, s_poly_proc_t sp=NULL);
ideal kStdShift(ideal F, ideal Q, tHomog h,intvec ** mw, bigintmat *hilb=NULL,
int syzComp=0, int newIdeal=0, intvec *vw=NULL, BOOLEAN rightGB=FALSE);
ideal kTryHilbstd(ideal F, ideal Q);
ideal kTryHilbstd_par(ideal F, ideal Q, tHomog h, intvec ** mw);
poly kTryHC(ideal F, ideal Q);
ideal rightgb(ideal F,const ideal Q);
/* the following global data are defined in kutil.cc */
//extern int syzComp;
/*stop building pairs after that component --> ideals.cc, syz.cc */
EXTERN_VAR int Kstd1_mu,Kstd1_deg;
/*parameters for global stops --> ipshell.cc, grammar.y*/
EXTERN_VAR BITSET kOptions;
/*the known test options (a constant)*/
EXTERN_VAR BITSET validOpts;
void initMora(ideal F,kStrategy strat);
ideal kInterRed (ideal F, const ideal Q=NULL);
ideal kInterRedOld (ideal F, const ideal Q=NULL);
ideal kInterRedBba (ideal F, ideal Q, int &need_retry);
long kModDeg(poly p, const ring r = currRing);
long kHomModDeg(poly p, const ring r = currRing);
ideal stdred(ideal F, ideal Q, tHomog h,intvec ** w);
ideal kMin_std2(ideal F, ideal Q, tHomog h,intvec ** w, ideal &M,
bigintmat *hilb, int syzComp=0,int reduced=0);
ideal kMin_std(ideal F, ideal Q, tHomog h,intvec ** w, ideal &M,
intvec *hilb, int syzComp=0,int reduced=0);
BOOLEAN kVerify(ideal F,ideal Q);
EXTERN_VAR intvec * kModW;
EXTERN_VAR intvec * kHomW;
/* options:
0 prot
1 redSB
2 notBucket
3 notSugar
4 interrupt
5 sugarCrit
6 teach
7 cancel unit: obachman 11/00 tossed
8 morepairs: obachman 11/00: tossed
9 return SB (syz,quotient,intersect)
10 fastHC
11-19 sort in L/T
20 redBest: obachman 11/00 tossed
22 staircaseBound: in NF create a HC x1^degBound+1
23 multBound
24 degBound
25 no redTail(p)/redTail(s)
26 integer strategy
27 stop at HC (finiteDeterminacyTest)
28 infRedTail: ignore ecart in local redTail-calls
29 kStd + 1 new element
30 noRedSyz
31 weight
verbose:31 stop at certain weights
*/
#endif
BITSET
#define BITSET
Definition auxiliary.h:85
BOOLEAN
int BOOLEAN
Definition auxiliary.h:88
FALSE
#define FALSE
Definition auxiliary.h:97
bigintmat.h
p
int p
Definition cfModGcd.cc:4086
bound
static CanonicalForm bound(const CFMatrix &M)
Definition cf_linsys.cc:460
bigintmat
Matrices of numbers.
Definition bigintmat.h:51
intvec
Definition intvec.h:24
w
const CanonicalForm & w
Definition facAbsFact.cc:51
factor
CanonicalForm factor
Definition facAbsFact.cc:97
EXTERN_VAR
#define EXTERN_VAR
Definition globaldefs.h:6
h
STATIC_VAR Poly * h
Definition janet.cc:971
kHomW
VAR intvec * kHomW
Definition kstd1.cc:2409
kModW
VAR intvec * kModW
Definition kstd1.cc:2409
validOpts
VAR BITSET validOpts
Definition kstd1.cc:60
kOptions
VAR BITSET kOptions
Definition kstd1.cc:45
kHomModDeg
long kHomModDeg(poly p, const ring r=currRing)
Definition kstd1.cc:2421
Kstd1_deg
EXTERN_VAR int Kstd1_deg
Definition kstd1.h:70
initMora
void initMora(ideal F, kStrategy strat)
Definition kstd1.cc:1820
k_NF
poly k_NF(ideal F, ideal Q, poly p, int syzComp, int lazyReduce, const ring _currRing)
NOTE: this is just a wrapper which sets currRing for the actual kNF call.
Definition kstd1.cc:3443
kMin_std
ideal kMin_std(ideal F, ideal Q, tHomog h, intvec **w, ideal &M, intvec *hilb, int syzComp=0, int reduced=0)
Definition kstd1.cc:3221
kInterRedOld
ideal kInterRedOld(ideal F, const ideal Q=NULL)
Definition kstd1.cc:3456
kMin_std2
ideal kMin_std2(ideal F, ideal Q, tHomog h, intvec **w, ideal &M, bigintmat *hilb, int syzComp=0, int reduced=0)
Definition kstd1.cc:3069
kVerify
BOOLEAN kVerify(ideal F, ideal Q)
Definition kverify.cc:367
stdred
ideal stdred(ideal F, ideal Q, tHomog h, intvec **w)
kInterRedBba
ideal kInterRedBba(ideal F, ideal Q, int &need_retry)
Definition kstd1.cc:3551
kNFBound
poly kNFBound(ideal F, ideal Q, poly p, int bound, int syzComp=0, int lazyReduce=0)
Definition kstd1.cc:3285
kNF1
poly kNF1(ideal F, ideal Q, poly q, kStrategy strat, int lazyReduce)
Definition kstd1.cc:2119
mora
ideal mora(ideal F, ideal Q, intvec *w, bigintmat *hilb, kStrategy strat)
Definition kstd1.cc:1887
idDivRem
ideal idDivRem(ideal A, const ideal quot, ideal &factor, ideal *unit, int lazyReduce=0)
Definition kLiftstd.cc:347
rightgb
ideal rightgb(ideal F, const ideal Q)
Definition kstd2.cc:4935
kModDeg
long kModDeg(poly p, const ring r=currRing)
Definition kstd1.cc:2411
kStdShift
ideal kStdShift(ideal F, ideal Q, tHomog h, intvec **mw, bigintmat *hilb=NULL, int syzComp=0, int newIdeal=0, intvec *vw=NULL, BOOLEAN rightGB=FALSE)
Definition kstd1.cc:2964
s_poly_proc_t
BOOLEAN(* s_poly_proc_t)(kStrategy strat)
Definition kstd1.h:15
kStd2
ideal kStd2(ideal F, ideal Q, tHomog h, intvec **mw, bigintmat *hilb=NULL, int syzComp=0, int newIdeal=0, intvec *vw=NULL, s_poly_proc_t sp=NULL)
generic interface to GB/SB computations, large hilbert vectors
Definition kstd1.cc:2607
kInterRed
ideal kInterRed(ideal F, const ideal Q=NULL)
Definition kstd1.cc:3802
kSba
ideal kSba(ideal F, ideal Q, tHomog h, intvec **mw, int incremental=0, int arri=0, bigintmat *hilb=NULL, int syzComp=0, int newIdeal=0, intvec *vw=NULL)
Definition kstd1.cc:2668
kStd
ideal kStd(ideal F, ideal Q, tHomog h, intvec **mw, intvec *hilb=NULL, int syzComp=0, int newIdeal=0, intvec *vw=NULL, s_poly_proc_t sp=NULL)
generic interface to GB/SB computations
Definition kstd1.cc:2659
kStd_internal
ideal kStd_internal(ideal F, ideal Q, tHomog h, intvec **w, bigintmat *hilb=NULL, int syzComp=0, int newIdeal=0, intvec *vw=NULL, s_poly_proc_t sp=NULL)
pure GB/SB computations
Definition kstd1.cc:2434
Kstd1_mu
EXTERN_VAR int Kstd1_mu
Definition kstd1.h:70
kTryHilbstd_par
ideal kTryHilbstd_par(ideal F, ideal Q, tHomog h, intvec **mw)
Definition kstdhelper.cc:338
kTryHC
poly kTryHC(ideal F, ideal Q)
Definition kstdhelper.cc:38
kTryHilbstd
ideal kTryHilbstd(ideal F, ideal Q)
Definition kstdhelper.cc:323
kNF
poly kNF(ideal F, ideal Q, poly p, int syzComp=0, int lazyReduce=0)
Definition kstd1.cc:3229
NULL
#define NULL
Definition omList.c:12
currRing
VAR ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
Definition polys.cc:13
ring.h
A
#define A
Definition sirandom.c:24
M
#define M
Definition sirandom.c:25
Q
#define Q
Definition sirandom.c:26
structs.h
tHomog
tHomog
Definition structs.h:31
kStrategy
skStrategy * kStrategy
Definition structs.h:54