![]() |
New implementations for the computation of syzygies and resolutions. More...
#include <kernel/mod2.h>
#include <string.h>
#include "syzextra.h"
#include "DebugPrint.h"
#include <omalloc/omalloc.h>
#include <misc/intvec.h>
#include <misc/options.h>
#include <coeffs/coeffs.h>
#include <polys/monomials/p_polys.h>
#include <polys/monomials/ring.h>
#include <polys/simpleideals.h>
#include <polys/kbuckets.h>
#include <polys/sbuckets.h>
#include <polys/operations/p_Mult_q.h>
#include <kernel/GBEngine/kstd1.h>
#include <kernel/polys.h>
#include <kernel/GBEngine/syz.h>
#include <kernel/ideals.h>
#include <kernel/oswrapper/timer.h>
#include <Singular/tok.h>
#include <Singular/ipid.h>
#include <Singular/lists.h>
#include <Singular/attrib.h>
#include <Singular/ipshell.h>
#include <stdio.h>
#include <stdlib.h>
Go to the source code of this file.
Data Structures | |
class | SBucketWrapper |
class | CDivisorEnumerator |
TODO: More... | |
class | CDivisorEnumerator2 |
TODO: More... | |
Macros | |
#define | _GNU_SOURCE /*for qsort_r on cygwin, must be before system includes*/ |
#define | RTIMER_BENCHMARKING 0 |
#define | qsort_my(m, s, ss, r, cmp) qsort(m, s, ss, cmp) |
Functions | |
USING_NAMESPACE (SINGULARXXNAME::DEBUG) BEGIN_NAMESPACE_SINGULARXX BEGIN_NAMESPACE(SYZEXTRA) BEGIN_NAMESPACE_NONAME ring SBucketFactory | |
static FORCE_INLINE poly | pp_Add_qq (const poly a, const poly b, const ring R) |
static FORCE_INLINE poly | p_VectorProductLT (poly s, const ideal &L, const ideal &T, const ring &R) |
static FORCE_INLINE int | atGetInt (idhdl rootRingHdl, const char *attribute, long def) |
END_NAMESPACE | BEGIN_NAMESPACE (SORT_c_ds) static int cmp_c_ds(const void *p1 |
assume (R!=NULL) | |
assume (r==currRing) | |
assume (a!=NULL) | |
assume (b!=NULL) | |
p_LmTest (a, r) | |
p_LmTest (b, r) | |
if (OPT__DEBUG) | |
if (iCompDiff > 0) return YES | |
if (iCompDiff< 0) return NO | |
assume (iCompDiff==0) | |
if (iDegDiff > 0) return YES | |
assume (iDegDiff==0) | |
for (int v=rVar(r);v > 0;v--) | |
static END_NAMESPACE void | writeLatexTerm (const poly t, const ring r, const bool bCurrSyz=true, const bool bLTonly=true) |
writes a monomial (p), uses form x*gen(.) if ko != coloumn number of p More... | |
static FORCE_INLINE poly | myp_Head (const poly p, const bool bIgnoreCoeff, const ring r) |
poly | leadmonom (const poly p, const ring r, const bool bSetZeroComp) |
return a new term: leading coeff * leading monomial of p with 0 leading component! More... | |
poly | p_Tail (const poly p, const ring r) |
return the tail of a given polynomial or vector returns NULL if input is NULL, otherwise the result is a new polynomial/vector in the ring r More... | |
ideal | id_Tail (const ideal id, const ring r) |
return the tail of a given ideal or module returns NULL if input is NULL, otherwise the result is a new ideal/module in the ring r NOTE: the resulting rank is autocorrected More... | |
void | Sort_c_ds (const ideal id, const ring r) |
inplace sorting of the module (ideal) id wrt <_(c,ds) More... | |
bool | my_p_LmCmp (poly a, poly b, const ring r) |
static BOOLEAN | _p_LmDivisibleByNoComp (const poly a, const poly b, const poly c, const ring r) |
_p_LmDivisibleByNoComp for a | b*c More... | |
Variables | |
END_NAMESPACE const void * | p2 { void *R = currRing |
const int | YES = 1 |
const int | NO = -1 |
const ring | r = (const ring) R |
const poly | a = *(const poly*)p1 |
const poly | b = *(const poly*)p2 |
const signed long | iCompDiff = p_GetComp(a, r) - p_GetComp(b, r) |
const int | OPT__DEBUG = 0 |
const signed long | iDegDiff = p_Totaldegree(a, r) - p_Totaldegree(b, r) |
return | |
New implementations for the computation of syzygies and resolutions.
ABSTRACT: Computation of Syzygies due to Schreyer
Definition in file syzextra.cc.
Definition at line 18 of file syzextra.cc.
#define RTIMER_BENCHMARKING 0 |
Definition at line 64 of file syzextra.cc.
|
inlinestatic |
_p_LmDivisibleByNoComp for a | b*c
Definition at line 2161 of file syzextra.cc.
assume | ( | R! | = NULL | ) |
assume | ( | a! | = NULL | ) |
assume | ( | b! | = NULL | ) |
assume | ( | iCompDiff | = =0 | ) |
assume | ( | iDegDiff | = =0 | ) |
|
static |
Definition at line 188 of file syzextra.cc.
END_NAMESPACE BEGIN_NAMESPACE | ( | SORT_c_ds | ) | const |
Definition at line 264 of file syzextra.cc.
return the tail of a given ideal or module returns NULL if input is NULL, otherwise the result is a new ideal/module in the ring r NOTE: the resulting rank is autocorrected
Definition at line 510 of file syzextra.cc.
if | ( | OPT__DEBUG | ) |
Definition at line 230 of file syzextra.cc.
if | ( | iCompDiff | , |
0 | |||
) |
if | ( | ) |
if | ( | iDegDiff | , |
0 | |||
) |
return a new term: leading coeff * leading monomial of p with 0 leading component!
Definition at line 473 of file syzextra.cc.
Definition at line 1590 of file syzextra.cc.
Definition at line 456 of file syzextra.cc.
return the tail of a given polynomial or vector returns NULL if input is NULL, otherwise the result is a new polynomial/vector in the ring r
Definition at line 501 of file syzextra.cc.
|
static |
Definition at line 158 of file syzextra.cc.
Definition at line 153 of file syzextra.cc.
inplace sorting of the module (ideal) id wrt <_(c,ds)
Definition at line 527 of file syzextra.cc.
USING_NAMESPACE | ( | SINGULARXXNAME::DEBUG | ) |
Definition at line 68 of file syzextra.cc.
|
static |
writes a monomial (p), uses form x*gen(.) if ko != coloumn number of p
< needs * before pp or module generator
< need to write something after '-'!
< needs * before module generator?
Definition at line 336 of file syzextra.cc.
Definition at line 222 of file syzextra.cc.
const signed long iDegDiff = p_Totaldegree(a, r) - p_Totaldegree(b, r) |
Definition at line 247 of file syzextra.cc.
const int NO = -1 |
Definition at line 206 of file syzextra.cc.
const int OPT__DEBUG = 0 |
Definition at line 229 of file syzextra.cc.
END_NAMESPACE const void* p2 { void *R = currRing |
Definition at line 202 of file syzextra.cc.
Definition at line 208 of file syzextra.cc.
return |
Definition at line 280 of file syzextra.cc.
const int YES = 1 |
Definition at line 205 of file syzextra.cc.