Changeset 61e9c58 in git


Ignore:
Timestamp:
Oct 26, 2020, 6:02:25 PM (3 years ago)
Author:
Hans Schoenemann <hannes@…>
Branches:
(u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
Children:
ba9e24e67185c12eb7966da1c68fcef2d90666d0
Parents:
4b24c1908038eb4e15e84478236d2f6eac46173c
Message:
opt: mpz_gcdext
File:
1 edited

Legend:

Unmodified
Added
Removed
  • factory/int_pp.cc

    r4b24c19 r61e9c58  
    240240InternalCF* InternalPrimePower::divsame( InternalCF * c )
    241241{
    242     if ( c == this ) {
     242    if ( c == this )
     243    {
    243244        if ( deleteObject() ) delete this;
    244245        return CFFactory::basic( 1 );
    245246    }
    246     if ( getRefCount() > 1 ) {
     247    if ( getRefCount() > 1 )
     248    {
    247249        decRefCount();
    248         mpz_t dummy, a, b;
    249         mpz_init( dummy ); mpz_init( a ); mpz_init( b );
     250        mpz_t a, b;
     251        mpz_init( a ); mpz_init( b );
     252        #ifdef SING_NDEBUG
     253        mpz_gcdext( NULL, a, b, primepow, MPI( c ) );
     254        #else
     255        mpz_t dummy; mpz_init( dummy );
    250256        mpz_gcdext( dummy, a, b, primepow, MPI( c ) );
    251257        ASSERT( mpz_cmp_si( dummy, 1 ) == 0, "illegal inversion" );
    252         mpz_clear( dummy ); mpz_clear( a );
     258        mpz_clear( dummy );
     259        #endif
     260        mpz_clear( a );
    253261        if ( mpz_cmp_si( b, 0 ) < 0 )
    254262            mpz_add( b, b, primepow );
     
    257265        return new InternalPrimePower( b );
    258266    }
    259     else {
    260         mpz_t dummy, a, b;
    261         mpz_init( dummy ); mpz_init( a ); mpz_init( b );
     267    else
     268    {
     269        mpz_t a, b; mpz_init( a ); mpz_init( b );
     270        #ifdef SING_NDEBUG
     271        mpz_gcdext( NULL, a, b, primepow, MPI( c ) );
     272        #else
     273        mpz_t dummy; mpz_init( dummy );
    262274        mpz_gcdext( dummy, a, b, primepow, MPI( c ) );
    263275        ASSERT( mpz_cmp_si( dummy, 1 ) == 0, "illegal inversion" );
     276        mpz_clear(dummy);
     277        #endif
    264278        if ( mpz_cmp_si( b, 0 ) < 0 )
    265279            mpz_add( b, b, primepow );
    266280        mpz_mul( thempi, b, thempi );
    267281        mpz_mod( thempi, thempi, primepow );
    268         mpz_clear( dummy ); mpz_clear( a ); mpz_clear( b );
     282        mpz_clear( a ); mpz_clear( b );
    269283        return this;
    270284    }
     
    293307    }
    294308    else {
    295         mpz_t dummy, a, b;
    296         mpz_init( dummy ); mpz_init( a ); mpz_init( b );
     309        mpz_t a, b;
     310        mpz_init( a ); mpz_init( b );
     311        #ifdef SING_NDEBUG
     312        mpz_gcdext( NULL, a, b, primepow, MPI( c ) );
     313        #else
     314        mpz_t dummy; mpz_init( dummy );
    297315        mpz_gcdext( dummy, a, b, primepow, MPI( c ) );
    298316        ASSERT( mpz_cmp_si( dummy, 1 ) == 0, "illegal inversion" );
    299         mpz_clear( dummy ); mpz_clear( a );
     317        mpz_clear( dummy );
     318        #endif
     319        mpz_clear( a );
    300320        if ( mpz_cmp_si( b, 0 ) < 0 )
    301321            mpz_add( b, b, primepow );
Note: See TracChangeset for help on using the changeset viewer.