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