#include "AnT.hpp"

#define sigma parameters[0]
#define r     parameters[1]
#define b     parameters[2]
#define s     parameters[3]
#define X     currentState[0]
#define Y     currentState[1]
#define Z     currentState[2]

bool lorenz63 (const Array<real_t>& currentState,
               const Array<real_t>& parameters,
               Array<real_t>& rhs)
{
  rhs[0] = sigma * (Y - X);
  rhs[1] = X * (r - s * Z) - Y;
  rhs[2] = s * X * Y - b * Z;

  return true;
}


#undef sigma
#undef r
#undef b
#undef s
#undef X
#undef Y
#undef Z

extern "C" { void connectSystem (){ ODE_Proxy::systemFunction = lorenz63; } }


