#include "AnT.hpp"

#define delta parameters[0]
#define kappa parameters[1]
#define scal  parameters[2]
#define q1    currentState[0]
#define q2    currentState[1]

bool chem_osc (const Array<real_t>& currentState,
	       const Array<real_t>& parameters,
	       Array<real_t>& rhs)
{
  rhs[0] = delta/scal - kappa*q1 - scal*scal*q1*q2*q2;
  rhs[1] = kappa*q1 + scal*scal*q1*q2*q2 - q2;

  return true;
}

#undef delta
#undef kappa
#undef scal
#undef q1
#undef q2

extern "C" {

void connectSystem ()
{
  ODE_Proxy::systemFunction = chem_osc;
}

}

