From c2e1e6436dffe1f0ace456bb6eb802ae923b3d39 Mon Sep 17 00:00:00 2001
From: Vincent Liard <vincent.liard@inria.fr>
Date: Thu, 26 Feb 2015 10:50:21 +0100
Subject: [PATCH] un-inline ae_population methods

And move them to ae_population.cpp.
---
 src/libaevol/ae_population.cpp | 310 +++++++++++++++++++++++++++
 src/libaevol/ae_population.h   | 374 +++------------------------------
 2 files changed, 343 insertions(+), 341 deletions(-)

diff --git a/src/libaevol/ae_population.cpp b/src/libaevol/ae_population.cpp
index a7fe87732..00beaafdf 100644
--- a/src/libaevol/ae_population.cpp
+++ b/src/libaevol/ae_population.cpp
@@ -69,6 +69,316 @@ namespace aevol {
 //                                                                             #
 //##############################################################################
 
+
+
+// =====================================================================
+//                           Getters' definitions
+// =====================================================================
+ae_list<ae_individual*>* ae_population::get_indivs( void ) const
+{
+  return _indivs;
+}
+
+std::list<ae_individual*> ae_population::get_indivs_std() const {
+  // return std::list<ae_individual*>(_indivs);
+  return aelist_to_stdlist(_indivs);
+}
+
+int32_t ae_population::get_nb_indivs( void ) const
+{
+  return _nb_indivs;
+}
+
+ae_individual* ae_population::get_best( void ) const
+{
+  return _indivs->get_last()->get_obj();
+}
+
+/*!
+  Get the indiv corresponding to the given rank (1 for the worst indiv, POP_SIZE for the best)
+
+  Warning, be sure you call sort_individuals() before using get_indiv_by_rank
+*/
+ae_individual* ae_population::get_indiv_by_rank( int32_t rank ) const
+{
+  ae_list_node<ae_individual*>* indiv_node = _indivs->get_first();
+
+  for ( int32_t i = 1 ; i < rank ; i++ )
+  {
+    indiv_node = indiv_node->get_next();
+  }
+
+  assert( indiv_node->get_obj()->get_rank() == rank );
+
+  return indiv_node->get_obj();
+}
+
+ae_jumping_mt* ae_population::get_mut_prng( void ) const
+{
+  return _mut_prng;
+}
+
+ae_jumping_mt* ae_population::get_stoch_prng( void ) const
+{
+  return _stoch_prng;
+}
+
+// =====================================================================
+//                           Setters' definitions
+// =====================================================================
+/*void ae_population::set_nb_indivs( int32_t nb_indivs )
+{
+  _nb_indivs = nb_indivs;
+}*/
+
+void ae_population::add_indiv( ae_individual* indiv )
+{
+  _indivs->add( indiv );
+  _nb_indivs++;
+}
+
+
+void ae_population::set_mut_prng( ae_jumping_mt* prng )
+{
+  if (_mut_prng != NULL) delete _mut_prng;
+  _mut_prng = prng;
+  ae_list_node<ae_individual*>* indiv_node = _indivs->get_first();
+  ae_individual*  indiv;
+  for ( int32_t i = 0 ; i < _nb_indivs ; i++ )
+  {
+    indiv = indiv_node->get_obj();
+    indiv->set_mut_prng( _mut_prng );
+    indiv_node = indiv_node->get_next();
+  }
+}
+
+void ae_population::set_stoch_prng( ae_jumping_mt* prng )
+{
+  if (_stoch_prng != NULL) delete _stoch_prng;
+  _stoch_prng = prng;
+  ae_list_node<ae_individual*>* indiv_node = _indivs->get_first();
+  ae_individual*  indiv;
+  for ( int32_t i = 0 ; i < _nb_indivs ; i++ )
+  {
+    indiv = indiv_node->get_obj();
+    indiv->set_stoch_prng( _stoch_prng );
+    indiv_node = indiv_node->get_next();
+  }
+}
+
+
+// Mutation rates etc...
+void ae_population::set_overall_point_mutation_rate( double point_mutation_rate )
+{
+  ae_list_node<ae_individual*>* indiv_node = _indivs->get_first();
+  ae_individual*  indiv;
+  for ( int32_t i = 0 ; i < _nb_indivs ; i++ )
+  {
+    indiv = indiv_node->get_obj();
+    indiv->set_point_mutation_rate( point_mutation_rate );
+    indiv_node = indiv_node->get_next();
+  }
+}
+
+void ae_population::set_overall_small_insertion_rate( double small_insertion_rate )
+{
+  ae_list_node<ae_individual*>* indiv_node = _indivs->get_first();
+  ae_individual*  indiv;
+  for ( int32_t i = 0 ; i < _nb_indivs ; i++ )
+  {
+    indiv = indiv_node->get_obj();
+    indiv->set_small_insertion_rate( small_insertion_rate );
+    indiv_node = indiv_node->get_next();
+  }
+}
+
+void ae_population::set_overall_small_deletion_rate( double small_deletion_rate )
+{
+  ae_list_node<ae_individual*>* indiv_node = _indivs->get_first();
+  ae_individual*  indiv;
+  for ( int32_t i = 0 ; i < _nb_indivs ; i++ )
+  {
+    indiv = indiv_node->get_obj();
+    indiv->set_small_deletion_rate( small_deletion_rate );
+    indiv_node = indiv_node->get_next();
+  }
+}
+
+void ae_population::set_overall_max_indel_size( int16_t max_indel_size )
+{
+  ae_list_node<ae_individual*>* indiv_node = _indivs->get_first();
+  ae_individual*  indiv;
+  for ( int32_t i = 0 ; i < _nb_indivs ; i++ )
+  {
+    indiv = indiv_node->get_obj();
+    indiv->set_max_indel_size( max_indel_size );
+    indiv_node = indiv_node->get_next();
+  }
+}
+
+void ae_population::set_overall_duplication_rate( double duplication_rate )
+{
+  ae_list_node<ae_individual*>* indiv_node = _indivs->get_first();
+  ae_individual*  indiv;
+  for ( int32_t i = 0 ; i < _nb_indivs ; i++ )
+  {
+    indiv = indiv_node->get_obj();
+    indiv->set_duplication_rate( duplication_rate );
+    indiv_node = indiv_node->get_next();
+  }
+}
+
+void ae_population::set_overall_deletion_rate( double deletion_rate)
+{
+  ae_list_node<ae_individual*>* indiv_node = _indivs->get_first();
+  ae_individual*  indiv;
+  for ( int32_t i = 0 ; i < _nb_indivs ; i++ )
+  {
+    indiv = indiv_node->get_obj();
+    indiv->set_deletion_rate( deletion_rate );
+    indiv_node = indiv_node->get_next();
+  }
+}
+
+void ae_population::set_overall_translocation_rate( double translocation_rate)
+{
+  ae_list_node<ae_individual*>* indiv_node = _indivs->get_first();
+  ae_individual*  indiv;
+  for ( int32_t i = 0 ; i < _nb_indivs ; i++ )
+  {
+    indiv = indiv_node->get_obj();
+    indiv->set_translocation_rate( translocation_rate );
+    indiv_node = indiv_node->get_next();
+  }
+}
+
+void ae_population::set_overall_inversion_rate( double inversion_rate)
+{
+  ae_list_node<ae_individual*>* indiv_node = _indivs->get_first();
+  ae_individual*  indiv;
+  for ( int32_t i = 0 ; i < _nb_indivs ; i++ )
+  {
+    indiv = indiv_node->get_obj();
+    indiv->set_inversion_rate( inversion_rate );
+    indiv_node = indiv_node->get_next();
+  }
+}
+
+void ae_population::set_overall_transfer_ins_rate (double transfer_ins_rate)
+{
+        ae_list_node<ae_individual*>* indiv_node = _indivs->get_first();
+  ae_individual*  indiv;
+  for ( int32_t i = 0 ; i < _nb_indivs ; i++ )
+  {
+    indiv = indiv_node->get_obj();
+    indiv->set_HT_ins_rate( transfer_ins_rate );
+    indiv_node = indiv_node->get_next();
+  }
+}
+
+void ae_population::set_overall_transfer_repl_rate (double transfer_repl_rate)
+{
+        ae_list_node<ae_individual*>* indiv_node = _indivs->get_first();
+  ae_individual*  indiv;
+  for ( int32_t i = 0 ; i < _nb_indivs ; i++ )
+  {
+    indiv = indiv_node->get_obj();
+    indiv->set_HT_repl_rate( transfer_repl_rate );
+    indiv_node = indiv_node->get_next();
+  }
+}
+
+void ae_population::set_overall_neighbourhood_rate( double neighbourhood_rate)
+{
+  ae_list_node<ae_individual*>* indiv_node = _indivs->get_first();
+  ae_individual*  indiv;
+  for ( int32_t i = 0 ; i < _nb_indivs ; i++ )
+  {
+    indiv = indiv_node->get_obj();
+    indiv->set_neighbourhood_rate( neighbourhood_rate );
+    indiv_node = indiv_node->get_next();
+  }
+}
+
+void ae_population::set_overall_duplication_proportion( double duplication_proportion)
+{
+  ae_list_node<ae_individual*>* indiv_node = _indivs->get_first();
+  ae_individual*  indiv;
+  for ( int32_t i = 0 ; i < _nb_indivs ; i++ )
+  {
+    indiv = indiv_node->get_obj();
+    indiv->set_duplication_proportion( duplication_proportion );
+    indiv_node = indiv_node->get_next();
+  }
+}
+
+void ae_population::set_overall_deletion_proportion( double deletion_proportion)
+{
+  ae_list_node<ae_individual*>* indiv_node = _indivs->get_first();
+  ae_individual*  indiv;
+  for ( int32_t i = 0 ; i < _nb_indivs ; i++ )
+  {
+    indiv = indiv_node->get_obj();
+    indiv->set_deletion_proportion( deletion_proportion );
+    indiv_node = indiv_node->get_next();
+  }
+}
+
+void ae_population::set_overall_translocation_proportion( double translocation_proportion)
+{
+  ae_list_node<ae_individual*>* indiv_node = _indivs->get_first();
+  ae_individual*  indiv;
+  for ( int32_t i = 0 ; i < _nb_indivs ; i++ )
+  {
+    indiv = indiv_node->get_obj();
+    indiv->set_translocation_proportion( translocation_proportion );
+    indiv_node = indiv_node->get_next();
+  }
+}
+
+void ae_population::set_overall_inversion_proportion( double inversion_proportion)
+{
+  ae_list_node<ae_individual*>* indiv_node = _indivs->get_first();
+  ae_individual*  indiv;
+  for ( int32_t i = 0 ; i < _nb_indivs ; i++ )
+  {
+    indiv = indiv_node->get_obj();
+    indiv->set_inversion_proportion( inversion_proportion );
+    indiv_node = indiv_node->get_next();
+  }
+}
+
+void ae_population::set_replication_reports( ae_tree* tree, int32_t num_gener)
+{
+  ae_list_node<ae_individual*>* indiv_node = _indivs->get_first();
+  ae_individual*  indiv;
+  for ( int32_t i = 0 ; i < _nb_indivs ; i++ )
+  {
+    indiv = indiv_node->get_obj();
+    indiv->set_replication_report( tree->get_report_by_index( num_gener, indiv->get_id()));
+    indiv_node = indiv_node->get_next();
+  }
+}
+
+// =====================================================================
+//                       Inline functions' definition
+// =====================================================================
+void ae_population::evaluate_individuals( Environment* envir )
+{
+  ae_list_node<ae_individual*>*  indiv_node  = _indivs->get_first();
+  ae_individual * indiv       = NULL;
+
+  while ( indiv_node != NULL )
+  {
+    indiv = indiv_node->get_obj();
+    indiv->evaluate( envir );
+    indiv->compute_statistical_data();
+
+    indiv_node = indiv_node->get_next();
+  }
+}
+
+
 // =================================================================
 //                    Definition of static attributes
 // =================================================================
diff --git a/src/libaevol/ae_population.h b/src/libaevol/ae_population.h
index f18aaac03..c073bfdd7 100644
--- a/src/libaevol/ae_population.h
+++ b/src/libaevol/ae_population.h
@@ -79,53 +79,53 @@ class ae_population
     // =================================================================
     //                        Accessors: Getters
     // =================================================================
-    inline ae_list<ae_individual*>* get_indivs( void ) const;
-    inline std::list<ae_individual*> get_indivs_std() const;
-    inline int32_t                  get_nb_indivs( void ) const;
-    inline ae_individual*           get_best( void ) const;
+    ae_list<ae_individual*>* get_indivs( void ) const;
+    std::list<ae_individual*> get_indivs_std() const;
+    int32_t                  get_nb_indivs( void ) const;
+    ae_individual*           get_best( void ) const;
     ae_individual*                  get_indiv_by_id( int32_t id ) const;
-    inline ae_individual*           get_indiv_by_rank( int32_t rank ) const;
+    ae_individual*           get_indiv_by_rank( int32_t rank ) const;
 
     // PRNGs
-    inline ae_jumping_mt* get_mut_prng( void ) const;
-    inline ae_jumping_mt* get_stoch_prng( void ) const;
+    ae_jumping_mt* get_mut_prng( void ) const;
+    ae_jumping_mt* get_stoch_prng( void ) const;
 
     // Spatial structure
-    //~ inline double** get_secretion_present( void ) const;
-    //~ inline double** get_secreted_amount( void ) const;
-    //~ inline double** get_fitness_metabolic( void ) const;
-    //~ inline double** get_fitness_total( void ) const;
+    //~ double** get_secretion_present( void ) const;
+    //~ double** get_secreted_amount( void ) const;
+    //~ double** get_fitness_metabolic( void ) const;
+    //~ double** get_fitness_total( void ) const;
 
     // =================================================================
     //                        Accessors: Setters
     // =================================================================
     void set_nb_indivs( int32_t nb_indivs );
 
-    inline void add_indiv( ae_individual* indiv );
+    void add_indiv( ae_individual* indiv );
 
     // PRNGs
-    inline void set_mut_prng( ae_jumping_mt* prng );
-    inline void set_stoch_prng( ae_jumping_mt* prng );
+    void set_mut_prng( ae_jumping_mt* prng );
+    void set_stoch_prng( ae_jumping_mt* prng );
 
     // Mutation rates etc...
-    inline void set_overall_point_mutation_rate( double point_mutation_rate);
-    inline void set_overall_small_insertion_rate( double small_insertion_rate);
-    inline void set_overall_small_deletion_rate( double small_deletion_rate);
-    inline void set_overall_max_indel_size( int16_t max_indel_size);
-
-    inline void set_overall_duplication_rate( double duplication_rate);
-    inline void set_overall_deletion_rate( double deletion_rate);
-    inline void set_overall_translocation_rate( double translocation_rate);
-    inline void set_overall_inversion_rate( double inversion_rate);
-    inline void set_overall_neighbourhood_rate( double neighbourhood_rate);
-    inline void set_overall_duplication_proportion( double duplication_proportion);
-    inline void set_overall_deletion_proportion( double deletion_proportion);
-    inline void set_overall_translocation_proportion( double translocation_proportion);
-    inline void set_overall_inversion_proportion( double inversion_proportion);
-    inline void set_overall_transfer_ins_rate (double transfer_ins_rate);
-    inline void set_overall_transfer_repl_rate (double transfer_repl_rate);
-
-    inline void set_replication_reports( ae_tree* tree, int32_t num_gener);
+    void set_overall_point_mutation_rate( double point_mutation_rate);
+    void set_overall_small_insertion_rate( double small_insertion_rate);
+    void set_overall_small_deletion_rate( double small_deletion_rate);
+    void set_overall_max_indel_size( int16_t max_indel_size);
+
+    void set_overall_duplication_rate( double duplication_rate);
+    void set_overall_deletion_rate( double deletion_rate);
+    void set_overall_translocation_rate( double translocation_rate);
+    void set_overall_inversion_rate( double inversion_rate);
+    void set_overall_neighbourhood_rate( double neighbourhood_rate);
+    void set_overall_duplication_proportion( double duplication_proportion);
+    void set_overall_deletion_proportion( double deletion_proportion);
+    void set_overall_translocation_proportion( double translocation_proportion);
+    void set_overall_inversion_proportion( double inversion_proportion);
+    void set_overall_transfer_ins_rate (double transfer_ins_rate);
+    void set_overall_transfer_repl_rate (double transfer_repl_rate);
+
+    void set_replication_reports( ae_tree* tree, int32_t num_gener);
 
     // =================================================================
     //                            Public Methods
@@ -139,7 +139,7 @@ class ae_population
     //~ ae_individual*  calculate_local_competition ( int16_t x, int16_t y );
     ae_individual*  calculate_GU_transfer ( int16_t x, int16_t y );
     void            do_random_migrations ( void );
-    inline void     evaluate_individuals( Environment* envir );
+    void     evaluate_individuals( Environment* envir );
     void            sort_individuals( void );
     void            update_best( void );
 
@@ -203,313 +203,5 @@ class ae_population
     std::list<ae_individual> std_indivs;
 };
 
