Changeset c941cf in git


Ignore:
Timestamp:
Sep 29, 2016, 3:38:21 PM (8 years ago)
Author:
Hans Schoenemann <hannes@…>
Branches:
(u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
Children:
6999649dfd3a405d3b2e2f1b091f2b5d503d61c1
Parents:
1cca2257b0e482d23bff22027d4e66c3c8f4c508
Message:
add:  LIBs von Peter Chini, normalConductor ->normal.lib
Location:
Singular/LIB
Files:
2 added
1 edited

Legend:

Unmodified
Added
Removed
  • Singular/LIB/normal.lib

    r1cca22 rc941cf  
    2525 getOneVar(J, vari); computes a polynomial of J in the variable vari
    2626 changeDenominator(U1, c1, c2, I); computes ideal U2 such that 1/c1*U1=1/c2*U2
     27 normalConductor(ideal); computation of the conductor as ideal in the basering
    2728
    2829SEE ALSO: locnormal_lib;modnormal_lib
     
    67906791}
    67916792
     6793proc normalConductor(ideal I, list #)
     6794"USAGE:     normalConductor(I); I ideal
     6795ASSUME:     I is a radical ideal
     6796RETURN:     the conductor of R/I as ideal in R
     6797REMARKS:    The procedures makes use of the minimal primes and
     6798            the generators of the normalization given by the normalization algorithm.
     6799NOTE:       the optional parameter can be used if the normalization has already
     6800            been computed. If a list L contains the output of the procedure
     6801            normal (with options prim, wd and usering if the ring has a mixed ordering),
     6802            apply normalConductor(I,L)
     6803KEYWORDS:   conductor; normalization
     6804SEE ALSO:   conductorIdealIntersect, conductorMinPrime, curveConductorMult
     6805EXAMPLE:    example normalConductor; shows an example"
     6806{
     6807
     6808    if(size(#) > 0){
     6809        list norma = #;
     6810    }else{
     6811        // Compute the normalization with delta invariants
     6812        list norma = normal(I,"useRing","prim","wd");
     6813    }
     6814
     6815    // Prepare computation
     6816        int r = size(norma[1]);
     6817        int i;
     6818        def savering = basering;
     6819        list min_prime;
     6820    list DEN;
     6821    def S;
     6822
     6823    // List of all minimal primes
     6824    for(i = 1; i <= r; i++){
     6825        S = norma[1][i];
     6826        min_prime[i] = conductorMinPrime(S);
     6827    }
     6828
     6829        // List of ideals U generating Norm(R/P_i)
     6830        list U = norma[2];
     6831
     6832        // List of denominators DEN
     6833    r = size(U);
     6834        for(i = 1; i <= r; i++){
     6835                DEN[i] = U[i][size(U[i])];
     6836        }
     6837
     6838        // Compute the conductor C
     6839        ideal C = 1;
     6840        ideal C_current;
     6841        ideal min_prime_isect;
     6842
     6843        for(i = 1; i <= r; i++){
     6844
     6845                // Intersection of min_prime_j, j!=i
     6846                min_prime_isect = conductorIdealIntersect(min_prime,i);
     6847
     6848                // Compute the quotient
     6849                C_current = std(quotient(min_prime[i] + DEN[i]*min_prime_isect, U[i]));
     6850
     6851                // Intersect it with previous computation
     6852                C = intersect(C,C_current);
     6853        }
     6854
     6855        return(std(C));
     6856
     6857}
     6858example
     6859{
     6860"EXAMPLE:"; echo = 2;
     6861
     6862///////////////////////////////////////////
     6863// Computation of small conductor ideals //
     6864///////////////////////////////////////////
     6865
     6866ring R = 0,(x,y,z),ds;
     6867ideal I = x2y2 - z;
     6868normalConductor(I);
     6869// The conductor is the whole ring - so the ring is normal
     6870// We can also see this using the delta invariant:
     6871curveDeltaInv(I);
     6872
     6873ring S = 0,(a,b,c),dp;
     6874ideal J = abc;
     6875normalConductor(J);
     6876// The conductor is not the whole ring - so it is not normal
     6877// We can also see this using the delta invariant, which is even infinite
     6878curveDeltaInv(J);
     6879
     6880kill R,S;
     6881
     6882/////////////////////////////////////
     6883// Computation of a bigger example //
     6884/////////////////////////////////////
     6885
     6886ring R = 0,(x,y,z,t),ds;
     6887ideal I = xyz - yzt, x2y3 - z2t4;
     6888I = std(radical(I));
     6889// Ideal I
     6890I;
     6891// Conductor
     6892normalConductor(I);
     6893}
     6894
    67926895///////////////////////////////////////////////////////////////////////////
    67936896//
Note: See TracChangeset for help on using the changeset viewer.