code: private void extendPath(PathPointer unique_path, int unique_depth,
                            float zero_fraction, float one_fraction,
                            int feature_index) {
      unique_path.get(unique_depth).feature_index = feature_index;
      unique_path.get(unique_depth).zero_fraction = zero_fraction;
      unique_path.get(unique_depth).one_fraction = one_fraction;
      unique_path.get(unique_depth).pweight = (unique_depth == 0 ? 1.0f : 0.0f);
      for (int i = unique_depth - 1; i >= 0; i--) {
        unique_path.get(i+1).pweight += one_fraction * unique_path.get(i).pweight * (i + 1)
                / (float) (unique_depth + 1);
        unique_path.get(i).pweight = zero_fraction * unique_path.get(i).pweight * (unique_depth - i)
                / (float) (unique_depth + 1);
      }
    }
docs: extend our decision path with a fraction of one and zero extensions