pass fmatrix as const

This commit is contained in:
tqchen 2014-08-15 21:24:23 -07:00
parent d9dbd1efc6
commit ac1cc15b90
5 changed files with 11 additions and 8 deletions

View File

@ -46,7 +46,7 @@ class IGradBooster {
* root_index.size() can be 0 which indicates that no pre-partition involved * root_index.size() can be 0 which indicates that no pre-partition involved
*/ */
virtual void DoBoost(const std::vector<bst_gpair> &gpair, virtual void DoBoost(const std::vector<bst_gpair> &gpair,
FMatrix &fmat, const FMatrix &fmat,
const std::vector<unsigned> &root_index) = 0; const std::vector<unsigned> &root_index) = 0;
/*! /*!
* \brief generate predictions for given feature matrix * \brief generate predictions for given feature matrix

View File

@ -83,7 +83,7 @@ class GBTree : public IGradBooster<FMatrix> {
utils::Assert(trees.size() == 0, "GBTree: model already initialized"); utils::Assert(trees.size() == 0, "GBTree: model already initialized");
} }
virtual void DoBoost(const std::vector<bst_gpair> &gpair, virtual void DoBoost(const std::vector<bst_gpair> &gpair,
FMatrix &fmat, const FMatrix &fmat,
const std::vector<unsigned> &root_index) { const std::vector<unsigned> &root_index) {
if (mparam.num_output_group == 1) { if (mparam.num_output_group == 1) {
this->BoostNewTrees(gpair, fmat, root_index, 0); this->BoostNewTrees(gpair, fmat, root_index, 0);
@ -174,7 +174,7 @@ class GBTree : public IGradBooster<FMatrix> {
} }
// do group specific group // do group specific group
inline void BoostNewTrees(const std::vector<bst_gpair> &gpair, inline void BoostNewTrees(const std::vector<bst_gpair> &gpair,
FMatrix &fmat, const FMatrix &fmat,
const std::vector<unsigned> &root_index, const std::vector<unsigned> &root_index,
int bst_group) { int bst_group) {
this->InitUpdater(); this->InitUpdater();

View File

@ -37,7 +37,7 @@ class IUpdater {
* there can be multiple trees when we train random forest style model * there can be multiple trees when we train random forest style model
*/ */
virtual void Update(const std::vector<bst_gpair> &gpair, virtual void Update(const std::vector<bst_gpair> &gpair,
FMatrix &fmat, const FMatrix &fmat,
const std::vector<unsigned> &root_index, const std::vector<unsigned> &root_index,
const std::vector<RegTree*> &trees) = 0; const std::vector<RegTree*> &trees) = 0;
// destructor // destructor

View File

@ -24,7 +24,7 @@ class ColMaker: public IUpdater<FMatrix> {
param.SetParam(name, val); param.SetParam(name, val);
} }
virtual void Update(const std::vector<bst_gpair> &gpair, virtual void Update(const std::vector<bst_gpair> &gpair,
FMatrix &fmat, const FMatrix &fmat,
const std::vector<unsigned> &root_index, const std::vector<unsigned> &root_index,
const std::vector<RegTree*> &trees) { const std::vector<RegTree*> &trees) {
@ -71,7 +71,8 @@ class ColMaker: public IUpdater<FMatrix> {
// constructor // constructor
explicit Builder(const TrainParam &param) : param(param) {} explicit Builder(const TrainParam &param) : param(param) {}
// update one tree, growing // update one tree, growing
virtual void Update(const std::vector<bst_gpair> &gpair, FMatrix &fmat, virtual void Update(const std::vector<bst_gpair> &gpair,
const FMatrix &fmat,
const std::vector<unsigned> &root_index, const std::vector<unsigned> &root_index,
RegTree *p_tree) { RegTree *p_tree) {
this->InitData(gpair, fmat, root_index, *p_tree); this->InitData(gpair, fmat, root_index, *p_tree);
@ -100,7 +101,8 @@ class ColMaker: public IUpdater<FMatrix> {
private: private:
// initialize temp data structure // initialize temp data structure
inline void InitData(const std::vector<bst_gpair> &gpair, FMatrix &fmat, inline void InitData(const std::vector<bst_gpair> &gpair,
const FMatrix &fmat,
const std::vector<unsigned> &root_index, const RegTree &tree) { const std::vector<unsigned> &root_index, const RegTree &tree) {
utils::Assert(tree.param.num_nodes == tree.param.num_roots, "ColMaker: can only grow new tree"); utils::Assert(tree.param.num_nodes == tree.param.num_roots, "ColMaker: can only grow new tree");
{// setup position {// setup position

View File

@ -21,7 +21,8 @@ class TreePruner: public IUpdater<FMatrix> {
param.SetParam(name, val); param.SetParam(name, val);
} }
// update the tree, do pruning // update the tree, do pruning
virtual void Update(const std::vector<bst_gpair> &gpair, FMatrix &fmat, virtual void Update(const std::vector<bst_gpair> &gpair,
const FMatrix &fmat,
const std::vector<unsigned> &root_index, const std::vector<unsigned> &root_index,
const std::vector<RegTree*> &trees) { const std::vector<RegTree*> &trees) {
for (size_t i = 0; i < trees.size(); ++i) { for (size_t i = 0; i < trees.size(); ++i) {