aboutsummaryrefslogtreecommitdiff
path: root/dep/src/g3dlite/g3dmath.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'dep/src/g3dlite/g3dmath.cpp')
-rw-r--r--dep/src/g3dlite/g3dmath.cpp108
1 files changed, 0 insertions, 108 deletions
diff --git a/dep/src/g3dlite/g3dmath.cpp b/dep/src/g3dlite/g3dmath.cpp
deleted file mode 100644
index ad85e9efb9b..00000000000
--- a/dep/src/g3dlite/g3dmath.cpp
+++ /dev/null
@@ -1,108 +0,0 @@
-/**
- @file g3dmath.cpp
-
- @author Morgan McGuire, graphics3d.com
-
- @created 2001-06-02
- @edited 2004-02-24
- */
-
-#include "G3D/g3dmath.h"
-#include <cstdlib>
-#include <cstring>
-
-namespace G3D {
-
-float gaussRandom(float mean, float stdev) {
-
- // Using Box-Mueller method from http://www.taygeta.com/random/gaussian.html
- // Modified to specify standard deviation and mean of distribution
- float w, x1, x2;
-
- // Loop until w is less than 1 so that log(w) is negative
- do {
- x1 = uniformRandom(-1.0, 1.0);
- x2 = uniformRandom(-1.0, 1.0);
-
- w = float(square(x1) + square(x2));
- } while (w > 1.0f);
-
- // Transform to gassian distribution
- // Multiply by sigma (stdev ^ 2) and add mean.
- return x2 * (float)square(stdev) * sqrtf((-2.0f * logf(w) ) / w) + mean;
-}
-
-/**
- This value should not be tested against directly, instead
- G3D::isNan() and G3D::isFinite() will return reliable results. */
-double inf() {
- return std::numeric_limits<double>::infinity();
-}
-
-bool isNaN(float x) {
- static const float n = nan();
- return memcmp(&x, &n, sizeof(float)) == 0;
-}
-
-bool isNaN(double x) {
- static const double n = nan();
- return memcmp(&x, &n, sizeof(double)) == 0;
-}
-
-
-/**
- This value should not be tested against directly, instead
- G3D::isNan() and G3D::isFinite() will return reliable results. */
-float finf() {
- return std::numeric_limits<float>::infinity();
-}
-
-/** This value should not be tested against directly, instead
- G3D::isNan() and G3D::isFinite() will return reliable results. */
-double nan() {
- // double is a standard type and should have quiet NaN
- return std::numeric_limits<double>::quiet_NaN();
-}
-
-float fnan() {
- // double is a standard type and should have quiet NaN
- return std::numeric_limits<float>::quiet_NaN();
-}
-
-
-int highestBit(uint32 x) {
- // Binary search.
- int base = 0;
-
- if (x & 0xffff0000) {
- base = 16;
- x >>= 16;
- }
- if (x & 0x0000ff00) {
- base += 8;
- x >>= 8;
- }
- if (x & 0x000000f0) {
- base += 4;
- x >>= 4;
- }
-
- static const int lut[] = {-1,0,1,1,2,2,2,2,3,3,3,3,3,3,3,3};
- return base + lut[x];
-}
-
-
-int iRandom(int low, int high) {
- int r = iFloor(low + (high - low + 1) * (double)rand() / RAND_MAX);
-
- // There is a *very small* chance of generating
- // a number larger than high.
- if (r > high) {
- return high;
- } else {
- return r;
- }
-}
-
-
-}