Changeset 7d90aa in git for coeffs/shortfl.cc
- Timestamp:
- Mar 8, 2011, 7:29:56 PM (13 years ago)
- Branches:
- (u'spielwiese', '5b153614cbc72bfa198d75b1e9e33dab2645d9fe')
- Children:
- 655a2976d656bc7749e136dea00a5bb75c14a0b4
- Parents:
- 634d93b52f3d7540be44b7c941a206dc38b1b1be
- git-author:
- Oleksandr Motsak <motsak@mathematik.uni-kl.de>2011-03-08 19:29:56+01:00
- git-committer:
- Mohamed Barakat <mohamed.barakat@rwth-aachen.de>2011-11-09 11:49:00+01:00
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
coeffs/shortfl.cc
r634d93b r7d90aa 9 9 10 10 #include <string.h> 11 #include <kernel/mod2.h> 12 #include <omalloc/mylimits.h> 13 #include <kernel/structs.h> 14 #include <kernel/febase.h> 15 #include <kernel/numbers.h> 16 #include <kernel/longrat.h> 17 #include <kernel/mpr_complex.h> 18 #include <kernel/ring.h> 19 #include <kernel/shortfl.h> 11 #include "coeffs.h" 12 #include <mylimits.h> 13 #include "febase.h" 14 #include "numbers.h" 15 #include "longrat.h" 16 #include "mpr_complex.h" 17 #include "shortfl.h" 20 18 21 19 static float nrEps = 1.0e-3; … … 35 33 } 36 34 37 BOOLEAN nrGreaterZero (number k )35 BOOLEAN nrGreaterZero (number k, const coeffs r) 38 36 { 39 37 return nf(k).F() >= 0.0; 40 38 } 41 39 42 number nrMult (number a,number b )40 number nrMult (number a,number b, const coeffs r) 43 41 { 44 42 return nf(nf(a).F() * nf(b).F()).N(); … … 48 46 * create a number from int 49 47 */ 50 number nrInit (int i, const ringR)48 number nrInit (int i, const coeffs R) 51 49 { 52 50 float r = (float)i; … … 57 55 * convert a number to int 58 56 */ 59 int nrInt(number &n, const ringR)57 int nrInt(number &n, const coeffs R) 60 58 { 61 59 int i; … … 68 66 } 69 67 70 int nrSize(number n )68 int nrSize(number n, const coeffs R) 71 69 { 72 70 float f = nf(n).F(); … … 80 78 } 81 79 82 number nrAdd (number a, number b )80 number nrAdd (number a, number b, const coeffs R) 83 81 { 84 82 float x = nf(a).F(); … … 110 108 } 111 109 112 number nrSub (number a, number b )110 number nrSub (number a, number b, const coeffs R) 113 111 { 114 112 float x = nf(a).F(); … … 140 138 } 141 139 142 BOOLEAN nrIsZero (number a )140 BOOLEAN nrIsZero (number a, const coeffs r) 143 141 { 144 142 return (0.0 == nf(a).F()); 145 143 } 146 144 147 BOOLEAN nrIsOne (number a )145 BOOLEAN nrIsOne (number a, const coeffs r) 148 146 { 149 147 float aa=nf(a).F()-1.0; … … 152 150 } 153 151 154 BOOLEAN nrIsMOne (number a )152 BOOLEAN nrIsMOne (number a, const coeffs r) 155 153 { 156 154 float aa=nf(a).F()+1.0; … … 159 157 } 160 158 161 number nrDiv (number a,number b )159 number nrDiv (number a,number b, const coeffs r) 162 160 { 163 161 float n = nf(b).F(); … … 171 169 } 172 170 173 number nrInvers (number c )171 number nrInvers (number c, const coeffs r) 174 172 { 175 173 float n = nf(c).F(); … … 182 180 } 183 181 184 number nrNeg (number c )182 number nrNeg (number c, const coeffs r) 185 183 { 186 184 return nf(-nf(c).F()).N(); 187 185 } 188 186 189 BOOLEAN nrGreater (number a,number b )187 BOOLEAN nrGreater (number a,number b, const coeffs r) 190 188 { 191 189 return nf(a).F() > nf(b).F(); 192 190 } 193 191 194 BOOLEAN nrEqual (number a,number b )195 { 196 number x = nrSub(a,b );192 BOOLEAN nrEqual (number a,number b, const coeffs r) 193 { 194 number x = nrSub(a,b,r); 197 195 return nf(x).F() == nf((float)0.0).F(); 198 196 } 199 197 200 void nrWrite (number &a, const ringr)198 void nrWrite (number &a, const coeffs r) 201 199 { 202 200 StringAppend("%9.3e", nf(a).F()); 203 201 } 204 202 205 void nrPower (number a, int i, number * result )203 void nrPower (number a, int i, number * result, const coeffs r) 206 204 { 207 205 if (i==0) … … 215 213 return; 216 214 } 217 nrPower(a,i-1,result );215 nrPower(a,i-1,result,r); 218 216 *result = nf(nf(a).F() * nf(*result).F()).N(); 219 217 } … … 240 238 const char *nIllegalChar="illegal character in number"; 241 239 242 const char * nrRead (const char *s, number *a )240 const char * nrRead (const char *s, number *a, const coeffs r) 243 241 { 244 242 const char *t; … … 425 423 } 426 424 427 static number nrMapP(number from )425 static number nrMapP(number from, const coeffs R) 428 426 { 429 427 int i = (int)((long)from); … … 432 430 } 433 431 434 static number nrMapLongR(number from )432 static number nrMapLongR(number from, const coeffs R) 435 433 { 436 434 float t =(float)mpf_get_d((mpf_srcptr)from); 437 435 return nf(t).N(); 438 436 } 439 static number nrMapC(number from )437 static number nrMapC(number from, const coeffs r) 440 438 { 441 439 gmp_float h = ((gmp_complex*)from)->real(); … … 444 442 } 445 443 446 nMapFunc nrSetMap(const ring src, const ringdst)447 { 448 if ( rField_is_Q(src))444 nMapFunc nrSetMap(const coeffs src, const coeffs dst) 445 { 446 if (nField_is_Q(src)) 449 447 { 450 448 return nrMapQ; 451 449 } 452 if ( rField_is_long_R(src))450 if (nField_is_long_R(src)) 453 451 { 454 452 return nrMapLongR; 455 453 } 456 if ( rField_is_R(src))454 if (nField_is_R(src)) 457 455 { 458 456 return ndCopy; 459 457 } 460 if( rField_is_Zp(src))458 if(nField_is_Zp(src)) 461 459 { 462 460 return nrMapP; 463 461 } 464 if ( rField_is_long_C(src))462 if (nField_is_long_C(src)) 465 463 { 466 464 return nrMapC;
Note: See TracChangeset
for help on using the changeset viewer.