Changeset 3a0213 in git
- Timestamp:
- May 15, 2020, 4:50:16 PM (4 years ago)
- Branches:
- (u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
- Children:
- 6fcca4d81eb633c898e716b3afd040a920a4056e
- Parents:
- a1b40ab8675488c2a4f8e225d9d748ba70340727
- Location:
- Singular/LIB
- Files:
-
- 14 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/LIB/methods.lib
ra1b40a r3a0213 10 10 11 11 Methods select the function to execute by the types of the input tuple. 12 The central function is installMethod, which takes a hashtable assoc ating a tuple of12 The central function is installMethod, which takes a hashtable associating a tuple of 13 13 input types to function names and creates a corresponding procedure. 14 14 -
Singular/LIB/moddiq.lib
ra1b40a r3a0213 56 56 57 57 /* test if a prime number p is permissible for an ideal I 58 * i.e. it does not divide the denominator of any of the coeffi ents58 * i.e. it does not divide the denominator of any of the coefficients 59 59 * or numerator of any of the leading coefficients */ 60 60 static proc isPermissible(int p,ideal I) … … 63 63 def J = simplify(I, 2); 64 64 65 /* clear denominators and compute the leading coeffi ents of65 /* clear denominators and compute the leading coefficients of 66 66 the cleared one and the original one*/ 67 67 int n = ncols(J); -
Singular/LIB/modnormal.lib
ra1b40a r3a0213 18 18 Following [1], the idea is to apply the normalization algorithm given in [2] 19 19 over finite fields and lift the results via Chinese remaindering and rational 20 reconstruction as described in [3]. This appro ch is inherently parallel.@*20 reconstruction as described in [3]. This approach is inherently parallel.@* 21 21 The strategy is available both as a randomized and as a verified algorithm. 22 22 … … 82 82 83 83 84 // Computes the normalization of I in characteris itic p.84 // Computes the normalization of I in characteristic p. 85 85 // Returns an ideal Out such that the normalization mod p is the 86 86 // module 1/condu * Out … … 129 129 // normalization process. (For example, if I is prime.) 130 130 if(size(l[2]) > 1){ 131 ERR ROR("Original ideal is not prime (Not implemented.) or unlucky prime");131 ERROR("Original ideal is not prime (Not implemented.) or unlucky prime"); 132 132 } 133 133 -
Singular/LIB/modstd.lib
ra1b40a r3a0213 675 675 RETURN: the intvec of n greatest primes <= 2147483647 (resp. n greatest primes 676 676 < L[size(L)] union with L) such that none of these primes divides any 677 coefficient occur ing in I677 coefficient occurring in I 678 678 NOTE: The number of cores to use can be defined by ncores, default is 1. 679 679 EXAMPLE: example primeList; shows an example -
Singular/LIB/modules.lib
ra1b40a r3a0213 15 15 computed via the image, kernel, cokernel of a matrix or the subquotient of two matrices. 16 16 The used matrices also have a free module as source and target, with graded generators if the 17 matrix is homogen ous. A matrix of this new form is created by a normal matrix, source, target and18 the graduatin, if the matrix is homogen ous, are done automatically. With this matrices it is then17 matrix is homogeneous. A matrix of this new form is created by a normal matrix, source, target and 18 the graduatin, if the matrix is homogeneous, are done automatically. With this matrices it is then 19 19 possible to compute the new class of modules. 20 20 This library also offers the opppurtunity to create R-module-homomorphisms betweens two modules. … … 39 39 zero(int n,int m) return a nxm zero Matrix 40 40 freeModule(ring,int,list) creating a graded free module 41 makeMatrix(matrix,#int) creating a Matrix with graded target and source if the matrix is homogen ous. If # is set to 1, makeMatrix ignores the grading of source & target.41 makeMatrix(matrix,#int) creating a Matrix with graded target and source if the matrix is homogeneous. If # is set to 1, makeMatrix ignores the grading of source & target. 42 42 makeIdeal(ideal) creates an Ideal from an given ideal, is used to compute a resolution of the ideal 43 43 Target(Matrix) return target of the Matrix … … 83 83 hom(Module,Module) computes Hom(M,N) 84 84 kerHom(Homomorphism) computes the kernel of a Homomorphism 85 interpret(Vector) interpret es the Vector in some Module or abstract space86 interpretInv(def,Module) interpret es a Vector or Homomorphism into the given Module85 interpret(Vector) interprets the Vector in some Module or abstract space 86 interpretInv(def,Module) interprets a Vector or Homomorphism into the given Module 87 87 reduceIntChain(Module,#int) reduces a chain of interpretations to minimal size or # steps 88 88 interpretElem(Vector,#int) interpret a Vector with # steps or until can't interpret further … … 102 102 103 103 newstruct("FreeModule","int Rank,ring over,int isgraded,list grading"); 104 newstruct("Matrix","matrix hom, FreeModule source, FreeModule target, ring over,int ishomogen ous");104 newstruct("Matrix","matrix hom, FreeModule source, FreeModule target, ring over,int ishomogeneous"); 105 105 newstruct("Module","Matrix generators,Matrix relations,ring over,int isgraded, list grading, list interpretation"); 106 106 //interpretation is a list of two sublists: the first one gives the interpretation into another module M (entries are of type Vector), while the second denotes the inverse of this map (entries are of type vector, since the targetspace is clear). … … 222 222 } 223 223 else{ 224 ERROR("In tput isn't a list or intvec");224 ERROR("Input isn't a list or intvec"); 225 225 } 226 226 } … … 325 325 static proc gradedMatrix(matrix m,list mydeg){ 326 326 Matrix M; 327 M.ishomogen ous=1;327 M.ishomogeneous=1; 328 328 M.over=basering; 329 329 M.target = freeModule(basering,nrows(m),0); … … 340 340 list mydeg; 341 341 Matrix M; 342 M.ishomogen ous=1;342 M.ishomogeneous=1; 343 343 M.over=basering; 344 344 int a; … … 463 463 RETURN: Resolution, minimized resolution with graded modules 464 464 NOTE: n is optional, if n ist positiv only that many steps will be computed 465 use R.dd[i]; to return the diff rent modules as image of matrices, R Resolution i integer465 use R.dd[i]; to return the different modules as image of matrices, R Resolution i integer 466 466 EXAMPLE. example mRes, shows an example" 467 467 { … … 485 485 matrix a=R.reso[1]; 486 486 R.dd[1]=makeMatrix(a); 487 if(!(R.dd[1].ishomogen ous)){487 if(!(R.dd[1].ishomogeneous)){ 488 488 R.isgraded=0; 489 489 for(int i=2;i<=(size(R.reso)+1);i++){ … … 525 525 RETURN: Resolution, with graded modules, computed with Schreyer's method using the function sres 526 526 NOTE: n is optional, if n ist positiv only that many steps will be computed 527 use R.dd[i]; to return the diff rent modules as image of matrices, R Resolution i integer527 use R.dd[i]; to return the different modules as image of matrices, R Resolution i integer 528 528 EXAMPLE. example sRes, shows an example" 529 529 { … … 547 547 matrix a=R.reso[1]; 548 548 R.dd[1]=makeMatrix(a); 549 if(!(R.dd[1].ishomogen ous)){549 if(!(R.dd[1].ishomogeneous)){ 550 550 R.isgraded=0; 551 551 for(int i=2;i<(size(R.reso)+1);i++){ … … 587 587 RETURN: Resolution, resolution with graded modules 588 588 NOTE: n is optional, if n ist positiv only that many steps will be computed 589 use R.dd[i]; to return the diff rent modules as image of matrices, R Resolution i integer589 use R.dd[i]; to return the different modules as image of matrices, R Resolution i integer 590 590 EXAMPLE. example Res, shows an example" 591 591 { … … 609 609 matrix a=R.reso[1]; 610 610 R.dd[1]=makeMatrix(a); 611 if(!(R.dd[1].ishomogen ous)){611 if(!(R.dd[1].ishomogeneous)){ 612 612 R.isgraded=0; 613 613 for(int i=2;i<(size(R.reso)+1);i++){ … … 648 648 RETURN: intmat, Bettimatrix of the resolution 649 649 NOTE: for a clear overview use printBetti 650 EXAMPLE: exa ple Betti, shows an example"650 EXAMPLE: example Betti, shows an example" 651 651 { 652 652 Matrix M; … … 719 719 proc makeMatrix(matrix m, int #) 720 720 "USAGE:makeMatrix(m), m matrix 721 RETURN Matrix, with graded source and target if the matrix is homogen ous722 EXAMPLE: ex maple makeMatrix, shows an example"721 RETURN Matrix, with graded source and target if the matrix is homogeneous 722 EXAMPLE: example makeMatrix, shows an example" 723 723 { 724 724 Matrix M; … … 744 744 static proc nongradedMatrix(matrix m){ 745 745 Matrix M; 746 M.ishomogen ous=0;746 M.ishomogeneous=0; 747 747 M.over=basering; 748 748 M.target = freeModule(basering,nrows(m),-1); … … 827 827 setring(M.over); 828 828 matrix m=M.hom; 829 if(M.ishomogen ous){829 if(M.ishomogeneous){ 830 830 string s1; 831 831 string s2; … … 921 921 Module S; 922 922 S.isgraded=0; 923 if(gens.ishomogen ous){923 if(gens.ishomogeneous){ 924 924 S.grading=gens.source.grading; 925 925 S.isgraded=1; … … 1005 1005 } 1006 1006 Module M; 1007 if(rels.ishomogen ous){M.isgraded=1;}1007 if(rels.ishomogeneous){M.isgraded=1;} 1008 1008 else{M.isgraded=0;} 1009 1009 Matrix New = new; … … 2241 2241 if (typeof(V)=="Vector"){ 2242 2242 Module M = V.space; 2243 //Check whet er there is a inverse interpretationlist:2243 //Check whether there is a inverse interpretationlist: 2244 2244 if ((size(N.interpretation)!=0) && (size((N.interpretation)[2])!=0) && (((N.interpretation)[1][1]).space == M)) { 2245 2245 // third condition checks whether the given modules are related … … 2256 2256 return(W); 2257 2257 } 2258 //If not, check whet er there exists an interpretationlist to N in the Module of V:2258 //If not, check whether there exists an interpretationlist to N in the Module of V: 2259 2259 if ((size(M.interpretation)!=0) && (((M.interpretation)[1][1]).space == N)){return(interpret(V));} 2260 2260 //If neither exist, can't interpretInv: … … 2396 2396 static proc concMatrix(Matrix A,Matrix B) 2397 2397 "USAGE = concMatrix(A,B); A,B Matrix over the same ring 2398 RETURN: concat inated Matrix with concatinated grading2398 RETURN: concatenated Matrix with concatenated grading 2399 2399 EXAMPLE: example concMatrix; shows an example" 2400 2400 { -
Singular/LIB/modwalk.lib
ra1b40a r3a0213 3 3 category = "Commutative Algebra"; 4 4 info=" 5 LIBRARY: modwalk.lib Groebner basis conver tion5 LIBRARY: modwalk.lib Groebner basis conversion 6 6 7 7 AUTHORS: S. Oberfranz oberfran@mathematik.uni-kl.de -
Singular/LIB/mondromy.lib
ra1b40a r3a0213 189 189 ASSUME: U is a square matrix with non zero determinant. 190 190 RETURN: The procedure returns a list with at most 2 entries. 191 If U is not a sq aure matrix, the list is empty.192 If U is a sq aure matrix, then the first entry is the determinant of U.191 If U is not a square matrix, the list is empty. 192 If U is a square matrix, then the first entry is the determinant of U. 193 193 If U is a square matrix and the determinant of U not zero, 194 194 then the second entry is the adjoint matrix of U. -
Singular/LIB/monomialideal.lib
ra1b40a r3a0213 763 763 // intvec exp; 764 764 // int nvar = nvars(basering); 765 // // in tput: monomials765 // // input: monomials 766 766 // 767 767 // intvec expf = leadexp(f); … … 3643 3643 - the formula of irreducible components (alg=for), 3644 3644 - via the Scarf complex following Milowski (alg=mil), 3645 - using the label algori htm of Roune (alg=lr),3645 - using the label algorithm of Roune (alg=lr), 3646 3646 - using the algorithm of Gao-Zhu (alg=gz). 3647 3647 - using the slice algorithm of Roune (alg=sr). … … 3739 3739 (returns -1 if I is not a monomial ideal). 3740 3740 ASSUME: I is a monomial ideal of the basering k[x(1)..x(n)]. 3741 NOTE: This proce sure returns a minimal primary decomposition of I.3741 NOTE: This procedure returns a minimal primary decomposition of I. 3742 3742 One may call the procedure with different algorithms using 3743 3743 the optional argument 'alg': … … 3755 3755 complex following Milowski (alg=mil), 3756 3756 - from the irreducible decomposition obtained using the label 3757 algori htm of Roune (alg=lr),3757 algorithm of Roune (alg=lr), 3758 3758 - from the irreducible decomposition obtained using the 3759 3759 algorithm of Gao-Zhu (alg=gz), -
Singular/LIB/mprimdec.lib
ra1b40a r3a0213 12 12 Shimoyama and Yokoyama (generalization of the latter 13 13 suggested by Hans-Gert Graebe, Leipzig ) 14 using el ments of primdec.lib14 using elements of primdec.lib 15 15 16 16 REMARK: … … 37 37 primTest(i[,p]); tests whether i is prime or homogeneous 38 38 preComp(N,check[,ann]); enhanced Version of splitting 39 indSet(i); lists with varstrings of(in)dependen dvariables39 indSet(i); lists with varstrings of(in)dependent variables 40 40 GTZopt(N[,check[,ann]]); a faster version of GTZmod 41 41 zeroOpt(N[,check[,ann]]); a faster version of zeroMod … … 115 115 // using a generalization of the algorithm of Shimoyama/Yokoyama, 116 116 // suggested by Hans-Gerd Graebe, Leipzig 117 // [Hans-Gert Graebe, Minimal Primary Decompos tion117 // [Hans-Gert Graebe, Minimal Primary Decomposition 118 118 // and Factorized Groebner Bases, AAECC 8, 265-278 (1997)] 119 119 ///////////////////////////////////////////////////////////////////////////// … … 1260 1260 1261 1261 //////////////////////////////////////////////////////////////// 1262 // the modules which are not primary are split ted1262 // the modules which are not primary are split 1263 1263 //////////////////////////////////////////////////////////////// 1264 1264 list splitTemp; … … 1662 1662 ///////////////////////////////////////////////////////////////////////////// 1663 1663 // dec1var(N[,check[, ann]]) 1664 // primary decompos tion for a ring with one variable1664 // primary decomposition for a ring with one variable 1665 1665 ///////////////////////////////////////////////////////////////////////////// 1666 1666 -
Singular/LIB/mregular.lib
ra1b40a r3a0213 391 391 //----- Now d>1 and S/i is not Cohen-Macaulay: 392 392 // 393 //----- First, determine the last variable really occur ing393 //----- First, determine the last variable really occurring 394 394 lastv=n-d; 395 395 h=n; … … 890 890 //----- Now d>1 and S/i is not Cohen-Macaulay: 891 891 // 892 //----- First, determine the last variable really occur ing892 //----- First, determine the last variable really occurring 893 893 lastv=n-d; 894 894 h=n; … … 1216 1216 //----- Now d>1 and S/i is not Cohen-Macaulay: 1217 1217 // 1218 //----- First, determine the last variable really occur ing1218 //----- First, determine the last variable really occurring 1219 1219 lastv=n-d; 1220 1220 h=n; … … 1818 1818 return (1); 1819 1819 } 1820 //----- Determ. of the last variable really occur ing1820 //----- Determ. of the last variable really occurring 1821 1821 lastv=n-d; 1822 1822 h=n; -
Singular/LIB/multigrading.lib
ra1b40a r3a0213 33 33 34 34 createGroup(S,L); create a group generated by S, with relations L 35 createQuotientGroup(L); create a group generated by the unit matrix w hith relations L35 createQuotientGroup(L); create a group generated by the unit matrix with relations L 36 36 createTorsionFreeGroup(S); create a group generated by S which is torsionfree 37 37 printGroup(G); print a group 38 38 39 39 isGroup(G); test whether G is a valid group 40 isGroupHomomorphism(L1,L2,A); test whet er A defines a group homomrphism from L1 to L240 isGroupHomomorphism(L1,L2,A); test whether A defines a group homomrphism from L1 to L2 41 41 42 42 isGradedRingHomomorphism(R,f,A); test graded ring homomorph … … 638 638 if( !isHomogeneous(Q, "checkGens") ) // easy now, but would be hard before setting ring attributes! 639 639 { 640 "Warning: your quotient ideal is not homogen ous (multigrading was set anyway)!";640 "Warning: your quotient ideal is not homogeneous (multigrading was set anyway)!"; 641 641 } 642 642 … … 2335 2335 if( size(exp1) != size(exp2) ) 2336 2336 { 2337 ERROR("Sorry: we cannot compare exponents com ming from a polynomial and a vector yet!");2337 ERROR("Sorry: we cannot compare exponents coming from a polynomial and a vector yet!"); 2338 2338 } 2339 2339 … … 3181 3181 3182 3182 3183 j=system("sh",s_name+" -q sing4ti2 >/dev/null 2>&1"); ////////// be quiet + no loggin !!!3183 j=system("sh",s_name+" -q sing4ti2 >/dev/null 2>&1"); ////////// be quiet + no logging!!! 3184 3184 3185 3185 j=system("sh", "awk \'BEGIN{ORS=\",\";}{print $0;}\' sing4ti2.hil " + … … 4775 4775 4776 4776 // should result in a matrix whose 4777 // colum s create the same lattice as4777 // columns create the same lattice as 4778 4778 // [0,1],[1,0] 4779 4779 intmat D = latticeBasis(C); … … 4856 4856 4857 4857 // should result in a matrix whose 4858 // colum s create the same lattice as4858 // columns create the same lattice as 4859 4859 // [-2,-2,1,0], [0,0,0,1] 4860 4860 intmat D = kernelLattice(C); … … 5193 5193 else 5194 5194 { 5195 // del te columns from r+1 onwards5195 // delete columns from r+1 onwards 5196 5196 intmat Cutdel[nrows(Cut)][r]; 5197 5197 … … 5444 5444 5445 5445 // check whether H is a subgroup of G, i.e. whether S2 is a sublattice of S1+L1 5446 intmat B = concatintmat(S1,L1); // check whether this gives the concat inated matrix5446 intmat B = concatintmat(S1,L1); // check whether this gives the concatenated matrix 5447 5447 if ( !isSublattice(S2,B) ) 5448 5448 { … … 5450 5450 } 5451 5451 // use first isomorphism thm to get the factor group 5452 intmat L = concatintmat(L1,S2); // check whether this gives the concat inated matrix5452 intmat L = concatintmat(L1,S2); // check whether this gives the concatenated matrix 5453 5453 list GmodH; 5454 5454 GmodH[1]=S1; -
Singular/LIB/ncModslimgb.lib
ra1b40a r3a0213 119 119 120 120 //PrimeList procedure selects suitable primes such that 121 //these primes do not divide coefficients occur ing121 //these primes do not divide coefficients occurring 122 122 //in the generating polynomials of input ideal and 123 123 //in the defining relations of input algebra -
Singular/LIB/ncfactor.lib
ra1b40a r3a0213 14 14 @* automatically in the procedure ncfactor(). 15 15 16 @* More detail led description of the algorithms and related publications can be found at16 @* More detailed description of the algorithms and related publications can be found at 17 17 @url{https://cs.uwaterloo.ca/\~aheinle/}. 18 18 … … 691 691 }//g was the empty list 692 692 if (nof <= 0) 693 {//The user wants to rec ieve a negative number or no element as a result693 {//The user wants to receive a negative number or no element as a result 694 694 return(result); 695 }//The user wants to rec ieve a negative number or no element as a result695 }//The user wants to receive a negative number or no element as a result 696 696 if (nofgl == nof) 697 697 {//There are no factors to combine … … 1361 1361 result = 0; 1362 1362 } 1363 //Test 3: Intvec with arbit arily many elements1363 //Test 3: Intvec with arbitrarily many elements 1364 1364 input= intvec(6,4,7,1,24); 1365 1365 expected = list(6,4,7,1,24); … … 1559 1559 { 1560 1560 ERROR("pmax and pmin shall have the same size, and maxDegrees 1561 shall be double the size of both. Fur htermore, it must hold that pmax>pmin. The1561 shall be double the size of both. Furthermore, it must hold that pmax>pmin. The 1562 1562 Input was: " + string(pmax) + ", " + string(pmin) + ", " + string(maxDegrees)); 1563 1563 } … … 1773 1773 { 1774 1774 ERROR("pmax and pmin shall have the same size, and maxDegrees 1775 shall be double the size of both. Fur htermore, it must hold that pmax>pmin. The1775 shall be double the size of both. Furthermore, it must hold that pmax>pmin. The 1776 1776 Input was: " + string(pmax) + ", " + string(pmin) + ", " + string(maxDegrees)); 1777 1777 } … … 4926 4926 {//testing sortedInsert 4927 4927 int result = 1; 4928 //Test 1: empty list to insert into em tpy list4928 //Test 1: empty list to insert into empty list 4929 4929 ring R = 0,(x,d),dp; 4930 4930 def r = nc_algebra(1,1); … … 6114 6114 { 6115 6115 if (the_vars[j]*the_vars[i]-the_vars[i]*the_vars[j]==1) 6116 {//In this case, we matched a var x to a re pective d6116 {//In this case, we matched a var x to a respective d 6117 6117 tempVariable = the_vars[i + size(the_vars) div 2]; 6118 6118 the_vars[i + size(the_vars) div 2] = the_vars[j]; 6119 6119 the_vars[j] = tempVariable; 6120 6120 break; 6121 }//In this case, we matched a var x to a re pective d6121 }//In this case, we matched a var x to a respective d 6122 6122 if (the_vars[i]*the_vars[j]-the_vars[j]*the_vars[i]==1) 6123 6123 {//In this case, x and d were wrongly positioned … … 8387 8387 dbprint(p,dbprintWhitespace + "Done. The Combinations are:"); 8388 8388 dbprint(p,coeffTuplesMin); 8389 //Now, we will be act ally dealing with the Combinations.8389 //Now, we will be actually dealing with the Combinations. 8390 8390 //Let's start with the pqmax 8391 8391 if (size(f1[1]) == 1) … … 11711 11711 list listToPermute = list(); 11712 11712 for (i = 1;i<=nvars(r);i++) 11713 {//filling an init al list11713 {//filling an initial list 11714 11714 for(j=1; j<=expVec[i];j++) 11715 11715 {//different powers of the respective variable at position i 11716 11716 listToPermute = listToPermute + list(var(i)); 11717 11717 }//different powers of the respective variable at position i 11718 }//filling an init al list11718 }//filling an initial list 11719 11719 dbprint(p,dbprintWhitespace + "Initial list to permute is "+ 11720 11720 string(listToPermute)); … … 12513 12513 list M; 12514 12514 for (i = 1; i<size(expVec); i++) 12515 {//The set M consists of all poss sible two-word-combinations of the leading monomial12515 {//The set M consists of all possible two-word-combinations of the leading monomial 12516 12516 M = M + list(list(intvec(expVec[1..i]), intvec(expVec[i+1..size(expVec)]))); 12517 12517 } -
Singular/LIB/ncrat.lib
ra1b40a r3a0213 21 21 rational functions; formal linear representations; minimal representations 22 22 23 NOTE: an almost self-explaining introduction to the pos ibilities of the framework23 NOTE: an almost self-explaining introduction to the possibilities of the framework 24 24 can be achieved by running the example for the procedure ncrepGetRegularMinimal. 25 25 … … 30 30 ncratDefine(); Define element of type ncrat 31 31 ncratAdd(); Addition of two ncrat's 32 ncratSubstract(); Sub straction of two ncrat's32 ncratSubstract(); Subtraction of two ncrat's 33 33 ncratMultiply(); Multiplication of two ncrat's 34 34 ncratInvert(); Invert an ncrat … … 41 41 ncrepGet(); Calculate representation of ncrat 42 42 ncrepAdd(); Addition of two ncrep's 43 ncrepSubstract(); Sub straction of two ncrep's43 ncrepSubstract(); Subtraction of two ncrep's 44 44 ncrepMultiply(); Multiplication of two ncrep's 45 45 ncrepInvert(); Invert an ncrep … … 918 918 /* 919 919 list # = (x1, ..., xg) contains the nc variables 920 occur ing in g920 occurring in g 921 921 return list(Q0, Q1,... Qg) with scalar matrices Qi s.t. 922 922 Q = Q0 + Q1*x1 + ... + Qg*xg … … 967 967 n - dimension 968 968 q - REGULAR ncrep 969 # - contains occur ing ncvariables as 'poly'969 # - contains occurring ncvariables as 'poly' 970 970 Returns list(B, C, l) with l = list(A1, ..., Ag) such that 971 971 -u*Q^-1*v = C * (1 - A1*x1 - ... - Ag*xg)^-1 * B. … … 1161 1161 1162 1162 // INPUT: list containing basis vectors 1163 // OUTPUT: orthogonal matrix, whose colum s span the same space1163 // OUTPUT: orthogonal matrix, whose columns span the same space 1164 1164 static proc orthogonalBase(list b) 1165 1165 { … … 1339 1339 ("Var", [string]) variable 1340 1340 ("Add", [ncrat, ncrat]) addition 1341 ("Sub", [ncrat, ncrat]) su bstraction1341 ("Sub", [ncrat, ncrat]) sustraction 1342 1342 ("Mult", [ncrat, ncrat]) multiplication 1343 1343 ("Inv", [ncrat]) inverse … … 2534 2534 RETURN: pencil = list(vars, matrices), 2535 2535 where vars = list(1, x1, ..., xg) are the variables 2536 occur ing in r and matrices = (Q0, ..., Qg) is a list of2536 occurring in r and matrices = (Q0, ..., Qg) is a list of 2537 2537 matrices such that 2538 2538 r.mat = Q0 * x0 + ... + Qg * xg … … 2540 2540 2541 2541 NOTE: list vars = list(x1, ..., xn) has to consist 2542 exactly of the nc variables occur ing in f2542 exactly of the nc variables occurring in f 2543 2543 2544 2544 EXAMPLE: example ncrepPencilGet; … … 2616 2616 2617 2617 NOTE: list l = list(x1, ..., xn) has to consist 2618 exactly of the nc variables occur ing in q2618 exactly of the nc variables occurring in q 2619 2619 2620 2620 EXAMPLE: example ncrepRegularZeroMinimize; … … 2696 2696 2697 2697 NOTE: list vars = list(x1, ..., xn) has to consist 2698 exactly of the nc variables occur ing in q and2698 exactly of the nc variables occurring in q and 2699 2699 list point = list(a1, ..., an) consists of scalars 2700 2700 … … 2770 2770 2771 2771 NOTE: list vars = list(x1, ..., xn) has to consist 2772 exactly of the nc variables occur ing in f2772 exactly of the nc variables occurring in f 2773 2773 2774 2774 EXAMPLE: example ncrepGetRegularZeroMinimal; … … 2800 2800 2801 2801 NOTE: list vars = list(x1, ..., xn) has to consist 2802 exactly of the nc variables occur ing in f and2802 exactly of the nc variables occurring in f and 2803 2803 list point = (p1, ..., pn) of scalars such that 2804 2804 f(point) is defined
Note: See TracChangeset
for help on using the changeset viewer.