|
|
1.1 ! root 1: /*============================================================================ ! 2: This source file is an extension to the SoftFloat IEC/IEEE Floating-point ! 3: Arithmetic Package, Release 2b, written for Bochs (x86 achitecture simulator) ! 4: floating point emulation. ! 5: ! 6: THIS SOFTWARE IS DISTRIBUTED AS IS, FOR FREE. Although reasonable effort has ! 7: been made to avoid it, THIS SOFTWARE MAY CONTAIN FAULTS THAT WILL AT TIMES ! 8: RESULT IN INCORRECT BEHAVIOR. USE OF THIS SOFTWARE IS RESTRICTED TO PERSONS ! 9: AND ORGANIZATIONS WHO CAN AND WILL TAKE FULL RESPONSIBILITY FOR ALL LOSSES, ! 10: COSTS, OR OTHER PROBLEMS THEY INCUR DUE TO THE SOFTWARE, AND WHO FURTHERMORE ! 11: EFFECTIVELY INDEMNIFY JOHN HAUSER AND THE INTERNATIONAL COMPUTER SCIENCE ! 12: INSTITUTE (possibly via similar legal warning) AGAINST ALL LOSSES, COSTS, OR ! 13: OTHER PROBLEMS INCURRED BY THEIR CUSTOMERS AND CLIENTS DUE TO THE SOFTWARE. ! 14: ! 15: Derivative works are acceptable, even for commercial purposes, so long as ! 16: (1) the source code for the derivative work includes prominent notice that ! 17: the work is derivative, and (2) the source code includes prominent notice with ! 18: these four paragraphs for those parts of this code that are retained. ! 19: =============================================================================*/ ! 20: ! 21: #ifndef _FPU_CONSTANTS_H_ ! 22: #define _FPU_CONSTANTS_H_ ! 23: ! 24: // Pentium CPU uses only 68-bit precision M_PI approximation ! 25: #define BETTER_THAN_PENTIUM ! 26: ! 27: /*============================================================================ ! 28: * Written for Bochs (x86 achitecture simulator) by ! 29: * Stanislav Shwartsman [sshwarts at sourceforge net] ! 30: * ==========================================================================*/ ! 31: ! 32: ////////////////////////////// ! 33: // PI, PI/2, PI/4 constants ! 34: ////////////////////////////// ! 35: ! 36: #define FLOATX80_PI_EXP (0x4000) ! 37: ! 38: // 128-bit PI fraction ! 39: #ifdef BETTER_THAN_PENTIUM ! 40: #define FLOAT_PI_HI (0xc90fdaa22168c234U) ! 41: #define FLOAT_PI_LO (0xc4c6628b80dc1cd1U) ! 42: #else ! 43: #define FLOAT_PI_HI (0xc90fdaa22168c234U) ! 44: #define FLOAT_PI_LO (0xC000000000000000U) ! 45: #endif ! 46: ! 47: #define FLOATX80_PI2_EXP (0x3FFF) ! 48: #define FLOATX80_PI4_EXP (0x3FFE) ! 49: ! 50: ////////////////////////////// ! 51: // 3PI/4 constant ! 52: ////////////////////////////// ! 53: ! 54: #define FLOATX80_3PI4_EXP (0x4000) ! 55: ! 56: // 128-bit 3PI/4 fraction ! 57: #ifdef BETTER_THAN_PENTIUM ! 58: #define FLOAT_3PI4_HI (0x96cbe3f9990e91a7U) ! 59: #define FLOAT_3PI4_LO (0x9394c9e8a0a5159cU) ! 60: #else ! 61: #define FLOAT_3PI4_HI (0x96cbe3f9990e91a7U) ! 62: #define FLOAT_3PI4_LO (0x9000000000000000U) ! 63: #endif ! 64: ! 65: ////////////////////////////// ! 66: // 1/LN2 constant ! 67: ////////////////////////////// ! 68: ! 69: #define FLOAT_LN2INV_EXP (0x3FFF) ! 70: ! 71: // 128-bit 1/LN2 fraction ! 72: #ifdef BETTER_THAN_PENTIUM ! 73: #define FLOAT_LN2INV_HI (0xb8aa3b295c17f0bbU) ! 74: #define FLOAT_LN2INV_LO (0xbe87fed0691d3e89U) ! 75: #else ! 76: #define FLOAT_LN2INV_HI (0xb8aa3b295c17f0bbU) ! 77: #define FLOAT_LN2INV_LO (0xC000000000000000U) ! 78: #endif ! 79: ! 80: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.