Changeset 4a7a45 in git for factory/canonicalform.cc
- Timestamp:
- Jul 29, 2020, 5:33:12 PM (4 years ago)
- Branches:
- (u'spielwiese', '4a9821a93ffdc22a6696668bd4f6b8c9de3e6c5f')
- Children:
- 700b89d0131c4b3d214f49af1eeb67501875ec89
- Parents:
- 4772b1b4621f2ab68acc9d2b5a568604d4d5e790
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
factory/canonicalform.cc
r4772b1 r4a7a45 15 15 #include "cf_algorithm.h" 16 16 #include "imm.h" 17 #include "int_pp.h" 17 18 #include "gfops.h" 18 19 #include "facMul.h" 19 20 #include "facAlgFuncUtil.h" 20 21 #include "FLINTconvert.h" 22 #include "cf_binom.h" 21 23 22 24 #ifndef NOSTREAMIO … … 204 206 } 205 207 208 206 209 CanonicalForm 207 210 CanonicalForm::mapinto () const … … 216 219 else 217 220 return *this; 221 else if ( CFFactory::gettype() == PrimePowerDomain ) 222 return CanonicalForm( CFFactory::basic( imm2int( value ) ) ); 218 223 else if ( getGFDegree() == 1 ) 219 224 return CanonicalForm( int2imm_p( ff_norm( imm2int( value ) ) ) ); … … 222 227 else if ( value->inBaseDomain() ) 223 228 if ( getCharacteristic() == 0 ) 224 return *this; 229 if ( value->levelcoeff() == PrimePowerDomain ) 230 { 231 mpz_t d; 232 getmpi( value,d); 233 if ( mpz_cmp( InternalPrimePower::primepowhalf, d ) < 0 ) 234 mpz_sub( d, d, InternalPrimePower::primepow ); 235 return CFFactory::basic( d ); 236 } 237 else 238 return *this; 239 else if ( CFFactory::gettype() == PrimePowerDomain ) 240 { 241 ASSERT( value->levelcoeff() == PrimePowerDomain || value->levelcoeff() == IntegerDomain, "no proper map defined" ); 242 if ( value->levelcoeff() == PrimePowerDomain ) 243 return *this; 244 else 245 { 246 mpz_t d; 247 getmpi(value,d); 248 if ( mpz_cmp( InternalPrimePower::primepowhalf, d ) < 0 ) 249 mpz_sub( d, d, InternalPrimePower::primepow ); 250 return CFFactory::basic( d ); 251 } 252 } 225 253 else 226 254 { … … 248 276 } 249 277 } 250 251 278 /** CanonicalForm CanonicalForm::lc (), Lc (), LC (), LC ( v ) const 252 279 * … … 1935 1962 return cf_glob_switches.isOn( sw ); 1936 1963 } 1964 1965 #ifndef HAVE_NTL 1966 static int initialized=0; 1967 int 1968 initCanonicalForm( void ) 1969 { 1970 if ( ! initialized ) 1971 { 1972 initPT(); 1973 initialized = true; 1974 } 1975 } 1976 #endif 1977
Note: See TracChangeset
for help on using the changeset viewer.