#include "AnT.hpp"


#define alpha parameters[0]
#define beta  parameters[1]
#define gamma parameters[2]
#define X     currentState[0]
#define Y     currentState[1]

bool extended_lozi (const Array<real_t>&currentState,
	    const Array<real_t>& parameters,
	    Array<real_t>& rhs)
{
  
  rhs[0] = 1 - alpha * pow (fabs(X),gamma) + Y;
  rhs[1] = beta * X;

  return true;
}

bool extended_lozi_2 (const Array<real_t>&currentState,
	    const Array<real_t>& parameters,
	    Array<real_t>& rhs)
{
  
  rhs[0] = 1 - alpha * 0.5 * (fabs(X) * gamma + X*X * (1-gamma)) + Y;
  rhs[1] = beta * X;

  return true;
}

#undef alpha
#undef beta
#undef X
#undef Y

extern "C" 
{

void connectSystem ()
{
  MapProxy::systemFunction = extended_lozi;
}

}



