* installing *source* package ‘stochtree’ ...
** this is package ‘stochtree’ version ‘0.2.1’
** package ‘stochtree’ successfully unpacked and MD5 sums checked
** using staged installation
checking location of R... /data/gannet/ripley/R/R-devel
configure: creating ./config.status
config.status: creating src/Makevars
** libs
using C++ compiler: ‘g++ (GCC) 15.1.1 20250521 (Red Hat 15.1.1-2)’
using C++17
make[1]: Entering directory '/data/gannet/ripley/R/packages/tests-devel/stochtree/src'
g++ -std=gnu++17 -I"/data/gannet/ripley/R/R-devel/include" -DNDEBUG -I../src/include -DEIGEN_MPL2_ONLY -DEIGEN_DONT_PARALLELIZE -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   -fopenmp -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
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:39:7: warning: unused variable ‘feature_counter’ [-Wunused-variable]
   39 |   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:80:8: warning: unused variable ‘column_matched’ [-Wunused-variable]
   80 |   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:44:34: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
   44 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/tree.h:190:5: note: in expansion of macro ‘CHECK_EQ’
  190 |     CHECK_EQ(output_dimension_, value_vector.size());
      |     ^~~~~~~~
In file included from ../src/include/stochtree/ensemble.h:14,
                 from ../src/include/stochtree/container.h:10:
../src/include/stochtree/tree.h: In member function ‘void StochTree::Tree::AddValueToLeaves(double)’:
../src/include/stochtree/tree.h:208:25: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  208 |       for (int j = 0; j < leaf_value_.size(); j++) {
      |                       ~~^~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree.h:212:25: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  212 |       for (int j = 0; j < leaf_vector_.size(); j++) {
      |                       ~~^~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree.h: In member function ‘void StochTree::Tree::MultiplyLeavesByValue(double)’:
../src/include/stochtree/tree.h:225:25: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  225 |       for (int j = 0; j < leaf_value_.size(); j++) {
      |                       ~~^~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree.h:229:25: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  229 |       for (int j = 0; j < leaf_vector_.size(); j++) {
      |                       ~~^~~~~~~~~~~~~~~~~~~~~
../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:244: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]
  244 |     if (output.size() < total_output_size + offset) {
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/ensemble.h:249:37: warning: comparison of integer expressions of different signedness: ‘size_t’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
  249 |       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:269: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]
  269 |     if (output.size() < total_output_size + offset) {
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/ensemble.h:274:37: warning: comparison of integer expressions of different signedness: ‘size_t’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
  274 |       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:295: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]
  295 |     if (output.size() < total_output_size + offset) {
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/ensemble.h:301:39: warning: comparison of integer expressions of different signedness: ‘size_t’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
  301 |         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:44:34: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
   44 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/ensemble.h:375:5: note: in expansion of macro ‘CHECK_EQ’
  375 |     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:52:34: warning: comparison of integer expressions of different signedness: ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
   52 | #define CHECK_GE(a, b) CHECK((a) >= (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/ensemble.h:435:5: note: in expansion of macro ‘CHECK_GE’
  435 |     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:52:34: warning: comparison of integer expressions of different signedness: ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
   52 | #define CHECK_GE(a, b) CHECK((a) >= (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/ensemble.h:498:5: note: in expansion of macro ‘CHECK_GE’
  498 |     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:531: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]
  531 |     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: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:425:23: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  425 |     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:495: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]
  495 |     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:44: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]
   44 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/random_effects.h:207:5: note: in expansion of macro ‘CHECK_EQ’
  207 |     CHECK_EQ(X.rows(), group_labels.size());
      |     ^~~~~~~~
../src/include/stochtree/log.h:44:34: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
   44 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/random_effects.h:209:5: note: in expansion of macro ‘CHECK_EQ’
  209 |     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:44: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]
   44 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/random_effects.h:233:5: note: in expansion of macro ‘CHECK_EQ’
  233 |     CHECK_EQ(X.rows(), group_labels.size());
      |     ^~~~~~~~
In file included from stochtree_types.h:8:
../src/include/stochtree/tree_sampler.h: In function ‘bool StochTree::NodesNonConstantAfterSplit(ForestDataset&, ForestTracker&, TreeSplit&, int, int, int)’:
../src/include/stochtree/tree_sampler.h:79:15: warning: unused variable ‘idx’ [-Wunused-variable]
   79 |   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:122:15: warning: unused variable ‘idx’ [-Wunused-variable]
  122 |   data_size_t idx;
      |               ^~~
