#ifndef __AMSMATHUTIL25_MATH_HPP__
#define __AMSMATHUTIL25_MATH_HPP__

namespace ams
{

//OpenGL #defines a variable pi - the compiler doesn't like it if I #define a pi also...
static const double pi = 3.1415926535897932384626433832795028841971693993751058209749445923078164L;
static const float pif = 3.1415926535897932384626433832795028841971693993751058209749445923078164;

//this implementation doesn't work on all complilers?
static const double nan = std::numeric_limits<double>::quiet_NaN();
static const double inf = std::numeric_limits<double>::infinity();

static const float fnan = std::numeric_limits<float>::quiet_NaN();
static const float finf = std::numeric_limits<float>::infinity();

static const double DLARGE = 1.0E300;
static const double DSMALL = 1.0E-300;

static const double vecmat_det_small = 1.0E-15;


}; //end namespace ams

#include <amsmathutil25/math/amsmathutil25_mathfns1.hpp>
#include <amsmathutil25/math/amsmathutil25_complex64.hpp>
#include <amsmathutil25/math/amsmathutil25_complex128.hpp>
#include <amsmathutil25/math/amsmathutil25_vec2.hpp>
#include <amsmathutil25/math/amsmathutil25_vec3.hpp>
#include <amsmathutil25/math/amsmathutil25_vec4.hpp>
#include <amsmathutil25/math/amsmathutil25_vec2f.hpp>
#include <amsmathutil25/math/amsmathutil25_vec3f.hpp>
#include <amsmathutil25/math/amsmathutil25_vec4f.hpp>


#endif

