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.
46 lines
1.1 KiB
46 lines
1.1 KiB
//
|
|
// 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 <cmath>
|
|
|
|
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
|
|
|