[PD-cvs] externals/grh/GApop/src GApop.cpp,1.1,1.2
Georg Holzmann
grholzi at users.sourceforge.net
Mon Aug 1 17:07:39 CEST 2005
- Previous message: [PD-cvs] externals/grill/py/source py.cpp, 1.32, 1.33 pyargs.cpp, 1.21, 1.22 pybase.cpp, 1.6, 1.7 pybase.h, 1.6, 1.7 pyext.cpp, 1.40, 1.41 pyext.h, 1.27, 1.28 pymeth.cpp, 1.4, 1.5 pyprefix.h, 1.4, 1.5
- Next message: [PD-cvs] externals/grh/GApop/pd GA_example1.pd, NONE, 1.1 help-GApop.pd, 1.1, 1.2
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /cvsroot/pure-data/externals/grh/GApop/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30129
Modified Files:
GApop.cpp
Log Message:
some bug fixes ...
Index: GApop.cpp
===================================================================
RCS file: /cvsroot/pure-data/externals/grh/GApop/src/GApop.cpp,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** GApop.cpp 12 Jul 2005 14:20:39 -0000 1.1
--- GApop.cpp 1 Aug 2005 15:07:37 -0000 1.2
***************
*** 5,9 ****
// how to use it
//
! // Copyright (c) 2004 Georg Holzmann <grh at gmx.at>
// For information on usage and redistribution, and for a DISCLAIMER OF ALL
// WARRANTIES, see the file, "license.txt," in this distribution.
--- 5,9 ----
// how to use it
//
! // Copyright (c) 2004 Georg Holzmann <grh at mur.at>
// For information on usage and redistribution, and for a DISCLAIMER OF ALL
// WARRANTIES, see the file, "license.txt," in this distribution.
***************
*** 41,44 ****
--- 41,47 ----
// constructor with a variable argument list
GApop(int argc,const t_atom *argv);
+
+ //destructor
+ ~GApop();
protected:
***************
*** 53,56 ****
--- 56,60 ----
// the fitness order
int *tempfit;
+ float *tempfit1;
// the other parameters:
***************
*** 178,182 ****
post("1 - set all parameters:");
post("popbuf contains the population (array with numbers");
! post(" between 0 and 1, max size is 200)");
post("fitbuf contains the fitness function (numbers between");
post(" 0 and 1, size should be 101: 0 = fitness(0),");
--- 182,186 ----
post("1 - set all parameters:");
post("popbuf contains the population (array with numbers");
! post(" between 0 and 1)");
post("fitbuf contains the fitness function (numbers between");
post(" 0 and 1, size should be 101: 0 = fitness(0),");
***************
*** 187,193 ****
post("2 - get the data:");
post("cross makes fitscaling, crossover and mutation");
! post("numbers in inlet 0 get the values: 0 means the value");
post(" of the fittest, 1 the value of the next...");
! post("have fun - Georg Holzmann <grh at gmx.at>\n");
}
--- 191,197 ----
post("2 - get the data:");
post("cross makes fitscaling, crossover and mutation");
! post("numbers in inlet 0 get the values: 0 means the value");
post(" of the fittest, 1 the value of the next...");
! post("have fun - Georg Holzmann <grh at mur.at>\n");
}
***************
*** 203,206 ****
--- 207,211 ----
popbuf=NULL; popname=NULL;
tempfit=NULL;
+ tempfit1=NULL;
buffsize=0;
pairs = 0;
***************
*** 217,222 ****
// set buffer according to creation arguments
if(argc == 1 && IsSymbol(argv[0]))
! { m_set(argc,argv); }
! }
--- 222,236 ----
// set buffer according to creation arguments
if(argc == 1 && IsSymbol(argv[0]))
! m_set(argc,argv);
! }
!
! GApop::~GApop()
! {
! if(popbuf) delete popbuf;
! if(fitbuf) delete fitbuf;
! if(tempfit) delete[] tempfit;
! if(tempfit1) delete[] tempfit1;
!
! }
***************
*** 317,321 ****
// clear existing buffer
if(popbuf) delete popbuf;
! if(tempfit) delete tempfit;
// save buffer name
--- 331,336 ----
// clear existing buffer
if(popbuf) delete popbuf;
! if(tempfit) delete[] tempfit;
! if(tempfit1) delete[] tempfit1;
// save buffer name
***************
*** 325,330 ****
buffsize = popbuf->Frames();
! // make new tempfit buffer
tempfit = new int[buffsize];
if(!popbuf->Ok()) {
--- 340,346 ----
buffsize = popbuf->Frames();
! // make new tempfit buffers
tempfit = new int[buffsize];
+ tempfit1 = new float[buffsize];
if(!popbuf->Ok()) {
***************
*** 391,411 ****
void GApop::m_cross()
{
! if(Checkpopbuf() && Checkfitbuf() && pairs<(buffsize/2-1))
! {
! // 1. step:
// every parameter get's a fitness from the
// given fitness function
// this fitness is saved into the temporary array tempfit1[]
- // make temporary array
- float *tempfit1 = new float[200];
-
// write the fitness
for(int i=0; i < buffsize; i++)
- {
tempfit1[i] = cutse(fitbuf->Data()[int(popbuf->Data()[i]*100+0.5)]);
- }
--- 407,429 ----
void GApop::m_cross()
{
! if(!Checkpopbuf() || !Checkfitbuf())
! return;
!
! if(pairs>=(buffsize/2))
! {
! post("GApop - pairs must be smaller then (buffsize/2)-1!");
! post(" currently %d pairs with a buffsize of %d!", pairs, buffsize);
! return;
! }
! // 1. step:
// every parameter get's a fitness from the
// given fitness function
// this fitness is saved into the temporary array tempfit1[]
// write the fitness
for(int i=0; i < buffsize; i++)
tempfit1[i] = cutse(fitbuf->Data()[int(popbuf->Data()[i]*100+0.5)]);
***************
*** 464,478 ****
}
}
-
- // delete the temporary array
- delete []tempfit1;
- }
-
-
- else
- {
- // invalid buffers
- post("GApop - entered buffers are invalid!");
- }
}
--- 482,485 ----
***************
*** 480,484 ****
// takes the incomig ints and gives out the specific individuum:
// 0 ... fittest individuum
! // 1 ... next individuum
// ...
void GApop::m_trigger(int i)
--- 487,491 ----
// takes the incomig ints and gives out the specific individuum:
// 0 ... fittest individuum
! // 1 ... next fit individuum
// ...
void GApop::m_trigger(int i)
***************
*** 488,493 ****
// make the boundaries for i:
! if(i<0) {i=0;}
! if(i>200) {i=200;}
// correct syntax, output value
--- 495,500 ----
// make the boundaries for i:
! if(i<0) i=0;
! if(i>buffsize) i=buffsize;
// correct syntax, output value
- Previous message: [PD-cvs] externals/grill/py/source py.cpp, 1.32, 1.33 pyargs.cpp, 1.21, 1.22 pybase.cpp, 1.6, 1.7 pybase.h, 1.6, 1.7 pyext.cpp, 1.40, 1.41 pyext.h, 1.27, 1.28 pymeth.cpp, 1.4, 1.5 pyprefix.h, 1.4, 1.5
- Next message: [PD-cvs] externals/grh/GApop/pd GA_example1.pd, NONE, 1.1 help-GApop.pd, 1.1, 1.2
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the Pd-cvs
mailing list