# Singular

#### D.4.13.1 modStd

Procedure from library `modstd.lib` (see modstd_lib).

Usage:
modStd(I[, exactness]); I ideal, exactness int

Return:
a standard basis of I

Note:
The procedure computes a standard basis of I (over the rational numbers) by using modular methods.
An optional parameter 'exactness' can be provided. If exactness = 1, the procedure computes a standard basis of I for sure; if exactness = 0, it computes a standard basis of I with high probability.

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 J = modStd(I, 0); J; ==> J[1]=xy+7z6 ==> J[2]=xz+6y5 ==> J[3]=yz+5x4 ==> J[4]=x5-7/5z7 ==> J[5]=y6-7/6z7 ==> J[6]=z8 ring R3 = 0, x(1..4), lp; ideal I = cyclic(4); ideal J1 = modStd(I, 1); // default ideal J2 = modStd(I, 0); size(reduce(J1, J2)); ==> 0 size(reduce(J2, J1)); ==> 0 ```