/usr/share/singular/LIB/customstd.lib is in singular-data 1:4.1.0-p3+ds-2build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 | ///////////////////////////////////////////////////////////////////////////////
version="version polymake.lib 4.0.3.3 Aug_2016 ";
category = "Commutative Algebra";
info="
LIBRARY: customstd.lib Load customstd.so
AUTHORS: Hans Schoenemann, hannes at mathematik.uni-kl.de
Yue Ren, ren at mathematik.uni-kl.de
OVERVIEW:
This library offers customly modified standard bases algorithms
in order to increase the performance of other algorithms.
If you require a customly modified standard bases algorithm,
please contact the authors.
PROCEDURES:
monomialabortstd(ideal);
satstd(ideal, [...]);
";
///////////////////////////////////////////////////////////////////////////////
proc monomialabortstd()
"USAGE: monomialabortstd(I); I ideal
PURPOSE: computes a standard basis and aborts if a monomial generator is found.
Returns all standard basis elements that have been computed.
NOTE: Due to sequencing of the standard basis computation:
- If aborted, there is no guarantee that the monomial is the final
standard bases element
- If ideal has a monomial generator, there is no guarantee that the
computation aborts because of it
KEYWORDS: standard bases.
EXAMPLE: example monomialabortstd; shows an example
"
{
}
example
{ "EXAMPLE:"; echo=2;
LIB "poly.lib";
ring r = 0,(x,y,z,u,v),dp;
// yields normal standard basis since no monomial is found
ideal I = homog(cyclic(4),v);
monomialabortstd(I);
// will not start standard basis computation in the first place,
// as one of the generators is a monomial
I = v,homog(cyclic(4),v);
monomialabortstd(I);
// aborts standard basis computation when it encounters monomial u
// note that u is not the final element in the standard basis!!!
I = x+y+z,homog(cyclic(4),v);
monomialabortstd(I);
// aborts standard basis computation when it encounters monomial z2
// note that it is not the monomial generator x which lead to the abortion!!!
I = x,homog(cyclic(4),v);
monomialabortstd(I);
}
proc satstd()
"USAGE: satstd(I[,J]); I ideal, J optional ideal
ASSUME: J generated by variables
PURPOSE: computes a standard basis of I and, if possible,
divides each polynomial during the computation by the variables in J.
By default, J is assumed to be the ideal generated by all variables.
NOTE: Even if I contains a monomial generated by the variables in J,
there is no guarantee that it is found during the computation.
If it is found, however, 1 is immediately returned.
KEYWORDS: standard bases.
EXAMPLE: example satstd; shows an example
"
{
}
example
{ "EXAMPLE:"; echo=2;
ring r = 0,(x,y,z,u,v),dp;
ideal I = x2+x,y2+y,z2+z;
// returns normal standard basis, no changes during (trivial) computation
satstd(I,ideal(u,v));
// returns x+1 instead of x2+x
satstd(I,ideal(x));
// returns standard basis with elements of degree up to 8 (instead of 16)
deg(satstd(I^8));
}
static proc mod_init()
{
intvec save=option(get);
option(noredefine);
LIB "customstd.so";
option(set,save);
}
|