// set parent
    Node(ModelReader reader) throws IOException {
      parent_ = reader.readInt();
      cleft_ = reader.readInt();
      cright_ = reader.readInt();
      sindex_ = reader.readInt();

      if (is_leaf()) {
        leaf_value = reader.readFloat();
        split_cond = Float.NaN;
      } else {
        split_cond = reader.readFloat();
        leaf_value = Float.NaN;
      }
    }
    Param(ModelReader reader) throws IOException {
      num_roots = reader.readInt();
      num_nodes = reader.readInt();
      num_deleted = reader.readInt();
      max_depth = reader.readInt();
      num_feature = reader.readInt();

      size_leaf_vector = reader.readInt();
      reserved = reader.readIntArray(31);
    }
 RTreeNodeStat(ModelReader reader) throws IOException {
   loss_chg = reader.readFloat();
   sum_hess = reader.readFloat();
   base_weight = reader.readFloat();
   leaf_child_cnt = reader.readInt();
 }