// // Test.h // AwesomeAttract0r // // Created by Joshua Moerman on 9/4/12. // Copyright (c) 2012 Vadovas. All rights reserved. // #ifndef AwesomeAttract0r_Test_h #define AwesomeAttract0r_Test_h #include class Test : public AttractorKernel { private: void init() { // setting some starting values std::fill_n(vectorOld, dimension, 0.5); std::fill_n(vectorNew, dimension, 0.5); } public: Test(): AttractorKernel(3, 3) { init(); } virtual std::string type() const { return "test"; }; virtual void generate_random_parameters() { parameters[0] = rand() / double(RAND_MAX) + 3.0; parameters[1] = rand() / double(RAND_MAX) * 1.0 - 0.5; parameters[2] = 2.0 * rand() / double(RAND_MAX) - 1.0; init(); } virtual void operator()() { std::swap(vectorNew, vectorOld); vectorNew[0] = parameters[1] + std::ceil(vectorOld[0]/vectorOld[1]) * vectorOld[1] * (1 - vectorOld[0]) + parameters[2] * vectorOld[2]; vectorNew[1] = (std::fmod(vectorOld[0],1) + parameters[0]) * vectorOld[1] * (1 - vectorOld[1]); vectorNew[2] = vectorOld[0] * vectorOld[1] + vectorNew[0] * vectorNew[1] + rand() / double(RAND_MAX); } }; #endif