Use bst_float consistently throughout (#1824)

* Fix various typos

* Add override to functions that are overridden

gcc gives warnings about functions that are being overridden by not
being marked as oveirridden. This fixes it.

* Use bst_float consistently

Use bst_float for all the variables that involve weight,
leaf value, gradient, hessian, gain, loss_chg, predictions,
base_margin, feature values.

In some cases, when due to additions and so on the value can
take a larger value, double is used.

This ensures that type conversions are minimal and reduces loss of
precision.
This commit is contained in:
AbdealiJK
2016-11-30 23:32:10 +05:30
committed by Tianqi Chen
parent da2556f58a
commit 6f16f0ef58
50 changed files with 392 additions and 389 deletions

View File

@@ -77,12 +77,12 @@ inline bool MetaTryLoadGroup(const std::string& fname,
// try to load weight information from file, if exists
inline bool MetaTryLoadFloatInfo(const std::string& fname,
std::vector<float>* data) {
std::vector<bst_float>* data) {
std::unique_ptr<dmlc::Stream> fi(dmlc::Stream::Create(fname.c_str(), "r", true));
if (fi.get() == nullptr) return false;
dmlc::istream is(fi.get());
data->clear();
float value;
bst_float value;
while (is >> value) {
data->push_back(value);
}

View File

@@ -44,7 +44,7 @@ class SimpleDMatrix : public DMatrix {
return buffered_rowset_;
}
size_t GetColSize(size_t cidx) const {
size_t GetColSize(size_t cidx) const override {
return col_size_[cidx];
}

View File

@@ -205,7 +205,7 @@ class SparsePage::Writer {
* \brief Push a write job to the writer.
* This function won't block,
* writing is done by another thread inside writer.
* \param page The page to be wriiten
* \param page The page to be written
*/
void PushWrite(std::unique_ptr<SparsePage>&& page);
/*!

View File

@@ -48,7 +48,7 @@ class SparsePageDMatrix : public DMatrix {
return buffered_rowset_;
}
size_t GetColSize(size_t cidx) const {
size_t GetColSize(size_t cidx) const override {
return col_size_[cidx];
}
@@ -111,7 +111,7 @@ class SparsePageDMatrix : public DMatrix {
std::vector<SparseBatch::Inst> col_data_;
};
/*!
* \brief Try to intitialize column data.
* \brief Try to initialize column data.
* \return true if data already exists, false if they do not.
*/
bool TryInitColData();