- Timestamp:
- May 15, 2020, 9:38:32 PM (4 years ago)
- Branches:
- (u'fieker-DuVal', '117eb8c30fc9e991c4decca4832b1d19036c4c65')(u'spielwiese', 'c5facdfddea2addfd91babd8b9019161dea4b695')
- Children:
- 417a505a76f1137fb518b138cd109cc196892108
- Parents:
- 1891fdca7cd3ff90403d60c1fe5e78ea9219f02c
- Location:
- Singular/LIB
- Files:
-
- 24 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/LIB/brnoeth.lib
r1891fd r20f2239 405 405 // computes : (closed affine non-singular) points over an extension of 406 406 // degree d 407 // remark(1) : singular points are supposed to be listed ap part407 // remark(1) : singular points are supposed to be listed apart 408 408 // remark(2) : std SL=s_locus(f) is supposed to be computed in advance 409 409 // remark(3) : ideal SL is used to remove those points which are singular … … 489 489 { 490 490 // computes : (closed affine non-singular) points of degree d 491 // remark(1) : singular points are supposed to be listed ap part491 // remark(1) : singular points are supposed to be listed apart 492 492 // remark(2) : std SL=s_locus(f) is supposed to be computed in advance 493 493 list L=closed_points_ext(f,d,SL); … … 508 508 static proc idealSubset (ideal I,ideal J) 509 509 { 510 // checks w ether I is contained in J and returns a boolean510 // checks whether I is contained in J and returns a boolean 511 511 // remark : J is assumed to be given by a standard basis 512 512 int s=ncols(I); … … 712 712 { 713 713 // computes the degree of a list of type HNE which is actually defined over 714 // F_{p^r} even though it is given in an extension of such field714 // F_{p^r} even though it is given in an extension of such field 715 715 int gr=1; 716 716 int rd=res_deg() div r; … … 860 860 static proc importdatum (def sf,string datum,string rel) 861 861 { 862 // fetch s a poly with name "datum" to the current basering from the ring sf862 // fetches a poly with name "datum" to the current basering from the ring sf 863 863 // such that the generator is given by string "rel" 864 864 // warning : ring sf must have only variables (x,y) and basering must have … … 893 893 static proc rationalize (def lf,string datum,string rel) 894 894 { 895 // fetch s a poly with name "datum" to the current basering from the ring lf895 // fetches a poly with name "datum" to the current basering from the ring lf 896 896 // and larger coefficients field, where the generator of current ring is 897 897 // given by string "rel" and "datum" is actually defined over the small … … 3264 3264 // computes a local equation of polynomial H in the ring SS related to the place 3265 3265 // "m" 3266 // list POINT/POINTS is searched depending on w ether m=0 or m>0 respectively3266 // list POINT/POINTS is searched depending on whether m=0 or m>0 respectively 3267 3267 // warning : the procedure must be called from ring "Proj_R" and returns a 3268 3268 // string … … 3476 3476 // simplifies a rational function f/g extracting the gcd(f,g) 3477 3477 // maybe add a "restriction" to the curve "CHI" but it is not easy to 3478 // program m3478 // program 3479 3479 poly auxp=gcd(F[1],F[2]); 3480 3480 return(ideal(division(F,auxp)[1])); … … 3611 3611 // Brill-Noether 3612 3612 // returns 2 lists : the first consists of all the poles up to m in 3613 // increasing order and the second consists of the correspon ging rational3613 // increasing order and the second consists of the corresponding rational 3614 3614 // functions 3615 3615 list Places=CURVE[3]; … … 4191 4191 { 4192 4192 def S(i)=CURVE[5][i][1]; 4193 // embed dS(i) inside basering == RatPl " ==S(d) "4193 // embed S(i) inside basering == RatPl " ==S(d) " 4194 4194 olda=subfield(S(i)); 4195 4195 setring S(i); … … 4557 4557 sol=(number(1)/number(pivote))*sol; 4558 4558 } 4559 // check at least that the number of com itted errors is less than half4559 // check at least that the number of committed errors is less than half 4560 4560 // the Goppa distance 4561 4561 // imposing Hamming_wt(sol)<=K[n+3][1] would be more correct, but maybe -
Singular/LIB/chern.lib
r1891fd r20f2239 72 72 tdCf(n); the coefficients of the Todd class of a line bundle 73 73 tdTerms(n, f); the terms of the Todd class of a line bundle 74 cor esponding to the Chern root t75 tdFactor(n, t); the Todd class of a line bundle cor esponding74 corresponding to the Chern root t 75 tdFactor(n, t); the Todd class of a line bundle corresponding 76 76 to the Chern root t 77 77 cProj(n); the total Chern class of (the tangent bundle on) … … 275 275 int sign; 276 276 poly f; 277 for(i=1; i<=N; i++) // use the re sursive formula277 for(i=1; i<=N; i++) // use the recursive formula 278 278 { 279 279 f=0; … … 327 327 int i, j; 328 328 poly f; 329 for(i=1; i<=N; i++) // use the re sursive formula329 for(i=1; i<=N; i++) // use the recursive formula 330 330 { 331 331 f=0; … … 514 514 EXAMPLE: example powSumSym; shows an example 515 515 NOTE: returns the terms of the Chern character 516 multiplied by the correspo ding factorials516 multiplied by the corresponding factorials 517 517 " 518 518 { … … 535 535 else // if the optional parameter is not an integer, then 536 536 { 537 n=size(c); // i ngore it and set n to be the length of c537 n=size(c); // ignore it and set n to be the length of c 538 538 } 539 539 } … … 934 934 else // otherwise define the rank of the product vector bundle by 935 935 { 936 n=size(c)*size(C); // looking at the leng hts of c and C936 n=size(c)*size(C); // looking at the lengths of c and C 937 937 } 938 938 if( size(#) != 0 ) // if there is an optional parameter … … 1591 1591 // the higher classes are assumed to be zero and the list is appended by zeroes up to length r 1592 1592 c=append_by_zeroes(r, c); 1593 // if the leng htof the list of the Chern classes is greater than the rank1593 // if the length of the list of the Chern classes is greater than the rank 1594 1594 c=c[1..r]; // throw away the redundant data 1595 1595 //----------------------------------- 1596 // from now on the leng htof c is r>01596 // from now on the length of c is r>0 1597 1597 //----------------------------------- 1598 1598 if(k<0) … … 1670 1670 for(j=1; j <= NN; j++) // process the optional parameters 1671 1671 { 1672 // process the optional parameters only until lthey are not bigger than N;1672 // process the optional parameters only until they are not bigger than N; 1673 1673 // notice they are positive anyway after integer_list(...) 1674 1674 if( #[j]<=N ) … … 1976 1976 for(j=1; j <= NN; j++) // process the optional parameters 1977 1977 { 1978 // process the optional parameters only until lthey are not bigger than N;1978 // process the optional parameters only until they are not bigger than N; 1979 1979 // notice they are positive anyway after integer_list(...) 1980 1980 if( #[j]<=N ) … … 2425 2425 RETURN: polynomial 2426 2426 PURPOSE: computes up to degree n the Todd class 2427 of the line bundle cor esponding to the Chern root t2427 of the line bundle corresponding to the Chern root t 2428 2428 EXAMPLE: example tdFactor; shows an example 2429 2429 NOTE: returns 0 if n is negative … … 2581 2581 RETURN: polynomial 2582 2582 PURPOSE: computes the Euler characteristic of a vector bundle on P_n 2583 in terms of its rank and Chern class ses2583 in terms of its rank and Chern classes 2584 2584 EXAMPLE: example eulerChProj; shows an example 2585 2585 NOTE: … … 2987 2987 "USAGE: PartC( I, m); I list of integers, m integer 2988 2988 RETURN: list of integers 2989 PURPOSE: com mputes the complement of a partition with respect to m2989 PURPOSE: computes the complement of a partition with respect to m 2990 2990 EXAMPLE: example PartC; shows an example 2991 2991 NOTE: returns the zero partition if the maximal element of the partition is smaller than m … … 3031 3031 // give a warning 3032 3032 print("You are trying to compute partitions over an empty partition!"); 3033 return( list() ); // and return the em ty list3033 return( list() ); // and return the empty list 3034 3034 } 3035 3035 if( J[m] > n ) // if the biggest summand of the partition is bigger than n 3036 3036 { 3037 return( list( ) ); // return the em ty list3037 return( list( ) ); // return the empty list 3038 3038 } 3039 3039 if( J[m] == 0 ) // if J consists of zeroes … … 3062 3062 P=rez[i]; // for each partition P of this type 3063 3063 last = max( P[size(P)], J[m] ); 3064 for(j = last;j<= n;j++) // run through the integers exce ding the last summands of P and J3064 for(j = last;j<= n;j++) // run through the integers exceeding the last summands of P and J 3065 3065 { 3066 3066 // append them to P at the end and add the resulting partition to the result … … 3483 3483 ring r = 0, (x, y, z), dp; 3484 3484 list l=(x, y, z); 3485 //append the list by two zeroes and get a list of leng ht53485 //append the list by two zeroes and get a list of length 5 3486 3486 print( append_by_zeroes(5, l) ); 3487 3487 } … … 3523 3523 RETURN: list 3524 3524 PURPOSE: gets the first positive ingerer entries of l, computes their maximum; 3525 used for adjusting the lists of optional parameters that are sup osed to be integers3525 used for adjusting the lists of optional parameters that are supposed to be integers 3526 3526 EXAMPLE: example integer_list; shows an example 3527 3527 NOTE: used in chWedge(...) and chSymm(...) … … 3779 3779 ring r = 0, (x, y, z), dp; 3780 3780 list l=(1, 2, 3); 3781 //append the list by two zeroes and get a list of leng ht53781 //append the list by two zeroes and get a list of length 5 3782 3782 print( apn0_int(5, l) ); 3783 3783 } … … 3943 3943 print(I); 3944 3944 ideal J=equal_deg(I); 3945 // now the ideal is generated by eleme ts of degree 23945 // now the ideal is generated by elements of degree 2 3946 3946 // and defines the same subscheme in the projective plane 3947 3947 J; -
Singular/LIB/cisimplicial.lib
r1891fd r20f2239 27 27 nonnegative integral solution 28 28 cardGroup(A); computes the cardinal of Z^m / ZA 29 isCI(A); checks w ether I(A) is a complete intersection29 isCI(A); checks whether I(A) is a complete intersection 30 30 "; 31 31 … … 417 417 If a third parameter k is introduced, it will only consider the 418 418 first k columns of A. 419 ASSUME: A is a matrix with nonnegative entries, nonzero colum s,419 ASSUME: A is a matrix with nonnegative entries, nonzero columns, 420 420 v is a nonnegative vector and nrows(v) = nrows(A). 421 421 EXAMPLE: example belongSemigroup; shows some examples. … … 700 700 control[a + max] = 0; // Ending node 701 701 int current = 1; // Current node 702 int next; // Node connected to c orrent by arc (current, next)702 int next; // Node connected to current by arc (current, next) 703 703 704 704 int ElemQueue, ElemQueue2; … … 774 774 USAGE: CheckMin(posiblemin,A,column[,n]); posiblemin is an integer, 775 775 A is an integral matrix and column and last are integers. 776 RETURN: 1 if posiblemin is the minimum value x such that x * (column-th colum of A)776 RETURN: 1 if posiblemin is the minimum value x such that x * (column-th column of A) 777 777 belongs to the semigroup generated by all the columns of A except 778 778 A_column. It returns 0 otherwise. If an extra parameter n is … … 783 783 784 784 // If one can write (posiblemin-1)*A_column as a non-trivial combination of the 785 // colum s of A, then posiblemin is > to the real minimum785 // columns of A, then posiblemin is > to the real minimum 786 786 intvec counters, multip; 787 787 counters[ncols(A)] = 0; … … 893 893 { 894 894 // If one can write (posiblemin-1)*A_column as a non-trivial combination of the 895 // colum s of A, then posiblemin is > than the real minimum895 // columns of A, then posiblemin is > than the real minimum 896 896 897 897 int last; … … 1101 1101 returns 0 if it is not necessary to compute for the main program. 1102 1102 If an extra parameter n is introuduced it considers the first n 1103 colum s of A.1103 columns of A. 1104 1104 ASSUME: 1 <= column [<= n] <= ncols(A), A has nonnegative entries, line is 1105 1105 a vector such that line[i] = line[j] if and only if the i-th and … … 1132 1132 } 1133 1133 1134 // We will only consider those colum s A_j such that line[j] = line[column]1134 // We will only consider those columns A_j such that line[j] = line[column] 1135 1135 intvec prop, jthcolumn; 1136 1136 for (j = 1; j <= last; j++) … … 1494 1494 else 1495 1495 { 1496 // We check w ether m_i b_i belongs to the semigroup generated by V_k1496 // We check whether m_i b_i belongs to the semigroup generated by V_k 1497 1497 // where k = swap[i]. All vectors in V_k are proportional to b_i 1498 1498 intvec checkbelong; … … 1542 1542 else 1543 1543 { 1544 // We check w ether m_j b_j belongs to the semigroup generated by V_k1544 // We check whether m_j b_j belongs to the semigroup generated by V_k 1545 1545 // where k = swap[j]. All vectors in V_k are proportional to b_j 1546 1546 intvec checkbelong; -
Singular/LIB/classify.lib
r1891fd r20f2239 16 16 classify(f); normal form of polynomial f determined with Arnold's method 17 17 corank(f); computes the corank of f (i.e. of the Hessian of f) 18 Hcode(v); coding of intvec v ac oording to the number repetitions18 Hcode(v); coding of intvec v according to the number repetitions 19 19 init_debug([n]); print trace and debugging information depending on int n 20 20 internalfunctions();display names of internal procedures of this library … … 1744 1744 if( ShowPhi > 1) { PhiG; } 1745 1745 1746 //------------------------ compute split ing lemma -----------------------------1746 //------------------------ compute splitting lemma ----------------------------- 1747 1747 fc = fi; 1748 1748 i = 1; // Index fuer Variablen wird bearbeitet … … 2062 2062 { 2063 2063 if(Mult == 1) { return("V:doubleline + line"); } // x2y 2064 if(Mult == 2) { return("V': trip ple line"); } // x32064 if(Mult == 2) { return("V': triple line"); } // x3 2065 2065 } 2066 2066 if(Dim == 3) { return("P[9]:nodal cubic"); } // x3 + y3 + xyz … … 2455 2455 proc singularity(string typ, list #) 2456 2456 "USAGE: singularity(t, l); t=string (name of singularity), 2457 l=list of integers/polynomials (indices/par meters of singularity)2457 l=list of integers/polynomials (indices/parameters of singularity) 2458 2458 COMPUTE: get the singularity named by type t from the database. 2459 2459 list l is as follows: @* … … 2658 2658 when to print the list of strings. init_debug() reports only 2659 2659 changes of @DeBug. 2660 NOTE: The procedure init_debug(n); is useful las trace-mode. n may2660 NOTE: The procedure init_debug(n); is useful as trace-mode. n may 2661 2661 range from 0 to 10, higher values of n give more information. 2662 2662 EXAMPLE: example init_debug; shows an example" … … 2737 2737 "USAGE: corank(f); f=poly 2738 2738 RETURN: the corank of the Hessian matrix of f, of type int 2739 REMARK: corank(f) is the number of variables occur ing in the residual2739 REMARK: corank(f) is the number of variables occurring in the residual 2740 2740 singularity after applying 'morsesplit' to f 2741 2741 EXAMPLE: example corank; shows an example" -
Singular/LIB/classify2.lib
r1891fd r20f2239 965 965 poly equ; 966 966 for (int i=2;i<=size(L[1]);i++){if (deg(L[1][i])==1){equ=L[1][i];break;}} 967 if (equ==0){ERROR("There should be a tran formation on the diagonal defined over the current field");}967 if (equ==0){ERROR("There should be a transformation on the diagonal defined over the current field");} 968 968 number a1=number(subst(equ,aa,0)); 969 969 number a2=number(diff(equ,aa)); -
Singular/LIB/classifyMapGerms.lib
r1891fd r20f2239 79 79 "USAGE: coDim(module M, module N, ideal I,int bound, list #); M is a submodule 80 80 in A^r over the basering=:A, N is a submodule in R^r over the subring 81 R of the basering gen rated by the entries of I81 R of the basering generated by the entries of I 82 82 COMPUTE: computes the K-vectorspace dimension of A^r/M+N+maxideal(bound)*A^r 83 83 RETURN: an integer … … 139 139 proc vStd(module M, module N, ideal I,int bound) 140 140 "USAGE: vStd(M, N, I, bound);M is a submodule in A^r over the basering=:A, 141 N ist a submodule in R^r over the subring R of the basering gen rated141 N ist a submodule in R^r over the subring R of the basering generated 142 142 by the entries of I 143 143 COMPUTE: a standard basis of M+N+maxideal(bound)*A^r … … 184 184 "USAGE: vStd(M, N, I, bound);M is a submodule generated by one element in A^r over the 185 185 basering=:A, N ist a submodule in R^r over the subring R of the basering 186 gen rated by the entries of I186 generated by the entries of I 187 187 COMPUTE: a standard basis of M+N+maxideal(bound)*A^r 188 188 RETURN: a list whose ist entry gives a list where each entry is a genrator of … … 321 321 "USAGE: computeN(M, N, I, bound) M is a submodule in A^r over the basering=:A 322 322 N ist a submodule in R^r over the subring R of the basering 323 gen rated by the entries of I323 generated by the entries of I 324 324 COMPUTE: all products of powers of generators of I with N 325 325 " … … 363 363 "USAGE: myReduceM(N, M, bound) M is a submodule in A^r over the basering=:A 364 364 N ist a submodule in R^r over the subring R of the basering 365 gen rated by the entries of I365 generated by the entries of I 366 366 COMPUTE: myReduce for ideals 367 367 " … … 644 644 "USAGE: modVStd0((M, N, I,bound, #); M is a submodule 645 645 in A^r over the basering=:A, N ist a submodule in R^r over the subring 646 R of the basering gen rated by the entries of I646 R of the basering generated by the entries of I 647 647 COMPUTE: a standard basis of M+N+maxideal(bound)*A^r using the parallel modular 648 648 version … … 691 691 "USAGE: modVStd((M, N, I,bound, #); M is a submodule 692 692 in A^r over the basering=:A, N ist a submodule in R^r over the subring 693 R of the basering gen rated by the entries of I693 R of the basering generated by the entries of I 694 694 COMPUTE: a standard basis of A^r/M+N+maxideal(bound)*A^r using modular version 695 695 RETURN: a list whose ist entry gives a list where each entry is a genrator of -
Singular/LIB/classifyceq.lib
r1891fd r20f2239 560 560 { 561 561 // input poly p 562 // output The normal form to which f is contact equ valent or the function is not simple.562 // output The normal form to which f is contact equivalent or the function is not simple. 563 563 def R=basering; 564 564 int t=tjurina(p); … … 822 822 if(size(lengthBL(f))==4) 823 823 { 824 ret run("The given function defines an isolated Singularity.824 return("The given function defines an isolated Singularity. 825 825 The Tjurina number is "+string(tjurina(f))+". 826 826 E^0[7]:z2+x3+xy3."); … … 1113 1113 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 1114 1114 static proc whichSUR(poly f) 1115 //====This procedure is required to separate the Surface Case D_2m from D_2m+1 as d iscribes in [2].1115 //====This procedure is required to separate the Surface Case D_2m from D_2m+1 as describes in [2]. 1116 1116 { 1117 1117 int d=tjurina(f); -
Singular/LIB/classifyci.lib
r1891fd r20f2239 669 669 static proc typejet2(poly g1,poly g2) 670 670 "USAGE: typejet2(g1,g2); g1,g2 are polynomials 671 ASSUME: g1,g2 are homogen ous polynomials of degree 2671 ASSUME: g1,g2 are homogeneous polynomials of degree 2 672 672 PURPOSE: Check whether (g1,g2) is a quadratic form in the list of Guisti or not 673 673 RETURN: string type for the quadratic forms appearing in Guist's list … … 1019 1019 { 1020 1020 T=WSemigroup(TTT,w); 1021 A[e]=T[1]; // inter sted only in semigroup1021 A[e]=T[1]; // interested only in semigroup 1022 1022 e++; 1023 1023 } -
Singular/LIB/control.lib
r1891fd r20f2239 900 900 { 901 901 M[i] = std(M[i]); 902 // M[i] = prune(M[i]); // mi mimal embedding: no need yet902 // M[i] = prune(M[i]); // minimal embedding: no need yet 903 903 // M[i] = std(M[i]); 904 904 } … … 1417 1417 "USAGE: controlExample(s); s a string 1418 1418 RETURN: ring 1419 PURPOSE: set up an example from the mini database by init alizing a ring and a module in a ring1419 PURPOSE: set up an example from the mini database by initializing a ring and a module in a ring 1420 1420 NOTE: in order to see the list of available examples, execute @code{controlExample(\"show\");} 1421 1421 @* To use an example, one has to do the following. Suppose one calls the ring, where the example will be activated, A. Then, by executing -
Singular/LIB/crypto.lib
r1891fd r20f2239 867 867 if(n==1){return(re);} 868 868 869 //this is optional: test whether a prime of the list # d evides n869 //this is optional: test whether a prime of the list # divides n 870 870 if(size(#)>0) 871 871 { … … 1846 1846 RETURN: a factor of N or the message no factor found 1847 1847 NOTE: - computes a factor of N using Lenstra's ECM factorization@* 1848 - the idea is that the fact that N is not prime is de dected using1848 - the idea is that the fact that N is not prime is detected using 1849 1849 the operations on the elliptic curve 1850 1850 - is similarly to Pollard's p-1-factorization … … 1879 1879 M=M*w; 1880 1880 P=ellipticMult(N,L[1],L[2]^2,P,w); 1881 if(size(P)==4){return(P[4]);} //some inverse did not ex sist1881 if(size(P)==4){return(P[4]);} //some inverse did not exist 1882 1882 if(P[3]==0){break;} //the case M*P=0 1883 1883 } … … 2760 2760 while((counter<=size(worksack))&&(sol>0)) 2761 2761 { 2762 //Try to sub stract an element of the knapsack from the capacity. Create a list with all the summands used2762 //Try to subtract an element of the knapsack from the capacity. Create a list with all the summands used 2763 2763 calcu = sol-worksack[counter]; 2764 2764 if (calcu>=0) … … 2774 2774 } 2775 2775 2776 //Get the index of the summands of the original knapsack and change the bits in the binary list w ich will be the solution2776 //Get the index of the summands of the original knapsack and change the bits in the binary list which will be the solution 2777 2777 list binary_list; 2778 2778 for (i=1;i<=size(knapsack);i++) … … 2878 2878 minmax_list = bubblesort(minmax_list); 2879 2879 2880 //insert Element y_i into y_list, w ich is the smallest of (b_i/w_ij) like in the PECH algorithm description.2880 //insert Element y_i into y_list, which is the smallest of (b_i/w_ij) like in the PECH algorithm description. 2881 2881 y_list = insert(y_list,minmax_list[size(minmax_list)],size(y_list)); 2882 2882 … … 2909 2909 output_list[E[index]]=1; 2910 2910 2911 //Update the capacities by sub stracting the weights of the selection2911 //Update the capacities by subtracting the weights of the selection 2912 2912 for (i=1;i<=size(capacities);i++) 2913 2913 { … … 3491 3491 int set_destination; 3492 3492 3493 //create list of lists w ich contain the lists of a certain length as elements3493 //create list of lists which contain the lists of a certain length as elements 3494 3494 for (i = 1; i<= size(subsetlist); i++) 3495 3495 { 3496 //Determine the size of the ac utal list to choose where to insert it in the listoflists3496 //Determine the size of the actual list to choose where to insert it in the listoflists 3497 3497 set_destination = size(subsetlist[i]); 3498 3498 if (set_contains(alreadycreatedlist,set_destination)==1) … … 3509 3509 } 3510 3510 3511 //Check for injectivity of each sep erate list. Works as in injectivity or h-injectivity3511 //Check for injectivity of each separate list. Works as in injectivity or h-injectivity 3512 3512 for (v=1; v<=size(listoflists); v++) 3513 3513 { … … 3633 3633 number s=ki*(h+a*r) mod q; //2065 3634 3634 3635 //========== signatur is (r,s)=(76646,2065) =====================3635 //========== signature is (r,s)=(76646,2065) ==================== 3636 3636 //==================== verification ============================ 3637 3637 -
Singular/LIB/curveInv.lib
r1891fd r20f2239 430 430 ASSUME: - the basering is the normalization of R/P, where P is a prime 431 431 - Der_P is the module of P-preserving derivations 432 - U contain ts the generators of the normalization of R/P432 - U contains the generators of the normalization of R/P 433 433 - relid is the ideal of relations that hold in the normalization of R/P 434 434 RETURN: the colength of derivations of R/P … … 475 475 ASSUME: - the basering is the normalization of R/P, where P is prime 476 476 - Der_P is the module of P-preserving derivations (with adjusted generators) 477 - U contain ts the generators of the normalization of R/P477 - U contains the generators of the normalization of R/P 478 478 - relid is the ideal of relations that hold in the normalization of R/P 479 479 RETURN: The derivation module lifted to the normalization -
Singular/LIB/curvepar.lib
r1891fd r20f2239 1061 1061 proc WSemigroup(list X,int b0) 1062 1062 "USAGE: WSemigroup(X,b0); 1063 X a list of pol inomials in one vaiable, say t.1063 X a list of polynomials in one variable, say t. 1064 1064 b0 an integer 1065 1065 COMPUTE: Weierstrass semigroup of space curve C,which is given by a parametrization … … 1071 1071 M[2]=integer, conductor of the Weierstrass semigroup. 1072 1072 M[3]=intvec, all elements of the Weierstrass semigroup till some bound b, 1073 which is great her than conductor.1073 which is greater than conductor. 1074 1074 WARNING: works only over the ring with one variable with ordering ds 1075 1075 EXAMPLE: example WSemigroup; shows an example" -
Singular/LIB/deRham.lib
r1891fd r20f2239 14 14 REFERENCES: 15 15 [OT] Oaku, T.; Takayama, N.: Algorithms of D-modules - restriction, tensor product, 16 local zation, and local cohomology groups}, J. Pure Appl. Algebra 156, 267-30816 localization, and local cohomology groups}, J. Pure Appl. Algebra 156, 267-308 17 17 (2001) 18 18 [R] Rottner, C.: Computing de Rham Cohomology,diploma thesis (2012)@* … … 59 59 one of the strings@* 60 60 -'iterativeloc': compute localizations by factorizing the polynomials and 61 suc essive localization of the factors @*61 successive localization of the factors @* 62 62 -'no iterativeloc': compute localizations by directly localizing the 63 63 product@* 64 64 and one of the strings 65 -'onlybounds': computes bounds for the minimal and maximal inte rger roots65 -'onlybounds': computes bounds for the minimal and maximal integer roots 66 66 of the global b-function 67 67 -'exactroots' computes the minimal and maximal integer root of the global … … 1825 1825 } 1826 1826 } 1827 out[1]=list(list());//init alize our list1827 out[1]=list(list());//initialize our list 1828 1828 C[1][2][5]=out[2][1][1][1]; 1829 /*Compute the last V_d-strict seq eunce*/1829 /*Compute the last V_d-strict sequence*/ 1830 1830 if (Syzstring=="Vdres") 1831 1831 { … … 3418 3418 if (size(L[i][2][5][j])!=0) 3419 3419 { 3420 //horizon al differential P^i_j->P^(i-1)_j3420 //horizontal differential P^i_j->P^(i-1)_j 3421 3421 nr=nrows(L[i][2][3][j])-nrows(L[i][2][5][j]); 3422 3422 out[i][j+1][4]=(-1)^j*prodr(nr,nrows(L[i][2][5][j])); … … 3438 3438 for (k=1; k<=Min(list(oldj,newj)); k++) 3439 3439 { 3440 /*horizon al differential P^(i-1)_(k-1)->P^i_(k-1)*/3440 /*horizontal differential P^(i-1)_(k-1)->P^i_(k-1)*/ 3441 3441 nr=nrows(out[i-1][k][4]); 3442 3442 out[i-1][k][4]=matrix(out[i-1][k][4],nr,out[i][k][1]); … … 4587 4587 setring Whom; 4588 4588 matrix Mnew=imap(W,M); 4589 list forMnew=homogenize(Mnew,d,v,1);//com mputes homogenization of M;4589 list forMnew=homogenize(Mnew,d,v,1);//computes homogenization of M; 4590 4590 Mnew=forMnew[1]; 4591 4591 int rightexp=forMnew[2]; -
Singular/LIB/decodegb.lib
r1891fd r20f2239 101 101 @end format 102 102 RETURN: the ring to work with the CRHT-ideal (with Sala's additions), 103 containi g an ideal with name 'crht'103 containing an ideal with name 'crht' 104 104 THEORY: Based on 'defset' of the given cyclic code, the procedure constructs 105 105 the corresponding Cooper-Reed-Heleseth-Truong ideal 'crht'. With its … … 477 477 - odd is an additional parameter: if 478 478 set to 1, then the defining set is enlarged by odd elements, 479 which are 2^(some power)*(some el ment in the def.set) mod n479 which are 2^(some power)*(some element in the def.set) mod n 480 480 @end format 481 481 RETURN: the ring with the resulting system called 'bin' … … 1737 1737 int i,j,k; 1738 1738 1739 //--------------- add vanishing re altions ---------------------1739 //--------------- add vanishing relations --------------------- 1740 1740 for (i=1; i<=t; i++) 1741 1741 { … … 1766 1766 result=simplify(result,8); 1767 1767 1768 //--------------- add check re altions --------------------1768 //--------------- add check relations -------------------- 1769 1769 poly sum; 1770 1770 matrix syn[m][1]=syndrome(check,y); … … 1907 1907 1908 1908 /////////////////////////////////////////////////////////////////////////////// 1909 // imitating two ind eces1909 // imitating two indices 1910 1910 static proc x_var (int i, int j, int s) 1911 1911 { … … 1978 1978 - ncodes is the number of random codes to be processed, 1979 1979 - ntrials is the number of received vectors per code to be corrected, 1980 - minpol: due to some pecul arities of SINGULAR one needs to provide1980 - minpol: due to some peculiarities of SINGULAR one needs to provide 1981 1981 minimal polynomial for the extension explicitly 1982 1982 @end format -
Singular/LIB/decomp.lib
r1891fd r20f2239 153 153 in the second case, it kills the user-defined control parameters and@* 154 154 resets to the default setting which will then 155 be di played. @* @*155 be displayed. @* @* 156 156 int DECMETH; Method for computing the univariate decomposition@* 157 157 0 : (default) Kozen-Landau @* … … 270 270 } 271 271 g = g + zeropart; 272 dbprint("* Suc essfully multivariate decomposed by a monomial"+newline);272 dbprint("* Successfully multivariate decomposed by a monomial"+newline); 273 273 return(ideal(g,monomial(minv))); 274 274 } … … 937 937 } 938 938 else { 939 dbprint("* Suc essfully multivariate decomposed"+newline);939 dbprint("* Successfully multivariate decomposed"+newline); 940 940 return(I); 941 941 } … … 1038 1038 1039 1039 // Determine ord(f); 1040 //cc = coef(f,vvar); // extract coeffic ents of f1040 //cc = coef(f,vvar); // extract coefficients of f 1041 1041 //print(cc); read(""); 1042 1042 … … 1121 1121 if (iscomposed) 1122 1122 { 1123 dbprint("** Suc essfully univariate decomposed with deg g = "+string(r)+newline);1123 dbprint("** Successfully univariate decomposed with deg g = "+string(r)+newline); 1124 1124 I = g,h; 1125 1125 } else { … … 1557 1557 // -- Example ------------- 1558 1558 1559 // Comparis ion Kozen-Landau vs. von zur Gathen1559 // Comparison Kozen-Landau vs. von zur Gathen 1560 1560 1561 1561 ring r02 = 0,(x,y),dp; -
Singular/LIB/deflation.lib
r1891fd r20f2239 132 132 static proc remove_constants(ideal H); 133 133 { 134 //remove con tants and scalar multiples from H134 //remove constants and scalar multiples from H 135 135 H=1,H; 136 136 H=simplify(H,2+4+8); -
Singular/LIB/difform.lib
r1891fd r20f2239 516 516 - a list of generators of a graded part of the differential algebra 517 517 REMARKS: In order to find all generators, they are counted 'binary': The generators are in 518 1:1 - correspond ance to the dual number representations of 1 up to (2^n-1)518 1:1 - correspondence to the dual number representations of 1 up to (2^n-1) 519 519 NOTE: - if all generators of the differential algebra are needed, apply the 520 520 procedure without input … … 676 676 677 677 // For the construction of more general differential forms, 678 // the constructor difformFromPoly is used implicit ely:678 // the constructor difformFromPoly is used implicitly: 679 679 680 680 difform dg = 3*x*dx - y*dy + dx*dy*dz + 1; … … 1849 1849 1850 1850 ///////////////////////////////////////////// 1851 // Sortation of list with str cture "Dlist" //1851 // Sortation of list with structure "Dlist" // 1852 1852 ///////////////////////////////////////////// 1853 1853 … … 1859 1859 1860 1860 ///////////////////////////////////////////// 1861 // Sortation of list with str cture "Llist" //1861 // Sortation of list with structure "Llist" // 1862 1862 ///////////////////////////////////////////// 1863 1863 … … 1925 1925 NOTE: - the differential is a map Omega_R^(p) -> Omega_R^(p+1) and this procedure applies 1926 1926 the differential to all homogeneous parts of df 1927 - this procedure can also be ap llied to polynomials - in this case it is just the universal derivation1927 - this procedure can also be applied to polynomials - in this case it is just the universal derivation 1928 1928 KEYWORDS: differential; universal; derivation 1929 1929 SEE ALSO: difformUnivDer … … 1989 1989 then it is set as structure list of phi 1990 1990 NOTE: the structure of L must follow the rules: 1991 - L[1] is a list of all degree-1 generators: all dx_i must occur eonce and no other1991 - L[1] is a list of all degree-1 generators: all dx_i must occur once and no other 1992 1992 differential forms are allowed. The order of the list is not important 1993 1993 - L[2] is the list of images of the dx_i: these must be polynomials … … 2046 2046 - Any degree-1 generator must occur once - this is checked via difformListCont 2047 2047 NOTE: like in derivationFromList, the structure of L must follow the rules: 2048 - L[1] is a list of all degree-1 generators: all dx_i must occur eonce and no other2048 - L[1] is a list of all degree-1 generators: all dx_i must occur once and no other 2049 2049 differential forms are allowed. The order of the list is not important 2050 2050 - L[2] is the list of images of the dx_i: these must be polynomials … … 2109 2109 RETURN: a derivation which maps any degree-1 generator to f 2110 2110 REMARKS: The degree-1 generators are returned by diffAlgebraListGen 2111 NOTE: the procedure allows to interpret epolynomials as derivations2111 NOTE: the procedure allows to interpret polynomials as derivations 2112 2112 KEYWORDS: constructor; derivation; polynomial 2113 2113 SEE ALSO: derivationConstructor, derivationFromList … … 2675 2675 structure list of phi are sorted the same way 2676 2676 NOTE: - the differential form 0 is allowed as input 2677 - an error will occur eif the given differential form is not of degree 1 or -12677 - an error will occur if the given differential form is not of degree 1 or -1 2678 2678 KEYWORDS: evaluation; derivation; application 2679 2679 SEE ALSO: difformListSort, difformCoef -
Singular/LIB/divisors.lib
r1891fd r20f2239 39 39 makeDivisor(ideal,ideal) create a divisor 40 40 divisorplus(divisor,divisor) add two divisors 41 multdivisor(int,divisor) multiply a divisor by an inte rger41 multdivisor(int,divisor) multiply a divisor by an integer 42 42 negativedivisor(divisor) compute the negative of the divisor 43 43 normalForm(divisor) normal form of a divisor … … 50 50 51 51 makeFormalDivisor(list) make a formal integer sum of divisors 52 evaluateFormalDivisor(formaldivisor) evalu tate a formal sum of divisors to a divisor52 evaluateFormalDivisor(formaldivisor) evaluate a formal sum of divisors to a divisor 53 53 formaldivisorplus(formaldivisor,formaldivisor) add two formal divisors 54 54 negativeformaldivisor(formaldivisor) compute the negative of the formal divisor 55 multformaldivisor(int,formaldivisor) multiply a formal divisor by an inte rger55 multformaldivisor(int,formaldivisor) multiply a formal divisor by an integer 56 56 degreeFormalDivisor(formaldivisor) degree of a formal divisor 57 57 -
Singular/LIB/dmod.lib
r1891fd r20f2239 442 442 dbprint(ppl-1, I); 443 443 matrix M = syz(I); 444 M = transpose(M); // it is more useful lworking with columns444 M = transpose(M); // it is more useful working with columns 445 445 dbprint(ppl,"// -1-2- the module syz(-F,_Dx(F)) has been computed"); 446 446 dbprint(ppl-1, M); … … 530 530 531 531 // alternative code for SannfsBM, renamed from annfsBM to ALTannfsBM 532 // is superfluo s - will not be included in the official documentation532 // is superfluous - will not be included in the official documentation 533 533 static proc ALTannfsBM (poly F, list #) 534 534 "USAGE: ALTannfsBM(f [,eng]); f a poly, eng an optional int … … 851 851 L[1] = RL[1]; 852 852 L[4] = RL[4]; //char, minpoly 853 // check whether vars hav aadmissible names -> done earlier853 // check whether vars have admissible names -> done earlier 854 854 // now, create the names for new var 855 855 tmp[1] = "s"; … … 1081 1081 L[1] = RL[1]; 1082 1082 L[4] = RL[4]; //char, minpoly 1083 // check whether vars hav aadmissible names -> done earlier1083 // check whether vars have admissible names -> done earlier 1084 1084 // now, create the names for new var 1085 1085 tmp[1] = "s"; … … 1735 1735 L[1] = RL[1]; 1736 1736 L[4] = RL[4]; //char, minpoly 1737 // check whether vars hav aadmissible names -> done earlier1737 // check whether vars have admissible names -> done earlier 1738 1738 // now, create the names for new var 1739 1739 tmp[1] = "s"; … … 2518 2518 L[1] = RL[1]; //char 2519 2519 L[4] = RL[4]; //char, minpoly 2520 // check whether vars hav aadmissible names -> done earlier2520 // check whether vars have admissible names -> done earlier 2521 2521 // now, create the names for new var 2522 2522 for (j=1; j<=P; j++) … … 2649 2649 L[1] = RL[1]; //char 2650 2650 L[4] = RL[4]; //char, minpoly 2651 // check whether vars hav aadmissible names -> done earlier2651 // check whether vars have admissible names -> done earlier 2652 2652 // now, create the names for new var 2653 2653 for (j=1; j<=P; j++) … … 3321 3321 L[1] = RL[1]; 3322 3322 L[4] = RL[4]; // char, minpoly 3323 // check whether vars hav aadmissible names -> done earlier3323 // check whether vars have admissible names -> done earlier 3324 3324 // now, create the names for new var 3325 3325 tmp[1] = "s"; … … 3529 3529 L[1] = RL[1]; 3530 3530 L[4] = RL[4]; // char, minpoly 3531 // check whether vars hav aadmissible names -> done earlier3531 // check whether vars have admissible names -> done earlier 3532 3532 // now, create the names for new var 3533 3533 tmp[1] = "s"; … … 4045 4045 L[1] = RL[1]; 4046 4046 L[4] = RL[4]; // char, minpoly 4047 // check whether vars hav aadmissible names -> done earlier4047 // check whether vars have admissible names -> done earlier 4048 4048 // now, create the names for new var 4049 4049 tmp[1] = "s"; … … 4288 4288 L[1] = RL[1]; 4289 4289 L[4] = RL[4]; // char, minpoly 4290 // check whether vars hav aadmissible names -> done earlier4290 // check whether vars have admissible names -> done earlier 4291 4291 // now, create the names for new var 4292 4292 tmp[1] = "s"; … … 4513 4513 L[1] = RL[1]; 4514 4514 L[4] = RL[4]; // char, minpoly 4515 // check whether vars hav aadmissible names -> done earlier4515 // check whether vars have admissible names -> done earlier 4516 4516 // now, create the names for new var 4517 4517 tmp[1] = "s"; -
Singular/LIB/dmodapp.lib
r1891fd r20f2239 17 17 F in R, it is proved that the localization of D/I with respect to the mult. 18 18 closed set of all powers of F is a holonomic D-module. Thus we aim to compute 19 its cyclic representa ion D/L for an ideal L in D. The procedures for the19 its cyclic representation D/L for an ideal L in D. The procedures for the 20 20 localization are DLoc, SDLoc and DLoc0. 21 21 … … 375 375 if (sl <> nrows(IV)) 376 376 { 377 ERROR("number of roots doesn't match number of multiplicit es");377 ERROR("number of roots doesn't match number of multiplicities"); 378 378 } 379 379 for(int i=1; i<=sl; i++) … … 1485 1485 L[1] = RL[1]; 1486 1486 L[4] = RL[4]; // char, minpoly 1487 // check whether vars hav aadmissible names -> done earlier1487 // check whether vars have admissible names -> done earlier 1488 1488 // now, create the names for new var 1489 1489 tmp[1] = "s"; -
Singular/LIB/dmodideal.lib
r1891fd r20f2239 272 272 4 - elimination order for x and D, 'dp' in the parts 273 273 (used for the further work in the Bernstein-Sato ideal) 274 n and r des ribe the number of components x_i/Dx_i and s_j274 n and r describe the number of components x_i/Dx_i and s_j 275 275 " 276 276 { -
Singular/LIB/dmodloc.lib
r1891fd r20f2239 939 939 static proc orderedPartition(int n, list #) 940 940 " 941 US UAGE:orderedPartition(n,a); n,a positive ints941 USAGE: orderedPartition(n,a); n,a positive ints 942 942 orderedPartition(n,w); n positive int, w positive intvec 943 943 RETURN: list of intvecs -
Singular/LIB/dmodvar.lib
r1891fd r20f2239 648 648 dbprint(ppl-1,"// Computing in " + string(n+r) + "-th Weyl algebra:", D); 649 649 dbprint(ppl-1,"// The Malgrange ideal: ", IF); 650 // step 2: compute the b-function of the Malgrange ideal w.r.t. appro riate weights650 // step 2: compute the b-function of the Malgrange ideal w.r.t. appropriate weights 651 651 intvec w = 1:r; 652 652 w[r+n] = 0; -
Singular/LIB/elim.lib
r1891fd r20f2239 39 39 @* such that B/bR is isomorphic to the blowup ring BC. 40 40 PURPOSE: compute the projective blowup of the basering in the center C, the 41 exceptional locus, the total and strict tran form of J,41 exceptional locus, the total and strict transform of J, 42 42 and the blowup map. 43 43 The projective blowup is a presentation of the blowup ring … … 108 108 l[3][s+1] = l[3][s]; // save the module ordering of the basering 109 109 intvec w=1:k; 110 intvec v; // containing the weights for the vari bale110 intvec v; // containing the weights for the variable 111 111 if( homog(C) ) 112 112 { … … 202 202 @* The intvec L[2] is the intvec of variable weights (or the given w) 203 203 with weights <= 0 replaced by 1. 204 PURPOSE: Prepare a ring for eliminating vars from an ideal/modu elby204 PURPOSE: Prepare a ring for eliminating vars from an ideal/module by 205 205 computing a standard basis in R with a fast monomial ordering. 206 206 This procedure is used by the procedure elim. … … 296 296 //Then, in case of an a-ordering (default), the new ring ordering will be 297 297 //of the form (a(1..1,0..0),dp) with r 1's and n-r 0's or (a(w1,0..0),wp(@w)) 298 //if there are var aible weights which are not 1.298 //if there are variable weights which are not 1. 299 299 //In the case of a b-ordering the ordering will be a block ordering with two 300 300 //blocks of the form (dp(r),dp(n-r)) resp. (wp(w1),dp(w2))
Note: See TracChangeset
for help on using the changeset viewer.