3 #ifndef FORPY_UTIL_DESK_H_ 4 #define FORPY_UTIL_DESK_H_ 31 std::vector<std::pair<id_t, id_t>> *
tree_p;
36 inline void setup(std::atomic<size_t> *silp, std::atomic<id_t> *np,
37 std::vector<std::pair<id_t, id_t>> *tsp) {
38 stored_in_leafs = silp;
47 stored_in_leafs =
nullptr;
63 size_t n_samples, input_dim, annot_dim;
82 std::vector<float> full_sum;
106 mu::variant<const float *, const double *, const uint *, const uint8_t *>
131 mu::variant<std::vector<float>, std::vector<double>, std::vector<uint32_t>,
135 std::vector<size_t> *ntfp,
136 mu::variant<std::vector<float>, std::vector<double>,
137 std::vector<uint32_t>, std::vector<uint8_t>> *nttp) {
138 node_to_featsel_p = ntfp;
139 node_to_thresh_v_p = nttp;
140 if (ntfp !=
nullptr) invalid_counts.resize(ntfp->size());
143 n_samples = input_dim = annot_dim = 0;
144 min_samples_at_leaf = 0;
148 start_id = end_id = node_id = 0;
149 node_to_featsel_p =
nullptr;
150 node_to_thresh_v_p =
nullptr;
151 invalid_counts.clear();
168 leaf_regression_map_p = lrmp;
170 inline void reset() { leaf_regression_map_p =
nullptr; }
186 random_engine.seed(seed);
190 random_engine.seed(1);
202 inline Desk(
int i) : thread_id(i){};
210 std::atomic<size_t> *stored_in_leaf_p, std::atomic<id_t> *
next_id_p,
211 std::vector<std::pair<id_t, id_t>> *
tree_p,
212 std::vector<size_t> *ntfp =
nullptr,
213 mu::variant<std::vector<float>, std::vector<double>,
214 std::vector<uint32_t>, std::vector<uint8_t>> *nttp =
nullptr,
215 std::vector<
Mat<float>> *lrmp =
nullptr,
const uint &random_seed = 0) {
220 r.
setup(random_seed);
231 #endif // FORPY_UTIL_DESK_H_ size_t annot_os
Variables initialized in IThreshOpt::full_entropy.
std::atomic< id_t > * next_id_p
Desk for decider training.
bool presorted
Variables used during the threshold optimization.
mu::variant< const float *, const double *, const uint *, const uint8_t * > full_feat_p_v
std::vector< std::pair< id_t, id_t > > * tree_p
void setup(std::vector< Mat< float >> *lrmp)
size_t id_t
Element id type.
std::vector< size_t > * node_to_featsel_p
uint min_samples_at_leaf
These variables are populated in IDecider::make_node.
std::vector< size_t > invalid_counts
id_t * sort_perm_p
Variables initialized in IThreshOpt::full_entropy.
std::vector< TodoMark > marks
DataV class_feat_values
Variables initialized in IThreshOpt::full_entropy.
std::pair< id_t, id_t > interv_t
std::atomic< size_t > * stored_in_leafs
void setup(std::atomic< size_t > *silp, std::atomic< id_t > *np, std::vector< std::pair< id_t, id_t >> *tsp)
Set up all the internal pointers.
typename mu::variant< std::vector< float >, std::vector< double >, std::vector< uint >, std::vector< uint8_t >> DataV
float * feat_p
Variables initialized in IThreshOpt::full_entropy.
std::mt19937 random_engine
void setup(const uint &seed)
const uint * class_annot_p
Variables initialized in IThreshOpt::full_entropy.
id_t start_id
These variables are populated in IDecider::make_node.
std::vector< id_t > sort_perm
Variables initialized in IThreshOpt::full_entropy.
id_t * elem_ids_sorted_p
Variables initialized in IThreshOpt::full_entropy.
float maxproxy
Variables initialized in IThreshOpt::full_entropy.
const float * weights_p
Variables initialized in IThreshOpt::full_entropy.
mu::variant< SplitOptRes< float >, SplitOptRes< double >, SplitOptRes< uint >, SplitOptRes< uint8_t > > OptSplitV
mu::variant< std::vector< float >, std::vector< double >, std::vector< uint32_t >, std::vector< uint8_t > > * node_to_thresh_v_p
std::vector< id_t > feature_indices
Variables used during the threshold optimization.
float full_w
Variables initialized in IThreshOpt::full_entropy.
std::vector< float > feat_values
Variables initialized in IThreshOpt::full_entropy.
Eigen::Matrix< DT, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor > Mat
Parameterized Matrix type (row major).
std::vector< id_t > elem_ids_sorted
Variables initialized in IThreshOpt::full_entropy.
float * left_sum_p
Variables initialized in IThreshOpt::full_entropy.
void setup(std::vector< size_t > *ntfp, mu::variant< std::vector< float >, std::vector< double >, std::vector< uint32_t >, std::vector< uint8_t >> *nttp)
void setup(std::atomic< size_t > *stored_in_leaf_p, std::atomic< id_t > *next_id_p, std::vector< std::pair< id_t, id_t >> *tree_p, std::vector< size_t > *ntfp=nullptr, mu::variant< std::vector< float >, std::vector< double >, std::vector< uint32_t >, std::vector< uint8_t >> *nttp=nullptr, std::vector< Mat< float >> *lrmp=nullptr, const uint &random_seed=0)
Desk for coordinating the random engines.
id_t best_feat_idx
Variables used during the threshold optimization.
std::vector< Mat< float > > * leaf_regression_map_p
void reset()
Clear the marks and reset all pointers.
float * full_sum_p
Variables initialized in IThreshOpt::full_entropy.
unsigned int uint
Convenience typedef for unsigned int.
std::vector< float > left_sum_vec
Variables initialized in IThreshOpt::full_entropy.
const float * annot_p
Variables initialized in IThreshOpt::full_entropy.
interv_t right_int
Return values from IThreshOpt::optimize.
id_t right_id
Return values from IThreshOpt::optimize.
Desk for leaf manager training.