throwstd::logic_error("SIS went through all sent features and did not select enough ("+std::to_string(_phi_selected.size()-node_value_arrs::N_SELECTED+_n_sis_select)+" not "+std::to_string(_n_sis_select)+").");
// throw std::logic_error("SIS went through all sent features and did not select enough (" + std::to_string(_phi_selected.size() - node_value_arrs::N_SELECTED + _n_sis_select) + " not " + std::to_string(_n_sis_select) + ").");
std::vector<node_ptr>_phi_selected;//!< selected features
std::vector<node_ptr>_phi;//!< all features
std::vector<node_ptr>_phi_0;//!< initial feature space
conststd::vector<node_ptr>_phi_0;//!< initial feature space
std::vector<std::string>_allowed_ops;//!< list of all allowed operators strings
std::vector<un_op_node_gen>_un_operators;//!< list of all unary operators
...
...
@@ -49,29 +51,28 @@ class FeatureSpace
std::vector<double>_scores;//!< projection scores for each feature
std::vector<int>_task_sizes;//!< The number of elements in each task (training data)
conststd::vector<int>_task_sizes;//!< The number of elements in each task (training data)
std::vector<int>_start_gen;//!< list of the indexes where each generation starts in _phi
std::string_feature_space_file;//!< File to store information about the selected features
std::string_feature_space_summary_file;//!< File to store information about the selected features
conststd::string_feature_space_file;//!< File to store information about the selected features
conststd::string_feature_space_summary_file;//!< File to store information about the selected features
std::function<void(double*,double*,std::vector<node_ptr>&,std::vector<int>&,int)>_project;//!< Function used to calculate the scores for SIS
std::function<void(double*,double*,std::vector<node_ptr>&,std::vector<int>&,int)>_project_no_omp;//!< Function used to calculate the scores for SIS without changing omp environment
std::function<void(double*,double*,std::vector<node_ptr>&,conststd::vector<int>&,int)>_project;//!< Function used to calculate the scores for SIS
std::function<void(double*,double*,std::vector<node_ptr>&,conststd::vector<int>&,int)>_project_no_omp;//!< Function used to calculate the scores for SIS without changing omp environment
std::function<bool(double*,int,double,std::vector<double>&,double,int,int)>_is_valid;//!< Function used to calculate the scores for SIS
std::function<bool(double*,int,double,std::vector<node_ptr>&,std::vector<double>&,double)>_is_valid_feat_list;//!< Function used to calculate the scores for SIS without changing omp environment
std::function<bool(double*,int,double,node_sc_pair*,node_sc_pair*,double)>_is_valid;//!< Function used to calculate the scores for SIS without changing omp environment
double_cross_cor_max;//!< The maximum cross correlation between features
// extern MPI_Op top_feats;
externstd::function<bool(double*,int,double,std::vector<node_sc_pair>&,double)>IS_VALID;//!< Function used to calculate the scores for SIS without changing omp environment
externdoubleCROSS_COR_MAX;//!< The maximum cross correlation between features
externintN_SIS_SELECT;//!< The number of features to select