forest.cpp: At global scope:
forest.cpp:13:168: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
   13 | 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:22:174: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
   22 | 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:31:158: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
   31 | cpp11::external_pointer<StochTree::ForestContainer> forest_container_from_json_cpp(cpp11::external_pointer<nlohmann::json> json_ptr, std::string forest_label) {
      |                                                                                                                                                              ^
forest.cpp:47:189: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
   47 | 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:56:140: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
   56 | cpp11::external_pointer<StochTree::ForestContainer> forest_container_from_json_string_cpp(std::string json_string, std::string forest_label) {
      |                                                                                                                                            ^
forest.cpp:75:160: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
   75 | void forest_merge_cpp(cpp11::external_pointer<StochTree::TreeEnsemble> inbound_forest_ptr, cpp11::external_pointer<StochTree::TreeEnsemble> outbound_forest_ptr) {
      |                                                                                                                                                                ^
forest.cpp:80:112: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
   80 | void forest_add_constant_cpp(cpp11::external_pointer<StochTree::TreeEnsemble> forest_ptr, double constant_value) {
      |                                                                                                                ^
forest.cpp:85:120: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
   85 | void forest_multiply_constant_cpp(cpp11::external_pointer<StochTree::TreeEnsemble> forest_ptr, double constant_multiple) {
      |                                                                                                                        ^
forest.cpp:90:171: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
   90 | 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:102:138: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  102 | void combine_forests_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples, cpp11::integers forest_inds) {
      |                                                                                                                                          ^
forest.cpp:112:148: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  112 | void add_to_forest_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples, int forest_index, double constant_value) {
      |                                                                                                                                                    ^
forest.cpp:117:153: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  117 | void multiply_forest_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples, int forest_index, double constant_multiple) {
      |                                                                                                                                                         ^
forest.cpp:122:104: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  122 | int num_samples_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples) {
      |                                                                                                        ^
forest.cpp:127:148: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  127 | int ensemble_tree_max_depth_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples, int ensemble_num, int tree_num) {
      |                                                                                                                                                    ^
forest.cpp:132:140: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  132 | double ensemble_average_max_depth_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples, int ensemble_num) {
      |                                                                                                                                            ^
forest.cpp:137:113: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  137 | double average_max_depth_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples) {
      |                                                                                                                 ^
forest.cpp:142:128: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  142 | int num_leaves_ensemble_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples, int forest_num) {
      |                                                                                                                                ^
forest.cpp:148:139: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  148 | double sum_leaves_squared_ensemble_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples, int forest_num) {
      |                                                                                                                                           ^
forest.cpp:154:102: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  154 | int num_trees_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples) {
      |                                                                                                      ^
forest.cpp:159:130: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  159 | void json_save_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples, std::string json_filename) {
      |                                                                                                                                  ^
forest.cpp:164:130: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  164 | void json_load_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples, std::string json_filename) {
      |                                                                                                                                  ^
forest.cpp:169:107: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  169 | int leaf_dimension_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples) {
      |                                                                                                           ^
forest.cpp:174:109: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  174 | int is_leaf_constant_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples) {
      |                                                                                                             ^
forest.cpp:179:109: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  179 | int is_exponentiated_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples) {
      |                                                                                                             ^
forest.cpp:184:119: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  184 | bool all_roots_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples, int forest_num) {
      |                                                                                                                       ^
forest.cpp:189:104: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  189 | void add_sample_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples) {
      |                                                                                                        ^
forest.cpp:194:127: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  194 | void set_leaf_value_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples, double leaf_value) {
      |                                                                                                                               ^
forest.cpp:199:129: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  199 | void add_sample_value_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples, double leaf_value) {
      |                                                                                                                                 ^
forest.cpp:214:139: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  214 | void add_sample_vector_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples, cpp11::doubles leaf_vector) {
      |                                                                                                                                           ^
forest.cpp:230:256: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  230 | 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:243:275: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  243 | 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:261:160: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  261 | cpp11::writable::integers get_tree_leaves_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples, int forest_num, int tree_num) {
      |                                                                                                                                                                ^
forest.cpp:270:184: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  270 | 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:276:23: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  276 |     for (int i = 0; i < split_nodes.size(); i++) {
      |                     ~~^~~~~~~~~~~~~~~~~~~~
forest.cpp: At global scope:
forest.cpp:285:172: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  285 | 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:293:27: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  293 |         for (int j = 0; j < split_nodes.size(); j++) {
      |                         ~~^~~~~~~~~~~~~~~~~~~~
forest.cpp: At global scope:
forest.cpp:303:157: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  303 | 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:313:31: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  313 |             for (int k = 0; k < split_nodes.size(); k++) {
      |                             ~~^~~~~~~~~~~~~~~~~~~~
forest.cpp: At global scope:
forest.cpp:324:163: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  324 | 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:334:31: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  334 |             for (int k = 0; k < split_nodes.size(); k++) {
      |                             ~~^~~~~~~~~~~~~~~~~~~~
forest.cpp: At global scope:
forest.cpp:345:137: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  345 | void set_leaf_vector_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples, cpp11::doubles leaf_vector) {
      |                                                                                                                                         ^
forest.cpp:354:149: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  354 | 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:361:158: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  361 | 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:368:162: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  368 | 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:375:147: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  375 | int parent_node_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples, int forest_num, int tree_num, int node_id) {
      |                                                                                                                                                   ^
forest.cpp:382:151: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  382 | 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:389:152: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  389 | 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:396:146: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  396 | int node_depth_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples, int forest_num, int tree_num, int node_id) {
      |                                                                                                                                                  ^
forest.cpp:403:147: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  403 | int split_index_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples, int forest_num, int tree_num, int node_id) {
      |                                                                                                                                                   ^
forest.cpp:410:153: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  410 | double split_theshold_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples, int forest_num, int tree_num, int node_id) {
      |                                                                                                                                                         ^
forest.cpp:417:174: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  417 | 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:426:168: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  426 | 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:438:132: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  438 | int num_nodes_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples, int forest_num, int tree_num) {
      |                                                                                                                                    ^
forest.cpp:445:133: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  445 | int num_leaves_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples, int forest_num, int tree_num) {
      |                                                                                                                                     ^
forest.cpp:452:139: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  452 | int num_leaf_parents_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples, int forest_num, int tree_num) {
      |                                                                                                                                           ^
forest.cpp:459:138: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  459 | int num_split_nodes_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples, int forest_num, int tree_num) {
      |                                                                                                                                          ^
forest.cpp:466:150: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  466 | cpp11::writable::integers nodes_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples, int forest_num, int tree_num) {
      |                                                                                                                                                      ^
forest.cpp:475:151: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  475 | cpp11::writable::integers leaves_forest_container_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_samples, int forest_num, int tree_num) {
      |                                                                                                                                                       ^
forest.cpp:488:80: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  488 |                                  cpp11::doubles init_values, int leaf_model_int){
      |                                                                                ^
forest.cpp:540:88: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  540 |                                           bool requires_basis, int forest_num, bool add) {
      |                                                                                        ^
forest.cpp:555:64: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  555 |                                                  int forest_num) {
      |                                                                ^
forest.cpp:562:55: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  562 |                                         int forest_num) {
      |                                                       ^
forest.cpp:567:179: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  567 | 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:575:26: warning: comparison of integer expressions of different signedness: ‘size_t’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
  575 |     for (size_t i = 0; i < n; i++) {
      |                        ~~^~~
forest.cpp: At global scope:
forest.cpp:585:174: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  585 | 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:594:26: warning: comparison of integer expressions of different signedness: ‘size_t’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
  594 |     for (size_t i = 0; i < n; i++) {
      |                        ~~^~~
forest.cpp: At global scope:
forest.cpp:607:213: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  607 | 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:615:26: warning: comparison of integer expressions of different signedness: ‘size_t’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
  615 |     for (size_t i = 0; i < n; i++) {
      |                        ~~^~~
forest.cpp: At global scope:
forest.cpp:625:225: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  625 | 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:633:26: warning: comparison of integer expressions of different signedness: ‘size_t’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
  633 |     for (size_t i = 0; i < n; i++) {
      |                        ~~^~~
forest.cpp: At global scope:
forest.cpp:642:173: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  642 | cpp11::writable::doubles predict_active_forest_cpp(cpp11::external_pointer<StochTree::TreeEnsemble> active_forest, cpp11::external_pointer<StochTree::ForestDataset> dataset) {
      |                                                                                                                                                                             ^
forest.cpp:650:177: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  650 | 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:657:26: warning: comparison of integer expressions of different signedness: ‘size_t’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
  657 |     for (size_t i = 0; i < n; i++) {
      |                        ~~^~~
forest.cpp: At global scope:
forest.cpp:668:100: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  668 | int leaf_dimension_active_forest_cpp(cpp11::external_pointer<StochTree::TreeEnsemble> active_forest) {
      |                                                                                                    ^
forest.cpp:673:106: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  673 | double average_max_depth_active_forest_cpp(cpp11::external_pointer<StochTree::TreeEnsemble> active_forest) {
      |                                                                                                          ^
forest.cpp:678:95: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  678 | int num_trees_active_forest_cpp(cpp11::external_pointer<StochTree::TreeEnsemble> active_forest) {
      |                                                                                               ^
forest.cpp:683:123: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  683 | int ensemble_tree_max_depth_active_forest_cpp(cpp11::external_pointer<StochTree::TreeEnsemble> active_forest, int tree_num) {
      |                                                                                                                           ^
forest.cpp:688:102: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  688 | int is_leaf_constant_active_forest_cpp(cpp11::external_pointer<StochTree::TreeEnsemble> active_forest) {
      |                                                                                                      ^
forest.cpp:693:102: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  693 | int is_exponentiated_active_forest_cpp(cpp11::external_pointer<StochTree::TreeEnsemble> active_forest) {
      |                                                                                                      ^
forest.cpp:698:96: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  698 | bool all_roots_active_forest_cpp(cpp11::external_pointer<StochTree::TreeEnsemble> active_forest) {
      |                                                                                                ^
forest.cpp:703:120: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  703 | void set_leaf_value_active_forest_cpp(cpp11::external_pointer<StochTree::TreeEnsemble> active_forest, double leaf_value) {
      |                                                                                                                        ^
forest.cpp:708:130: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  708 | void set_leaf_vector_active_forest_cpp(cpp11::external_pointer<StochTree::TreeEnsemble> active_forest, cpp11::doubles leaf_vector) {
      |                                                                                                                                  ^
forest.cpp:714:233: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  714 | 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:726:252: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  726 | 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:743:137: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  743 | cpp11::writable::integers get_tree_leaves_active_forest_cpp(cpp11::external_pointer<StochTree::TreeEnsemble> active_forest, int tree_num) {
      |                                                                                                                                         ^
forest.cpp:751:161: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  751 | 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:756:23: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  756 |     for (int i = 0; i < split_nodes.size(); i++) {
      |                     ~~^~~~~~~~~~~~~~~~~~~~
forest.cpp: At global scope:
forest.cpp:765:150: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  765 | 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:772:27: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  772 |         for (int j = 0; j < split_nodes.size(); j++) {
      |                         ~~^~~~~~~~~~~~~~~~~~~~
forest.cpp: At global scope:
forest.cpp:782:156: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  782 | 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:789:27: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  789 |         for (int j = 0; j < split_nodes.size(); j++) {
      |                         ~~^~~~~~~~~~~~~~~~~~~~
forest.cpp: At global scope:
forest.cpp:803:94: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  803 |                                                cpp11::doubles init_values, int leaf_model_int){
      |                                                                                              ^
forest.cpp:859:69: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  859 |                                        bool requires_basis, bool add) {
      |                                                                     ^
forest.cpp:873:104: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  873 |                                               cpp11::external_pointer<StochTree::ForestTracker> tracker) {
      |                                                                                                        ^
forest.cpp:881:44: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  881 |                              int forest_num) {
      |                                            ^
forest.cpp:894:47: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  894 |                             bool is_mean_model) {
      |                                               ^
forest.cpp:900:97: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  900 | void root_reset_active_forest_cpp(cpp11::external_pointer<StochTree::TreeEnsemble> active_forest) {
      |                                                                                                 ^
In file included from ../src/include/stochtree/partition_tracker.h:31:
../src/include/stochtree/openmp_utils.h:71:13: warning: ‘void StochTree::SetNumThreads(int)’ defined but not used [-Wunused-function]
   71 | static void SetNumThreads(int num_threads) {
      |             ^~~~~~~~~~~~~
../src/include/stochtree/openmp_utils.h:67:12: warning: ‘int StochTree::GetNumThreads()’ defined but not used [-Wunused-function]
   67 | static int GetNumThreads() {
      |            ^~~~~~~~~~~~~
../src/include/stochtree/openmp_utils.h:63:12: warning: ‘int StochTree::GetCurrentThreadNum()’ defined but not used [-Wunused-function]
   63 | static int GetCurrentThreadNum() {
      |            ^~~~~~~~~~~~~~~~~~~
g++ -std=gnu++17 -I"/data/gannet/ripley/R/R-devel/include" -DNDEBUG -I../src/include -DEIGEN_MPL2_ONLY -DEIGEN_DONT_PARALLELIZE -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   -fopenmp -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
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:39:7: warning: unused variable ‘feature_counter’ [-Wunused-variable]
   39 |   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:80:8: warning: unused variable ‘column_matched’ [-Wunused-variable]
   80 |   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:44:34: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
   44 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/tree.h:190:5: note: in expansion of macro ‘CHECK_EQ’
  190 |     CHECK_EQ(output_dimension_, value_vector.size());
      |     ^~~~~~~~
In file included from ../src/include/stochtree/ensemble.h:14,
                 from ../src/include/stochtree/container.h:10:
../src/include/stochtree/tree.h: In member function ‘void StochTree::Tree::AddValueToLeaves(double)’:
../src/include/stochtree/tree.h:208:25: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  208 |       for (int j = 0; j < leaf_value_.size(); j++) {
      |                       ~~^~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree.h:212:25: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  212 |       for (int j = 0; j < leaf_vector_.size(); j++) {
      |                       ~~^~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree.h: In member function ‘void StochTree::Tree::MultiplyLeavesByValue(double)’:
../src/include/stochtree/tree.h:225:25: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  225 |       for (int j = 0; j < leaf_value_.size(); j++) {
      |                       ~~^~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree.h:229:25: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  229 |       for (int j = 0; j < leaf_vector_.size(); j++) {
      |                       ~~^~~~~~~~~~~~~~~~~~~~~
../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:244: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]
  244 |     if (output.size() < total_output_size + offset) {
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/ensemble.h:249:37: warning: comparison of integer expressions of different signedness: ‘size_t’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
  249 |       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:269: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]
  269 |     if (output.size() < total_output_size + offset) {
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/ensemble.h:274:37: warning: comparison of integer expressions of different signedness: ‘size_t’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
  274 |       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:295: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]
  295 |     if (output.size() < total_output_size + offset) {
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/ensemble.h:301:39: warning: comparison of integer expressions of different signedness: ‘size_t’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
  301 |         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:44:34: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
   44 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/ensemble.h:375:5: note: in expansion of macro ‘CHECK_EQ’
  375 |     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:52:34: warning: comparison of integer expressions of different signedness: ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
   52 | #define CHECK_GE(a, b) CHECK((a) >= (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/ensemble.h:435:5: note: in expansion of macro ‘CHECK_GE’
  435 |     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:52:34: warning: comparison of integer expressions of different signedness: ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
   52 | #define CHECK_GE(a, b) CHECK((a) >= (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/ensemble.h:498:5: note: in expansion of macro ‘CHECK_GE’
  498 |     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:531: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]
  531 |     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: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:425:23: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  425 |     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:495: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]
  495 |     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:44: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]
   44 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/random_effects.h:207:5: note: in expansion of macro ‘CHECK_EQ’
  207 |     CHECK_EQ(X.rows(), group_labels.size());
      |     ^~~~~~~~
../src/include/stochtree/log.h:44:34: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
   44 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/random_effects.h:209:5: note: in expansion of macro ‘CHECK_EQ’
  209 |     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:44: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]
   44 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/random_effects.h:233:5: note: in expansion of macro ‘CHECK_EQ’
  233 |     CHECK_EQ(X.rows(), group_labels.size());
      |     ^~~~~~~~
In file included from stochtree_types.h:8:
../src/include/stochtree/tree_sampler.h: In function ‘bool StochTree::NodesNonConstantAfterSplit(ForestDataset&, ForestTracker&, TreeSplit&, int, int, int)’:
../src/include/stochtree/tree_sampler.h:79:15: warning: unused variable ‘idx’ [-Wunused-variable]
   79 |   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:122:15: warning: unused variable ‘idx’ [-Wunused-variable]
  122 |   data_size_t idx;
      |               ^~~
kernel.cpp: At global scope:
kernel.cpp:11:129: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
   11 | int forest_container_get_max_leaf_index_cpp(cpp11::external_pointer<StochTree::ForestContainer> forest_container, int forest_num) {
      |                                                                                                                                 ^
kernel.cpp:19:1: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
   19 | ) {
      | ^
In file included from ../src/include/stochtree/partition_tracker.h:31:
../src/include/stochtree/openmp_utils.h:71:13: warning: ‘void StochTree::SetNumThreads(int)’ defined but not used [-Wunused-function]
   71 | static void SetNumThreads(int num_threads) {
      |             ^~~~~~~~~~~~~
../src/include/stochtree/openmp_utils.h:67:12: warning: ‘int StochTree::GetNumThreads()’ defined but not used [-Wunused-function]
   67 | static int GetNumThreads() {
      |            ^~~~~~~~~~~~~
../src/include/stochtree/openmp_utils.h:63:12: warning: ‘int StochTree::GetCurrentThreadNum()’ defined but not used [-Wunused-function]
   63 | static int GetCurrentThreadNum() {
      |            ^~~~~~~~~~~~~~~~~~~
g++ -std=gnu++17 -I"/data/gannet/ripley/R/R-devel/include" -DNDEBUG -I../src/include -DEIGEN_MPL2_ONLY -DEIGEN_DONT_PARALLELIZE -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   -fopenmp -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 R_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:39:7: warning: unused variable ‘feature_counter’ [-Wunused-variable]
   39 |   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:80:8: warning: unused variable ‘column_matched’ [-Wunused-variable]
   80 |   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:44:34: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
   44 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/tree.h:190:5: note: in expansion of macro ‘CHECK_EQ’
  190 |     CHECK_EQ(output_dimension_, value_vector.size());
      |     ^~~~~~~~
In file included from ../src/include/stochtree/ensemble.h:14,
                 from ../src/include/stochtree/container.h:10:
../src/include/stochtree/tree.h: In member function ‘void StochTree::Tree::AddValueToLeaves(double)’:
../src/include/stochtree/tree.h:208:25: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  208 |       for (int j = 0; j < leaf_value_.size(); j++) {
      |                       ~~^~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree.h:212:25: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  212 |       for (int j = 0; j < leaf_vector_.size(); j++) {
      |                       ~~^~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree.h: In member function ‘void StochTree::Tree::MultiplyLeavesByValue(double)’:
../src/include/stochtree/tree.h:225:25: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  225 |       for (int j = 0; j < leaf_value_.size(); j++) {
      |                       ~~^~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree.h:229:25: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  229 |       for (int j = 0; j < leaf_vector_.size(); j++) {
      |                       ~~^~~~~~~~~~~~~~~~~~~~~
../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:244: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]
  244 |     if (output.size() < total_output_size + offset) {
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/ensemble.h:249:37: warning: comparison of integer expressions of different signedness: ‘size_t’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
  249 |       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:269: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]
  269 |     if (output.size() < total_output_size + offset) {
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/ensemble.h:274:37: warning: comparison of integer expressions of different signedness: ‘size_t’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
  274 |       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:295: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]
  295 |     if (output.size() < total_output_size + offset) {
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/ensemble.h:301:39: warning: comparison of integer expressions of different signedness: ‘size_t’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
  301 |         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:44:34: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
   44 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/ensemble.h:375:5: note: in expansion of macro ‘CHECK_EQ’
  375 |     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:52:34: warning: comparison of integer expressions of different signedness: ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
   52 | #define CHECK_GE(a, b) CHECK((a) >= (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/ensemble.h:435:5: note: in expansion of macro ‘CHECK_GE’
  435 |     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:52:34: warning: comparison of integer expressions of different signedness: ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
   52 | #define CHECK_GE(a, b) CHECK((a) >= (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/ensemble.h:498:5: note: in expansion of macro ‘CHECK_GE’
  498 |     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:531: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]
  531 |     for (int i = 0; i < trees_.size(); i++) {
      |                     ~~^~~~~~~~~~~~~~~
In file included from R_data.cpp:5:
../src/include/stochtree/partition_tracker.h: In member function ‘void StochTree::UnsortedNodeSampleTracker::UpdateObservationMapping(StochTree::Tree*, int, StochTree::SampleNodeMapper*)’:
../src/include/stochtree/partition_tracker.h:425:23: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  425 |     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:495: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]
  495 |     if (feature_sort_indices_.size() != num_obs){
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~
In file included from R_data.cpp:6:
../src/include/stochtree/tree_sampler.h: In function ‘bool StochTree::NodesNonConstantAfterSplit(ForestDataset&, ForestTracker&, TreeSplit&, int, int, int)’:
../src/include/stochtree/tree_sampler.h:79:15: warning: unused variable ‘idx’ [-Wunused-variable]
   79 |   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:122:15: warning: unused variable ‘idx’ [-Wunused-variable]
  122 |   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:148: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
   89 | void forest_dataset_update_var_weights_cpp(cpp11::external_pointer<StochTree::ForestDataset> dataset_ptr, cpp11::doubles weights, bool exponentiate) {
      |                                                                                                                                                    ^
R_data.cpp:100:122: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  100 | void forest_dataset_add_weights_cpp(cpp11::external_pointer<StochTree::ForestDataset> dataset_ptr, cpp11::doubles weights) {
      |                                                                                                                          ^
R_data.cpp:111:130: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  111 | cpp11::writable::doubles_matrix<> forest_dataset_get_covariates_cpp(cpp11::external_pointer<StochTree::ForestDataset> dataset_ptr) {
      |                                                                                                                                  ^
R_data.cpp:127:125: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  127 | cpp11::writable::doubles_matrix<> forest_dataset_get_basis_cpp(cpp11::external_pointer<StochTree::ForestDataset> dataset_ptr) {
      |                                                                                                                             ^
R_data.cpp:141:127: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  141 | cpp11::writable::doubles forest_dataset_get_variance_weights_cpp(cpp11::external_pointer<StochTree::ForestDataset> dataset_ptr) {
      |                                                                                                                               ^
R_data.cpp:152:97: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  152 | cpp11::external_pointer<StochTree::ColumnVector> create_column_vector_cpp(cpp11::doubles outcome) {
      |                                                                                                 ^
R_data.cpp:168:117: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  168 | void add_to_column_vector_cpp(cpp11::external_pointer<StochTree::ColumnVector> outcome, cpp11::doubles update_vector) {
      |                                                                                                                     ^
R_data.cpp:181:124: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  181 | void subtract_from_column_vector_cpp(cpp11::external_pointer<StochTree::ColumnVector> outcome, cpp11::doubles update_vector) {
      |                                                                                                                            ^
R_data.cpp:194:117: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  194 | void overwrite_column_vector_cpp(cpp11::external_pointer<StochTree::ColumnVector> outcome, cpp11::doubles new_vector) {
      |                                                                                                                     ^
R_data.cpp:208:97: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  208 |                                        cpp11::external_pointer<StochTree::ColumnVector> residual) {
      |                                                                                                 ^
R_data.cpp:213:102: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  213 | cpp11::writable::doubles get_residual_cpp(cpp11::external_pointer<StochTree::ColumnVector> vector_ptr) {
      |                                                                                                      ^
R_data.cpp:228:81: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  228 | cpp11::external_pointer<StochTree::RandomEffectsDataset> create_rfx_dataset_cpp() {
      |                                                                                 ^
R_data.cpp:237:134: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  237 | void rfx_dataset_update_basis_cpp(cpp11::external_pointer<StochTree::RandomEffectsDataset> dataset_ptr, cpp11::doubles_matrix<> basis) {
      |                                                                                                                                      ^
R_data.cpp:252:152: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  252 | void rfx_dataset_update_var_weights_cpp(cpp11::external_pointer<StochTree::RandomEffectsDataset> dataset_ptr, cpp11::doubles weights, bool exponentiate) {
      |                                                                                                                                                        ^
R_data.cpp:263:140: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  263 | void rfx_dataset_update_group_labels_cpp(cpp11::external_pointer<StochTree::RandomEffectsDataset> dataset_ptr, cpp11::integers group_labels) {
      |                                                                                                                                            ^
R_data.cpp:271:95: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  271 | int rfx_dataset_num_basis_cpp(cpp11::external_pointer<StochTree::RandomEffectsDataset> dataset) {
      |                                                                                               ^
R_data.cpp:276:94: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  276 | int rfx_dataset_num_rows_cpp(cpp11::external_pointer<StochTree::RandomEffectsDataset> dataset) {
      |                                                                                              ^
R_data.cpp:281:103: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  281 | bool rfx_dataset_has_group_labels_cpp(cpp11::external_pointer<StochTree::RandomEffectsDataset> dataset) {
      |                                                                                                       ^
R_data.cpp:286:96: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  286 | bool rfx_dataset_has_basis_cpp(cpp11::external_pointer<StochTree::RandomEffectsDataset> dataset) {
      |                                                                                                ^
R_data.cpp:291:107: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  291 | bool rfx_dataset_has_variance_weights_cpp(cpp11::external_pointer<StochTree::RandomEffectsDataset> dataset) {
      |                                                                                                           ^
R_data.cpp:296:137: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  296 | void rfx_dataset_add_group_labels_cpp(cpp11::external_pointer<StochTree::RandomEffectsDataset> dataset_ptr, cpp11::integers group_labels) {
      |                                                                                                                                         ^
R_data.cpp:303:131: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  303 | void rfx_dataset_add_basis_cpp(cpp11::external_pointer<StochTree::RandomEffectsDataset> dataset_ptr, cpp11::doubles_matrix<> basis) {
      |                                                                                                                                   ^
R_data.cpp:318:126: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  318 | void rfx_dataset_add_weights_cpp(cpp11::external_pointer<StochTree::RandomEffectsDataset> dataset_ptr, cpp11::doubles weights) {
      |                                                                                                                              ^
R_data.cpp:329:128: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  329 | cpp11::writable::integers rfx_dataset_get_group_labels_cpp(cpp11::external_pointer<StochTree::RandomEffectsDataset> dataset_ptr) {
      |                                                                                                                                ^
R_data.cpp:339:129: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  339 | cpp11::writable::doubles_matrix<> rfx_dataset_get_basis_cpp(cpp11::external_pointer<StochTree::RandomEffectsDataset> dataset_ptr) {
      |                                                                                                                                 ^
R_data.cpp:352:131: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  352 | cpp11::writable::doubles rfx_dataset_get_variance_weights_cpp(cpp11::external_pointer<StochTree::RandomEffectsDataset> dataset_ptr) {
      |                                                                                                                                   ^
In file included from ../src/include/stochtree/partition_tracker.h:31:
../src/include/stochtree/openmp_utils.h:71:13: warning: ‘void StochTree::SetNumThreads(int)’ defined but not used [-Wunused-function]
   71 | static void SetNumThreads(int num_threads) {
      |             ^~~~~~~~~~~~~
../src/include/stochtree/openmp_utils.h:67:12: warning: ‘int StochTree::GetNumThreads()’ defined but not used [-Wunused-function]
   67 | static int GetNumThreads() {
      |            ^~~~~~~~~~~~~
../src/include/stochtree/openmp_utils.h:63:12: warning: ‘int StochTree::GetCurrentThreadNum()’ defined but not used [-Wunused-function]
   63 | static int GetCurrentThreadNum() {
      |            ^~~~~~~~~~~~~~~~~~~
g++ -std=gnu++17 -I"/data/gannet/ripley/R/R-devel/include" -DNDEBUG -I../src/include -DEIGEN_MPL2_ONLY -DEIGEN_DONT_PARALLELIZE -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   -fopenmp -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
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:39:7: warning: unused variable ‘feature_counter’ [-Wunused-variable]
   39 |   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:80:8: warning: unused variable ‘column_matched’ [-Wunused-variable]
   80 |   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:44:34: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
   44 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/tree.h:190:5: note: in expansion of macro ‘CHECK_EQ’
  190 |     CHECK_EQ(output_dimension_, value_vector.size());
      |     ^~~~~~~~
In file included from ../src/include/stochtree/ensemble.h:14,
                 from ../src/include/stochtree/container.h:10:
../src/include/stochtree/tree.h: In member function ‘void StochTree::Tree::AddValueToLeaves(double)’:
../src/include/stochtree/tree.h:208:25: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  208 |       for (int j = 0; j < leaf_value_.size(); j++) {
      |                       ~~^~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree.h:212:25: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  212 |       for (int j = 0; j < leaf_vector_.size(); j++) {
      |                       ~~^~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree.h: In member function ‘void StochTree::Tree::MultiplyLeavesByValue(double)’:
../src/include/stochtree/tree.h:225:25: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  225 |       for (int j = 0; j < leaf_value_.size(); j++) {
      |                       ~~^~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree.h:229:25: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  229 |       for (int j = 0; j < leaf_vector_.size(); j++) {
      |                       ~~^~~~~~~~~~~~~~~~~~~~~
../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:244: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]
  244 |     if (output.size() < total_output_size + offset) {
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/ensemble.h:249:37: warning: comparison of integer expressions of different signedness: ‘size_t’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
  249 |       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:269: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]
  269 |     if (output.size() < total_output_size + offset) {
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/ensemble.h:274:37: warning: comparison of integer expressions of different signedness: ‘size_t’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
  274 |       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:295: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]
  295 |     if (output.size() < total_output_size + offset) {
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/ensemble.h:301:39: warning: comparison of integer expressions of different signedness: ‘size_t’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
  301 |         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:44:34: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
   44 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/ensemble.h:375:5: note: in expansion of macro ‘CHECK_EQ’
  375 |     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:52:34: warning: comparison of integer expressions of different signedness: ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
   52 | #define CHECK_GE(a, b) CHECK((a) >= (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/ensemble.h:435:5: note: in expansion of macro ‘CHECK_GE’
  435 |     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:52:34: warning: comparison of integer expressions of different signedness: ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
   52 | #define CHECK_GE(a, b) CHECK((a) >= (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/ensemble.h:498:5: note: in expansion of macro ‘CHECK_GE’
  498 |     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:531: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]
  531 |     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: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:425:23: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  425 |     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:495: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]
  495 |     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:44: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]
   44 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/random_effects.h:207:5: note: in expansion of macro ‘CHECK_EQ’
  207 |     CHECK_EQ(X.rows(), group_labels.size());
      |     ^~~~~~~~
../src/include/stochtree/log.h:44:34: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
   44 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/random_effects.h:209:5: note: in expansion of macro ‘CHECK_EQ’
  209 |     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:44: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]
   44 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/random_effects.h:233:5: note: in expansion of macro ‘CHECK_EQ’
  233 |     CHECK_EQ(X.rows(), group_labels.size());
      |     ^~~~~~~~
In file included from stochtree_types.h:8:
../src/include/stochtree/tree_sampler.h: In function ‘bool StochTree::NodesNonConstantAfterSplit(ForestDataset&, ForestTracker&, TreeSplit&, int, int, int)’:
../src/include/stochtree/tree_sampler.h:79:15: warning: unused variable ‘idx’ [-Wunused-variable]
   79 |   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:122:15: warning: unused variable ‘idx’ [-Wunused-variable]
  122 |   data_size_t idx;
      |               ^~~
R_random_effects.cpp: At global scope:
R_random_effects.cpp:13:112: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
   13 | cpp11::external_pointer<StochTree::RandomEffectsContainer> rfx_container_cpp(int num_components, int num_groups) {
      |                                                                                                                ^
R_random_effects.cpp:22:159: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
   22 | 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:38:151: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
   38 | 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:54:126: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
   54 | cpp11::writable::integers rfx_group_ids_from_json_cpp(cpp11::external_pointer<nlohmann::json> json_ptr, std::string rfx_label) {
      |                                                                                                                              ^
R_random_effects.cpp:71:190: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
   71 | 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:80:141: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
   80 | cpp11::external_pointer<StochTree::RandomEffectsContainer> rfx_container_from_json_string_cpp(std::string json_string, std::string rfx_label) {
      |                                                                                                                                             ^
R_random_effects.cpp:99:133: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
   99 | cpp11::external_pointer<StochTree::LabelMapper> rfx_label_mapper_from_json_string_cpp(std::string json_string, std::string rfx_label) {
      |                                                                                                                                     ^
R_random_effects.cpp:118:108: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  118 | cpp11::writable::integers rfx_group_ids_from_json_string_cpp(std::string json_string, std::string rfx_label) {
      |                                                                                                            ^
R_random_effects.cpp:138:172: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  138 | 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:150:126: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  150 | cpp11::external_pointer<StochTree::MultivariateRegressionRandomEffectsModel> rfx_model_cpp(int num_components, int num_groups) {
      |                                                                                                                              ^
R_random_effects.cpp:159:102: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  159 | cpp11::external_pointer<StochTree::RandomEffectsTracker> rfx_tracker_cpp(cpp11::integers group_labels) {
      |                                                                                                      ^
R_random_effects.cpp:171:138: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  171 | cpp11::external_pointer<StochTree::LabelMapper> rfx_label_mapper_cpp(cpp11::external_pointer<StochTree::RandomEffectsTracker> rfx_tracker) {
      |                                                                                                                                          ^
R_random_effects.cpp:182:199: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  182 |                                          cpp11::external_pointer<StochTree::RandomEffectsContainer> rfx_container, bool keep_sample, double global_variance, cpp11::external_pointer<std::mt19937> rng) {
      |                                                                                                                                                                                                       ^
R_random_effects.cpp:190:116: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  190 |                                                cpp11::external_pointer<StochTree::RandomEffectsTracker> rfx_tracker) {
      |                                                                                                                    ^
R_random_effects.cpp:198:112: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  198 |                                                    cpp11::external_pointer<StochTree::LabelMapper> label_mapper) {
      |                                                                                                                ^
R_random_effects.cpp:207:107: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  207 | int rfx_container_num_samples_cpp(cpp11::external_pointer<StochTree::RandomEffectsContainer> rfx_container) {
      |                                                                                                           ^
R_random_effects.cpp:212:110: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  212 | int rfx_container_num_components_cpp(cpp11::external_pointer<StochTree::RandomEffectsContainer> rfx_container) {
      |                                                                                                              ^
R_random_effects.cpp:217:106: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  217 | int rfx_container_num_groups_cpp(cpp11::external_pointer<StochTree::RandomEffectsContainer> rfx_container) {
      |                                                                                                          ^
R_random_effects.cpp:222:126: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  222 | void rfx_container_delete_sample_cpp(cpp11::external_pointer<StochTree::RandomEffectsContainer> rfx_container, int sample_num) {
      |                                                                                                                              ^
R_random_effects.cpp:227:163: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  227 | void rfx_model_set_working_parameter_cpp(cpp11::external_pointer<StochTree::MultivariateRegressionRandomEffectsModel> rfx_model, cpp11::doubles working_param_init) {
      |                                                                                                                                                                   ^
R_random_effects.cpp:236:170: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  236 | void rfx_model_set_group_parameters_cpp(cpp11::external_pointer<StochTree::MultivariateRegressionRandomEffectsModel> rfx_model, cpp11::doubles_matrix<> group_params_init) {
      |                                                                                                                                                                          ^
R_random_effects.cpp:247:187: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  247 | 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:258:183: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  258 | 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:269:145: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  269 | void rfx_model_set_variance_prior_shape_cpp(cpp11::external_pointer<StochTree::MultivariateRegressionRandomEffectsModel> rfx_model, double shape) {
      |                                                                                                                                                 ^
R_random_effects.cpp:274:145: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  274 | void rfx_model_set_variance_prior_scale_cpp(cpp11::external_pointer<StochTree::MultivariateRegressionRandomEffectsModel> rfx_model, double scale) {
      |                                                                                                                                                 ^
R_random_effects.cpp:279:132: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  279 | cpp11::writable::integers rfx_tracker_get_unique_group_ids_cpp(cpp11::external_pointer<StochTree::RandomEffectsTracker> rfx_tracker) {
      |                                                                                                                                    ^
R_random_effects.cpp:285:129: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  285 | cpp11::writable::doubles rfx_container_get_beta_cpp(cpp11::external_pointer<StochTree::RandomEffectsContainer> rfx_container_ptr) {
      |                                                                                                                                 ^
R_random_effects.cpp:290:130: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  290 | cpp11::writable::doubles rfx_container_get_alpha_cpp(cpp11::external_pointer<StochTree::RandomEffectsContainer> rfx_container_ptr) {
      |                                                                                                                                  ^
R_random_effects.cpp:295:127: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  295 | cpp11::writable::doubles rfx_container_get_xi_cpp(cpp11::external_pointer<StochTree::RandomEffectsContainer> rfx_container_ptr) {
      |                                                                                                                               ^
R_random_effects.cpp:300:130: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  300 | cpp11::writable::doubles rfx_container_get_sigma_cpp(cpp11::external_pointer<StochTree::RandomEffectsContainer> rfx_container_ptr) {
      |                                                                                                                                  ^
R_random_effects.cpp:305:106: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  305 | cpp11::list rfx_label_mapper_to_list_cpp(cpp11::external_pointer<StochTree::LabelMapper> label_mapper_ptr) {
      |                                                                                                          ^
R_random_effects.cpp:323:40: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  323 |                          int sample_num) {
      |                                        ^
R_random_effects.cpp:332:114: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  332 |                            cpp11::external_pointer<StochTree::MultivariateRegressionRandomEffectsModel> rfx_model) {
      |                                                                                                                  ^
R_random_effects.cpp:341:119: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  341 |                                 cpp11::external_pointer<StochTree::MultivariateRegressionRandomEffectsModel> rfx_model) {
      |                                                                                                                       ^
In file included from ../src/include/stochtree/partition_tracker.h:31:
../src/include/stochtree/openmp_utils.h:71:13: warning: ‘void StochTree::SetNumThreads(int)’ defined but not used [-Wunused-function]
   71 | static void SetNumThreads(int num_threads) {
      |             ^~~~~~~~~~~~~
../src/include/stochtree/openmp_utils.h:67:12: warning: ‘int StochTree::GetNumThreads()’ defined but not used [-Wunused-function]
   67 | static int GetNumThreads() {
      |            ^~~~~~~~~~~~~
../src/include/stochtree/openmp_utils.h:63:12: warning: ‘int StochTree::GetCurrentThreadNum()’ defined but not used [-Wunused-function]
   63 | static int GetCurrentThreadNum() {
      |            ^~~~~~~~~~~~~~~~~~~
g++ -std=gnu++17 -I"/data/gannet/ripley/R/R-devel/include" -DNDEBUG -I../src/include -DEIGEN_MPL2_ONLY -DEIGEN_DONT_PARALLELIZE -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   -fopenmp -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
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:39:7: warning: unused variable ‘feature_counter’ [-Wunused-variable]
   39 |   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:80:8: warning: unused variable ‘column_matched’ [-Wunused-variable]
   80 |   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:44:34: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
   44 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/tree.h:190:5: note: in expansion of macro ‘CHECK_EQ’
  190 |     CHECK_EQ(output_dimension_, value_vector.size());
      |     ^~~~~~~~
In file included from ../src/include/stochtree/ensemble.h:14,
                 from ../src/include/stochtree/container.h:10:
../src/include/stochtree/tree.h: In member function ‘void StochTree::Tree::AddValueToLeaves(double)’:
../src/include/stochtree/tree.h:208:25: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  208 |       for (int j = 0; j < leaf_value_.size(); j++) {
      |                       ~~^~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree.h:212:25: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  212 |       for (int j = 0; j < leaf_vector_.size(); j++) {
      |                       ~~^~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree.h: In member function ‘void StochTree::Tree::MultiplyLeavesByValue(double)’:
../src/include/stochtree/tree.h:225:25: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  225 |       for (int j = 0; j < leaf_value_.size(); j++) {
      |                       ~~^~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree.h:229:25: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  229 |       for (int j = 0; j < leaf_vector_.size(); j++) {
      |                       ~~^~~~~~~~~~~~~~~~~~~~~
../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:244: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]
  244 |     if (output.size() < total_output_size + offset) {
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/ensemble.h:249:37: warning: comparison of integer expressions of different signedness: ‘size_t’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
  249 |       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:269: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]
  269 |     if (output.size() < total_output_size + offset) {
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/ensemble.h:274:37: warning: comparison of integer expressions of different signedness: ‘size_t’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
  274 |       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:295: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]
  295 |     if (output.size() < total_output_size + offset) {
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/ensemble.h:301:39: warning: comparison of integer expressions of different signedness: ‘size_t’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
  301 |         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:44:34: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
   44 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/ensemble.h:375:5: note: in expansion of macro ‘CHECK_EQ’
  375 |     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:52:34: warning: comparison of integer expressions of different signedness: ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
   52 | #define CHECK_GE(a, b) CHECK((a) >= (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/ensemble.h:435:5: note: in expansion of macro ‘CHECK_GE’
  435 |     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:52:34: warning: comparison of integer expressions of different signedness: ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
   52 | #define CHECK_GE(a, b) CHECK((a) >= (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/ensemble.h:498:5: note: in expansion of macro ‘CHECK_GE’
  498 |     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:531: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]
  531 |     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: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:425:23: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  425 |     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:495: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]
  495 |     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:44: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]
   44 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/random_effects.h:207:5: note: in expansion of macro ‘CHECK_EQ’
  207 |     CHECK_EQ(X.rows(), group_labels.size());
      |     ^~~~~~~~
../src/include/stochtree/log.h:44:34: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
   44 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/random_effects.h:209:5: note: in expansion of macro ‘CHECK_EQ’
  209 |     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:44: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]
   44 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/random_effects.h:233:5: note: in expansion of macro ‘CHECK_EQ’
  233 |     CHECK_EQ(X.rows(), group_labels.size());
      |     ^~~~~~~~
In file included from stochtree_types.h:8:
../src/include/stochtree/tree_sampler.h: In function ‘bool StochTree::NodesNonConstantAfterSplit(ForestDataset&, ForestTracker&, TreeSplit&, int, int, int)’:
../src/include/stochtree/tree_sampler.h:79:15: warning: unused variable ‘idx’ [-Wunused-variable]
   79 |   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:122:15: warning: unused variable ‘idx’ [-Wunused-variable]
  122 |   data_size_t idx;
      |               ^~~
sampler.cpp: At global scope:
sampler.cpp:28:1: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
   28 | ) {
      | ^
sampler.cpp:110:1: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  110 | ) {
      | ^
sampler.cpp:182:1: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  182 | ) {
      | ^
sampler.cpp:196:1: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  196 | ) {
      | ^
sampler.cpp:203:67: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  203 | cpp11::external_pointer<std::mt19937> rng_cpp(int random_seed = -1) {
      |                                                                   ^
sampler.cpp:217:129: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  217 | cpp11::external_pointer<StochTree::TreePrior> tree_prior_cpp(double alpha, double beta, int min_samples_leaf, int max_depth = -1) {
      |                                                                                                                                 ^
sampler.cpp:226:108: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  226 | void update_alpha_tree_prior_cpp(cpp11::external_pointer<StochTree::TreePrior> tree_prior_ptr, double alpha) {
      |                                                                                                            ^
sampler.cpp:232:106: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  232 | void update_beta_tree_prior_cpp(cpp11::external_pointer<StochTree::TreePrior> tree_prior_ptr, double beta) {
      |                                                                                                          ^
sampler.cpp:238:127: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  238 | void update_min_samples_leaf_tree_prior_cpp(cpp11::external_pointer<StochTree::TreePrior> tree_prior_ptr, int min_samples_leaf) {
      |                                                                                                                               ^
sampler.cpp:244:113: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  244 | void update_max_depth_tree_prior_cpp(cpp11::external_pointer<StochTree::TreePrior> tree_prior_ptr, int max_depth) {
      |                                                                                                                 ^
sampler.cpp:250:93: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  250 | double get_alpha_tree_prior_cpp(cpp11::external_pointer<StochTree::TreePrior> tree_prior_ptr) {
      |                                                                                             ^
sampler.cpp:255:92: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  255 | double get_beta_tree_prior_cpp(cpp11::external_pointer<StochTree::TreePrior> tree_prior_ptr) {
      |                                                                                            ^
sampler.cpp:261:101: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  261 | int get_min_samples_leaf_tree_prior_cpp(cpp11::external_pointer<StochTree::TreePrior> tree_prior_ptr) {
      |                                                                                                     ^
sampler.cpp:266:94: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  266 | int get_max_depth_tree_prior_cpp(cpp11::external_pointer<StochTree::TreePrior> tree_prior_ptr) {
      |                                                                                              ^
sampler.cpp:271:196: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  271 | 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) {
      |                                                                                                                                                                                                    ^
sampler.cpp:286:121: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  286 | cpp11::writable::doubles get_cached_forest_predictions_cpp(cpp11::external_pointer<StochTree::ForestTracker> tracker_ptr) {
      |                                                                                                                         ^
sampler.cpp:300:1: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  300 | ) {
      | ^
../src/include/stochtree/tree_sampler.h: In instantiation of ‘void StochTree::GFRSampleOneIter(TreeEnsemble&, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, std::vector<int>&, double, std::vector<FeatureType>&, int, bool, bool, bool, int, 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>]’:
sampler.cpp:85:111:   required from here
   85 |         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, sweep_indices_, global_variance, feature_types_, cutpoint_grid_size, keep_forest, pre_initialized, true, num_features_subsample, num_threads);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:787:7: warning: unused variable ‘num_trees’ [-Wunused-variable]
  787 |   int num_trees = forests.NumTrees();
      |       ^~~~~~~~~
../src/include/stochtree/tree_sampler.h: In instantiation of ‘void StochTree::GFRSampleOneIter(TreeEnsemble&, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, std::vector<int>&, double, std::vector<FeatureType>&, int, bool, bool, bool, int, 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>]’:
sampler.cpp:87:135:   required from here
   87 |         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, sweep_indices_, global_variance, feature_types_, cutpoint_grid_size, keep_forest, pre_initialized, true, num_features_subsample, num_threads);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:787:7: warning: unused variable ‘num_trees’ [-Wunused-variable]
  787 |   int num_trees = forests.NumTrees();
      |       ^~~~~~~~~
../src/include/stochtree/tree_sampler.h: In instantiation of ‘void StochTree::GFRSampleOneIter(TreeEnsemble&, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, std::vector<int>&, double, std::vector<FeatureType>&, int, bool, bool, bool, int, 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>]’:
sampler.cpp:89:144:   required from here
   89 |         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, sweep_indices_, global_variance, feature_types_, cutpoint_grid_size, keep_forest, pre_initialized, true, num_features_subsample, num_threads, num_basis);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:787:7: warning: unused variable ‘num_trees’ [-Wunused-variable]
  787 |   int num_trees = forests.NumTrees();
      |       ^~~~~~~~~
../src/include/stochtree/tree_sampler.h: In instantiation of ‘void StochTree::GFRSampleOneIter(TreeEnsemble&, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, std::vector<int>&, double, std::vector<FeatureType>&, int, bool, bool, bool, int, 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>]’:
sampler.cpp:91:113:   required from here
   91 |         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, sweep_indices_, global_variance, feature_types_, cutpoint_grid_size, keep_forest, pre_initialized, false, num_features_subsample, num_threads);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:787:7: warning: unused variable ‘num_trees’ [-Wunused-variable]
  787 |   int num_trees = forests.NumTrees();
      |       ^~~~~~~~~
../src/include/stochtree/tree_sampler.h: In instantiation of ‘void StochTree::MCMCSampleOneIter(TreeEnsemble&, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, std::vector<int>&, double, bool, bool, bool, 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>]’:
sampler.cpp:167:112:   required from here
  167 |         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, sweep_indices_, global_variance, keep_forest, pre_initialized, true, num_threads);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:1096:7: warning: unused variable ‘num_trees’ [-Wunused-variable]
 1096 |   int num_trees = forests.NumTrees();
      |       ^~~~~~~~~
../src/include/stochtree/tree_sampler.h: In instantiation of ‘void StochTree::MCMCSampleOneIter(TreeEnsemble&, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, std::vector<int>&, double, bool, bool, bool, 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>]’:
sampler.cpp:169:136:   required from here
  169 |         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, sweep_indices_, global_variance, keep_forest, pre_initialized, true, num_threads);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:1096:7: warning: unused variable ‘num_trees’ [-Wunused-variable]
 1096 |   int num_trees = forests.NumTrees();
      |       ^~~~~~~~~
../src/include/stochtree/tree_sampler.h: In instantiation of ‘void StochTree::MCMCSampleOneIter(TreeEnsemble&, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, std::vector<int>&, double, bool, bool, bool, 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>]’:
sampler.cpp:171:145:   required from here
  171 |         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, sweep_indices_, global_variance, keep_forest, pre_initialized, true, num_threads, num_basis);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:1096:7: warning: unused variable ‘num_trees’ [-Wunused-variable]
 1096 |   int num_trees = forests.NumTrees();
      |       ^~~~~~~~~
../src/include/stochtree/tree_sampler.h: In instantiation of ‘void StochTree::MCMCSampleOneIter(TreeEnsemble&, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, std::vector<int>&, double, bool, bool, bool, 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>]’:
sampler.cpp:173:114:   required from here
  173 |         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, sweep_indices_, global_variance, keep_forest, pre_initialized, false, num_threads);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:1096:7: warning: unused variable ‘num_trees’ [-Wunused-variable]
 1096 |   int num_trees = forests.NumTrees();
      |       ^~~~~~~~~
In file included from stochtree_types.h:3:
../src/include/stochtree/discrete_sampler.h: In instantiation of ‘void StochTree::sample_without_replacement(container_type*, prob_type*, container_type*, int, int, std::mt19937&) [with container_type = int; prob_type = double; std::mt19937 = std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>]’:
sampler.cpp:319:55:   required from here
  319 |     StochTree::sample_without_replacement<int, double>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  320 |         output_ptr, sampling_probs_ptr, population_vector_ptr, population_size, sample_size, gen
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  321 |     );
      |     ~                                                  
../src/include/stochtree/discrete_sampler.h:37:23: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
   37 |     for (int i = 0; i < cdf.size(); i++) {
      |                     ~~^~~~~~~~~~~~
../src/include/stochtree/discrete_sampler.h:52:23: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
   52 |     for (int i = 0; i < matches.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, 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>]’:
../src/include/stochtree/tree_sampler.h:1107:83:   required from ‘void StochTree::MCMCSampleOneIter(TreeEnsemble&, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, std::vector<int>&, double, bool, bool, bool, 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>]’
 1107 |     MCMCSampleTreeOneIter<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1108 |       tree, tracker, forests, leaf_model, dataset, residual, tree_prior, gen, variable_weights, i,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1109 |       global_variance, num_threads, leaf_suff_stat_args...
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                         
 1110 |     );
      |     ~                                                                              
sampler.cpp:167:112:   required from here
  167 |         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, sweep_indices_, global_variance, keep_forest, pre_initialized, true, num_threads);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:1050:8: warning: unused variable ‘accept’ [-Wunused-variable]
 1050 |   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, 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>]’:
../src/include/stochtree/tree_sampler.h:1107:83:   required from ‘void StochTree::MCMCSampleOneIter(TreeEnsemble&, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, std::vector<int>&, double, bool, bool, bool, 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>]’
 1107 |     MCMCSampleTreeOneIter<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1108 |       tree, tracker, forests, leaf_model, dataset, residual, tree_prior, gen, variable_weights, i,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1109 |       global_variance, num_threads, leaf_suff_stat_args...
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                         
 1110 |     );
      |     ~                                                                              
sampler.cpp:169:136:   required from here
  169 |         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, sweep_indices_, global_variance, keep_forest, pre_initialized, true, num_threads);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:1050:8: warning: unused variable ‘accept’ [-Wunused-variable]
 1050 |   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, 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>]’:
../src/include/stochtree/tree_sampler.h:1107:83:   required from ‘void StochTree::MCMCSampleOneIter(TreeEnsemble&, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, std::vector<int>&, double, bool, bool, bool, 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>]’
 1107 |     MCMCSampleTreeOneIter<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1108 |       tree, tracker, forests, leaf_model, dataset, residual, tree_prior, gen, variable_weights, i,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1109 |       global_variance, num_threads, leaf_suff_stat_args...
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                         
 1110 |     );
      |     ~                                                                              
sampler.cpp:171:145:   required from here
  171 |         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, sweep_indices_, global_variance, keep_forest, pre_initialized, true, num_threads, num_basis);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:1050:8: warning: unused variable ‘accept’ [-Wunused-variable]
 1050 |   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, 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>]’:
../src/include/stochtree/tree_sampler.h:1107:83:   required from ‘void StochTree::MCMCSampleOneIter(TreeEnsemble&, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, std::vector<int>&, double, bool, bool, bool, 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>]’
 1107 |     MCMCSampleTreeOneIter<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1108 |       tree, tracker, forests, leaf_model, dataset, residual, tree_prior, gen, variable_weights, i,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1109 |       global_variance, num_threads, leaf_suff_stat_args...
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                         
 1110 |     );
      |     ~                                                                              
sampler.cpp:173:114:   required from here
  173 |         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, sweep_indices_, global_variance, keep_forest, pre_initialized, false, num_threads);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:1050:8: warning: unused variable ‘accept’ [-Wunused-variable]
 1050 |   bool accept;
      |        ^~~~~~
../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>&, std::vector<bool>, 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>; data_size_t = int]’:
../src/include/stochtree/tree_sampler.h:743:77:   required from ‘void StochTree::GFRSampleTreeOneIter(Tree*, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, int, double, std::vector<FeatureType>&, int, int, 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>]’
  743 |     SampleSplitRule<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  744 |       tree, tracker, leaf_model, dataset, residual, tree_prior, gen, tree_num, global_variance, cutpoint_grid_size,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  745 |       node_index_map, split_queue, curr_node_id, curr_node_begin, curr_node_end, variable_weights, feature_types,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  746 |       feature_subset, num_threads, leaf_suff_stat_args...
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
  747 |     );
      |     ~                                                                        
../src/include/stochtree/tree_sampler.h:802:82:   required from ‘void StochTree::GFRSampleOneIter(TreeEnsemble&, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, std::vector<int>&, double, std::vector<FeatureType>&, int, bool, bool, bool, int, 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>]’
  802 |     GFRSampleTreeOneIter<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  803 |       tree, tracker, forests, leaf_model, dataset, residual, tree_prior, gen,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
  804 |       variable_weights, i, global_variance, feature_types, cutpoint_grid_size,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  805 |       num_features_subsample, num_threads, leaf_suff_stat_args...
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
  806 |     );
      |     ~                                                                             
sampler.cpp:85:111:   required from here
   85 |         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, sweep_indices_, global_variance, feature_types_, cutpoint_grid_size, keep_forest, pre_initialized, true, num_features_subsample, num_threads);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:537:23: warning: unused variable ‘current_bin_begin’ [-Wunused-variable]
  537 |           data_size_t current_bin_begin = cutpoint_grid_container.BinStartIndex(cutpoint_idx, j);
      |                       ^~~~~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:538:23: warning: unused variable ‘current_bin_size’ [-Wunused-variable]
  538 |           data_size_t current_bin_size = cutpoint_grid_container.BinLength(cutpoint_idx, j);
      |                       ^~~~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:539:23: warning: unused variable ‘next_bin_begin’ [-Wunused-variable]
  539 |           data_size_t next_bin_begin = cutpoint_grid_container.BinStartIndex(cutpoint_idx + 1, j);
      |                       ^~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:534:21: warning: unused variable ‘feature_type’ [-Wunused-variable]
  534 |         FeatureType feature_type = feature_types[j];
      |                     ^~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:598:27: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  598 |         for (int i = 0; i < feature_log_cutpoint_evaluations[j].size(); i++) {
      |                         ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:648:13: warning: unused variable ‘num_categories’ [-Wunused-variable]
  648 |         int num_categories;
      |             ^~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:633:19: warning: unused variable ‘node_n’ [-Wunused-variable]
  633 |       data_size_t node_n = node_end - node_begin;
      |                   ^~~~~~
../src/include/stochtree/tree_sampler.h:641:19: warning: unused variable ‘right_n’ [-Wunused-variable]
  641 |       data_size_t right_n = 0;
      |                   ^~~~~~~
../src/include/stochtree/tree_sampler.h:642:19: warning: unused variable ‘sort_idx’ [-Wunused-variable]
  642 |       data_size_t sort_idx;
      |                   ^~~~~~~~
../src/include/stochtree/tree_sampler.h:643:14: warning: unused variable ‘feature_value’ [-Wunused-variable]
  643 |       double feature_value;
      |              ^~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:644:12: warning: unused variable ‘split_true’ [-Wunused-variable]
  644 |       bool split_true;
      |            ^~~~~~~~~~
../src/include/stochtree/tree_sampler.h:514:17: warning: unused variable ‘num_cutpoints’ [-Wunused-variable]
  514 |     data_size_t num_cutpoints = 0;
      |                 ^~~~~~~~~~~~~
../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>&, std::vector<bool>, 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>; data_size_t = int]’:
../src/include/stochtree/tree_sampler.h:743:77:   required from ‘void StochTree::GFRSampleTreeOneIter(Tree*, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, int, double, std::vector<FeatureType>&, int, int, 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>]’
  743 |     SampleSplitRule<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  744 |       tree, tracker, leaf_model, dataset, residual, tree_prior, gen, tree_num, global_variance, cutpoint_grid_size,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  745 |       node_index_map, split_queue, curr_node_id, curr_node_begin, curr_node_end, variable_weights, feature_types,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  746 |       feature_subset, num_threads, leaf_suff_stat_args...
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
  747 |     );
      |     ~                                                                        
../src/include/stochtree/tree_sampler.h:802:82:   required from ‘void StochTree::GFRSampleOneIter(TreeEnsemble&, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, std::vector<int>&, double, std::vector<FeatureType>&, int, bool, bool, bool, int, 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>]’
  802 |     GFRSampleTreeOneIter<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  803 |       tree, tracker, forests, leaf_model, dataset, residual, tree_prior, gen,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
  804 |       variable_weights, i, global_variance, feature_types, cutpoint_grid_size,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  805 |       num_features_subsample, num_threads, leaf_suff_stat_args...
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
  806 |     );
      |     ~                                                                             
sampler.cpp:87:135:   required from here
   87 |         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, sweep_indices_, global_variance, feature_types_, cutpoint_grid_size, keep_forest, pre_initialized, true, num_features_subsample, num_threads);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:537:23: warning: unused variable ‘current_bin_begin’ [-Wunused-variable]
  537 |           data_size_t current_bin_begin = cutpoint_grid_container.BinStartIndex(cutpoint_idx, j);
      |                       ^~~~~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:538:23: warning: unused variable ‘current_bin_size’ [-Wunused-variable]
  538 |           data_size_t current_bin_size = cutpoint_grid_container.BinLength(cutpoint_idx, j);
      |                       ^~~~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:539:23: warning: unused variable ‘next_bin_begin’ [-Wunused-variable]
  539 |           data_size_t next_bin_begin = cutpoint_grid_container.BinStartIndex(cutpoint_idx + 1, j);
      |                       ^~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:534:21: warning: unused variable ‘feature_type’ [-Wunused-variable]
  534 |         FeatureType feature_type = feature_types[j];
      |                     ^~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:598:27: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  598 |         for (int i = 0; i < feature_log_cutpoint_evaluations[j].size(); i++) {
      |                         ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:648:13: warning: unused variable ‘num_categories’ [-Wunused-variable]
  648 |         int num_categories;
      |             ^~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:633:19: warning: unused variable ‘node_n’ [-Wunused-variable]
  633 |       data_size_t node_n = node_end - node_begin;
      |                   ^~~~~~
../src/include/stochtree/tree_sampler.h:641:19: warning: unused variable ‘right_n’ [-Wunused-variable]
  641 |       data_size_t right_n = 0;
      |                   ^~~~~~~
../src/include/stochtree/tree_sampler.h:642:19: warning: unused variable ‘sort_idx’ [-Wunused-variable]
  642 |       data_size_t sort_idx;
      |                   ^~~~~~~~
../src/include/stochtree/tree_sampler.h:643:14: warning: unused variable ‘feature_value’ [-Wunused-variable]
  643 |       double feature_value;
      |              ^~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:644:12: warning: unused variable ‘split_true’ [-Wunused-variable]
  644 |       bool split_true;
      |            ^~~~~~~~~~
../src/include/stochtree/tree_sampler.h:514:17: warning: unused variable ‘num_cutpoints’ [-Wunused-variable]
  514 |     data_size_t num_cutpoints = 0;
      |                 ^~~~~~~~~~~~~
../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>&, std::vector<bool>, 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>; data_size_t = int]’:
../src/include/stochtree/tree_sampler.h:743:77:   required from ‘void StochTree::GFRSampleTreeOneIter(Tree*, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, int, double, std::vector<FeatureType>&, int, int, 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>]’
  743 |     SampleSplitRule<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  744 |       tree, tracker, leaf_model, dataset, residual, tree_prior, gen, tree_num, global_variance, cutpoint_grid_size,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  745 |       node_index_map, split_queue, curr_node_id, curr_node_begin, curr_node_end, variable_weights, feature_types,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  746 |       feature_subset, num_threads, leaf_suff_stat_args...
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
  747 |     );
      |     ~                                                                        
../src/include/stochtree/tree_sampler.h:802:82:   required from ‘void StochTree::GFRSampleOneIter(TreeEnsemble&, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, std::vector<int>&, double, std::vector<FeatureType>&, int, bool, bool, bool, int, 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>]’
  802 |     GFRSampleTreeOneIter<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  803 |       tree, tracker, forests, leaf_model, dataset, residual, tree_prior, gen,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
  804 |       variable_weights, i, global_variance, feature_types, cutpoint_grid_size,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  805 |       num_features_subsample, num_threads, leaf_suff_stat_args...
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
  806 |     );
      |     ~                                                                             
sampler.cpp:89:144:   required from here
   89 |         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, sweep_indices_, global_variance, feature_types_, cutpoint_grid_size, keep_forest, pre_initialized, true, num_features_subsample, num_threads, num_basis);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:537:23: warning: unused variable ‘current_bin_begin’ [-Wunused-variable]
  537 |           data_size_t current_bin_begin = cutpoint_grid_container.BinStartIndex(cutpoint_idx, j);
      |                       ^~~~~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:538:23: warning: unused variable ‘current_bin_size’ [-Wunused-variable]
  538 |           data_size_t current_bin_size = cutpoint_grid_container.BinLength(cutpoint_idx, j);
      |                       ^~~~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:539:23: warning: unused variable ‘next_bin_begin’ [-Wunused-variable]
  539 |           data_size_t next_bin_begin = cutpoint_grid_container.BinStartIndex(cutpoint_idx + 1, j);
      |                       ^~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:534:21: warning: unused variable ‘feature_type’ [-Wunused-variable]
  534 |         FeatureType feature_type = feature_types[j];
      |                     ^~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:598:27: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  598 |         for (int i = 0; i < feature_log_cutpoint_evaluations[j].size(); i++) {
      |                         ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:648:13: warning: unused variable ‘num_categories’ [-Wunused-variable]
  648 |         int num_categories;
      |             ^~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:633:19: warning: unused variable ‘node_n’ [-Wunused-variable]
  633 |       data_size_t node_n = node_end - node_begin;
      |                   ^~~~~~
../src/include/stochtree/tree_sampler.h:641:19: warning: unused variable ‘right_n’ [-Wunused-variable]
  641 |       data_size_t right_n = 0;
      |                   ^~~~~~~
../src/include/stochtree/tree_sampler.h:642:19: warning: unused variable ‘sort_idx’ [-Wunused-variable]
  642 |       data_size_t sort_idx;
      |                   ^~~~~~~~
../src/include/stochtree/tree_sampler.h:643:14: warning: unused variable ‘feature_value’ [-Wunused-variable]
  643 |       double feature_value;
      |              ^~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:644:12: warning: unused variable ‘split_true’ [-Wunused-variable]
  644 |       bool split_true;
      |            ^~~~~~~~~~
../src/include/stochtree/tree_sampler.h:514:17: warning: unused variable ‘num_cutpoints’ [-Wunused-variable]
  514 |     data_size_t num_cutpoints = 0;
      |                 ^~~~~~~~~~~~~
../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>&, std::vector<bool>, 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>; data_size_t = int]’:
../src/include/stochtree/tree_sampler.h:743:77:   required from ‘void StochTree::GFRSampleTreeOneIter(Tree*, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, int, double, std::vector<FeatureType>&, int, int, 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>]’
  743 |     SampleSplitRule<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  744 |       tree, tracker, leaf_model, dataset, residual, tree_prior, gen, tree_num, global_variance, cutpoint_grid_size,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  745 |       node_index_map, split_queue, curr_node_id, curr_node_begin, curr_node_end, variable_weights, feature_types,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  746 |       feature_subset, num_threads, leaf_suff_stat_args...
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
  747 |     );
      |     ~                                                                        
../src/include/stochtree/tree_sampler.h:802:82:   required from ‘void StochTree::GFRSampleOneIter(TreeEnsemble&, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, std::vector<int>&, double, std::vector<FeatureType>&, int, bool, bool, bool, int, 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>]’
  802 |     GFRSampleTreeOneIter<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  803 |       tree, tracker, forests, leaf_model, dataset, residual, tree_prior, gen,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
  804 |       variable_weights, i, global_variance, feature_types, cutpoint_grid_size,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  805 |       num_features_subsample, num_threads, leaf_suff_stat_args...
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
  806 |     );
      |     ~                                                                             
sampler.cpp:91:113:   required from here
   91 |         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, sweep_indices_, global_variance, feature_types_, cutpoint_grid_size, keep_forest, pre_initialized, false, num_features_subsample, num_threads);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:537:23: warning: unused variable ‘current_bin_begin’ [-Wunused-variable]
  537 |           data_size_t current_bin_begin = cutpoint_grid_container.BinStartIndex(cutpoint_idx, j);
      |                       ^~~~~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:538:23: warning: unused variable ‘current_bin_size’ [-Wunused-variable]
  538 |           data_size_t current_bin_size = cutpoint_grid_container.BinLength(cutpoint_idx, j);
      |                       ^~~~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:539:23: warning: unused variable ‘next_bin_begin’ [-Wunused-variable]
  539 |           data_size_t next_bin_begin = cutpoint_grid_container.BinStartIndex(cutpoint_idx + 1, j);
      |                       ^~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:534:21: warning: unused variable ‘feature_type’ [-Wunused-variable]
  534 |         FeatureType feature_type = feature_types[j];
      |                     ^~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:598:27: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  598 |         for (int i = 0; i < feature_log_cutpoint_evaluations[j].size(); i++) {
      |                         ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:648:13: warning: unused variable ‘num_categories’ [-Wunused-variable]
  648 |         int num_categories;
      |             ^~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:633:19: warning: unused variable ‘node_n’ [-Wunused-variable]
  633 |       data_size_t node_n = node_end - node_begin;
      |                   ^~~~~~
../src/include/stochtree/tree_sampler.h:641:19: warning: unused variable ‘right_n’ [-Wunused-variable]
  641 |       data_size_t right_n = 0;
      |                   ^~~~~~~
../src/include/stochtree/tree_sampler.h:642:19: warning: unused variable ‘sort_idx’ [-Wunused-variable]
  642 |       data_size_t sort_idx;
      |                   ^~~~~~~~
../src/include/stochtree/tree_sampler.h:643:14: warning: unused variable ‘feature_value’ [-Wunused-variable]
  643 |       double feature_value;
      |              ^~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:644:12: warning: unused variable ‘split_true’ [-Wunused-variable]
  644 |       bool split_true;
      |            ^~~~~~~~~~
../src/include/stochtree/tree_sampler.h:514:17: warning: unused variable ‘num_cutpoints’ [-Wunused-variable]
  514 |     data_size_t num_cutpoints = 0;
      |                 ^~~~~~~~~~~~~
../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, 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>]’:
../src/include/stochtree/tree_sampler.h:1053:81:   required from ‘void StochTree::MCMCSampleTreeOneIter(Tree*, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, int, double, 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>]’
 1053 |     MCMCGrowTreeOneIter<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1054 |       tree, tracker, leaf_model, dataset, residual, tree_prior, gen, tree_num, variable_weights, global_variance, prob_grow, num_threads, leaf_suff_stat_args...
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1055 |     );
      |     ~                                                                            
../src/include/stochtree/tree_sampler.h:1107:83:   required from ‘void StochTree::MCMCSampleOneIter(TreeEnsemble&, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, std::vector<int>&, double, bool, bool, bool, 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>]’
 1107 |     MCMCSampleTreeOneIter<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1108 |       tree, tracker, forests, leaf_model, dataset, residual, tree_prior, gen, variable_weights, i,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1109 |       global_variance, num_threads, leaf_suff_stat_args...
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                         
 1110 |     );
      |     ~                                                                              
sampler.cpp:167:112:   required from here
  167 |         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, sweep_indices_, global_variance, keep_forest, pre_initialized, true, num_threads);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/log.h:44:34: warning: comparison of integer expressions of different signedness: ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
   44 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                                  ^
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/tree_sampler.h:851:5: note: in expansion of macro ‘CHECK_EQ’
  851 |     CHECK_EQ(variable_weights.size(), p);
      |     ^~~~~~~~
../src/include/stochtree/tree_sampler.h:829:15: warning: unused variable ‘n’ [-Wunused-variable]
  829 |   data_size_t n = dataset.GetCovariates().rows();
      |               ^
../src/include/stochtree/tree_sampler.h:844:8: warning: variable ‘accept’ set but not used [-Wunused-but-set-variable]
  844 |   bool accept;
      |        ^~~~~~
../src/include/stochtree/tree_sampler.h: In instantiation of ‘void StochTree::MCMCPruneTreeOneIter(Tree*, ForestTracker&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, int, double, 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>]’:
../src/include/stochtree/tree_sampler.h:1057:82:   required from ‘void StochTree::MCMCSampleTreeOneIter(Tree*, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, int, double, 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>]’
 1057 |     MCMCPruneTreeOneIter<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1058 |       tree, tracker, leaf_model, dataset, residual, tree_prior, gen, tree_num, global_variance, num_threads, leaf_suff_stat_args...
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1059 |     );
      |     ~                                                                             
../src/include/stochtree/tree_sampler.h:1107:83:   required from ‘void StochTree::MCMCSampleOneIter(TreeEnsemble&, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, std::vector<int>&, double, bool, bool, bool, 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>]’
 1107 |     MCMCSampleTreeOneIter<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1108 |       tree, tracker, forests, leaf_model, dataset, residual, tree_prior, gen, variable_weights, i,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1109 |       global_variance, num_threads, leaf_suff_stat_args...
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                         
 1110 |     );
      |     ~                                                                              
sampler.cpp:167:112:   required from here
  167 |         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, sweep_indices_, global_variance, keep_forest, pre_initialized, true, num_threads);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:947:7: warning: unused variable ‘feature_split’ [-Wunused-variable]
  947 |   int feature_split = tree->SplitIndex(leaf_parent_chosen);
      |       ^~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:955:11: warning: unused variable ‘left_n’ [-Wunused-variable]
  955 |   int32_t left_n = std::get<2>(split_eval);
      |           ^~~~~~
../src/include/stochtree/tree_sampler.h:956:11: warning: unused variable ‘right_n’ [-Wunused-variable]
  956 |   int32_t right_n = std::get<3>(split_eval);
      |           ^~~~~~~
../src/include/stochtree/tree_sampler.h:1000:8: warning: variable ‘accept’ set but not used [-Wunused-but-set-variable]
 1000 |   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, 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>]’:
../src/include/stochtree/tree_sampler.h:1053:81:   required from ‘void StochTree::MCMCSampleTreeOneIter(Tree*, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, int, double, 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>]’
 1053 |     MCMCGrowTreeOneIter<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1054 |       tree, tracker, leaf_model, dataset, residual, tree_prior, gen, tree_num, variable_weights, global_variance, prob_grow, num_threads, leaf_suff_stat_args...
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1055 |     );
      |     ~                                                                            
../src/include/stochtree/tree_sampler.h:1107:83:   required from ‘void StochTree::MCMCSampleOneIter(TreeEnsemble&, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, std::vector<int>&, double, bool, bool, bool, 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>]’
 1107 |     MCMCSampleTreeOneIter<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1108 |       tree, tracker, forests, leaf_model, dataset, residual, tree_prior, gen, variable_weights, i,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1109 |       global_variance, num_threads, leaf_suff_stat_args...
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                         
 1110 |     );
      |     ~                                                                              
sampler.cpp:169:136:   required from here
  169 |         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, sweep_indices_, global_variance, keep_forest, pre_initialized, true, num_threads);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/log.h:44:34: warning: comparison of integer expressions of different signedness: ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
   44 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                                  ^
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/tree_sampler.h:851:5: note: in expansion of macro ‘CHECK_EQ’
  851 |     CHECK_EQ(variable_weights.size(), p);
      |     ^~~~~~~~
../src/include/stochtree/tree_sampler.h:829:15: warning: unused variable ‘n’ [-Wunused-variable]
  829 |   data_size_t n = dataset.GetCovariates().rows();
      |               ^
../src/include/stochtree/tree_sampler.h:844:8: warning: variable ‘accept’ set but not used [-Wunused-but-set-variable]
  844 |   bool accept;
      |        ^~~~~~
../src/include/stochtree/tree_sampler.h: In instantiation of ‘void StochTree::MCMCPruneTreeOneIter(Tree*, ForestTracker&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, int, double, 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>]’:
../src/include/stochtree/tree_sampler.h:1057:82:   required from ‘void StochTree::MCMCSampleTreeOneIter(Tree*, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, int, double, 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>]’
 1057 |     MCMCPruneTreeOneIter<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1058 |       tree, tracker, leaf_model, dataset, residual, tree_prior, gen, tree_num, global_variance, num_threads, leaf_suff_stat_args...
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1059 |     );
      |     ~                                                                             
../src/include/stochtree/tree_sampler.h:1107:83:   required from ‘void StochTree::MCMCSampleOneIter(TreeEnsemble&, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, std::vector<int>&, double, bool, bool, bool, 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>]’
 1107 |     MCMCSampleTreeOneIter<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1108 |       tree, tracker, forests, leaf_model, dataset, residual, tree_prior, gen, variable_weights, i,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1109 |       global_variance, num_threads, leaf_suff_stat_args...
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                         
 1110 |     );
      |     ~                                                                              
sampler.cpp:169:136:   required from here
  169 |         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, sweep_indices_, global_variance, keep_forest, pre_initialized, true, num_threads);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:947:7: warning: unused variable ‘feature_split’ [-Wunused-variable]
  947 |   int feature_split = tree->SplitIndex(leaf_parent_chosen);
      |       ^~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:955:11: warning: unused variable ‘left_n’ [-Wunused-variable]
  955 |   int32_t left_n = std::get<2>(split_eval);
      |           ^~~~~~
../src/include/stochtree/tree_sampler.h:956:11: warning: unused variable ‘right_n’ [-Wunused-variable]
  956 |   int32_t right_n = std::get<3>(split_eval);
      |           ^~~~~~~
../src/include/stochtree/tree_sampler.h:1000:8: warning: variable ‘accept’ set but not used [-Wunused-but-set-variable]
 1000 |   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, 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>]’:
../src/include/stochtree/tree_sampler.h:1053:81:   required from ‘void StochTree::MCMCSampleTreeOneIter(Tree*, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, int, double, 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>]’
 1053 |     MCMCGrowTreeOneIter<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1054 |       tree, tracker, leaf_model, dataset, residual, tree_prior, gen, tree_num, variable_weights, global_variance, prob_grow, num_threads, leaf_suff_stat_args...
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1055 |     );
      |     ~                                                                            
../src/include/stochtree/tree_sampler.h:1107:83:   required from ‘void StochTree::MCMCSampleOneIter(TreeEnsemble&, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, std::vector<int>&, double, bool, bool, bool, 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>]’
 1107 |     MCMCSampleTreeOneIter<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1108 |       tree, tracker, forests, leaf_model, dataset, residual, tree_prior, gen, variable_weights, i,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1109 |       global_variance, num_threads, leaf_suff_stat_args...
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                         
 1110 |     );
      |     ~                                                                              
sampler.cpp:171:145:   required from here
  171 |         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, sweep_indices_, global_variance, keep_forest, pre_initialized, true, num_threads, num_basis);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/log.h:44:34: warning: comparison of integer expressions of different signedness: ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
   44 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                                  ^
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/tree_sampler.h:851:5: note: in expansion of macro ‘CHECK_EQ’
  851 |     CHECK_EQ(variable_weights.size(), p);
      |     ^~~~~~~~
../src/include/stochtree/tree_sampler.h:829:15: warning: unused variable ‘n’ [-Wunused-variable]
  829 |   data_size_t n = dataset.GetCovariates().rows();
      |               ^
../src/include/stochtree/tree_sampler.h:844:8: warning: variable ‘accept’ set but not used [-Wunused-but-set-variable]
  844 |   bool accept;
      |        ^~~~~~
../src/include/stochtree/tree_sampler.h: In instantiation of ‘void StochTree::MCMCPruneTreeOneIter(Tree*, ForestTracker&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, int, double, 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>]’:
../src/include/stochtree/tree_sampler.h:1057:82:   required from ‘void StochTree::MCMCSampleTreeOneIter(Tree*, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, int, double, 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>]’
 1057 |     MCMCPruneTreeOneIter<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1058 |       tree, tracker, leaf_model, dataset, residual, tree_prior, gen, tree_num, global_variance, num_threads, leaf_suff_stat_args...
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1059 |     );
      |     ~                                                                             
../src/include/stochtree/tree_sampler.h:1107:83:   required from ‘void StochTree::MCMCSampleOneIter(TreeEnsemble&, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, std::vector<int>&, double, bool, bool, bool, 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>]’
 1107 |     MCMCSampleTreeOneIter<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1108 |       tree, tracker, forests, leaf_model, dataset, residual, tree_prior, gen, variable_weights, i,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1109 |       global_variance, num_threads, leaf_suff_stat_args...
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                         
 1110 |     );
      |     ~                                                                              
sampler.cpp:171:145:   required from here
  171 |         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, sweep_indices_, global_variance, keep_forest, pre_initialized, true, num_threads, num_basis);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:947:7: warning: unused variable ‘feature_split’ [-Wunused-variable]
  947 |   int feature_split = tree->SplitIndex(leaf_parent_chosen);
      |       ^~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:955:11: warning: unused variable ‘left_n’ [-Wunused-variable]
  955 |   int32_t left_n = std::get<2>(split_eval);
      |           ^~~~~~
../src/include/stochtree/tree_sampler.h:956:11: warning: unused variable ‘right_n’ [-Wunused-variable]
  956 |   int32_t right_n = std::get<3>(split_eval);
      |           ^~~~~~~
../src/include/stochtree/tree_sampler.h:1000:8: warning: variable ‘accept’ set but not used [-Wunused-but-set-variable]
 1000 |   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, 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>]’:
../src/include/stochtree/tree_sampler.h:1053:81:   required from ‘void StochTree::MCMCSampleTreeOneIter(Tree*, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, int, double, 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>]’
 1053 |     MCMCGrowTreeOneIter<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1054 |       tree, tracker, leaf_model, dataset, residual, tree_prior, gen, tree_num, variable_weights, global_variance, prob_grow, num_threads, leaf_suff_stat_args...
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1055 |     );
      |     ~                                                                            
../src/include/stochtree/tree_sampler.h:1107:83:   required from ‘void StochTree::MCMCSampleOneIter(TreeEnsemble&, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, std::vector<int>&, double, bool, bool, bool, 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>]’
 1107 |     MCMCSampleTreeOneIter<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1108 |       tree, tracker, forests, leaf_model, dataset, residual, tree_prior, gen, variable_weights, i,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1109 |       global_variance, num_threads, leaf_suff_stat_args...
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                         
 1110 |     );
      |     ~                                                                              
sampler.cpp:173:114:   required from here
  173 |         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, sweep_indices_, global_variance, keep_forest, pre_initialized, false, num_threads);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/log.h:44:34: warning: comparison of integer expressions of different signedness: ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
   44 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                                  ^
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/tree_sampler.h:851:5: note: in expansion of macro ‘CHECK_EQ’
  851 |     CHECK_EQ(variable_weights.size(), p);
      |     ^~~~~~~~
../src/include/stochtree/tree_sampler.h:829:15: warning: unused variable ‘n’ [-Wunused-variable]
  829 |   data_size_t n = dataset.GetCovariates().rows();
      |               ^
../src/include/stochtree/tree_sampler.h:844:8: warning: variable ‘accept’ set but not used [-Wunused-but-set-variable]
  844 |   bool accept;
      |        ^~~~~~
../src/include/stochtree/tree_sampler.h: In instantiation of ‘void StochTree::MCMCPruneTreeOneIter(Tree*, ForestTracker&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, int, double, 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>]’:
../src/include/stochtree/tree_sampler.h:1057:82:   required from ‘void StochTree::MCMCSampleTreeOneIter(Tree*, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, int, double, 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>]’
 1057 |     MCMCPruneTreeOneIter<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1058 |       tree, tracker, leaf_model, dataset, residual, tree_prior, gen, tree_num, global_variance, num_threads, leaf_suff_stat_args...
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1059 |     );
      |     ~                                                                             
../src/include/stochtree/tree_sampler.h:1107:83:   required from ‘void StochTree::MCMCSampleOneIter(TreeEnsemble&, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, std::vector<int>&, double, bool, bool, bool, 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>]’
 1107 |     MCMCSampleTreeOneIter<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1108 |       tree, tracker, forests, leaf_model, dataset, residual, tree_prior, gen, variable_weights, i,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1109 |       global_variance, num_threads, leaf_suff_stat_args...
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                         
 1110 |     );
      |     ~                                                                              
sampler.cpp:173:114:   required from here
  173 |         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, sweep_indices_, global_variance, keep_forest, pre_initialized, false, num_threads);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:947:7: warning: unused variable ‘feature_split’ [-Wunused-variable]
  947 |   int feature_split = tree->SplitIndex(leaf_parent_chosen);
      |       ^~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:955:11: warning: unused variable ‘left_n’ [-Wunused-variable]
  955 |   int32_t left_n = std::get<2>(split_eval);
      |           ^~~~~~
../src/include/stochtree/tree_sampler.h:956:11: warning: unused variable ‘right_n’ [-Wunused-variable]
  956 |   int32_t right_n = std::get<3>(split_eval);
      |           ^~~~~~~
../src/include/stochtree/tree_sampler.h:1000:8: warning: variable ‘accept’ set but not used [-Wunused-but-set-variable]
 1000 |   bool accept;
      |        ^~~~~~
../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:542:54:   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>&, std::vector<bool>, 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>; data_size_t = int]’
  542 |           AccumulateCutpointBinSuffStat<LeafSuffStat>(left_suff_stat, tracker, cutpoint_grid_container, dataset, residual,
      |           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  543 |                                                       global_variance, tree_num, node_id, j, cutpoint_idx);
      |                                                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:743:77:   required from ‘void StochTree::GFRSampleTreeOneIter(Tree*, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, int, double, std::vector<FeatureType>&, int, int, 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>]’
  743 |     SampleSplitRule<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  744 |       tree, tracker, leaf_model, dataset, residual, tree_prior, gen, tree_num, global_variance, cutpoint_grid_size,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  745 |       node_index_map, split_queue, curr_node_id, curr_node_begin, curr_node_end, variable_weights, feature_types,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  746 |       feature_subset, num_threads, leaf_suff_stat_args...
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
  747 |     );
      |     ~                                                                        
../src/include/stochtree/tree_sampler.h:802:82:   required from ‘void StochTree::GFRSampleOneIter(TreeEnsemble&, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, std::vector<int>&, double, std::vector<FeatureType>&, int, bool, bool, bool, int, 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>]’
  802 |     GFRSampleTreeOneIter<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  803 |       tree, tracker, forests, leaf_model, dataset, residual, tree_prior, gen,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
  804 |       variable_weights, i, global_variance, feature_types, cutpoint_grid_size,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  805 |       num_features_subsample, num_threads, leaf_suff_stat_args...
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
  806 |     );
      |     ~                                                                             
sampler.cpp:85:111:   required from here
   85 |         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, sweep_indices_, global_variance, feature_types_, cutpoint_grid_size, keep_forest, pre_initialized, true, num_features_subsample, num_threads);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/leaf_model.h:1169:8: warning: variable ‘node_end_iter’ set but not used [-Wunused-but-set-variable]
 1169 |   auto node_end_iter = tracker.SortedNodeEndIterator(node_id, feature_num);
      |        ^~~~~~~~~~~~~
../src/include/stochtree/leaf_model.h:1176:15: warning: unused variable ‘current_bin_size’ [-Wunused-variable]
 1176 |   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:542:54:   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>&, std::vector<bool>, 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>; data_size_t = int]’
  542 |           AccumulateCutpointBinSuffStat<LeafSuffStat>(left_suff_stat, tracker, cutpoint_grid_container, dataset, residual,
      |           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  543 |                                                       global_variance, tree_num, node_id, j, cutpoint_idx);
      |                                                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:743:77:   required from ‘void StochTree::GFRSampleTreeOneIter(Tree*, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, int, double, std::vector<FeatureType>&, int, int, 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>]’
  743 |     SampleSplitRule<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  744 |       tree, tracker, leaf_model, dataset, residual, tree_prior, gen, tree_num, global_variance, cutpoint_grid_size,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  745 |       node_index_map, split_queue, curr_node_id, curr_node_begin, curr_node_end, variable_weights, feature_types,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  746 |       feature_subset, num_threads, leaf_suff_stat_args...
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
  747 |     );
      |     ~                                                                        
../src/include/stochtree/tree_sampler.h:802:82:   required from ‘void StochTree::GFRSampleOneIter(TreeEnsemble&, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, std::vector<int>&, double, std::vector<FeatureType>&, int, bool, bool, bool, int, 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>]’
  802 |     GFRSampleTreeOneIter<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  803 |       tree, tracker, forests, leaf_model, dataset, residual, tree_prior, gen,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
  804 |       variable_weights, i, global_variance, feature_types, cutpoint_grid_size,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  805 |       num_features_subsample, num_threads, leaf_suff_stat_args...
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
  806 |     );
      |     ~                                                                             
sampler.cpp:87:135:   required from here
   87 |         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, sweep_indices_, global_variance, feature_types_, cutpoint_grid_size, keep_forest, pre_initialized, true, num_features_subsample, num_threads);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/leaf_model.h:1169:8: warning: variable ‘node_end_iter’ set but not used [-Wunused-but-set-variable]
 1169 |   auto node_end_iter = tracker.SortedNodeEndIterator(node_id, feature_num);
      |        ^~~~~~~~~~~~~
../src/include/stochtree/leaf_model.h:1176:15: warning: unused variable ‘current_bin_size’ [-Wunused-variable]
 1176 |   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:542:54:   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>&, std::vector<bool>, 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>; data_size_t = int]’
  542 |           AccumulateCutpointBinSuffStat<LeafSuffStat>(left_suff_stat, tracker, cutpoint_grid_container, dataset, residual,
      |           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  543 |                                                       global_variance, tree_num, node_id, j, cutpoint_idx);
      |                                                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:743:77:   required from ‘void StochTree::GFRSampleTreeOneIter(Tree*, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, int, double, std::vector<FeatureType>&, int, int, 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>]’
  743 |     SampleSplitRule<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  744 |       tree, tracker, leaf_model, dataset, residual, tree_prior, gen, tree_num, global_variance, cutpoint_grid_size,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  745 |       node_index_map, split_queue, curr_node_id, curr_node_begin, curr_node_end, variable_weights, feature_types,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  746 |       feature_subset, num_threads, leaf_suff_stat_args...
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
  747 |     );
      |     ~                                                                        
../src/include/stochtree/tree_sampler.h:802:82:   required from ‘void StochTree::GFRSampleOneIter(TreeEnsemble&, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, std::vector<int>&, double, std::vector<FeatureType>&, int, bool, bool, bool, int, 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>]’
  802 |     GFRSampleTreeOneIter<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  803 |       tree, tracker, forests, leaf_model, dataset, residual, tree_prior, gen,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
  804 |       variable_weights, i, global_variance, feature_types, cutpoint_grid_size,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  805 |       num_features_subsample, num_threads, leaf_suff_stat_args...
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
  806 |     );
      |     ~                                                                             
sampler.cpp:89:144:   required from here
   89 |         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, sweep_indices_, global_variance, feature_types_, cutpoint_grid_size, keep_forest, pre_initialized, true, num_features_subsample, num_threads, num_basis);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/leaf_model.h:1169:8: warning: variable ‘node_end_iter’ set but not used [-Wunused-but-set-variable]
 1169 |   auto node_end_iter = tracker.SortedNodeEndIterator(node_id, feature_num);
      |        ^~~~~~~~~~~~~
../src/include/stochtree/leaf_model.h:1176:15: warning: unused variable ‘current_bin_size’ [-Wunused-variable]
 1176 |   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:542:54:   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>&, std::vector<bool>, 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>; data_size_t = int]’
  542 |           AccumulateCutpointBinSuffStat<LeafSuffStat>(left_suff_stat, tracker, cutpoint_grid_container, dataset, residual,
      |           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  543 |                                                       global_variance, tree_num, node_id, j, cutpoint_idx);
      |                                                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree_sampler.h:743:77:   required from ‘void StochTree::GFRSampleTreeOneIter(Tree*, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, int, double, std::vector<FeatureType>&, int, int, 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>]’
  743 |     SampleSplitRule<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  744 |       tree, tracker, leaf_model, dataset, residual, tree_prior, gen, tree_num, global_variance, cutpoint_grid_size,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  745 |       node_index_map, split_queue, curr_node_id, curr_node_begin, curr_node_end, variable_weights, feature_types,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  746 |       feature_subset, num_threads, leaf_suff_stat_args...
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                    
  747 |     );
      |     ~                                                                        
../src/include/stochtree/tree_sampler.h:802:82:   required from ‘void StochTree::GFRSampleOneIter(TreeEnsemble&, ForestTracker&, ForestContainer&, LeafModel&, ForestDataset&, ColumnVector&, TreePrior&, std::mt19937&, std::vector<double>&, std::vector<int>&, double, std::vector<FeatureType>&, int, bool, bool, bool, int, 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>]’
  802 |     GFRSampleTreeOneIter<LeafModel, LeafSuffStat, LeafSuffStatConstructorArgs...>(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  803 |       tree, tracker, forests, leaf_model, dataset, residual, tree_prior, gen,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     
  804 |       variable_weights, i, global_variance, feature_types, cutpoint_grid_size,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
  805 |       num_features_subsample, num_threads, leaf_suff_stat_args...
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
  806 |     );
      |     ~                                                                             
sampler.cpp:91:113:   required from here
   91 |         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, sweep_indices_, global_variance, feature_types_, cutpoint_grid_size, keep_forest, pre_initialized, false, num_features_subsample, num_threads);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/leaf_model.h:1169:8: warning: variable ‘node_end_iter’ set but not used [-Wunused-but-set-variable]
 1169 |   auto node_end_iter = tracker.SortedNodeEndIterator(node_id, feature_num);
      |        ^~~~~~~~~~~~~
../src/include/stochtree/leaf_model.h:1176:15: warning: unused variable ‘current_bin_size’ [-Wunused-variable]
 1176 |   data_size_t current_bin_size = cutpoint_grid_container.BinLength(cutpoint_num, feature_num);
      |               ^~~~~~~~~~~~~~~~
In file included from ../src/include/stochtree/partition_tracker.h:31:
../src/include/stochtree/openmp_utils.h:71:13: warning: ‘void StochTree::SetNumThreads(int)’ defined but not used [-Wunused-function]
   71 | static void SetNumThreads(int num_threads) {
      |             ^~~~~~~~~~~~~
../src/include/stochtree/openmp_utils.h:67:12: warning: ‘int StochTree::GetNumThreads()’ defined but not used [-Wunused-function]
   67 | static int GetNumThreads() {
      |            ^~~~~~~~~~~~~
../src/include/stochtree/openmp_utils.h:63:12: warning: ‘int StochTree::GetCurrentThreadNum()’ defined but not used [-Wunused-function]
   63 | static int GetCurrentThreadNum() {
      |            ^~~~~~~~~~~~~~~~~~~
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, cpp11::integers, int, cpp11::doubles_matrix<>, cpp11::doubles, double, double, double, int, bool, int, int)’:
sampler.cpp:80:135: warning: ‘leaf_scale’ may be used uninitialized [-Wmaybe-uninitialized]
   80 |     StochTree::LeafModelVariant leaf_model = StochTree::leafModelFactory(model_type, leaf_scale, leaf_scale_matrix, a_forest, b_forest);
      |                                                                                                                                       ^
sampler.cpp:57:12: note: ‘leaf_scale’ was declared here
   57 |     double leaf_scale;
      |            ^~~~~~~~~~
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, cpp11::integers, int, cpp11::doubles_matrix<>, cpp11::doubles, double, double, double, int, bool, int)’:
sampler.cpp:162:135: warning: ‘leaf_scale’ may be used uninitialized [-Wmaybe-uninitialized]
  162 |     StochTree::LeafModelVariant leaf_model = StochTree::leafModelFactory(model_type, leaf_scale, leaf_scale_matrix, a_forest, b_forest);
      |                                                                                                                                       ^
sampler.cpp:139:12: note: ‘leaf_scale’ was declared here
  139 |     double leaf_scale;
      |            ^~~~~~~~~~
g++ -std=gnu++17 -I"/data/gannet/ripley/R/R-devel/include" -DNDEBUG -I../src/include -DEIGEN_MPL2_ONLY -DEIGEN_DONT_PARALLELIZE -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   -fopenmp -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
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:39:7: warning: unused variable ‘feature_counter’ [-Wunused-variable]
   39 |   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:80:8: warning: unused variable ‘column_matched’ [-Wunused-variable]
   80 |   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:44:34: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
   44 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/tree.h:190:5: note: in expansion of macro ‘CHECK_EQ’
  190 |     CHECK_EQ(output_dimension_, value_vector.size());
      |     ^~~~~~~~
In file included from ../src/include/stochtree/ensemble.h:14,
                 from ../src/include/stochtree/container.h:10:
../src/include/stochtree/tree.h: In member function ‘void StochTree::Tree::AddValueToLeaves(double)’:
../src/include/stochtree/tree.h:208:25: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  208 |       for (int j = 0; j < leaf_value_.size(); j++) {
      |                       ~~^~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree.h:212:25: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  212 |       for (int j = 0; j < leaf_vector_.size(); j++) {
      |                       ~~^~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree.h: In member function ‘void StochTree::Tree::MultiplyLeavesByValue(double)’:
../src/include/stochtree/tree.h:225:25: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  225 |       for (int j = 0; j < leaf_value_.size(); j++) {
      |                       ~~^~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree.h:229:25: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  229 |       for (int j = 0; j < leaf_vector_.size(); j++) {
      |                       ~~^~~~~~~~~~~~~~~~~~~~~
../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:244: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]
  244 |     if (output.size() < total_output_size + offset) {
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/ensemble.h:249:37: warning: comparison of integer expressions of different signedness: ‘size_t’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
  249 |       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:269: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]
  269 |     if (output.size() < total_output_size + offset) {
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/ensemble.h:274:37: warning: comparison of integer expressions of different signedness: ‘size_t’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
  274 |       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:295: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]
  295 |     if (output.size() < total_output_size + offset) {
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/ensemble.h:301:39: warning: comparison of integer expressions of different signedness: ‘size_t’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
  301 |         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:44:34: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
   44 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/ensemble.h:375:5: note: in expansion of macro ‘CHECK_EQ’
  375 |     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:52:34: warning: comparison of integer expressions of different signedness: ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
   52 | #define CHECK_GE(a, b) CHECK((a) >= (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/ensemble.h:435:5: note: in expansion of macro ‘CHECK_GE’
  435 |     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:52:34: warning: comparison of integer expressions of different signedness: ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
   52 | #define CHECK_GE(a, b) CHECK((a) >= (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/ensemble.h:498:5: note: in expansion of macro ‘CHECK_GE’
  498 |     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:531: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]
  531 |     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: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:425:23: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  425 |     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:495: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]
  495 |     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:44: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]
   44 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/random_effects.h:207:5: note: in expansion of macro ‘CHECK_EQ’
  207 |     CHECK_EQ(X.rows(), group_labels.size());
      |     ^~~~~~~~
../src/include/stochtree/log.h:44:34: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
   44 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/random_effects.h:209:5: note: in expansion of macro ‘CHECK_EQ’
  209 |     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:44: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]
   44 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/random_effects.h:233:5: note: in expansion of macro ‘CHECK_EQ’
  233 |     CHECK_EQ(X.rows(), group_labels.size());
      |     ^~~~~~~~
In file included from stochtree_types.h:8:
../src/include/stochtree/tree_sampler.h: In function ‘bool StochTree::NodesNonConstantAfterSplit(ForestDataset&, ForestTracker&, TreeSplit&, int, int, int)’:
../src/include/stochtree/tree_sampler.h:79:15: warning: unused variable ‘idx’ [-Wunused-variable]
   79 |   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:122:15: warning: unused variable ‘idx’ [-Wunused-variable]
  122 |   data_size_t idx;
      |               ^~~
serialization.cpp: At global scope:
serialization.cpp:13:55: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
   13 | cpp11::external_pointer<nlohmann::json> init_json_cpp() {
      |                                                       ^
serialization.cpp:26:156: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
   26 | 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:40:118: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
   40 | void json_add_double_cpp(cpp11::external_pointer<nlohmann::json> json_ptr, std::string field_name, double field_value) {
      |                                                                                                                      ^
serialization.cpp:49:154: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
   49 | 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:63:116: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
   63 | void json_add_integer_cpp(cpp11::external_pointer<nlohmann::json> json_ptr, std::string field_name, int field_value) {
      |                                                                                                                    ^
serialization.cpp:72:152: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
   72 | 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:86:114: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
   86 | void json_add_bool_cpp(cpp11::external_pointer<nlohmann::json> json_ptr, std::string field_name, bool field_value) {
      |                                                                                                                  ^
serialization.cpp:95:165: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
   95 | 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:119:127: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  119 | void json_add_vector_cpp(cpp11::external_pointer<nlohmann::json> json_ptr, std::string field_name, cpp11::doubles field_vector) {
      |                                                                                                                               ^
serialization.cpp:135:174: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  135 | 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:159:136: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  159 | void json_add_integer_vector_cpp(cpp11::external_pointer<nlohmann::json> json_ptr, std::string field_name, cpp11::integers field_vector) {
      |                                                                                                                                        ^
serialization.cpp:175:172: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  175 | 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:199:134: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  199 | void json_add_string_vector_cpp(cpp11::external_pointer<nlohmann::json> json_ptr, std::string field_name, cpp11::strings field_vector) {
      |                                                                                                                                      ^
serialization.cpp:215:161: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  215 | 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:229:123: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  229 | void json_add_string_cpp(cpp11::external_pointer<nlohmann::json> json_ptr, std::string field_name, std::string field_value) {
      |                                                                                                                           ^
serialization.cpp:238:140: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  238 | bool json_contains_field_subfolder_cpp(cpp11::external_pointer<nlohmann::json> json_ptr, std::string subfolder_name, std::string field_name) {
      |                                                                                                                                            ^
serialization.cpp:251:102: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  251 | bool json_contains_field_cpp(cpp11::external_pointer<nlohmann::json> json_ptr, std::string field_name) {
      |                                                                                                      ^
serialization.cpp:260:142: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  260 | double json_extract_double_subfolder_cpp(cpp11::external_pointer<nlohmann::json> json_ptr, std::string subfolder_name, std::string field_name) {
      |                                                                                                                                              ^
serialization.cpp:265:104: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  265 | double json_extract_double_cpp(cpp11::external_pointer<nlohmann::json> json_ptr, std::string field_name) {
      |                                                                                                        ^
serialization.cpp:270:140: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  270 | int json_extract_integer_subfolder_cpp(cpp11::external_pointer<nlohmann::json> json_ptr, std::string subfolder_name, std::string field_name) {
      |                                                                                                                                            ^
serialization.cpp:275:102: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  275 | int json_extract_integer_cpp(cpp11::external_pointer<nlohmann::json> json_ptr, std::string field_name) {
      |                                                                                                      ^
serialization.cpp:280:138: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  280 | bool json_extract_bool_subfolder_cpp(cpp11::external_pointer<nlohmann::json> json_ptr, std::string subfolder_name, std::string field_name) {
      |                                                                                                                                          ^
serialization.cpp:285:100: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  285 | bool json_extract_bool_cpp(cpp11::external_pointer<nlohmann::json> json_ptr, std::string field_name) {
      |                                                                                                    ^
serialization.cpp:290:147: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  290 | std::string json_extract_string_subfolder_cpp(cpp11::external_pointer<nlohmann::json> json_ptr, std::string subfolder_name, std::string field_name) {
      |                                                                                                                                                   ^
serialization.cpp:295:109: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  295 | std::string json_extract_string_cpp(cpp11::external_pointer<nlohmann::json> json_ptr, std::string field_name) {
      |                                                                                                             ^
serialization.cpp:300:160: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  300 | 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:308:122: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  308 | cpp11::writable::doubles json_extract_vector_cpp(cpp11::external_pointer<nlohmann::json> json_ptr, std::string field_name) {
      |                                                                                                                          ^
serialization.cpp:316:169: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  316 | 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:324:131: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  324 | cpp11::writable::integers json_extract_integer_vector_cpp(cpp11::external_pointer<nlohmann::json> json_ptr, std::string field_name) {
      |                                                                                                                                   ^
serialization.cpp:332:167: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  332 | 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:340:129: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  340 | cpp11::writable::strings json_extract_string_vector_cpp(cpp11::external_pointer<nlohmann::json> json_ptr, std::string field_name) {
      |                                                                                                                                 ^
serialization.cpp:348:149: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  348 | std::string json_add_forest_cpp(cpp11::external_pointer<nlohmann::json> json_ptr, cpp11::external_pointer<StochTree::ForestContainer> forest_samples) {
      |                                                                                                                                                     ^
serialization.cpp:358:83: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  358 | void json_increment_rfx_count_cpp(cpp11::external_pointer<nlohmann::json> json_ptr) {
      |                                                                                   ^
serialization.cpp:364:160: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  364 | std::string json_add_rfx_container_cpp(cpp11::external_pointer<nlohmann::json> json_ptr, cpp11::external_pointer<StochTree::RandomEffectsContainer> rfx_samples) {
      |                                                                                                                                                                ^
serialization.cpp:373:153: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  373 | std::string json_add_rfx_label_mapper_cpp(cpp11::external_pointer<nlohmann::json> json_ptr, cpp11::external_pointer<StochTree::LabelMapper> label_mapper) {
      |                                                                                                                                                         ^
serialization.cpp:382:113: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  382 | std::string json_add_rfx_groupids_cpp(cpp11::external_pointer<nlohmann::json> json_ptr, cpp11::integers groupids) {
      |                                                                                                                 ^
serialization.cpp:394:81: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  394 | std::string get_json_string_cpp(cpp11::external_pointer<nlohmann::json> json_ptr) {
      |                                                                                 ^
serialization.cpp:399:95: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  399 | void json_save_file_cpp(cpp11::external_pointer<nlohmann::json> json_ptr, std::string filename) {
      |                                                                                               ^
serialization.cpp:405:95: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  405 | void json_load_file_cpp(cpp11::external_pointer<nlohmann::json> json_ptr, std::string filename) {
      |                                                                                               ^
serialization.cpp:413:100: warning: ‘cpp11::register’ scoped attribute directive ignored [-Wattributes]
  413 | void json_load_string_cpp(cpp11::external_pointer<nlohmann::json> json_ptr, std::string json_string) {
      |                                                                                                    ^
In file included from ../src/include/stochtree/partition_tracker.h:31:
../src/include/stochtree/openmp_utils.h:71:13: warning: ‘void StochTree::SetNumThreads(int)’ defined but not used [-Wunused-function]
   71 | static void SetNumThreads(int num_threads) {
      |             ^~~~~~~~~~~~~
../src/include/stochtree/openmp_utils.h:67:12: warning: ‘int StochTree::GetNumThreads()’ defined but not used [-Wunused-function]
   67 | static int GetNumThreads() {
      |            ^~~~~~~~~~~~~
../src/include/stochtree/openmp_utils.h:63:12: warning: ‘int StochTree::GetCurrentThreadNum()’ defined but not used [-Wunused-function]
   63 | static int GetCurrentThreadNum() {
      |            ^~~~~~~~~~~~~~~~~~~
g++ -std=gnu++17 -I"/data/gannet/ripley/R/R-devel/include" -DNDEBUG -I../src/include -DEIGEN_MPL2_ONLY -DEIGEN_DONT_PARALLELIZE -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   -fopenmp -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 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:39:7: warning: unused variable ‘feature_counter’ [-Wunused-variable]
   39 |   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:80:8: warning: unused variable ‘column_matched’ [-Wunused-variable]
   80 |   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:44:34: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
   44 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/tree.h:190:5: note: in expansion of macro ‘CHECK_EQ’
  190 |     CHECK_EQ(output_dimension_, value_vector.size());
      |     ^~~~~~~~
In file included from ../src/include/stochtree/ensemble.h:14,
                 from ../src/include/stochtree/container.h:10:
../src/include/stochtree/tree.h: In member function ‘void StochTree::Tree::AddValueToLeaves(double)’:
../src/include/stochtree/tree.h:208:25: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  208 |       for (int j = 0; j < leaf_value_.size(); j++) {
      |                       ~~^~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree.h:212:25: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  212 |       for (int j = 0; j < leaf_vector_.size(); j++) {
      |                       ~~^~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree.h: In member function ‘void StochTree::Tree::MultiplyLeavesByValue(double)’:
../src/include/stochtree/tree.h:225:25: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  225 |       for (int j = 0; j < leaf_value_.size(); j++) {
      |                       ~~^~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree.h:229:25: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  229 |       for (int j = 0; j < leaf_vector_.size(); j++) {
      |                       ~~^~~~~~~~~~~~~~~~~~~~~
../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:244: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]
  244 |     if (output.size() < total_output_size + offset) {
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/ensemble.h:249:37: warning: comparison of integer expressions of different signedness: ‘size_t’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
  249 |       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:269: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]
  269 |     if (output.size() < total_output_size + offset) {
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/ensemble.h:274:37: warning: comparison of integer expressions of different signedness: ‘size_t’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
  274 |       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:295: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]
  295 |     if (output.size() < total_output_size + offset) {
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/ensemble.h:301:39: warning: comparison of integer expressions of different signedness: ‘size_t’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
  301 |         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:44:34: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
   44 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/ensemble.h:375:5: note: in expansion of macro ‘CHECK_EQ’
  375 |     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:52:34: warning: comparison of integer expressions of different signedness: ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
   52 | #define CHECK_GE(a, b) CHECK((a) >= (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/ensemble.h:435:5: note: in expansion of macro ‘CHECK_GE’
  435 |     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:52:34: warning: comparison of integer expressions of different signedness: ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
   52 | #define CHECK_GE(a, b) CHECK((a) >= (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/ensemble.h:498:5: note: in expansion of macro ‘CHECK_GE’
  498 |     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:531: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]
  531 |     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: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:425:23: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  425 |     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:495: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]
  495 |     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:44: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]
   44 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/random_effects.h:207:5: note: in expansion of macro ‘CHECK_EQ’
  207 |     CHECK_EQ(X.rows(), group_labels.size());
      |     ^~~~~~~~
../src/include/stochtree/log.h:44:34: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
   44 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/random_effects.h:209:5: note: in expansion of macro ‘CHECK_EQ’
  209 |     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:44: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]
   44 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/random_effects.h:233:5: note: in expansion of macro ‘CHECK_EQ’
  233 |     CHECK_EQ(X.rows(), group_labels.size());
      |     ^~~~~~~~
In file included from stochtree_types.h:8:
../src/include/stochtree/tree_sampler.h: In function ‘bool StochTree::NodesNonConstantAfterSplit(ForestDataset&, ForestTracker&, TreeSplit&, int, int, int)’:
../src/include/stochtree/tree_sampler.h:79:15: warning: unused variable ‘idx’ [-Wunused-variable]
   79 |   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:122:15: warning: unused variable ‘idx’ [-Wunused-variable]
  122 |   data_size_t idx;
      |               ^~~
In file included from ../src/include/stochtree/partition_tracker.h:31:
../src/include/stochtree/openmp_utils.h: At global scope:
../src/include/stochtree/openmp_utils.h:71:13: warning: ‘void StochTree::SetNumThreads(int)’ defined but not used [-Wunused-function]
   71 | static void SetNumThreads(int num_threads) {
      |             ^~~~~~~~~~~~~
../src/include/stochtree/openmp_utils.h:67:12: warning: ‘int StochTree::GetNumThreads()’ defined but not used [-Wunused-function]
   67 | static int GetNumThreads() {
      |            ^~~~~~~~~~~~~
../src/include/stochtree/openmp_utils.h:63:12: warning: ‘int StochTree::GetCurrentThreadNum()’ defined but not used [-Wunused-function]
   63 | static int GetCurrentThreadNum() {
      |            ^~~~~~~~~~~~~~~~~~~
g++ -std=gnu++17 -I"/data/gannet/ripley/R/R-devel/include" -DNDEBUG -I../src/include -DEIGEN_MPL2_ONLY -DEIGEN_DONT_PARALLELIZE -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   -fopenmp -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
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:39:7: warning: unused variable ‘feature_counter’ [-Wunused-variable]
   39 |   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:80:8: warning: unused variable ‘column_matched’ [-Wunused-variable]
   80 |   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:44:34: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
   44 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/tree.h:190:5: note: in expansion of macro ‘CHECK_EQ’
  190 |     CHECK_EQ(output_dimension_, value_vector.size());
      |     ^~~~~~~~
In file included from ../src/include/stochtree/ensemble.h:14,
                 from ../src/include/stochtree/container.h:10:
../src/include/stochtree/tree.h: In member function ‘void StochTree::Tree::AddValueToLeaves(double)’:
../src/include/stochtree/tree.h:208:25: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  208 |       for (int j = 0; j < leaf_value_.size(); j++) {
      |                       ~~^~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree.h:212:25: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  212 |       for (int j = 0; j < leaf_vector_.size(); j++) {
      |                       ~~^~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree.h: In member function ‘void StochTree::Tree::MultiplyLeavesByValue(double)’:
../src/include/stochtree/tree.h:225:25: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  225 |       for (int j = 0; j < leaf_value_.size(); j++) {
      |                       ~~^~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree.h:229:25: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  229 |       for (int j = 0; j < leaf_vector_.size(); j++) {
      |                       ~~^~~~~~~~~~~~~~~~~~~~~
../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:244: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]
  244 |     if (output.size() < total_output_size + offset) {
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/ensemble.h:249:37: warning: comparison of integer expressions of different signedness: ‘size_t’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
  249 |       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:269: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]
  269 |     if (output.size() < total_output_size + offset) {
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/ensemble.h:274:37: warning: comparison of integer expressions of different signedness: ‘size_t’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
  274 |       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:295: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]
  295 |     if (output.size() < total_output_size + offset) {
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/ensemble.h:301:39: warning: comparison of integer expressions of different signedness: ‘size_t’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
  301 |         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:44:34: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
   44 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/ensemble.h:375:5: note: in expansion of macro ‘CHECK_EQ’
  375 |     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:52:34: warning: comparison of integer expressions of different signedness: ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
   52 | #define CHECK_GE(a, b) CHECK((a) >= (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/ensemble.h:435:5: note: in expansion of macro ‘CHECK_GE’
  435 |     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:52:34: warning: comparison of integer expressions of different signedness: ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
   52 | #define CHECK_GE(a, b) CHECK((a) >= (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/ensemble.h:498:5: note: in expansion of macro ‘CHECK_GE’
  498 |     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:531: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]
  531 |     for (int i = 0; i < trees_.size(); i++) {
      |                     ~~^~~~~~~~~~~~~~~
container.cpp: In member function ‘void StochTree::ForestContainer::PredictInPlace(StochTree::ForestDataset&, std::vector<double>&)’:
../src/include/stochtree/log.h:44: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]
   44 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   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:44: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]
   44 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   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:44: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]
   44 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   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:44: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]
   44 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   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++) {
      |                   ~~^~~~~~~~~~~~~~~~~
g++ -std=gnu++17 -I"/data/gannet/ripley/R/R-devel/include" -DNDEBUG -I../src/include -DEIGEN_MPL2_ONLY -DEIGEN_DONT_PARALLELIZE -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   -fopenmp -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/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:39:7: warning: unused variable ‘feature_counter’ [-Wunused-variable]
   39 |   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:80:8: warning: unused variable ‘column_matched’ [-Wunused-variable]
   80 |   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:44:34: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
   44 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/tree.h:190:5: note: in expansion of macro ‘CHECK_EQ’
  190 |     CHECK_EQ(output_dimension_, value_vector.size());
      |     ^~~~~~~~
In file included from ../src/include/stochtree/ensemble.h:14,
                 from ../src/include/stochtree/partition_tracker.h:29:
../src/include/stochtree/tree.h: In member function ‘void StochTree::Tree::AddValueToLeaves(double)’:
../src/include/stochtree/tree.h:208:25: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  208 |       for (int j = 0; j < leaf_value_.size(); j++) {
      |                       ~~^~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree.h:212:25: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  212 |       for (int j = 0; j < leaf_vector_.size(); j++) {
      |                       ~~^~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree.h: In member function ‘void StochTree::Tree::MultiplyLeavesByValue(double)’:
../src/include/stochtree/tree.h:225:25: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  225 |       for (int j = 0; j < leaf_value_.size(); j++) {
      |                       ~~^~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree.h:229:25: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  229 |       for (int j = 0; j < leaf_vector_.size(); j++) {
      |                       ~~^~~~~~~~~~~~~~~~~~~~~
../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:244: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]
  244 |     if (output.size() < total_output_size + offset) {
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/ensemble.h:249:37: warning: comparison of integer expressions of different signedness: ‘size_t’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
  249 |       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:269: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]
  269 |     if (output.size() < total_output_size + offset) {
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/ensemble.h:274:37: warning: comparison of integer expressions of different signedness: ‘size_t’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
  274 |       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:295: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]
  295 |     if (output.size() < total_output_size + offset) {
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/ensemble.h:301:39: warning: comparison of integer expressions of different signedness: ‘size_t’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
  301 |         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:44:34: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
   44 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/ensemble.h:375:5: note: in expansion of macro ‘CHECK_EQ’
  375 |     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:52:34: warning: comparison of integer expressions of different signedness: ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
   52 | #define CHECK_GE(a, b) CHECK((a) >= (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/ensemble.h:435:5: note: in expansion of macro ‘CHECK_GE’
  435 |     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:52:34: warning: comparison of integer expressions of different signedness: ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
   52 | #define CHECK_GE(a, b) CHECK((a) >= (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/ensemble.h:498:5: note: in expansion of macro ‘CHECK_GE’
  498 |     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:531: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]
  531 |     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:425:23: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  425 |     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:495: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]
  495 |     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:178:21: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  178 |   for (int i = 0; i < bin_sums.size(); i++) {
      |                   ~~^~~~~~~~~~~~~~~~~
cutpoint_candidates.cpp:194:21: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  194 |   for (int i = 0; i < node_stride_begin_.size(); i++) {
      |                   ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
cutpoint_candidates.cpp:138:10: warning: unused variable ‘current_outcome’ [-Wunused-variable]
  138 |   double current_outcome, next_outcome;
      |          ^~~~~~~~~~~~~~~
cutpoint_candidates.cpp:138:27: warning: unused variable ‘next_outcome’ [-Wunused-variable]
  138 |   double current_outcome, next_outcome;
      |                           ^~~~~~~~~~~~
In file included from ../src/include/stochtree/partition_tracker.h:31:
../src/include/stochtree/openmp_utils.h: At global scope:
../src/include/stochtree/openmp_utils.h:71:13: warning: ‘void StochTree::SetNumThreads(int)’ defined but not used [-Wunused-function]
   71 | static void SetNumThreads(int num_threads) {
      |             ^~~~~~~~~~~~~
../src/include/stochtree/openmp_utils.h:67:12: warning: ‘int StochTree::GetNumThreads()’ defined but not used [-Wunused-function]
   67 | static int GetNumThreads() {
      |            ^~~~~~~~~~~~~
../src/include/stochtree/openmp_utils.h:63:12: warning: ‘int StochTree::GetCurrentThreadNum()’ defined but not used [-Wunused-function]
   63 | static int GetCurrentThreadNum() {
      |            ^~~~~~~~~~~~~~~~~~~
g++ -std=gnu++17 -I"/data/gannet/ripley/R/R-devel/include" -DNDEBUG -I../src/include -DEIGEN_MPL2_ONLY -DEIGEN_DONT_PARALLELIZE -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   -fopenmp -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
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:39:7: warning: unused variable ‘feature_counter’ [-Wunused-variable]
   39 |   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:80:8: warning: unused variable ‘column_matched’ [-Wunused-variable]
   80 |   bool column_matched;
      |        ^~~~~~~~~~~~~~
g++ -std=gnu++17 -I"/data/gannet/ripley/R/R-devel/include" -DNDEBUG -I../src/include -DEIGEN_MPL2_ONLY -DEIGEN_DONT_PARALLELIZE -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   -fopenmp -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
g++ -std=gnu++17 -I"/data/gannet/ripley/R/R-devel/include" -DNDEBUG -I../src/include -DEIGEN_MPL2_ONLY -DEIGEN_DONT_PARALLELIZE -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   -fopenmp -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
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:39:7: warning: unused variable ‘feature_counter’ [-Wunused-variable]
   39 |   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:80:8: warning: unused variable ‘column_matched’ [-Wunused-variable]
   80 |   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:44:34: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
   44 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/tree.h:190:5: note: in expansion of macro ‘CHECK_EQ’
  190 |     CHECK_EQ(output_dimension_, value_vector.size());
      |     ^~~~~~~~
In file included from ../src/include/stochtree/ensemble.h:14,
                 from ../src/include/stochtree/partition_tracker.h:29:
../src/include/stochtree/tree.h: In member function ‘void StochTree::Tree::AddValueToLeaves(double)’:
../src/include/stochtree/tree.h:208:25: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  208 |       for (int j = 0; j < leaf_value_.size(); j++) {
      |                       ~~^~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree.h:212:25: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  212 |       for (int j = 0; j < leaf_vector_.size(); j++) {
      |                       ~~^~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree.h: In member function ‘void StochTree::Tree::MultiplyLeavesByValue(double)’:
../src/include/stochtree/tree.h:225:25: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  225 |       for (int j = 0; j < leaf_value_.size(); j++) {
      |                       ~~^~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree.h:229:25: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  229 |       for (int j = 0; j < leaf_vector_.size(); j++) {
      |                       ~~^~~~~~~~~~~~~~~~~~~~~
../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:244: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]
  244 |     if (output.size() < total_output_size + offset) {
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/ensemble.h:249:37: warning: comparison of integer expressions of different signedness: ‘size_t’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
  249 |       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:269: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]
  269 |     if (output.size() < total_output_size + offset) {
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/ensemble.h:274:37: warning: comparison of integer expressions of different signedness: ‘size_t’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
  274 |       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:295: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]
  295 |     if (output.size() < total_output_size + offset) {
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/ensemble.h:301:39: warning: comparison of integer expressions of different signedness: ‘size_t’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
  301 |         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:44:34: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
   44 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/ensemble.h:375:5: note: in expansion of macro ‘CHECK_EQ’
  375 |     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:52:34: warning: comparison of integer expressions of different signedness: ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
   52 | #define CHECK_GE(a, b) CHECK((a) >= (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/ensemble.h:435:5: note: in expansion of macro ‘CHECK_GE’
  435 |     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:52:34: warning: comparison of integer expressions of different signedness: ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
   52 | #define CHECK_GE(a, b) CHECK((a) >= (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/ensemble.h:498:5: note: in expansion of macro ‘CHECK_GE’
  498 |     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:531: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]
  531 |     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:425:23: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  425 |     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:495: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]
  495 |     if (feature_sort_indices_.size() != num_obs){
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~
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++) {
      |                   ~~^~~~~~~~~~~~~~~~~~~~
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++ -std=gnu++17 -I"/data/gannet/ripley/R/R-devel/include" -DNDEBUG -I../src/include -DEIGEN_MPL2_ONLY -DEIGEN_DONT_PARALLELIZE -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   -fopenmp -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
In file included from ../src/include/stochtree/partition_tracker.h:31:
../src/include/stochtree/openmp_utils.h: At global scope:
../src/include/stochtree/openmp_utils.h:71:13: warning: ‘void StochTree::SetNumThreads(int)’ defined but not used [-Wunused-function]
   71 | static void SetNumThreads(int num_threads) {
      |             ^~~~~~~~~~~~~
../src/include/stochtree/openmp_utils.h:67:12: warning: ‘int StochTree::GetNumThreads()’ defined but not used [-Wunused-function]
   67 | static int GetNumThreads() {
      |            ^~~~~~~~~~~~~
../src/include/stochtree/openmp_utils.h:63:12: warning: ‘int StochTree::GetCurrentThreadNum()’ defined but not used [-Wunused-function]
   63 | static int GetCurrentThreadNum() {
      |            ^~~~~~~~~~~~~~~~~~~
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:39:7: warning: unused variable ‘feature_counter’ [-Wunused-variable]
   39 |   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:80:8: warning: unused variable ‘column_matched’ [-Wunused-variable]
   80 |   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:44:34: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
   44 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/tree.h:190:5: note: in expansion of macro ‘CHECK_EQ’
  190 |     CHECK_EQ(output_dimension_, value_vector.size());
      |     ^~~~~~~~
In file included from ../src/include/stochtree/ensemble.h:14,
                 from ../src/include/stochtree/partition_tracker.h:29:
../src/include/stochtree/tree.h: In member function ‘void StochTree::Tree::AddValueToLeaves(double)’:
../src/include/stochtree/tree.h:208:25: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  208 |       for (int j = 0; j < leaf_value_.size(); j++) {
      |                       ~~^~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree.h:212:25: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  212 |       for (int j = 0; j < leaf_vector_.size(); j++) {
      |                       ~~^~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree.h: In member function ‘void StochTree::Tree::MultiplyLeavesByValue(double)’:
../src/include/stochtree/tree.h:225:25: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  225 |       for (int j = 0; j < leaf_value_.size(); j++) {
      |                       ~~^~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree.h:229:25: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  229 |       for (int j = 0; j < leaf_vector_.size(); j++) {
      |                       ~~^~~~~~~~~~~~~~~~~~~~~
../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:244: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]
  244 |     if (output.size() < total_output_size + offset) {
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/ensemble.h:249:37: warning: comparison of integer expressions of different signedness: ‘size_t’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
  249 |       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:269: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]
  269 |     if (output.size() < total_output_size + offset) {
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/ensemble.h:274:37: warning: comparison of integer expressions of different signedness: ‘size_t’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
  274 |       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:295: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]
  295 |     if (output.size() < total_output_size + offset) {
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/ensemble.h:301:39: warning: comparison of integer expressions of different signedness: ‘size_t’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
  301 |         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:44:34: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
   44 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/ensemble.h:375:5: note: in expansion of macro ‘CHECK_EQ’
  375 |     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:52:34: warning: comparison of integer expressions of different signedness: ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
   52 | #define CHECK_GE(a, b) CHECK((a) >= (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/ensemble.h:435:5: note: in expansion of macro ‘CHECK_GE’
  435 |     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:52:34: warning: comparison of integer expressions of different signedness: ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
   52 | #define CHECK_GE(a, b) CHECK((a) >= (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/ensemble.h:498:5: note: in expansion of macro ‘CHECK_GE’
  498 |     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:531: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]
  531 |     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:425:23: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  425 |     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:495: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]
  495 |     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:44: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]
   44 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
partition_tracker.cpp:348:3: note: in expansion of macro ‘CHECK_EQ’
  348 |   CHECK_EQ(indices_.size(), n);
      |   ^~~~~~~~
partition_tracker.cpp: In member function ‘void StochTree::FeaturePresortPartition::UpdateObservationMapping(int, int, StochTree::SampleNodeMapper*)’:
partition_tracker.cpp:680:15: warning: unused variable ‘node_size’ [-Wunused-variable]
  680 |   data_size_t node_size = NodeSize(node_id);
      |               ^~~~~~~~~
In file included from ../src/include/stochtree/partition_tracker.h:31:
../src/include/stochtree/openmp_utils.h: At global scope:
../src/include/stochtree/openmp_utils.h:71:13: warning: ‘void StochTree::SetNumThreads(int)’ defined but not used [-Wunused-function]
   71 | static void SetNumThreads(int num_threads) {
      |             ^~~~~~~~~~~~~
../src/include/stochtree/openmp_utils.h:67:12: warning: ‘int StochTree::GetNumThreads()’ defined but not used [-Wunused-function]
   67 | static int GetNumThreads() {
      |            ^~~~~~~~~~~~~
../src/include/stochtree/openmp_utils.h:63:12: warning: ‘int StochTree::GetCurrentThreadNum()’ defined but not used [-Wunused-function]
   63 | static int GetCurrentThreadNum() {
      |            ^~~~~~~~~~~~~~~~~~~
g++ -std=gnu++17 -I"/data/gannet/ripley/R/R-devel/include" -DNDEBUG -I../src/include -DEIGEN_MPL2_ONLY -DEIGEN_DONT_PARALLELIZE -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   -fopenmp -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
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:39:7: warning: unused variable ‘feature_counter’ [-Wunused-variable]
   39 |   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:80:8: warning: unused variable ‘column_matched’ [-Wunused-variable]
   80 |   bool column_matched;
      |        ^~~~~~~~~~~~~~
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:44:34: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
   44 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/tree.h:190:5: note: in expansion of macro ‘CHECK_EQ’
  190 |     CHECK_EQ(output_dimension_, value_vector.size());
      |     ^~~~~~~~
In file included from ../src/include/stochtree/ensemble.h:14,
                 from ../src/include/stochtree/partition_tracker.h:29:
../src/include/stochtree/tree.h: In member function ‘void StochTree::Tree::AddValueToLeaves(double)’:
../src/include/stochtree/tree.h:208:25: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  208 |       for (int j = 0; j < leaf_value_.size(); j++) {
      |                       ~~^~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree.h:212:25: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  212 |       for (int j = 0; j < leaf_vector_.size(); j++) {
      |                       ~~^~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree.h: In member function ‘void StochTree::Tree::MultiplyLeavesByValue(double)’:
../src/include/stochtree/tree.h:225:25: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  225 |       for (int j = 0; j < leaf_value_.size(); j++) {
      |                       ~~^~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree.h:229:25: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  229 |       for (int j = 0; j < leaf_vector_.size(); j++) {
      |                       ~~^~~~~~~~~~~~~~~~~~~~~
../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:244: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]
  244 |     if (output.size() < total_output_size + offset) {
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/ensemble.h:249:37: warning: comparison of integer expressions of different signedness: ‘size_t’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
  249 |       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:269: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]
  269 |     if (output.size() < total_output_size + offset) {
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/ensemble.h:274:37: warning: comparison of integer expressions of different signedness: ‘size_t’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
  274 |       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:295: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]
  295 |     if (output.size() < total_output_size + offset) {
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/ensemble.h:301:39: warning: comparison of integer expressions of different signedness: ‘size_t’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
  301 |         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:44:34: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
   44 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/ensemble.h:375:5: note: in expansion of macro ‘CHECK_EQ’
  375 |     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:52:34: warning: comparison of integer expressions of different signedness: ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
   52 | #define CHECK_GE(a, b) CHECK((a) >= (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/ensemble.h:435:5: note: in expansion of macro ‘CHECK_GE’
  435 |     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:52:34: warning: comparison of integer expressions of different signedness: ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
   52 | #define CHECK_GE(a, b) CHECK((a) >= (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/ensemble.h:498:5: note: in expansion of macro ‘CHECK_GE’
  498 |     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:531: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]
  531 |     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:425:23: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  425 |     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:495: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]
  495 |     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:44: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]
   44 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/random_effects.h:207:5: note: in expansion of macro ‘CHECK_EQ’
  207 |     CHECK_EQ(X.rows(), group_labels.size());
      |     ^~~~~~~~
../src/include/stochtree/log.h:44:34: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
   44 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/random_effects.h:209:5: note: in expansion of macro ‘CHECK_EQ’
  209 |     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:44: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]
   44 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/random_effects.h:233:5: note: in expansion of macro ‘CHECK_EQ’
  233 |     CHECK_EQ(X.rows(), group_labels.size());
      |     ^~~~~~~~
random_effects.cpp: In member function ‘void StochTree::RandomEffectsTracker::ResetFromSample(StochTree::MultivariateRegressionRandomEffectsModel&, StochTree::RandomEffectsDataset&, StochTree::ColumnVector&)’:
../src/include/stochtree/log.h:44: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]
   44 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   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;
      |          ^~~~~~
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:44: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]
   44 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   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:44:34: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
   44 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
random_effects.cpp:268:3: note: in expansion of macro ‘CHECK_EQ’
  268 |   CHECK_EQ(n*num_samples_, output.size());
      |   ^~~~~~~~
g++ -std=gnu++17 -I"/data/gannet/ripley/R/R-devel/include" -DNDEBUG -I../src/include -DEIGEN_MPL2_ONLY -DEIGEN_DONT_PARALLELIZE -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   -fopenmp -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/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:39:7: warning: unused variable ‘feature_counter’ [-Wunused-variable]
   39 |   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:80:8: warning: unused variable ‘column_matched’ [-Wunused-variable]
   80 |   bool column_matched;
      |        ^~~~~~~~~~~~~~
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:44:34: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
   44 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
../src/include/stochtree/tree.h:190:5: note: in expansion of macro ‘CHECK_EQ’
  190 |     CHECK_EQ(output_dimension_, value_vector.size());
      |     ^~~~~~~~
../src/include/stochtree/tree.h: In member function ‘void StochTree::Tree::AddValueToLeaves(double)’:
../src/include/stochtree/tree.h:208:25: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  208 |       for (int j = 0; j < leaf_value_.size(); j++) {
      |                       ~~^~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree.h:212:25: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  212 |       for (int j = 0; j < leaf_vector_.size(); j++) {
      |                       ~~^~~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree.h: In member function ‘void StochTree::Tree::MultiplyLeavesByValue(double)’:
../src/include/stochtree/tree.h:225:25: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  225 |       for (int j = 0; j < leaf_value_.size(); j++) {
      |                       ~~^~~~~~~~~~~~~~~~~~~~
../src/include/stochtree/tree.h:229:25: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  229 |       for (int j = 0; j < leaf_vector_.size(); j++) {
      |                       ~~^~~~~~~~~~~~~~~~~~~~~
tree.cpp: In member function ‘void StochTree::Tree::ExpandNode(int32_t, int, double, std::vector<double>, std::vector<double>)’:
../src/include/stochtree/log.h:44:34: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
   44 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
tree.cpp:210:3: note: in expansion of macro ‘CHECK_EQ’
  210 |   CHECK_EQ(output_dimension_, left_value_vector.size());
      |   ^~~~~~~~
../src/include/stochtree/log.h:44:34: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
   44 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
tree.cpp:211:3: note: in expansion of macro ‘CHECK_EQ’
  211 |   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:44:34: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
   44 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
tree.cpp:238:3: note: in expansion of macro ‘CHECK_EQ’
  238 |   CHECK_EQ(output_dimension_, left_value_vector.size());
      |   ^~~~~~~~
../src/include/stochtree/log.h:44:34: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
   44 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
tree.cpp:239:3: note: in expansion of macro ‘CHECK_EQ’
  239 |   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:44:34: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
   44 | #define CHECK_EQ(a, b) CHECK((a) == (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
tree.cpp:390:3: note: in expansion of macro ‘CHECK_EQ’
  390 |   CHECK_EQ(output_dimension_, node_leaf_vector.size());
      |   ^~~~~~~~
tree.cpp:392:33: warning: comparison of integer expressions of different signedness: ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
  392 |     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:52: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]
   52 | #define CHECK_GE(a, b) CHECK((a) >= (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
tree.cpp:425:3: note: in expansion of macro ‘CHECK_GE’
  425 |   CHECK_GE(output.size(), offset + n);
      |   ^~~~~~~~
tree.cpp:427:21: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  427 |   for (int i = 0; i < leaves_.size(); i++) {
      |                   ~~^~~~~~~~~~~~~~~~
tree.cpp:430:20: warning: unused variable ‘remapped_node’ [-Wunused-variable]
  430 |   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:52: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]
   52 | #define CHECK_GE(a, b) CHECK((a) >= (b))
      |                              ~~~~^~~~~~
../src/include/stochtree/log.h:38:9: note: in definition of macro ‘CHECK’
   38 |   if (!(condition))                                                         \
      |         ^~~~~~~~~
tree.cpp:439:3: note: in expansion of macro ‘CHECK_GE’
  439 |   CHECK_GE(output.size(), offset + n);
      |   ^~~~~~~~
tree.cpp:441:21: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  441 |   for (int i = 0; i < leaves_.size(); i++) {
      |                   ~~^~~~~~~~~~~~~~~~
tree.cpp:444:20: warning: unused variable ‘remapped_node’ [-Wunused-variable]
  444 |   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:457:21: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  457 |   for (int i = 0; i < leaves_.size(); i++) {
      |                   ~~^~~~~~~~~~~~~~~~
tree.cpp:460:20: warning: unused variable ‘remapped_node’ [-Wunused-variable]
  460 |   int32_t node_id, remapped_node;
      |                    ^~~~~~~~~~~~~
tree.cpp: In function ‘void StochTree::MultivariateLeafVectorToJson(json&, Tree*)’:
tree.cpp:513:23: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  513 |     for (int i = 0; i < tree->leaf_vector_.size(); i++) {
      |                     ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
tree.cpp: In function ‘void StochTree::SplitCategoryVectorToJson(json&, Tree*)’:
tree.cpp:523:23: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<unsigned int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  523 |     for (int i = 0; i < tree->category_list_.size(); i++) {
      |                     ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
tree.cpp: In function ‘void StochTree::NodeListsToJson(json&, Tree*)’:
tree.cpp:537:23: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  537 |     for (int i = 0; i < tree->internal_nodes_.size(); i++) {
      |                     ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
tree.cpp:543:23: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  543 |     for (int i = 0; i < tree->leaf_parents_.size(); i++) {
      |                     ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
tree.cpp:549:23: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  549 |     for (int i = 0; i < tree->leaves_.size(); i++) {
      |                     ~~^~~~~~~~~~~~~~~~~~~~~~
tree.cpp:555:23: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  555 |     for (int i = 0; i < tree->deleted_nodes_.size(); i++) {
      |                     ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/include/stochtree/partition_tracker.h:31:
../src/include/stochtree/openmp_utils.h: At global scope:
../src/include/stochtree/openmp_utils.h:71:13: warning: ‘void StochTree::SetNumThreads(int)’ defined but not used [-Wunused-function]
   71 | static void SetNumThreads(int num_threads) {
      |             ^~~~~~~~~~~~~
../src/include/stochtree/openmp_utils.h:67:12: warning: ‘int StochTree::GetNumThreads()’ defined but not used [-Wunused-function]
   67 | static int GetNumThreads() {
      |            ^~~~~~~~~~~~~
../src/include/stochtree/openmp_utils.h:63:12: warning: ‘int StochTree::GetCurrentThreadNum()’ defined but not used [-Wunused-function]
   63 | static int GetCurrentThreadNum() {
      |            ^~~~~~~~~~~~~~~~~~~
g++ -std=gnu++17 -shared -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 -fopenmp
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)