

///-----------------------------------------------
///  FOR C++ VERSION
///-----------------------------------------------
 
/// Useful Values you may need them :
///  ToDegree: 57.295779f
///  ToRadian: 0.0174532f
///  PI: 3.14159265358979323846
///  E:  2.71828182845904523536
/// Float is the standard type that games and graphics use, double is rarely used, 
/// probably because both CPU/GPU run float operations faster.
/// leaving these in double, would mean most of their usage involves casting twice, 
/// which is not recommended for realtime applications. 
 
/// @Desc : Class Contains Mathematical Functions/Methods.
///         all functions are static and there is no constructor.
/// @Package: Core

 class Math
{
public:
	// Constants
	static const float PI;
	static const float E;
	
	// You may encapsulate/use c++ standard math functions .
	static float ln(float x); 
	static float log2(float x); 
	static float log10(float x); 
	static float exp(float x); 
	static float alog2(float x); 
	static float alog10(float x); 
	static float pow(float base,float exp); 
	static float root(float base,float exp); 
	static float sqrt(float base); 
	static float abs(float x);
	static float floor(float x);
	static float ceiling(float x);
	static float sin(float x);
	static float cos(float x);
	static float tan(float x);
	static float asin(float x);
	static float acos(float x);
	static float atan(float x);
	static float toDegree(float angle);
	static float toRadian(float angle);
};