# Singular          #### D.4.18.14 changeDenominator

Procedure from library `normal.lib` (see normal_lib).

Usage:
changeDenominator(U1, c1, c2, I); U1 and I ideals, c1 and c2 polynomials.

Return:
an ideal U2 such that the A-modules 1/c1 * U1 and 1/c2 * U2 are equal, where A = R/I and R is the basering.

Note:
It assumes that such U2 exists. It is intended maninly as an auxiliary procedure in the normalization algorithms.

Example:
 ```LIB "normal.lib"; ring s = 0,(x,y),dp; ideal I = y5-y4x+4y2x2-x4; ideal U1 = normal(I); ==> ==> // 'normal' created a list, say nor, of two elements. ==> // To see the list type ==> nor; ==> ==> // * nor is a list of 1 ring(s). ==> // To access the i-th ring nor[i], give it a name, say Ri, and type ==> def R1 = nor; setring R1; norid; normap; ==> // For the other rings type first (if R is the name of your base ring) ==> setring R; ==> // and then continue as for R1. ==> // Ri/norid is the affine algebra of the normalization of R/P_i where ==> // P_i is the i-th component of a decomposition of the input ideal id ==> // and normap the normalization map from R to Ri/norid. ==> ==> // * nor is a list of 1 ideal(s). Let ci be the last generator ==> // of the ideal nor[i]. Then the integral closure of R/P_i is ==> // generated as R-submodule of the total ring of fractions by ==> // 1/ci * nor[i]. poly c1 = U1; U1;c1; ==> U1=xy2 ==> U1=x2y ==> U1=x3 ==> U1=y3 ==> y3 // 1/c1 * U1 is the normalization of I. ideal U2 = changeDenominator(U1, c1, x3, I); U2; ==> U2=-xy3+y4+4x2y ==> U2=-x2y2+xy3+4x3 ==> U2=-x3y+x2y2-4xy3+4y4+16x2y ==> U2=x3 // 1/x3 * U2 is also the normalization of I, but with a different denominator. ```

### Misc 