-
-// =====================================================================
-//                           Getters' definitions
-// =====================================================================
-inline ae_list<ae_individual*>* ae_population::get_indivs( void ) const
-{
-  return _indivs;
-}
-
-inline std::list<ae_individual*> ae_population::get_indivs_std() const {
-  // return std::list<ae_individual*>(_indivs);
-  return aelist_to_stdlist(_indivs);
-}
-
-inline int32_t ae_population::get_nb_indivs( void ) const
-{
-  return _nb_indivs;
-}
-
-inline ae_individual* ae_population::get_best( void ) const
-{
-  return _indivs->get_last()->get_obj();
-}
-
-/*!
-  Get the indiv corresponding to the given rank (1 for the worst indiv, POP_SIZE for the best)
-
-  Warning, be sure you call sort_individuals() before using get_indiv_by_rank
-*/
-inline ae_individual* ae_population::get_indiv_by_rank( int32_t rank ) const
-{
-  ae_list_node<ae_individual*>* indiv_node = _indivs->get_first();
-
-  for ( int32_t i = 1 ; i < rank ; i++ )
-  {
-    indiv_node = indiv_node->get_next();
-  }
-
-  assert( indiv_node->get_obj()->get_rank() == rank );
-
-  return indiv_node->get_obj();
-}
-
-inline ae_jumping_mt* ae_population::get_mut_prng( void ) const
-{
-  return _mut_prng;
-}
-
-inline ae_jumping_mt* ae_population::get_stoch_prng( void ) const
-{
-  return _stoch_prng;
-}
-
-// =====================================================================
-//                           Setters' definitions
-// =====================================================================
-/*inline void ae_population::set_nb_indivs( int32_t nb_indivs )
-{
-  _nb_indivs = nb_indivs;
-}*/
-
-inline void ae_population::add_indiv( ae_individual* indiv )
-{
-  _indivs->add( indiv );
-  _nb_indivs++;
-}
-
-
-inline void ae_population::set_mut_prng( ae_jumping_mt* prng )
-{
-  if (_mut_prng != NULL) delete _mut_prng;
-  _mut_prng = prng;
-  ae_list_node<ae_individual*>* indiv_node = _indivs->get_first();
-  ae_individual*  indiv;
-  for ( int32_t i = 0 ; i < _nb_indivs ; i++ )
-  {
-    indiv = indiv_node->get_obj();
-    indiv->set_mut_prng( _mut_prng );
-    indiv_node = indiv_node->get_next();
-  }
-}
-
-inline void ae_population::set_stoch_prng( ae_jumping_mt* prng )
-{
-  if (_stoch_prng != NULL) delete _stoch_prng;
-  _stoch_prng = prng;
-  ae_list_node<ae_individual*>* indiv_node = _indivs->get_first();
-  ae_individual*  indiv;
-  for ( int32_t i = 0 ; i < _nb_indivs ; i++ )
-  {
-    indiv = indiv_node->get_obj();
-    indiv->set_stoch_prng( _stoch_prng );
-    indiv_node = indiv_node->get_next();
-  }
-}
-
-
-// Mutation rates etc...
-inline void ae_population::set_overall_point_mutation_rate( double point_mutation_rate )
-{
-  ae_list_node<ae_individual*>* indiv_node = _indivs->get_first();
-  ae_individual*  indiv;
-  for ( int32_t i = 0 ; i < _nb_indivs ; i++ )
-  {
-    indiv = indiv_node->get_obj();
-    indiv->set_point_mutation_rate( point_mutation_rate );
-    indiv_node = indiv_node->get_next();
-  }
-}
-
-inline void ae_population::set_overall_small_insertion_rate( double small_insertion_rate )
-{
-  ae_list_node<ae_individual*>* indiv_node = _indivs->get_first();
-  ae_individual*  indiv;
-  for ( int32_t i = 0 ; i < _nb_indivs ; i++ )
-  {
-    indiv = indiv_node->get_obj();
-    indiv->set_small_insertion_rate( small_insertion_rate );
-    indiv_node = indiv_node->get_next();
-  }
-}
-
-inline void ae_population::set_overall_small_deletion_rate( double small_deletion_rate )
-{
-  ae_list_node<ae_individual*>* indiv_node = _indivs->get_first();
-  ae_individual*  indiv;
-  for ( int32_t i = 0 ; i < _nb_indivs ; i++ )
-  {
-    indiv = indiv_node->get_obj();
-    indiv->set_small_deletion_rate( small_deletion_rate );
-    indiv_node = indiv_node->get_next();
-  }
-}
-
-inline void ae_population::set_overall_max_indel_size( int16_t max_indel_size )
-{
-  ae_list_node<ae_individual*>* indiv_node = _indivs->get_first();
-  ae_individual*  indiv;
-  for ( int32_t i = 0 ; i < _nb_indivs ; i++ )
-  {
-    indiv = indiv_node->get_obj();
-    indiv->set_max_indel_size( max_indel_size );
-    indiv_node = indiv_node->get_next();
-  }
-}
-
-inline void ae_population::set_overall_duplication_rate( double duplication_rate )
-{
-  ae_list_node<ae_individual*>* indiv_node = _indivs->get_first();
-  ae_individual*  indiv;
-  for ( int32_t i = 0 ; i < _nb_indivs ; i++ )
-  {
-    indiv = indiv_node->get_obj();
-    indiv->set_duplication_rate( duplication_rate );
-    indiv_node = indiv_node->get_next();
-  }
-}
-
-inline void ae_population::set_overall_deletion_rate( double deletion_rate)
-{
-  ae_list_node<ae_individual*>* indiv_node = _indivs->get_first();
-  ae_individual*  indiv;
-  for ( int32_t i = 0 ; i < _nb_indivs ; i++ )
-  {
-    indiv = indiv_node->get_obj();
-    indiv->set_deletion_rate( deletion_rate );
-    indiv_node = indiv_node->get_next();
-  }
-}
-
-inline void ae_population::set_overall_translocation_rate( double translocation_rate)
-{
-  ae_list_node<ae_individual*>* indiv_node = _indivs->get_first();
-  ae_individual*  indiv;
-  for ( int32_t i = 0 ; i < _nb_indivs ; i++ )
-  {
-    indiv = indiv_node->get_obj();
-    indiv->set_translocation_rate( translocation_rate );
-    indiv_node = indiv_node->get_next();
-  }
-}
-
-inline void ae_population::set_overall_inversion_rate( double inversion_rate)
-{
-  ae_list_node<ae_individual*>* indiv_node = _indivs->get_first();
-  ae_individual*  indiv;
-  for ( int32_t i = 0 ; i < _nb_indivs ; i++ )
-  {
-    indiv = indiv_node->get_obj();
-    indiv->set_inversion_rate( inversion_rate );
-    indiv_node = indiv_node->get_next();
-  }
-}
-
-inline void ae_population::set_overall_transfer_ins_rate (double transfer_ins_rate)
-{
-	ae_list_node<ae_individual*>* indiv_node = _indivs->get_first();
-  ae_individual*  indiv;
-  for ( int32_t i = 0 ; i < _nb_indivs ; i++ )
-  {
-    indiv = indiv_node->get_obj();
-    indiv->set_HT_ins_rate( transfer_ins_rate );
-    indiv_node = indiv_node->get_next();
-  }
-}
-
-inline void ae_population::set_overall_transfer_repl_rate (double transfer_repl_rate)
-{
-	ae_list_node<ae_individual*>* indiv_node = _indivs->get_first();
-  ae_individual*  indiv;
-  for ( int32_t i = 0 ; i < _nb_indivs ; i++ )
-  {
-    indiv = indiv_node->get_obj();
-    indiv->set_HT_repl_rate( transfer_repl_rate );
-    indiv_node = indiv_node->get_next();
-  }
-}
-
-inline void ae_population::set_overall_neighbourhood_rate( double neighbourhood_rate)
-{
-  ae_list_node<ae_individual*>* indiv_node = _indivs->get_first();
-  ae_individual*  indiv;
-  for ( int32_t i = 0 ; i < _nb_indivs ; i++ )
-  {
-    indiv = indiv_node->get_obj();
-    indiv->set_neighbourhood_rate( neighbourhood_rate );
-    indiv_node = indiv_node->get_next();
-  }
-}
-
-inline void ae_population::set_overall_duplication_proportion( double duplication_proportion)
-{
-  ae_list_node<ae_individual*>* indiv_node = _indivs->get_first();
-  ae_individual*  indiv;
-  for ( int32_t i = 0 ; i < _nb_indivs ; i++ )
-  {
-    indiv = indiv_node->get_obj();
-    indiv->set_duplication_proportion( duplication_proportion );
-    indiv_node = indiv_node->get_next();
-  }
-}
-
-inline void ae_population::set_overall_deletion_proportion( double deletion_proportion)
-{
-  ae_list_node<ae_individual*>* indiv_node = _indivs->get_first();
-  ae_individual*  indiv;
-  for ( int32_t i = 0 ; i < _nb_indivs ; i++ )
-  {
-    indiv = indiv_node->get_obj();
-    indiv->set_deletion_proportion( deletion_proportion );
-    indiv_node = indiv_node->get_next();
-  }
-}
-
-inline void ae_population::set_overall_translocation_proportion( double translocation_proportion)
-{
-  ae_list_node<ae_individual*>* indiv_node = _indivs->get_first();
-  ae_individual*  indiv;
-  for ( int32_t i = 0 ; i < _nb_indivs ; i++ )
-  {
-    indiv = indiv_node->get_obj();
-    indiv->set_translocation_proportion( translocation_proportion );
-    indiv_node = indiv_node->get_next();
-  }
-}
-
-inline void ae_population::set_overall_inversion_proportion( double inversion_proportion)
-{
-  ae_list_node<ae_individual*>* indiv_node = _indivs->get_first();
-  ae_individual*  indiv;
-  for ( int32_t i = 0 ; i < _nb_indivs ; i++ )
-  {
-    indiv = indiv_node->get_obj();
-    indiv->set_inversion_proportion( inversion_proportion );
-    indiv_node = indiv_node->get_next();
-  }
-}
-
-inline void ae_population::set_replication_reports( ae_tree* tree, int32_t num_gener)
-{
-  ae_list_node<ae_individual*>* indiv_node = _indivs->get_first();
-  ae_individual*  indiv;
-  for ( int32_t i = 0 ; i < _nb_indivs ; i++ )
-  {
-    indiv = indiv_node->get_obj();
-    indiv->set_replication_report( tree->get_report_by_index( num_gener, indiv->get_id()));
-    indiv_node = indiv_node->get_next();
-  }
-}
-
-// =====================================================================
-//                       Inline functions' definition
-// =====================================================================
-inline void ae_population::evaluate_individuals( Environment* envir )
-{
-  ae_list_node<ae_individual*>*  indiv_node  = _indivs->get_first();
-  ae_individual * indiv       = NULL;
-
-  while ( indiv_node != NULL )
-  {
-    indiv = indiv_node->get_obj();
-    indiv->evaluate( envir );
-    indiv->compute_statistical_data();
-
-    indiv_node = indiv_node->get_next();
-  }
-}
 } // namespace aevol
-
 #endif // __AE_POPULATION_H__
-- 
GitLab