correction of the parallel transformation
git-svn-id: svn://scm.gforge.inria.fr/svnroot/paradiseo@745 331e1502-861f-0410-8da2-ba01fb791d7f
This commit is contained in:
parent
7fa4e0220f
commit
4d885cc29a
2 changed files with 19 additions and 6 deletions
|
|
@ -43,7 +43,14 @@
|
|||
|
||||
template <class F, class T> void pack (const eoVector <F, T> & __v) {
|
||||
|
||||
pack (__v.fitness ()) ;
|
||||
|
||||
if ( !__v.invalid() )
|
||||
{
|
||||
pack( (unsigned int) 1 );
|
||||
pack (__v.fitness ()) ;
|
||||
}
|
||||
else
|
||||
pack( (unsigned int) 0 );
|
||||
unsigned len = __v.size ();
|
||||
pack (len);
|
||||
for (unsigned i = 0 ; i < len; i ++)
|
||||
|
|
@ -53,9 +60,15 @@ template <class F, class T> void pack (const eoVector <F, T> & __v) {
|
|||
template <class F, class T> void unpack (eoVector <F, T> & __v) {
|
||||
|
||||
F fit;
|
||||
unpack (fit);
|
||||
__v.fitness (fit);
|
||||
|
||||
unsigned int vfit;
|
||||
unpack( vfit );
|
||||
if ( vfit )
|
||||
{
|
||||
unpack (fit);
|
||||
__v.fitness (fit);
|
||||
}
|
||||
else
|
||||
__v.invalidate();
|
||||
unsigned len;
|
||||
unpack (len);
|
||||
__v.resize (len);
|
||||
|
|
|
|||
|
|
@ -149,8 +149,8 @@ template< class EOT > void peoParaSGATransform< EOT > :: unpackResult() {
|
|||
:: unpack( pop->operator[]( sidx++ ) );
|
||||
:: unpack( pop->operator[]( sidx ) );
|
||||
num_term += 2;
|
||||
|
||||
if( num_term == pop->size() ) {
|
||||
// Can be used with a odd size
|
||||
if( num_term == 2*(pop->size()/2) ) {
|
||||
|
||||
getOwner()->setActive();
|
||||
resume();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue