diff --git a/Attractor.cpp b/Attractor.cpp
index d93b0b3..b4dba1f 100644
--- a/Attractor.cpp
+++ b/Attractor.cpp
@@ -100,10 +100,6 @@ void Attractor::init(unsigned int dim_in, FormulaChoice formula_in, unsigned int
orde = orde_in;
switch (formula) {
- case POLY_A: {4
- par = dim;
- break;
- }
case LOGISTIC: {
par = dim;
break;
@@ -213,10 +209,6 @@ void Attractor::iterate() {
// calculations
switch (formula) {
- case POLY_A:
- poly_A();
- break;
-
case LOGISTIC:
logistic();
break;
@@ -241,20 +233,6 @@ void Attractor::iterate() {
#endif
}
-void Attractor::poly_A() {
- switch (dim) {
- case 3:
- new_point[0] = param[0] + point[1] - point[1]*point[2];
- new_point[1] = param[1] + point[2] - point[2]*point[0];
- new_point[2] = param[2] + point[0] - point[0]*point[1];
- break;
- default:
- for ( unsigned int i = 0; i < dim; i++ ) {
- new_point[i] = param[i] + point[(i+1) % dim] - point[(i+1) % dim]*point[(i+2) % dim];
- }
- break;
- }
-}
void Attractor::logistic() {
for ( unsigned int i = 0; i < dim; i++ ) {
diff --git a/AwesomeAttractor.cbp b/AwesomeAttractor.cbp
index 2963061..9333f37 100644
--- a/AwesomeAttractor.cbp
+++ b/AwesomeAttractor.cbp
@@ -50,6 +50,8 @@
+
+
diff --git a/kernels/Polynomial.cpp b/kernels/Polynomial.cpp
index f4dff5d..df09a14 100644
--- a/kernels/Polynomial.cpp
+++ b/kernels/Polynomial.cpp
@@ -57,6 +57,8 @@ void Polynomial::calculateNumberOfParameters(){
}
void Polynomial::iterate() {
+ swap(vectorNew, vectorOld);
+
unsigned int m = 0;
for ( unsigned int i = 0; i < dim; i++ ) {
@@ -64,7 +66,7 @@ void Polynomial::iterate() {
cout << "Entering new dimension: " << i << " With m = " << m << endl;
#endif
- new_point[i] = param[m];
+ vectorNew[i] = myParameters[m];
m++;
recur(i, 0, 1, m);
}
@@ -81,8 +83,8 @@ void Polynomial::recur(unsigned int curr_dimension, unsigned int prev_i, unsigne
cout << "Calculation in dimension: " << i << " With m = " << m << " And depth = " << n << endl;
#endif
- product = prev_product * point[i];
- new_point[curr_dimension] += param[m] * product;
+ product = prev_product * vectorOld[i];
+ vectorNew[curr_dimension] += myParameters[m] * product;
m++;
if (n < orde) {
recur(curr_dimension, i, n+1, m, product);
diff --git a/kernels/PolynomialA3D.cpp b/kernels/PolynomialA3D.cpp
index 63dc9fb..6744280 100644
--- a/kernels/PolynomialA3D.cpp
+++ b/kernels/PolynomialA3D.cpp
@@ -9,11 +9,11 @@
const static unsigned int dimension = 3;
const static unsigned int numberOfParameters = 3;
-PolynomialA3D::PolynomialA3D(){
+PolynomialA3D::PolynomialA3D() {
init();
}
-void PolynomialA3D::init(){
+void PolynomialA3D::init() {
myParameters = new double[numberOfParameters];
vectorNew = new double[dimension];
vectorOld = new double[dimension];
@@ -29,6 +29,21 @@ void PolynomialA3D::init(){
}
}
+void PolynomialA3D::iterate() {
+ swap(vectorNew, vectorOld);
+
+ vectorNew[0] = myParameters[0] + vectorOld[1] - vectorOld[1]*vectorOld[2];
+ vectorNew[1] = myParameters[1] + vectorOld[2] - vectorOld[2]*vectorOld[0];
+ vectorNew[2] = myParameters[2] + vectorOld[0] - vectorOld[0]*vectorOld[1];
+}
+/*
+N dimensional:
+ for ( unsigned int i = 0; i < dim; i++ ) {
+ new_point[i] = param[i] + point[(i+1) % dim] - point[(i+1) % dim]*point[(i+2) % dim];
+ }
+*/
+
+
// setters, getters, all i/o to other classes/objects
void * PolynomialA3D::getProperty(const string identifier) {
if ( identifier == "dimension" ) {