Debug pack unpack des moeoVector et changement d'un cast dynamic en reinterpret
git-svn-id: svn://scm.gforge.inria.fr/svnroot/paradiseo@1834 331e1502-861f-0410-8da2-ba01fb791d7f
This commit is contained in:
parent
d5842c8d90
commit
6dca6d0ed4
3 changed files with 137 additions and 65 deletions
|
|
@ -156,45 +156,45 @@ template <class Traits, class Type> void unpack (moeoObjectiveVector<Traits,Type
|
||||||
unpack (_objVec[i]);
|
unpack (_objVec[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
template <class ObjectiveVector, class Fitness, class Diversity, class Type> void unpack(moeoVector <ObjectiveVector, Fitness, Diversity, Type> & _v)
|
//template <class ObjectiveVector, class Fitness, class Diversity, class Type> void unpack(moeoVector <ObjectiveVector, Fitness, Diversity, Type> & _v)
|
||||||
{
|
//{
|
||||||
unsigned int valid;
|
// unsigned int valid;
|
||||||
unsigned len;
|
// unsigned len;
|
||||||
// unpack(valid);
|
//// unpack(valid);
|
||||||
// if (! valid)
|
//// if (! valid)
|
||||||
// _v.invalidateFitness();
|
//// _v.invalidateFitness();
|
||||||
|
//// else
|
||||||
|
//// {
|
||||||
|
//// Fitness fit;
|
||||||
|
//// unpack (fit);
|
||||||
|
//// std::cerr << "fit = " << fit << std::endl;
|
||||||
|
//// _v.fitness (fit);
|
||||||
|
//// }
|
||||||
|
//
|
||||||
|
// //Unpack fitness and diversity
|
||||||
|
//
|
||||||
|
//// unpack(valid);
|
||||||
|
//// if (! valid)
|
||||||
|
//// _v.invalidateDiversity();
|
||||||
|
//// else
|
||||||
|
//// {
|
||||||
|
//// V diver;
|
||||||
|
//// unpack(diver);
|
||||||
|
//// _v.diversity(diver);
|
||||||
|
//// }
|
||||||
|
// //Unpack Objective Vector
|
||||||
|
// unpack(valid);
|
||||||
|
// if (! valid)
|
||||||
|
// _v.invalidateObjectiveVector();
|
||||||
// else
|
// else
|
||||||
// {
|
// {
|
||||||
// Fitness fit;
|
// unpack(_v.objectiveVector());
|
||||||
// unpack (fit);
|
// }
|
||||||
// std::cerr << "fit = " << fit << std::endl;
|
// unpack (len);
|
||||||
// _v.fitness (fit);
|
// _v.resize (len);
|
||||||
// }
|
// for (unsigned i = 0 ; i < len; i ++)
|
||||||
|
// unpack (_v [i]);
|
||||||
//Unpack fitness and diversity
|
//}
|
||||||
|
|
||||||
// unpack(valid);
|
|
||||||
// if (! valid)
|
|
||||||
// _v.invalidateDiversity();
|
|
||||||
// else
|
|
||||||
// {
|
|
||||||
// V diver;
|
|
||||||
// unpack(diver);
|
|
||||||
// _v.diversity(diver);
|
|
||||||
// }
|
|
||||||
//Unpack Objective Vector
|
|
||||||
unpack(valid);
|
|
||||||
if (! valid)
|
|
||||||
_v.invalidateObjectiveVector();
|
|
||||||
else
|
|
||||||
{
|
|
||||||
unpack(_v.objectiveVector());
|
|
||||||
}
|
|
||||||
unpack (len);
|
|
||||||
_v.resize (len);
|
|
||||||
for (unsigned i = 0 ; i < len; i ++)
|
|
||||||
unpack (_v [i]);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -211,39 +211,111 @@ template <class Traits, class Type> void pack (const moeoObjectiveVector<Traits,
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
template <class ObjectiveVector, class Fitness, class Diversity, class Type> void pack(const moeoVector <ObjectiveVector, Fitness, Diversity, Type> & _v)
|
//template <class ObjectiveVector, class Fitness, class Diversity, class Type> void pack(const moeoVector <ObjectiveVector, Fitness, Diversity, Type> & _v)
|
||||||
|
//{
|
||||||
|
// unsigned int len;
|
||||||
|
////Pack fitness : in comment but maybe useful in the future
|
||||||
|
//// if (_v.invalidFitness())
|
||||||
|
//// pack((unsigned int) 0);
|
||||||
|
//// else
|
||||||
|
//// {
|
||||||
|
//// pack((unsigned int) 1);
|
||||||
|
//// std::cerr << "FITENNESSS" << _v.fitness() << std::endl;
|
||||||
|
//// pack (_v.fitness());
|
||||||
|
//// }
|
||||||
|
//// //Pack diversity
|
||||||
|
//// if (_v.invalidDiversity())
|
||||||
|
//// pack((unsigned)0);
|
||||||
|
//// else
|
||||||
|
//// {
|
||||||
|
//// pack((unsigned)1);
|
||||||
|
//// pack(_v.diversity());
|
||||||
|
//// }
|
||||||
|
// if (_v.invalidObjectiveVector())
|
||||||
|
// pack((unsigned int) 0);
|
||||||
|
// else
|
||||||
|
// {
|
||||||
|
// pack((unsigned int) 1);
|
||||||
|
// pack(_v.objectiveVector());
|
||||||
|
// }
|
||||||
|
// len = _v.size ();
|
||||||
|
// pack (len);
|
||||||
|
// for (unsigned i = 0 ; i < len; i ++)
|
||||||
|
// pack (_v[i]);
|
||||||
|
//}
|
||||||
|
template <class F, class T, class V, class W> void pack (moeoVector <F,T,V,W> &_v)
|
||||||
{
|
{
|
||||||
unsigned int len;
|
if (_v.invalid())
|
||||||
//Pack fitness : in comment but maybe useful in the future
|
pack((unsigned)0);
|
||||||
// if (_v.invalidFitness())
|
|
||||||
// pack((unsigned int) 0);
|
|
||||||
// else
|
|
||||||
// {
|
|
||||||
// pack((unsigned int) 1);
|
|
||||||
// std::cerr << "FITENNESSS" << _v.fitness() << std::endl;
|
|
||||||
// pack (_v.fitness());
|
|
||||||
// }
|
|
||||||
// //Pack diversity
|
|
||||||
// if (_v.invalidDiversity())
|
|
||||||
// pack((unsigned)0);
|
|
||||||
// else
|
|
||||||
// {
|
|
||||||
// pack((unsigned)1);
|
|
||||||
// pack(_v.diversity());
|
|
||||||
// }
|
|
||||||
if (_v.invalidObjectiveVector())
|
|
||||||
pack((unsigned int) 0);
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
pack((unsigned int) 1);
|
pack((unsigned)1);
|
||||||
pack(_v.objectiveVector());
|
pack (_v.fitness ());
|
||||||
}
|
}
|
||||||
len = _v.size ();
|
if (_v.invalidDiversity())
|
||||||
|
pack((unsigned)0);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
pack((unsigned)1);
|
||||||
|
pack(_v.diversity());
|
||||||
|
}
|
||||||
|
unsigned len = _v.size ();
|
||||||
pack (len);
|
pack (len);
|
||||||
for (unsigned i = 0 ; i < len; i ++)
|
for (unsigned i = 0 ; i < len; i ++)
|
||||||
pack (_v[i]);
|
pack (_v[i]);
|
||||||
|
if (_v.invalidObjectiveVector())
|
||||||
|
pack((unsigned)0);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
pack((unsigned)1);
|
||||||
|
F object;
|
||||||
|
object=_v.objectiveVector();
|
||||||
|
len=object.nObjectives();
|
||||||
|
pack (len);
|
||||||
|
for (unsigned i = 0 ; i < len; i ++)
|
||||||
|
pack (object[i]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template <class F, class T, class V, class W> void unpack (moeoVector <F,T,V,W> &_v)
|
||||||
|
{
|
||||||
|
unsigned valid;
|
||||||
|
unpack(valid);
|
||||||
|
if (! valid)
|
||||||
|
_v.invalidate();
|
||||||
|
else
|
||||||
|
{
|
||||||
|
T fit;
|
||||||
|
unpack (fit);
|
||||||
|
_v.fitness (fit);
|
||||||
|
}
|
||||||
|
unpack(valid);
|
||||||
|
if (! valid)
|
||||||
|
_v.invalidateDiversity();
|
||||||
|
else
|
||||||
|
{
|
||||||
|
V diver;
|
||||||
|
unpack(diver);
|
||||||
|
_v.diversity(diver);
|
||||||
|
}
|
||||||
|
unsigned len;
|
||||||
|
unpack (len);
|
||||||
|
_v.resize (len);
|
||||||
|
for (unsigned i = 0 ; i < len; i ++)
|
||||||
|
unpack (_v [i]);
|
||||||
|
unpack(valid);
|
||||||
|
if (! valid)
|
||||||
|
_v.invalidateObjectiveVector();
|
||||||
|
else
|
||||||
|
{
|
||||||
|
F object;
|
||||||
|
unpack (len);
|
||||||
|
object.resize(len);
|
||||||
|
for (unsigned i = 0 ; i < len; i ++)
|
||||||
|
unpack (object[i]);
|
||||||
|
_v.objectiveVector(object);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
template <class F, class T, class V, class W> void unpack (moeoVector <F,T,V,W> &_v)
|
template <class F, class T, class V, class W> void unpack (moeoVector <F,T,V,W> &_v)
|
||||||
|
|
|
||||||
|
|
@ -54,7 +54,7 @@ struct AbstractEntity
|
||||||
template < typename EntityType > operator EntityType& ()
|
template < typename EntityType > operator EntityType& ()
|
||||||
{
|
{
|
||||||
|
|
||||||
return ( dynamic_cast< Entity< EntityType >& >( *this ) ).entity;
|
return ( reinterpret_cast< Entity< EntityType >& >( *this ) ).entity;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -129,7 +129,7 @@ void main_function(int argc, char **argv)
|
||||||
|
|
||||||
eoGenContinue<Problem> genCont(param.maxGen); // generation continuation
|
eoGenContinue<Problem> genCont(param.maxGen); // generation continuation
|
||||||
|
|
||||||
eoEasyEA<Problem> gga(genCont, plainEval, select, transform, replace);
|
eoEasyEA<Problem> gga(genCont, eval, select, transform, replace);
|
||||||
|
|
||||||
// PEO ADD
|
// PEO ADD
|
||||||
peo :: init( argc, argv );
|
peo :: init( argc, argv );
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue