#ifndef __ARITHMETICS_H
  #define __ARITHMETICS_H

#include <math.h>

#define ARIabs(a)    (a >= 0 ? a : -a)
#define ARImax(a, b) (a > b ? a : b)

static const double ARIpi = 3.14159265358979323846264338327950288419716939937510f;
static const double ARI2pi = 2 * ARIpi;

inline float deg2rad(float deg) {return (float)(ARIpi/180.0 * deg);}
inline float rad2deg(float rad) {return (float)(180.0/ARIpi * rad);}

static float ARIcos(float angle) {return (float) cos(ARIpi * ((double) angle / 180.0));}
static float ARIsin(float angle) {return (float) sin(ARIpi * ((double) angle / 180.0));}

inline float square( float x ) {return ( x * x );}

#include "vec3.h"
#include "matrix.h"
#include "random.h"

#endif

