double_l_bound;//!< lower bound for absolute value of the features
double_u_bound;//!< upper bound for absolute value of the features
int_max_phi;//!< Maximum rung for the feature creation
int_n_sis_select;//!< Number of features to select for each dimensions
int_n_samp;//!< Number of samples
int_n_samp;//!< Number of samples (training data)
int_n_feat;//!< Total number of features
int_n_rung_store;//!< Total rungs stored
int_n_rung_generate;//!< Total number of rungs to generate on the fly
int_max_temp_store;
public:
/**
* @brief Constructor for the feature space
* @details constructs the feature space from an initial set of features and a list of allowed operatiors
* @details constructs the feature space from an initial set of features and a list of allowed operators
*
* @param mpi_comm MPI communicator for the calculations
* @param phi_0 The initial set of features to combine
* @param allowed_ops list of allowed operators
* @param prop The property to be learned (training data)
* @param max_phi highest rung value for the calculation
* @param n_sis_select number of features to select during each SIS step
* @param max_store_rung number of rungs to calculate and store the value of the features for all samples
* @param n_rung_generate number of rungs to generate on the fly during SIS (this must be 1 or 0 right now, possible to be higher with recursive algorithm)
* @param min_abs_feat_val minimum absolute feature value
* @param max_abs_feat_val maximum absolute feature value