Changeset dab4204 in git
- Timestamp:
- Feb 28, 2018, 2:37:57 PM (5 years ago)
- Branches:
- (u'spielwiese', '0d6b7fcd9813a1ca1ed4220cfa2b104b97a0a003')
- Children:
- 7b0641e83ca14a3d6ea643856136e6aee7e1d1e1
- Parents:
- f489c7b257309d1c90c678c681b8f65553314675
- Location:
- Singular
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/LIB/autgradalg.lib
rf489c7b rdab4204 1 1 //////////////////////////////////////////////////////////////////////////////// 2 version="version autgradalg.lib 4.1.1. 0 Dec_2017 "; //$Id$2 version="version autgradalg.lib 4.1.1.1 Feb_2018 "; // $Id$ 3 3 category="Commutative Algebra, Algebraic Geometry"; 4 4 info=" … … 27 27 autX(I0, w, TOR): compute the automorphism group of X=X(R,w) as an algebraic subgroup V(I) of some GL(n). 28 28 29 NOTE: the following functions were taken from 'quotsingcox.lib' by M.Donten-Bury and S.Keicher: 'hilbBas'. 29 NOTE: the following functions were taken from 'quotsingcox.lib' by M.Donten-Bury and S.Keicher: 'hilbertBas'. 30 NOTE: This library comes without any warranty whatsoever. Use it at your own risk. 30 31 31 32 KEYWORDS: automorphisms; graded algebra; Mori dream spaces; automorphism group; symmetries … … 301 302 } else { 302 303 // if delta is not in cQ, then there is no monomial of this degree: 303 if(containsInSupport Old(cQ, delta)){304 if(containsInSupport(cQ, delta)){ 304 305 // calculate all monomials of degree delta 305 306 list deltaMON = wmonomials(delta, 0, TOR); … … 659 660 for(k = 1; k <= size(DL); k++){ 660 661 intmat A = concatBCD(AUT0[i], CL[j], DL[k]); 662 661 663 // M * Origs = Origs?: 662 664 if(fixesOrig(A, Origs, OrigDim, TOR)){ … … 2972 2974 // compute generators for the veronese subalgebra 2973 2975 static proc veron(intmat P){ 2974 cone V = linearHull(P);//coneViaPoints(M); 2976 // linear hull of P: 2977 intmat Pplusminus[2*nrows(P)][ncols(P)] = P, -P; 2978 2979 cone V = coneViaPoints(Pplusminus); 2975 2980 cone posorth = coneViaPoints(getIdMat(ambientDimension(V))); 2976 2981 cone c = convexIntersection(V, posorth); … … 3046 3051 example 3047 3052 { 3048 echo=2; 3049 3050 ///////////// 3051 // PP2 3052 // intmat Q[1][4] = 3053 // 1,1,1,1; 3054 // 3055 // ring R = 0,T(1..ncols(Q)),dp; 3056 // 3057 // // attach degree matrix Q to R: 3058 // setBaseMultigrading(Q); 3059 // ideal I = 0; 3060 // intvec w0 = 1; 3061 // 3062 // def RR = autX(I, w0); 3063 // setring RR; 3064 // Iexported; 3065 // 3066 // basering; 3067 // dim(std(Iexported)); 3068 // 3069 // kill RR, Q, R; 3070 // 3071 // quit; 3072 // ///////////// 3073 // // example 3.14 from the paper 3074 // intmat Q[3][5] = 3075 // 1,1,1,1,1, 3076 // 1,-1,0,0,1, 3077 // 1,1,1,0,0; 3078 // 3079 // list TOR = 2; 3080 // ring R = 0,T(1..5),dp; 3081 // 3082 // // attach degree matrix Q to R: 3083 // setBaseMultigrading(Q); 3084 // 3085 // ideal I = T(1)*T(2) + T(3)^2 + T(4)^2; 3086 // list TOR = 2; 3087 // 3088 // intvec w0 = 2,1,0; 3089 // def RR = autX(I, w0, TOR); 3090 // setring RR; 3091 // 3092 // kill RR, Q, R; 3053 /////////////// 3054 //// CAREFUL: the following examples seems to be unfeasible at the moment, see remark in the paper 3055 3056 //echo=2; 3057 /////////////// 3058 //// PP2 3059 //intmat Q[1][4] = 3060 // 1,1,1,1; 3061 3062 //ring R = 0,T(1..ncols(Q)),dp; 3063 3064 //// attach degree matrix Q to R: 3065 //setBaseMultigrading(Q); 3066 //ideal I = 0; 3067 //intvec w0 = 1; 3068 3069 //def RR = autX(I, w0); 3070 //setring RR; 3071 //Iexported; 3072 3073 //basering; 3074 //dim(std(Iexported)); 3075 3076 //kill RR, Q, R; 3077 3078 /////////////// 3079 //// example 3.14 from the paper 3080 //intmat Q[3][5] = 3081 // 1,1,1,1,1, 3082 // 1,-1,0,0,1, 3083 // 1,1,1,0,0; 3084 3085 //list TOR = 2; 3086 //ring R = 0,T(1..5),dp; 3087 3088 //// attach degree matrix Q to R: 3089 //setBaseMultigrading(Q); 3090 3091 //ideal I = T(1)*T(2) + T(3)^2 + T(4)^2; 3092 //list TOR = 2; 3093 3094 //intvec w0 = 2,1,0; 3095 //def RR = autX(I, w0, TOR); 3096 //setring RR; 3097 3098 //kill RR, Q, R; 3093 3099 } 3094 3100 … … 3111 3117 1,3; 3112 3118 3113 intmat B = hilb Bas(coneViaPoints(A));3119 intmat B = hilbertBas(coneViaPoints(A)); 3114 3120 print(B); 3115 3121 … … 3120 3126 6, 3, 4, 2; 3121 3127 3122 intmat D = hilb Bas(coneViaPoints(C));3128 intmat D = hilbertBas(coneViaPoints(C)); 3123 3129 print(D); 3124 3130 -
Singular/dyn_modules/gfanlib/bbcone.cc
rf489c7b rdab4204 1571 1571 } 1572 1572 WerrorS("containsInSupport: unexpected parameters"); 1573 return TRUE;1574 }1575 1576 BOOLEAN containsInSupportOld(leftv res, leftv args)1577 {1578 gfan::initializeCddlibIfRequired();1579 leftv u=args;1580 if ((u != NULL) && (u->Typ() == coneID))1581 {1582 leftv v=u->next;1583 if ((v != NULL) && (v->Typ() == coneID))1584 {1585 gfan::ZCone* zc = (gfan::ZCone*)u->Data();1586 gfan::ZCone* zd = (gfan::ZCone*)v->Data();1587 int d1 = zc->ambientDimension();1588 int d2 = zd->ambientDimension();1589 if (d1 != d2)1590 {1591 Werror("expected cones with same ambient dimensions\n but got"1592 " dimensions %d and %d", d1, d2);1593 return TRUE;1594 }1595 bool b = (zc->contains(*zd) ? 1 : 0);1596 res->rtyp = INT_CMD;1597 res->data = (void*) (long) b;1598 return FALSE;1599 }1600 if ((v != NULL) && ((v->Typ() == BIGINTMAT_CMD) || (v->Typ() == INTVEC_CMD)))1601 {1602 gfan::ZCone* zc = (gfan::ZCone*)u->Data();1603 bigintmat* iv = NULL;1604 if (v->Typ() == INTVEC_CMD)1605 {1606 intvec* iv0 = (intvec*) v->Data();1607 iv = iv2bim(iv0,coeffs_BIGINT)->transpose();1608 }1609 else1610 iv = (bigintmat*)v->Data();1611 1612 gfan::ZVector* zv = bigintmatToZVector(iv);1613 int d1 = zc->ambientDimension();1614 int d2 = zv->size();1615 if (d1 != d2)1616 {1617 Werror("expected cones with same ambient dimensions\n but got"1618 " dimensions %d and %d", d1, d2);1619 return TRUE;1620 }1621 int b = zc->contains(*zv);1622 res->rtyp = INT_CMD;1623 res->data = (void*) (long) b;1624 1625 delete zv;1626 if (v->Typ() == INTMAT_CMD)1627 delete iv;1628 return FALSE;1629 }1630 }1631 WerrorS("containsInSupportOld: unexpected parameters");1632 1573 return TRUE; 1633 1574 } … … 2141 2082 p->iiAddCproc("gfan.lib","containsAsFace",FALSE,hasFace); 2142 2083 p->iiAddCproc("gfan.lib","containsInSupport",FALSE,containsInSupport); 2143 p->iiAddCproc("gfan.lib","containsInSupportOld",FALSE,containsInSupportOld);2144 2084 p->iiAddCproc("gfan.lib","containsPositiveVector",FALSE,containsPositiveVector); 2145 2085 p->iiAddCproc("gfan.lib","containsRelatively",FALSE,containsRelatively);
Note: See TracChangeset
for help on using the changeset viewer.