Changeset 0ebd7e in git


Ignore:
Timestamp:
Apr 20, 2011, 6:09:43 PM (12 years ago)
Author:
Hans Schoenemann <hannes@…>
Branches:
(u'spielwiese', '0d6b7fcd9813a1ca1ed4220cfa2b104b97a0a003')
Children:
1ddd044275ba5d4433a597ff9edee1abfce81a0e
Parents:
2945379dfb56330fb50187871415af6e9c6ec7d3
git-author:
Hans Schoenemann <hannes@mathematik.uni-kl.de>2011-04-20 18:09:43+02:00
git-committer:
Mohamed Barakat <mohamed.barakat@rwth-aachen.de>2011-11-09 12:31:23+01:00
Message:
add ksCheckCoeffs
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • kernel/kspoly.cc

    r294537 r0ebd7e  
    346346 *
    347347 ***************************************************************/
    348 
    349 /*
    350 * input - output: a, b
    351 * returns:
    352 *   a := a/gcd(a,b), b := b/gcd(a,b)
    353 *   and return value
    354 *       0  ->  a != 1,  b != 1
    355 *       1  ->  a == 1,  b != 1
    356 *       2  ->  a != 1,  b == 1
    357 *       3  ->  a == 1,  b == 1
    358 *   this value is used to control the spolys
    359 */
    360 int ksCheckCoeff(number *a, number *b)
    361 {
    362   int c = 0;
    363   number an = *a, bn = *b;
    364   nTest(an);
    365   nTest(bn);
    366 
    367   number cn = nGcd(an, bn, currRing);
    368 
    369   if(nIsOne(cn))
    370   {
    371     an = nCopy(an);
    372     bn = nCopy(bn);
    373   }
    374   else
    375   {
    376     an = nIntDiv(an, cn);
    377     bn = nIntDiv(bn, cn);
    378   }
    379   nDelete(&cn);
    380   if (nIsOne(an))
    381   {
    382     c = 1;
    383   }
    384   if (nIsOne(bn))
    385   {
    386     c += 2;
    387   }
    388   *a = an;
    389   *b = bn;
    390   return c;
    391 }
    392348
    393349/*2
  • kernel/kutil.h

    r294537 r0ebd7e  
    599599
    600600
    601 /*
    602 * input - output: a, b
    603 * returns:
    604 *   a := a/gcd(a,b), b := b/gcd(a,b)
    605 *   and return value
    606 *       0  ->  a != 1,  b != 1
    607 *       1  ->  a == 1,  b != 1
    608 *       2  ->  a != 1,  b == 1
    609 *       3  ->  a == 1,  b == 1
    610 *   this value is used to control the spolys
    611 */
    612 int ksCheckCoeff(number *a, number *b);
    613 
    614601// old stuff
    615602KINLINE poly ksOldSpolyRed(poly p1, poly p2, poly spNoether = NULL);
  • libpolys/polys/kbuckets.cc

    r294537 r0ebd7e  
    10841084//StringSetS("##### bn = "); nWrite(bn); PrintS(StringAppend("\n"));
    10851085    /* ksCheckCoeff: divide out gcd from an and bn: */
    1086     int ct = ksCheckCoeff(&an, &bn);
     1086    int ct = ksCheckCoeff(&an, &bn,r->cf);
    10871087    /* the previous command returns ct=0 or ct=2 iff an!=1
    10881088       note: an is now 1 or -1 */
     
    12811281  }
    12821282}
     1283
     1284/*
     1285* input - output: a, b
     1286* returns:
     1287*   a := a/gcd(a,b), b := b/gcd(a,b)
     1288*   and return value
     1289*       0  ->  a != 1,  b != 1
     1290*       1  ->  a == 1,  b != 1
     1291*       2  ->  a != 1,  b == 1
     1292*       3  ->  a == 1,  b == 1
     1293*   this value is used to control the spolys
     1294*/
     1295int ksCheckCoeff(number *a, number *b, const coeffs r)
     1296{
     1297  int c = 0;
     1298  number an = *a, bn = *b;
     1299  n_Test(an,r);
     1300  n_Test(bn,r);
     1301
     1302  number cn = n_Gcd(an, bn, r);
     1303
     1304  if(n_IsOne(cn, r))
     1305  {
     1306    an = n_Copy(an, r);
     1307    bn = n_Copy(bn, r);
     1308  }
     1309  else
     1310  {
     1311    an = n_IntDiv(an, cn, r);
     1312    bn = n_IntDiv(bn, cn, r);
     1313  }
     1314  n_Delete(&cn, r);
     1315  if (n_IsOne(an, r))
     1316  {
     1317    c = 1;
     1318  }
     1319  if (n_IsOne(bn, r))
     1320  {
     1321    c += 2;
     1322  }
     1323  *a = an;
     1324  *b = bn;
     1325  return c;
     1326}
     1327
  • libpolys/polys/kbuckets.h

    r294537 r0ebd7e  
    232232void kBucketSimpleContent(kBucket_pt bucket);
    233233BOOLEAN kBucketIsCleared(kBucket_pt bucket);
     234int ksCheckCoeff(number *a, number *b, const coeffs r);
    234235#endif /* KBUCKETS_H */
Note: See TracChangeset for help on using the changeset viewer.