Changeset ce136a in git for Singular/LIB
- Timestamp:
- Oct 7, 2010, 10:12:44 AM (14 years ago)
- Branches:
- (u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
- Children:
- 7f92483afbf40d1080656112033d0ec8b61f45ea
- Parents:
- c623f27a32f02de0d7ead75173d5d8ccb44885c6
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/LIB/paraplanecurves.lib
rc623f27 rce136a 12 12 OVERVIEW: 13 13 14 Suppose C = {f(x,y,z)=0} is a rational plane curve, where f is homogeneous 15 of degree n with coefficients in Q and absolutely irreducible (these 14 Suppose C = {f(x,y,z)=0} is a rational plane curve, where f is homogeneous 15 of degree n with coefficients in Q and absolutely irreducible (these 16 16 conditions are checked automatically.) @* 17 17 After a first step, realized by a projective automorphism in the procedure … … 23 23 and y as algebraic and computes an integral basis in C(x)[y] of the integral 24 24 closure of C[x] in C(x,y) using the normalization algorithm from 25 @ref{normal _lib}: see @ref{integralbasis_lib}. In a future edition of the26 library, also van Hoeij's algorithm for computing the integral basis will 25 @ref{normal.lib}: see @ref{integralbasis.lib}. In a future edition of the 26 library, also van Hoeij's algorithm for computing the integral basis will 27 27 be available. @* 28 28 From the integral basis, the adjoint ideal is obtained by linear algebra. … … 107 107 NOTE: The procedure might fail or give a wrong output if phi does 108 108 not define a birational map. 109 RETURN: ring, the coordinate ring of P, with an ideal named J and an ideal 109 RETURN: ring, the coordinate ring of P, with an ideal named J and an ideal 110 110 named psi.@* 111 111 The ideal J defines the image of phi.@* … … 192 192 193 193 example 194 { "EXAMPLE:"; echo=2;194 { "EXAMPLE:"; 195 195 ring R = 0,(x,y,z),dp; 196 196 poly f = y^8-x^3*(z+x)^5; … … 248 248 Considering C in the chart z<>0, the algorithm regards x as transcendental 249 249 and y as algebraic and computes an integral basis in C(x)[y] of the integral 250 closure of C[x] in C(x,y) using the normalization algorithm from @ref{normal _lib}:251 see @ref{integralbasis _lib}. In a future edition of the library, also van Hoeij's250 closure of C[x] in C(x,y) using the normalization algorithm from @ref{normal.lib}: 251 see @ref{integralbasis.lib}. In a future edition of the library, also van Hoeij's 252 252 algorithm for computing the integral basis will be available. @* 253 253 From the integral basis, the adjoint ideal is obtained by linear algebra. … … 379 379 380 380 example 381 { "EXAMPLE:"; echo=2;381 { "EXAMPLE:"; 382 382 ring R = 0,(x,y,z),dp; 383 383 poly f1 = 1/2*x^5+x^2*y*z^2+x^3*y*z+1/2*x*y^2*z^2-2*x*y^3*z+y^5; … … 450 450 transcendental and y as algebraic and computes an integral basis in C(x)[y] of 451 451 the integral closure of C[x] in C(x,y) using the normalization algorithm 452 from @ref{normal _lib}: see @ref{integralbasis_lib}. In a future edition of the library,452 from @ref{normal.lib}: see @ref{integralbasis.lib}. In a future edition of the library, 453 453 also van Hoeij's algorithm for computing the integral basis will be available.@* 454 454 From the integral basis, the adjoint ideal is obtained by linear algebra. … … 549 549 550 550 example 551 { "EXAMPLE:"; echo=2;551 { "EXAMPLE:"; 552 552 ring R = 0,(x,y,z),dp; 553 553 poly f = y^8-x^3*(z+x)^5; … … 594 594 return(imap(RP2,AI)); 595 595 } 596 ideal B;597 596 list LL = geomGenusLA(f); // local analysis of singularities 598 597 int sizeLL2 = size(LL[2]); … … 607 606 return(ideal(1)); 608 607 } 609 int k;608 int j,k; 610 609 list rl = ringlist(RP2); 611 610 rl[2] = list(var(1), var(2)); 612 611 rl[3] = list(list("dp",1:2),list("C",0)); 613 612 def Rdummy = ring(rl); 614 setring Rdummy;615 613 ideal B; 616 614 if(sizeLL3==0){B = 1;} // no ordinary multiple points … … 619 617 // (other than nodes) 620 618 { 619 setring Rdummy; 621 620 list OMP = imap(RP2,LL3); 622 621 int ub; … … 646 645 int i = ub; 647 646 setring RP2; 647 for(k=lb;k<=ub;k++) 648 { 649 ideal A(k) = homog(std(fetch(Rdummy,A(k))),var(3)); 650 } 648 651 B = maxideal(n-i); 649 B = subst(B,var(3),1);650 B[1] = 0;651 setring Rdummy;652 B = imap(RP2,B);653 652 ideal A; 654 653 while(i>=lb) 655 654 { 656 655 A = A(i)**(i-1); 656 j=1; 657 while(j<=ncols(A)) 658 { 659 if(deg(A[j]>(n-2))) 660 { 661 A = sat(A, maxideal(1))[1]; 662 break; 663 } 664 j = j+1; 665 } 657 666 B = intersect(B,A); 658 667 i = i-1; 659 668 } 660 669 } //end else 661 ideal LL4 = imap(RP2,LL4); 662 B = intersect(B,LL4); // take nodes and cusps into account 670 B = intersect(B,homog(std(LL4),var(3))); // add nodes and cusps 663 671 if(sizeLL2==0) // ordinary multiple points plus cusps only 664 672 { 665 setring RP2; 666 ideal AI = imap(Rdummy, B); 667 AI = homog(std(AI),var(3)); 668 AI = sat(AI, maxideal(1))[1]; 673 ideal AI = sat(B, maxideal(1))[1]; 669 674 AI = minbase(AI); 670 675 setring Roriginal; 671 676 return(imap(RP2,AI)); 672 677 } 678 setring Rdummy; 673 679 poly f = imap(RP2,dhf); 674 680 ideal SL = jacob(f),f; 675 SL = sat(SL, LL4)[1];681 SL = sat(SL, fetch(RP2,LL4))[1]; 676 682 if(sizeLL3!=0) 677 683 { … … 685 691 int pd = size(PD); 686 692 setring RP2; 687 B = imap(Rdummy,B);688 693 list PD = imap(Rdummy,PD); 689 694 ideal AI = 1; … … 693 698 size(choices)))); 694 699 } 700 AI = homog(std(AI),var(3)); 695 701 AI = intersect(AI,B); 696 AI = homog(std(AI),var(3));697 702 AI = sat(AI, maxideal(1))[1]; 698 703 AI = minbase(AI); … … 884 889 885 890 example 886 { "EXAMPLE:"; echo=2;891 { "EXAMPLE:"; 887 892 ring R = 0,(x,y,z),dp; 888 893 poly f = y^8-x^3*(z+x)^5; … … 896 901 proc rncAntiCanonicalMap(ideal I) 897 902 "USAGE: rncAntiCanonicalMap(I); I ideal 898 ASSUME: I is a homogeneous ideal in the basering 903 ASSUME: I is a homogeneous ideal in the basering 899 904 defining a rational normal curve C in PP^n. 900 905 NOTE: The procedure will fail or give a wrong output if I is not the … … 926 931 927 932 example 928 { "EXAMPLE:"; echo=2;933 { "EXAMPLE:"; 929 934 ring R = 0,(x,y,z),dp; 930 935 poly f = y^8-x^3*(z+x)^5; … … 940 945 proc rncItProjOdd(ideal I) 941 946 "USAGE: rncItProjOdd(I); I ideal 942 ASSUME: I is a homogeneous ideal in the basering with n+1 variables 947 ASSUME: I is a homogeneous ideal in the basering with n+1 variables 943 948 defining a rational normal curve C in PP^n with n odd. 944 949 NOTE: The procedure will fail or give a wrong output if I is not the … … 1037 1042 1038 1043 example 1039 { "EXAMPLE:"; echo=2;1044 { "EXAMPLE:"; 1040 1045 ring R = 0,(x,y,z),dp; 1041 1046 poly f = -x7-10x5y2-10x4y3-3x3y4+8x2y5+7xy6+11y7+3x6+10x5y +30x4y2 … … 1054 1059 proc rncItProjEven(ideal I) 1055 1060 "USAGE: rncItProjEven(I); I ideal 1056 ASSUME: I is a homogeneous ideal in the basering with n+1 variables 1061 ASSUME: I is a homogeneous ideal in the basering with n+1 variables 1057 1062 defining a rational normal curve C in PP^n with n even. 1058 1063 NOTE: The procedure will fail or give a wrong output if I is not the 1059 1064 ideal of a rational normal curve. It will test whether n is odd. 1060 1065 RETURN: ring with an ideal CONIC defining a conic C2 in PP^2.@* 1061 In addition, an ideal PHI in the basering defining an isomorphic 1066 In addition, an ideal PHI in the basering defining an isomorphic 1062 1067 projection of C to C2 will be exported.@* 1063 1068 Note that the entries of PHI should be considered as … … 1157 1162 1158 1163 example 1159 { "EXAMPLE:"; echo=2;1164 { "EXAMPLE:"; 1160 1165 ring R = 0,(x,y,z),dp; 1161 1166 poly f = y^8-x^3*(z+x)^5; … … 1696 1701 } 1697 1702 example 1698 { "EXAMPLE:"; echo=2;1703 { "EXAMPLE:"; 1699 1704 ring R = 0,(x,y,z),dp; 1700 1705 poly f = y^8-x^3*(z+x)^5; … … 2070 2075 bigint g = gcd(b_r, c_r); 2071 2076 ideal mi = maxideal(1); 2072 def S=basering;2073 2077 map mm = basering, mi; map mTemp; 2074 2078 mm[1] = var(1); mm[2] = var(2)/b_s/g; mm[3] = var(3)/c_s/g; … … 2314 2318 2315 2319 example 2316 { "EXAMPLE:"; echo=2;2320 { "EXAMPLE:"; 2317 2321 ring r = 0, (x,y,z, u, v, w), dp; 2318 2322 poly p = x^2 + 2*y^2 + 5*z^2 - 4*x*y + 3*x*z + 17*y*z; … … 2510 2514 2511 2515 example 2512 { "EXAMPLE:"; echo=2;2516 { "EXAMPLE:"; 2513 2517 ring R = 0, (x,y,z), dp; 2514 2518 system("random", 4711); … … 2532 2536 RETURN: int which is 1 if PARA defines a parametrization of the curve 2533 2537 {f=0} and 0, otherwise. 2534 THEORY: We compute the polynomial defining the image of PARA 2538 THEORY: We compute the polynomial defining the image of PARA 2535 2539 and compare it with f. 2536 2540 KEYWORDS: Parametrization, image. … … 2572 2576 2573 2577 example 2574 { "EXAMPLE:"; echo=2;2578 { "EXAMPLE:"; 2575 2579 ring R = 0,(x,y,z),dp; 2576 2580 poly f = y^8-x^3*(z+x)^5; … … 2610 2614 2611 2615 example 2612 { "EXAMPLE:"; echo=2;2616 { "EXAMPLE:"; 2613 2617 ring R = 0, (x,y,z), dp; 2614 2618 system("random", 4711); … … 2779 2783 adjointIdeal(f,1); 2780 2784 adjointIdeal(f,2); 2781 def RP1 = paraPlaneCurve(f); // time 52785 def RP1 = paraPlaneCurve(f); // time 14 2782 2786 testParametrization(f,RP1); 2783 2787 setring RP1; PARA; … … 2907 2911 else 2908 2912 { "point does not lie on conic"; } 2913 kill R;kill S; 2909 2914 // ------------------------------------------------------- 2910 2915 // Example 21 … … 2919 2924 else 2920 2925 { "point does not lie on conic"; } 2926 kill R;kill S; 2927 // ------------------------------------------------------- 2928 // Example 21 2929 // ------------------------------------------------------- 2930 ring RR = 0, (x,y,z), dp; 2931 poly f = -1965466244509920x5y+34871245546721380061760x4y2; 2932 f = f+104613747941595046117320x3y3+113331564241941002407560x2y4; 2933 f = f+52306876673313609259800xy5+8717812860780028397880y6; 2934 f = f+1040297748510024x5z+4468147845634872x4yz; 2935 f = f-22398508728211453743258x3y2z-33223996581074443306854x2y3z; 2936 f = f-10638598235041298082366xy4z+186886189971594356382y5z; 2937 f = f-1385078844909312x4z2-34893092731637052532683x3yz2; 2938 f = f-98591463214095439056609x2y2z2-92339459334829609336485xy3z2; 2939 f = f-24923289542522905755711y4z2+472440640471377x3z3; 2940 f = f+33821511925664516716011x2yz3+49745237303968344397437xy2z3; 2941 f = f+11040465960074786720475y3z3+8728735735878837099404x2z4; 2942 f = f+17676785754519678518537xyz4+17935885079051421934609y2z4; 2943 f = f-11314701999743172607075xz5-16164284825803158969425yz5; 2944 f = f+3666695988537425618750z6; 2945 // 4 nodes, 1 OMP of mult 4 2946 adjointIdeal(f,2); 2947 kill RR; 2921 2948 */
Note: See TracChangeset
for help on using the changeset viewer.