Changeset f52bd59 in git


Ignore:
Timestamp:
Apr 17, 2015, 3:24:29 PM (8 years ago)
Author:
Hans Schoenemann <hannes@…>
Branches:
(u'spielwiese', '0d6b7fcd9813a1ca1ed4220cfa2b104b97a0a003')
Children:
f90180ea47616b92dece8940b84d280e5d85e7be
Parents:
188cfbd973b4a999682b8826071169fe3afdfd97
git-author:
Hans Schoenemann <hannes@mathematik.uni-kl.de>2015-04-17 15:24:29+02:00
git-committer:
Hans Schoenemann <hannes@mathematik.uni-kl.de>2015-04-17 15:24:59+02:00
Message:
fix: tr. #721
File:
1 edited

Legend:

Unmodified
Added
Removed
  • Singular/LIB/gitfan.lib

    r188cfbd rf52bd59  
    11///////////////////////////////////////////////////////////////////
    2 version="version gitfan.lib 4.0.0.0 Jun_2013 ";  // $Id$
     2version="version gitfan.lib 4.0.2.0 Apr_2015 ";  // $Id$
    33category="Algebraic Geometry";
    44info="
     
    4040  int n0 = n;
    4141
    42   while(n0 > 0){
    43     while(2^k > n0){
     42  while(n0 > 0)
     43  {
     44    while(2^k > n0)
     45    {
    4446      k--;
    4547      //v[size(v)+1] = 0;
     
    6971
    7072  // special case: gam0 is the zero-cone:
    71   if (size(gam0) == 1 and gam0[1] == 0){
     73  if (size(gam0) == 1 and gam0[1] == 0)
     74  {
    7275    ideal G;
    7376
     
    7578    // set all entries to 0:
    7679    int i;
    77     for (int k = 1; k <= size(a); k++) {
     80    for (int k = 1; k <= ncols(a); k++)
     81    {
    7882      pz = subst(a[k], var(1), 0);
    79       for (i = 2; i <= nvars(basering); i++) {
     83      for (i = 2; i <= nvars(basering); i++)
     84      {
    8085        pz = subst(pz, var(i), 0);
    8186      }
     
    8691
    8792    // monomial inside?:
    88     if(1 == G){
     93    if(1 == G)
     94    {
    8995      return(0);
    9096    }
     
    95101
    96102  // ring is too big: Switch to KK[T_i; e_i\in gam0] instead:
     103  def R = basering;
    97104  string initNewRing = "ring Rgam0 = 0,(";
    98 
    99   for (int i=1; i<size(gam0); i++){
     105  for (int i=1; i<size(gam0); i++)
     106  {
    100107    initNewRing = initNewRing + string(var(gam0[i])) + ",";
    101108  }
    102 
    103109  initNewRing = initNewRing + string(var(gam0[size(gam0)])) + "),dp;";
    104   def R = basering;
    105110  execute(initNewRing);
     111  kill i;
    106112
    107113  ideal agam0 = imap(R,a);
    108114
    109115  poly p = var(1); // first entry of g; p = prod T_i with i element of g
    110   for ( i = 2; i <= nvars(basering); i++ ) {
    111       p = p * var(i);
    112     }
     116  for (int i = 2; i <= nvars(basering); i++ )
     117  {
     118    p = p * var(i);
     119  }
    113120  // p is now the product over all T_i, with e_i in gam0
    114121
     
    117124
    118125  // does G contain 1?, i.e. is G = 1?
    119   if(G <> 1) {
     126  if(G <> 1)
     127  {
    120128    return(1); // true
    121129  }
     
    140148////////////////////////////////////////////////////
    141149
    142 proc afacesPart(ideal a, int d, int start, int end, int r){
     150proc afacesPart(ideal a, int d, int start, int end, int r)
     151{
    143152  intvec gam0;
    144153  int i;
    145154  list AF;
    146155
    147   for(i = start; i <= end; i++){
    148     if(i < 2^r){
     156  for(i = start; i <= end; i++)
     157  {
     158    if(i < 2^r)
     159    {
    149160      gam0 = int2face(i,r);
    150161
    151162      // take gam0 only if it has
    152163      // at least d rays:
    153       if(size(gam0) >= d){
    154         if (isAface(a,gam0)){
     164      if(size(gam0) >= d)
     165      {
     166        if (isAface(a,gam0))
     167        {
    155168          AF[size(AF) + 1] = gam0;
    156169        }
     
    158171    }
    159172  }
    160 
    161173  return(AF);
    162174}
     
    178190  int ncores = 1;
    179191
    180   if ((size(#) > 0) and (typeof(#[1]) == "int")){
     192  if ((size(#) > 0) and (typeof(#[1]) == "int"))
     193  {
    181194    d = #[1];
    182195  }
    183196
    184   if ((size(#) > 1) and (typeof(#[2]) == "int")){
     197  if ((size(#) > 1) and (typeof(#[2]) == "int"))
     198  {
    185199    ncores = #[2];
    186200  }
     
    192206  // check if 0 is an a-face:
    193207  gam0 = 0;
    194   if (isAface(a,gam0)){
     208  if (isAface(a,gam0))
     209  {
    195210      AF[size(AF) + 1] = gam0;
    196211  }
     
    202217
    203218  list args;
    204   for(int k = 0; k < ncores; k++){
     219  for(int k = 0; k < ncores; k++)
     220  {
    205221    args[size(args) + 1] = list(a, d, k * step + 1, (k+1) * step, r);
    206222  }
     
    210226
    211227  // do remaining ones:
    212   for(i = ncores * step +1; i < 2^r; i++){
     228  for(i = ncores * step +1; i < 2^r; i++)
     229  {
    213230    "another one needed";
    214231    gam0 = int2face(i,r);
     
    216233    // take gam0 only if it has
    217234    // at least d rays:
    218     if(size(gam0) >= d){
    219       if (isAface(a,gam0)){
     235    if(size(gam0) >= d)
     236    {
     237      if (isAface(a,gam0))
     238      {
    220239        AF[size(AF) + 1] = gam0;
    221240      }
     
    224243
    225244  // read out afaces of out into AF:
    226   for(i = 1; i <= size(out); i++){
     245  for(i = 1; i <= size(out); i++)
     246  {
    227247    AF = AF + out[i];
    228248  }
     
    303323  list AF;
    304324
    305   if((size(#) > 1) and (typeof(#[2]) == "int")){
     325  if((size(#) > 1) and (typeof(#[2]) == "int"))
     326  {
    306327    AF = afaces(a, nrows(Q), #[2]);
    307   } else
     328  }
     329  else
    308330  {
    309331    AF = afaces(a, nrows(Q));
     
    311333
    312334  int dimensionBound = 0;
    313   if((size(#) > 0) and (typeof(#[1]) == "int")){
     335  if((size(#) > 0) and (typeof(#[1]) == "int"))
     336  {
    314337    dimensionBound = #[1];
    315338  }
     
    319342  int j;
    320343
    321   for(int i = 1; i <= size(AF); i++){
     344  for(int i = 1; i <= size(AF); i++)
     345  {
    322346    gam0 = AF[i];
    323347
    324     if(gam0 == 0){
     348    if(gam0 == 0)
     349    {
    325350      bigintmat M[1][nrows(Q)];
    326     } else {
     351    }
     352    else
     353    {
    327354      bigintmat M[size(gam0)][nrows(Q)];
    328       for (j = 1; j <= size(gam0); j++){
     355      for (j = 1; j <= size(gam0); j++)
     356      {
    329357        M[j,1..ncols(M)] = Q[1..nrows(Q),gam0[j]];
    330358      }
     
    332360    cone c = coneViaPoints(M);
    333361
    334     if((dimension(c) >= dimensionBound) and (!(listContainsCone(OC, c)))){
     362    if((dimension(c) >= dimensionBound) and (!(listContainsCone(OC, c))))
     363    {
    335364      OC[size(OC)+1] = c;
    336365    }
     
    369398  cone lambda = nrows(Q);
    370399
    371   for(int i = 1; i <= size(OC); i++){
     400  for(int i = 1; i <= size(OC); i++)
     401  {
    372402    cone c = OC[i];
    373403
    374     if(containsInSupport(c, w)){
     404    if(containsInSupport(c, w))
     405    {
    375406      lambda = convexIntersection(lambda, c);
    376407    }
     
    517548// w.r.t. the 0-ideal:
    518549
    519 static proc simplicialToricOrbitCones(bigintmat Q){
     550static proc simplicialToricOrbitCones(bigintmat Q)
     551{
    520552  intvec gam0;
    521553  list OC;
     
    524556  int j;
    525557
    526   for(int i = 1; i < 2^r; i++ ){
     558  for(int i = 1; i < 2^r; i++ )
     559  {
    527560    gam0 = int2face(i,r);
    528561
    529562    // each simplicial cone is generated by
    530563    // exactly nrows(Q) many columns of Q:
    531     if(size(gam0) == nrows(Q)){
     564    if(size(gam0) == nrows(Q))
     565    {
    532566      bigintmat M[size(gam0)][nrows(Q)];
    533567
    534       for(j = 1; j <= size(gam0); j++){
     568      for(j = 1; j <= size(gam0); j++)
     569      {
    535570        M[j,1..ncols(M)] = Q[1..nrows(Q),gam0[j]];
    536571      }
     
    538573      c = coneViaPoints(M);
    539574
    540       if((dimension(c) == nrows(Q)) and (!(listContainsCone(OC, c)))){
     575      if((dimension(c) == nrows(Q)) and (!(listContainsCone(OC, c))))
     576      {
    541577        OC[size(OC)+1] = c;
    542578      }
Note: See TracChangeset for help on using the changeset viewer.