diff --git a/src/feature_creation/feature_space/FeatureSpace.cpp b/src/feature_creation/feature_space/FeatureSpace.cpp index 86b41bbd3d988a5129e6166e42aa3054a7577770..57a66471c1550bb16b89a6b4544bff6144bf74df 100644 --- a/src/feature_creation/feature_space/FeatureSpace.cpp +++ b/src/feature_creation/feature_space/FeatureSpace.cpp @@ -472,14 +472,14 @@ void FeatureSpace::project_generated(double* prop, int size, std::vector<node_pt if(scores_sel_private.size() == _n_sis_select) { generated_phi[inds[ii]]->reindex(node_value_arrs::N_STORE_FEATURES + worst_score_ind + _n_sis_select * (omp_get_thread_num() + _mpi_comm->size())); - generated_phi[inds[ii]]->set_value(); + // generated_phi[inds[ii]]->set_value(); phi_sel_private[worst_score_ind] = generated_phi[inds[ii]]; scores_sel_private[worst_score_ind] = cur_score; } else { generated_phi[inds[ii]]->reindex(node_value_arrs::N_STORE_FEATURES + scores_sel_private.size() + _n_sis_select * (omp_get_thread_num() + _mpi_comm->size())); - generated_phi[inds[ii]]->set_value(); + // generated_phi[inds[ii]]->set_value(); phi_sel_private.push_back(generated_phi[inds[ii]]); scores_sel_private.push_back(cur_score); } diff --git a/src/feature_creation/node/FeatureNode.hpp b/src/feature_creation/node/FeatureNode.hpp index e672e211697f6120963f44f7fec534de54e935a3..fed7e9f7c82643ed272809f824a9bf43c3e475cc 100644 --- a/src/feature_creation/node/FeatureNode.hpp +++ b/src/feature_creation/node/FeatureNode.hpp @@ -167,7 +167,7 @@ public: * * @param offset(int) Key to determine which part of the temporary storage array to look into */ - inline void set_value(int offset = -1){std::copy_n(_value.data(), _n_samp, value_ptr());} + inline void set_value(int offset=0){std::copy_n(_value.data(), _n_samp, value_ptr());} // DocString: feat_node_set_test_value /** @@ -175,7 +175,7 @@ public: * * @param offset(int) Key to determine which part of the temporary storage array to look into */ - inline void set_test_value(int offset = -1){if(!_selected) std::copy_n(_test_value.data(), _n_test_samp, test_value_ptr());} + inline void set_test_value(int offset=0){if(!_selected) std::copy_n(_test_value.data(), _n_test_samp, test_value_ptr());} // DocString: feat_node_is_nan /** @@ -199,14 +199,14 @@ public: * * @param offset(int) Key to determine which part of the temporary storage array to look into */ - inline double* value_ptr(int offset = 0){return _selected ? node_value_arrs::get_d_matrix_ptr(_d_mat_ind) : node_value_arrs::get_value_ptr(_arr_ind, _feat_ind, offset);} + inline double* value_ptr(int offset=0){return _selected ? node_value_arrs::get_d_matrix_ptr(_d_mat_ind) : node_value_arrs::get_value_ptr(_arr_ind, _feat_ind, 0, offset);} /** * @brief The pointer to where the feature's test data is stored * * @param offset(int) Key to determine which part of the temporary storage array to look into */ - inline double* test_value_ptr(int offset = 0){return node_value_arrs::get_test_value_ptr(_arr_ind, _feat_ind, offset);} + inline double* test_value_ptr(int offset=0){return node_value_arrs::get_test_value_ptr(_arr_ind, _feat_ind, 0, offset);} // DocString: feat_node_rung diff --git a/src/feature_creation/node/ModelNode.hpp b/src/feature_creation/node/ModelNode.hpp index 28cd02d37c0c1bbf4b801e0268332aafbe21c6bd..4c65f29fb2ec119044d084628c99d0893eae727d 100644 --- a/src/feature_creation/node/ModelNode.hpp +++ b/src/feature_creation/node/ModelNode.hpp @@ -116,7 +116,7 @@ public: * * @param offset(int) Key to determine which part of the temporary storage array to look into */ - inline void set_value(int offset = -1){return;} + inline void set_value(int offset=0){return;} // DocString: model_node_set_test_value /** @@ -124,7 +124,7 @@ public: * * @param offset(int) Key to determine which part of the temporary storage array to look into */ - inline void set_test_value(int offset = -1){return;} + inline void set_test_value(int offset=0){return;} // DocString: model_node_is_nan /** @@ -148,14 +148,14 @@ public: * * @param offset(int) Key to determine which part of the temporary storage array to look into */ - inline double* value_ptr(int offset = -1){return _value.data();} + inline double* value_ptr(int offset=0){return _value.data();} /** * @brief The pointer to where the feature's test data is stored * * @param offset(int) Key to determine which part of the temporary storage array to look into */ - inline double* test_value_ptr(int offset = -1){return _test_value.data();} + inline double* test_value_ptr(int offset=0){return _test_value.data();} // DocString: model_node_rung /** diff --git a/src/feature_creation/node/Node.hpp b/src/feature_creation/node/Node.hpp index 084d59a2252d17f19fc4d779b0da710a005c29ce..49f746883fd9be7c7c44d86a7c10a00718ac7532 100644 --- a/src/feature_creation/node/Node.hpp +++ b/src/feature_creation/node/Node.hpp @@ -225,14 +225,14 @@ public: * * @param offset(int) Key to determine which part of the temporary storage array to look into */ - virtual void set_value(int offset = -1) = 0; + virtual void set_value(int offset=0) = 0; /** * @brief The pointer to where the feature's training data is stored * * @param offset(int) Key to determine which part of the temporary storage array to look into */ - virtual double* value_ptr(int offset = -1) = 0; + virtual double* value_ptr(int offset=0) = 0; // DocString: node_set_test_value /** @@ -240,14 +240,14 @@ public: * * @param offset(int) Key to determine which part of the temporary storage array to look into */ - virtual void set_test_value(int offset = -1) = 0; + virtual void set_test_value(int offset=0) = 0; /** * @brief The pointer to where the feature's test data is stored * * @param offset(int) Key to determine which part of the temporary storage array to look into */ - virtual double* test_value_ptr(int offset = -1) = 0; + virtual double* test_value_ptr(int offset=0) = 0; // DocString: node_is_nan /** diff --git a/src/feature_creation/node/operator_nodes/OperatorNode.hpp b/src/feature_creation/node/operator_nodes/OperatorNode.hpp index 579717f4222b86d6eada3c1aaf43443d11c6e133..a3c80b1bee7272b906f2ce297b481167dab70e28 100644 --- a/src/feature_creation/node/operator_nodes/OperatorNode.hpp +++ b/src/feature_creation/node/operator_nodes/OperatorNode.hpp @@ -143,7 +143,7 @@ public: * * @param offset(int) Key to determine which part of the temporary storage array to look into */ - virtual void set_value(int offset = -1) = 0; + virtual void set_value(int offset=0) = 0; // DocString: op_node_set_test_value /** @@ -151,7 +151,7 @@ public: * * @param offset(int) Key to determine which part of the temporary storage array to look into */ - virtual void set_test_value(int offset = -1) = 0; + virtual void set_test_value(int offset=0) = 0; /** * @brief Get the pointer to the feature's training data @@ -161,18 +161,17 @@ public: * * @return pointer to the feature's training value */ - double* value_ptr(int offset=-1) + double* value_ptr(int offset=0) { if(_selected) return node_value_arrs::get_d_matrix_ptr(_d_mat_ind); - offset = (offset == -1) ? rung() : offset; - if((rung() > node_value_arrs::N_RUNGS_STORED) && (node_value_arrs::temp_storage_reg(_arr_ind, offset) != _feat_ind)) + if((rung() > node_value_arrs::N_RUNGS_STORED) && (node_value_arrs::temp_storage_reg(_arr_ind, rung(), offset) != _feat_ind)) { set_value(offset); } - return node_value_arrs::get_value_ptr(_arr_ind, _feat_ind, offset); + return node_value_arrs::get_value_ptr(_arr_ind, _feat_ind, rung(), offset); } /** @@ -183,15 +182,14 @@ public: * * @return pointer to the feature's test values */ - double* test_value_ptr(int offset=-1) + double* test_value_ptr(int offset=0) { - offset = (offset == -1) ? rung() : offset; - if((rung() > node_value_arrs::N_RUNGS_STORED) && (node_value_arrs::temp_storage_test_reg(_arr_ind, offset) != _feat_ind)) + if((rung() > node_value_arrs::N_RUNGS_STORED) && (node_value_arrs::temp_storage_test_reg(_arr_ind, rung(), offset) != _feat_ind)) { set_test_value(offset); } - return node_value_arrs::get_test_value_ptr(_arr_ind, _feat_ind, offset); + return node_value_arrs::get_test_value_ptr(_arr_ind, _feat_ind, rung(), offset); } // DocString: op_node_is_nan diff --git a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/abs/absolute_value.cpp b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/abs/absolute_value.cpp index dc5f96b010c480acb4f2d6ce2ae07ebc1a1158a3..8807bb2b38567050846e00dc29208fa0ced00104 100644 --- a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/abs/absolute_value.cpp +++ b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/abs/absolute_value.cpp @@ -66,14 +66,12 @@ void AbsNode::update_div_mult_leaves(std::map<std::string, double>& div_mult_lea void AbsNode::set_value(int offset) { if(_selected) - allowed_op_funcs::abs(_n_samp, _feats[0]->value_ptr(offset + 2), node_value_arrs::get_d_matrix_ptr(_d_mat_ind)); + allowed_op_funcs::abs(_n_samp, _feats[0]->value_ptr(2 * offset), node_value_arrs::get_d_matrix_ptr(_d_mat_ind)); - offset = (offset == -1) ? rung() : offset; - allowed_op_funcs::abs(_n_samp, _feats[0]->value_ptr(offset + 2), node_value_arrs::get_value_ptr(_arr_ind, _feat_ind, offset)); + allowed_op_funcs::abs(_n_samp, _feats[0]->value_ptr(2 * offset), node_value_arrs::get_value_ptr(_arr_ind, _feat_ind, rung(), offset)); } void AbsNode::set_test_value(int offset) { - offset = (offset == -1) ? rung() : offset; - allowed_op_funcs::abs(_n_test_samp, _feats[0]->test_value_ptr(offset + 2), node_value_arrs::get_test_value_ptr(_arr_ind, _feat_ind, offset)); + allowed_op_funcs::abs(_n_test_samp, _feats[0]->test_value_ptr(2 * offset), node_value_arrs::get_test_value_ptr(_arr_ind, _feat_ind, rung(), offset)); } diff --git a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/abs/absolute_value.hpp b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/abs/absolute_value.hpp index 82de5a0fd1c76bcc77aab5215f973b949f74d29b..25f3cd9dcc9e3df0265a0ddfae3917fdaeb4462a 100644 --- a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/abs/absolute_value.hpp +++ b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/abs/absolute_value.hpp @@ -86,7 +86,7 @@ public: * * @param offset(int) Key to determine which part of the temporary storage array to look into */ - void set_value(int offset = -1); + void set_value(int offset=0); // DocString: abs_node_set_test_value /** @@ -94,7 +94,7 @@ public: * * @param offset(int) Key to determine which part of the temporary storage array to look into */ - void set_test_value(int offset = -1); + void set_test_value(int offset=0); // DocString: abs_node_rung /** diff --git a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/abs_diff/absolute_difference.cpp b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/abs_diff/absolute_difference.cpp index 91f8054fbeae5291534c2ad4c6df93611497a53c..7ec232c96023c58e0d990f2d3e67822d955be527 100644 --- a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/abs_diff/absolute_difference.cpp +++ b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/abs_diff/absolute_difference.cpp @@ -87,14 +87,12 @@ void AbsDiffNode::update_div_mult_leaves(std::map<std::string, double>& div_mult void AbsDiffNode::set_value(int offset) { if(_selected) - allowed_op_funcs::abs_diff(_n_samp, _feats[0]->value_ptr(offset + 2), _feats[1]->value_ptr(offset + 1), node_value_arrs::get_d_matrix_ptr(_d_mat_ind)); + allowed_op_funcs::abs_diff(_n_samp, _feats[0]->value_ptr(2 * offset), _feats[1]->value_ptr(2 * offset + 1), node_value_arrs::get_d_matrix_ptr(_d_mat_ind)); - offset = (offset == -1) ? rung() : offset; - allowed_op_funcs::abs_diff(_n_samp, _feats[0]->value_ptr(offset + 2), _feats[1]->value_ptr(offset + 1), node_value_arrs::get_value_ptr(_arr_ind, _feat_ind, offset)); + allowed_op_funcs::abs_diff(_n_samp, _feats[0]->value_ptr(2 * offset), _feats[1]->value_ptr(2 * offset + 1), node_value_arrs::get_value_ptr(_arr_ind, _feat_ind, rung(), offset)); } void AbsDiffNode::set_test_value(int offset) { - offset = (offset == -1) ? rung() : offset; - allowed_op_funcs::abs_diff(_n_test_samp, _feats[0]->test_value_ptr(offset + 2), _feats[1]->test_value_ptr(offset + 1), node_value_arrs::get_test_value_ptr(_arr_ind, _feat_ind, offset)); + allowed_op_funcs::abs_diff(_n_test_samp, _feats[0]->test_value_ptr(2 * offset), _feats[1]->test_value_ptr(2 * offset + 1), node_value_arrs::get_test_value_ptr(_arr_ind, _feat_ind, rung(), offset)); } diff --git a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/abs_diff/absolute_difference.hpp b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/abs_diff/absolute_difference.hpp index 68a2ebc967d0e2d0aee26307faec89431f213b9b..330c7512b5896961e72797919bdfe942b2dd24f7 100644 --- a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/abs_diff/absolute_difference.hpp +++ b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/abs_diff/absolute_difference.hpp @@ -89,7 +89,7 @@ public: * * @param offset(int) Key to determine which part of the temporary storage array to look into */ - void set_value(int offset = -1); + void set_value(int offset=0); // DocString: abs_diff_node_set_test_value /** @@ -97,7 +97,7 @@ public: * * @param offset(int) Key to determine which part of the temporary storage array to look into */ - void set_test_value(int offset = -1); + void set_test_value(int offset=0); // DocString: abs_diff_node_rung /** diff --git a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/add/add.cpp b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/add/add.cpp index e885764f5b90c3ce853145209d4e50535362bc28..dca9855669821a182a820c4969d717d043232db2 100644 --- a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/add/add.cpp +++ b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/add/add.cpp @@ -80,14 +80,12 @@ void AddNode::update_div_mult_leaves(std::map<std::string, double>& div_mult_lea void AddNode::set_value(int offset) { if(_selected) - allowed_op_funcs::add(_n_samp, _feats[0]->value_ptr(offset + 2), _feats[1]->value_ptr(offset + 1), node_value_arrs::get_d_matrix_ptr(_d_mat_ind)); + allowed_op_funcs::add(_n_samp, _feats[0]->value_ptr(2 * offset), _feats[1]->value_ptr(2 * offset + 1), node_value_arrs::get_d_matrix_ptr(_d_mat_ind)); - offset = (offset == -1) ? rung() : offset; - allowed_op_funcs::add(_n_samp, _feats[0]->value_ptr(offset + 2), _feats[1]->value_ptr(offset + 1), node_value_arrs::get_value_ptr(_arr_ind, _feat_ind, offset)); + allowed_op_funcs::add(_n_samp, _feats[0]->value_ptr(2 * offset), _feats[1]->value_ptr(2 * offset + 1), node_value_arrs::get_value_ptr(_arr_ind, _feat_ind, rung(), offset)); } void AddNode::set_test_value(int offset) { - offset = (offset == -1) ? rung() : offset; - allowed_op_funcs::add(_n_test_samp, _feats[0]->test_value_ptr(offset + 2), _feats[1]->test_value_ptr(offset + 1), node_value_arrs::get_test_value_ptr(_arr_ind, _feat_ind, offset)); + allowed_op_funcs::add(_n_test_samp, _feats[0]->test_value_ptr(2 * offset), _feats[1]->test_value_ptr(2 * offset + 1), node_value_arrs::get_test_value_ptr(_arr_ind, _feat_ind, rung(), offset)); } diff --git a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/add/add.hpp b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/add/add.hpp index c9e1842fadc99d16c8b4411b1a4d7711706fa038..3b3ca2faa5d8d4ab68bbc7aff020c663dbea9278 100644 --- a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/add/add.hpp +++ b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/add/add.hpp @@ -86,7 +86,7 @@ public: * * @param offset(int) Key to determine which part of the temporary storage array to look into */ - void set_value(int offset = -1); + void set_value(int offset=0); // DocString: add_node_set_test_value /** @@ -94,7 +94,7 @@ public: * * @param offset(int) Key to determine which part of the temporary storage array to look into */ - void set_test_value(int offset = -1); + void set_test_value(int offset=0); // DocString: add_node_rung /** diff --git a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/cb/cube.cpp b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/cb/cube.cpp index 2db055bc28236bbbeb1a2b4b2cdb181ac5103e29..1a849f02fdf0341082cbea93c36c4febcecb491e 100644 --- a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/cb/cube.cpp +++ b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/cb/cube.cpp @@ -56,13 +56,11 @@ void CbNode::update_div_mult_leaves(std::map<std::string, double>& div_mult_leav void CbNode::set_value(int offset) { if(_selected) - allowed_op_funcs::cb(_n_samp, _feats[0]->value_ptr(offset + 2), node_value_arrs::get_d_matrix_ptr(_d_mat_ind)); + allowed_op_funcs::cb(_n_samp, _feats[0]->value_ptr(2 * offset), node_value_arrs::get_d_matrix_ptr(_d_mat_ind)); - offset = (offset == -1) ? rung() : offset; - allowed_op_funcs::cb(_n_samp, _feats[0]->value_ptr(offset + 2), node_value_arrs::get_value_ptr(_arr_ind, _feat_ind, offset)); + allowed_op_funcs::cb(_n_samp, _feats[0]->value_ptr(2 * offset), node_value_arrs::get_value_ptr(_arr_ind, _feat_ind, rung(), offset)); } void CbNode::set_test_value(int offset) { - offset = (offset == -1) ? rung() : offset; - allowed_op_funcs::cb(_n_test_samp, _feats[0]->test_value_ptr(offset + 2), node_value_arrs::get_test_value_ptr(_arr_ind, _feat_ind, offset)); + allowed_op_funcs::cb(_n_test_samp, _feats[0]->test_value_ptr(2 * offset), node_value_arrs::get_test_value_ptr(_arr_ind, _feat_ind, rung(), offset)); } diff --git a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/cb/cube.hpp b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/cb/cube.hpp index e6ac61dd57712ab7fe3b94c1aaa9ac9fe78139ae..ecb49fa79cea512a1c251f617665075ffc989f35 100644 --- a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/cb/cube.hpp +++ b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/cb/cube.hpp @@ -84,7 +84,7 @@ public: * * @param offset(int) Key to determine which part of the temporary storage array to look into */ - void set_value(int offset = -1); + void set_value(int offset=0); // DocString: cb_node_set_test_value /** @@ -92,7 +92,7 @@ public: * * @param offset(int) Key to determine which part of the temporary storage array to look into */ - void set_test_value(int offset = -1); + void set_test_value(int offset=0); // DocString: cb_node_rung /** diff --git a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/cbrt/cube_root.cpp b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/cbrt/cube_root.cpp index bb999ff82d07534d4a47de31c0a910f4b3e3ddd5..49a05fe909dd83c090a21ff93b4df3427dd9f922 100644 --- a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/cbrt/cube_root.cpp +++ b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/cbrt/cube_root.cpp @@ -55,14 +55,12 @@ void CbrtNode::update_div_mult_leaves(std::map<std::string, double>& div_mult_le void CbrtNode::set_value(int offset) { if(_selected) - allowed_op_funcs::cbrt(_n_samp, _feats[0]->value_ptr(offset + 2), node_value_arrs::get_d_matrix_ptr(_d_mat_ind)); + allowed_op_funcs::cbrt(_n_samp, _feats[0]->value_ptr(2 * offset), node_value_arrs::get_d_matrix_ptr(_d_mat_ind)); - offset = (offset == -1) ? rung() : offset; - allowed_op_funcs::cbrt(_n_samp, _feats[0]->value_ptr(offset + 2), node_value_arrs::get_value_ptr(_arr_ind, _feat_ind, offset)); + allowed_op_funcs::cbrt(_n_samp, _feats[0]->value_ptr(2 * offset), node_value_arrs::get_value_ptr(_arr_ind, _feat_ind, rung(), offset)); } void CbrtNode::set_test_value(int offset) { - offset = (offset == -1) ? rung() : offset; - allowed_op_funcs::cbrt(_n_test_samp, _feats[0]->test_value_ptr(offset + 2), node_value_arrs::get_test_value_ptr(_arr_ind, _feat_ind, offset)); + allowed_op_funcs::cbrt(_n_test_samp, _feats[0]->test_value_ptr(2 * offset), node_value_arrs::get_test_value_ptr(_arr_ind, _feat_ind, rung(), offset)); } diff --git a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/cbrt/cube_root.hpp b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/cbrt/cube_root.hpp index 0803b7cd2a41a90d8cbd21bd2b5773372ea1bbf3..e0284b3ca8bd5848f832e705137c1e5e4806d7d1 100644 --- a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/cbrt/cube_root.hpp +++ b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/cbrt/cube_root.hpp @@ -84,7 +84,7 @@ public: * * @param offset(int) Key to determine which part of the temporary storage array to look into */ - void set_value(int offset = -1); + void set_value(int offset=0); // DocString: cbrt_node_set_test_value /** @@ -92,7 +92,7 @@ public: * * @param offset(int) Key to determine which part of the temporary storage array to look into */ - void set_test_value(int offset = -1); + void set_test_value(int offset=0); // DocString: cbrt_node_rung /** diff --git a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/cos/cos.cpp b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/cos/cos.cpp index 3ea3cf7ae0b3688ee223f455069dda6b680295ec..0cac2682551421e819dfebfa7064877b5458650c 100644 --- a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/cos/cos.cpp +++ b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/cos/cos.cpp @@ -61,14 +61,12 @@ void CosNode::update_div_mult_leaves(std::map<std::string, double>& div_mult_lea void CosNode::set_value(int offset) { if(_selected) - allowed_op_funcs::cos(_n_samp, _feats[0]->value_ptr(offset + 2), node_value_arrs::get_d_matrix_ptr(_d_mat_ind)); + allowed_op_funcs::cos(_n_samp, _feats[0]->value_ptr(2 * offset), node_value_arrs::get_d_matrix_ptr(_d_mat_ind)); - offset = (offset == -1) ? rung() : offset; - allowed_op_funcs::cos(_n_samp, _feats[0]->value_ptr(offset + 2), node_value_arrs::get_value_ptr(_arr_ind, _feat_ind, offset)); + allowed_op_funcs::cos(_n_samp, _feats[0]->value_ptr(2 * offset), node_value_arrs::get_value_ptr(_arr_ind, _feat_ind, rung(), offset)); } void CosNode::set_test_value(int offset) { - offset = (offset == -1) ? rung() : offset; - allowed_op_funcs::cos(_n_test_samp, _feats[0]->test_value_ptr(offset + 2), node_value_arrs::get_test_value_ptr(_arr_ind, _feat_ind, offset)); + allowed_op_funcs::cos(_n_test_samp, _feats[0]->test_value_ptr(2 * offset), node_value_arrs::get_test_value_ptr(_arr_ind, _feat_ind, rung(), offset)); } diff --git a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/cos/cos.hpp b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/cos/cos.hpp index 20cdf7fdbf08ab095baf43a3abe9527e4de5c656..523cb11b04e15f761ac9236eb002168266cb7130 100644 --- a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/cos/cos.hpp +++ b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/cos/cos.hpp @@ -84,7 +84,7 @@ public: * * @param offset(int) Key to determine which part of the temporary storage array to look into */ - void set_value(int offset = -1); + void set_value(int offset=0); // DocString: cos_node_set_test_value /** @@ -92,7 +92,7 @@ public: * * @param offset(int) Key to determine which part of the temporary storage array to look into */ - void set_test_value(int offset = -1); + void set_test_value(int offset=0); // DocString: cos_node_rung /** diff --git a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/div/divide.cpp b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/div/divide.cpp index 6ca45a438207aca79313f4352339778d241ff69b..f4a0e005ec6643c17be8fb2838dadbb88b52d2d7 100644 --- a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/div/divide.cpp +++ b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/div/divide.cpp @@ -81,14 +81,12 @@ void DivNode::update_div_mult_leaves(std::map<std::string, double>& div_mult_lea void DivNode::set_value(int offset) { if(_selected) - allowed_op_funcs::div(_n_samp, _feats[0]->value_ptr(offset + 2), _feats[1]->value_ptr(offset + 1), node_value_arrs::get_d_matrix_ptr(_d_mat_ind)); + allowed_op_funcs::div(_n_samp, _feats[0]->value_ptr(2 * offset), _feats[1]->value_ptr(2 * offset + 1), node_value_arrs::get_d_matrix_ptr(_d_mat_ind)); - offset = (offset == -1) ? rung() : offset; - allowed_op_funcs::div(_n_samp, _feats[0]->value_ptr(offset + 2), _feats[1]->value_ptr(offset + 1), node_value_arrs::get_value_ptr(_arr_ind, _feat_ind, offset)); + allowed_op_funcs::div(_n_samp, _feats[0]->value_ptr(2 * offset), _feats[1]->value_ptr(2 * offset + 1), node_value_arrs::get_value_ptr(_arr_ind, _feat_ind, rung(), offset)); } void DivNode::set_test_value(int offset) { - offset = (offset == -1) ? rung() : offset; - allowed_op_funcs::div(_n_test_samp, _feats[0]->test_value_ptr(offset + 2), _feats[1]->test_value_ptr(offset + 1), node_value_arrs::get_test_value_ptr(_arr_ind, _feat_ind, offset)); + allowed_op_funcs::div(_n_test_samp, _feats[0]->test_value_ptr(2 * offset), _feats[1]->test_value_ptr(2 * offset + 1), node_value_arrs::get_test_value_ptr(_arr_ind, _feat_ind, rung(), offset)); } diff --git a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/div/divide.hpp b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/div/divide.hpp index 52b9c79afc2422d86f6ff4c83bbd16637c7381bb..e5ef547b66ba04ab11a0de516b8136684ac363b6 100644 --- a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/div/divide.hpp +++ b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/div/divide.hpp @@ -86,7 +86,7 @@ public: * * @param offset(int) Key to determine which part of the temporary storage array to look into */ - void set_value(int offset = -1); + void set_value(int offset=0); // DocString: div_node_set_test_value /** @@ -94,7 +94,7 @@ public: * * @param offset(int) Key to determine which part of the temporary storage array to look into */ - void set_test_value(int offset = -1); + void set_test_value(int offset=0); // DocString: div_node_rung /** diff --git a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/exp/exponential.cpp b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/exp/exponential.cpp index 6c1c01ea6b9c4721f6707bf2e547a3dde99b6c18..d844a60fe62adeafcce09794af9ccee5ce719649 100644 --- a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/exp/exponential.cpp +++ b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/exp/exponential.cpp @@ -63,14 +63,12 @@ void ExpNode::update_div_mult_leaves(std::map<std::string, double>& div_mult_lea void ExpNode::set_value(int offset) { if(_selected) - allowed_op_funcs::exp(_n_samp, _feats[0]->value_ptr(offset + 2), node_value_arrs::get_d_matrix_ptr(_d_mat_ind)); + allowed_op_funcs::exp(_n_samp, _feats[0]->value_ptr(2 * offset), node_value_arrs::get_d_matrix_ptr(_d_mat_ind)); - offset = (offset == -1) ? rung() : offset; - allowed_op_funcs::exp(_n_samp, _feats[0]->value_ptr(offset + 2), node_value_arrs::get_value_ptr(_arr_ind, _feat_ind, offset)); + allowed_op_funcs::exp(_n_samp, _feats[0]->value_ptr(2 * offset), node_value_arrs::get_value_ptr(_arr_ind, _feat_ind, rung(), offset)); } void ExpNode::set_test_value(int offset) { - offset = (offset == -1) ? rung() : offset; - allowed_op_funcs::exp(_n_test_samp, _feats[0]->test_value_ptr(offset + 2), node_value_arrs::get_test_value_ptr(_arr_ind, _feat_ind, offset)); + allowed_op_funcs::exp(_n_test_samp, _feats[0]->test_value_ptr(2 * offset), node_value_arrs::get_test_value_ptr(_arr_ind, _feat_ind, rung(), offset)); } diff --git a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/exp/exponential.hpp b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/exp/exponential.hpp index f87c9ce917a460fb948c4d403e1d31f4a1797f83..2d17a56735a21073ee735ff624796ab6ca01d37a 100644 --- a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/exp/exponential.hpp +++ b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/exp/exponential.hpp @@ -84,7 +84,7 @@ public: * * @param offset(int) Key to determine which part of the temporary storage array to look into */ - void set_value(int offset = -1); + void set_value(int offset=0); // DocString: exp_node_set_test_value /** @@ -92,7 +92,7 @@ public: * * @param offset(int) Key to determine which part of the temporary storage array to look into */ - void set_test_value(int offset = -1); + void set_test_value(int offset=0); // DocString: exp_node_rung /** diff --git a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/inv/inverse.cpp b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/inv/inverse.cpp index 1177493ec98ffdd6015c644719e7deef8935cd5b..aed5c35ec428269dc275f57e97147351a8472b4a 100644 --- a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/inv/inverse.cpp +++ b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/inv/inverse.cpp @@ -56,14 +56,12 @@ void InvNode::update_div_mult_leaves(std::map<std::string, double>& div_mult_lea void InvNode::set_value(int offset) { if(_selected) - allowed_op_funcs::inv(_n_samp, _feats[0]->value_ptr(offset + 2), node_value_arrs::get_d_matrix_ptr(_d_mat_ind)); + allowed_op_funcs::inv(_n_samp, _feats[0]->value_ptr(2 * offset), node_value_arrs::get_d_matrix_ptr(_d_mat_ind)); - offset = (offset == -1) ? rung() : offset; - allowed_op_funcs::inv(_n_samp, _feats[0]->value_ptr(offset + 2), node_value_arrs::get_value_ptr(_arr_ind, _feat_ind, offset)); + allowed_op_funcs::inv(_n_samp, _feats[0]->value_ptr(2 * offset), node_value_arrs::get_value_ptr(_arr_ind, _feat_ind, rung(), offset)); } void InvNode::set_test_value(int offset) { - offset = (offset == -1) ? rung() : offset; - allowed_op_funcs::inv(_n_test_samp, _feats[0]->test_value_ptr(offset + 2), node_value_arrs::get_test_value_ptr(_arr_ind, _feat_ind, offset)); + allowed_op_funcs::inv(_n_test_samp, _feats[0]->test_value_ptr(2 * offset), node_value_arrs::get_test_value_ptr(_arr_ind, _feat_ind, rung(), offset)); } diff --git a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/inv/inverse.hpp b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/inv/inverse.hpp index c6a7f3705a5ff1dce72eb431c1104eb356517a58..05c455e4b2ee0d668b4db1510546e11830ee81ac 100644 --- a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/inv/inverse.hpp +++ b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/inv/inverse.hpp @@ -72,7 +72,7 @@ public: * * @param offset(int) Key to determine which part of the temporary storage array to look into */ - void set_value(int offset = -1); + void set_value(int offset=0); // DocString: inv_node_set_test_value /** @@ -80,7 +80,7 @@ public: * * @param offset(int) Key to determine which part of the temporary storage array to look into */ - void set_test_value(int offset = -1); + void set_test_value(int offset=0); // DocString: inv_node_rung /** diff --git a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/log/log.cpp b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/log/log.cpp index 997a7d85bd5293ac1caae794d6fff831bbecf763..0343bbd2243e3da70051aee4cf7eae73c839c743 100644 --- a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/log/log.cpp +++ b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/log/log.cpp @@ -64,14 +64,12 @@ void LogNode::update_div_mult_leaves(std::map<std::string, double>& div_mult_lea void LogNode::set_value(int offset) { if(_selected) - allowed_op_funcs::log(_n_samp, _feats[0]->value_ptr(offset + 2), node_value_arrs::get_d_matrix_ptr(_d_mat_ind)); + allowed_op_funcs::log(_n_samp, _feats[0]->value_ptr(2 * offset), node_value_arrs::get_d_matrix_ptr(_d_mat_ind)); - offset = (offset == -1) ? rung() : offset; - allowed_op_funcs::log(_n_samp, _feats[0]->value_ptr(offset + 2), node_value_arrs::get_value_ptr(_arr_ind, _feat_ind, offset)); + allowed_op_funcs::log(_n_samp, _feats[0]->value_ptr(2 * offset), node_value_arrs::get_value_ptr(_arr_ind, _feat_ind, rung(), offset)); } void LogNode::set_test_value(int offset) { - offset = (offset == -1) ? rung() : offset; - allowed_op_funcs::log(_n_test_samp, _feats[0]->test_value_ptr(offset + 2), node_value_arrs::get_test_value_ptr(_arr_ind, _feat_ind, offset)); + allowed_op_funcs::log(_n_test_samp, _feats[0]->test_value_ptr(2 * offset), node_value_arrs::get_test_value_ptr(_arr_ind, _feat_ind, rung(), offset)); } diff --git a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/log/log.hpp b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/log/log.hpp index 92b61d4e92d7db7d6dbec9b001ad255857d79e0a..d21bc141d00704ec769197789bca87b049d3b37e 100644 --- a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/log/log.hpp +++ b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/log/log.hpp @@ -84,7 +84,7 @@ public: * * @param offset(int) Key to determine which part of the temporary storage array to look into */ - void set_value(int offset = -1); + void set_value(int offset=0); // DocString: log_node_set_test_value /** @@ -92,7 +92,7 @@ public: * * @param offset(int) Key to determine which part of the temporary storage array to look into */ - void set_test_value(int offset = -1); + void set_test_value(int offset=0); // DocString: log_node_rung /** diff --git a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/mult/multiply.cpp b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/mult/multiply.cpp index 3e78a6fc1028d978bd9af939d9d25fc47276333f..2641379ba3fc7231cdfb63f2ae90d1def6dfc8a0 100644 --- a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/mult/multiply.cpp +++ b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/mult/multiply.cpp @@ -81,14 +81,12 @@ void MultNode::update_div_mult_leaves(std::map<std::string, double>& div_mult_le void MultNode::set_value(int offset) { if(_selected) - allowed_op_funcs::mult(_n_samp, _feats[0]->value_ptr(offset + 2), _feats[1]->value_ptr(offset + 1), node_value_arrs::get_d_matrix_ptr(_d_mat_ind)); + allowed_op_funcs::mult(_n_samp, _feats[0]->value_ptr(2 * offset), _feats[1]->value_ptr(2 * offset + 1), node_value_arrs::get_d_matrix_ptr(_d_mat_ind)); - offset = (offset == -1) ? rung() : offset; - allowed_op_funcs::mult(_n_samp, _feats[0]->value_ptr(offset + 2), _feats[1]->value_ptr(offset + 1), node_value_arrs::get_value_ptr(_arr_ind, _feat_ind, offset)); + allowed_op_funcs::mult(_n_samp, _feats[0]->value_ptr(2 * offset), _feats[1]->value_ptr(2 * offset + 1), node_value_arrs::get_value_ptr(_arr_ind, _feat_ind, rung(), offset)); } void MultNode::set_test_value(int offset) { - offset = (offset == -1) ? rung() : offset; - allowed_op_funcs::mult(_n_test_samp, _feats[0]->test_value_ptr(offset + 2), _feats[1]->test_value_ptr(offset + 1), node_value_arrs::get_test_value_ptr(_arr_ind, _feat_ind, offset)); + allowed_op_funcs::mult(_n_test_samp, _feats[0]->test_value_ptr(2 * offset), _feats[1]->test_value_ptr(2 * offset + 1), node_value_arrs::get_test_value_ptr(_arr_ind, _feat_ind, rung(), offset)); } diff --git a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/mult/multiply.hpp b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/mult/multiply.hpp index 42c06473e4070b675bf93d320430a9dfebb63dd9..b6c73ff72365365bf407d4c92eac457961f928c6 100644 --- a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/mult/multiply.hpp +++ b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/mult/multiply.hpp @@ -87,7 +87,7 @@ public: * * @param offset(int) Key to determine which part of the temporary storage array to look into */ - void set_value(int offset = -1); + void set_value(int offset=0); // DocString: mult_node_set_test_value /** @@ -95,7 +95,7 @@ public: * * @param offset(int) Key to determine which part of the temporary storage array to look into */ - void set_test_value(int offset = -1); + void set_test_value(int offset=0); // DocString: mult_node_rung /** diff --git a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/neg_exp/negative_exponential.cpp b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/neg_exp/negative_exponential.cpp index cdaebd91d3010ee7eef4fac4add8a77baa19caa6..1ba3d169d80be38e2cbd85536d8dae33cea9bb2e 100644 --- a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/neg_exp/negative_exponential.cpp +++ b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/neg_exp/negative_exponential.cpp @@ -64,14 +64,12 @@ void NegExpNode::update_div_mult_leaves(std::map<std::string, double>& div_mult_ void NegExpNode::set_value(int offset) { if(_selected) - allowed_op_funcs::neg_exp(_n_samp, _feats[0]->value_ptr(offset + 2), node_value_arrs::get_d_matrix_ptr(_d_mat_ind)); + allowed_op_funcs::neg_exp(_n_samp, _feats[0]->value_ptr(2 * offset), node_value_arrs::get_d_matrix_ptr(_d_mat_ind)); - offset = (offset == -1) ? rung() : offset; - allowed_op_funcs::neg_exp(_n_samp, _feats[0]->value_ptr(offset + 2), node_value_arrs::get_value_ptr(_arr_ind, _feat_ind, offset)); + allowed_op_funcs::neg_exp(_n_samp, _feats[0]->value_ptr(2 * offset), node_value_arrs::get_value_ptr(_arr_ind, _feat_ind, rung(), offset)); } void NegExpNode::set_test_value(int offset) { - offset = (offset == -1) ? rung() : offset; - allowed_op_funcs::neg_exp(_n_test_samp, _feats[0]->test_value_ptr(offset + 2), node_value_arrs::get_test_value_ptr(_arr_ind, _feat_ind, offset)); + allowed_op_funcs::neg_exp(_n_test_samp, _feats[0]->test_value_ptr(2 * offset), node_value_arrs::get_test_value_ptr(_arr_ind, _feat_ind, rung(), offset)); } diff --git a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/neg_exp/negative_exponential.hpp b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/neg_exp/negative_exponential.hpp index 8175f0c80547b0098abe73005c38a60676608d27..24880adffa8ff1e0f87867df5ded08aa14fec59c 100644 --- a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/neg_exp/negative_exponential.hpp +++ b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/neg_exp/negative_exponential.hpp @@ -85,7 +85,7 @@ public: * * @param offset(int) Key to determine which part of the temporary storage array to look into */ - void set_value(int offset = -1); + void set_value(int offset=0); // DocString: neg_exp_node_set_test_value /** @@ -93,7 +93,7 @@ public: * * @param offset(int) Key to determine which part of the temporary storage array to look into */ - void set_test_value(int offset = -1); + void set_test_value(int offset=0); // DocString: neg_exp_node_rung /** diff --git a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/sin/sin.cpp b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/sin/sin.cpp index d503053f2d1808b34e4f908caba603d0bc8986bf..1214263b275ba698bd2ac572f7893fed9b76995f 100644 --- a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/sin/sin.cpp +++ b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/sin/sin.cpp @@ -61,14 +61,12 @@ void SinNode::update_div_mult_leaves(std::map<std::string, double>& div_mult_lea void SinNode::set_value(int offset) { if(_selected) - allowed_op_funcs::sin(_n_samp, _feats[0]->value_ptr(offset + 2), node_value_arrs::get_d_matrix_ptr(_d_mat_ind)); + allowed_op_funcs::sin(_n_samp, _feats[0]->value_ptr(2 * offset), node_value_arrs::get_d_matrix_ptr(_d_mat_ind)); - offset = (offset == -1) ? rung() : offset; - allowed_op_funcs::sin(_n_samp, _feats[0]->value_ptr(offset + 2), node_value_arrs::get_value_ptr(_arr_ind, _feat_ind, offset)); + allowed_op_funcs::sin(_n_samp, _feats[0]->value_ptr(2 * offset), node_value_arrs::get_value_ptr(_arr_ind, _feat_ind, rung(), offset)); } void SinNode::set_test_value(int offset) { - offset = (offset == -1) ? rung() : offset; - allowed_op_funcs::sin(_n_test_samp, _feats[0]->test_value_ptr(offset + 2), node_value_arrs::get_test_value_ptr(_arr_ind, _feat_ind, offset)); + allowed_op_funcs::sin(_n_test_samp, _feats[0]->test_value_ptr(2 * offset), node_value_arrs::get_test_value_ptr(_arr_ind, _feat_ind, rung(), offset)); } diff --git a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/sin/sin.hpp b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/sin/sin.hpp index 0d7f66a4acc3fef12ab9a7f6f186c0e5ac51e954..3ad4f3de86d584db3462b28111f97483cbd9b108 100644 --- a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/sin/sin.hpp +++ b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/sin/sin.hpp @@ -85,7 +85,7 @@ public: * * @param offset(int) Key to determine which part of the temporary storage array to look into */ - void set_value(int offset = -1); + void set_value(int offset=0); // DocString: sin_node_set_test_value /** @@ -93,7 +93,7 @@ public: * * @param offset(int) Key to determine which part of the temporary storage array to look into */ - void set_test_value(int offset = -1); + void set_test_value(int offset=0); // DocString: sin_node_rung /** diff --git a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/sp/sixth_power.cpp b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/sp/sixth_power.cpp index 7dd1f6b2d53879943e15aaf6dadd1cecd48231e7..3633e45675eb37407902444ce8236ec1693d5eed 100644 --- a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/sp/sixth_power.cpp +++ b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/sp/sixth_power.cpp @@ -52,14 +52,12 @@ void SixPowNode::update_div_mult_leaves(std::map<std::string, double>& div_mult_ void SixPowNode::set_value(int offset) { if(_selected) - allowed_op_funcs::sixth_pow(_n_samp, _feats[0]->value_ptr(offset + 2), node_value_arrs::get_d_matrix_ptr(_d_mat_ind)); + allowed_op_funcs::sixth_pow(_n_samp, _feats[0]->value_ptr(2 * offset), node_value_arrs::get_d_matrix_ptr(_d_mat_ind)); - offset = (offset == -1) ? rung() : offset; - allowed_op_funcs::sixth_pow(_n_samp, _feats[0]->value_ptr(offset + 2), node_value_arrs::get_value_ptr(_arr_ind, _feat_ind, offset)); + allowed_op_funcs::sixth_pow(_n_samp, _feats[0]->value_ptr(2 * offset), node_value_arrs::get_value_ptr(_arr_ind, _feat_ind, rung(), offset)); } void SixPowNode::set_test_value(int offset) { - offset = (offset == -1) ? rung() : offset; - allowed_op_funcs::sixth_pow(_n_test_samp, _feats[0]->test_value_ptr(offset + 2), node_value_arrs::get_test_value_ptr(_arr_ind, _feat_ind, offset)); + allowed_op_funcs::sixth_pow(_n_test_samp, _feats[0]->test_value_ptr(2 * offset), node_value_arrs::get_test_value_ptr(_arr_ind, _feat_ind, rung(), offset)); } diff --git a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/sp/sixth_power.hpp b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/sp/sixth_power.hpp index 8c940862178b0acf354a745e6eee20fdbba066d3..524bc61d10591aefc426cc1fcacbc40fa1e3fce7 100644 --- a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/sp/sixth_power.hpp +++ b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/sp/sixth_power.hpp @@ -85,7 +85,7 @@ public: * * @param offset(int) Key to determine which part of the temporary storage array to look into */ - void set_value(int offset = -1); + void set_value(int offset=0); // DocString: six_pow_node_set_test_value /** @@ -93,7 +93,7 @@ public: * * @param offset(int) Key to determine which part of the temporary storage array to look into */ - void set_test_value(int offset = -1); + void set_test_value(int offset=0); // DocString: six_pow_node_rung /** diff --git a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/sq/square.cpp b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/sq/square.cpp index 249e6f92b48f17c52e24597872a9b8a4269bd70d..62d6ae37596dd4645684f206632ec3d30eb3df22 100644 --- a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/sq/square.cpp +++ b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/sq/square.cpp @@ -53,14 +53,12 @@ void SqNode::update_div_mult_leaves(std::map<std::string, double>& div_mult_leav void SqNode::set_value(int offset) { if(_selected) - allowed_op_funcs::sq(_n_samp, _feats[0]->value_ptr(offset + 2), node_value_arrs::get_d_matrix_ptr(_d_mat_ind)); + allowed_op_funcs::sq(_n_samp, _feats[0]->value_ptr(2 * offset), node_value_arrs::get_d_matrix_ptr(_d_mat_ind)); - offset = (offset == -1) ? rung() : offset; - allowed_op_funcs::sq(_n_samp, _feats[0]->value_ptr(offset + 2), node_value_arrs::get_value_ptr(_arr_ind, _feat_ind, offset)); + allowed_op_funcs::sq(_n_samp, _feats[0]->value_ptr(2 * offset), node_value_arrs::get_value_ptr(_arr_ind, _feat_ind, rung(), offset)); } void SqNode::set_test_value(int offset) { - offset = (offset == -1) ? rung() : offset; - allowed_op_funcs::sq(_n_test_samp, _feats[0]->test_value_ptr(offset + 2), node_value_arrs::get_test_value_ptr(_arr_ind, _feat_ind, offset)); + allowed_op_funcs::sq(_n_test_samp, _feats[0]->test_value_ptr(2 * offset), node_value_arrs::get_test_value_ptr(_arr_ind, _feat_ind, rung(), offset)); } diff --git a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/sq/square.hpp b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/sq/square.hpp index ee67280aa7ed99a647d85cfc3b8839be36c9a0a7..b2e0097b479505504e43da06d9d8ce9d1ef015a4 100644 --- a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/sq/square.hpp +++ b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/sq/square.hpp @@ -84,7 +84,7 @@ public: * * @param offset(int) Key to determine which part of the temporary storage array to look into */ - void set_value(int offset = -1); + void set_value(int offset=0); // DocString: sq_node_set_test_value /** @@ -92,7 +92,7 @@ public: * * @param offset(int) Key to determine which part of the temporary storage array to look into */ - void set_test_value(int offset = -1); + void set_test_value(int offset=0); // DocString: sq_node_rung /** diff --git a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/sqrt/square_root.cpp b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/sqrt/square_root.cpp index ea0fc8694e9a83af93af7be8da54101362fd45be..b549f3d5f17b1380dbd5acff534bd346d1953232 100644 --- a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/sqrt/square_root.cpp +++ b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/sqrt/square_root.cpp @@ -53,14 +53,12 @@ void SqrtNode::update_div_mult_leaves(std::map<std::string, double>& div_mult_le void SqrtNode::set_value(int offset) { if(_selected) - allowed_op_funcs::sqrt(_n_samp, _feats[0]->value_ptr(offset + 2), node_value_arrs::get_d_matrix_ptr(_d_mat_ind)); + allowed_op_funcs::sqrt(_n_samp, _feats[0]->value_ptr(2 * offset), node_value_arrs::get_d_matrix_ptr(_d_mat_ind)); - offset = (offset == -1) ? rung() : offset; - allowed_op_funcs::sqrt(_n_samp, _feats[0]->value_ptr(offset + 2), node_value_arrs::get_value_ptr(_arr_ind, _feat_ind, offset)); + allowed_op_funcs::sqrt(_n_samp, _feats[0]->value_ptr(2 * offset), node_value_arrs::get_value_ptr(_arr_ind, _feat_ind, rung(), offset)); } void SqrtNode::set_test_value(int offset) { - offset = (offset == -1) ? rung() : offset; - allowed_op_funcs::sqrt(_n_test_samp, _feats[0]->test_value_ptr(offset + 2), node_value_arrs::get_test_value_ptr(_arr_ind, _feat_ind, offset)); + allowed_op_funcs::sqrt(_n_test_samp, _feats[0]->test_value_ptr(2 * offset), node_value_arrs::get_test_value_ptr(_arr_ind, _feat_ind, rung(), offset)); } diff --git a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/sqrt/square_root.hpp b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/sqrt/square_root.hpp index 2ecb1d4b26ac35293d24eba70354af8f00c8df6c..fb89ad2778fb60062dceb09aa133b2a6bf9c6904 100644 --- a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/sqrt/square_root.hpp +++ b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/sqrt/square_root.hpp @@ -85,7 +85,7 @@ public: * * @param offset(int) Key to determine which part of the temporary storage array to look into */ - void set_value(int offset = -1); + void set_value(int offset=0); // DocString: sqrt_node_set_test_value /** @@ -93,7 +93,7 @@ public: * * @param offset(int) Key to determine which part of the temporary storage array to look into */ - void set_test_value(int offset = -1); + void set_test_value(int offset=0); // DocString: sqrt_node_rung /** diff --git a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/sub/subtract.cpp b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/sub/subtract.cpp index a338297a39a3960e2ebabb93ef6b94eb1bb9ed1d..eae864d3778ab96abab73627b80ee4c84073b8da 100644 --- a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/sub/subtract.cpp +++ b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/sub/subtract.cpp @@ -80,14 +80,12 @@ void SubNode::update_div_mult_leaves(std::map<std::string, double>& div_mult_lea void SubNode::set_value(int offset) { if(_selected) - allowed_op_funcs::sub(_n_samp, _feats[0]->value_ptr(offset + 2), _feats[1]->value_ptr(offset + 1), node_value_arrs::get_d_matrix_ptr(_d_mat_ind)); + allowed_op_funcs::sub(_n_samp, _feats[0]->value_ptr(2 * offset), _feats[1]->value_ptr(2 * offset + 1), node_value_arrs::get_d_matrix_ptr(_d_mat_ind)); - offset = (offset == -1) ? rung() : offset; - allowed_op_funcs::sub(_n_samp, _feats[0]->value_ptr(offset + 2), _feats[1]->value_ptr(offset + 1), node_value_arrs::get_value_ptr(_arr_ind, _feat_ind, offset)); + allowed_op_funcs::sub(_n_samp, _feats[0]->value_ptr(2 * offset), _feats[1]->value_ptr(2 * offset + 1), node_value_arrs::get_value_ptr(_arr_ind, _feat_ind, rung(), offset)); } void SubNode::set_test_value(int offset) { - offset = (offset == -1) ? rung() : offset; - allowed_op_funcs::sub(_n_test_samp, _feats[0]->test_value_ptr(offset + 2), _feats[1]->test_value_ptr(offset + 1), node_value_arrs::get_test_value_ptr(_arr_ind, _feat_ind, offset)); + allowed_op_funcs::sub(_n_test_samp, _feats[0]->test_value_ptr(2 * offset), _feats[1]->test_value_ptr(2 * offset + 1), node_value_arrs::get_test_value_ptr(_arr_ind, _feat_ind, rung(), offset)); } diff --git a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/sub/subtract.hpp b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/sub/subtract.hpp index fff6a8775fe2378314d3027c8785834832904636..54dc07b03ccd860d73b8b6a4ec0ab550c842c1dc 100644 --- a/src/feature_creation/node/operator_nodes/allowed_operator_nodes/sub/subtract.hpp +++ b/src/feature_creation/node/operator_nodes/allowed_operator_nodes/sub/subtract.hpp @@ -87,7 +87,7 @@ public: * * @param offset(int) Key to determine which part of the temporary storage array to look into */ - void set_value(int offset = -1); + void set_value(int offset=0); // DocString: sub_node_set_test_value /** @@ -95,7 +95,7 @@ public: * * @param offset(int) Key to determine which part of the temporary storage array to look into */ - void set_test_value(int offset = -1); + void set_test_value(int offset=0); // DocString: sub_node_rung /** diff --git a/src/feature_creation/node/value_storage/nodes_value_containers.cpp b/src/feature_creation/node/value_storage/nodes_value_containers.cpp index c0c0e1255d51660db6d51e2564cf312c2d3ea0d4..69eb30249e360034d54e7406409cd6fab5d4a397 100644 --- a/src/feature_creation/node/value_storage/nodes_value_containers.cpp +++ b/src/feature_creation/node/value_storage/nodes_value_containers.cpp @@ -23,6 +23,12 @@ std::vector<double> node_value_arrs::TEMP_STORAGE_TEST_ARR; void node_value_arrs::initialize_values_arr(int n_samples, int n_samples_test, int n_primary_feat, int max_rung, bool set_task_sz) { + if(max_rung < 0) + throw std::logic_error("Maximum rung of the features is less than 0"); + + if(max_rung == 0) + std::cerr << "Warning requested calculation has a maximum rung of 0" << std::endl; + if(set_task_sz) TASK_SZ_TRAIN = {n_samples}; @@ -76,6 +82,9 @@ void node_value_arrs::set_task_sz_test(std::vector<int> task_sz_test) void node_value_arrs::resize_values_arr(int n_dims, unsigned long int n_feat, bool use_temp) { + if(n_dims > MAX_RUNG) + throw std::logic_error("Requested rung is larger MAX_RUNG."); + N_RUNGS_STORED = n_dims; N_STORE_FEATURES = n_feat; if(N_STORE_FEATURES == 0) @@ -113,22 +122,24 @@ void node_value_arrs::resize_values_arr(int n_dims, unsigned long int n_feat, bo } } -double* node_value_arrs::get_value_ptr(unsigned long int arr_ind, unsigned long int feat_ind, int offset) +double* node_value_arrs::get_value_ptr(unsigned long int arr_ind, unsigned long int feat_ind, int rung, int offset) { if(arr_ind < N_STORE_FEATURES) return access_value_arr(arr_ind); + int op_slot = get_op_slot(rung, offset); - temp_storage_reg(arr_ind, offset) = feat_ind; - return access_temp_storage((arr_ind % N_STORE_FEATURES) + (offset % N_OP_SLOTS) * N_STORE_FEATURES + omp_get_thread_num() * (N_STORE_FEATURES * N_OP_SLOTS + 1)); + temp_storage_reg(arr_ind, op_slot) = feat_ind; + return access_temp_storage((arr_ind % N_STORE_FEATURES) + (op_slot % N_OP_SLOTS) * N_STORE_FEATURES + omp_get_thread_num() * (N_STORE_FEATURES * N_OP_SLOTS + 1)); } -double* node_value_arrs::get_test_value_ptr(unsigned long int arr_ind, unsigned long int feat_ind, int offset) +double* node_value_arrs::get_test_value_ptr(unsigned long int arr_ind, unsigned long int feat_ind, int rung, int offset) { if(arr_ind < N_STORE_FEATURES) return access_test_value_arr(arr_ind); + int op_slot = get_op_slot(rung, offset); - temp_storage_test_reg(arr_ind, offset) = feat_ind; - return access_temp_storage_test((arr_ind % N_STORE_FEATURES) + (offset % N_OP_SLOTS) * N_STORE_FEATURES + omp_get_thread_num() * (N_STORE_FEATURES * N_OP_SLOTS + 1)); + temp_storage_test_reg(arr_ind, op_slot) = feat_ind; + return access_temp_storage_test((arr_ind % N_STORE_FEATURES) + (op_slot % N_OP_SLOTS) * N_STORE_FEATURES + omp_get_thread_num() * (N_STORE_FEATURES * N_OP_SLOTS + 1)); } void node_value_arrs::initialize_d_matrix_arr() diff --git a/src/feature_creation/node/value_storage/nodes_value_containers.hpp b/src/feature_creation/node/value_storage/nodes_value_containers.hpp index 39f1572a86889039455873f8baa39366507f9b46..4a2f088113559a059277c3a4dbc1161173dc139e 100644 --- a/src/feature_creation/node/value_storage/nodes_value_containers.hpp +++ b/src/feature_creation/node/value_storage/nodes_value_containers.hpp @@ -54,19 +54,6 @@ namespace node_value_arrs */ void initialize_values_arr(int n_samples, int n_samples_test, int n_primary_feat, int max_rung, bool et_task_sz); - /** - * @brief Initialize the node value arrays - * @details Using the size of the initial feature space constructor the storage arrays - * - * @param n_samples Number of training samples for each feature - * @param n_samples_test Number of test samples for each feature - * @param n_primary_feat Number of primary features - */ - inline void initialize_values_arr(int n_samples, int n_samples_test, int n_primary_feat) - { - initialize_values_arr(n_samples, n_samples_test, n_primary_feat, 0, true); - } - /** * @brief Initialize the node value arrays * @details Using the size of the initial feature space constructor the storage arrays @@ -90,7 +77,7 @@ namespace node_value_arrs * @param n_primary_feat Number of primary features * @param max_rung Largest rung of a feature */ - void initialize_values_arr(std::vector<int> task_sz_train, std::vector<int> task_sz_test, int n_primary_feat, int max_rung=0); + void initialize_values_arr(std::vector<int> task_sz_train, std::vector<int> task_sz_test, int n_primary_feat, int max_rung); /** * @brief Resize the node value arrays @@ -131,25 +118,57 @@ namespace node_value_arrs */ void set_task_sz_test(std::vector<int> task_sz_test); + /** + * @brief Get the operator slot associated with a given rung/offset + * + * @param rung Rung of the feature + * @param offset Offset used to prevent overwrites + * + * @return The operator slot to use + */ + inline int get_op_slot(int rung, int offset){return std::abs(N_OP_SLOTS - static_cast<int>(std::pow(2, MAX_RUNG - rung)) - offset);} + + /** + * @brief Get a reference slot/feature register of the training data + * + * @param ind The Node's arr_ind + * @param op_slot(int) Offset integer for TEMP_STORE_ARRAY + * + * @return The register element for a given feature index and op_slot + */ + inline int& temp_storage_reg(unsigned long int ind, int op_slot = 0){return TEMP_STORAGE_REG[(ind % N_STORE_FEATURES) + (op_slot % N_OP_SLOTS) * N_STORE_FEATURES + omp_get_thread_num() * (N_STORE_FEATURES * N_OP_SLOTS + 1)];} + + /** + * @brief Get a reference slot/feature register of the test data + * + * @param ind The Node's arr_ind + * @param op_slot(int) Offset integer for TEMP_STORE_TEST_ARRAY + * + * @return The register element for a given feature index and op_slot + */ + inline int& temp_storage_test_reg(unsigned long int ind, int op_slot = 0){return TEMP_STORAGE_TEST_REG[(ind % N_STORE_FEATURES) + (op_slot % N_OP_SLOTS) * N_STORE_FEATURES + omp_get_thread_num() * (N_STORE_FEATURES * N_OP_SLOTS + 1)];} + /** * @brief Get a reference slot/feature register of the training data * * @param ind The Node's arr_ind - * @param offset(int) Offset integer for TEMP_STORE_ARRAY + * @param rung Rung of the feature + * @param offset Offset used to prevent overwrites * * @return The register element for a given feature index and offset */ - inline int& temp_storage_reg(unsigned long int ind, int offset = 0){return TEMP_STORAGE_REG[(ind % N_STORE_FEATURES) + (offset % N_OP_SLOTS) * N_STORE_FEATURES + omp_get_thread_num() * (N_STORE_FEATURES * N_OP_SLOTS + 1)];} + inline int& temp_storage_reg(unsigned long int ind, int rung, int offset){return TEMP_STORAGE_REG[(ind % N_STORE_FEATURES) + (get_op_slot(rung, offset) % N_OP_SLOTS) * N_STORE_FEATURES + omp_get_thread_num() * (N_STORE_FEATURES * N_OP_SLOTS + 1)];} /** * @brief Get a reference slot/feature register of the test data * * @param ind The Node's arr_ind - * @param offset(int) Offset integer for TEMP_STORE_TEST_ARRAY + * @param rung Rung of the feature + * @param offset Offset used to prevent overwrites * * @return The register element for a given feature index and offset */ - inline int& temp_storage_test_reg(unsigned long int ind, int offset = 0){return TEMP_STORAGE_TEST_REG[(ind % N_STORE_FEATURES) + (offset % N_OP_SLOTS) * N_STORE_FEATURES + omp_get_thread_num() * (N_STORE_FEATURES * N_OP_SLOTS + 1)];} + inline int& temp_storage_test_reg(unsigned long int ind, int rung, int offset){return TEMP_STORAGE_TEST_REG[(ind % N_STORE_FEATURES) + (get_op_slot(rung, offset) % N_OP_SLOTS) * N_STORE_FEATURES + omp_get_thread_num() * (N_STORE_FEATURES * N_OP_SLOTS + 1)];} /** * @brief Access element of the permanent training data storage array @@ -196,7 +215,7 @@ namespace node_value_arrs * * @return The value pointer */ - double* get_value_ptr(unsigned long int arr_ind, unsigned long int feat_ind, int offset = 0); + double* get_value_ptr(unsigned long int arr_ind, unsigned long int feat_ind, int rung = 0, int offset = 0); /** * @brief Get a Node's test_value_ptr @@ -207,7 +226,7 @@ namespace node_value_arrs * * @return The value pointer */ - double* get_test_value_ptr(unsigned long int arr_ind, unsigned long int feat_ind, int offset = 0); + double* get_test_value_ptr(unsigned long int arr_ind, unsigned long int feat_ind, int rung = 0, int offset = 0); /** * @brief Get the pointer to a particular selected Node from sis @@ -230,7 +249,7 @@ namespace node_value_arrs * @brief Flush the temporary storage register (training data) * @details Reset all slots in the register to -1 */ - inline void clear_temp_reg_thread(){std::fill_n(TEMP_STORAGE_REG.data() + N_STORE_FEATURES * 3 * omp_get_thread_num(), N_STORE_FEATURES * 3, -1);} + inline void clear_temp_reg_thread(){std::fill_n(TEMP_STORAGE_REG.data() + N_STORE_FEATURES * N_OP_SLOTS * omp_get_thread_num(), N_STORE_FEATURES * N_OP_SLOTS, -1);} /** * @brief Flush the temporary storage register (test data) diff --git a/src/python/__init__.py b/src/python/__init__.py index 46cee8168adacfe21493b014cfa226907cd69fdc..05479679c098285142aa6146ae4c667eac547a8e 100644 --- a/src/python/__init__.py +++ b/src/python/__init__.py @@ -53,7 +53,13 @@ def get_unit(header): def generate_phi_0_from_csv( - df, prop_key, cols="all", task_key=None, leave_out_frac=0.0, leave_out_inds=None + df, + prop_key, + cols="all", + task_key=None, + leave_out_frac=0.0, + leave_out_inds=None, + max_rung=None, ): """Create initial feature set from csv file @@ -63,6 +69,7 @@ def generate_phi_0_from_csv( cols (list or str): The columns to include in the initial feature set task_key (str): The key corresponding to which column in the csv file the task differentiation is stored in leave_out_frac (list): List of indices to pull from the training data to act as a test set + max_rung (int): Maximum rung of a feature Returns: phi_0 (list of FeatureNodes): The list of primary features @@ -73,6 +80,8 @@ def generate_phi_0_from_csv( leave_out_frac (float): Fraction of samples to leave out leave_out_inds (list): Indices to use as the test set """ + if not max_rung: + raise ValueError("Maximum rung for the calculation is not defined.") # Load csv file if isinstance(df, str): @@ -166,7 +175,7 @@ def generate_phi_0_from_csv( exprs = list([col.split("(")[0] for col in columns]) units = list([get_unit(col) for col in columns]) - initialize_values_arr(len(train_inds), len(leave_out_inds), len(columns)) + initialize_values_arr(len(train_inds), len(leave_out_inds), len(columns), max_rung) test_values = df.to_numpy().T[:, leave_out_inds] values = df.to_numpy().T[:, train_inds] @@ -295,6 +304,7 @@ def generate_fs_sr_from_csv( task_key=task_key, leave_out_frac=leave_out_frac, leave_out_inds=leave_out_inds, + max_rung=max_phi, ) fs = generate_fs( diff --git a/src/python/bindings_docstring_keyed.cpp b/src/python/bindings_docstring_keyed.cpp index 32d5e90c14eca4a8f94f65640e8e720f5b9322d5..e2677c9c9f3a31567db39f3f46ca5dd20d44276f 100644 --- a/src/python/bindings_docstring_keyed.cpp +++ b/src/python/bindings_docstring_keyed.cpp @@ -37,7 +37,7 @@ void sisso::register_all() sisso::feature_creation::node::registerSqrtNode(); sisso::feature_creation::node::registerSixPowNode(); - void (*init_val_ar)(int, int, int) = &node_value_arrs::initialize_values_arr; + void (*init_val_ar)(int, int, int, int) = &node_value_arrs::initialize_values_arr; def("phi_selected_from_file", &str2node::phi_selected_from_file_py); def("initialize_values_arr", init_val_ar); diff --git a/src/python/bindings_docstring_keyed.hpp b/src/python/bindings_docstring_keyed.hpp index cee1f5b826787070c9818cd35aeafebc9b49fbee..1687d8074afc0f9a7ce48cdeedef87571709c914 100644 --- a/src/python/bindings_docstring_keyed.hpp +++ b/src/python/bindings_docstring_keyed.hpp @@ -42,10 +42,10 @@ namespace sisso inline Unit unit(){return this->get_override("unit")();} inline std::vector<double> value(){return this->get_override("value")();} inline std::vector<double> test_value(){return this->get_override("test_value")();} - inline void set_value(int offset = -1){this->get_override("set_value")();} - inline double* value_ptr(int offset = -1){return this->get_override("value_ptr")();} - inline void set_test_value(int offset = -1){this->get_override("set_test_value")();} - inline double* test_value_ptr(int offset = -1){return this->get_override("test_value_ptr")();} + inline void set_value(int offset=0){this->get_override("set_value")();} + inline double* value_ptr(int offset=0){return this->get_override("value_ptr")();} + inline void set_test_value(int offset=0){this->get_override("set_test_value")();} + inline double* test_value_ptr(int offset=0){return this->get_override("test_value_ptr")();} inline bool is_nan(){return this->get_override("is_nan")();} inline bool is_const(){return this->get_override("is_const")();} inline NODE_TYPE type(){return this->get_override("type")();} @@ -65,8 +65,8 @@ namespace sisso template<int N> struct OperatorNodeWrap : OperatorNode<N>, py::wrapper<OperatorNode<N>> { - inline void set_value(int offset = -1){this->get_override("set_value")();} - inline void set_test_value(int offset = -1){this->get_override("set_test_value")();} + inline void set_value(int offset=0){this->get_override("set_value")();} + inline void set_test_value(int offset=0){this->get_override("set_test_value")();} inline NODE_TYPE type(){return this->get_override("type")();} inline int rung(int cur_rung = 0){return this->get_override("rung")();} inline std::string expr(){return this->get_override("expr")();} diff --git a/src/python/feature_creation/FeatureNode.cpp b/src/python/feature_creation/FeatureNode.cpp index 6b23ab7edf5dca5ede8cc0484f7d8ad176d33fa0..81229abe5c77cf033687405f0ad467372d73025a 100644 --- a/src/python/feature_creation/FeatureNode.cpp +++ b/src/python/feature_creation/FeatureNode.cpp @@ -9,7 +9,7 @@ FeatureNode::FeatureNode(unsigned long int feat_ind, std::string expr, np::ndarr { // Automatically resize the storage arrays if(node_value_arrs::N_STORE_FEATURES == 0) - node_value_arrs::initialize_values_arr(_n_samp, _n_test_samp, 1); + node_value_arrs::initialize_values_arr(_n_samp, _n_test_samp, 1, 0); else if((_n_samp != node_value_arrs::N_SAMPLES) || (_n_test_samp != node_value_arrs::N_SAMPLES_TEST)) throw std::logic_error("Number of samples in current feature is not the same as the others, (" + std::to_string(_n_samp) + " and " + std::to_string(_n_test_samp) + " vs. " + std::to_string(node_value_arrs::N_SAMPLES) + " and " + std::to_string(node_value_arrs::N_SAMPLES_TEST) + ")"); else if(feat_ind >= node_value_arrs::N_STORE_FEATURES) @@ -29,7 +29,7 @@ FeatureNode::FeatureNode(unsigned long int feat_ind, std::string expr, py::list // Automatically resize the storage arrays if(node_value_arrs::N_STORE_FEATURES == 0) - node_value_arrs::initialize_values_arr(_n_samp, _n_test_samp, 1); + node_value_arrs::initialize_values_arr(_n_samp, _n_test_samp, 1, 0); else if((_n_samp != node_value_arrs::N_SAMPLES) || (_n_test_samp != node_value_arrs::N_SAMPLES_TEST)) throw std::logic_error("Number of samples in current feature is not the same as the others, (" + std::to_string(_n_samp) + " and " + std::to_string(_n_test_samp) + " vs. " + std::to_string(node_value_arrs::N_SAMPLES) + " and " + std::to_string(node_value_arrs::N_SAMPLES_TEST) + ")"); else if(feat_ind >= node_value_arrs::N_STORE_FEATURES) diff --git a/src/python/feature_creation/FeatureSpace.cpp b/src/python/feature_creation/FeatureSpace.cpp index 11fe0d00b3b8775158bd06aa7b93e068c89559e0..a1aa8e84fa342e2cd5082339af15e3790bdabc4d 100644 --- a/src/python/feature_creation/FeatureSpace.cpp +++ b/src/python/feature_creation/FeatureSpace.cpp @@ -121,6 +121,7 @@ FeatureSpace::FeatureSpace( std::vector<int> rung_inds = util_funcs::argsort(rungs); _max_phi = *std::max_element(rungs.begin(), rungs.end()); + node_value_arrs::MAX_RUNG = _max_phi; _phi[0] = phi_temp[rung_inds[0]]; for(int ff = 1; ff < _n_feat; ++ff) {