/* math/functions.cc This file is part of the Osirion project and is distributed under the terms of the GNU General Public License version 2 */ #include "math/functions.h" #include namespace math { const float DELTA = 10e-10; float min(float a, float b) { return (a < b ? a : b); } float max(float a, float b) { return (a > b ? a : b); } int min(int a, int b) { return (a < b ? a : b); } int max(int a, int b) { return (a > b ? a : b); } float randomf(const float max) { return ((float) rand() / (float) RAND_MAX) * max; } unsigned randomi(const unsigned int max) { return ((unsigned int)(rand() % max)); } float degrees180f(float angle) { float r = angle; while (r - DELTA < -180.0f) r += 360.0f; while (r + DELTA > 180.0f) r -= 360.0f; return r; } float degrees360f(float angle) { float r = angle; while (r - DELTA < 0) r += 360.0f; while (r + DELTA > 360.0f) r -= 360.0f; return r; } float sgnf(float value) { if (value < 0) return -1; else if (value == 0) return 0; return 1; } } // namespace math