summaryrefslogtreecommitdiff
path: root/src/tests/maxima/fitnessfunctioneq.cpp
diff options
context:
space:
mode:
authorMike Buland <mike@xagasoft.com>2012-07-09 12:01:50 -0600
committerMike Buland <mike@xagasoft.com>2012-07-09 12:01:50 -0600
commit1f7c135934b6604c5409d4b6f34861105c0a64cb (patch)
treecc421e2e8620b72e202f0eddf2cd5f1478d3bc06 /src/tests/maxima/fitnessfunctioneq.cpp
parent40ee7ad5aeadeb9823e1cd6e1218a1999c608a65 (diff)
downloadlibgenetic-1f7c135934b6604c5409d4b6f34861105c0a64cb.tar.gz
libgenetic-1f7c135934b6604c5409d4b6f34861105c0a64cb.tar.bz2
libgenetic-1f7c135934b6604c5409d4b6f34861105c0a64cb.tar.xz
libgenetic-1f7c135934b6604c5409d4b6f34861105c0a64cb.zip
It works well enough to solve polynomial maxima.
Diffstat (limited to 'src/tests/maxima/fitnessfunctioneq.cpp')
-rw-r--r--src/tests/maxima/fitnessfunctioneq.cpp25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/tests/maxima/fitnessfunctioneq.cpp b/src/tests/maxima/fitnessfunctioneq.cpp
new file mode 100644
index 0000000..5694507
--- /dev/null
+++ b/src/tests/maxima/fitnessfunctioneq.cpp
@@ -0,0 +1,25 @@
1#include "fitnessfunctioneq.h"
2#include "genetic/phenotypebinary.h"
3
4FitnessFunctionEq::FitnessFunctionEq()
5{
6}
7
8FitnessFunctionEq::~FitnessFunctionEq()
9{
10}
11
12double FitnessFunctionEq::operator()( Genetic::Phenotype *pTest )
13{
14 Genetic::PhenotypeBinary *pbTest =
15 dynamic_cast<Genetic::PhenotypeBinary *>( pTest );
16 if( pbTest == NULL )
17 return 0.0;
18
19 uint32_t uRaw;
20 pbTest->extractBits( uRaw, 0, 32 );
21 double x = ((double)uRaw / (double)(0xfffffffful))*5.0 - 2.5;
22
23 return -1.8*(x*x*x*x) + 0.86*(x*x*x) + 4.0*(x*x);
24}
25