* installing *source* package ‘stochtree’ ...
** this is package ‘stochtree’ version ‘0.1.1’
** package ‘stochtree’ successfully unpacked and MD5 sums checked
** using staged installation
** libs
using C++ compiler: ‘g++-14 (GCC) 14.2.0’
using C++17
make[1]: Entering directory '/data/gannet/ripley/R/packages/tests-devel/stochtree/src'
g++-14 -std=gnu++17 -I"/data/gannet/ripley/R/R-devel/include" -DNDEBUG -I../src/include -DSTOCHTREE_R_BUILD -I'/data/gannet/ripley/R/test-dev/cpp11/include' -I'/data/gannet/ripley/R/test-dev/BH/include' -I/usr/local/include    -fpic  -g -O2 -Wall -pedantic -mtune=native -Wno-ignored-attributes -Wno-parentheses -Wp,-D_FORTIFY_SOURCE=3 -fexceptions -fstack-protector-strong -fstack-clash-protection -fcf-protection   -c forest.cpp -o forest.o
g++-14 -std=gnu++17 -I"/data/gannet/ripley/R/R-devel/include" -DNDEBUG -I../src/include -DSTOCHTREE_R_BUILD -I'/data/gannet/ripley/R/test-dev/cpp11/include' -I'/data/gannet/ripley/R/test-dev/BH/include' -I/usr/local/include    -fpic  -g -O2 -Wall -pedantic -mtune=native -Wno-ignored-attributes -Wno-parentheses -Wp,-D_FORTIFY_SOURCE=3 -fexceptions -fstack-protector-strong -fstack-clash-protection -fcf-protection   -c kernel.cpp -o kernel.o
g++-14 -std=gnu++17 -I"/data/gannet/ripley/R/R-devel/include" -DNDEBUG -I../src/include -DSTOCHTREE_R_BUILD -I'/data/gannet/ripley/R/test-dev/cpp11/include' -I'/data/gannet/ripley/R/test-dev/BH/include' -I/usr/local/include    -fpic  -g -O2 -Wall -pedantic -mtune=native -Wno-ignored-attributes -Wno-parentheses -Wp,-D_FORTIFY_SOURCE=3 -fexceptions -fstack-protector-strong -fstack-clash-protection -fcf-protection   -c R_data.cpp -o R_data.o
In file included from ../src/include/stochtree/container.h:9,
                 from stochtree_types.h:1,
                 from forest.cpp:2:
../src/include/stochtree/data.h: In function 'void StochTree::ExtractMultipleFeaturesFromMemory(std::vector<std::__cxx11::basic_string<char> >*, const Parser*, std::vector<int>&, Eigen::MatrixXd&, data_size_t)':
../src/include/stochtree/data.h:40:7: warning: unused variable 'feature_counter' [-Wunused-variable]
   40 |   int feature_counter;
      |       ^~~~~~~~~~~~~~~
../src/include/stochtree/data.h: In function 'void StochTree::ExtractSingleFeatureFromMemory(std::vector<std::__cxx11::basic_string<char> >*, const Parser*, int32_t, Eigen::VectorXd&, data_size_t)':
../src/include/stochtree/data.h:81:8: warning: unused variable 'column_matched' [-Wunused-variable]
   81 |   bool column_matched;
      |        ^~~~~~~~~~~~~~
In file included from ../src/include/stochtree/common.h:8,
                 from ../src/include/stochtree/io.h:20,
                 from ../src/include/stochtree/data.h:9:
../src/include/stochtree/tree.h: In member function 'void StochTree::Tree::CollapseToLeaf(int32_t, std::vector<double>)':
../src/include/stochtree/log.h:46:34: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<double>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/tree.h:193:5: note: in expansion of macro 'CHECK_EQ'
  193 |     CHECK_EQ(output_dimension_, value_vector.size());
      |     ^~~~~~~~
