Changeset d4932a in git


Ignore:
Timestamp:
Jun 25, 2010, 4:25:41 PM (14 years ago)
Author:
Hans Schoenemann <hannes@…>
Branches:
(u'fieker-DuVal', '117eb8c30fc9e991c4decca4832b1d19036c4c65')(u'spielwiese', 'b52fc4b2495505785981d640dcf7eb3e456778ef')
Children:
cedebce21b0dc12678683874874cce5b35d8c23d
Parents:
9919421a652e331106b0f71cb3996f006942bc13
Message:
fix log(int) -> ilog2

git-svn-id: file:///usr/local/Singular/svn/trunk@12924 2c84dea3-7e68-4137-9b89-c4e89433aadc
Location:
factory
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • factory/canonicalform.cc

    r9919421 rd4932a  
    12041204CanonicalForm::ilog2 () const
    12051205{
    1206     if ( is_imm( value ) ) {
     1206    if ( is_imm( value ) )
     1207    {
    12071208        ASSERT( is_imm( value ) == INTMARK, "ilog2() not implemented" );
    12081209        int a = imm2int( value );
    12091210        ASSERT( a > 0, "arg to ilog2() less or equal zero" );
    1210         int n = -1;
    1211         while ( a != 0 ) {
    1212             n++;
    1213             a /= 2;
    1214         }
    1215         return n;
     1211        return ::ilog2(a);
    12161212    }
    12171213    else
  • factory/cf_util.cc

    r9919421 rd4932a  
    2121//
    2222//}}}
    23 int
    24 ipower ( int b, int m )
     23int ipower ( int b, int m )
    2524{
    2625    int prod = 1;
     
    2827    while ( m != 0 )
    2928    {
    30         if ( m % 2 != 0 )
    31             prod *= b;
    32         m /= 2;
    33         if ( m != 0 )
    34             b *= b;
     29        if ( m % 2 != 0 )
     30            prod *= b;
     31        m /= 2;
     32        if ( m != 0 )
     33            b *= b;
    3534    }
    3635    return prod;
    3736}
    3837//}}}
     38
     39int ilog2 (int a)
     40{
     41  int n = -1;
     42  while ( a != 0 )
     43  {
     44    n++;
     45    a /=2;
     46  }
     47  return n;
     48}
  • factory/cf_util.h

    r9919421 rd4932a  
    1414
    1515int ipower ( int b, int n );
     16int ilog2 (int a);
     17
    1618
    1719#endif /* ! INCL_CF_UTIL_H */
  • factory/fac_sqrfree.cc

    r9919421 rd4932a  
    3434    // join elements with the same degree
    3535    while ( I.hasItem() ) {
    36         f = I.getItem().factor();
    37         exp = I.getItem().exp();
    38         I++;
    39         while ( I.hasItem() && I.getItem().exp() == exp ) {
    40             f *= I.getItem().factor();
    41             I++;
    42         }
    43         result.append( CFFactor( f, exp ) );
     36        f = I.getItem().factor();
     37        exp = I.getItem().exp();
     38        I++;
     39        while ( I.hasItem() && I.getItem().exp() == exp ) {
     40            f *= I.getItem().factor();
     41            I++;
     42        }
     43        result.append( CFFactor( f, exp ) );
    4444    }
    4545
     
    5757
    5858    if ( ! leadcf.isOne() )
    59         t0 /= leadcf;
     59        t0 /= leadcf;
    6060
    6161    divexp = p;
    6262    while ( t0.degree(x) > 0 )
    6363    {
    64         t = gcd( t0, t0.deriv() );
    65         v = t0 / t;
    66         k = 0;
    67         while ( v.degree(x) > 0 )
     64        t = gcd( t0, t0.deriv() );
     65        v = t0 / t;
     66        k = 0;
     67        while ( v.degree(x) > 0 )
    6868        {
    69             k = k+1;
    70             if ( k % p == 0 )
     69            k = k+1;
     70            if ( k % p == 0 )
    7171            {
    72                 t /= v;
    73                 k = k+1;
    74             }
    75             w = gcd( t, v );
    76             h = v / w;
    77             v = w;
    78             t /= v;
    79             if ( h.degree(x) > 0 )
    80                 F.append( CFFactor( h/h.lc(), e*k ) );
    81         }
    82         t0 = apply( t, divexpfunc );
    83         e = p * e;
     72                t /= v;
     73                k = k+1;
     74            }
     75            w = gcd( t, v );
     76            h = v / w;
     77            v = w;
     78            t /= v;
     79            if ( h.degree(x) > 0 )
     80                F.append( CFFactor( h/h.lc(), e*k ) );
     81        }
     82        t0 = apply( t, divexpfunc );
     83        e = p * e;
    8484    }
    8585    if ( ! leadcf.isOne() )
    8686    {
    87         if ( !F.isEmpty() && (F.getFirst().exp() == 1) )
     87        if ( !F.isEmpty() && (F.getFirst().exp() == 1) )
    8888        {
    89             leadcf = F.getFirst().factor() * leadcf;
    90             F.removeFirst();
    91         }
    92         F.insert( CFFactor( leadcf, 1 ) );
     89            leadcf = F.getFirst().factor() * leadcf;
     90            F.removeFirst();
     91        }
     92        F.insert( CFFactor( leadcf, 1 ) );
    9393    }
    9494    return F;
     
    117117    while ( ! c.degree() == 0 )
    118118    {
    119         y = gcd( w, c ); z = w / y;
    120         if ( degree( z ) > 0 )
    121             if ( lc( z ).sign() < 0 )
    122                 F.append( CFFactor( -z, i ) );
    123             else
    124                 F.append( CFFactor( z, i ) );
    125         i++;
    126         w = y; c = c / y;
     119        y = gcd( w, c ); z = w / y;
     120        if ( degree( z ) > 0 )
     121            if ( lc( z ).sign() < 0 )
     122                F.append( CFFactor( -z, i ) );
     123            else
     124                F.append( CFFactor( z, i ) );
     125        i++;
     126        w = y; c = c / y;
    127127    }
    128128    if ( degree( w ) > 0 )
    129         if ( lc( w ).sign() < 0 )
    130             F.append( CFFactor( -w, i ) );
    131         else
    132             F.append( CFFactor( w, i ) );
     129        if ( lc( w ).sign() < 0 )
     130            F.append( CFFactor( -w, i ) );
     131        else
     132            F.append( CFFactor( w, i ) );
    133133    return F;
    134134}
     
    138138{
    139139    if ( a.inCoeffDomain() )
    140         return CFFactor( a, 1 );
     140        return CFFactor( a, 1 );
    141141    CanonicalForm cont = content( a );
    142142    CanonicalForm aa = a / cont;
     
    148148    while ( ! c.degree(v) == 0 )
    149149    {
    150         y = gcd( w, c ); z = w / y;
    151         if ( degree( z, v ) > 0 )
    152             if ( lc( z ).sign() < 0 )
    153                 F.append( CFFactor( -z, i ) );
    154             else
    155                 F.append( CFFactor( z, i ) );
    156         i++;
    157         w = y; c = c / y;
     150        y = gcd( w, c ); z = w / y;
     151        if ( degree( z, v ) > 0 )
     152            if ( lc( z ).sign() < 0 )
     153                F.append( CFFactor( -z, i ) );
     154            else
     155                F.append( CFFactor( z, i ) );
     156        i++;
     157        w = y; c = c / y;
    158158    }
    159159    if ( degree( w,v ) > 0 )
    160         if ( lc( w ).sign() < 0 )
    161             F.append( CFFactor( -w, i ) );
    162         else
    163             F.append( CFFactor( w, i ) );
     160        if ( lc( w ).sign() < 0 )
     161            F.append( CFFactor( -w, i ) );
     162        else
     163            F.append( CFFactor( w, i ) );
    164164    if ( ! cont.isOne() )
    165         F = Union( F, sqrFreeZ( cont ) );
     165        F = Union( F, sqrFreeZ( cont ) );
    166166    if ( lc( a ).sign() < 0 )
    167167    {
    168         if ( F.getFirst().exp() == 1 )
     168        if ( F.getFirst().exp() == 1 )
    169169        {
    170             CanonicalForm f = F.getFirst().factor();
    171             CFFListIterator(F).getItem() = CFFactor( -f, 1 );
    172         }
    173         else
    174             F.insert( CFFactor( -1, 1 ) );
     170            CanonicalForm f = F.getFirst().factor();
     171            CFFListIterator(F).getItem() = CFFactor( -f, 1 );
     172        }
     173        else
     174            F.insert( CFFactor( -1, 1 ) );
    175175    }
    176176    return F;
Note: See TracChangeset for help on using the changeset viewer.