Changeset c941cf in git
- Timestamp:
- Sep 29, 2016, 3:38:21 PM (8 years ago)
- Branches:
- (u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
- Children:
- 6999649dfd3a405d3b2e2f1b091f2b5d503d61c1
- Parents:
- 1cca2257b0e482d23bff22027d4e66c3c8f4c508
- Location:
- Singular/LIB
- Files:
-
- 2 added
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/LIB/normal.lib
r1cca22 rc941cf 25 25 getOneVar(J, vari); computes a polynomial of J in the variable vari 26 26 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 27 28 28 29 SEE ALSO: locnormal_lib;modnormal_lib … … 6790 6791 } 6791 6792 6793 proc normalConductor(ideal I, list #) 6794 "USAGE: normalConductor(I); I ideal 6795 ASSUME: I is a radical ideal 6796 RETURN: the conductor of R/I as ideal in R 6797 REMARKS: The procedures makes use of the minimal primes and 6798 the generators of the normalization given by the normalization algorithm. 6799 NOTE: 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) 6803 KEYWORDS: conductor; normalization 6804 SEE ALSO: conductorIdealIntersect, conductorMinPrime, curveConductorMult 6805 EXAMPLE: 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 } 6858 example 6859 { 6860 "EXAMPLE:"; echo = 2; 6861 6862 /////////////////////////////////////////// 6863 // Computation of small conductor ideals // 6864 /////////////////////////////////////////// 6865 6866 ring R = 0,(x,y,z),ds; 6867 ideal I = x2y2 - z; 6868 normalConductor(I); 6869 // The conductor is the whole ring - so the ring is normal 6870 // We can also see this using the delta invariant: 6871 curveDeltaInv(I); 6872 6873 ring S = 0,(a,b,c),dp; 6874 ideal J = abc; 6875 normalConductor(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 6878 curveDeltaInv(J); 6879 6880 kill R,S; 6881 6882 ///////////////////////////////////// 6883 // Computation of a bigger example // 6884 ///////////////////////////////////// 6885 6886 ring R = 0,(x,y,z,t),ds; 6887 ideal I = xyz - yzt, x2y3 - z2t4; 6888 I = std(radical(I)); 6889 // Ideal I 6890 I; 6891 // Conductor 6892 normalConductor(I); 6893 } 6894 6792 6895 /////////////////////////////////////////////////////////////////////////// 6793 6896 //
Note: See TracChangeset
for help on using the changeset viewer.