In file included from ../src/include/stochtree/container.h:10:
../src/include/stochtree/ensemble.h: In member function 'void StochTree::TreeEnsemble::PredictInplace(Eigen::MatrixXd&, Eigen::MatrixXd&, std::vector<double>&, int, int, StochTree::data_size_t)':
../src/include/stochtree/ensemble.h:202:23: warning: comparison of integer expressions of different signedness: 'std::vector<double>::size_type' {aka 'long unsigned int'} and 'StochTree::data_size_t' {aka 'int'} [-Wsign-compare]
  202 |     if (output.size() < total_output_size + offset) {
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/ensemble.h:207:37: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
  207 |       for (size_t j = tree_begin; j < tree_end; j++) {
      |                                   ~~^~~~~~~~~~
../src/include/stochtree/ensemble.h: In member function 'void StochTree::TreeEnsemble::PredictInplace(Eigen::MatrixXd&, std::vector<double>&, int, int, StochTree::data_size_t)':
../src/include/stochtree/ensemble.h:227:23: warning: comparison of integer expressions of different signedness: 'std::vector<double>::size_type' {aka 'long unsigned int'} and 'StochTree::data_size_t' {aka 'int'} [-Wsign-compare]
  227 |     if (output.size() < total_output_size + offset) {
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/ensemble.h:232:37: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
  232 |       for (size_t j = tree_begin; j < tree_end; j++) {
      |                                   ~~^~~~~~~~~~
../src/include/stochtree/ensemble.h: In member function 'void StochTree::TreeEnsemble::PredictRawInplace(StochTree::ForestDataset&, std::vector<double>&, int, int, StochTree::data_size_t)':
../src/include/stochtree/ensemble.h:253:23: warning: comparison of integer expressions of different signedness: 'std::vector<double>::size_type' {aka 'long unsigned int'} and 'StochTree::data_size_t' {aka 'int'} [-Wsign-compare]
  253 |     if (output.size() < total_output_size + offset) {
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/ensemble.h:259:39: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
  259 |         for (size_t j = tree_begin; j < tree_end; j++) {
      |                                     ~~^~~~~~~~~~
../src/include/stochtree/ensemble.h: In member function 'void StochTree::TreeEnsemble::SetLeafVector(std::vector<double>&)':
../src/include/stochtree/log.h:46:34: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<double>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/ensemble.h:333:5: note: in expansion of macro 'CHECK_EQ'
  333 |     CHECK_EQ(output_dimension_, leaf_vector.size());
      |     ^~~~~~~~
../src/include/stochtree/ensemble.h: In member function 'void StochTree::TreeEnsemble::PredictLeafIndicesInplace(Eigen::Map<Eigen::Matrix<double, -1, -1>, 0, Eigen::Stride<0, 0> >&, std::vector<int>&, int, StochTree::data_size_t)':
../src/include/stochtree/log.h:54:34: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   54 | #define CHECK_GE(a, b) CHECK((a) >= (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/ensemble.h:393:5: note: in expansion of macro 'CHECK_GE'
  393 |     CHECK_GE(output.size(), num_trees*n);
      |     ^~~~~~~~
../src/include/stochtree/ensemble.h: In member function 'void StochTree::TreeEnsemble::PredictLeafIndicesInplace(Eigen::MatrixXd&, std::vector<int>&, int, StochTree::data_size_t)':
../src/include/stochtree/log.h:54:34: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   54 | #define CHECK_GE(a, b) CHECK((a) >= (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/ensemble.h:456:5: note: in expansion of macro 'CHECK_GE'
  456 |     CHECK_GE(output.size(), num_trees*n);
      |     ^~~~~~~~
../src/include/stochtree/ensemble.h: In member function 'json StochTree::TreeEnsemble::to_json()':
../src/include/stochtree/ensemble.h:489:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::unique_ptr<StochTree::Tree> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  489 |     for (int i = 0; i < trees_.size(); i++) {
      |                     ~~^~~~~~~~~~~~~~~
In file included from ../src/include/stochtree/cutpoint_candidates.h:43,
                 from ../src/include/stochtree/leaf_model.h:9,
                 from stochtree_types.h:3:
../src/include/stochtree/partition_tracker.h: In member function 'void StochTree::UnsortedNodeSampleTracker::UpdateObservationMapping(StochTree::Tree*, int, StochTree::SampleNodeMapper*)':
../src/include/stochtree/partition_tracker.h:424:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  424 |     for (int i = 0; i < leaves.size(); i++) {
      |                     ~~^~~~~~~~~~~~~~~
../src/include/stochtree/partition_tracker.h: In member function 'void StochTree::FeaturePresortRoot::ArgsortRoot(Eigen::MatrixXd&)':
../src/include/stochtree/partition_tracker.h:494:38: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'StochTree::data_size_t' {aka 'int'} [-Wsign-compare]
  494 |     if (feature_sort_indices_.size() != num_obs){
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~
../src/include/stochtree/random_effects.h: In member function 'void StochTree::MultivariateRegressionRandomEffectsModel::PredictInplace(StochTree::RandomEffectsDataset&, StochTree::RandomEffectsTracker&, std::vector<double>&)':
../src/include/stochtree/log.h:46:34: warning: comparison of integer expressions of different signedness: 'Eigen::Index' {aka 'long int'} and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/random_effects.h:185:5: note: in expansion of macro 'CHECK_EQ'
  185 |     CHECK_EQ(X.rows(), group_labels.size());
      |     ^~~~~~~~
../src/include/stochtree/log.h:46:34: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<double>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/random_effects.h:187:5: note: in expansion of macro 'CHECK_EQ'
  187 |     CHECK_EQ(n, output.size());
      |     ^~~~~~~~
../src/include/stochtree/random_effects.h: In member function 'void StochTree::MultivariateRegressionRandomEffectsModel::SubtractNewPredictionFromResidual(StochTree::RandomEffectsDataset&, StochTree::RandomEffectsTracker&, StochTree::ColumnVector&)':
../src/include/stochtree/log.h:46:34: warning: comparison of integer expressions of different signedness: 'Eigen::Index' {aka 'long int'} and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/random_effects.h:211:5: note: in expansion of macro 'CHECK_EQ'
  211 |     CHECK_EQ(X.rows(), group_labels.size());
      |     ^~~~~~~~
In file included from stochtree_types.h:7:
../src/include/stochtree/tree_sampler.h: In function 'bool StochTree::NodesNonConstantAfterSplit(ForestDataset&, ForestTracker&, TreeSplit&, int, int, int)':
../src/include/stochtree/tree_sampler.h:82:15: warning: unused variable 'idx' [-Wunused-variable]
   82 |   data_size_t idx;
      |               ^~~
../src/include/stochtree/tree_sampler.h: In function 'bool StochTree::NodeNonConstant(ForestDataset&, ForestTracker&, int, int)':
../src/include/stochtree/tree_sampler.h:125:15: warning: unused variable 'idx' [-Wunused-variable]
  125 |   data_size_t idx;
      |               ^~~
forest.cpp: At global scope:
forest.cpp:15:168: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
   15 | cpp11::external_pointer<StochTree::TreeEnsemble> active_forest_cpp(int num_trees, int output_dimension = 1, bool is_leaf_constant = true, bool is_exponentiated = false) {
      |                                                                                                                                                                        ^
forest.cpp:24:174: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
   24 | cpp11::external_pointer<StochTree::ForestContainer> forest_container_cpp(int num_trees, int output_dimension = 1, bool is_leaf_constant = true, bool is_exponentiated = false) {
      |                                                                                                                                                                              ^
forest.cpp:33:158: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
   33 | cpp11::external_pointer<StochTree::ForestContainer> forest_container_from_json_cpp(cpp11::external_pointer<nlohmann::json> json_ptr, std::string forest_label) {
      |                                                                                                                                                              ^
forest.cpp:49:189: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
   49 | void forest_container_append_from_json_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_sample_ptr, cpp11::external_pointer<nlohmann::json> json_ptr, std::string forest_label) {
      |                                                                                                                                                                                             ^
forest.cpp:58:140: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
   58 | cpp11::external_pointer<StochTree::ForestContainer> forest_container_from_json_string_cpp(std::string json_string, std::string forest_label) {
      |                                                                                                                                            ^
forest.cpp:77:171: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
   77 | void forest_container_append_from_json_string_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_sample_ptr, std::string json_string, std::string forest_label) {
      |                                                                                                                                                                           ^
forest.cpp:89:104: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
   89 | int num_samples_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples) {
      |                                                                                                        ^
forest.cpp:94:148: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
   94 | int ensemble_tree_max_depth_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples, int ensemble_num, int tree_num) {
      |                                                                                                                                                    ^
forest.cpp:99:140: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
   99 | double ensemble_average_max_depth_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples, int ensemble_num) {
      |                                                                                                                                            ^
forest.cpp:104:113: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  104 | double average_max_depth_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples) {
      |                                                                                                                 ^
forest.cpp:109:128: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  109 | int num_leaves_ensemble_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples, int forest_num) {
      |                                                                                                                                ^
forest.cpp:115:139: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  115 | double sum_leaves_squared_ensemble_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples, int forest_num) {
      |                                                                                                                                           ^
forest.cpp:121:102: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  121 | int num_trees_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples) {
      |                                                                                                      ^
forest.cpp:126:130: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  126 | void json_save_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples, std::string json_filename) {
      |                                                                                                                                  ^
forest.cpp:131:130: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  131 | void json_load_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples, std::string json_filename) {
      |                                                                                                                                  ^
forest.cpp:136:107: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  136 | int leaf_dimension_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples) {
      |                                                                                                           ^
forest.cpp:141:109: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  141 | int is_leaf_constant_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples) {
      |                                                                                                             ^
forest.cpp:146:109: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  146 | int is_exponentiated_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples) {
      |                                                                                                             ^
forest.cpp:151:119: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  151 | bool all_roots_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples, int forest_num) {
      |                                                                                                                       ^
forest.cpp:156:104: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  156 | void add_sample_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples) {
      |                                                                                                        ^
forest.cpp:161:127: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  161 | void set_leaf_value_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples, double leaf_value) {
      |                                                                                                                               ^
forest.cpp:166:129: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  166 | void add_sample_value_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples, double leaf_value) {
      |                                                                                                                                 ^
forest.cpp:181:139: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  181 | void add_sample_vector_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples, cpp11::doubles leaf_vector) {
      |                                                                                                                                           ^
forest.cpp:197:256: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  197 | void add_numeric_split_tree_value_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples, int forest_num, int tree_num, int leaf_num, int feature_num, double split_threshold, double left_leaf_value, double right_leaf_value) {
      |                                                                                                                                                                                                                                                                ^
forest.cpp:210:275: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  210 | void add_numeric_split_tree_vector_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples, int forest_num, int tree_num, int leaf_num, int feature_num, double split_threshold, cpp11::doubles left_leaf_vector, cpp11::doubles right_leaf_vector) {
      |                                                                                                                                                                                                                                                                                   ^
forest.cpp:228:160: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  228 | cpp11::writable::integers get_tree_leaves_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples, int forest_num, int tree_num) {
      |                                                                                                                                                                ^
forest.cpp:237:184: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  237 | cpp11::writable::integers get_tree_split_counts_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples, int forest_num, int tree_num, int num_features) {
      |                                                                                                                                                                                        ^
forest.cpp: In function 'cpp11::writable::integers get_tree_split_counts_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer>, int, int, int)':
forest.cpp:243:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  243 |     for (int i = 0; i < split_nodes.size(); i++) {
      |                     ~~^~~~~~~~~~~~~~~~~~~~
forest.cpp: At global scope:
forest.cpp:252:172: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  252 | cpp11::writable::integers get_forest_split_counts_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples, int forest_num, int num_features) {
      |                                                                                                                                                                            ^
forest.cpp: In function 'cpp11::writable::integers get_forest_split_counts_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer>, int, int)':
forest.cpp:260:27: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  260 |         for (int j = 0; j < split_nodes.size(); j++) {
      |                         ~~^~~~~~~~~~~~~~~~~~~~
forest.cpp: At global scope:
forest.cpp:270:157: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  270 | cpp11::writable::integers get_overall_split_counts_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples, int num_features) {
      |                                                                                                                                                             ^
forest.cpp: In function 'cpp11::writable::integers get_overall_split_counts_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer>, int)':
forest.cpp:280:31: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  280 |             for (int k = 0; k < split_nodes.size(); k++) {
      |                             ~~^~~~~~~~~~~~~~~~~~~~
forest.cpp: At global scope:
forest.cpp:291:163: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  291 | cpp11::writable::integers get_granular_split_count_array_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples, int num_features) {
      |                                                                                                                                                                   ^
forest.cpp: In function 'cpp11::writable::integers get_granular_split_count_array_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer>, int)':
forest.cpp:301:31: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  301 |             for (int k = 0; k < split_nodes.size(); k++) {
      |                             ~~^~~~~~~~~~~~~~~~~~~~
forest.cpp: At global scope:
forest.cpp:312:137: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  312 | void set_leaf_vector_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples, cpp11::doubles leaf_vector) {
      |                                                                                                                                         ^
forest.cpp:321:149: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  321 | bool is_leaf_node_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples, int forest_num, int tree_num, int node_id) {
      |                                                                                                                                                     ^
forest.cpp:328:158: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  328 | bool is_numeric_split_node_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples, int forest_num, int tree_num, int node_id) {
      |                                                                                                                                                              ^
forest.cpp:335:162: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  335 | bool is_categorical_split_node_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples, int forest_num, int tree_num, int node_id) {
      |                                                                                                                                                                  ^
forest.cpp:342:147: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  342 | int parent_node_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples, int forest_num, int tree_num, int node_id) {
      |                                                                                                                                                   ^
forest.cpp:349:151: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  349 | int left_child_node_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples, int forest_num, int tree_num, int node_id) {
      |                                                                                                                                                       ^
forest.cpp:356:152: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  356 | int right_child_node_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples, int forest_num, int tree_num, int node_id) {
      |                                                                                                                                                        ^
forest.cpp:363:146: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  363 | int node_depth_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples, int forest_num, int tree_num, int node_id) {
      |                                                                                                                                                  ^
forest.cpp:370:147: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  370 | int split_index_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples, int forest_num, int tree_num, int node_id) {
      |                                                                                                                                                   ^
forest.cpp:377:153: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  377 | double split_theshold_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples, int forest_num, int tree_num, int node_id) {
      |                                                                                                                                                         ^
forest.cpp:384:174: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  384 | cpp11::writable::integers split_categories_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples, int forest_num, int tree_num, int node_id) {
      |                                                                                                                                                                              ^
forest.cpp:393:168: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  393 | cpp11::writable::doubles leaf_values_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples, int forest_num, int tree_num, int node_id) {
      |                                                                                                                                                                        ^
forest.cpp:405:132: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  405 | int num_nodes_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples, int forest_num, int tree_num) {
      |                                                                                                                                    ^
forest.cpp:412:133: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  412 | int num_leaves_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples, int forest_num, int tree_num) {
      |                                                                                                                                     ^
forest.cpp:419:139: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  419 | int num_leaf_parents_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples, int forest_num, int tree_num) {
      |                                                                                                                                           ^
forest.cpp:426:138: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  426 | int num_split_nodes_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples, int forest_num, int tree_num) {
      |                                                                                                                                          ^
forest.cpp:433:150: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  433 | cpp11::writable::integers nodes_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples, int forest_num, int tree_num) {
      |                                                                                                                                                      ^
forest.cpp:442:151: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  442 | cpp11::writable::integers leaves_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples, int forest_num, int tree_num) {
      |                                                                                                                                                       ^
forest.cpp:455:80: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  455 |                                  cpp11::doubles init_values, int leaf_model_int){
      |                                                                                ^
forest.cpp:507:88: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  507 |                                           bool requires_basis, int forest_num, bool add) {
      |                                                                                        ^
forest.cpp:522:64: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  522 |                                                  int forest_num) {
      |                                                                ^
forest.cpp:529:55: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  529 |                                         int forest_num) {
      |                                                       ^
forest.cpp:534:179: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  534 | cpp11::writable::doubles_matrix<> predict_forest_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples, cpp11::external_pointer<StochTree::ForestDataset> dataset) {
      |                                                                                                                                                                                   ^
forest.cpp: In function 'cpp11::writable::doubles_matrix<> predict_forest_cpp(cpp11::external_pointer<StochTree::ForestContainer>, cpp11::external_pointer<StochTree::ForestDataset>)':
forest.cpp:542:26: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
  542 |     for (size_t i = 0; i < n; i++) {
      |                        ~~^~~
forest.cpp: At global scope:
forest.cpp:552:174: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  552 | cpp11::writable::doubles predict_forest_raw_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples, cpp11::external_pointer<StochTree::ForestDataset> dataset) {
      |                                                                                                                                                                              ^
forest.cpp: In function 'cpp11::writable::doubles predict_forest_raw_cpp(cpp11::external_pointer<StochTree::ForestContainer>, cpp11::external_pointer<StochTree::ForestDataset>)':
forest.cpp:561:26: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
  561 |     for (size_t i = 0; i < n; i++) {
      |                        ~~^~~
forest.cpp: At global scope:
forest.cpp:574:213: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  574 | cpp11::writable::doubles_matrix<> predict_forest_raw_single_forest_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples, cpp11::external_pointer<StochTree::ForestDataset> dataset, int forest_num) {
      |                                                                                                                                                                                                                     ^
forest.cpp: In function 'cpp11::writable::doubles_matrix<> predict_forest_raw_single_forest_cpp(cpp11::external_pointer<StochTree::ForestContainer>, cpp11::external_pointer<StochTree::ForestDataset>, int)':
forest.cpp:582:26: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
  582 |     for (size_t i = 0; i < n; i++) {
      |                        ~~^~~
forest.cpp: At global scope:
forest.cpp:592:225: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  592 | cpp11::writable::doubles_matrix<> predict_forest_raw_single_tree_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples, cpp11::external_pointer<StochTree::ForestDataset> dataset, int forest_num, int tree_num) {
      |                                                                                                                                                                                                                                 ^
forest.cpp: In function 'cpp11::writable::doubles_matrix<> predict_forest_raw_single_tree_cpp(cpp11::external_pointer<StochTree::ForestContainer>, cpp11::external_pointer<StochTree::ForestDataset>, int, int)':
forest.cpp:600:26: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
  600 |     for (size_t i = 0; i < n; i++) {
      |                        ~~^~~
forest.cpp: At global scope:
forest.cpp:609:173: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  609 | cpp11::writable::doubles predict_active_forest_cpp(cpp11::external_pointer<StochTree::TreeEnsemble> active_forest, cpp11::external_pointer<StochTree::ForestDataset> dataset) {
      |                                                                                                                                                                             ^
forest.cpp:617:177: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  617 | cpp11::writable::doubles predict_raw_active_forest_cpp(cpp11::external_pointer<StochTree::TreeEnsemble> active_forest, cpp11::external_pointer<StochTree::ForestDataset> dataset) {
      |                                                                                                                                                                                 ^
forest.cpp: In function 'cpp11::writable::doubles predict_raw_active_forest_cpp(cpp11::external_pointer<StochTree::TreeEnsemble>, cpp11::external_pointer<StochTree::ForestDataset>)':
forest.cpp:624:26: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
  624 |     for (size_t i = 0; i < n; i++) {
      |                        ~~^~~
forest.cpp: At global scope:
forest.cpp:635:100: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  635 | int leaf_dimension_active_forest_cpp(cpp11::external_pointer<StochTree::TreeEnsemble> active_forest) {
      |                                                                                                    ^
forest.cpp:640:106: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  640 | double average_max_depth_active_forest_cpp(cpp11::external_pointer<StochTree::TreeEnsemble> active_forest) {
      |                                                                                                          ^
forest.cpp:645:95: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  645 | int num_trees_active_forest_cpp(cpp11::external_pointer<StochTree::TreeEnsemble> active_forest) {
      |                                                                                               ^
forest.cpp:650:123: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  650 | int ensemble_tree_max_depth_active_forest_cpp(cpp11::external_pointer<StochTree::TreeEnsemble> active_forest, int tree_num) {
      |                                                                                                                           ^
forest.cpp:655:102: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  655 | int is_leaf_constant_active_forest_cpp(cpp11::external_pointer<StochTree::TreeEnsemble> active_forest) {
      |                                                                                                      ^
forest.cpp:660:102: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  660 | int is_exponentiated_active_forest_cpp(cpp11::external_pointer<StochTree::TreeEnsemble> active_forest) {
      |                                                                                                      ^
forest.cpp:665:96: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  665 | bool all_roots_active_forest_cpp(cpp11::external_pointer<StochTree::TreeEnsemble> active_forest) {
      |                                                                                                ^
forest.cpp:670:120: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  670 | void set_leaf_value_active_forest_cpp(cpp11::external_pointer<StochTree::TreeEnsemble> active_forest, double leaf_value) {
      |                                                                                                                        ^
forest.cpp:675:130: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  675 | void set_leaf_vector_active_forest_cpp(cpp11::external_pointer<StochTree::TreeEnsemble> active_forest, cpp11::doubles leaf_vector) {
      |                                                                                                                                  ^
forest.cpp:681:233: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  681 | void add_numeric_split_tree_value_active_forest_cpp(cpp11::external_pointer<StochTree::TreeEnsemble> active_forest, int tree_num, int leaf_num, int feature_num, double split_threshold, double left_leaf_value, double right_leaf_value) {
      |                                                                                                                                                                                                                                         ^
forest.cpp:693:252: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  693 | void add_numeric_split_tree_vector_active_forest_cpp(cpp11::external_pointer<StochTree::TreeEnsemble> active_forest, int tree_num, int leaf_num, int feature_num, double split_threshold, cpp11::doubles left_leaf_vector, cpp11::doubles right_leaf_vector) {
      |                                                                                                                                                                                                                                                            ^
forest.cpp:710:137: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  710 | cpp11::writable::integers get_tree_leaves_active_forest_cpp(cpp11::external_pointer<StochTree::TreeEnsemble> active_forest, int tree_num) {
      |                                                                                                                                         ^
forest.cpp:718:161: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  718 | cpp11::writable::integers get_tree_split_counts_active_forest_cpp(cpp11::external_pointer<StochTree::TreeEnsemble> active_forest, int tree_num, int num_features) {
      |                                                                                                                                                                 ^
forest.cpp: In function 'cpp11::writable::integers get_tree_split_counts_active_forest_cpp(cpp11::external_pointer<StochTree::TreeEnsemble>, int, int)':
forest.cpp:723:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  723 |     for (int i = 0; i < split_nodes.size(); i++) {
      |                     ~~^~~~~~~~~~~~~~~~~~~~
forest.cpp: At global scope:
forest.cpp:732:150: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  732 | cpp11::writable::integers get_overall_split_counts_active_forest_cpp(cpp11::external_pointer<StochTree::TreeEnsemble> active_forest, int num_features) {
      |                                                                                                                                                      ^
forest.cpp: In function 'cpp11::writable::integers get_overall_split_counts_active_forest_cpp(cpp11::external_pointer<StochTree::TreeEnsemble>, int)':
forest.cpp:739:27: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  739 |         for (int j = 0; j < split_nodes.size(); j++) {
      |                         ~~^~~~~~~~~~~~~~~~~~~~
forest.cpp: At global scope:
forest.cpp:748:156: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  748 | cpp11::writable::integers get_granular_split_count_array_active_forest_cpp(cpp11::external_pointer<StochTree::TreeEnsemble> active_forest, int num_features) {
      |                                                                                                                                                            ^
forest.cpp: In function 'cpp11::writable::integers get_granular_split_count_array_active_forest_cpp(cpp11::external_pointer<StochTree::TreeEnsemble>, int)':
forest.cpp:755:27: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  755 |         for (int j = 0; j < split_nodes.size(); j++) {
      |                         ~~^~~~~~~~~~~~~~~~~~~~
forest.cpp: At global scope:
forest.cpp:768:94: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  768 |                                                cpp11::doubles init_values, int leaf_model_int){
      |                                                                                              ^
forest.cpp:824:69: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  824 |                                        bool requires_basis, bool add) {
      |                                                                     ^
forest.cpp:838:104: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  838 |                                               cpp11::external_pointer<StochTree::ForestTracker> tracker) {
      |                                                                                                        ^
forest.cpp:846:44: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  846 |                              int forest_num) {
      |                                            ^
forest.cpp:859:47: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  859 |                             bool is_mean_model) {
      |                                               ^
forest.cpp:865:97: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  865 | void root_reset_active_forest_cpp(cpp11::external_pointer<StochTree::TreeEnsemble> active_forest) {
      |                                                                                                 ^
In file included from ../src/include/stochtree/container.h:9,
                 from stochtree_types.h:1,
                 from kernel.cpp:2:
../src/include/stochtree/data.h: In function 'void StochTree::ExtractMultipleFeaturesFromMemory(std::vector<std::__cxx11::basic_string<char> >*, const Parser*, std::vector<int>&, Eigen::MatrixXd&, data_size_t)':
../src/include/stochtree/data.h:40:7: warning: unused variable 'feature_counter' [-Wunused-variable]
   40 |   int feature_counter;
      |       ^~~~~~~~~~~~~~~
../src/include/stochtree/data.h: In function 'void StochTree::ExtractSingleFeatureFromMemory(std::vector<std::__cxx11::basic_string<char> >*, const Parser*, int32_t, Eigen::VectorXd&, data_size_t)':
../src/include/stochtree/data.h:81:8: warning: unused variable 'column_matched' [-Wunused-variable]
   81 |   bool column_matched;
      |        ^~~~~~~~~~~~~~
In file included from ../src/include/stochtree/container.h:9,
                 from R_data.cpp:2:
../src/include/stochtree/data.h: In function 'void StochTree::ExtractMultipleFeaturesFromMemory(std::vector<std::__cxx11::basic_string<char> >*, const Parser*, std::vector<int>&, Eigen::MatrixXd&, data_size_t)':
../src/include/stochtree/data.h:40:7: warning: unused variable 'feature_counter' [-Wunused-variable]
   40 |   int feature_counter;
      |       ^~~~~~~~~~~~~~~
../src/include/stochtree/data.h: In function 'void StochTree::ExtractSingleFeatureFromMemory(std::vector<std::__cxx11::basic_string<char> >*, const Parser*, int32_t, Eigen::VectorXd&, data_size_t)':
../src/include/stochtree/data.h:81:8: warning: unused variable 'column_matched' [-Wunused-variable]
   81 |   bool column_matched;
      |        ^~~~~~~~~~~~~~
In file included from ../src/include/stochtree/common.h:8,
                 from ../src/include/stochtree/io.h:20,
                 from ../src/include/stochtree/data.h:9:
../src/include/stochtree/tree.h: In member function 'void StochTree::Tree::CollapseToLeaf(int32_t, std::vector<double>)':
../src/include/stochtree/log.h:46:34: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<double>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/tree.h:193:5: note: in expansion of macro 'CHECK_EQ'
  193 |     CHECK_EQ(output_dimension_, value_vector.size());
      |     ^~~~~~~~
In file included from ../src/include/stochtree/common.h:8,
                 from ../src/include/stochtree/io.h:20,
                 from ../src/include/stochtree/data.h:9:
../src/include/stochtree/tree.h: In member function 'void StochTree::Tree::CollapseToLeaf(int32_t, std::vector<double>)':
../src/include/stochtree/log.h:46:34: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<double>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/tree.h:193:5: note: in expansion of macro 'CHECK_EQ'
  193 |     CHECK_EQ(output_dimension_, value_vector.size());
      |     ^~~~~~~~
In file included from ../src/include/stochtree/container.h:10:
../src/include/stochtree/ensemble.h: In member function 'void StochTree::TreeEnsemble::PredictInplace(Eigen::MatrixXd&, Eigen::MatrixXd&, std::vector<double>&, int, int, StochTree::data_size_t)':
../src/include/stochtree/ensemble.h:202:23: warning: comparison of integer expressions of different signedness: 'std::vector<double>::size_type' {aka 'long unsigned int'} and 'StochTree::data_size_t' {aka 'int'} [-Wsign-compare]
  202 |     if (output.size() < total_output_size + offset) {
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/ensemble.h:207:37: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
  207 |       for (size_t j = tree_begin; j < tree_end; j++) {
      |                                   ~~^~~~~~~~~~
../src/include/stochtree/ensemble.h: In member function 'void StochTree::TreeEnsemble::PredictInplace(Eigen::MatrixXd&, std::vector<double>&, int, int, StochTree::data_size_t)':
../src/include/stochtree/ensemble.h:227:23: warning: comparison of integer expressions of different signedness: 'std::vector<double>::size_type' {aka 'long unsigned int'} and 'StochTree::data_size_t' {aka 'int'} [-Wsign-compare]
  227 |     if (output.size() < total_output_size + offset) {
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/ensemble.h:232:37: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
  232 |       for (size_t j = tree_begin; j < tree_end; j++) {
      |                                   ~~^~~~~~~~~~
../src/include/stochtree/ensemble.h: In member function 'void StochTree::TreeEnsemble::PredictRawInplace(StochTree::ForestDataset&, std::vector<double>&, int, int, StochTree::data_size_t)':
../src/include/stochtree/ensemble.h:253:23: warning: comparison of integer expressions of different signedness: 'std::vector<double>::size_type' {aka 'long unsigned int'} and 'StochTree::data_size_t' {aka 'int'} [-Wsign-compare]
  253 |     if (output.size() < total_output_size + offset) {
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/ensemble.h:259:39: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
  259 |         for (size_t j = tree_begin; j < tree_end; j++) {
      |                                     ~~^~~~~~~~~~
../src/include/stochtree/ensemble.h: In member function 'void StochTree::TreeEnsemble::SetLeafVector(std::vector<double>&)':
../src/include/stochtree/log.h:46:34: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<double>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/ensemble.h:333:5: note: in expansion of macro 'CHECK_EQ'
  333 |     CHECK_EQ(output_dimension_, leaf_vector.size());
      |     ^~~~~~~~
../src/include/stochtree/ensemble.h: In member function 'void StochTree::TreeEnsemble::PredictLeafIndicesInplace(Eigen::Map<Eigen::Matrix<double, -1, -1>, 0, Eigen::Stride<0, 0> >&, std::vector<int>&, int, StochTree::data_size_t)':
../src/include/stochtree/log.h:54:34: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   54 | #define CHECK_GE(a, b) CHECK((a) >= (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/ensemble.h:393:5: note: in expansion of macro 'CHECK_GE'
  393 |     CHECK_GE(output.size(), num_trees*n);
      |     ^~~~~~~~
In file included from ../src/include/stochtree/container.h:10:
../src/include/stochtree/ensemble.h: In member function 'void StochTree::TreeEnsemble::PredictInplace(Eigen::MatrixXd&, Eigen::MatrixXd&, std::vector<double>&, int, int, StochTree::data_size_t)':
../src/include/stochtree/ensemble.h:202:23: warning: comparison of integer expressions of different signedness: 'std::vector<double>::size_type' {aka 'long unsigned int'} and 'StochTree::data_size_t' {aka 'int'} [-Wsign-compare]
  202 |     if (output.size() < total_output_size + offset) {
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/ensemble.h:207:37: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
  207 |       for (size_t j = tree_begin; j < tree_end; j++) {
      |                                   ~~^~~~~~~~~~
../src/include/stochtree/ensemble.h: In member function 'void StochTree::TreeEnsemble::PredictInplace(Eigen::MatrixXd&, std::vector<double>&, int, int, StochTree::data_size_t)':
../src/include/stochtree/ensemble.h:227:23: warning: comparison of integer expressions of different signedness: 'std::vector<double>::size_type' {aka 'long unsigned int'} and 'StochTree::data_size_t' {aka 'int'} [-Wsign-compare]
  227 |     if (output.size() < total_output_size + offset) {
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/ensemble.h:232:37: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
  232 |       for (size_t j = tree_begin; j < tree_end; j++) {
      |                                   ~~^~~~~~~~~~
../src/include/stochtree/ensemble.h: In member function 'void StochTree::TreeEnsemble::PredictRawInplace(StochTree::ForestDataset&, std::vector<double>&, int, int, StochTree::data_size_t)':
../src/include/stochtree/ensemble.h:253:23: warning: comparison of integer expressions of different signedness: 'std::vector<double>::size_type' {aka 'long unsigned int'} and 'StochTree::data_size_t' {aka 'int'} [-Wsign-compare]
  253 |     if (output.size() < total_output_size + offset) {
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/ensemble.h:259:39: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
  259 |         for (size_t j = tree_begin; j < tree_end; j++) {
      |                                     ~~^~~~~~~~~~
../src/include/stochtree/ensemble.h: In member function 'void StochTree::TreeEnsemble::SetLeafVector(std::vector<double>&)':
../src/include/stochtree/log.h:46:34: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<double>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/ensemble.h:333:5: note: in expansion of macro 'CHECK_EQ'
  333 |     CHECK_EQ(output_dimension_, leaf_vector.size());
      |     ^~~~~~~~
../src/include/stochtree/ensemble.h: In member function 'void StochTree::TreeEnsemble::PredictLeafIndicesInplace(Eigen::Map<Eigen::Matrix<double, -1, -1>, 0, Eigen::Stride<0, 0> >&, std::vector<int>&, int, StochTree::data_size_t)':
../src/include/stochtree/log.h:54:34: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   54 | #define CHECK_GE(a, b) CHECK((a) >= (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/ensemble.h:393:5: note: in expansion of macro 'CHECK_GE'
  393 |     CHECK_GE(output.size(), num_trees*n);
      |     ^~~~~~~~
../src/include/stochtree/ensemble.h: In member function 'void StochTree::TreeEnsemble::PredictLeafIndicesInplace(Eigen::MatrixXd&, std::vector<int>&, int, StochTree::data_size_t)':
../src/include/stochtree/log.h:54:34: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   54 | #define CHECK_GE(a, b) CHECK((a) >= (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/ensemble.h:456:5: note: in expansion of macro 'CHECK_GE'
  456 |     CHECK_GE(output.size(), num_trees*n);
      |     ^~~~~~~~
../src/include/stochtree/ensemble.h: In member function 'json StochTree::TreeEnsemble::to_json()':
../src/include/stochtree/ensemble.h:489:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::unique_ptr<StochTree::Tree> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  489 |     for (int i = 0; i < trees_.size(); i++) {
      |                     ~~^~~~~~~~~~~~~~~
../src/include/stochtree/ensemble.h: In member function 'void StochTree::TreeEnsemble::PredictLeafIndicesInplace(Eigen::MatrixXd&, std::vector<int>&, int, StochTree::data_size_t)':
../src/include/stochtree/log.h:54:34: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   54 | #define CHECK_GE(a, b) CHECK((a) >= (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/ensemble.h:456:5: note: in expansion of macro 'CHECK_GE'
  456 |     CHECK_GE(output.size(), num_trees*n);
      |     ^~~~~~~~
../src/include/stochtree/ensemble.h: In member function 'json StochTree::TreeEnsemble::to_json()':
../src/include/stochtree/ensemble.h:489:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::unique_ptr<StochTree::Tree> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  489 |     for (int i = 0; i < trees_.size(); i++) {
      |                     ~~^~~~~~~~~~~~~~~
In file included from ../src/include/stochtree/cutpoint_candidates.h:43,
                 from ../src/include/stochtree/leaf_model.h:9,
                 from stochtree_types.h:3:
../src/include/stochtree/partition_tracker.h: In member function 'void StochTree::UnsortedNodeSampleTracker::UpdateObservationMapping(StochTree::Tree*, int, StochTree::SampleNodeMapper*)':
../src/include/stochtree/partition_tracker.h:424:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  424 |     for (int i = 0; i < leaves.size(); i++) {
      |                     ~~^~~~~~~~~~~~~~~
../src/include/stochtree/partition_tracker.h: In member function 'void StochTree::FeaturePresortRoot::ArgsortRoot(Eigen::MatrixXd&)':
../src/include/stochtree/partition_tracker.h:494:38: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'StochTree::data_size_t' {aka 'int'} [-Wsign-compare]
  494 |     if (feature_sort_indices_.size() != num_obs){
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~
In file included from R_data.cpp:4:
../src/include/stochtree/partition_tracker.h: In member function 'void StochTree::UnsortedNodeSampleTracker::UpdateObservationMapping(StochTree::Tree*, int, StochTree::SampleNodeMapper*)':
../src/include/stochtree/partition_tracker.h:424:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  424 |     for (int i = 0; i < leaves.size(); i++) {
      |                     ~~^~~~~~~~~~~~~~~
../src/include/stochtree/partition_tracker.h: In member function 'void StochTree::FeaturePresortRoot::ArgsortRoot(Eigen::MatrixXd&)':
../src/include/stochtree/partition_tracker.h:494:38: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'StochTree::data_size_t' {aka 'int'} [-Wsign-compare]
  494 |     if (feature_sort_indices_.size() != num_obs){
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~
In file included from R_data.cpp:5:
../src/include/stochtree/tree_sampler.h: In function 'bool StochTree::NodesNonConstantAfterSplit(ForestDataset&, ForestTracker&, TreeSplit&, int, int, int)':
../src/include/stochtree/tree_sampler.h:82:15: warning: unused variable 'idx' [-Wunused-variable]
   82 |   data_size_t idx;
      |               ^~~
../src/include/stochtree/tree_sampler.h: In function 'bool StochTree::NodeNonConstant(ForestDataset&, ForestTracker&, int, int)':
../src/include/stochtree/tree_sampler.h:125:15: warning: unused variable 'idx' [-Wunused-variable]
  125 |   data_size_t idx;
      |               ^~~
R_data.cpp: At global scope:
R_data.cpp:10:77: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
   10 | cpp11::external_pointer<StochTree::ForestDataset> create_forest_dataset_cpp() {
      |                                                                             ^
R_data.cpp:19:83: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
   19 | int dataset_num_rows_cpp(cpp11::external_pointer<StochTree::ForestDataset> dataset) {
      |                                                                                   ^
R_data.cpp:24:89: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
   24 | int dataset_num_covariates_cpp(cpp11::external_pointer<StochTree::ForestDataset> dataset) {
      |                                                                                         ^
R_data.cpp:29:84: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
   29 | int dataset_num_basis_cpp(cpp11::external_pointer<StochTree::ForestDataset> dataset) {
      |                                                                                    ^
R_data.cpp:34:85: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
   34 | bool dataset_has_basis_cpp(cpp11::external_pointer<StochTree::ForestDataset> dataset) {
      |                                                                                     ^
R_data.cpp:39:96: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
   39 | bool dataset_has_variance_weights_cpp(cpp11::external_pointer<StochTree::ForestDataset> dataset) {
      |                                                                                                ^
R_data.cpp:44:137: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
   44 | void forest_dataset_add_covariates_cpp(cpp11::external_pointer<StochTree::ForestDataset> dataset_ptr, cpp11::doubles_matrix<> covariates) {
      |                                                                                                                                         ^
R_data.cpp:59:127: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
   59 | void forest_dataset_add_basis_cpp(cpp11::external_pointer<StochTree::ForestDataset> dataset_ptr, cpp11::doubles_matrix<> basis) {
      |                                                                                                                               ^
R_data.cpp:74:130: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
   74 | void forest_dataset_update_basis_cpp(cpp11::external_pointer<StochTree::ForestDataset> dataset_ptr, cpp11::doubles_matrix<> basis) {
      |                                                                                                                                  ^
R_data.cpp:89:122: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
   89 | void forest_dataset_add_weights_cpp(cpp11::external_pointer<StochTree::ForestDataset> dataset_ptr, cpp11::doubles weights) {
      |                                                                                                                          ^
R_data.cpp:100:97: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  100 | cpp11::external_pointer<StochTree::ColumnVector> create_column_vector_cpp(cpp11::doubles outcome) {
      |                                                                                                 ^
R_data.cpp:116:117: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  116 | void add_to_column_vector_cpp(cpp11::external_pointer<StochTree::ColumnVector> outcome, cpp11::doubles update_vector) {
      |                                                                                                                     ^
R_data.cpp:129:124: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  129 | void subtract_from_column_vector_cpp(cpp11::external_pointer<StochTree::ColumnVector> outcome, cpp11::doubles update_vector) {
      |                                                                                                                            ^
R_data.cpp:142:117: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  142 | void overwrite_column_vector_cpp(cpp11::external_pointer<StochTree::ColumnVector> outcome, cpp11::doubles new_vector) {
      |                                                                                                                     ^
R_data.cpp:156:97: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  156 |                                        cpp11::external_pointer<StochTree::ColumnVector> residual) {
      |                                                                                                 ^
R_data.cpp:161:102: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  161 | cpp11::writable::doubles get_residual_cpp(cpp11::external_pointer<StochTree::ColumnVector> vector_ptr) {
      |                                                                                                      ^
R_data.cpp:176:81: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  176 | cpp11::external_pointer<StochTree::RandomEffectsDataset> create_rfx_dataset_cpp() {
      |                                                                                 ^
R_data.cpp:185:94: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  185 | int rfx_dataset_num_rows_cpp(cpp11::external_pointer<StochTree::RandomEffectsDataset> dataset) {
      |                                                                                              ^
R_data.cpp:190:103: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  190 | bool rfx_dataset_has_group_labels_cpp(cpp11::external_pointer<StochTree::RandomEffectsDataset> dataset) {
      |                                                                                                       ^
R_data.cpp:195:96: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  195 | bool rfx_dataset_has_basis_cpp(cpp11::external_pointer<StochTree::RandomEffectsDataset> dataset) {
      |                                                                                                ^
R_data.cpp:200:107: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  200 | bool rfx_dataset_has_variance_weights_cpp(cpp11::external_pointer<StochTree::RandomEffectsDataset> dataset) {
      |                                                                                                           ^
R_data.cpp:205:137: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  205 | void rfx_dataset_add_group_labels_cpp(cpp11::external_pointer<StochTree::RandomEffectsDataset> dataset_ptr, cpp11::integers group_labels) {
      |                                                                                                                                         ^
R_data.cpp:212:131: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  212 | void rfx_dataset_add_basis_cpp(cpp11::external_pointer<StochTree::RandomEffectsDataset> dataset_ptr, cpp11::doubles_matrix<> basis) {
      |                                                                                                                                   ^
R_data.cpp:227:126: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  227 | void rfx_dataset_add_weights_cpp(cpp11::external_pointer<StochTree::RandomEffectsDataset> dataset_ptr, cpp11::doubles weights) {
      |                                                                                                                              ^
../src/include/stochtree/random_effects.h: In member function 'void StochTree::MultivariateRegressionRandomEffectsModel::PredictInplace(StochTree::RandomEffectsDataset&, StochTree::RandomEffectsTracker&, std::vector<double>&)':
../src/include/stochtree/log.h:46:34: warning: comparison of integer expressions of different signedness: 'Eigen::Index' {aka 'long int'} and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/random_effects.h:185:5: note: in expansion of macro 'CHECK_EQ'
  185 |     CHECK_EQ(X.rows(), group_labels.size());
      |     ^~~~~~~~
../src/include/stochtree/log.h:46:34: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<double>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/random_effects.h:187:5: note: in expansion of macro 'CHECK_EQ'
  187 |     CHECK_EQ(n, output.size());
      |     ^~~~~~~~
../src/include/stochtree/random_effects.h: In member function 'void StochTree::MultivariateRegressionRandomEffectsModel::SubtractNewPredictionFromResidual(StochTree::RandomEffectsDataset&, StochTree::RandomEffectsTracker&, StochTree::ColumnVector&)':
../src/include/stochtree/log.h:46:34: warning: comparison of integer expressions of different signedness: 'Eigen::Index' {aka 'long int'} and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/random_effects.h:211:5: note: in expansion of macro 'CHECK_EQ'
  211 |     CHECK_EQ(X.rows(), group_labels.size());
      |     ^~~~~~~~
In file included from stochtree_types.h:7:
../src/include/stochtree/tree_sampler.h: In function 'bool StochTree::NodesNonConstantAfterSplit(ForestDataset&, ForestTracker&, TreeSplit&, int, int, int)':
../src/include/stochtree/tree_sampler.h:82:15: warning: unused variable 'idx' [-Wunused-variable]
   82 |   data_size_t idx;
      |               ^~~
../src/include/stochtree/tree_sampler.h: In function 'bool StochTree::NodeNonConstant(ForestDataset&, ForestTracker&, int, int)':
../src/include/stochtree/tree_sampler.h:125:15: warning: unused variable 'idx' [-Wunused-variable]
  125 |   data_size_t idx;
      |               ^~~
kernel.cpp: At global scope:
kernel.cpp:13:129: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
   13 | int forest_container_get_max_leaf_index_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_container, int forest_num) {
      |                                                                                                                                 ^
kernel.cpp:21:1: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
   21 | ) {
      | ^
g++-14 -std=gnu++17 -I"/data/gannet/ripley/R/R-devel/include" -DNDEBUG -I../src/include -DSTOCHTREE_R_BUILD -I'/data/gannet/ripley/R/test-dev/cpp11/include' -I'/data/gannet/ripley/R/test-dev/BH/include' -I/usr/local/include    -fpic  -g -O2 -Wall -pedantic -mtune=native -Wno-ignored-attributes -Wno-parentheses -Wp,-D_FORTIFY_SOURCE=3 -fexceptions -fstack-protector-strong -fstack-clash-protection -fcf-protection   -c R_random_effects.cpp -o R_random_effects.o
g++-14 -std=gnu++17 -I"/data/gannet/ripley/R/R-devel/include" -DNDEBUG -I../src/include -DSTOCHTREE_R_BUILD -I'/data/gannet/ripley/R/test-dev/cpp11/include' -I'/data/gannet/ripley/R/test-dev/BH/include' -I/usr/local/include    -fpic  -g -O2 -Wall -pedantic -mtune=native -Wno-ignored-attributes -Wno-parentheses -Wp,-D_FORTIFY_SOURCE=3 -fexceptions -fstack-protector-strong -fstack-clash-protection -fcf-protection   -c sampler.cpp -o sampler.o
g++-14 -std=gnu++17 -I"/data/gannet/ripley/R/R-devel/include" -DNDEBUG -I../src/include -DSTOCHTREE_R_BUILD -I'/data/gannet/ripley/R/test-dev/cpp11/include' -I'/data/gannet/ripley/R/test-dev/BH/include' -I/usr/local/include    -fpic  -g -O2 -Wall -pedantic -mtune=native -Wno-ignored-attributes -Wno-parentheses -Wp,-D_FORTIFY_SOURCE=3 -fexceptions -fstack-protector-strong -fstack-clash-protection -fcf-protection   -c serialization.cpp -o serialization.o
g++-14 -std=gnu++17 -I"/data/gannet/ripley/R/R-devel/include" -DNDEBUG -I../src/include -DSTOCHTREE_R_BUILD -I'/data/gannet/ripley/R/test-dev/cpp11/include' -I'/data/gannet/ripley/R/test-dev/BH/include' -I/usr/local/include    -fpic  -g -O2 -Wall -pedantic -mtune=native -Wno-ignored-attributes -Wno-parentheses -Wp,-D_FORTIFY_SOURCE=3 -fexceptions -fstack-protector-strong -fstack-clash-protection -fcf-protection   -c cpp11.cpp -o cpp11.o
In file included from ../src/include/stochtree/container.h:9,
                 from stochtree_types.h:1,
                 from R_random_effects.cpp:2:
../src/include/stochtree/data.h: In function 'void StochTree::ExtractMultipleFeaturesFromMemory(std::vector<std::__cxx11::basic_string<char> >*, const Parser*, std::vector<int>&, Eigen::MatrixXd&, data_size_t)':
../src/include/stochtree/data.h:40:7: warning: unused variable 'feature_counter' [-Wunused-variable]
   40 |   int feature_counter;
      |       ^~~~~~~~~~~~~~~
../src/include/stochtree/data.h: In function 'void StochTree::ExtractSingleFeatureFromMemory(std::vector<std::__cxx11::basic_string<char> >*, const Parser*, int32_t, Eigen::VectorXd&, data_size_t)':
../src/include/stochtree/data.h:81:8: warning: unused variable 'column_matched' [-Wunused-variable]
   81 |   bool column_matched;
      |        ^~~~~~~~~~~~~~
In file included from ../src/include/stochtree/container.h:9,
                 from stochtree_types.h:1,
                 from sampler.cpp:2:
../src/include/stochtree/data.h: In function 'void StochTree::ExtractMultipleFeaturesFromMemory(std::vector<std::__cxx11::basic_string<char> >*, const Parser*, std::vector<int>&, Eigen::MatrixXd&, data_size_t)':
../src/include/stochtree/data.h:40:7: warning: unused variable 'feature_counter' [-Wunused-variable]
   40 |   int feature_counter;
      |       ^~~~~~~~~~~~~~~
In file included from ../src/include/stochtree/common.h:8,
                 from ../src/include/stochtree/io.h:20,
                 from ../src/include/stochtree/data.h:9:
../src/include/stochtree/tree.h: In member function 'void StochTree::Tree::CollapseToLeaf(int32_t, std::vector<double>)':
../src/include/stochtree/log.h:46:34: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<double>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/tree.h:193:5: note: in expansion of macro 'CHECK_EQ'
  193 |     CHECK_EQ(output_dimension_, value_vector.size());
      |     ^~~~~~~~
../src/include/stochtree/data.h: In function 'void StochTree::ExtractSingleFeatureFromMemory(std::vector<std::__cxx11::basic_string<char> >*, const Parser*, int32_t, Eigen::VectorXd&, data_size_t)':
../src/include/stochtree/data.h:81:8: warning: unused variable 'column_matched' [-Wunused-variable]
   81 |   bool column_matched;
      |        ^~~~~~~~~~~~~~
In file included from ../src/include/stochtree/container.h:10:
../src/include/stochtree/ensemble.h: In member function 'void StochTree::TreeEnsemble::PredictInplace(Eigen::MatrixXd&, Eigen::MatrixXd&, std::vector<double>&, int, int, StochTree::data_size_t)':
../src/include/stochtree/ensemble.h:202:23: warning: comparison of integer expressions of different signedness: 'std::vector<double>::size_type' {aka 'long unsigned int'} and 'StochTree::data_size_t' {aka 'int'} [-Wsign-compare]
  202 |     if (output.size() < total_output_size + offset) {
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/ensemble.h:207:37: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
  207 |       for (size_t j = tree_begin; j < tree_end; j++) {
      |                                   ~~^~~~~~~~~~
../src/include/stochtree/ensemble.h: In member function 'void StochTree::TreeEnsemble::PredictInplace(Eigen::MatrixXd&, std::vector<double>&, int, int, StochTree::data_size_t)':
../src/include/stochtree/ensemble.h:227:23: warning: comparison of integer expressions of different signedness: 'std::vector<double>::size_type' {aka 'long unsigned int'} and 'StochTree::data_size_t' {aka 'int'} [-Wsign-compare]
  227 |     if (output.size() < total_output_size + offset) {
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/ensemble.h:232:37: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
  232 |       for (size_t j = tree_begin; j < tree_end; j++) {
      |                                   ~~^~~~~~~~~~
../src/include/stochtree/ensemble.h: In member function 'void StochTree::TreeEnsemble::PredictRawInplace(StochTree::ForestDataset&, std::vector<double>&, int, int, StochTree::data_size_t)':
../src/include/stochtree/ensemble.h:253:23: warning: comparison of integer expressions of different signedness: 'std::vector<double>::size_type' {aka 'long unsigned int'} and 'StochTree::data_size_t' {aka 'int'} [-Wsign-compare]
  253 |     if (output.size() < total_output_size + offset) {
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/ensemble.h:259:39: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
  259 |         for (size_t j = tree_begin; j < tree_end; j++) {
      |                                     ~~^~~~~~~~~~
../src/include/stochtree/ensemble.h: In member function 'void StochTree::TreeEnsemble::SetLeafVector(std::vector<double>&)':
../src/include/stochtree/log.h:46:34: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<double>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/ensemble.h:333:5: note: in expansion of macro 'CHECK_EQ'
  333 |     CHECK_EQ(output_dimension_, leaf_vector.size());
      |     ^~~~~~~~
../src/include/stochtree/ensemble.h: In member function 'void StochTree::TreeEnsemble::PredictLeafIndicesInplace(Eigen::Map<Eigen::Matrix<double, -1, -1>, 0, Eigen::Stride<0, 0> >&, std::vector<int>&, int, StochTree::data_size_t)':
../src/include/stochtree/log.h:54:34: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   54 | #define CHECK_GE(a, b) CHECK((a) >= (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/ensemble.h:393:5: note: in expansion of macro 'CHECK_GE'
  393 |     CHECK_GE(output.size(), num_trees*n);
      |     ^~~~~~~~
../src/include/stochtree/ensemble.h: In member function 'void StochTree::TreeEnsemble::PredictLeafIndicesInplace(Eigen::MatrixXd&, std::vector<int>&, int, StochTree::data_size_t)':
../src/include/stochtree/log.h:54:34: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   54 | #define CHECK_GE(a, b) CHECK((a) >= (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/ensemble.h:456:5: note: in expansion of macro 'CHECK_GE'
  456 |     CHECK_GE(output.size(), num_trees*n);
      |     ^~~~~~~~
../src/include/stochtree/ensemble.h: In member function 'json StochTree::TreeEnsemble::to_json()':
../src/include/stochtree/ensemble.h:489:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::unique_ptr<StochTree::Tree> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  489 |     for (int i = 0; i < trees_.size(); i++) {
      |                     ~~^~~~~~~~~~~~~~~
In file included from ../src/include/stochtree/cutpoint_candidates.h:43,
                 from ../src/include/stochtree/leaf_model.h:9,
                 from stochtree_types.h:3:
../src/include/stochtree/partition_tracker.h: In member function 'void StochTree::UnsortedNodeSampleTracker::UpdateObservationMapping(StochTree::Tree*, int, StochTree::SampleNodeMapper*)':
../src/include/stochtree/partition_tracker.h:424:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  424 |     for (int i = 0; i < leaves.size(); i++) {
      |                     ~~^~~~~~~~~~~~~~~
../src/include/stochtree/partition_tracker.h: In member function 'void StochTree::FeaturePresortRoot::ArgsortRoot(Eigen::MatrixXd&)':
../src/include/stochtree/partition_tracker.h:494:38: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'StochTree::data_size_t' {aka 'int'} [-Wsign-compare]
  494 |     if (feature_sort_indices_.size() != num_obs){
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~
In file included from ../src/include/stochtree/common.h:8,
                 from ../src/include/stochtree/io.h:20,
                 from ../src/include/stochtree/data.h:9:
../src/include/stochtree/tree.h: In member function 'void StochTree::Tree::CollapseToLeaf(int32_t, std::vector<double>)':
../src/include/stochtree/log.h:46:34: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<double>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/tree.h:193:5: note: in expansion of macro 'CHECK_EQ'
  193 |     CHECK_EQ(output_dimension_, value_vector.size());
      |     ^~~~~~~~
In file included from ../src/include/stochtree/container.h:10:
../src/include/stochtree/ensemble.h: In member function 'void StochTree::TreeEnsemble::PredictInplace(Eigen::MatrixXd&, Eigen::MatrixXd&, std::vector<double>&, int, int, StochTree::data_size_t)':
../src/include/stochtree/ensemble.h:202:23: warning: comparison of integer expressions of different signedness: 'std::vector<double>::size_type' {aka 'long unsigned int'} and 'StochTree::data_size_t' {aka 'int'} [-Wsign-compare]
  202 |     if (output.size() < total_output_size + offset) {
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/ensemble.h:207:37: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
  207 |       for (size_t j = tree_begin; j < tree_end; j++) {
      |                                   ~~^~~~~~~~~~
../src/include/stochtree/ensemble.h: In member function 'void StochTree::TreeEnsemble::PredictInplace(Eigen::MatrixXd&, std::vector<double>&, int, int, StochTree::data_size_t)':
../src/include/stochtree/ensemble.h:227:23: warning: comparison of integer expressions of different signedness: 'std::vector<double>::size_type' {aka 'long unsigned int'} and 'StochTree::data_size_t' {aka 'int'} [-Wsign-compare]
  227 |     if (output.size() < total_output_size + offset) {
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/ensemble.h:232:37: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
  232 |       for (size_t j = tree_begin; j < tree_end; j++) {
      |                                   ~~^~~~~~~~~~
../src/include/stochtree/ensemble.h: In member function 'void StochTree::TreeEnsemble::PredictRawInplace(StochTree::ForestDataset&, std::vector<double>&, int, int, StochTree::data_size_t)':
../src/include/stochtree/ensemble.h:253:23: warning: comparison of integer expressions of different signedness: 'std::vector<double>::size_type' {aka 'long unsigned int'} and 'StochTree::data_size_t' {aka 'int'} [-Wsign-compare]
  253 |     if (output.size() < total_output_size + offset) {
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/ensemble.h:259:39: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
  259 |         for (size_t j = tree_begin; j < tree_end; j++) {
      |                                     ~~^~~~~~~~~~
../src/include/stochtree/ensemble.h: In member function 'void StochTree::TreeEnsemble::SetLeafVector(std::vector<double>&)':
../src/include/stochtree/log.h:46:34: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<double>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/ensemble.h:333:5: note: in expansion of macro 'CHECK_EQ'
  333 |     CHECK_EQ(output_dimension_, leaf_vector.size());
      |     ^~~~~~~~
../src/include/stochtree/ensemble.h: In member function 'void StochTree::TreeEnsemble::PredictLeafIndicesInplace(Eigen::Map<Eigen::Matrix<double, -1, -1>, 0, Eigen::Stride<0, 0> >&, std::vector<int>&, int, StochTree::data_size_t)':
../src/include/stochtree/log.h:54:34: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   54 | #define CHECK_GE(a, b) CHECK((a) >= (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/ensemble.h:393:5: note: in expansion of macro 'CHECK_GE'
  393 |     CHECK_GE(output.size(), num_trees*n);
      |     ^~~~~~~~
../src/include/stochtree/ensemble.h: In member function 'void StochTree::TreeEnsemble::PredictLeafIndicesInplace(Eigen::MatrixXd&, std::vector<int>&, int, StochTree::data_size_t)':
../src/include/stochtree/log.h:54:34: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   54 | #define CHECK_GE(a, b) CHECK((a) >= (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/ensemble.h:456:5: note: in expansion of macro 'CHECK_GE'
  456 |     CHECK_GE(output.size(), num_trees*n);
      |     ^~~~~~~~
../src/include/stochtree/ensemble.h: In member function 'json StochTree::TreeEnsemble::to_json()':
../src/include/stochtree/ensemble.h:489:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::unique_ptr<StochTree::Tree> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  489 |     for (int i = 0; i < trees_.size(); i++) {
      |                     ~~^~~~~~~~~~~~~~~
../src/include/stochtree/random_effects.h: In member function 'void StochTree::MultivariateRegressionRandomEffectsModel::PredictInplace(StochTree::RandomEffectsDataset&, StochTree::RandomEffectsTracker&, std::vector<double>&)':
../src/include/stochtree/log.h:46:34: warning: comparison of integer expressions of different signedness: 'Eigen::Index' {aka 'long int'} and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/random_effects.h:185:5: note: in expansion of macro 'CHECK_EQ'
  185 |     CHECK_EQ(X.rows(), group_labels.size());
      |     ^~~~~~~~
../src/include/stochtree/log.h:46:34: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<double>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/random_effects.h:187:5: note: in expansion of macro 'CHECK_EQ'
  187 |     CHECK_EQ(n, output.size());
      |     ^~~~~~~~
../src/include/stochtree/random_effects.h: In member function 'void StochTree::MultivariateRegressionRandomEffectsModel::SubtractNewPredictionFromResidual(StochTree::RandomEffectsDataset&, StochTree::RandomEffectsTracker&, StochTree::ColumnVector&)':
../src/include/stochtree/log.h:46:34: warning: comparison of integer expressions of different signedness: 'Eigen::Index' {aka 'long int'} and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/random_effects.h:211:5: note: in expansion of macro 'CHECK_EQ'
  211 |     CHECK_EQ(X.rows(), group_labels.size());
      |     ^~~~~~~~
In file included from stochtree_types.h:7:
../src/include/stochtree/tree_sampler.h: In function 'bool StochTree::NodesNonConstantAfterSplit(ForestDataset&, ForestTracker&, TreeSplit&, int, int, int)':
../src/include/stochtree/tree_sampler.h:82:15: warning: unused variable 'idx' [-Wunused-variable]
   82 |   data_size_t idx;
      |               ^~~
../src/include/stochtree/tree_sampler.h: In function 'bool StochTree::NodeNonConstant(ForestDataset&, ForestTracker&, int, int)':
../src/include/stochtree/tree_sampler.h:125:15: warning: unused variable 'idx' [-Wunused-variable]
  125 |   data_size_t idx;
      |               ^~~
R_random_effects.cpp: At global scope:
R_random_effects.cpp:15:112: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
   15 | cpp11::external_pointer<StochTree::RandomEffectsContainer> rfx_container_cpp(int num_components, int num_groups) {
      |                                                                                                                ^
R_random_effects.cpp:24:159: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
   24 | cpp11::external_pointer<StochTree::RandomEffectsContainer> rfx_container_from_json_cpp(cpp11::external_pointer<nlohmann::json> json_ptr, std::string rfx_label) {
      |                                                                                                                                                               ^
R_random_effects.cpp:40:151: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
   40 | cpp11::external_pointer<StochTree::LabelMapper> rfx_label_mapper_from_json_cpp(cpp11::external_pointer<nlohmann::json> json_ptr, std::string rfx_label) {
      |                                                                                                                                                       ^
R_random_effects.cpp:56:126: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
   56 | cpp11::writable::integers rfx_group_ids_from_json_cpp(cpp11::external_pointer<nlohmann::json> json_ptr, std::string rfx_label) {
      |                                                                                                                              ^
R_random_effects.cpp:73:190: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
   73 | void rfx_container_append_from_json_cpp(cpp11::external_pointer<StochTree::RandomEffectsContainer> rfx_container_ptr, cpp11::external_pointer<nlohmann::json> json_ptr, std::string rfx_label) {
      |                                                                                                                                                                                              ^
R_random_effects.cpp:82:141: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
   82 | cpp11::external_pointer<StochTree::RandomEffectsContainer> rfx_container_from_json_string_cpp(std::string json_string, std::string rfx_label) {
      |                                                                                                                                             ^
R_random_effects.cpp:101:133: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  101 | cpp11::external_pointer<StochTree::LabelMapper> rfx_label_mapper_from_json_string_cpp(std::string json_string, std::string rfx_label) {
      |                                                                                                                                     ^
R_random_effects.cpp:120:108: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  120 | cpp11::writable::integers rfx_group_ids_from_json_string_cpp(std::string json_string, std::string rfx_label) {
      |                                                                                                            ^
R_random_effects.cpp:140:172: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  140 | void rfx_container_append_from_json_string_cpp(cpp11::external_pointer<StochTree::RandomEffectsContainer> rfx_container_ptr, std::string json_string, std::string rfx_label) {
      |                                                                                                                                                                            ^
R_random_effects.cpp:152:126: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  152 | cpp11::external_pointer<StochTree::MultivariateRegressionRandomEffectsModel> rfx_model_cpp(int num_components, int num_groups) {
      |                                                                                                                              ^
R_random_effects.cpp:161:102: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  161 | cpp11::external_pointer<StochTree::RandomEffectsTracker> rfx_tracker_cpp(cpp11::integers group_labels) {
      |                                                                                                      ^
R_random_effects.cpp:173:138: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  173 | cpp11::external_pointer<StochTree::LabelMapper> rfx_label_mapper_cpp(cpp11::external_pointer<StochTree::RandomEffectsTracker> rfx_tracker) {
      |                                                                                                                                          ^
R_random_effects.cpp:184:199: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  184 |                                          cpp11::external_pointer<StochTree::RandomEffectsContainer> rfx_container, bool keep_sample, double global_variance, cpp11::external_pointer<std::mt19937> rng) {
      |                                                                                                                                                                                                       ^
R_random_effects.cpp:192:116: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  192 |                                                cpp11::external_pointer<StochTree::RandomEffectsTracker> rfx_tracker) {
      |                                                                                                                    ^
R_random_effects.cpp:200:112: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  200 |                                                    cpp11::external_pointer<StochTree::LabelMapper> label_mapper) {
      |                                                                                                                ^
R_random_effects.cpp:209:107: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  209 | int rfx_container_num_samples_cpp(cpp11::external_pointer<StochTree::RandomEffectsContainer> rfx_container) {
      |                                                                                                           ^
R_random_effects.cpp:214:110: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  214 | int rfx_container_num_components_cpp(cpp11::external_pointer<StochTree::RandomEffectsContainer> rfx_container) {
      |                                                                                                              ^
R_random_effects.cpp:219:106: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  219 | int rfx_container_num_groups_cpp(cpp11::external_pointer<StochTree::RandomEffectsContainer> rfx_container) {
      |                                                                                                          ^
R_random_effects.cpp:224:126: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  224 | void rfx_container_delete_sample_cpp(cpp11::external_pointer<StochTree::RandomEffectsContainer> rfx_container, int sample_num) {
      |                                                                                                                              ^
R_random_effects.cpp:229:163: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  229 | void rfx_model_set_working_parameter_cpp(cpp11::external_pointer<StochTree::MultivariateRegressionRandomEffectsModel> rfx_model, cpp11::doubles working_param_init) {
      |                                                                                                                                                                   ^
R_random_effects.cpp:238:170: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  238 | void rfx_model_set_group_parameters_cpp(cpp11::external_pointer<StochTree::MultivariateRegressionRandomEffectsModel> rfx_model, cpp11::doubles_matrix<> group_params_init) {
      |                                                                                                                                                                          ^
R_random_effects.cpp:249:187: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  249 | void rfx_model_set_working_parameter_covariance_cpp(cpp11::external_pointer<StochTree::MultivariateRegressionRandomEffectsModel> rfx_model, cpp11::doubles_matrix<> working_param_cov_init) {
      |                                                                                                                                                                                           ^
R_random_effects.cpp:260:183: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  260 | void rfx_model_set_group_parameter_covariance_cpp(cpp11::external_pointer<StochTree::MultivariateRegressionRandomEffectsModel> rfx_model, cpp11::doubles_matrix<> group_param_cov_init) {
      |                                                                                                                                                                                       ^
R_random_effects.cpp:271:145: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  271 | void rfx_model_set_variance_prior_shape_cpp(cpp11::external_pointer<StochTree::MultivariateRegressionRandomEffectsModel> rfx_model, double shape) {
      |                                                                                                                                                 ^
R_random_effects.cpp:276:145: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  276 | void rfx_model_set_variance_prior_scale_cpp(cpp11::external_pointer<StochTree::MultivariateRegressionRandomEffectsModel> rfx_model, double scale) {
      |                                                                                                                                                 ^
R_random_effects.cpp:281:132: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  281 | cpp11::writable::integers rfx_tracker_get_unique_group_ids_cpp(cpp11::external_pointer<StochTree::RandomEffectsTracker> rfx_tracker) {
      |                                                                                                                                    ^
R_random_effects.cpp:287:129: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  287 | cpp11::writable::doubles rfx_container_get_beta_cpp(cpp11::external_pointer<StochTree::RandomEffectsContainer> rfx_container_ptr) {
      |                                                                                                                                 ^
R_random_effects.cpp:292:130: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  292 | cpp11::writable::doubles rfx_container_get_alpha_cpp(cpp11::external_pointer<StochTree::RandomEffectsContainer> rfx_container_ptr) {
      |                                                                                                                                  ^
R_random_effects.cpp:297:127: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  297 | cpp11::writable::doubles rfx_container_get_xi_cpp(cpp11::external_pointer<StochTree::RandomEffectsContainer> rfx_container_ptr) {
      |                                                                                                                               ^
R_random_effects.cpp:302:130: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  302 | cpp11::writable::doubles rfx_container_get_sigma_cpp(cpp11::external_pointer<StochTree::RandomEffectsContainer> rfx_container_ptr) {
      |                                                                                                                                  ^
R_random_effects.cpp:307:106: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  307 | cpp11::list rfx_label_mapper_to_list_cpp(cpp11::external_pointer<StochTree::LabelMapper> label_mapper_ptr) {
      |                                                                                                          ^
R_random_effects.cpp:325:40: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  325 |                          int sample_num) {
      |                                        ^
R_random_effects.cpp:334:114: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  334 |                            cpp11::external_pointer<StochTree::MultivariateRegressionRandomEffectsModel> rfx_model) {
      |                                                                                                                  ^
R_random_effects.cpp:343:119: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  343 |                                 cpp11::external_pointer<StochTree::MultivariateRegressionRandomEffectsModel> rfx_model) {
      |                                                                                                                       ^
In file included from ../src/include/stochtree/cutpoint_candidates.h:43,
                 from ../src/include/stochtree/leaf_model.h:9,
                 from stochtree_types.h:3:
../src/include/stochtree/partition_tracker.h: In member function 'void StochTree::UnsortedNodeSampleTracker::UpdateObservationMapping(StochTree::Tree*, int, StochTree::SampleNodeMapper*)':
../src/include/stochtree/partition_tracker.h:424:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  424 |     for (int i = 0; i < leaves.size(); i++) {
      |                     ~~^~~~~~~~~~~~~~~
../src/include/stochtree/partition_tracker.h: In member function 'void StochTree::FeaturePresortRoot::ArgsortRoot(Eigen::MatrixXd&)':
../src/include/stochtree/partition_tracker.h:494:38: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'StochTree::data_size_t' {aka 'int'} [-Wsign-compare]
  494 |     if (feature_sort_indices_.size() != num_obs){
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~
In file included from ../src/include/stochtree/container.h:9,
                 from stochtree_types.h:1,
                 from cpp11.cpp:4:
../src/include/stochtree/data.h: In function 'void StochTree::ExtractMultipleFeaturesFromMemory(std::vector<std::__cxx11::basic_string<char> >*, const Parser*, std::vector<int>&, Eigen::MatrixXd&, data_size_t)':
../src/include/stochtree/data.h:40:7: warning: unused variable 'feature_counter' [-Wunused-variable]
   40 |   int feature_counter;
      |       ^~~~~~~~~~~~~~~
../src/include/stochtree/data.h: In function 'void StochTree::ExtractSingleFeatureFromMemory(std::vector<std::__cxx11::basic_string<char> >*, const Parser*, int32_t, Eigen::VectorXd&, data_size_t)':
../src/include/stochtree/data.h:81:8: warning: unused variable 'column_matched' [-Wunused-variable]
   81 |   bool column_matched;
      |        ^~~~~~~~~~~~~~
../src/include/stochtree/random_effects.h: In member function 'void StochTree::MultivariateRegressionRandomEffectsModel::PredictInplace(StochTree::RandomEffectsDataset&, StochTree::RandomEffectsTracker&, std::vector<double>&)':
../src/include/stochtree/log.h:46:34: warning: comparison of integer expressions of different signedness: 'Eigen::Index' {aka 'long int'} and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/random_effects.h:185:5: note: in expansion of macro 'CHECK_EQ'
  185 |     CHECK_EQ(X.rows(), group_labels.size());
      |     ^~~~~~~~
../src/include/stochtree/log.h:46:34: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<double>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/random_effects.h:187:5: note: in expansion of macro 'CHECK_EQ'
  187 |     CHECK_EQ(n, output.size());
      |     ^~~~~~~~
../src/include/stochtree/random_effects.h: In member function 'void StochTree::MultivariateRegressionRandomEffectsModel::SubtractNewPredictionFromResidual(StochTree::RandomEffectsDataset&, StochTree::RandomEffectsTracker&, StochTree::ColumnVector&)':
../src/include/stochtree/log.h:46:34: warning: comparison of integer expressions of different signedness: 'Eigen::Index' {aka 'long int'} and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/random_effects.h:211:5: note: in expansion of macro 'CHECK_EQ'
  211 |     CHECK_EQ(X.rows(), group_labels.size());
      |     ^~~~~~~~
In file included from stochtree_types.h:7:
../src/include/stochtree/tree_sampler.h: In function 'bool StochTree::NodesNonConstantAfterSplit(ForestDataset&, ForestTracker&, TreeSplit&, int, int, int)':
../src/include/stochtree/tree_sampler.h:82:15: warning: unused variable 'idx' [-Wunused-variable]
   82 |   data_size_t idx;
      |               ^~~
../src/include/stochtree/tree_sampler.h: In function 'bool StochTree::NodeNonConstant(ForestDataset&, ForestTracker&, int, int)':
../src/include/stochtree/tree_sampler.h:125:15: warning: unused variable 'idx' [-Wunused-variable]
  125 |   data_size_t idx;
      |               ^~~
sampler.cpp: At global scope:
sampler.cpp:28:1: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
   28 | ) {
      | ^
sampler.cpp:100:1: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  100 | ) {
      | ^
sampler.cpp:163:1: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  163 | ) {
      | ^
sampler.cpp:177:1: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  177 | ) {
      | ^
sampler.cpp:184:67: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  184 | cpp11::external_pointer<std::mt19937> rng_cpp(int random_seed = -1) {
      |                                                                   ^
sampler.cpp:198:129: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  198 | cpp11::external_pointer<StochTree::TreePrior> tree_prior_cpp(double alpha, double beta, int min_samples_leaf, int max_depth = -1) {
      |                                                                                                                                 ^
sampler.cpp:207:108: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  207 | void update_alpha_tree_prior_cpp(cpp11::external_pointer<StochTree::TreePrior> tree_prior_ptr, double alpha) {
      |                                                                                                            ^
sampler.cpp:213:106: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  213 | void update_beta_tree_prior_cpp(cpp11::external_pointer<StochTree::TreePrior> tree_prior_ptr, double beta) {
      |                                                                                                          ^
sampler.cpp:219:127: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  219 | void update_min_samples_leaf_tree_prior_cpp(cpp11::external_pointer<StochTree::TreePrior> tree_prior_ptr, int min_samples_leaf) {
      |                                                                                                                               ^
sampler.cpp:225:113: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  225 | void update_max_depth_tree_prior_cpp(cpp11::external_pointer<StochTree::TreePrior> tree_prior_ptr, int max_depth) {
      |                                                                                                                 ^
sampler.cpp:231:196: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  231 | cpp11::external_pointer<StochTree::ForestTracker> forest_tracker_cpp(cpp11::external_pointer<StochTree::ForestDataset> data, cpp11::integers feature_types, int num_trees, StochTree::data_size_t n) {
      |                                                                                                                                                                                                    ^
In file included from ../src/include/stochtree/container.h:9,
                 from stochtree_types.h:1,
                 from serialization.cpp:2:
../src/include/stochtree/data.h: In function 'void StochTree::ExtractMultipleFeaturesFromMemory(std::vector<std::__cxx11::basic_string<char> >*, const Parser*, std::vector<int>&, Eigen::MatrixXd&, data_size_t)':
../src/include/stochtree/data.h:40:7: warning: unused variable 'feature_counter' [-Wunused-variable]
   40 |   int feature_counter;
      |       ^~~~~~~~~~~~~~~
../src/include/stochtree/data.h: In function 'void StochTree::ExtractSingleFeatureFromMemory(std::vector<std::__cxx11::basic_string<char> >*, const Parser*, int32_t, Eigen::VectorXd&, data_size_t)':
../src/include/stochtree/data.h:81:8: warning: unused variable 'column_matched' [-Wunused-variable]
   81 |   bool column_matched;
      |        ^~~~~~~~~~~~~~
In file included from ../src/include/stochtree/common.h:8,
                 from ../src/include/stochtree/io.h:20,
                 from ../src/include/stochtree/data.h:9:
../src/include/stochtree/tree.h: In member function 'void StochTree::Tree::CollapseToLeaf(int32_t, std::vector<double>)':
../src/include/stochtree/log.h:46:34: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<double>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/tree.h:193:5: note: in expansion of macro 'CHECK_EQ'
  193 |     CHECK_EQ(output_dimension_, value_vector.size());
      |     ^~~~~~~~
In file included from ../src/include/stochtree/container.h:10:
../src/include/stochtree/ensemble.h: In member function 'void StochTree::TreeEnsemble::PredictInplace(Eigen::MatrixXd&, Eigen::MatrixXd&, std::vector<double>&, int, int, StochTree::data_size_t)':
../src/include/stochtree/ensemble.h:202:23: warning: comparison of integer expressions of different signedness: 'std::vector<double>::size_type' {aka 'long unsigned int'} and 'StochTree::data_size_t' {aka 'int'} [-Wsign-compare]
  202 |     if (output.size() < total_output_size + offset) {
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/ensemble.h:207:37: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
  207 |       for (size_t j = tree_begin; j < tree_end; j++) {
      |                                   ~~^~~~~~~~~~
../src/include/stochtree/ensemble.h: In member function 'void StochTree::TreeEnsemble::PredictInplace(Eigen::MatrixXd&, std::vector<double>&, int, int, StochTree::data_size_t)':
../src/include/stochtree/ensemble.h:227:23: warning: comparison of integer expressions of different signedness: 'std::vector<double>::size_type' {aka 'long unsigned int'} and 'StochTree::data_size_t' {aka 'int'} [-Wsign-compare]
  227 |     if (output.size() < total_output_size + offset) {
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/ensemble.h:232:37: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
  232 |       for (size_t j = tree_begin; j < tree_end; j++) {
      |                                   ~~^~~~~~~~~~
../src/include/stochtree/ensemble.h: In member function 'void StochTree::TreeEnsemble::PredictRawInplace(StochTree::ForestDataset&, std::vector<double>&, int, int, StochTree::data_size_t)':
../src/include/stochtree/ensemble.h:253:23: warning: comparison of integer expressions of different signedness: 'std::vector<double>::size_type' {aka 'long unsigned int'} and 'StochTree::data_size_t' {aka 'int'} [-Wsign-compare]
  253 |     if (output.size() < total_output_size + offset) {
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/ensemble.h:259:39: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
  259 |         for (size_t j = tree_begin; j < tree_end; j++) {
      |                                     ~~^~~~~~~~~~
../src/include/stochtree/ensemble.h: In member function 'void StochTree::TreeEnsemble::SetLeafVector(std::vector<double>&)':
../src/include/stochtree/log.h:46:34: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<double>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/ensemble.h:333:5: note: in expansion of macro 'CHECK_EQ'
  333 |     CHECK_EQ(output_dimension_, leaf_vector.size());
      |     ^~~~~~~~
../src/include/stochtree/ensemble.h: In member function 'void StochTree::TreeEnsemble::PredictLeafIndicesInplace(Eigen::Map<Eigen::Matrix<double, -1, -1>, 0, Eigen::Stride<0, 0> >&, std::vector<int>&, int, StochTree::data_size_t)':
../src/include/stochtree/log.h:54:34: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   54 | #define CHECK_GE(a, b) CHECK((a) >= (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/ensemble.h:393:5: note: in expansion of macro 'CHECK_GE'
  393 |     CHECK_GE(output.size(), num_trees*n);
      |     ^~~~~~~~
../src/include/stochtree/ensemble.h: In member function 'void StochTree::TreeEnsemble::PredictLeafIndicesInplace(Eigen::MatrixXd&, std::vector<int>&, int, StochTree::data_size_t)':
../src/include/stochtree/log.h:54:34: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   54 | #define CHECK_GE(a, b) CHECK((a) >= (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/ensemble.h:456:5: note: in expansion of macro 'CHECK_GE'
  456 |     CHECK_GE(output.size(), num_trees*n);
      |     ^~~~~~~~
../src/include/stochtree/ensemble.h: In member function 'json StochTree::TreeEnsemble::to_json()':
../src/include/stochtree/ensemble.h:489:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::unique_ptr<StochTree::Tree> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  489 |     for (int i = 0; i < trees_.size(); i++) {
      |                     ~~^~~~~~~~~~~~~~~
In file included from ../src/include/stochtree/cutpoint_candidates.h:43,
                 from ../src/include/stochtree/leaf_model.h:9,
                 from stochtree_types.h:3:
../src/include/stochtree/partition_tracker.h: In member function 'void StochTree::UnsortedNodeSampleTracker::UpdateObservationMapping(StochTree::Tree*, int, StochTree::SampleNodeMapper*)':
../src/include/stochtree/partition_tracker.h:424:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  424 |     for (int i = 0; i < leaves.size(); i++) {
      |                     ~~^~~~~~~~~~~~~~~
../src/include/stochtree/partition_tracker.h: In member function 'void StochTree::FeaturePresortRoot::ArgsortRoot(Eigen::MatrixXd&)':
../src/include/stochtree/partition_tracker.h:494:38: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'StochTree::data_size_t' {aka 'int'} [-Wsign-compare]
  494 |     if (feature_sort_indices_.size() != num_obs){
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~
In file included from ../src/include/stochtree/common.h:8,
                 from ../src/include/stochtree/io.h:20,
                 from ../src/include/stochtree/data.h:9:
../src/include/stochtree/tree.h: In member function 'void StochTree::Tree::CollapseToLeaf(int32_t, std::vector<double>)':
../src/include/stochtree/log.h:46:34: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<double>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/tree.h:193:5: note: in expansion of macro 'CHECK_EQ'
  193 |     CHECK_EQ(output_dimension_, value_vector.size());
      |     ^~~~~~~~
In file included from ../src/include/stochtree/container.h:10:
../src/include/stochtree/ensemble.h: In member function 'void StochTree::TreeEnsemble::PredictInplace(Eigen::MatrixXd&, Eigen::MatrixXd&, std::vector<double>&, int, int, StochTree::data_size_t)':
../src/include/stochtree/ensemble.h:202:23: warning: comparison of integer expressions of different signedness: 'std::vector<double>::size_type' {aka 'long unsigned int'} and 'StochTree::data_size_t' {aka 'int'} [-Wsign-compare]
  202 |     if (output.size() < total_output_size + offset) {
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/ensemble.h:207:37: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
  207 |       for (size_t j = tree_begin; j < tree_end; j++) {
      |                                   ~~^~~~~~~~~~
../src/include/stochtree/ensemble.h: In member function 'void StochTree::TreeEnsemble::PredictInplace(Eigen::MatrixXd&, std::vector<double>&, int, int, StochTree::data_size_t)':
../src/include/stochtree/ensemble.h:227:23: warning: comparison of integer expressions of different signedness: 'std::vector<double>::size_type' {aka 'long unsigned int'} and 'StochTree::data_size_t' {aka 'int'} [-Wsign-compare]
  227 |     if (output.size() < total_output_size + offset) {
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/ensemble.h:232:37: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
  232 |       for (size_t j = tree_begin; j < tree_end; j++) {
      |                                   ~~^~~~~~~~~~
../src/include/stochtree/ensemble.h: In member function 'void StochTree::TreeEnsemble::PredictRawInplace(StochTree::ForestDataset&, std::vector<double>&, int, int, StochTree::data_size_t)':
../src/include/stochtree/ensemble.h:253:23: warning: comparison of integer expressions of different signedness: 'std::vector<double>::size_type' {aka 'long unsigned int'} and 'StochTree::data_size_t' {aka 'int'} [-Wsign-compare]
  253 |     if (output.size() < total_output_size + offset) {
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/ensemble.h:259:39: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
  259 |         for (size_t j = tree_begin; j < tree_end; j++) {
      |                                     ~~^~~~~~~~~~
../src/include/stochtree/ensemble.h: In member function 'void StochTree::TreeEnsemble::SetLeafVector(std::vector<double>&)':
../src/include/stochtree/log.h:46:34: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<double>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/ensemble.h:333:5: note: in expansion of macro 'CHECK_EQ'
  333 |     CHECK_EQ(output_dimension_, leaf_vector.size());
      |     ^~~~~~~~
../src/include/stochtree/ensemble.h: In member function 'void StochTree::TreeEnsemble::PredictLeafIndicesInplace(Eigen::Map<Eigen::Matrix<double, -1, -1>, 0, Eigen::Stride<0, 0> >&, std::vector<int>&, int, StochTree::data_size_t)':
../src/include/stochtree/log.h:54:34: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   54 | #define CHECK_GE(a, b) CHECK((a) >= (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/ensemble.h:393:5: note: in expansion of macro 'CHECK_GE'
  393 |     CHECK_GE(output.size(), num_trees*n);
      |     ^~~~~~~~
../src/include/stochtree/ensemble.h: In member function 'void StochTree::TreeEnsemble::PredictLeafIndicesInplace(Eigen::MatrixXd&, std::vector<int>&, int, StochTree::data_size_t)':
../src/include/stochtree/log.h:54:34: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   54 | #define CHECK_GE(a, b) CHECK((a) >= (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/ensemble.h:456:5: note: in expansion of macro 'CHECK_GE'
  456 |     CHECK_GE(output.size(), num_trees*n);
      |     ^~~~~~~~
../src/include/stochtree/ensemble.h: In member function 'json StochTree::TreeEnsemble::to_json()':
../src/include/stochtree/ensemble.h:489:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::unique_ptr<StochTree::Tree> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  489 |     for (int i = 0; i < trees_.size(); i++) {
      |                     ~~^~~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h: In instantiation of 'void StochTree::MCMCSampleTreeOneIter(Tree*, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, int, double, LeafSuffStatConstructorArgs& ...) [with LeafModel = GaussianConstantLeafModel; LeafSuffStat = GaussianConstantSuffStat; LeafSuffStatConstructorArgs = {}; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>]':
../src/include/stochtree/tree_sampler.h:1088:83:   required from 'void StochTree::MCMCSampleOneIter(TreeEnsemble&, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, double, bool, bool, bool, LeafSuffStatConstructorArgs& ...) [with LeafModel = GaussianConstantLeafModel; LeafSuffStat = GaussianConstantSuffStat; LeafSuffStatConstructorArgs = {}; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>]'
 1088 |     MCMCSampleTreeOneIter<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1089 |       tree, tracker, forests, leaf_model, dataset, residual, tree_prior, gen, variable_weights, i,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1090 |       global_variance, leaf_suff_stat_args...
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                      
 1091 |     );
      |     ~                                                                              
sampler.cpp:148:112:   required from here
  148 |         StochTree::MCMCSampleOneIter<StochTree::GaussianConstantLeafModel, StochTree::GaussianConstantSuffStat>(*active_forest, *tracker, *forest_samples, std::get<StochTree::GaussianConstantLeafModel>(leaf_model), *data, *residual, *split_prior, *rng, var_weights_vector, global_variance, keep_forest, pre_initialized, true);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:1033:8: warning: unused variable 'accept' [-Wunused-variable]
 1033 |   bool accept;
      |        ^~~~~~
../src/include/stochtree/tree_sampler.h: In instantiation of 'void StochTree::MCMCSampleTreeOneIter(Tree*, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, int, double, LeafSuffStatConstructorArgs& ...) [with LeafModel = GaussianUnivariateRegressionLeafModel; LeafSuffStat = GaussianUnivariateRegressionSuffStat; LeafSuffStatConstructorArgs = {}; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>]':
../src/include/stochtree/tree_sampler.h:1088:83:   required from 'void StochTree::MCMCSampleOneIter(TreeEnsemble&, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, double, bool, bool, bool, LeafSuffStatConstructorArgs& ...) [with LeafModel = GaussianUnivariateRegressionLeafModel; LeafSuffStat = GaussianUnivariateRegressionSuffStat; LeafSuffStatConstructorArgs = {}; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>]'
 1088 |     MCMCSampleTreeOneIter<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1089 |       tree, tracker, forests, leaf_model, dataset, residual, tree_prior, gen, variable_weights, i,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1090 |       global_variance, leaf_suff_stat_args...
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                      
 1091 |     );
      |     ~                                                                              
sampler.cpp:150:136:   required from here
  150 |         StochTree::MCMCSampleOneIter<StochTree::GaussianUnivariateRegressionLeafModel, StochTree::GaussianUnivariateRegressionSuffStat>(*active_forest, *tracker, *forest_samples, std::get<StochTree::GaussianUnivariateRegressionLeafModel>(leaf_model), *data, *residual, *split_prior, *rng, var_weights_vector, global_variance, keep_forest, pre_initialized, true);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:1033:8: warning: unused variable 'accept' [-Wunused-variable]
 1033 |   bool accept;
      |        ^~~~~~
../src/include/stochtree/tree_sampler.h: In instantiation of 'void StochTree::MCMCSampleTreeOneIter(Tree*, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, int, double, LeafSuffStatConstructorArgs& ...) [with LeafModel = GaussianMultivariateRegressionLeafModel; LeafSuffStat = GaussianMultivariateRegressionSuffStat; LeafSuffStatConstructorArgs = {int}; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>]':
../src/include/stochtree/tree_sampler.h:1088:83:   required from 'void StochTree::MCMCSampleOneIter(TreeEnsemble&, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, double, bool, bool, bool, LeafSuffStatConstructorArgs& ...) [with LeafModel = GaussianMultivariateRegressionLeafModel; LeafSuffStat = GaussianMultivariateRegressionSuffStat; LeafSuffStatConstructorArgs = {int}; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>]'
 1088 |     MCMCSampleTreeOneIter<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1089 |       tree, tracker, forests, leaf_model, dataset, residual, tree_prior, gen, variable_weights, i,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1090 |       global_variance, leaf_suff_stat_args...
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                      
 1091 |     );
      |     ~                                                                              
sampler.cpp:152:145:   required from here
  152 |         StochTree::MCMCSampleOneIter<StochTree::GaussianMultivariateRegressionLeafModel, StochTree::GaussianMultivariateRegressionSuffStat, int>(*active_forest, *tracker, *forest_samples, std::get<StochTree::GaussianMultivariateRegressionLeafModel>(leaf_model), *data, *residual, *split_prior, *rng, var_weights_vector, global_variance, keep_forest, pre_initialized, true, num_basis);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:1033:8: warning: unused variable 'accept' [-Wunused-variable]
 1033 |   bool accept;
      |        ^~~~~~
../src/include/stochtree/tree_sampler.h: In instantiation of 'void StochTree::MCMCSampleTreeOneIter(Tree*, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, int, double, LeafSuffStatConstructorArgs& ...) [with LeafModel = LogLinearVarianceLeafModel; LeafSuffStat = LogLinearVarianceSuffStat; LeafSuffStatConstructorArgs = {}; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>]':
../src/include/stochtree/tree_sampler.h:1088:83:   required from 'void StochTree::MCMCSampleOneIter(TreeEnsemble&, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, double, bool, bool, bool, LeafSuffStatConstructorArgs& ...) [with LeafModel = LogLinearVarianceLeafModel; LeafSuffStat = LogLinearVarianceSuffStat; LeafSuffStatConstructorArgs = {}; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>]'
 1088 |     MCMCSampleTreeOneIter<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1089 |       tree, tracker, forests, leaf_model, dataset, residual, tree_prior, gen, variable_weights, i,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1090 |       global_variance, leaf_suff_stat_args...
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                      
 1091 |     );
      |     ~                                                                              
sampler.cpp:154:114:   required from here
  154 |         StochTree::MCMCSampleOneIter<StochTree::LogLinearVarianceLeafModel, StochTree::LogLinearVarianceSuffStat>(*active_forest, *tracker, *forest_samples, std::get<StochTree::LogLinearVarianceLeafModel>(leaf_model), *data, *residual, *split_prior, *rng, var_weights_vector, global_variance, keep_forest, pre_initialized, false);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:1033:8: warning: unused variable 'accept' [-Wunused-variable]
 1033 |   bool accept;
      |        ^~~~~~
../src/include/stochtree/random_effects.h: In member function 'void StochTree::MultivariateRegressionRandomEffectsModel::PredictInplace(StochTree::RandomEffectsDataset&, StochTree::RandomEffectsTracker&, std::vector<double>&)':
../src/include/stochtree/log.h:46:34: warning: comparison of integer expressions of different signedness: 'Eigen::Index' {aka 'long int'} and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/random_effects.h:185:5: note: in expansion of macro 'CHECK_EQ'
  185 |     CHECK_EQ(X.rows(), group_labels.size());
      |     ^~~~~~~~
../src/include/stochtree/log.h:46:34: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<double>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/random_effects.h:187:5: note: in expansion of macro 'CHECK_EQ'
  187 |     CHECK_EQ(n, output.size());
      |     ^~~~~~~~
../src/include/stochtree/random_effects.h: In member function 'void StochTree::MultivariateRegressionRandomEffectsModel::SubtractNewPredictionFromResidual(StochTree::RandomEffectsDataset&, StochTree::RandomEffectsTracker&, StochTree::ColumnVector&)':
../src/include/stochtree/log.h:46:34: warning: comparison of integer expressions of different signedness: 'Eigen::Index' {aka 'long int'} and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/random_effects.h:211:5: note: in expansion of macro 'CHECK_EQ'
  211 |     CHECK_EQ(X.rows(), group_labels.size());
      |     ^~~~~~~~
In file included from stochtree_types.h:7:
../src/include/stochtree/tree_sampler.h: In function 'bool StochTree::NodesNonConstantAfterSplit(ForestDataset&, ForestTracker&, TreeSplit&, int, int, int)':
../src/include/stochtree/tree_sampler.h:82:15: warning: unused variable 'idx' [-Wunused-variable]
   82 |   data_size_t idx;
      |               ^~~
../src/include/stochtree/tree_sampler.h: In function 'bool StochTree::NodeNonConstant(ForestDataset&, ForestTracker&, int, int)':
../src/include/stochtree/tree_sampler.h:125:15: warning: unused variable 'idx' [-Wunused-variable]
  125 |   data_size_t idx;
      |               ^~~
In file included from ../src/include/stochtree/cutpoint_candidates.h:43,
                 from ../src/include/stochtree/leaf_model.h:9,
                 from stochtree_types.h:3:
../src/include/stochtree/partition_tracker.h: In member function 'void StochTree::UnsortedNodeSampleTracker::UpdateObservationMapping(StochTree::Tree*, int, StochTree::SampleNodeMapper*)':
../src/include/stochtree/partition_tracker.h:424:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  424 |     for (int i = 0; i < leaves.size(); i++) {
      |                     ~~^~~~~~~~~~~~~~~
../src/include/stochtree/partition_tracker.h: In member function 'void StochTree::FeaturePresortRoot::ArgsortRoot(Eigen::MatrixXd&)':
../src/include/stochtree/partition_tracker.h:494:38: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'StochTree::data_size_t' {aka 'int'} [-Wsign-compare]
  494 |     if (feature_sort_indices_.size() != num_obs){
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~
../src/include/stochtree/tree_sampler.h: In instantiation of 'void StochTree::SampleSplitRule(Tree*, ForestTracker&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, int, double, int, std::unordered_map<int, std::pair<int, int> >&, std::deque<int, std::allocator<int> >&, int, data_size_t, data_size_t, std::vector<double>&, std::vector<FeatureType>&, LeafSuffStatConstructorArgs& ...) [with LeafModel = GaussianConstantLeafModel; LeafSuffStat = GaussianConstantSuffStat; LeafSuffStatConstructorArgs = {}; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>; data_size_t = int]':
../src/include/stochtree/tree_sampler.h:728:77:   required from 'void StochTree::GFRSampleTreeOneIter(Tree*, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, int, double, std::vector<FeatureType>&, int, LeafSuffStatConstructorArgs& ...) [with LeafModel = GaussianConstantLeafModel; LeafSuffStat = GaussianConstantSuffStat; LeafSuffStatConstructorArgs = {}; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>]'
  728 |     SampleSplitRule<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  729 |       tree, tracker, leaf_model, dataset, residual, tree_prior, gen, tree_num, global_variance, cutpoint_grid_size,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  730 |       node_index_map, split_queue, curr_node_id, curr_node_begin, curr_node_end, variable_weights, feature_types,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  731 |       leaf_suff_stat_args...);
      |       ~~~~~~~~~~~~~~~~~~~~~~~                                                
../src/include/stochtree/tree_sampler.h:785:82:   required from 'void StochTree::GFRSampleOneIter(TreeEnsemble&, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, double, std::vector<FeatureType>&, int, bool, bool, bool, LeafSuffStatConstructorArgs& ...) [with LeafModel = GaussianConstantLeafModel; LeafSuffStat = GaussianConstantSuffStat; LeafSuffStatConstructorArgs = {}; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>]'
  785 |     GFRSampleTreeOneIter<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  786 |       tree, tracker, forests, leaf_model, dataset, residual, tree_prior, gen,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
  787 |       variable_weights, i, global_variance, feature_types, cutpoint_grid_size,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  788 |       leaf_suff_stat_args...
      |       ~~~~~~~~~~~~~~~~~~~~~~                                                      
  789 |     );
      |     ~                                                                             
sampler.cpp:76:111:   required from here
   76 |         StochTree::GFRSampleOneIter<StochTree::GaussianConstantLeafModel, StochTree::GaussianConstantSuffStat>(*active_forest, *tracker, *forest_samples, std::get<StochTree::GaussianConstantLeafModel>(leaf_model), *data, *residual, *split_prior, *rng, var_weights_vector, global_variance, feature_types_, cutpoint_grid_size, keep_forest, pre_initialized, true);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:629:31: warning: comparison of integer expressions of different signedness: 'StochTree::data_size_t' {aka 'int'} and 'std::vector<double>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  629 |     for (data_size_t i = 0; i < log_cutpoint_evaluations.size(); i++){
      |                             ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:663:13: warning: unused variable 'num_categories' [-Wunused-variable]
  663 |         int num_categories;
      |             ^~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:648:19: warning: unused variable 'node_n' [-Wunused-variable]
  648 |       data_size_t node_n = node_end - node_begin;
      |                   ^~~~~~
../src/include/stochtree/tree_sampler.h:656:19: warning: unused variable 'right_n' [-Wunused-variable]
  656 |       data_size_t right_n = 0;
      |                   ^~~~~~~
../src/include/stochtree/tree_sampler.h:657:19: warning: unused variable 'sort_idx' [-Wunused-variable]
  657 |       data_size_t sort_idx;
      |                   ^~~~~~~~
../src/include/stochtree/tree_sampler.h:658:14: warning: unused variable 'feature_value' [-Wunused-variable]
  658 |       double feature_value;
      |              ^~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:659:12: warning: unused variable 'split_true' [-Wunused-variable]
  659 |       bool split_true;
      |            ^~~~~~~~~~
../src/include/stochtree/tree_sampler.h: In instantiation of 'void StochTree::SampleSplitRule(Tree*, ForestTracker&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, int, double, int, std::unordered_map<int, std::pair<int, int> >&, std::deque<int, std::allocator<int> >&, int, data_size_t, data_size_t, std::vector<double>&, std::vector<FeatureType>&, LeafSuffStatConstructorArgs& ...) [with LeafModel = GaussianUnivariateRegressionLeafModel; LeafSuffStat = GaussianUnivariateRegressionSuffStat; LeafSuffStatConstructorArgs = {}; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>; data_size_t = int]':
../src/include/stochtree/tree_sampler.h:728:77:   required from 'void StochTree::GFRSampleTreeOneIter(Tree*, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, int, double, std::vector<FeatureType>&, int, LeafSuffStatConstructorArgs& ...) [with LeafModel = GaussianUnivariateRegressionLeafModel; LeafSuffStat = GaussianUnivariateRegressionSuffStat; LeafSuffStatConstructorArgs = {}; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>]'
  728 |     SampleSplitRule<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  729 |       tree, tracker, leaf_model, dataset, residual, tree_prior, gen, tree_num, global_variance, cutpoint_grid_size,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  730 |       node_index_map, split_queue, curr_node_id, curr_node_begin, curr_node_end, variable_weights, feature_types,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  731 |       leaf_suff_stat_args...);
      |       ~~~~~~~~~~~~~~~~~~~~~~~                                                
../src/include/stochtree/tree_sampler.h:785:82:   required from 'void StochTree::GFRSampleOneIter(TreeEnsemble&, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, double, std::vector<FeatureType>&, int, bool, bool, bool, LeafSuffStatConstructorArgs& ...) [with LeafModel = GaussianUnivariateRegressionLeafModel; LeafSuffStat = GaussianUnivariateRegressionSuffStat; LeafSuffStatConstructorArgs = {}; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>]'
  785 |     GFRSampleTreeOneIter<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  786 |       tree, tracker, forests, leaf_model, dataset, residual, tree_prior, gen,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
  787 |       variable_weights, i, global_variance, feature_types, cutpoint_grid_size,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  788 |       leaf_suff_stat_args...
      |       ~~~~~~~~~~~~~~~~~~~~~~                                                      
  789 |     );
      |     ~                                                                             
sampler.cpp:78:135:   required from here
   78 |         StochTree::GFRSampleOneIter<StochTree::GaussianUnivariateRegressionLeafModel, StochTree::GaussianUnivariateRegressionSuffStat>(*active_forest, *tracker, *forest_samples, std::get<StochTree::GaussianUnivariateRegressionLeafModel>(leaf_model), *data, *residual, *split_prior, *rng, var_weights_vector, global_variance, feature_types_, cutpoint_grid_size, keep_forest, pre_initialized, true);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:629:31: warning: comparison of integer expressions of different signedness: 'StochTree::data_size_t' {aka 'int'} and 'std::vector<double>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  629 |     for (data_size_t i = 0; i < log_cutpoint_evaluations.size(); i++){
      |                             ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:663:13: warning: unused variable 'num_categories' [-Wunused-variable]
  663 |         int num_categories;
      |             ^~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:648:19: warning: unused variable 'node_n' [-Wunused-variable]
  648 |       data_size_t node_n = node_end - node_begin;
      |                   ^~~~~~
../src/include/stochtree/tree_sampler.h:656:19: warning: unused variable 'right_n' [-Wunused-variable]
  656 |       data_size_t right_n = 0;
      |                   ^~~~~~~
../src/include/stochtree/tree_sampler.h:657:19: warning: unused variable 'sort_idx' [-Wunused-variable]
  657 |       data_size_t sort_idx;
      |                   ^~~~~~~~
../src/include/stochtree/tree_sampler.h:658:14: warning: unused variable 'feature_value' [-Wunused-variable]
  658 |       double feature_value;
      |              ^~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:659:12: warning: unused variable 'split_true' [-Wunused-variable]
  659 |       bool split_true;
      |            ^~~~~~~~~~
../src/include/stochtree/tree_sampler.h: In instantiation of 'void StochTree::SampleSplitRule(Tree*, ForestTracker&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, int, double, int, std::unordered_map<int, std::pair<int, int> >&, std::deque<int, std::allocator<int> >&, int, data_size_t, data_size_t, std::vector<double>&, std::vector<FeatureType>&, LeafSuffStatConstructorArgs& ...) [with LeafModel = GaussianMultivariateRegressionLeafModel; LeafSuffStat = GaussianMultivariateRegressionSuffStat; LeafSuffStatConstructorArgs = {int}; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>; data_size_t = int]':
../src/include/stochtree/tree_sampler.h:728:77:   required from 'void StochTree::GFRSampleTreeOneIter(Tree*, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, int, double, std::vector<FeatureType>&, int, LeafSuffStatConstructorArgs& ...) [with LeafModel = GaussianMultivariateRegressionLeafModel; LeafSuffStat = GaussianMultivariateRegressionSuffStat; LeafSuffStatConstructorArgs = {int}; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>]'
  728 |     SampleSplitRule<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  729 |       tree, tracker, leaf_model, dataset, residual, tree_prior, gen, tree_num, global_variance, cutpoint_grid_size,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  730 |       node_index_map, split_queue, curr_node_id, curr_node_begin, curr_node_end, variable_weights, feature_types,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  731 |       leaf_suff_stat_args...);
      |       ~~~~~~~~~~~~~~~~~~~~~~~                                                
../src/include/stochtree/tree_sampler.h:785:82:   required from 'void StochTree::GFRSampleOneIter(TreeEnsemble&, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, double, std::vector<FeatureType>&, int, bool, bool, bool, LeafSuffStatConstructorArgs& ...) [with LeafModel = GaussianMultivariateRegressionLeafModel; LeafSuffStat = GaussianMultivariateRegressionSuffStat; LeafSuffStatConstructorArgs = {int}; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>]'
  785 |     GFRSampleTreeOneIter<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  786 |       tree, tracker, forests, leaf_model, dataset, residual, tree_prior, gen,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
  787 |       variable_weights, i, global_variance, feature_types, cutpoint_grid_size,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  788 |       leaf_suff_stat_args...
      |       ~~~~~~~~~~~~~~~~~~~~~~                                                      
  789 |     );
      |     ~                                                                             
sampler.cpp:80:144:   required from here
   80 |         StochTree::GFRSampleOneIter<StochTree::GaussianMultivariateRegressionLeafModel, StochTree::GaussianMultivariateRegressionSuffStat, int>(*active_forest, *tracker, *forest_samples, std::get<StochTree::GaussianMultivariateRegressionLeafModel>(leaf_model), *data, *residual, *split_prior, *rng, var_weights_vector, global_variance, feature_types_, cutpoint_grid_size, keep_forest, pre_initialized, true, num_basis);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:629:31: warning: comparison of integer expressions of different signedness: 'StochTree::data_size_t' {aka 'int'} and 'std::vector<double>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  629 |     for (data_size_t i = 0; i < log_cutpoint_evaluations.size(); i++){
      |                             ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:663:13: warning: unused variable 'num_categories' [-Wunused-variable]
  663 |         int num_categories;
      |             ^~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:648:19: warning: unused variable 'node_n' [-Wunused-variable]
  648 |       data_size_t node_n = node_end - node_begin;
      |                   ^~~~~~
../src/include/stochtree/tree_sampler.h:656:19: warning: unused variable 'right_n' [-Wunused-variable]
  656 |       data_size_t right_n = 0;
      |                   ^~~~~~~
../src/include/stochtree/tree_sampler.h:657:19: warning: unused variable 'sort_idx' [-Wunused-variable]
  657 |       data_size_t sort_idx;
      |                   ^~~~~~~~
../src/include/stochtree/tree_sampler.h:658:14: warning: unused variable 'feature_value' [-Wunused-variable]
  658 |       double feature_value;
      |              ^~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:659:12: warning: unused variable 'split_true' [-Wunused-variable]
  659 |       bool split_true;
      |            ^~~~~~~~~~
../src/include/stochtree/tree_sampler.h: In instantiation of 'void StochTree::SampleSplitRule(Tree*, ForestTracker&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, int, double, int, std::unordered_map<int, std::pair<int, int> >&, std::deque<int, std::allocator<int> >&, int, data_size_t, data_size_t, std::vector<double>&, std::vector<FeatureType>&, LeafSuffStatConstructorArgs& ...) [with LeafModel = LogLinearVarianceLeafModel; LeafSuffStat = LogLinearVarianceSuffStat; LeafSuffStatConstructorArgs = {}; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>; data_size_t = int]':
../src/include/stochtree/tree_sampler.h:728:77:   required from 'void StochTree::GFRSampleTreeOneIter(Tree*, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, int, double, std::vector<FeatureType>&, int, LeafSuffStatConstructorArgs& ...) [with LeafModel = LogLinearVarianceLeafModel; LeafSuffStat = LogLinearVarianceSuffStat; LeafSuffStatConstructorArgs = {}; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>]'
  728 |     SampleSplitRule<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  729 |       tree, tracker, leaf_model, dataset, residual, tree_prior, gen, tree_num, global_variance, cutpoint_grid_size,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  730 |       node_index_map, split_queue, curr_node_id, curr_node_begin, curr_node_end, variable_weights, feature_types,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  731 |       leaf_suff_stat_args...);
      |       ~~~~~~~~~~~~~~~~~~~~~~~                                                
../src/include/stochtree/tree_sampler.h:785:82:   required from 'void StochTree::GFRSampleOneIter(TreeEnsemble&, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, double, std::vector<FeatureType>&, int, bool, bool, bool, LeafSuffStatConstructorArgs& ...) [with LeafModel = LogLinearVarianceLeafModel; LeafSuffStat = LogLinearVarianceSuffStat; LeafSuffStatConstructorArgs = {}; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>]'
  785 |     GFRSampleTreeOneIter<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  786 |       tree, tracker, forests, leaf_model, dataset, residual, tree_prior, gen,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
  787 |       variable_weights, i, global_variance, feature_types, cutpoint_grid_size,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  788 |       leaf_suff_stat_args...
      |       ~~~~~~~~~~~~~~~~~~~~~~                                                      
  789 |     );
      |     ~                                                                             
sampler.cpp:82:113:   required from here
   82 |         StochTree::GFRSampleOneIter<StochTree::LogLinearVarianceLeafModel, StochTree::LogLinearVarianceSuffStat>(*active_forest, *tracker, *forest_samples, std::get<StochTree::LogLinearVarianceLeafModel>(leaf_model), *data, *residual, *split_prior, *rng, var_weights_vector, global_variance, feature_types_, cutpoint_grid_size, keep_forest, pre_initialized, false);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:629:31: warning: comparison of integer expressions of different signedness: 'StochTree::data_size_t' {aka 'int'} and 'std::vector<double>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  629 |     for (data_size_t i = 0; i < log_cutpoint_evaluations.size(); i++){
      |                             ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:663:13: warning: unused variable 'num_categories' [-Wunused-variable]
  663 |         int num_categories;
      |             ^~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:648:19: warning: unused variable 'node_n' [-Wunused-variable]
  648 |       data_size_t node_n = node_end - node_begin;
      |                   ^~~~~~
../src/include/stochtree/tree_sampler.h:656:19: warning: unused variable 'right_n' [-Wunused-variable]
  656 |       data_size_t right_n = 0;
      |                   ^~~~~~~
../src/include/stochtree/tree_sampler.h:657:19: warning: unused variable 'sort_idx' [-Wunused-variable]
  657 |       data_size_t sort_idx;
      |                   ^~~~~~~~
../src/include/stochtree/tree_sampler.h:658:14: warning: unused variable 'feature_value' [-Wunused-variable]
  658 |       double feature_value;
      |              ^~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:659:12: warning: unused variable 'split_true' [-Wunused-variable]
  659 |       bool split_true;
      |            ^~~~~~~~~~
../src/include/stochtree/tree_sampler.h: In instantiation of 'void StochTree::MCMCGrowTreeOneIter(Tree*, ForestTracker&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, int, std::vector<double>&, double, double, LeafSuffStatConstructorArgs& ...) [with LeafModel = GaussianConstantLeafModel; LeafSuffStat = GaussianConstantSuffStat; LeafSuffStatConstructorArgs = {}; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>]':
../src/include/stochtree/tree_sampler.h:1036:81:   required from 'void StochTree::MCMCSampleTreeOneIter(Tree*, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, int, double, LeafSuffStatConstructorArgs& ...) [with LeafModel = GaussianConstantLeafModel; LeafSuffStat = GaussianConstantSuffStat; LeafSuffStatConstructorArgs = {}; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>]'
 1036 |     MCMCGrowTreeOneIter<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1037 |       tree, tracker, leaf_model, dataset, residual, tree_prior, gen, tree_num, variable_weights, global_variance, prob_grow, leaf_suff_stat_args...
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1038 |     );
      |     ~                                                                            
../src/include/stochtree/tree_sampler.h:1088:83:   required from 'void StochTree::MCMCSampleOneIter(TreeEnsemble&, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, double, bool, bool, bool, LeafSuffStatConstructorArgs& ...) [with LeafModel = GaussianConstantLeafModel; LeafSuffStat = GaussianConstantSuffStat; LeafSuffStatConstructorArgs = {}; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>]'
 1088 |     MCMCSampleTreeOneIter<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1089 |       tree, tracker, forests, leaf_model, dataset, residual, tree_prior, gen, variable_weights, i,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1090 |       global_variance, leaf_suff_stat_args...
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                      
 1091 |     );
      |     ~                                                                              
sampler.cpp:148:112:   required from here
  148 |         StochTree::MCMCSampleOneIter<StochTree::GaussianConstantLeafModel, StochTree::GaussianConstantSuffStat>(*active_forest, *tracker, *forest_samples, std::get<StochTree::GaussianConstantLeafModel>(leaf_model), *data, *residual, *split_prior, *rng, var_weights_vector, global_variance, keep_forest, pre_initialized, true);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/log.h:46:34: warning: comparison of integer expressions of different signedness: 'std::vector<double>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   46 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                                  ^
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/tree_sampler.h:834:5: note: in expansion of macro 'CHECK_EQ'
  834 |     CHECK_EQ(variable_weights.size(), p);
      |     ^~~~~~~~
../src/include/stochtree/tree_sampler.h:812:15: warning: unused variable 'n' [-Wunused-variable]
  812 |   data_size_t n = dataset.GetCovariates().rows();
      |               ^
../src/include/stochtree/tree_sampler.h:827:8: warning: variable 'accept' set but not used [-Wunused-but-set-variable]
  827 |   bool accept;
      |        ^~~~~~
../src/include/stochtree/tree_sampler.h: In instantiation of 'void StochTree::MCMCPruneTreeOneIter(Tree*, ForestTracker&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, int, double, LeafSuffStatConstructorArgs& ...) [with LeafModel = GaussianConstantLeafModel; LeafSuffStat = GaussianConstantSuffStat; LeafSuffStatConstructorArgs = {}; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>]':
../src/include/stochtree/tree_sampler.h:1040:82:   required from 'void StochTree::MCMCSampleTreeOneIter(Tree*, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, int, double, LeafSuffStatConstructorArgs& ...) [with LeafModel = GaussianConstantLeafModel; LeafSuffStat = GaussianConstantSuffStat; LeafSuffStatConstructorArgs = {}; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>]'
 1040 |     MCMCPruneTreeOneIter<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1041 |       tree, tracker, leaf_model, dataset, residual, tree_prior, gen, tree_num, global_variance, leaf_suff_stat_args...
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1042 |     );
      |     ~                                                                             
../src/include/stochtree/tree_sampler.h:1088:83:   required from 'void StochTree::MCMCSampleOneIter(TreeEnsemble&, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, double, bool, bool, bool, LeafSuffStatConstructorArgs& ...) [with LeafModel = GaussianConstantLeafModel; LeafSuffStat = GaussianConstantSuffStat; LeafSuffStatConstructorArgs = {}; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>]'
 1088 |     MCMCSampleTreeOneIter<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1089 |       tree, tracker, forests, leaf_model, dataset, residual, tree_prior, gen, variable_weights, i,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1090 |       global_variance, leaf_suff_stat_args...
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                      
 1091 |     );
      |     ~                                                                              
sampler.cpp:148:112:   required from here
  148 |         StochTree::MCMCSampleOneIter<StochTree::GaussianConstantLeafModel, StochTree::GaussianConstantSuffStat>(*active_forest, *tracker, *forest_samples, std::get<StochTree::GaussianConstantLeafModel>(leaf_model), *data, *residual, *split_prior, *rng, var_weights_vector, global_variance, keep_forest, pre_initialized, true);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:930:7: warning: unused variable 'feature_split' [-Wunused-variable]
  930 |   int feature_split = tree->SplitIndex(leaf_parent_chosen);
      |       ^~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:938:11: warning: unused variable 'left_n' [-Wunused-variable]
  938 |   int32_t left_n = std::get<2>(split_eval);
      |           ^~~~~~
../src/include/stochtree/tree_sampler.h:939:11: warning: unused variable 'right_n' [-Wunused-variable]
  939 |   int32_t right_n = std::get<3>(split_eval);
      |           ^~~~~~~
../src/include/stochtree/tree_sampler.h:983:8: warning: variable 'accept' set but not used [-Wunused-but-set-variable]
  983 |   bool accept;
      |        ^~~~~~
../src/include/stochtree/tree_sampler.h: In instantiation of 'void StochTree::MCMCGrowTreeOneIter(Tree*, ForestTracker&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, int, std::vector<double>&, double, double, LeafSuffStatConstructorArgs& ...) [with LeafModel = GaussianUnivariateRegressionLeafModel; LeafSuffStat = GaussianUnivariateRegressionSuffStat; LeafSuffStatConstructorArgs = {}; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>]':
../src/include/stochtree/tree_sampler.h:1036:81:   required from 'void StochTree::MCMCSampleTreeOneIter(Tree*, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, int, double, LeafSuffStatConstructorArgs& ...) [with LeafModel = GaussianUnivariateRegressionLeafModel; LeafSuffStat = GaussianUnivariateRegressionSuffStat; LeafSuffStatConstructorArgs = {}; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>]'
 1036 |     MCMCGrowTreeOneIter<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1037 |       tree, tracker, leaf_model, dataset, residual, tree_prior, gen, tree_num, variable_weights, global_variance, prob_grow, leaf_suff_stat_args...
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1038 |     );
      |     ~                                                                            
../src/include/stochtree/tree_sampler.h:1088:83:   required from 'void StochTree::MCMCSampleOneIter(TreeEnsemble&, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, double, bool, bool, bool, LeafSuffStatConstructorArgs& ...) [with LeafModel = GaussianUnivariateRegressionLeafModel; LeafSuffStat = GaussianUnivariateRegressionSuffStat; LeafSuffStatConstructorArgs = {}; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>]'
 1088 |     MCMCSampleTreeOneIter<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1089 |       tree, tracker, forests, leaf_model, dataset, residual, tree_prior, gen, variable_weights, i,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1090 |       global_variance, leaf_suff_stat_args...
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                      
 1091 |     );
      |     ~                                                                              
sampler.cpp:150:136:   required from here
  150 |         StochTree::MCMCSampleOneIter<StochTree::GaussianUnivariateRegressionLeafModel, StochTree::GaussianUnivariateRegressionSuffStat>(*active_forest, *tracker, *forest_samples, std::get<StochTree::GaussianUnivariateRegressionLeafModel>(leaf_model), *data, *residual, *split_prior, *rng, var_weights_vector, global_variance, keep_forest, pre_initialized, true);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/log.h:46:34: warning: comparison of integer expressions of different signedness: 'std::vector<double>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   46 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                                  ^
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/tree_sampler.h:834:5: note: in expansion of macro 'CHECK_EQ'
  834 |     CHECK_EQ(variable_weights.size(), p);
      |     ^~~~~~~~
../src/include/stochtree/tree_sampler.h:812:15: warning: unused variable 'n' [-Wunused-variable]
  812 |   data_size_t n = dataset.GetCovariates().rows();
      |               ^
../src/include/stochtree/tree_sampler.h:827:8: warning: variable 'accept' set but not used [-Wunused-but-set-variable]
  827 |   bool accept;
      |        ^~~~~~
../src/include/stochtree/tree_sampler.h: In instantiation of 'void StochTree::MCMCPruneTreeOneIter(Tree*, ForestTracker&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, int, double, LeafSuffStatConstructorArgs& ...) [with LeafModel = GaussianUnivariateRegressionLeafModel; LeafSuffStat = GaussianUnivariateRegressionSuffStat; LeafSuffStatConstructorArgs = {}; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>]':
../src/include/stochtree/tree_sampler.h:1040:82:   required from 'void StochTree::MCMCSampleTreeOneIter(Tree*, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, int, double, LeafSuffStatConstructorArgs& ...) [with LeafModel = GaussianUnivariateRegressionLeafModel; LeafSuffStat = GaussianUnivariateRegressionSuffStat; LeafSuffStatConstructorArgs = {}; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>]'
 1040 |     MCMCPruneTreeOneIter<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1041 |       tree, tracker, leaf_model, dataset, residual, tree_prior, gen, tree_num, global_variance, leaf_suff_stat_args...
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1042 |     );
      |     ~                                                                             
../src/include/stochtree/tree_sampler.h:1088:83:   required from 'void StochTree::MCMCSampleOneIter(TreeEnsemble&, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, double, bool, bool, bool, LeafSuffStatConstructorArgs& ...) [with LeafModel = GaussianUnivariateRegressionLeafModel; LeafSuffStat = GaussianUnivariateRegressionSuffStat; LeafSuffStatConstructorArgs = {}; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>]'
 1088 |     MCMCSampleTreeOneIter<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1089 |       tree, tracker, forests, leaf_model, dataset, residual, tree_prior, gen, variable_weights, i,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1090 |       global_variance, leaf_suff_stat_args...
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                      
 1091 |     );
      |     ~                                                                              
sampler.cpp:150:136:   required from here
  150 |         StochTree::MCMCSampleOneIter<StochTree::GaussianUnivariateRegressionLeafModel, StochTree::GaussianUnivariateRegressionSuffStat>(*active_forest, *tracker, *forest_samples, std::get<StochTree::GaussianUnivariateRegressionLeafModel>(leaf_model), *data, *residual, *split_prior, *rng, var_weights_vector, global_variance, keep_forest, pre_initialized, true);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:930:7: warning: unused variable 'feature_split' [-Wunused-variable]
  930 |   int feature_split = tree->SplitIndex(leaf_parent_chosen);
      |       ^~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:938:11: warning: unused variable 'left_n' [-Wunused-variable]
  938 |   int32_t left_n = std::get<2>(split_eval);
      |           ^~~~~~
../src/include/stochtree/tree_sampler.h:939:11: warning: unused variable 'right_n' [-Wunused-variable]
  939 |   int32_t right_n = std::get<3>(split_eval);
      |           ^~~~~~~
../src/include/stochtree/tree_sampler.h:983:8: warning: variable 'accept' set but not used [-Wunused-but-set-variable]
  983 |   bool accept;
      |        ^~~~~~
../src/include/stochtree/tree_sampler.h: In instantiation of 'void StochTree::MCMCGrowTreeOneIter(Tree*, ForestTracker&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, int, std::vector<double>&, double, double, LeafSuffStatConstructorArgs& ...) [with LeafModel = GaussianMultivariateRegressionLeafModel; LeafSuffStat = GaussianMultivariateRegressionSuffStat; LeafSuffStatConstructorArgs = {int}; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>]':
../src/include/stochtree/tree_sampler.h:1036:81:   required from 'void StochTree::MCMCSampleTreeOneIter(Tree*, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, int, double, LeafSuffStatConstructorArgs& ...) [with LeafModel = GaussianMultivariateRegressionLeafModel; LeafSuffStat = GaussianMultivariateRegressionSuffStat; LeafSuffStatConstructorArgs = {int}; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>]'
 1036 |     MCMCGrowTreeOneIter<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1037 |       tree, tracker, leaf_model, dataset, residual, tree_prior, gen, tree_num, variable_weights, global_variance, prob_grow, leaf_suff_stat_args...
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1038 |     );
      |     ~                                                                            
../src/include/stochtree/tree_sampler.h:1088:83:   required from 'void StochTree::MCMCSampleOneIter(TreeEnsemble&, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, double, bool, bool, bool, LeafSuffStatConstructorArgs& ...) [with LeafModel = GaussianMultivariateRegressionLeafModel; LeafSuffStat = GaussianMultivariateRegressionSuffStat; LeafSuffStatConstructorArgs = {int}; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>]'
 1088 |     MCMCSampleTreeOneIter<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1089 |       tree, tracker, forests, leaf_model, dataset, residual, tree_prior, gen, variable_weights, i,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1090 |       global_variance, leaf_suff_stat_args...
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                      
 1091 |     );
      |     ~                                                                              
sampler.cpp:152:145:   required from here
  152 |         StochTree::MCMCSampleOneIter<StochTree::GaussianMultivariateRegressionLeafModel, StochTree::GaussianMultivariateRegressionSuffStat, int>(*active_forest, *tracker, *forest_samples, std::get<StochTree::GaussianMultivariateRegressionLeafModel>(leaf_model), *data, *residual, *split_prior, *rng, var_weights_vector, global_variance, keep_forest, pre_initialized, true, num_basis);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/log.h:46:34: warning: comparison of integer expressions of different signedness: 'std::vector<double>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   46 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                                  ^
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/tree_sampler.h:834:5: note: in expansion of macro 'CHECK_EQ'
  834 |     CHECK_EQ(variable_weights.size(), p);
      |     ^~~~~~~~
../src/include/stochtree/tree_sampler.h:812:15: warning: unused variable 'n' [-Wunused-variable]
  812 |   data_size_t n = dataset.GetCovariates().rows();
      |               ^
../src/include/stochtree/tree_sampler.h:827:8: warning: variable 'accept' set but not used [-Wunused-but-set-variable]
  827 |   bool accept;
      |        ^~~~~~
../src/include/stochtree/tree_sampler.h: In instantiation of 'void StochTree::MCMCPruneTreeOneIter(Tree*, ForestTracker&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, int, double, LeafSuffStatConstructorArgs& ...) [with LeafModel = GaussianMultivariateRegressionLeafModel; LeafSuffStat = GaussianMultivariateRegressionSuffStat; LeafSuffStatConstructorArgs = {int}; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>]':
../src/include/stochtree/tree_sampler.h:1040:82:   required from 'void StochTree::MCMCSampleTreeOneIter(Tree*, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, int, double, LeafSuffStatConstructorArgs& ...) [with LeafModel = GaussianMultivariateRegressionLeafModel; LeafSuffStat = GaussianMultivariateRegressionSuffStat; LeafSuffStatConstructorArgs = {int}; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>]'
 1040 |     MCMCPruneTreeOneIter<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1041 |       tree, tracker, leaf_model, dataset, residual, tree_prior, gen, tree_num, global_variance, leaf_suff_stat_args...
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1042 |     );
      |     ~                                                                             
../src/include/stochtree/tree_sampler.h:1088:83:   required from 'void StochTree::MCMCSampleOneIter(TreeEnsemble&, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, double, bool, bool, bool, LeafSuffStatConstructorArgs& ...) [with LeafModel = GaussianMultivariateRegressionLeafModel; LeafSuffStat = GaussianMultivariateRegressionSuffStat; LeafSuffStatConstructorArgs = {int}; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>]'
 1088 |     MCMCSampleTreeOneIter<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1089 |       tree, tracker, forests, leaf_model, dataset, residual, tree_prior, gen, variable_weights, i,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1090 |       global_variance, leaf_suff_stat_args...
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                      
 1091 |     );
      |     ~                                                                              
sampler.cpp:152:145:   required from here
  152 |         StochTree::MCMCSampleOneIter<StochTree::GaussianMultivariateRegressionLeafModel, StochTree::GaussianMultivariateRegressionSuffStat, int>(*active_forest, *tracker, *forest_samples, std::get<StochTree::GaussianMultivariateRegressionLeafModel>(leaf_model), *data, *residual, *split_prior, *rng, var_weights_vector, global_variance, keep_forest, pre_initialized, true, num_basis);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:930:7: warning: unused variable 'feature_split' [-Wunused-variable]
  930 |   int feature_split = tree->SplitIndex(leaf_parent_chosen);
      |       ^~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:938:11: warning: unused variable 'left_n' [-Wunused-variable]
  938 |   int32_t left_n = std::get<2>(split_eval);
      |           ^~~~~~
../src/include/stochtree/tree_sampler.h:939:11: warning: unused variable 'right_n' [-Wunused-variable]
  939 |   int32_t right_n = std::get<3>(split_eval);
      |           ^~~~~~~
../src/include/stochtree/tree_sampler.h:983:8: warning: variable 'accept' set but not used [-Wunused-but-set-variable]
  983 |   bool accept;
      |        ^~~~~~
../src/include/stochtree/tree_sampler.h: In instantiation of 'void StochTree::MCMCGrowTreeOneIter(Tree*, ForestTracker&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, int, std::vector<double>&, double, double, LeafSuffStatConstructorArgs& ...) [with LeafModel = LogLinearVarianceLeafModel; LeafSuffStat = LogLinearVarianceSuffStat; LeafSuffStatConstructorArgs = {}; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>]':
../src/include/stochtree/tree_sampler.h:1036:81:   required from 'void StochTree::MCMCSampleTreeOneIter(Tree*, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, int, double, LeafSuffStatConstructorArgs& ...) [with LeafModel = LogLinearVarianceLeafModel; LeafSuffStat = LogLinearVarianceSuffStat; LeafSuffStatConstructorArgs = {}; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>]'
 1036 |     MCMCGrowTreeOneIter<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1037 |       tree, tracker, leaf_model, dataset, residual, tree_prior, gen, tree_num, variable_weights, global_variance, prob_grow, leaf_suff_stat_args...
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1038 |     );
      |     ~                                                                            
../src/include/stochtree/tree_sampler.h:1088:83:   required from 'void StochTree::MCMCSampleOneIter(TreeEnsemble&, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, double, bool, bool, bool, LeafSuffStatConstructorArgs& ...) [with LeafModel = LogLinearVarianceLeafModel; LeafSuffStat = LogLinearVarianceSuffStat; LeafSuffStatConstructorArgs = {}; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>]'
 1088 |     MCMCSampleTreeOneIter<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1089 |       tree, tracker, forests, leaf_model, dataset, residual, tree_prior, gen, variable_weights, i,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1090 |       global_variance, leaf_suff_stat_args...
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                      
 1091 |     );
      |     ~                                                                              
sampler.cpp:154:114:   required from here
  154 |         StochTree::MCMCSampleOneIter<StochTree::LogLinearVarianceLeafModel, StochTree::LogLinearVarianceSuffStat>(*active_forest, *tracker, *forest_samples, std::get<StochTree::LogLinearVarianceLeafModel>(leaf_model), *data, *residual, *split_prior, *rng, var_weights_vector, global_variance, keep_forest, pre_initialized, false);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/log.h:46:34: warning: comparison of integer expressions of different signedness: 'std::vector<double>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   46 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                                  ^
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/tree_sampler.h:834:5: note: in expansion of macro 'CHECK_EQ'
  834 |     CHECK_EQ(variable_weights.size(), p);
      |     ^~~~~~~~
../src/include/stochtree/tree_sampler.h:812:15: warning: unused variable 'n' [-Wunused-variable]
  812 |   data_size_t n = dataset.GetCovariates().rows();
      |               ^
../src/include/stochtree/tree_sampler.h:827:8: warning: variable 'accept' set but not used [-Wunused-but-set-variable]
  827 |   bool accept;
      |        ^~~~~~
../src/include/stochtree/tree_sampler.h: In instantiation of 'void StochTree::MCMCPruneTreeOneIter(Tree*, ForestTracker&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, int, double, LeafSuffStatConstructorArgs& ...) [with LeafModel = LogLinearVarianceLeafModel; LeafSuffStat = LogLinearVarianceSuffStat; LeafSuffStatConstructorArgs = {}; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>]':
../src/include/stochtree/tree_sampler.h:1040:82:   required from 'void StochTree::MCMCSampleTreeOneIter(Tree*, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, int, double, LeafSuffStatConstructorArgs& ...) [with LeafModel = LogLinearVarianceLeafModel; LeafSuffStat = LogLinearVarianceSuffStat; LeafSuffStatConstructorArgs = {}; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>]'
 1040 |     MCMCPruneTreeOneIter<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1041 |       tree, tracker, leaf_model, dataset, residual, tree_prior, gen, tree_num, global_variance, leaf_suff_stat_args...
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1042 |     );
      |     ~                                                                             
../src/include/stochtree/tree_sampler.h:1088:83:   required from 'void StochTree::MCMCSampleOneIter(TreeEnsemble&, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, double, bool, bool, bool, LeafSuffStatConstructorArgs& ...) [with LeafModel = LogLinearVarianceLeafModel; LeafSuffStat = LogLinearVarianceSuffStat; LeafSuffStatConstructorArgs = {}; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>]'
 1088 |     MCMCSampleTreeOneIter<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1089 |       tree, tracker, forests, leaf_model, dataset, residual, tree_prior, gen, variable_weights, i,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1090 |       global_variance, leaf_suff_stat_args...
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                      
 1091 |     );
      |     ~                                                                              
sampler.cpp:154:114:   required from here
  154 |         StochTree::MCMCSampleOneIter<StochTree::LogLinearVarianceLeafModel, StochTree::LogLinearVarianceSuffStat>(*active_forest, *tracker, *forest_samples, std::get<StochTree::LogLinearVarianceLeafModel>(leaf_model), *data, *residual, *split_prior, *rng, var_weights_vector, global_variance, keep_forest, pre_initialized, false);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:930:7: warning: unused variable 'feature_split' [-Wunused-variable]
  930 |   int feature_split = tree->SplitIndex(leaf_parent_chosen);
      |       ^~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:938:11: warning: unused variable 'left_n' [-Wunused-variable]
  938 |   int32_t left_n = std::get<2>(split_eval);
      |           ^~~~~~
../src/include/stochtree/tree_sampler.h:939:11: warning: unused variable 'right_n' [-Wunused-variable]
  939 |   int32_t right_n = std::get<3>(split_eval);
      |           ^~~~~~~
../src/include/stochtree/tree_sampler.h:983:8: warning: variable 'accept' set but not used [-Wunused-but-set-variable]
  983 |   bool accept;
      |        ^~~~~~
../src/include/stochtree/random_effects.h: In member function 'void StochTree::MultivariateRegressionRandomEffectsModel::PredictInplace(StochTree::RandomEffectsDataset&, StochTree::RandomEffectsTracker&, std::vector<double>&)':
../src/include/stochtree/log.h:46:34: warning: comparison of integer expressions of different signedness: 'Eigen::Index' {aka 'long int'} and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/random_effects.h:185:5: note: in expansion of macro 'CHECK_EQ'
  185 |     CHECK_EQ(X.rows(), group_labels.size());
      |     ^~~~~~~~
../src/include/stochtree/log.h:46:34: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<double>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/random_effects.h:187:5: note: in expansion of macro 'CHECK_EQ'
  187 |     CHECK_EQ(n, output.size());
      |     ^~~~~~~~
../src/include/stochtree/random_effects.h: In member function 'void StochTree::MultivariateRegressionRandomEffectsModel::SubtractNewPredictionFromResidual(StochTree::RandomEffectsDataset&, StochTree::RandomEffectsTracker&, StochTree::ColumnVector&)':
../src/include/stochtree/log.h:46:34: warning: comparison of integer expressions of different signedness: 'Eigen::Index' {aka 'long int'} and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/random_effects.h:211:5: note: in expansion of macro 'CHECK_EQ'
  211 |     CHECK_EQ(X.rows(), group_labels.size());
      |     ^~~~~~~~
In file included from stochtree_types.h:7:
../src/include/stochtree/tree_sampler.h: In function 'bool StochTree::NodesNonConstantAfterSplit(ForestDataset&, ForestTracker&, TreeSplit&, int, int, int)':
../src/include/stochtree/tree_sampler.h:82:15: warning: unused variable 'idx' [-Wunused-variable]
   82 |   data_size_t idx;
      |               ^~~
../src/include/stochtree/tree_sampler.h: In function 'bool StochTree::NodeNonConstant(ForestDataset&, ForestTracker&, int, int)':
../src/include/stochtree/tree_sampler.h:125:15: warning: unused variable 'idx' [-Wunused-variable]
  125 |   data_size_t idx;
      |               ^~~
serialization.cpp: At global scope:
serialization.cpp:16:55: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
   16 | cpp11::external_pointer<nlohmann::json> init_json_cpp() {
      |                                                       ^
serialization.cpp:29:156: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
   29 | void json_add_double_subfolder_cpp(cpp11::external_pointer<nlohmann::json> json_ptr, std::string subfolder_name, std::string field_name, double field_value) {
      |                                                                                                                                                            ^
serialization.cpp:43:118: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
   43 | void json_add_double_cpp(cpp11::external_pointer<nlohmann::json> json_ptr, std::string field_name, double field_value) {
      |                                                                                                                      ^
serialization.cpp:52:154: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
   52 | void json_add_integer_subfolder_cpp(cpp11::external_pointer<nlohmann::json> json_ptr, std::string subfolder_name, std::string field_name, int field_value) {
      |                                                                                                                                                          ^
serialization.cpp:66:116: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
   66 | void json_add_integer_cpp(cpp11::external_pointer<nlohmann::json> json_ptr, std::string field_name, int field_value) {
      |                                                                                                                    ^
serialization.cpp:75:152: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
   75 | void json_add_bool_subfolder_cpp(cpp11::external_pointer<nlohmann::json> json_ptr, std::string subfolder_name, std::string field_name, bool field_value) {
      |                                                                                                                                                        ^
serialization.cpp:89:114: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
   89 | void json_add_bool_cpp(cpp11::external_pointer<nlohmann::json> json_ptr, std::string field_name, bool field_value) {
      |                                                                                                                  ^
serialization.cpp:98:165: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
   98 | void json_add_vector_subfolder_cpp(cpp11::external_pointer<nlohmann::json> json_ptr, std::string subfolder_name, std::string field_name, cpp11::doubles field_vector) {
      |                                                                                                                                                                     ^
serialization.cpp:122:127: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  122 | void json_add_vector_cpp(cpp11::external_pointer<nlohmann::json> json_ptr, std::string field_name, cpp11::doubles field_vector) {
      |                                                                                                                               ^
serialization.cpp:138:174: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  138 | void json_add_integer_vector_subfolder_cpp(cpp11::external_pointer<nlohmann::json> json_ptr, std::string subfolder_name, std::string field_name, cpp11::integers field_vector) {
      |                                                                                                                                                                              ^
serialization.cpp:162:136: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  162 | void json_add_integer_vector_cpp(cpp11::external_pointer<nlohmann::json> json_ptr, std::string field_name, cpp11::integers field_vector) {
      |                                                                                                                                        ^
serialization.cpp:178:172: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  178 | void json_add_string_vector_subfolder_cpp(cpp11::external_pointer<nlohmann::json> json_ptr, std::string subfolder_name, std::string field_name, cpp11::strings field_vector) {
      |                                                                                                                                                                            ^
serialization.cpp:202:134: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  202 | void json_add_string_vector_cpp(cpp11::external_pointer<nlohmann::json> json_ptr, std::string field_name, cpp11::strings field_vector) {
      |                                                                                                                                      ^
serialization.cpp:218:161: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  218 | void json_add_string_subfolder_cpp(cpp11::external_pointer<nlohmann::json> json_ptr, std::string subfolder_name, std::string field_name, std::string field_value) {
      |                                                                                                                                                                 ^
serialization.cpp:232:123: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  232 | void json_add_string_cpp(cpp11::external_pointer<nlohmann::json> json_ptr, std::string field_name, std::string field_value) {
      |                                                                                                                           ^
serialization.cpp:241:140: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  241 | bool json_contains_field_subfolder_cpp(cpp11::external_pointer<nlohmann::json> json_ptr, std::string subfolder_name, std::string field_name) {
      |                                                                                                                                            ^
serialization.cpp:254:102: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  254 | bool json_contains_field_cpp(cpp11::external_pointer<nlohmann::json> json_ptr, std::string field_name) {
      |                                                                                                      ^
serialization.cpp:263:142: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  263 | double json_extract_double_subfolder_cpp(cpp11::external_pointer<nlohmann::json> json_ptr, std::string subfolder_name, std::string field_name) {
      |                                                                                                                                              ^
serialization.cpp:268:104: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  268 | double json_extract_double_cpp(cpp11::external_pointer<nlohmann::json> json_ptr, std::string field_name) {
      |                                                                                                        ^
serialization.cpp:273:140: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  273 | int json_extract_integer_subfolder_cpp(cpp11::external_pointer<nlohmann::json> json_ptr, std::string subfolder_name, std::string field_name) {
      |                                                                                                                                            ^
serialization.cpp:278:102: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  278 | int json_extract_integer_cpp(cpp11::external_pointer<nlohmann::json> json_ptr, std::string field_name) {
      |                                                                                                      ^
serialization.cpp:283:138: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  283 | bool json_extract_bool_subfolder_cpp(cpp11::external_pointer<nlohmann::json> json_ptr, std::string subfolder_name, std::string field_name) {
      |                                                                                                                                          ^
serialization.cpp:288:100: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  288 | bool json_extract_bool_cpp(cpp11::external_pointer<nlohmann::json> json_ptr, std::string field_name) {
      |                                                                                                    ^
serialization.cpp:293:147: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  293 | std::string json_extract_string_subfolder_cpp(cpp11::external_pointer<nlohmann::json> json_ptr, std::string subfolder_name, std::string field_name) {
      |                                                                                                                                                   ^
serialization.cpp:298:109: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  298 | std::string json_extract_string_cpp(cpp11::external_pointer<nlohmann::json> json_ptr, std::string field_name) {
      |                                                                                                             ^
serialization.cpp:303:160: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  303 | cpp11::writable::doubles json_extract_vector_subfolder_cpp(cpp11::external_pointer<nlohmann::json> json_ptr, std::string subfolder_name, std::string field_name) {
      |                                                                                                                                                                ^
serialization.cpp:311:122: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  311 | cpp11::writable::doubles json_extract_vector_cpp(cpp11::external_pointer<nlohmann::json> json_ptr, std::string field_name) {
      |                                                                                                                          ^
serialization.cpp:319:169: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  319 | cpp11::writable::integers json_extract_integer_vector_subfolder_cpp(cpp11::external_pointer<nlohmann::json> json_ptr, std::string subfolder_name, std::string field_name) {
      |                                                                                                                                                                         ^
serialization.cpp:327:131: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  327 | cpp11::writable::integers json_extract_integer_vector_cpp(cpp11::external_pointer<nlohmann::json> json_ptr, std::string field_name) {
      |                                                                                                                                   ^
serialization.cpp:335:167: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  335 | cpp11::writable::strings json_extract_string_vector_subfolder_cpp(cpp11::external_pointer<nlohmann::json> json_ptr, std::string subfolder_name, std::string field_name) {
      |                                                                                                                                                                       ^
serialization.cpp:343:129: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  343 | cpp11::writable::strings json_extract_string_vector_cpp(cpp11::external_pointer<nlohmann::json> json_ptr, std::string field_name) {
      |                                                                                                                                 ^
serialization.cpp:351:149: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  351 | std::string json_add_forest_cpp(cpp11::external_pointer<nlohmann::json> json_ptr, cpp11::external_pointer<StochTree::ForestContainer> forest_samples) {
      |                                                                                                                                                     ^
serialization.cpp:361:83: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  361 | void json_increment_rfx_count_cpp(cpp11::external_pointer<nlohmann::json> json_ptr) {
      |                                                                                   ^
serialization.cpp:367:160: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  367 | std::string json_add_rfx_container_cpp(cpp11::external_pointer<nlohmann::json> json_ptr, cpp11::external_pointer<StochTree::RandomEffectsContainer> rfx_samples) {
      |                                                                                                                                                                ^
serialization.cpp:376:153: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  376 | std::string json_add_rfx_label_mapper_cpp(cpp11::external_pointer<nlohmann::json> json_ptr, cpp11::external_pointer<StochTree::LabelMapper> label_mapper) {
      |                                                                                                                                                         ^
serialization.cpp:385:113: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  385 | std::string json_add_rfx_groupids_cpp(cpp11::external_pointer<nlohmann::json> json_ptr, cpp11::integers groupids) {
      |                                                                                                                 ^
serialization.cpp:397:81: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  397 | std::string get_json_string_cpp(cpp11::external_pointer<nlohmann::json> json_ptr) {
      |                                                                                 ^
serialization.cpp:402:95: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  402 | void json_save_file_cpp(cpp11::external_pointer<nlohmann::json> json_ptr, std::string filename) {
      |                                                                                               ^
serialization.cpp:408:95: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  408 | void json_load_file_cpp(cpp11::external_pointer<nlohmann::json> json_ptr, std::string filename) {
      |                                                                                               ^
serialization.cpp:416:100: warning: 'cpp11::register' scoped attribute directive ignored [-Wattributes]
  416 | void json_load_string_cpp(cpp11::external_pointer<nlohmann::json> json_ptr, std::string json_string) {
      |                                                                                                    ^
../src/include/stochtree/tree_sampler.h: In instantiation of 'void StochTree::EvaluateAllPossibleSplits(ForestDataset&, ForestTracker&, ColumnVector&, TreePrior&, LeafModel&, double, int, int, std::vector<double>&, std::vector<int>&, std::vector<double>&, std::vector<FeatureType>&, data_size_t&, CutpointGridContainer&, data_size_t, data_size_t, std::vector<double>&, std::vector<FeatureType>&, LeafSuffStatConstructorArgs& ...) [with LeafModel = GaussianConstantLeafModel; LeafSuffStat = GaussianConstantSuffStat; LeafSuffStatConstructorArgs = {}; data_size_t = int]':
../src/include/stochtree/tree_sampler.h:578:85:   required from 'void StochTree::EvaluateCutpoints(Tree*, ForestTracker&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, int, double, int, int, data_size_t, data_size_t, std::vector<double>&, std::vector<int>&, std::vector<double>&, std::vector<FeatureType>&, data_size_t&, std::vector<double>&, std::vector<FeatureType>&, CutpointGridContainer&, LeafSuffStatConstructorArgs& ...) [with LeafModel = GaussianConstantLeafModel; LeafSuffStat = GaussianConstantSuffStat; LeafSuffStatConstructorArgs = {}; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>; data_size_t = int]'
  578 |   EvaluateAllPossibleSplits<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  579 |     dataset, tracker, residual, tree_prior, leaf_model, global_variance, tree_num, node_id, log_cutpoint_evaluations,
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  580 |     cutpoint_features, cutpoint_values, cutpoint_feature_types, valid_cutpoint_count, cutpoint_grid_container,
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  581 |     node_begin, node_end, variable_weights, feature_types, leaf_suff_stat_args...
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  582 |   );
      |   ~                                                                                  
../src/include/stochtree/tree_sampler.h:618:79:   required from 'void StochTree::SampleSplitRule(Tree*, ForestTracker&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, int, double, int, std::unordered_map<int, std::pair<int, int> >&, std::deque<int, std::allocator<int> >&, int, data_size_t, data_size_t, std::vector<double>&, std::vector<FeatureType>&, LeafSuffStatConstructorArgs& ...) [with LeafModel = GaussianConstantLeafModel; LeafSuffStat = GaussianConstantSuffStat; LeafSuffStatConstructorArgs = {}; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>; data_size_t = int]'
  618 |     EvaluateCutpoints<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  619 |       tree, tracker, leaf_model, dataset, residual, tree_prior, gen, tree_num, global_variance,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  620 |       cutpoint_grid_size, node_id, node_begin, node_end, log_cutpoint_evaluations, cutpoint_features,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  621 |       cutpoint_values, cutpoint_feature_types, valid_cutpoint_count, variable_weights, feature_types,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  622 |       cutpoint_grid_container, leaf_suff_stat_args...
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                          
  623 |     );
      |     ~                                                                          
../src/include/stochtree/tree_sampler.h:728:77:   required from 'void StochTree::GFRSampleTreeOneIter(Tree*, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, int, double, std::vector<FeatureType>&, int, LeafSuffStatConstructorArgs& ...) [with LeafModel = GaussianConstantLeafModel; LeafSuffStat = GaussianConstantSuffStat; LeafSuffStatConstructorArgs = {}; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>]'
  728 |     SampleSplitRule<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  729 |       tree, tracker, leaf_model, dataset, residual, tree_prior, gen, tree_num, global_variance, cutpoint_grid_size,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  730 |       node_index_map, split_queue, curr_node_id, curr_node_begin, curr_node_end, variable_weights, feature_types,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  731 |       leaf_suff_stat_args...);
      |       ~~~~~~~~~~~~~~~~~~~~~~~                                                
../src/include/stochtree/tree_sampler.h:785:82:   required from 'void StochTree::GFRSampleOneIter(TreeEnsemble&, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, double, std::vector<FeatureType>&, int, bool, bool, bool, LeafSuffStatConstructorArgs& ...) [with LeafModel = GaussianConstantLeafModel; LeafSuffStat = GaussianConstantSuffStat; LeafSuffStatConstructorArgs = {}; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>]'
  785 |     GFRSampleTreeOneIter<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  786 |       tree, tracker, forests, leaf_model, dataset, residual, tree_prior, gen,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
  787 |       variable_weights, i, global_variance, feature_types, cutpoint_grid_size,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  788 |       leaf_suff_stat_args...
      |       ~~~~~~~~~~~~~~~~~~~~~~                                                      
  789 |     );
      |     ~                                                                             
sampler.cpp:76:111:   required from here
   76 |         StochTree::GFRSampleOneIter<StochTree::GaussianConstantLeafModel, StochTree::GaussianConstantSuffStat>(*active_forest, *tracker, *forest_samples, std::get<StochTree::GaussianConstantLeafModel>(leaf_model), *data, *residual, *split_prior, *rng, var_weights_vector, global_variance, feature_types_, cutpoint_grid_size, keep_forest, pre_initialized, true);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:501:15: warning: unused variable 'node_row_iter' [-Wunused-variable]
  501 |   data_size_t node_row_iter;
      |               ^~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:502:15: warning: variable 'current_bin_begin' set but not used [-Wunused-but-set-variable]
  502 |   data_size_t current_bin_begin, current_bin_size, next_bin_begin;
      |               ^~~~~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:502:34: warning: variable 'current_bin_size' set but not used [-Wunused-but-set-variable]
  502 |   data_size_t current_bin_begin, current_bin_size, next_bin_begin;
      |                                  ^~~~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:502:52: warning: variable 'next_bin_begin' set but not used [-Wunused-but-set-variable]
  502 |   data_size_t current_bin_begin, current_bin_size, next_bin_begin;
      |                                                    ^~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:503:15: warning: unused variable 'feature_sort_idx' [-Wunused-variable]
  503 |   data_size_t feature_sort_idx;
      |               ^~~~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:504:15: warning: unused variable 'row_iter_idx' [-Wunused-variable]
  504 |   data_size_t row_iter_idx;
      |               ^~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:505:10: warning: unused variable 'outcome_val' [-Wunused-variable]
  505 |   double outcome_val, outcome_val_sq;
      |          ^~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:505:23: warning: unused variable 'outcome_val_sq' [-Wunused-variable]
  505 |   double outcome_val, outcome_val_sq;
      |                       ^~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:507:10: warning: unused variable 'feature_value' [-Wunused-variable]
  507 |   double feature_value = 0.0;
      |          ^~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:509:10: warning: unused variable 'log_split_eval' [-Wunused-variable]
  509 |   double log_split_eval = 0.0;
      |          ^~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h: In instantiation of 'void StochTree::EvaluateAllPossibleSplits(ForestDataset&, ForestTracker&, ColumnVector&, TreePrior&, LeafModel&, double, int, int, std::vector<double>&, std::vector<int>&, std::vector<double>&, std::vector<FeatureType>&, data_size_t&, CutpointGridContainer&, data_size_t, data_size_t, std::vector<double>&, std::vector<FeatureType>&, LeafSuffStatConstructorArgs& ...) [with LeafModel = GaussianUnivariateRegressionLeafModel; LeafSuffStat = GaussianUnivariateRegressionSuffStat; LeafSuffStatConstructorArgs = {}; data_size_t = int]':
../src/include/stochtree/tree_sampler.h:578:85:   required from 'void StochTree::EvaluateCutpoints(Tree*, ForestTracker&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, int, double, int, int, data_size_t, data_size_t, std::vector<double>&, std::vector<int>&, std::vector<double>&, std::vector<FeatureType>&, data_size_t&, std::vector<double>&, std::vector<FeatureType>&, CutpointGridContainer&, LeafSuffStatConstructorArgs& ...) [with LeafModel = GaussianUnivariateRegressionLeafModel; LeafSuffStat = GaussianUnivariateRegressionSuffStat; LeafSuffStatConstructorArgs = {}; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>; data_size_t = int]'
  578 |   EvaluateAllPossibleSplits<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  579 |     dataset, tracker, residual, tree_prior, leaf_model, global_variance, tree_num, node_id, log_cutpoint_evaluations,
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  580 |     cutpoint_features, cutpoint_values, cutpoint_feature_types, valid_cutpoint_count, cutpoint_grid_container,
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  581 |     node_begin, node_end, variable_weights, feature_types, leaf_suff_stat_args...
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  582 |   );
      |   ~                                                                                  
../src/include/stochtree/tree_sampler.h:618:79:   required from 'void StochTree::SampleSplitRule(Tree*, ForestTracker&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, int, double, int, std::unordered_map<int, std::pair<int, int> >&, std::deque<int, std::allocator<int> >&, int, data_size_t, data_size_t, std::vector<double>&, std::vector<FeatureType>&, LeafSuffStatConstructorArgs& ...) [with LeafModel = GaussianUnivariateRegressionLeafModel; LeafSuffStat = GaussianUnivariateRegressionSuffStat; LeafSuffStatConstructorArgs = {}; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>; data_size_t = int]'
  618 |     EvaluateCutpoints<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  619 |       tree, tracker, leaf_model, dataset, residual, tree_prior, gen, tree_num, global_variance,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  620 |       cutpoint_grid_size, node_id, node_begin, node_end, log_cutpoint_evaluations, cutpoint_features,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  621 |       cutpoint_values, cutpoint_feature_types, valid_cutpoint_count, variable_weights, feature_types,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  622 |       cutpoint_grid_container, leaf_suff_stat_args...
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                          
  623 |     );
      |     ~                                                                          
../src/include/stochtree/tree_sampler.h:728:77:   required from 'void StochTree::GFRSampleTreeOneIter(Tree*, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, int, double, std::vector<FeatureType>&, int, LeafSuffStatConstructorArgs& ...) [with LeafModel = GaussianUnivariateRegressionLeafModel; LeafSuffStat = GaussianUnivariateRegressionSuffStat; LeafSuffStatConstructorArgs = {}; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>]'
  728 |     SampleSplitRule<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  729 |       tree, tracker, leaf_model, dataset, residual, tree_prior, gen, tree_num, global_variance, cutpoint_grid_size,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  730 |       node_index_map, split_queue, curr_node_id, curr_node_begin, curr_node_end, variable_weights, feature_types,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  731 |       leaf_suff_stat_args...);
      |       ~~~~~~~~~~~~~~~~~~~~~~~                                                
../src/include/stochtree/tree_sampler.h:785:82:   required from 'void StochTree::GFRSampleOneIter(TreeEnsemble&, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, double, std::vector<FeatureType>&, int, bool, bool, bool, LeafSuffStatConstructorArgs& ...) [with LeafModel = GaussianUnivariateRegressionLeafModel; LeafSuffStat = GaussianUnivariateRegressionSuffStat; LeafSuffStatConstructorArgs = {}; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>]'
  785 |     GFRSampleTreeOneIter<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  786 |       tree, tracker, forests, leaf_model, dataset, residual, tree_prior, gen,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
  787 |       variable_weights, i, global_variance, feature_types, cutpoint_grid_size,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  788 |       leaf_suff_stat_args...
      |       ~~~~~~~~~~~~~~~~~~~~~~                                                      
  789 |     );
      |     ~                                                                             
sampler.cpp:78:135:   required from here
   78 |         StochTree::GFRSampleOneIter<StochTree::GaussianUnivariateRegressionLeafModel, StochTree::GaussianUnivariateRegressionSuffStat>(*active_forest, *tracker, *forest_samples, std::get<StochTree::GaussianUnivariateRegressionLeafModel>(leaf_model), *data, *residual, *split_prior, *rng, var_weights_vector, global_variance, feature_types_, cutpoint_grid_size, keep_forest, pre_initialized, true);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:501:15: warning: unused variable 'node_row_iter' [-Wunused-variable]
  501 |   data_size_t node_row_iter;
      |               ^~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:502:15: warning: variable 'current_bin_begin' set but not used [-Wunused-but-set-variable]
  502 |   data_size_t current_bin_begin, current_bin_size, next_bin_begin;
      |               ^~~~~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:502:34: warning: variable 'current_bin_size' set but not used [-Wunused-but-set-variable]
  502 |   data_size_t current_bin_begin, current_bin_size, next_bin_begin;
      |                                  ^~~~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:502:52: warning: variable 'next_bin_begin' set but not used [-Wunused-but-set-variable]
  502 |   data_size_t current_bin_begin, current_bin_size, next_bin_begin;
      |                                                    ^~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:503:15: warning: unused variable 'feature_sort_idx' [-Wunused-variable]
  503 |   data_size_t feature_sort_idx;
      |               ^~~~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:504:15: warning: unused variable 'row_iter_idx' [-Wunused-variable]
  504 |   data_size_t row_iter_idx;
      |               ^~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:505:10: warning: unused variable 'outcome_val' [-Wunused-variable]
  505 |   double outcome_val, outcome_val_sq;
      |          ^~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:505:23: warning: unused variable 'outcome_val_sq' [-Wunused-variable]
  505 |   double outcome_val, outcome_val_sq;
      |                       ^~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:507:10: warning: unused variable 'feature_value' [-Wunused-variable]
  507 |   double feature_value = 0.0;
      |          ^~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:509:10: warning: unused variable 'log_split_eval' [-Wunused-variable]
  509 |   double log_split_eval = 0.0;
      |          ^~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h: In instantiation of 'void StochTree::EvaluateAllPossibleSplits(ForestDataset&, ForestTracker&, ColumnVector&, TreePrior&, LeafModel&, double, int, int, std::vector<double>&, std::vector<int>&, std::vector<double>&, std::vector<FeatureType>&, data_size_t&, CutpointGridContainer&, data_size_t, data_size_t, std::vector<double>&, std::vector<FeatureType>&, LeafSuffStatConstructorArgs& ...) [with LeafModel = GaussianMultivariateRegressionLeafModel; LeafSuffStat = GaussianMultivariateRegressionSuffStat; LeafSuffStatConstructorArgs = {int}; data_size_t = int]':
../src/include/stochtree/tree_sampler.h:578:85:   required from 'void StochTree::EvaluateCutpoints(Tree*, ForestTracker&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, int, double, int, int, data_size_t, data_size_t, std::vector<double>&, std::vector<int>&, std::vector<double>&, std::vector<FeatureType>&, data_size_t&, std::vector<double>&, std::vector<FeatureType>&, CutpointGridContainer&, LeafSuffStatConstructorArgs& ...) [with LeafModel = GaussianMultivariateRegressionLeafModel; LeafSuffStat = GaussianMultivariateRegressionSuffStat; LeafSuffStatConstructorArgs = {int}; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>; data_size_t = int]'
  578 |   EvaluateAllPossibleSplits<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  579 |     dataset, tracker, residual, tree_prior, leaf_model, global_variance, tree_num, node_id, log_cutpoint_evaluations,
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  580 |     cutpoint_features, cutpoint_values, cutpoint_feature_types, valid_cutpoint_count, cutpoint_grid_container,
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  581 |     node_begin, node_end, variable_weights, feature_types, leaf_suff_stat_args...
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  582 |   );
      |   ~                                                                                  
../src/include/stochtree/tree_sampler.h:618:79:   required from 'void StochTree::SampleSplitRule(Tree*, ForestTracker&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, int, double, int, std::unordered_map<int, std::pair<int, int> >&, std::deque<int, std::allocator<int> >&, int, data_size_t, data_size_t, std::vector<double>&, std::vector<FeatureType>&, LeafSuffStatConstructorArgs& ...) [with LeafModel = GaussianMultivariateRegressionLeafModel; LeafSuffStat = GaussianMultivariateRegressionSuffStat; LeafSuffStatConstructorArgs = {int}; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>; data_size_t = int]'
  618 |     EvaluateCutpoints<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  619 |       tree, tracker, leaf_model, dataset, residual, tree_prior, gen, tree_num, global_variance,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  620 |       cutpoint_grid_size, node_id, node_begin, node_end, log_cutpoint_evaluations, cutpoint_features,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  621 |       cutpoint_values, cutpoint_feature_types, valid_cutpoint_count, variable_weights, feature_types,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  622 |       cutpoint_grid_container, leaf_suff_stat_args...
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                          
  623 |     );
      |     ~                                                                          
../src/include/stochtree/tree_sampler.h:728:77:   required from 'void StochTree::GFRSampleTreeOneIter(Tree*, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, int, double, std::vector<FeatureType>&, int, LeafSuffStatConstructorArgs& ...) [with LeafModel = GaussianMultivariateRegressionLeafModel; LeafSuffStat = GaussianMultivariateRegressionSuffStat; LeafSuffStatConstructorArgs = {int}; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>]'
  728 |     SampleSplitRule<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  729 |       tree, tracker, leaf_model, dataset, residual, tree_prior, gen, tree_num, global_variance, cutpoint_grid_size,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  730 |       node_index_map, split_queue, curr_node_id, curr_node_begin, curr_node_end, variable_weights, feature_types,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  731 |       leaf_suff_stat_args...);
      |       ~~~~~~~~~~~~~~~~~~~~~~~                                                
../src/include/stochtree/tree_sampler.h:785:82:   required from 'void StochTree::GFRSampleOneIter(TreeEnsemble&, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, double, std::vector<FeatureType>&, int, bool, bool, bool, LeafSuffStatConstructorArgs& ...) [with LeafModel = GaussianMultivariateRegressionLeafModel; LeafSuffStat = GaussianMultivariateRegressionSuffStat; LeafSuffStatConstructorArgs = {int}; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>]'
  785 |     GFRSampleTreeOneIter<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  786 |       tree, tracker, forests, leaf_model, dataset, residual, tree_prior, gen,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
  787 |       variable_weights, i, global_variance, feature_types, cutpoint_grid_size,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  788 |       leaf_suff_stat_args...
      |       ~~~~~~~~~~~~~~~~~~~~~~                                                      
  789 |     );
      |     ~                                                                             
sampler.cpp:80:144:   required from here
   80 |         StochTree::GFRSampleOneIter<StochTree::GaussianMultivariateRegressionLeafModel, StochTree::GaussianMultivariateRegressionSuffStat, int>(*active_forest, *tracker, *forest_samples, std::get<StochTree::GaussianMultivariateRegressionLeafModel>(leaf_model), *data, *residual, *split_prior, *rng, var_weights_vector, global_variance, feature_types_, cutpoint_grid_size, keep_forest, pre_initialized, true, num_basis);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:501:15: warning: unused variable 'node_row_iter' [-Wunused-variable]
  501 |   data_size_t node_row_iter;
      |               ^~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:502:15: warning: variable 'current_bin_begin' set but not used [-Wunused-but-set-variable]
  502 |   data_size_t current_bin_begin, current_bin_size, next_bin_begin;
      |               ^~~~~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:502:34: warning: variable 'current_bin_size' set but not used [-Wunused-but-set-variable]
  502 |   data_size_t current_bin_begin, current_bin_size, next_bin_begin;
      |                                  ^~~~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:502:52: warning: variable 'next_bin_begin' set but not used [-Wunused-but-set-variable]
  502 |   data_size_t current_bin_begin, current_bin_size, next_bin_begin;
      |                                                    ^~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:503:15: warning: unused variable 'feature_sort_idx' [-Wunused-variable]
  503 |   data_size_t feature_sort_idx;
      |               ^~~~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:504:15: warning: unused variable 'row_iter_idx' [-Wunused-variable]
  504 |   data_size_t row_iter_idx;
      |               ^~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:505:10: warning: unused variable 'outcome_val' [-Wunused-variable]
  505 |   double outcome_val, outcome_val_sq;
      |          ^~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:505:23: warning: unused variable 'outcome_val_sq' [-Wunused-variable]
  505 |   double outcome_val, outcome_val_sq;
      |                       ^~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:507:10: warning: unused variable 'feature_value' [-Wunused-variable]
  507 |   double feature_value = 0.0;
      |          ^~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:509:10: warning: unused variable 'log_split_eval' [-Wunused-variable]
  509 |   double log_split_eval = 0.0;
      |          ^~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h: In instantiation of 'void StochTree::EvaluateAllPossibleSplits(ForestDataset&, ForestTracker&, ColumnVector&, TreePrior&, LeafModel&, double, int, int, std::vector<double>&, std::vector<int>&, std::vector<double>&, std::vector<FeatureType>&, data_size_t&, CutpointGridContainer&, data_size_t, data_size_t, std::vector<double>&, std::vector<FeatureType>&, LeafSuffStatConstructorArgs& ...) [with LeafModel = LogLinearVarianceLeafModel; LeafSuffStat = LogLinearVarianceSuffStat; LeafSuffStatConstructorArgs = {}; data_size_t = int]':
../src/include/stochtree/tree_sampler.h:578:85:   required from 'void StochTree::EvaluateCutpoints(Tree*, ForestTracker&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, int, double, int, int, data_size_t, data_size_t, std::vector<double>&, std::vector<int>&, std::vector<double>&, std::vector<FeatureType>&, data_size_t&, std::vector<double>&, std::vector<FeatureType>&, CutpointGridContainer&, LeafSuffStatConstructorArgs& ...) [with LeafModel = LogLinearVarianceLeafModel; LeafSuffStat = LogLinearVarianceSuffStat; LeafSuffStatConstructorArgs = {}; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>; data_size_t = int]'
  578 |   EvaluateAllPossibleSplits<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  579 |     dataset, tracker, residual, tree_prior, leaf_model, global_variance, tree_num, node_id, log_cutpoint_evaluations,
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  580 |     cutpoint_features, cutpoint_values, cutpoint_feature_types, valid_cutpoint_count, cutpoint_grid_container,
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  581 |     node_begin, node_end, variable_weights, feature_types, leaf_suff_stat_args...
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  582 |   );
      |   ~                                                                                  
../src/include/stochtree/tree_sampler.h:618:79:   required from 'void StochTree::SampleSplitRule(Tree*, ForestTracker&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, int, double, int, std::unordered_map<int, std::pair<int, int> >&, std::deque<int, std::allocator<int> >&, int, data_size_t, data_size_t, std::vector<double>&, std::vector<FeatureType>&, LeafSuffStatConstructorArgs& ...) [with LeafModel = LogLinearVarianceLeafModel; LeafSuffStat = LogLinearVarianceSuffStat; LeafSuffStatConstructorArgs = {}; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>; data_size_t = int]'
  618 |     EvaluateCutpoints<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  619 |       tree, tracker, leaf_model, dataset, residual, tree_prior, gen, tree_num, global_variance,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  620 |       cutpoint_grid_size, node_id, node_begin, node_end, log_cutpoint_evaluations, cutpoint_features,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  621 |       cutpoint_values, cutpoint_feature_types, valid_cutpoint_count, variable_weights, feature_types,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  622 |       cutpoint_grid_container, leaf_suff_stat_args...
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                          
  623 |     );
      |     ~                                                                          
../src/include/stochtree/tree_sampler.h:728:77:   required from 'void StochTree::GFRSampleTreeOneIter(Tree*, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, int, double, std::vector<FeatureType>&, int, LeafSuffStatConstructorArgs& ...) [with LeafModel = LogLinearVarianceLeafModel; LeafSuffStat = LogLinearVarianceSuffStat; LeafSuffStatConstructorArgs = {}; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>]'
  728 |     SampleSplitRule<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  729 |       tree, tracker, leaf_model, dataset, residual, tree_prior, gen, tree_num, global_variance, cutpoint_grid_size,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  730 |       node_index_map, split_queue, curr_node_id, curr_node_begin, curr_node_end, variable_weights, feature_types,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  731 |       leaf_suff_stat_args...);
      |       ~~~~~~~~~~~~~~~~~~~~~~~                                                
../src/include/stochtree/tree_sampler.h:785:82:   required from 'void StochTree::GFRSampleOneIter(TreeEnsemble&, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, double, std::vector<FeatureType>&, int, bool, bool, bool, LeafSuffStatConstructorArgs& ...) [with LeafModel = LogLinearVarianceLeafModel; LeafSuffStat = LogLinearVarianceSuffStat; LeafSuffStatConstructorArgs = {}; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>]'
  785 |     GFRSampleTreeOneIter<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  786 |       tree, tracker, forests, leaf_model, dataset, residual, tree_prior, gen,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
  787 |       variable_weights, i, global_variance, feature_types, cutpoint_grid_size,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  788 |       leaf_suff_stat_args...
      |       ~~~~~~~~~~~~~~~~~~~~~~                                                      
  789 |     );
      |     ~                                                                             
sampler.cpp:82:113:   required from here
   82 |         StochTree::GFRSampleOneIter<StochTree::LogLinearVarianceLeafModel, StochTree::LogLinearVarianceSuffStat>(*active_forest, *tracker, *forest_samples, std::get<StochTree::LogLinearVarianceLeafModel>(leaf_model), *data, *residual, *split_prior, *rng, var_weights_vector, global_variance, feature_types_, cutpoint_grid_size, keep_forest, pre_initialized, false);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:501:15: warning: unused variable 'node_row_iter' [-Wunused-variable]
  501 |   data_size_t node_row_iter;
      |               ^~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:502:15: warning: variable 'current_bin_begin' set but not used [-Wunused-but-set-variable]
  502 |   data_size_t current_bin_begin, current_bin_size, next_bin_begin;
      |               ^~~~~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:502:34: warning: variable 'current_bin_size' set but not used [-Wunused-but-set-variable]
  502 |   data_size_t current_bin_begin, current_bin_size, next_bin_begin;
      |                                  ^~~~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:502:52: warning: variable 'next_bin_begin' set but not used [-Wunused-but-set-variable]
  502 |   data_size_t current_bin_begin, current_bin_size, next_bin_begin;
      |                                                    ^~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:503:15: warning: unused variable 'feature_sort_idx' [-Wunused-variable]
  503 |   data_size_t feature_sort_idx;
      |               ^~~~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:504:15: warning: unused variable 'row_iter_idx' [-Wunused-variable]
  504 |   data_size_t row_iter_idx;
      |               ^~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:505:10: warning: unused variable 'outcome_val' [-Wunused-variable]
  505 |   double outcome_val, outcome_val_sq;
      |          ^~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:505:23: warning: unused variable 'outcome_val_sq' [-Wunused-variable]
  505 |   double outcome_val, outcome_val_sq;
      |                       ^~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:507:10: warning: unused variable 'feature_value' [-Wunused-variable]
  507 |   double feature_value = 0.0;
      |          ^~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:509:10: warning: unused variable 'log_split_eval' [-Wunused-variable]
  509 |   double log_split_eval = 0.0;
      |          ^~~~~~~~~~~~~~
../src/include/stochtree/leaf_model.h: In instantiation of 'void StochTree::AccumulateCutpointBinSuffStat(SuffStatType&, ForestTracker&, CutpointGridContainer&, ForestDataset&, ColumnVector&, double, int, int, int, int) [with SuffStatType = GaussianConstantSuffStat]':
../src/include/stochtree/tree_sampler.h:531:52:   required from 'void StochTree::EvaluateAllPossibleSplits(ForestDataset&, ForestTracker&, ColumnVector&, TreePrior&, LeafModel&, double, int, int, std::vector<double>&, std::vector<int>&, std::vector<double>&, std::vector<FeatureType>&, data_size_t&, CutpointGridContainer&, data_size_t, data_size_t, std::vector<double>&, std::vector<FeatureType>&, LeafSuffStatConstructorArgs& ...) [with LeafModel = GaussianConstantLeafModel; LeafSuffStat = GaussianConstantSuffStat; LeafSuffStatConstructorArgs = {}; data_size_t = int]'
  531 |         AccumulateCutpointBinSuffStat<LeafSuffStat>(left_suff_stat, tracker, cutpoint_grid_container, dataset, residual,
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  532 |                                                     global_variance, tree_num, split_node_id, j, cutpoint_idx);
      |                                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:578:85:   required from 'void StochTree::EvaluateCutpoints(Tree*, ForestTracker&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, int, double, int, int, data_size_t, data_size_t, std::vector<double>&, std::vector<int>&, std::vector<double>&, std::vector<FeatureType>&, data_size_t&, std::vector<double>&, std::vector<FeatureType>&, CutpointGridContainer&, LeafSuffStatConstructorArgs& ...) [with LeafModel = GaussianConstantLeafModel; LeafSuffStat = GaussianConstantSuffStat; LeafSuffStatConstructorArgs = {}; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>; data_size_t = int]'
  578 |   EvaluateAllPossibleSplits<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  579 |     dataset, tracker, residual, tree_prior, leaf_model, global_variance, tree_num, node_id, log_cutpoint_evaluations,
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  580 |     cutpoint_features, cutpoint_values, cutpoint_feature_types, valid_cutpoint_count, cutpoint_grid_container,
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  581 |     node_begin, node_end, variable_weights, feature_types, leaf_suff_stat_args...
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  582 |   );
      |   ~                                                                                  
../src/include/stochtree/tree_sampler.h:618:79:   required from 'void StochTree::SampleSplitRule(Tree*, ForestTracker&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, int, double, int, std::unordered_map<int, std::pair<int, int> >&, std::deque<int, std::allocator<int> >&, int, data_size_t, data_size_t, std::vector<double>&, std::vector<FeatureType>&, LeafSuffStatConstructorArgs& ...) [with LeafModel = GaussianConstantLeafModel; LeafSuffStat = GaussianConstantSuffStat; LeafSuffStatConstructorArgs = {}; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>; data_size_t = int]'
  618 |     EvaluateCutpoints<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  619 |       tree, tracker, leaf_model, dataset, residual, tree_prior, gen, tree_num, global_variance,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  620 |       cutpoint_grid_size, node_id, node_begin, node_end, log_cutpoint_evaluations, cutpoint_features,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  621 |       cutpoint_values, cutpoint_feature_types, valid_cutpoint_count, variable_weights, feature_types,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  622 |       cutpoint_grid_container, leaf_suff_stat_args...
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                          
  623 |     );
      |     ~                                                                          
../src/include/stochtree/tree_sampler.h:728:77:   required from 'void StochTree::GFRSampleTreeOneIter(Tree*, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, int, double, std::vector<FeatureType>&, int, LeafSuffStatConstructorArgs& ...) [with LeafModel = GaussianConstantLeafModel; LeafSuffStat = GaussianConstantSuffStat; LeafSuffStatConstructorArgs = {}; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>]'
  728 |     SampleSplitRule<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  729 |       tree, tracker, leaf_model, dataset, residual, tree_prior, gen, tree_num, global_variance, cutpoint_grid_size,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  730 |       node_index_map, split_queue, curr_node_id, curr_node_begin, curr_node_end, variable_weights, feature_types,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  731 |       leaf_suff_stat_args...);
      |       ~~~~~~~~~~~~~~~~~~~~~~~                                                
../src/include/stochtree/tree_sampler.h:785:82:   required from 'void StochTree::GFRSampleOneIter(TreeEnsemble&, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, double, std::vector<FeatureType>&, int, bool, bool, bool, LeafSuffStatConstructorArgs& ...) [with LeafModel = GaussianConstantLeafModel; LeafSuffStat = GaussianConstantSuffStat; LeafSuffStatConstructorArgs = {}; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>]'
  785 |     GFRSampleTreeOneIter<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  786 |       tree, tracker, forests, leaf_model, dataset, residual, tree_prior, gen,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
  787 |       variable_weights, i, global_variance, feature_types, cutpoint_grid_size,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  788 |       leaf_suff_stat_args...
      |       ~~~~~~~~~~~~~~~~~~~~~~                                                      
  789 |     );
      |     ~                                                                             
sampler.cpp:76:111:   required from here
   76 |         StochTree::GFRSampleOneIter<StochTree::GaussianConstantLeafModel, StochTree::GaussianConstantSuffStat>(*active_forest, *tracker, *forest_samples, std::get<StochTree::GaussianConstantLeafModel>(leaf_model), *data, *residual, *split_prior, *rng, var_weights_vector, global_variance, feature_types_, cutpoint_grid_size, keep_forest, pre_initialized, true);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/leaf_model.h:1079:8: warning: variable 'node_end_iter' set but not used [-Wunused-but-set-variable]
 1079 |   auto node_end_iter = tracker.SortedNodeEndIterator(node_id, feature_num);
      |        ^~~~~~~~~~~~~
../src/include/stochtree/leaf_model.h:1086:15: warning: unused variable 'current_bin_size' [-Wunused-variable]
 1086 |   data_size_t current_bin_size = cutpoint_grid_container.BinLength(cutpoint_num, feature_num);
      |               ^~~~~~~~~~~~~~~~
../src/include/stochtree/leaf_model.h: In instantiation of 'void StochTree::AccumulateCutpointBinSuffStat(SuffStatType&, ForestTracker&, CutpointGridContainer&, ForestDataset&, ColumnVector&, double, int, int, int, int) [with SuffStatType = GaussianUnivariateRegressionSuffStat]':
../src/include/stochtree/tree_sampler.h:531:52:   required from 'void StochTree::EvaluateAllPossibleSplits(ForestDataset&, ForestTracker&, ColumnVector&, TreePrior&, LeafModel&, double, int, int, std::vector<double>&, std::vector<int>&, std::vector<double>&, std::vector<FeatureType>&, data_size_t&, CutpointGridContainer&, data_size_t, data_size_t, std::vector<double>&, std::vector<FeatureType>&, LeafSuffStatConstructorArgs& ...) [with LeafModel = GaussianUnivariateRegressionLeafModel; LeafSuffStat = GaussianUnivariateRegressionSuffStat; LeafSuffStatConstructorArgs = {}; data_size_t = int]'
  531 |         AccumulateCutpointBinSuffStat<LeafSuffStat>(left_suff_stat, tracker, cutpoint_grid_container, dataset, residual,
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  532 |                                                     global_variance, tree_num, split_node_id, j, cutpoint_idx);
      |                                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:578:85:   required from 'void StochTree::EvaluateCutpoints(Tree*, ForestTracker&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, int, double, int, int, data_size_t, data_size_t, std::vector<double>&, std::vector<int>&, std::vector<double>&, std::vector<FeatureType>&, data_size_t&, std::vector<double>&, std::vector<FeatureType>&, CutpointGridContainer&, LeafSuffStatConstructorArgs& ...) [with LeafModel = GaussianUnivariateRegressionLeafModel; LeafSuffStat = GaussianUnivariateRegressionSuffStat; LeafSuffStatConstructorArgs = {}; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>; data_size_t = int]'
  578 |   EvaluateAllPossibleSplits<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  579 |     dataset, tracker, residual, tree_prior, leaf_model, global_variance, tree_num, node_id, log_cutpoint_evaluations,
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  580 |     cutpoint_features, cutpoint_values, cutpoint_feature_types, valid_cutpoint_count, cutpoint_grid_container,
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  581 |     node_begin, node_end, variable_weights, feature_types, leaf_suff_stat_args...
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  582 |   );
      |   ~                                                                                  
../src/include/stochtree/tree_sampler.h:618:79:   required from 'void StochTree::SampleSplitRule(Tree*, ForestTracker&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, int, double, int, std::unordered_map<int, std::pair<int, int> >&, std::deque<int, std::allocator<int> >&, int, data_size_t, data_size_t, std::vector<double>&, std::vector<FeatureType>&, LeafSuffStatConstructorArgs& ...) [with LeafModel = GaussianUnivariateRegressionLeafModel; LeafSuffStat = GaussianUnivariateRegressionSuffStat; LeafSuffStatConstructorArgs = {}; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>; data_size_t = int]'
  618 |     EvaluateCutpoints<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  619 |       tree, tracker, leaf_model, dataset, residual, tree_prior, gen, tree_num, global_variance,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  620 |       cutpoint_grid_size, node_id, node_begin, node_end, log_cutpoint_evaluations, cutpoint_features,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  621 |       cutpoint_values, cutpoint_feature_types, valid_cutpoint_count, variable_weights, feature_types,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  622 |       cutpoint_grid_container, leaf_suff_stat_args...
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                          
  623 |     );
      |     ~                                                                          
../src/include/stochtree/tree_sampler.h:728:77:   required from 'void StochTree::GFRSampleTreeOneIter(Tree*, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, int, double, std::vector<FeatureType>&, int, LeafSuffStatConstructorArgs& ...) [with LeafModel = GaussianUnivariateRegressionLeafModel; LeafSuffStat = GaussianUnivariateRegressionSuffStat; LeafSuffStatConstructorArgs = {}; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>]'
  728 |     SampleSplitRule<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  729 |       tree, tracker, leaf_model, dataset, residual, tree_prior, gen, tree_num, global_variance, cutpoint_grid_size,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  730 |       node_index_map, split_queue, curr_node_id, curr_node_begin, curr_node_end, variable_weights, feature_types,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  731 |       leaf_suff_stat_args...);
      |       ~~~~~~~~~~~~~~~~~~~~~~~                                                
../src/include/stochtree/tree_sampler.h:785:82:   required from 'void StochTree::GFRSampleOneIter(TreeEnsemble&, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, double, std::vector<FeatureType>&, int, bool, bool, bool, LeafSuffStatConstructorArgs& ...) [with LeafModel = GaussianUnivariateRegressionLeafModel; LeafSuffStat = GaussianUnivariateRegressionSuffStat; LeafSuffStatConstructorArgs = {}; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>]'
  785 |     GFRSampleTreeOneIter<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  786 |       tree, tracker, forests, leaf_model, dataset, residual, tree_prior, gen,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
  787 |       variable_weights, i, global_variance, feature_types, cutpoint_grid_size,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  788 |       leaf_suff_stat_args...
      |       ~~~~~~~~~~~~~~~~~~~~~~                                                      
  789 |     );
      |     ~                                                                             
sampler.cpp:78:135:   required from here
   78 |         StochTree::GFRSampleOneIter<StochTree::GaussianUnivariateRegressionLeafModel, StochTree::GaussianUnivariateRegressionSuffStat>(*active_forest, *tracker, *forest_samples, std::get<StochTree::GaussianUnivariateRegressionLeafModel>(leaf_model), *data, *residual, *split_prior, *rng, var_weights_vector, global_variance, feature_types_, cutpoint_grid_size, keep_forest, pre_initialized, true);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/leaf_model.h:1079:8: warning: variable 'node_end_iter' set but not used [-Wunused-but-set-variable]
 1079 |   auto node_end_iter = tracker.SortedNodeEndIterator(node_id, feature_num);
      |        ^~~~~~~~~~~~~
../src/include/stochtree/leaf_model.h:1086:15: warning: unused variable 'current_bin_size' [-Wunused-variable]
 1086 |   data_size_t current_bin_size = cutpoint_grid_container.BinLength(cutpoint_num, feature_num);
      |               ^~~~~~~~~~~~~~~~
../src/include/stochtree/leaf_model.h: In instantiation of 'void StochTree::AccumulateCutpointBinSuffStat(SuffStatType&, ForestTracker&, CutpointGridContainer&, ForestDataset&, ColumnVector&, double, int, int, int, int) [with SuffStatType = GaussianMultivariateRegressionSuffStat]':
../src/include/stochtree/tree_sampler.h:531:52:   required from 'void StochTree::EvaluateAllPossibleSplits(ForestDataset&, ForestTracker&, ColumnVector&, TreePrior&, LeafModel&, double, int, int, std::vector<double>&, std::vector<int>&, std::vector<double>&, std::vector<FeatureType>&, data_size_t&, CutpointGridContainer&, data_size_t, data_size_t, std::vector<double>&, std::vector<FeatureType>&, LeafSuffStatConstructorArgs& ...) [with LeafModel = GaussianMultivariateRegressionLeafModel; LeafSuffStat = GaussianMultivariateRegressionSuffStat; LeafSuffStatConstructorArgs = {int}; data_size_t = int]'
  531 |         AccumulateCutpointBinSuffStat<LeafSuffStat>(left_suff_stat, tracker, cutpoint_grid_container, dataset, residual,
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  532 |                                                     global_variance, tree_num, split_node_id, j, cutpoint_idx);
      |                                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:578:85:   required from 'void StochTree::EvaluateCutpoints(Tree*, ForestTracker&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, int, double, int, int, data_size_t, data_size_t, std::vector<double>&, std::vector<int>&, std::vector<double>&, std::vector<FeatureType>&, data_size_t&, std::vector<double>&, std::vector<FeatureType>&, CutpointGridContainer&, LeafSuffStatConstructorArgs& ...) [with LeafModel = GaussianMultivariateRegressionLeafModel; LeafSuffStat = GaussianMultivariateRegressionSuffStat; LeafSuffStatConstructorArgs = {int}; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>; data_size_t = int]'
  578 |   EvaluateAllPossibleSplits<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  579 |     dataset, tracker, residual, tree_prior, leaf_model, global_variance, tree_num, node_id, log_cutpoint_evaluations,
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  580 |     cutpoint_features, cutpoint_values, cutpoint_feature_types, valid_cutpoint_count, cutpoint_grid_container,
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  581 |     node_begin, node_end, variable_weights, feature_types, leaf_suff_stat_args...
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  582 |   );
      |   ~                                                                                  
../src/include/stochtree/tree_sampler.h:618:79:   required from 'void StochTree::SampleSplitRule(Tree*, ForestTracker&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, int, double, int, std::unordered_map<int, std::pair<int, int> >&, std::deque<int, std::allocator<int> >&, int, data_size_t, data_size_t, std::vector<double>&, std::vector<FeatureType>&, LeafSuffStatConstructorArgs& ...) [with LeafModel = GaussianMultivariateRegressionLeafModel; LeafSuffStat = GaussianMultivariateRegressionSuffStat; LeafSuffStatConstructorArgs = {int}; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>; data_size_t = int]'
  618 |     EvaluateCutpoints<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  619 |       tree, tracker, leaf_model, dataset, residual, tree_prior, gen, tree_num, global_variance,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  620 |       cutpoint_grid_size, node_id, node_begin, node_end, log_cutpoint_evaluations, cutpoint_features,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  621 |       cutpoint_values, cutpoint_feature_types, valid_cutpoint_count, variable_weights, feature_types,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  622 |       cutpoint_grid_container, leaf_suff_stat_args...
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                          
  623 |     );
      |     ~                                                                          
../src/include/stochtree/tree_sampler.h:728:77:   required from 'void StochTree::GFRSampleTreeOneIter(Tree*, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, int, double, std::vector<FeatureType>&, int, LeafSuffStatConstructorArgs& ...) [with LeafModel = GaussianMultivariateRegressionLeafModel; LeafSuffStat = GaussianMultivariateRegressionSuffStat; LeafSuffStatConstructorArgs = {int}; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>]'
  728 |     SampleSplitRule<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  729 |       tree, tracker, leaf_model, dataset, residual, tree_prior, gen, tree_num, global_variance, cutpoint_grid_size,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  730 |       node_index_map, split_queue, curr_node_id, curr_node_begin, curr_node_end, variable_weights, feature_types,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  731 |       leaf_suff_stat_args...);
      |       ~~~~~~~~~~~~~~~~~~~~~~~                                                
../src/include/stochtree/tree_sampler.h:785:82:   required from 'void StochTree::GFRSampleOneIter(TreeEnsemble&, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, double, std::vector<FeatureType>&, int, bool, bool, bool, LeafSuffStatConstructorArgs& ...) [with LeafModel = GaussianMultivariateRegressionLeafModel; LeafSuffStat = GaussianMultivariateRegressionSuffStat; LeafSuffStatConstructorArgs = {int}; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>]'
  785 |     GFRSampleTreeOneIter<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  786 |       tree, tracker, forests, leaf_model, dataset, residual, tree_prior, gen,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
  787 |       variable_weights, i, global_variance, feature_types, cutpoint_grid_size,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  788 |       leaf_suff_stat_args...
      |       ~~~~~~~~~~~~~~~~~~~~~~                                                      
  789 |     );
      |     ~                                                                             
sampler.cpp:80:144:   required from here
   80 |         StochTree::GFRSampleOneIter<StochTree::GaussianMultivariateRegressionLeafModel, StochTree::GaussianMultivariateRegressionSuffStat, int>(*active_forest, *tracker, *forest_samples, std::get<StochTree::GaussianMultivariateRegressionLeafModel>(leaf_model), *data, *residual, *split_prior, *rng, var_weights_vector, global_variance, feature_types_, cutpoint_grid_size, keep_forest, pre_initialized, true, num_basis);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/leaf_model.h:1079:8: warning: variable 'node_end_iter' set but not used [-Wunused-but-set-variable]
 1079 |   auto node_end_iter = tracker.SortedNodeEndIterator(node_id, feature_num);
      |        ^~~~~~~~~~~~~
../src/include/stochtree/leaf_model.h:1086:15: warning: unused variable 'current_bin_size' [-Wunused-variable]
 1086 |   data_size_t current_bin_size = cutpoint_grid_container.BinLength(cutpoint_num, feature_num);
      |               ^~~~~~~~~~~~~~~~
../src/include/stochtree/leaf_model.h: In instantiation of 'void StochTree::AccumulateCutpointBinSuffStat(SuffStatType&, ForestTracker&, CutpointGridContainer&, ForestDataset&, ColumnVector&, double, int, int, int, int) [with SuffStatType = LogLinearVarianceSuffStat]':
../src/include/stochtree/tree_sampler.h:531:52:   required from 'void StochTree::EvaluateAllPossibleSplits(ForestDataset&, ForestTracker&, ColumnVector&, TreePrior&, LeafModel&, double, int, int, std::vector<double>&, std::vector<int>&, std::vector<double>&, std::vector<FeatureType>&, data_size_t&, CutpointGridContainer&, data_size_t, data_size_t, std::vector<double>&, std::vector<FeatureType>&, LeafSuffStatConstructorArgs& ...) [with LeafModel = LogLinearVarianceLeafModel; LeafSuffStat = LogLinearVarianceSuffStat; LeafSuffStatConstructorArgs = {}; data_size_t = int]'
  531 |         AccumulateCutpointBinSuffStat<LeafSuffStat>(left_suff_stat, tracker, cutpoint_grid_container, dataset, residual,
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  532 |                                                     global_variance, tree_num, split_node_id, j, cutpoint_idx);
      |                                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:578:85:   required from 'void StochTree::EvaluateCutpoints(Tree*, ForestTracker&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, int, double, int, int, data_size_t, data_size_t, std::vector<double>&, std::vector<int>&, std::vector<double>&, std::vector<FeatureType>&, data_size_t&, std::vector<double>&, std::vector<FeatureType>&, CutpointGridContainer&, LeafSuffStatConstructorArgs& ...) [with LeafModel = LogLinearVarianceLeafModel; LeafSuffStat = LogLinearVarianceSuffStat; LeafSuffStatConstructorArgs = {}; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>; data_size_t = int]'
  578 |   EvaluateAllPossibleSplits<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  579 |     dataset, tracker, residual, tree_prior, leaf_model, global_variance, tree_num, node_id, log_cutpoint_evaluations,
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  580 |     cutpoint_features, cutpoint_values, cutpoint_feature_types, valid_cutpoint_count, cutpoint_grid_container,
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  581 |     node_begin, node_end, variable_weights, feature_types, leaf_suff_stat_args...
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  582 |   );
      |   ~                                                                                  
../src/include/stochtree/tree_sampler.h:618:79:   required from 'void StochTree::SampleSplitRule(Tree*, ForestTracker&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, int, double, int, std::unordered_map<int, std::pair<int, int> >&, std::deque<int, std::allocator<int> >&, int, data_size_t, data_size_t, std::vector<double>&, std::vector<FeatureType>&, LeafSuffStatConstructorArgs& ...) [with LeafModel = LogLinearVarianceLeafModel; LeafSuffStat = LogLinearVarianceSuffStat; LeafSuffStatConstructorArgs = {}; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>; data_size_t = int]'
  618 |     EvaluateCutpoints<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  619 |       tree, tracker, leaf_model, dataset, residual, tree_prior, gen, tree_num, global_variance,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  620 |       cutpoint_grid_size, node_id, node_begin, node_end, log_cutpoint_evaluations, cutpoint_features,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  621 |       cutpoint_values, cutpoint_feature_types, valid_cutpoint_count, variable_weights, feature_types,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  622 |       cutpoint_grid_container, leaf_suff_stat_args...
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                          
  623 |     );
      |     ~                                                                          
../src/include/stochtree/tree_sampler.h:728:77:   required from 'void StochTree::GFRSampleTreeOneIter(Tree*, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, int, double, std::vector<FeatureType>&, int, LeafSuffStatConstructorArgs& ...) [with LeafModel = LogLinearVarianceLeafModel; LeafSuffStat = LogLinearVarianceSuffStat; LeafSuffStatConstructorArgs = {}; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>]'
  728 |     SampleSplitRule<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  729 |       tree, tracker, leaf_model, dataset, residual, tree_prior, gen, tree_num, global_variance, cutpoint_grid_size,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  730 |       node_index_map, split_queue, curr_node_id, curr_node_begin, curr_node_end, variable_weights, feature_types,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  731 |       leaf_suff_stat_args...);
      |       ~~~~~~~~~~~~~~~~~~~~~~~                                                
../src/include/stochtree/tree_sampler.h:785:82:   required from 'void StochTree::GFRSampleOneIter(TreeEnsemble&, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, double, std::vector<FeatureType>&, int, bool, bool, bool, LeafSuffStatConstructorArgs& ...) [with LeafModel = LogLinearVarianceLeafModel; LeafSuffStat = LogLinearVarianceSuffStat; LeafSuffStatConstructorArgs = {}; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>]'
  785 |     GFRSampleTreeOneIter<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  786 |       tree, tracker, forests, leaf_model, dataset, residual, tree_prior, gen,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
  787 |       variable_weights, i, global_variance, feature_types, cutpoint_grid_size,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  788 |       leaf_suff_stat_args...
      |       ~~~~~~~~~~~~~~~~~~~~~~                                                      
  789 |     );
      |     ~                                                                             
sampler.cpp:82:113:   required from here
   82 |         StochTree::GFRSampleOneIter<StochTree::LogLinearVarianceLeafModel, StochTree::LogLinearVarianceSuffStat>(*active_forest, *tracker, *forest_samples, std::get<StochTree::LogLinearVarianceLeafModel>(leaf_model), *data, *residual, *split_prior, *rng, var_weights_vector, global_variance, feature_types_, cutpoint_grid_size, keep_forest, pre_initialized, false);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/leaf_model.h:1079:8: warning: variable 'node_end_iter' set but not used [-Wunused-but-set-variable]
 1079 |   auto node_end_iter = tracker.SortedNodeEndIterator(node_id, feature_num);
      |        ^~~~~~~~~~~~~
../src/include/stochtree/leaf_model.h:1086:15: warning: unused variable 'current_bin_size' [-Wunused-variable]
 1086 |   data_size_t current_bin_size = cutpoint_grid_container.BinLength(cutpoint_num, feature_num);
      |               ^~~~~~~~~~~~~~~~
g++-14 -std=gnu++17 -I"/data/gannet/ripley/R/R-devel/include" -DNDEBUG -I../src/include -DSTOCHTREE_R_BUILD -I'/data/gannet/ripley/R/test-dev/cpp11/include' -I'/data/gannet/ripley/R/test-dev/BH/include' -I/usr/local/include    -fpic  -g -O2 -Wall -pedantic -mtune=native -Wno-ignored-attributes -Wno-parentheses -Wp,-D_FORTIFY_SOURCE=3 -fexceptions -fstack-protector-strong -fstack-clash-protection -fcf-protection   -c container.cpp -o container.o
g++-14 -std=gnu++17 -I"/data/gannet/ripley/R/R-devel/include" -DNDEBUG -I../src/include -DSTOCHTREE_R_BUILD -I'/data/gannet/ripley/R/test-dev/cpp11/include' -I'/data/gannet/ripley/R/test-dev/BH/include' -I/usr/local/include    -fpic  -g -O2 -Wall -pedantic -mtune=native -Wno-ignored-attributes -Wno-parentheses -Wp,-D_FORTIFY_SOURCE=3 -fexceptions -fstack-protector-strong -fstack-clash-protection -fcf-protection   -c cutpoint_candidates.cpp -o cutpoint_candidates.o
In file included from ../src/include/stochtree/container.h:9,
                 from container.cpp:3:
../src/include/stochtree/data.h: In function 'void StochTree::ExtractMultipleFeaturesFromMemory(std::vector<std::__cxx11::basic_string<char> >*, const Parser*, std::vector<int>&, Eigen::MatrixXd&, data_size_t)':
../src/include/stochtree/data.h:40:7: warning: unused variable 'feature_counter' [-Wunused-variable]
   40 |   int feature_counter;
      |       ^~~~~~~~~~~~~~~
../src/include/stochtree/data.h: In function 'void StochTree::ExtractSingleFeatureFromMemory(std::vector<std::__cxx11::basic_string<char> >*, const Parser*, int32_t, Eigen::VectorXd&, data_size_t)':
../src/include/stochtree/data.h:81:8: warning: unused variable 'column_matched' [-Wunused-variable]
   81 |   bool column_matched;
      |        ^~~~~~~~~~~~~~
In file included from ../src/include/stochtree/common.h:8,
                 from ../src/include/stochtree/io.h:20,
                 from ../src/include/stochtree/data.h:9:
../src/include/stochtree/tree.h: In member function 'void StochTree::Tree::CollapseToLeaf(int32_t, std::vector<double>)':
../src/include/stochtree/log.h:46:34: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<double>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/tree.h:193:5: note: in expansion of macro 'CHECK_EQ'
  193 |     CHECK_EQ(output_dimension_, value_vector.size());
      |     ^~~~~~~~
In file included from ../src/include/stochtree/container.h:10:
../src/include/stochtree/ensemble.h: In member function 'void StochTree::TreeEnsemble::PredictInplace(Eigen::MatrixXd&, Eigen::MatrixXd&, std::vector<double>&, int, int, StochTree::data_size_t)':
../src/include/stochtree/ensemble.h:202:23: warning: comparison of integer expressions of different signedness: 'std::vector<double>::size_type' {aka 'long unsigned int'} and 'StochTree::data_size_t' {aka 'int'} [-Wsign-compare]
  202 |     if (output.size() < total_output_size + offset) {
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/ensemble.h:207:37: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
  207 |       for (size_t j = tree_begin; j < tree_end; j++) {
      |                                   ~~^~~~~~~~~~
../src/include/stochtree/ensemble.h: In member function 'void StochTree::TreeEnsemble::PredictInplace(Eigen::MatrixXd&, std::vector<double>&, int, int, StochTree::data_size_t)':
../src/include/stochtree/ensemble.h:227:23: warning: comparison of integer expressions of different signedness: 'std::vector<double>::size_type' {aka 'long unsigned int'} and 'StochTree::data_size_t' {aka 'int'} [-Wsign-compare]
  227 |     if (output.size() < total_output_size + offset) {
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/ensemble.h:232:37: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
  232 |       for (size_t j = tree_begin; j < tree_end; j++) {
      |                                   ~~^~~~~~~~~~
../src/include/stochtree/ensemble.h: In member function 'void StochTree::TreeEnsemble::PredictRawInplace(StochTree::ForestDataset&, std::vector<double>&, int, int, StochTree::data_size_t)':
../src/include/stochtree/ensemble.h:253:23: warning: comparison of integer expressions of different signedness: 'std::vector<double>::size_type' {aka 'long unsigned int'} and 'StochTree::data_size_t' {aka 'int'} [-Wsign-compare]
  253 |     if (output.size() < total_output_size + offset) {
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/ensemble.h:259:39: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
  259 |         for (size_t j = tree_begin; j < tree_end; j++) {
      |                                     ~~^~~~~~~~~~
../src/include/stochtree/ensemble.h: In member function 'void StochTree::TreeEnsemble::SetLeafVector(std::vector<double>&)':
../src/include/stochtree/log.h:46:34: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<double>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/ensemble.h:333:5: note: in expansion of macro 'CHECK_EQ'
  333 |     CHECK_EQ(output_dimension_, leaf_vector.size());
      |     ^~~~~~~~
../src/include/stochtree/ensemble.h: In member function 'void StochTree::TreeEnsemble::PredictLeafIndicesInplace(Eigen::Map<Eigen::Matrix<double, -1, -1>, 0, Eigen::Stride<0, 0> >&, std::vector<int>&, int, StochTree::data_size_t)':
../src/include/stochtree/log.h:54:34: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   54 | #define CHECK_GE(a, b) CHECK((a) >= (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/ensemble.h:393:5: note: in expansion of macro 'CHECK_GE'
  393 |     CHECK_GE(output.size(), num_trees*n);
      |     ^~~~~~~~
../src/include/stochtree/ensemble.h: In member function 'void StochTree::TreeEnsemble::PredictLeafIndicesInplace(Eigen::MatrixXd&, std::vector<int>&, int, StochTree::data_size_t)':
../src/include/stochtree/log.h:54:34: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   54 | #define CHECK_GE(a, b) CHECK((a) >= (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/ensemble.h:456:5: note: in expansion of macro 'CHECK_GE'
  456 |     CHECK_GE(output.size(), num_trees*n);
      |     ^~~~~~~~
../src/include/stochtree/ensemble.h: In member function 'json StochTree::TreeEnsemble::to_json()':
../src/include/stochtree/ensemble.h:489:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::unique_ptr<StochTree::Tree> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  489 |     for (int i = 0; i < trees_.size(); i++) {
      |                     ~~^~~~~~~~~~~~~~~
g++-14 -std=gnu++17 -I"/data/gannet/ripley/R/R-devel/include" -DNDEBUG -I../src/include -DSTOCHTREE_R_BUILD -I'/data/gannet/ripley/R/test-dev/cpp11/include' -I'/data/gannet/ripley/R/test-dev/BH/include' -I/usr/local/include    -fpic  -g -O2 -Wall -pedantic -mtune=native -Wno-ignored-attributes -Wno-parentheses -Wp,-D_FORTIFY_SOURCE=3 -fexceptions -fstack-protector-strong -fstack-clash-protection -fcf-protection   -c data.cpp -o data.o
container.cpp: In member function 'void StochTree::ForestContainer::PredictInPlace(StochTree::ForestDataset&, std::vector<double>&)':
../src/include/stochtree/log.h:46:34: warning: comparison of integer expressions of different signedness: 'StochTree::data_size_t' {aka 'int'} and 'std::vector<double>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
container.cpp:114:3: note: in expansion of macro 'CHECK_EQ'
  114 |   CHECK_EQ(total_output_size, output.size());
      |   ^~~~~~~~
container.cpp: In member function 'void StochTree::ForestContainer::PredictRawInPlace(StochTree::ForestDataset&, std::vector<double>&)':
../src/include/stochtree/log.h:46:34: warning: comparison of integer expressions of different signedness: 'StochTree::data_size_t' {aka 'int'} and 'std::vector<double>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
container.cpp:126:3: note: in expansion of macro 'CHECK_EQ'
  126 |   CHECK_EQ(total_output_size, output.size());
      |   ^~~~~~~~
container.cpp: In member function 'void StochTree::ForestContainer::PredictRawInPlace(StochTree::ForestDataset&, int, std::vector<double>&)':
../src/include/stochtree/log.h:46:34: warning: comparison of integer expressions of different signedness: 'StochTree::data_size_t' {aka 'int'} and 'std::vector<double>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
container.cpp:138:3: note: in expansion of macro 'CHECK_EQ'
  138 |   CHECK_EQ(total_output_size, output.size());
      |   ^~~~~~~~
container.cpp: In member function 'void StochTree::ForestContainer::PredictRawSingleTreeInPlace(StochTree::ForestDataset&, int, int, std::vector<double>&)':
../src/include/stochtree/log.h:46:34: warning: comparison of integer expressions of different signedness: 'StochTree::data_size_t' {aka 'int'} and 'std::vector<double>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
container.cpp:147:3: note: in expansion of macro 'CHECK_EQ'
  147 |   CHECK_EQ(total_output_size, output.size());
      |   ^~~~~~~~
container.cpp: In member function 'json StochTree::ForestContainer::to_json()':
container.cpp:176:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::unique_ptr<StochTree::TreeEnsemble> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  176 |   for (int i = 0; i < forests_.size(); i++) {
      |                   ~~^~~~~~~~~~~~~~~~~
sampler.cpp: In function 'void sample_mcmc_one_iteration_cpp(cpp11::external_pointer<StochTree::ForestDataset>, cpp11::external_pointer<StochTree::ColumnVector>, cpp11::external_pointer<StochTree::ForestContainer>, cpp11::external_pointer<StochTree::TreeEnsemble>, cpp11::external_pointer<StochTree::ForestTracker>, cpp11::external_pointer<StochTree::TreePrior>, cpp11::external_pointer<std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253> >, cpp11::integers, int, cpp11::doubles_matrix<>, cpp11::doubles, double, double, double, int, bool)':
sampler.cpp:143:135: warning: 'leaf_scale' may be used uninitialized [-Wmaybe-uninitialized]
  143 |     StochTree::LeafModelVariant leaf_model = StochTree::leafModelFactory(model_type, leaf_scale, leaf_scale_matrix, a_forest, b_forest);
      |                                                                                                                                       ^
sampler.cpp:120:12: note: 'leaf_scale' was declared here
  120 |     double leaf_scale;
      |            ^~~~~~~~~~
In file included from ../src/include/stochtree/partition_tracker.h:28,
                 from ../src/include/stochtree/cutpoint_candidates.h:43,
                 from cutpoint_candidates.cpp:1:
../src/include/stochtree/data.h: In function 'void StochTree::ExtractMultipleFeaturesFromMemory(std::vector<std::__cxx11::basic_string<char> >*, const Parser*, std::vector<int>&, Eigen::MatrixXd&, data_size_t)':
../src/include/stochtree/data.h:40:7: warning: unused variable 'feature_counter' [-Wunused-variable]
   40 |   int feature_counter;
      |       ^~~~~~~~~~~~~~~
../src/include/stochtree/data.h: In function 'void StochTree::ExtractSingleFeatureFromMemory(std::vector<std::__cxx11::basic_string<char> >*, const Parser*, int32_t, Eigen::VectorXd&, data_size_t)':
../src/include/stochtree/data.h:81:8: warning: unused variable 'column_matched' [-Wunused-variable]
   81 |   bool column_matched;
      |        ^~~~~~~~~~~~~~
In file included from ../src/include/stochtree/common.h:8,
                 from ../src/include/stochtree/io.h:20,
                 from ../src/include/stochtree/data.h:9:
../src/include/stochtree/tree.h: In member function 'void StochTree::Tree::CollapseToLeaf(int32_t, std::vector<double>)':
../src/include/stochtree/log.h:46:34: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<double>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/tree.h:193:5: note: in expansion of macro 'CHECK_EQ'
  193 |     CHECK_EQ(output_dimension_, value_vector.size());
      |     ^~~~~~~~
In file included from ../src/include/stochtree/partition_tracker.h:29:
../src/include/stochtree/ensemble.h: In member function 'void StochTree::TreeEnsemble::PredictInplace(Eigen::MatrixXd&, Eigen::MatrixXd&, std::vector<double>&, int, int, StochTree::data_size_t)':
../src/include/stochtree/ensemble.h:202:23: warning: comparison of integer expressions of different signedness: 'std::vector<double>::size_type' {aka 'long unsigned int'} and 'StochTree::data_size_t' {aka 'int'} [-Wsign-compare]
  202 |     if (output.size() < total_output_size + offset) {
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/ensemble.h:207:37: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
  207 |       for (size_t j = tree_begin; j < tree_end; j++) {
      |                                   ~~^~~~~~~~~~
../src/include/stochtree/ensemble.h: In member function 'void StochTree::TreeEnsemble::PredictInplace(Eigen::MatrixXd&, std::vector<double>&, int, int, StochTree::data_size_t)':
../src/include/stochtree/ensemble.h:227:23: warning: comparison of integer expressions of different signedness: 'std::vector<double>::size_type' {aka 'long unsigned int'} and 'StochTree::data_size_t' {aka 'int'} [-Wsign-compare]
  227 |     if (output.size() < total_output_size + offset) {
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/ensemble.h:232:37: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
  232 |       for (size_t j = tree_begin; j < tree_end; j++) {
      |                                   ~~^~~~~~~~~~
../src/include/stochtree/ensemble.h: In member function 'void StochTree::TreeEnsemble::PredictRawInplace(StochTree::ForestDataset&, std::vector<double>&, int, int, StochTree::data_size_t)':
../src/include/stochtree/ensemble.h:253:23: warning: comparison of integer expressions of different signedness: 'std::vector<double>::size_type' {aka 'long unsigned int'} and 'StochTree::data_size_t' {aka 'int'} [-Wsign-compare]
  253 |     if (output.size() < total_output_size + offset) {
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/ensemble.h:259:39: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
  259 |         for (size_t j = tree_begin; j < tree_end; j++) {
      |                                     ~~^~~~~~~~~~
../src/include/stochtree/ensemble.h: In member function 'void StochTree::TreeEnsemble::SetLeafVector(std::vector<double>&)':
../src/include/stochtree/log.h:46:34: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<double>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/ensemble.h:333:5: note: in expansion of macro 'CHECK_EQ'
  333 |     CHECK_EQ(output_dimension_, leaf_vector.size());
      |     ^~~~~~~~
../src/include/stochtree/ensemble.h: In member function 'void StochTree::TreeEnsemble::PredictLeafIndicesInplace(Eigen::Map<Eigen::Matrix<double, -1, -1>, 0, Eigen::Stride<0, 0> >&, std::vector<int>&, int, StochTree::data_size_t)':
../src/include/stochtree/log.h:54:34: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   54 | #define CHECK_GE(a, b) CHECK((a) >= (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/ensemble.h:393:5: note: in expansion of macro 'CHECK_GE'
  393 |     CHECK_GE(output.size(), num_trees*n);
      |     ^~~~~~~~
../src/include/stochtree/ensemble.h: In member function 'void StochTree::TreeEnsemble::PredictLeafIndicesInplace(Eigen::MatrixXd&, std::vector<int>&, int, StochTree::data_size_t)':
../src/include/stochtree/log.h:54:34: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   54 | #define CHECK_GE(a, b) CHECK((a) >= (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/ensemble.h:456:5: note: in expansion of macro 'CHECK_GE'
  456 |     CHECK_GE(output.size(), num_trees*n);
      |     ^~~~~~~~
../src/include/stochtree/ensemble.h: In member function 'json StochTree::TreeEnsemble::to_json()':
../src/include/stochtree/ensemble.h:489:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::unique_ptr<StochTree::Tree> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  489 |     for (int i = 0; i < trees_.size(); i++) {
      |                     ~~^~~~~~~~~~~~~~~
../src/include/stochtree/partition_tracker.h: In member function 'void StochTree::UnsortedNodeSampleTracker::UpdateObservationMapping(StochTree::Tree*, int, StochTree::SampleNodeMapper*)':
../src/include/stochtree/partition_tracker.h:424:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  424 |     for (int i = 0; i < leaves.size(); i++) {
      |                     ~~^~~~~~~~~~~~~~~
../src/include/stochtree/partition_tracker.h: In member function 'void StochTree::FeaturePresortRoot::ArgsortRoot(Eigen::MatrixXd&)':
../src/include/stochtree/partition_tracker.h:494:38: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'StochTree::data_size_t' {aka 'int'} [-Wsign-compare]
  494 |     if (feature_sort_indices_.size() != num_obs){
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~
cutpoint_candidates.cpp: In member function 'void StochTree::FeatureCutpointGrid::CalculateStridesUnorderedCategorical(Eigen::MatrixXd&, Eigen::VectorXd&, StochTree::SortedNodeSampleTracker*, int32_t, StochTree::data_size_t, StochTree::data_size_t, int32_t)':
cutpoint_candidates.cpp:179:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<double>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  179 |   for (int i = 0; i < bin_sums.size(); i++) {
      |                   ~~^~~~~~~~~~~~~~~~~
cutpoint_candidates.cpp:195:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  195 |   for (int i = 0; i < node_stride_begin_.size(); i++) {
      |                   ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
cutpoint_candidates.cpp:139:10: warning: unused variable 'current_outcome' [-Wunused-variable]
  139 |   double current_outcome, next_outcome;
      |          ^~~~~~~~~~~~~~~
cutpoint_candidates.cpp:139:27: warning: unused variable 'next_outcome' [-Wunused-variable]
  139 |   double current_outcome, next_outcome;
      |                           ^~~~~~~~~~~~
In file included from data.cpp:3:
../src/include/stochtree/data.h: In function 'void StochTree::ExtractMultipleFeaturesFromMemory(std::vector<std::__cxx11::basic_string<char> >*, const Parser*, std::vector<int>&, Eigen::MatrixXd&, data_size_t)':
../src/include/stochtree/data.h:40:7: warning: unused variable 'feature_counter' [-Wunused-variable]
   40 |   int feature_counter;
      |       ^~~~~~~~~~~~~~~
../src/include/stochtree/data.h: In function 'void StochTree::ExtractSingleFeatureFromMemory(std::vector<std::__cxx11::basic_string<char> >*, const Parser*, int32_t, Eigen::VectorXd&, data_size_t)':
../src/include/stochtree/data.h:81:8: warning: unused variable 'column_matched' [-Wunused-variable]
   81 |   bool column_matched;
      |        ^~~~~~~~~~~~~~
data.cpp: In constructor 'StochTree::ColumnVector::ColumnVector(std::string, int32_t, bool, bool)':
data.cpp:74:7: warning: unused variable 'num_columns' [-Wunused-variable]
   74 |   int num_columns = parser->NumFeatures();
      |       ^~~~~~~~~~~
g++-14 -std=gnu++17 -I"/data/gannet/ripley/R/R-devel/include" -DNDEBUG -I../src/include -DSTOCHTREE_R_BUILD -I'/data/gannet/ripley/R/test-dev/cpp11/include' -I'/data/gannet/ripley/R/test-dev/BH/include' -I/usr/local/include    -fpic  -g -O2 -Wall -pedantic -mtune=native -Wno-ignored-attributes -Wno-parentheses -Wp,-D_FORTIFY_SOURCE=3 -fexceptions -fstack-protector-strong -fstack-clash-protection -fcf-protection   -c io.cpp -o io.o
sampler.cpp: In function 'void sample_gfr_one_iteration_cpp(cpp11::external_pointer<StochTree::ForestDataset>, cpp11::external_pointer<StochTree::ColumnVector>, cpp11::external_pointer<StochTree::ForestContainer>, cpp11::external_pointer<StochTree::TreeEnsemble>, cpp11::external_pointer<StochTree::ForestTracker>, cpp11::external_pointer<StochTree::TreePrior>, cpp11::external_pointer<std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253> >, cpp11::integers, int, cpp11::doubles_matrix<>, cpp11::doubles, double, double, double, int, bool)':
sampler.cpp:71:135: warning: 'leaf_scale' may be used uninitialized [-Wmaybe-uninitialized]
   71 |     StochTree::LeafModelVariant leaf_model = StochTree::leafModelFactory(model_type, leaf_scale, leaf_scale_matrix, a_forest, b_forest);
      |                                                                                                                                       ^
sampler.cpp:48:12: note: 'leaf_scale' was declared here
   48 |     double leaf_scale;
      |            ^~~~~~~~~~
g++-14 -std=gnu++17 -I"/data/gannet/ripley/R/R-devel/include" -DNDEBUG -I../src/include -DSTOCHTREE_R_BUILD -I'/data/gannet/ripley/R/test-dev/cpp11/include' -I'/data/gannet/ripley/R/test-dev/BH/include' -I/usr/local/include    -fpic  -g -O2 -Wall -pedantic -mtune=native -Wno-ignored-attributes -Wno-parentheses -Wp,-D_FORTIFY_SOURCE=3 -fexceptions -fstack-protector-strong -fstack-clash-protection -fcf-protection   -c leaf_model.cpp -o leaf_model.o
g++-14 -std=gnu++17 -I"/data/gannet/ripley/R/R-devel/include" -DNDEBUG -I../src/include -DSTOCHTREE_R_BUILD -I'/data/gannet/ripley/R/test-dev/cpp11/include' -I'/data/gannet/ripley/R/test-dev/BH/include' -I/usr/local/include    -fpic  -g -O2 -Wall -pedantic -mtune=native -Wno-ignored-attributes -Wno-parentheses -Wp,-D_FORTIFY_SOURCE=3 -fexceptions -fstack-protector-strong -fstack-clash-protection -fcf-protection   -c partition_tracker.cpp -o partition_tracker.o
g++-14 -std=gnu++17 -I"/data/gannet/ripley/R/R-devel/include" -DNDEBUG -I../src/include -DSTOCHTREE_R_BUILD -I'/data/gannet/ripley/R/test-dev/cpp11/include' -I'/data/gannet/ripley/R/test-dev/BH/include' -I/usr/local/include    -fpic  -g -O2 -Wall -pedantic -mtune=native -Wno-ignored-attributes -Wno-parentheses -Wp,-D_FORTIFY_SOURCE=3 -fexceptions -fstack-protector-strong -fstack-clash-protection -fcf-protection   -c random_effects.cpp -o random_effects.o
g++-14 -std=gnu++17 -I"/data/gannet/ripley/R/R-devel/include" -DNDEBUG -I../src/include -DSTOCHTREE_R_BUILD -I'/data/gannet/ripley/R/test-dev/cpp11/include' -I'/data/gannet/ripley/R/test-dev/BH/include' -I/usr/local/include    -fpic  -g -O2 -Wall -pedantic -mtune=native -Wno-ignored-attributes -Wno-parentheses -Wp,-D_FORTIFY_SOURCE=3 -fexceptions -fstack-protector-strong -fstack-clash-protection -fcf-protection   -c tree.cpp -o tree.o
In file included from ../src/include/stochtree/partition_tracker.h:28,
                 from partition_tracker.cpp:7:
../src/include/stochtree/data.h: In function 'void StochTree::ExtractMultipleFeaturesFromMemory(std::vector<std::__cxx11::basic_string<char> >*, const Parser*, std::vector<int>&, Eigen::MatrixXd&, data_size_t)':
../src/include/stochtree/data.h:40:7: warning: unused variable 'feature_counter' [-Wunused-variable]
   40 |   int feature_counter;
      |       ^~~~~~~~~~~~~~~
../src/include/stochtree/data.h: In function 'void StochTree::ExtractSingleFeatureFromMemory(std::vector<std::__cxx11::basic_string<char> >*, const Parser*, int32_t, Eigen::VectorXd&, data_size_t)':
../src/include/stochtree/data.h:81:8: warning: unused variable 'column_matched' [-Wunused-variable]
   81 |   bool column_matched;
      |        ^~~~~~~~~~~~~~
In file included from ../src/include/stochtree/partition_tracker.h:28,
                 from ../src/include/stochtree/cutpoint_candidates.h:43,
                 from ../src/include/stochtree/leaf_model.h:9,
                 from leaf_model.cpp:1:
../src/include/stochtree/data.h: In function 'void StochTree::ExtractMultipleFeaturesFromMemory(std::vector<std::__cxx11::basic_string<char> >*, const Parser*, std::vector<int>&, Eigen::MatrixXd&, data_size_t)':
../src/include/stochtree/data.h:40:7: warning: unused variable 'feature_counter' [-Wunused-variable]
   40 |   int feature_counter;
      |       ^~~~~~~~~~~~~~~
../src/include/stochtree/data.h: In function 'void StochTree::ExtractSingleFeatureFromMemory(std::vector<std::__cxx11::basic_string<char> >*, const Parser*, int32_t, Eigen::VectorXd&, data_size_t)':
../src/include/stochtree/data.h:81:8: warning: unused variable 'column_matched' [-Wunused-variable]
   81 |   bool column_matched;
      |        ^~~~~~~~~~~~~~
In file included from ../src/include/stochtree/partition_tracker.h:28,
                 from ../src/include/stochtree/cutpoint_candidates.h:43,
                 from ../src/include/stochtree/random_effects.h:9,
                 from random_effects.cpp:2:
../src/include/stochtree/data.h: In function 'void StochTree::ExtractMultipleFeaturesFromMemory(std::vector<std::__cxx11::basic_string<char> >*, const Parser*, std::vector<int>&, Eigen::MatrixXd&, data_size_t)':
../src/include/stochtree/data.h:40:7: warning: unused variable 'feature_counter' [-Wunused-variable]
   40 |   int feature_counter;
      |       ^~~~~~~~~~~~~~~
../src/include/stochtree/data.h: In function 'void StochTree::ExtractSingleFeatureFromMemory(std::vector<std::__cxx11::basic_string<char> >*, const Parser*, int32_t, Eigen::VectorXd&, data_size_t)':
../src/include/stochtree/data.h:81:8: warning: unused variable 'column_matched' [-Wunused-variable]
   81 |   bool column_matched;
      |        ^~~~~~~~~~~~~~
In file included from ../src/include/stochtree/common.h:8,
                 from ../src/include/stochtree/io.h:20,
                 from partition_tracker.cpp:6:
../src/include/stochtree/tree.h: In member function 'void StochTree::Tree::CollapseToLeaf(int32_t, std::vector<double>)':
../src/include/stochtree/log.h:46:34: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<double>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/tree.h:193:5: note: in expansion of macro 'CHECK_EQ'
  193 |     CHECK_EQ(output_dimension_, value_vector.size());
      |     ^~~~~~~~
In file included from ../src/include/stochtree/common.h:8,
                 from ../src/include/stochtree/io.h:20,
                 from ../src/include/stochtree/data.h:9:
../src/include/stochtree/tree.h: In member function 'void StochTree::Tree::CollapseToLeaf(int32_t, std::vector<double>)':
../src/include/stochtree/log.h:46:34: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<double>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/tree.h:193:5: note: in expansion of macro 'CHECK_EQ'
  193 |     CHECK_EQ(output_dimension_, value_vector.size());
      |     ^~~~~~~~
In file included from ../src/include/stochtree/partition_tracker.h:29:
../src/include/stochtree/ensemble.h: In member function 'void StochTree::TreeEnsemble::PredictInplace(Eigen::MatrixXd&, Eigen::MatrixXd&, std::vector<double>&, int, int, StochTree::data_size_t)':
../src/include/stochtree/ensemble.h:202:23: warning: comparison of integer expressions of different signedness: 'std::vector<double>::size_type' {aka 'long unsigned int'} and 'StochTree::data_size_t' {aka 'int'} [-Wsign-compare]
  202 |     if (output.size() < total_output_size + offset) {
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/ensemble.h:207:37: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
  207 |       for (size_t j = tree_begin; j < tree_end; j++) {
      |                                   ~~^~~~~~~~~~
../src/include/stochtree/ensemble.h: In member function 'void StochTree::TreeEnsemble::PredictInplace(Eigen::MatrixXd&, std::vector<double>&, int, int, StochTree::data_size_t)':
../src/include/stochtree/ensemble.h:227:23: warning: comparison of integer expressions of different signedness: 'std::vector<double>::size_type' {aka 'long unsigned int'} and 'StochTree::data_size_t' {aka 'int'} [-Wsign-compare]
  227 |     if (output.size() < total_output_size + offset) {
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/ensemble.h:232:37: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
  232 |       for (size_t j = tree_begin; j < tree_end; j++) {
      |                                   ~~^~~~~~~~~~
../src/include/stochtree/ensemble.h: In member function 'void StochTree::TreeEnsemble::PredictRawInplace(StochTree::ForestDataset&, std::vector<double>&, int, int, StochTree::data_size_t)':
../src/include/stochtree/ensemble.h:253:23: warning: comparison of integer expressions of different signedness: 'std::vector<double>::size_type' {aka 'long unsigned int'} and 'StochTree::data_size_t' {aka 'int'} [-Wsign-compare]
  253 |     if (output.size() < total_output_size + offset) {
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/ensemble.h:259:39: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
  259 |         for (size_t j = tree_begin; j < tree_end; j++) {
      |                                     ~~^~~~~~~~~~
../src/include/stochtree/ensemble.h: In member function 'void StochTree::TreeEnsemble::SetLeafVector(std::vector<double>&)':
../src/include/stochtree/log.h:46:34: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<double>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/ensemble.h:333:5: note: in expansion of macro 'CHECK_EQ'
  333 |     CHECK_EQ(output_dimension_, leaf_vector.size());
      |     ^~~~~~~~
../src/include/stochtree/ensemble.h: In member function 'void StochTree::TreeEnsemble::PredictLeafIndicesInplace(Eigen::Map<Eigen::Matrix<double, -1, -1>, 0, Eigen::Stride<0, 0> >&, std::vector<int>&, int, StochTree::data_size_t)':
../src/include/stochtree/log.h:54:34: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   54 | #define CHECK_GE(a, b) CHECK((a) >= (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/ensemble.h:393:5: note: in expansion of macro 'CHECK_GE'
  393 |     CHECK_GE(output.size(), num_trees*n);
      |     ^~~~~~~~
In file included from ../src/include/stochtree/partition_tracker.h:29:
../src/include/stochtree/ensemble.h: In member function 'void StochTree::TreeEnsemble::PredictInplace(Eigen::MatrixXd&, Eigen::MatrixXd&, std::vector<double>&, int, int, StochTree::data_size_t)':
../src/include/stochtree/ensemble.h:202:23: warning: comparison of integer expressions of different signedness: 'std::vector<double>::size_type' {aka 'long unsigned int'} and 'StochTree::data_size_t' {aka 'int'} [-Wsign-compare]
  202 |     if (output.size() < total_output_size + offset) {
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/ensemble.h:207:37: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
  207 |       for (size_t j = tree_begin; j < tree_end; j++) {
      |                                   ~~^~~~~~~~~~
../src/include/stochtree/ensemble.h: In member function 'void StochTree::TreeEnsemble::PredictInplace(Eigen::MatrixXd&, std::vector<double>&, int, int, StochTree::data_size_t)':
../src/include/stochtree/ensemble.h:227:23: warning: comparison of integer expressions of different signedness: 'std::vector<double>::size_type' {aka 'long unsigned int'} and 'StochTree::data_size_t' {aka 'int'} [-Wsign-compare]
  227 |     if (output.size() < total_output_size + offset) {
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/ensemble.h:232:37: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
  232 |       for (size_t j = tree_begin; j < tree_end; j++) {
      |                                   ~~^~~~~~~~~~
../src/include/stochtree/ensemble.h: In member function 'void StochTree::TreeEnsemble::PredictRawInplace(StochTree::ForestDataset&, std::vector<double>&, int, int, StochTree::data_size_t)':
../src/include/stochtree/ensemble.h:253:23: warning: comparison of integer expressions of different signedness: 'std::vector<double>::size_type' {aka 'long unsigned int'} and 'StochTree::data_size_t' {aka 'int'} [-Wsign-compare]
  253 |     if (output.size() < total_output_size + offset) {
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/ensemble.h:259:39: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
  259 |         for (size_t j = tree_begin; j < tree_end; j++) {
      |                                     ~~^~~~~~~~~~
../src/include/stochtree/ensemble.h: In member function 'void StochTree::TreeEnsemble::SetLeafVector(std::vector<double>&)':
../src/include/stochtree/log.h:46:34: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<double>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/ensemble.h:333:5: note: in expansion of macro 'CHECK_EQ'
  333 |     CHECK_EQ(output_dimension_, leaf_vector.size());
      |     ^~~~~~~~
../src/include/stochtree/ensemble.h: In member function 'void StochTree::TreeEnsemble::PredictLeafIndicesInplace(Eigen::Map<Eigen::Matrix<double, -1, -1>, 0, Eigen::Stride<0, 0> >&, std::vector<int>&, int, StochTree::data_size_t)':
../src/include/stochtree/log.h:54:34: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   54 | #define CHECK_GE(a, b) CHECK((a) >= (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/ensemble.h:393:5: note: in expansion of macro 'CHECK_GE'
  393 |     CHECK_GE(output.size(), num_trees*n);
      |     ^~~~~~~~
../src/include/stochtree/ensemble.h: In member function 'void StochTree::TreeEnsemble::PredictLeafIndicesInplace(Eigen::MatrixXd&, std::vector<int>&, int, StochTree::data_size_t)':
../src/include/stochtree/log.h:54:34: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   54 | #define CHECK_GE(a, b) CHECK((a) >= (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/ensemble.h:456:5: note: in expansion of macro 'CHECK_GE'
  456 |     CHECK_GE(output.size(), num_trees*n);
      |     ^~~~~~~~
../src/include/stochtree/ensemble.h: In member function 'json StochTree::TreeEnsemble::to_json()':
../src/include/stochtree/ensemble.h:489:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::unique_ptr<StochTree::Tree> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  489 |     for (int i = 0; i < trees_.size(); i++) {
      |                     ~~^~~~~~~~~~~~~~~
../src/include/stochtree/ensemble.h: In member function 'void StochTree::TreeEnsemble::PredictLeafIndicesInplace(Eigen::MatrixXd&, std::vector<int>&, int, StochTree::data_size_t)':
../src/include/stochtree/log.h:54:34: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   54 | #define CHECK_GE(a, b) CHECK((a) >= (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/ensemble.h:456:5: note: in expansion of macro 'CHECK_GE'
  456 |     CHECK_GE(output.size(), num_trees*n);
      |     ^~~~~~~~
../src/include/stochtree/ensemble.h: In member function 'json StochTree::TreeEnsemble::to_json()':
../src/include/stochtree/ensemble.h:489:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::unique_ptr<StochTree::Tree> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  489 |     for (int i = 0; i < trees_.size(); i++) {
      |                     ~~^~~~~~~~~~~~~~~
../src/include/stochtree/partition_tracker.h: In member function 'void StochTree::UnsortedNodeSampleTracker::UpdateObservationMapping(StochTree::Tree*, int, StochTree::SampleNodeMapper*)':
../src/include/stochtree/partition_tracker.h:424:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  424 |     for (int i = 0; i < leaves.size(); i++) {
      |                     ~~^~~~~~~~~~~~~~~
../src/include/stochtree/partition_tracker.h: In member function 'void StochTree::FeaturePresortRoot::ArgsortRoot(Eigen::MatrixXd&)':
../src/include/stochtree/partition_tracker.h:494:38: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'StochTree::data_size_t' {aka 'int'} [-Wsign-compare]
  494 |     if (feature_sort_indices_.size() != num_obs){
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~
../src/include/stochtree/partition_tracker.h: In member function 'void StochTree::UnsortedNodeSampleTracker::UpdateObservationMapping(StochTree::Tree*, int, StochTree::SampleNodeMapper*)':
../src/include/stochtree/partition_tracker.h:424:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  424 |     for (int i = 0; i < leaves.size(); i++) {
      |                     ~~^~~~~~~~~~~~~~~
../src/include/stochtree/partition_tracker.h: In member function 'void StochTree::FeaturePresortRoot::ArgsortRoot(Eigen::MatrixXd&)':
../src/include/stochtree/partition_tracker.h:494:38: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'StochTree::data_size_t' {aka 'int'} [-Wsign-compare]
  494 |     if (feature_sort_indices_.size() != num_obs){
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~
partition_tracker.cpp: In member function 'void StochTree::FeatureUnsortedPartition::ReconstituteFromTree(StochTree::Tree&, StochTree::ForestDataset&)':
../src/include/stochtree/log.h:46:34: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'StochTree::data_size_t' {aka 'int'} [-Wsign-compare]
   46 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
partition_tracker.cpp:354:3: note: in expansion of macro 'CHECK_EQ'
  354 |   CHECK_EQ(indices_.size(), n);
      |   ^~~~~~~~
partition_tracker.cpp: In member function 'void StochTree::FeaturePresortPartition::UpdateObservationMapping(int, int, StochTree::SampleNodeMapper*)':
partition_tracker.cpp:686:15: warning: unused variable 'node_size' [-Wunused-variable]
  686 |   data_size_t node_size = NodeSize(node_id);
      |               ^~~~~~~~~
In file included from ../src/include/stochtree/category_tracker.h:29,
                 from ../src/include/stochtree/random_effects.h:8:
../src/include/stochtree/tree.h: In member function 'void StochTree::Tree::CollapseToLeaf(int32_t, std::vector<double>)':
../src/include/stochtree/log.h:46:34: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<double>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/tree.h:193:5: note: in expansion of macro 'CHECK_EQ'
  193 |     CHECK_EQ(output_dimension_, value_vector.size());
      |     ^~~~~~~~
In file included from ../src/include/stochtree/partition_tracker.h:29:
../src/include/stochtree/ensemble.h: In member function 'void StochTree::TreeEnsemble::PredictInplace(Eigen::MatrixXd&, Eigen::MatrixXd&, std::vector<double>&, int, int, StochTree::data_size_t)':
../src/include/stochtree/ensemble.h:202:23: warning: comparison of integer expressions of different signedness: 'std::vector<double>::size_type' {aka 'long unsigned int'} and 'StochTree::data_size_t' {aka 'int'} [-Wsign-compare]
  202 |     if (output.size() < total_output_size + offset) {
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/ensemble.h:207:37: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
  207 |       for (size_t j = tree_begin; j < tree_end; j++) {
      |                                   ~~^~~~~~~~~~
../src/include/stochtree/ensemble.h: In member function 'void StochTree::TreeEnsemble::PredictInplace(Eigen::MatrixXd&, std::vector<double>&, int, int, StochTree::data_size_t)':
../src/include/stochtree/ensemble.h:227:23: warning: comparison of integer expressions of different signedness: 'std::vector<double>::size_type' {aka 'long unsigned int'} and 'StochTree::data_size_t' {aka 'int'} [-Wsign-compare]
  227 |     if (output.size() < total_output_size + offset) {
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/ensemble.h:232:37: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
  232 |       for (size_t j = tree_begin; j < tree_end; j++) {
      |                                   ~~^~~~~~~~~~
../src/include/stochtree/ensemble.h: In member function 'void StochTree::TreeEnsemble::PredictRawInplace(StochTree::ForestDataset&, std::vector<double>&, int, int, StochTree::data_size_t)':
../src/include/stochtree/ensemble.h:253:23: warning: comparison of integer expressions of different signedness: 'std::vector<double>::size_type' {aka 'long unsigned int'} and 'StochTree::data_size_t' {aka 'int'} [-Wsign-compare]
  253 |     if (output.size() < total_output_size + offset) {
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/ensemble.h:259:39: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
  259 |         for (size_t j = tree_begin; j < tree_end; j++) {
      |                                     ~~^~~~~~~~~~
../src/include/stochtree/ensemble.h: In member function 'void StochTree::TreeEnsemble::SetLeafVector(std::vector<double>&)':
../src/include/stochtree/log.h:46:34: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<double>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/ensemble.h:333:5: note: in expansion of macro 'CHECK_EQ'
  333 |     CHECK_EQ(output_dimension_, leaf_vector.size());
      |     ^~~~~~~~
../src/include/stochtree/ensemble.h: In member function 'void StochTree::TreeEnsemble::PredictLeafIndicesInplace(Eigen::Map<Eigen::Matrix<double, -1, -1>, 0, Eigen::Stride<0, 0> >&, std::vector<int>&, int, StochTree::data_size_t)':
../src/include/stochtree/log.h:54:34: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   54 | #define CHECK_GE(a, b) CHECK((a) >= (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/ensemble.h:393:5: note: in expansion of macro 'CHECK_GE'
  393 |     CHECK_GE(output.size(), num_trees*n);
      |     ^~~~~~~~
../src/include/stochtree/ensemble.h: In member function 'void StochTree::TreeEnsemble::PredictLeafIndicesInplace(Eigen::MatrixXd&, std::vector<int>&, int, StochTree::data_size_t)':
../src/include/stochtree/log.h:54:34: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   54 | #define CHECK_GE(a, b) CHECK((a) >= (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/ensemble.h:456:5: note: in expansion of macro 'CHECK_GE'
  456 |     CHECK_GE(output.size(), num_trees*n);
      |     ^~~~~~~~
../src/include/stochtree/ensemble.h: In member function 'json StochTree::TreeEnsemble::to_json()':
../src/include/stochtree/ensemble.h:489:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::unique_ptr<StochTree::Tree> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  489 |     for (int i = 0; i < trees_.size(); i++) {
      |                     ~~^~~~~~~~~~~~~~~
../src/include/stochtree/partition_tracker.h: In member function 'void StochTree::UnsortedNodeSampleTracker::UpdateObservationMapping(StochTree::Tree*, int, StochTree::SampleNodeMapper*)':
../src/include/stochtree/partition_tracker.h:424:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  424 |     for (int i = 0; i < leaves.size(); i++) {
      |                     ~~^~~~~~~~~~~~~~~
../src/include/stochtree/partition_tracker.h: In member function 'void StochTree::FeaturePresortRoot::ArgsortRoot(Eigen::MatrixXd&)':
../src/include/stochtree/partition_tracker.h:494:38: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'StochTree::data_size_t' {aka 'int'} [-Wsign-compare]
  494 |     if (feature_sort_indices_.size() != num_obs){
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~
In file included from ../src/include/stochtree/tree.h:10,
                 from tree.cpp:8:
../src/include/stochtree/data.h: In function 'void StochTree::ExtractMultipleFeaturesFromMemory(std::vector<std::__cxx11::basic_string<char> >*, const Parser*, std::vector<int>&, Eigen::MatrixXd&, data_size_t)':
../src/include/stochtree/data.h:40:7: warning: unused variable 'feature_counter' [-Wunused-variable]
   40 |   int feature_counter;
      |       ^~~~~~~~~~~~~~~
../src/include/stochtree/data.h: In function 'void StochTree::ExtractSingleFeatureFromMemory(std::vector<std::__cxx11::basic_string<char> >*, const Parser*, int32_t, Eigen::VectorXd&, data_size_t)':
../src/include/stochtree/data.h:81:8: warning: unused variable 'column_matched' [-Wunused-variable]
   81 |   bool column_matched;
      |        ^~~~~~~~~~~~~~
../src/include/stochtree/random_effects.h: In member function 'void StochTree::MultivariateRegressionRandomEffectsModel::PredictInplace(StochTree::RandomEffectsDataset&, StochTree::RandomEffectsTracker&, std::vector<double>&)':
../src/include/stochtree/log.h:46:34: warning: comparison of integer expressions of different signedness: 'Eigen::Index' {aka 'long int'} and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/random_effects.h:185:5: note: in expansion of macro 'CHECK_EQ'
  185 |     CHECK_EQ(X.rows(), group_labels.size());
      |     ^~~~~~~~
../src/include/stochtree/log.h:46:34: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<double>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/random_effects.h:187:5: note: in expansion of macro 'CHECK_EQ'
  187 |     CHECK_EQ(n, output.size());
      |     ^~~~~~~~
In file included from ../src/include/stochtree/common.h:8,
                 from tree.cpp:7:
../src/include/stochtree/tree.h: In member function 'void StochTree::Tree::CollapseToLeaf(int32_t, std::vector<double>)':
../src/include/stochtree/log.h:46:34: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<double>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/tree.h:193:5: note: in expansion of macro 'CHECK_EQ'
  193 |     CHECK_EQ(output_dimension_, value_vector.size());
      |     ^~~~~~~~
tree.cpp: In member function 'void StochTree::Tree::ExpandNode(int32_t, int, double, std::vector<double>, std::vector<double>)':
../src/include/stochtree/log.h:46:34: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<double>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
tree.cpp:213:3: note: in expansion of macro 'CHECK_EQ'
  213 |   CHECK_EQ(output_dimension_, left_value_vector.size());
      |   ^~~~~~~~
../src/include/stochtree/log.h:46:34: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<double>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
tree.cpp:214:3: note: in expansion of macro 'CHECK_EQ'
  214 |   CHECK_EQ(output_dimension_, right_value_vector.size());
      |   ^~~~~~~~
tree.cpp: In member function 'void StochTree::Tree::ExpandNode(int32_t, int, const std::vector<unsigned int>&, std::vector<double>, std::vector<double>)':
../src/include/stochtree/log.h:46:34: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<double>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
tree.cpp:241:3: note: in expansion of macro 'CHECK_EQ'
  241 |   CHECK_EQ(output_dimension_, left_value_vector.size());
      |   ^~~~~~~~
../src/include/stochtree/log.h:46:34: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<double>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
tree.cpp:242:3: note: in expansion of macro 'CHECK_EQ'
  242 |   CHECK_EQ(output_dimension_, right_value_vector.size());
      |   ^~~~~~~~
tree.cpp: In member function 'void StochTree::Tree::SetLeafVector(int32_t, const std::vector<double>&)':
../src/include/stochtree/log.h:46:34: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<double>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
tree.cpp:393:3: note: in expansion of macro 'CHECK_EQ'
  393 |   CHECK_EQ(output_dimension_, node_leaf_vector.size());
      |   ^~~~~~~~
tree.cpp:395:33: warning: comparison of integer expressions of different signedness: 'std::vector<double>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
  395 |     if (node_leaf_vector.size() != output_dimension_) {
      |         ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
tree.cpp: In member function 'void StochTree::Tree::PredictLeafIndexInplace(Eigen::MatrixXd&, std::vector<int>&, int32_t, int32_t)':
../src/include/stochtree/log.h:54:34: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int32_t' {aka 'int'} [-Wsign-compare]
   54 | #define CHECK_GE(a, b) CHECK((a) >= (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
tree.cpp:428:3: note: in expansion of macro 'CHECK_GE'
  428 |   CHECK_GE(output.size(), offset + n);
      |   ^~~~~~~~
../src/include/stochtree/random_effects.h: In member function 'void StochTree::MultivariateRegressionRandomEffectsModel::SubtractNewPredictionFromResidual(StochTree::RandomEffectsDataset&, StochTree::RandomEffectsTracker&, StochTree::ColumnVector&)':
../src/include/stochtree/log.h:46:34: warning: comparison of integer expressions of different signedness: 'Eigen::Index' {aka 'long int'} and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/random_effects.h:211:5: note: in expansion of macro 'CHECK_EQ'
  211 |     CHECK_EQ(X.rows(), group_labels.size());
      |     ^~~~~~~~
tree.cpp:430:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  430 |   for (int i = 0; i < leaves_.size(); i++) {
      |                   ~~^~~~~~~~~~~~~~~~
tree.cpp:433:20: warning: unused variable 'remapped_node' [-Wunused-variable]
  433 |   int32_t node_id, remapped_node;
      |                    ^~~~~~~~~~~~~
tree.cpp: In member function 'void StochTree::Tree::PredictLeafIndexInplace(Eigen::Map<Eigen::Matrix<double, -1, -1>, 0, Eigen::Stride<0, 0> >&, std::vector<int>&, int32_t, int32_t)':
../src/include/stochtree/log.h:54:34: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int32_t' {aka 'int'} [-Wsign-compare]
   54 | #define CHECK_GE(a, b) CHECK((a) >= (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
tree.cpp:442:3: note: in expansion of macro 'CHECK_GE'
  442 |   CHECK_GE(output.size(), offset + n);
      |   ^~~~~~~~
tree.cpp:444:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  444 |   for (int i = 0; i < leaves_.size(); i++) {
      |                   ~~^~~~~~~~~~~~~~~~
tree.cpp:447:20: warning: unused variable 'remapped_node' [-Wunused-variable]
  447 |   int32_t node_id, remapped_node;
      |                    ^~~~~~~~~~~~~
tree.cpp: In member function 'void StochTree::Tree::PredictLeafIndexInplace(Eigen::Map<Eigen::Matrix<double, -1, -1>, 0, Eigen::Stride<0, 0> >&, Eigen::Map<Eigen::Matrix<int, -1, -1> >&, int, int32_t, int32_t)':
tree.cpp:460:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  460 |   for (int i = 0; i < leaves_.size(); i++) {
      |                   ~~^~~~~~~~~~~~~~~~
tree.cpp:463:20: warning: unused variable 'remapped_node' [-Wunused-variable]
  463 |   int32_t node_id, remapped_node;
      |                    ^~~~~~~~~~~~~
random_effects.cpp: In member function 'void StochTree::RandomEffectsTracker::ResetFromSample(StochTree::MultivariateRegressionRandomEffectsModel&, StochTree::RandomEffectsDataset&, StochTree::ColumnVector&)':
../src/include/stochtree/log.h:46:34: warning: comparison of integer expressions of different signedness: 'Eigen::Index' {aka 'long int'} and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
random_effects.cpp:46:3: note: in expansion of macro 'CHECK_EQ'
   46 |   CHECK_EQ(X.rows(), group_labels.size());
      |   ^~~~~~~~
random_effects.cpp: In member function 'void StochTree::MultivariateRegressionRandomEffectsModel::SampleVarianceComponents(StochTree::RandomEffectsDataset&, StochTree::ColumnVector&, StochTree::RandomEffectsTracker&, double, std::mt19937&)':
random_effects.cpp:135:10: warning: unused variable 'output' [-Wunused-variable]
  135 |   double output;
      |          ^~~~~~
tree.cpp: In function 'void StochTree::MultivariateLeafVectorToJson(json&, Tree*)':
tree.cpp:516:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<double>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  516 |     for (int i = 0; i < tree->leaf_vector_.size(); i++) {
      |                     ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
tree.cpp: In function 'void StochTree::SplitCategoryVectorToJson(json&, Tree*)':
tree.cpp:526:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<unsigned int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  526 |     for (int i = 0; i < tree->category_list_.size(); i++) {
      |                     ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
tree.cpp: In function 'void StochTree::NodeListsToJson(json&, Tree*)':
tree.cpp:540:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  540 |     for (int i = 0; i < tree->internal_nodes_.size(); i++) {
      |                     ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
tree.cpp:546:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  546 |     for (int i = 0; i < tree->leaf_parents_.size(); i++) {
      |                     ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
tree.cpp:552:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  552 |     for (int i = 0; i < tree->leaves_.size(); i++) {
      |                     ~~^~~~~~~~~~~~~~~~~~~~~~
tree.cpp:558:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  558 |     for (int i = 0; i < tree->deleted_nodes_.size(); i++) {
      |                     ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
leaf_model.cpp: In member function 'void StochTree::GaussianConstantLeafModel::SampleLeafParameters(StochTree::ForestDataset&, StochTree::ForestTracker&, StochTree::ColumnVector&, StochTree::Tree*, int, double, std::mt19937&)':
leaf_model.cpp:46:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 |   for (int i = 0; i < tree_leaves.size(); i++) {
      |                   ~~^~~~~~~~~~~~~~~~~~~~
leaf_model.cpp: In member function 'void StochTree::GaussianUnivariateRegressionLeafModel::SampleLeafParameters(StochTree::ForestDataset&, StochTree::ForestTracker&, StochTree::ColumnVector&, StochTree::Tree*, int, double, std::mt19937&)':
leaf_model.cpp:110:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  110 |   for (int i = 0; i < tree_leaves.size(); i++) {
      |                   ~~^~~~~~~~~~~~~~~~~~~~
random_effects.cpp: In member function 'Eigen::VectorXd StochTree::MultivariateRegressionRandomEffectsModel::GroupParameterMean(StochTree::RandomEffectsDataset&, StochTree::ColumnVector&, StochTree::RandomEffectsTracker&, double, int32_t)':
random_effects.cpp:191:11: warning: unused variable 'num_groups' [-Wunused-variable]
  191 |   int32_t num_groups = num_groups_;
      |           ^~~~~~~~~~
random_effects.cpp: In member function 'Eigen::MatrixXd StochTree::MultivariateRegressionRandomEffectsModel::GroupParameterVariance(StochTree::RandomEffectsDataset&, StochTree::ColumnVector&, StochTree::RandomEffectsTracker&, double, int32_t)':
random_effects.cpp:206:11: warning: unused variable 'num_components' [-Wunused-variable]
  206 |   int32_t num_components = num_components_;
      |           ^~~~~~~~~~~~~~
random_effects.cpp:207:11: warning: unused variable 'num_groups' [-Wunused-variable]
  207 |   int32_t num_groups = num_groups_;
      |           ^~~~~~~~~~
random_effects.cpp: In member function 'void StochTree::RandomEffectsContainer::Predict(StochTree::RandomEffectsDataset&, StochTree::LabelMapper&, std::vector<double>&)':
../src/include/stochtree/log.h:46:34: warning: comparison of integer expressions of different signedness: 'Eigen::Index' {aka 'long int'} and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
random_effects.cpp:266:3: note: in expansion of macro 'CHECK_EQ'
  266 |   CHECK_EQ(X.rows(), group_labels.size());
      |   ^~~~~~~~
../src/include/stochtree/log.h:46:34: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<double>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:40:9: note: in definition of macro 'CHECK'
   40 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
random_effects.cpp:268:3: note: in expansion of macro 'CHECK_EQ'
  268 |   CHECK_EQ(n*num_samples_, output.size());
      |   ^~~~~~~~
leaf_model.cpp: In member function 'void StochTree::GaussianMultivariateRegressionLeafModel::SampleLeafParameters(StochTree::ForestDataset&, StochTree::ForestTracker&, StochTree::ColumnVector&, StochTree::Tree*, int, double, std::mt19937&)':
leaf_model.cpp:177:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  177 |   for (int i = 0; i < tree_leaves.size(); i++) {
      |                   ~~^~~~~~~~~~~~~~~~~~~~
leaf_model.cpp: In member function 'void StochTree::GaussianMultivariateRegressionLeafModel::SetEnsembleRootPredictedValue(StochTree::ForestDataset&, StochTree::TreeEnsemble*, double)':
leaf_model.cpp:195:7: warning: unused variable 'num_basis' [-Wunused-variable]
  195 |   int num_basis = dataset.GetBasis().cols();
      |       ^~~~~~~~~
leaf_model.cpp: In member function 'void StochTree::LogLinearVarianceLeafModel::SampleLeafParameters(StochTree::ForestDataset&, StochTree::ForestTracker&, StochTree::ColumnVector&, StochTree::Tree*, int, double, std::mt19937&)':
leaf_model.cpp:251:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  251 |   for (int i = 0; i < tree_leaves.size(); i++) {
      |                   ~~^~~~~~~~~~~~~~~~~~~~
g++-14 -std=gnu++17 -shared -L/usr/local/gcc14/lib64 -L/usr/local/lib64 -o stochtree.so forest.o kernel.o R_data.o R_random_effects.o sampler.o serialization.o cpp11.o container.o cutpoint_candidates.o data.o io.o leaf_model.o partition_tracker.o random_effects.o tree.o
make[1]: Leaving directory '/data/gannet/ripley/R/packages/tests-devel/stochtree/src'
make[1]: Entering directory '/data/gannet/ripley/R/packages/tests-devel/stochtree/src'
make[1]: Leaving directory '/data/gannet/ripley/R/packages/tests-devel/stochtree/src'
installing to /data/gannet/ripley/R/packages/tests-devel/stochtree.Rcheck/00LOCK-stochtree/00new/stochtree/libs
** R
** inst
** byte-compile and prepare package for lazy loading
** help
*** installing help indices
** building package indices
** testing if installed package can be loaded from temporary location
** checking absolute paths in shared objects and dynamic libraries
** testing if installed package can be loaded from final location
** testing if installed package keeps a record of temporary installation path
* DONE (stochtree)