My old project for strange attractors
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.
 
 
 

44 lines
996 B

//
// 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 <cmath>
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