Top
Back: modstd_lib
Forward: modS
FastBack: intprog_lib
FastForward: monomialideal_lib
Up: modstd_lib
Top: Singular Manual
Contents: Table of Contents
Index: Index
About: About this document

D.4.10.1 modStd

Procedure from library modstd.lib (see modstd_lib).

Usage:
modStd(I); I ideal

Assume:
If size(#) > 0, then # contains either 1, 2 or 4 integers such that
- #[1] is the number of available processors for the computation,
- #[2] is an optional parameter for the exactness of the computation, if #[2] = 1, the procedure computes a standard basis for sure,
- #[3] is the number of primes until the first lifting,
- #[4] is the constant number of primes between two liftings until the computation stops.

Return:
a standard basis of I if no warning appears;

Note:
The procedure computes a standard basis of I (over the rational numbers) by using modular methods. If a warning appears then the result is a standard basis containing I and with high probability a standard basis of I.
By default the procedure computes a standard basis of I for sure, but if the optional parameter #[2] = 0, it computes a standard basis of I with high probability and a warning appears at the end. The procedure distinguishes between different variants for the standard basis computation in positive characteristic depending on the ordering of the basering, the parameter #[2] and if the ideal I is homogeneous.
- variant = 1, if I is homogeneous and exactness = 0,
- variant = 2, if I is not homogeneous, 1-block-ordering and exactness = 0,
- variant = 3, if I is not homogeneous, complicated ordering (lp or > 1 block) and exactness = 0,
- variant = 4, if I is homogeneous and exactness = 1,
- variant = 5, if I is not homogeneous, 1-block-ordering and exactness = 1,
- variant = 3, if I is not homogeneous, complicated ordering (lp or > 1 block) and exactness = 1.

Example:
 
LIB "modstd.lib";
ring R1 = 0,(x,y,z,t),dp;
ideal I = 3x3+x2+1, 11y5+y3+2, 5z4+z2+4;
ideal J = modStd(I);
J;
==> J[1]=x3+1/3x2+1/3
==> J[2]=z4+1/5z2+4/5
==> J[3]=y5+1/11y3+2/11
I = homog(I,t);
J = modStd(I);
J;
==> J[1]=x3+1/3x2t+1/3t3
==> J[2]=z4+1/5z2t2+4/5t4
==> J[3]=y5+1/11y3t2+2/11t5
ring R2 = 0,(x,y,z),ds;
ideal I = jacob(x5+y6+z7+xyz);
ideal J1 = modStd(I,1,0);
==> ===========================================================
==> WARNING: Output might not be a standard basis of the input.
==> ===========================================================
J1;
==> J1[1]=xy+7z6
==> J1[2]=xz+6y5
==> J1[3]=yz+5x4
==> J1[4]=x5-7/5z7
==> J1[5]=y6-7/6z7
==> J1[6]=z8
ring R3 = 0,x(1..4),lp;
ideal I = cyclic(4);
ideal J1 = modStd(I,1);
ideal J2 = modStd(I,1,0);
==> ===========================================================
==> WARNING: Output might not be a standard basis of the input.
==> ===========================================================
size(reduce(J1,J2));
==> 0
size(reduce(J2,J1));
==> 0
/*
ring R4 = 0,x(1..4),wp(1,-1,-1,1);
ideal I = cyclic(4);
ideal J1 = modStd(I,1,0);
*/


Top Back: modstd_lib Forward: modS FastBack: intprog_lib FastForward: monomialideal_lib Up: modstd_lib Top: Singular Manual Contents: Table of Contents Index: Index About: About this document
            User manual for Singular version 3-1-3, March 2011, generated by texi2html.