| 21 | |
| 22 | |
| 23 | real UnitRoundoff(void) |
| 24 | { |
| 25 | real u; |
| 26 | volatile real one_plus_u; |
| 27 | |
| 28 | u = ONE; |
| 29 | one_plus_u = ONE + u; |
| 30 | while (one_plus_u != ONE) { |
| 31 | u /= TWO; |
| 32 | one_plus_u = ONE + u; |
| 33 | } |
| 34 | u *= TWO; |
| 35 | |
| 36 | return(u); |
| 37 | } |
| 38 | |
| 39 | |
| 40 | real RPowerI(real base, int exponent) |