#include "..\Headers\fastmath.h"
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <wtypes.h>
Compounds | |
union | FastSqrtUnion |
struct | Vec3 |
Defines | |
#define | FP_BITS(fp) (*(DWORD *)&(fp)) |
#define | FP_ABS_BITS(fp) (FP_BITS(fp)&0x7FFFFFFF) |
#define | FP_SIGN_BIT(fp) (FP_BITS(fp)&0x80000000) |
#define | FP_ONE_BITS 0x3F800000 |
#define | FP_INV(r, p) |
#define | FP_INV2(r, p) |
#define | FP_EXP(e, p) |
#define | FP_NORM_TO_BYTE(i, p) |
Typedefs | |
typedef FastSqrtUnion | FastSqrtUnion |
Functions | |
unsigned long | FP_NORM_TO_BYTE2 (float p) |
unsigned long | FP_NORM_TO_BYTE3 (float p) |
void | build_sqrt_table () |
float | fastsqrt (float n) |
float | CylTest_CapsFirst (const Vec3 &pt1, const Vec3 &pt2, float lengthsq, float radius_sq, const Vec3 &testpt) |
Variables | |
float | two = 2.0f |
|
|
|
|
|
Value: { \ int _i; \ e = -1.44269504f * (float)0x00800000 * (p); \ _i = (int)e + 0x3F800000; \ e = *(float *)&_i; \ } |
|
Value: { \ int _i = 2 * FP_ONE_BITS - *(int *)&(p); \ r = *(float *)&_i; \ r = r * (2.0f - (p) * r); \ } |
|
Value: { \ __asm { mov eax,0x7F000000 }; \ __asm { sub eax,dword ptr [p] }; \ __asm { mov dword ptr [r],eax }; \ __asm { fld dword ptr [p] }; \ __asm { fmul dword ptr [r] }; \ __asm { fsubr [two] }; \ __asm { fmul dword ptr [r] }; \ __asm { fstp dword ptr [r] }; \ } |
|
Value: { \ float _n = (p) + 1.0f; \ i = *(int *)&_n; \ if (i >= 0x40000000) i = 0xFF; \ else if (i <=0x3F800000) i = 0; \ else i = ((i) >> 15) & 0xFF; \ } |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|