#ifndef ATTRACTORKERNEL_HPP #define ATTRACTORKERNEL_HPP #include using namespace std; class AttractorKernel { public: // AttractorKernel protocol // parameters are stored in a array of doubles // if you want to use other types, use the properties virtual double& parameter(const unsigned int index) = 0; virtual double*& parameters() = 0; virtual unsigned int getNumberOfParameters() = 0; // get properties of the attractor // such as the dimension // you should delete the void pointer if you used it virtual void * getProperty(const string identifier) = 0; virtual void setProperty(const string identifier, const void * value) = 0; // iterate his formula // vector pointers will be swapped! so new remains new and old remains old virtual void iterate() = 0; // getter functions for teh resulta virtual double * & vector() = 0; virtual double * & previousVector() = 0; }; #endif // ATTRACTORKERNEL_HPP