Changeset a52291 in git for factory/cf_factory.cc
- Timestamp:
- Nov 24, 2011, 2:35:53 PM (11 years ago)
- Branches:
- (u'jengelh-datetime', 'ceac47cbc86fe4a15902392bdbb9bd2ae0ea02c6')(u'spielwiese', 'f875bbaccd0831e36aaed09ff6adeb3eb45aeb94')
- Children:
- 8b46459e9dad8bec212484f1bfce347c45e41371
- Parents:
- 1c48503bfae9bb885752ba741bd0a236df633d13
- git-author:
- Martin Lee <martinlee84@web.de>2011-11-24 14:35:53+01:00
- git-committer:
- Oleksandr Motsak <motsak@mathematik.uni-kl.de>2011-11-24 21:10:03+01:00
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
factory/cf_factory.cc
r1c48503 ra52291 221 221 222 222 InternalCF * 223 CFFactory::basic ( const MP_INT &num )223 CFFactory::basic ( const mpz_ptr num ) 224 224 { 225 225 if ( currenttype != IntegerDomain ) { … … 239 239 240 240 InternalCF * 241 CFFactory::rational ( const MP_INT & num, const MP_INT &den, bool normalize )241 CFFactory::rational ( const mpz_ptr num, const mpz_ptr den, bool normalize ) 242 242 { 243 243 if ( normalize ) { … … 267 267 } 268 268 269 MP_INTgetmpi ( InternalCF * value, bool symmetric )269 mpz_ptr getmpi ( InternalCF * value, bool symmetric ) 270 270 { 271 271 ASSERT( ! is_imm( value ) && ( value->levelcoeff() == PrimePowerDomain || value->levelcoeff() == IntegerDomain ), "illegal operation" ); 272 MP_INT dummy;272 mpz_ptr dummy= new mpz_t; 273 273 if ( value->levelcoeff() == IntegerDomain ) 274 mpz_init_set( &dummy, &InternalInteger::MPI( value ) );274 mpz_init_set( dummy, InternalInteger::MPI( value ) ); 275 275 else if ( symmetric ) { 276 mpz_init( &dummy );277 if ( mpz_cmp( &InternalPrimePower::primepowhalf, &InternalPrimePower::MPI( value ) ) < 0 )278 mpz_sub( &dummy, &InternalPrimePower::MPI( value ), &InternalPrimePower::primepow );279 else 280 mpz_set( &dummy, &InternalPrimePower::MPI( value ) );281 } 282 else 283 mpz_init_set( &dummy, &InternalPrimePower::MPI( value ) );276 mpz_init( dummy ); 277 if ( mpz_cmp( InternalPrimePower::primepowhalf, InternalPrimePower::MPI( value ) ) < 0 ) 278 mpz_sub( dummy, InternalPrimePower::MPI( value ), InternalPrimePower::primepow ); 279 else 280 mpz_set( dummy, InternalPrimePower::MPI( value ) ); 281 } 282 else 283 mpz_init_set( dummy, InternalPrimePower::MPI( value ) ); 284 284 return dummy; 285 285 }
Note: See TracChangeset
for help on using the changeset viewer.