fix print problem, fix Tong's email format

This commit is contained in:
tqchen 2014-08-30 18:49:30 -07:00
parent 9739a1c806
commit 9c0389981a
10 changed files with 54 additions and 38 deletions

View File

@ -4,7 +4,7 @@ Title: R wrapper of xgboost
Version: 0.3-0
Date: 2014-08-23
Author: Tianqi Chen, Tong He
Maintainer: Tong He <hetong007 at gmail.com>
Maintainer: Tong He <hetong007@gmail.com>
Description: xgboost
License: file LICENSE
URL: https://github.com/tqchen/xgboost

View File

@ -4,8 +4,8 @@ PKGROOT=../../
CXX=`R CMD config CXX`
TCFLAGS=`R CMD config CFLAGS`
# expose these flags to R CMD SHLIB
PKG_CPPFLAGS= -DXGBOOST_CUSTOMIZE_ERROR_ -I$(PKGROOT) $(SHLIB_OPENMP_CFLAGS)
XGBFLAG= $(TCFLAGS) -DXGBOOST_CUSTOMIZE_ERROR_ -fPIC $(SHLIB_OPENMP_CFLAGS)
PKG_CPPFLAGS= -DXGBOOST_CUSTOMIZE_MSG_ -I$(PKGROOT) $(SHLIB_OPENMP_CFLAGS)
XGBFLAG= $(TCFLAGS) -DXGBOOST_CUSTOMIZE_MSG_ -fPIC $(SHLIB_OPENMP_CFLAGS)
PKG_LIBS = $(SHLIB_OPENMP_CFLAGS)
ifeq ($(no_omp),1)

View File

@ -4,8 +4,8 @@ PKGROOT=../../
CXX=`Rcmd config CXX`
TCFLAGS=`Rcmd config CFLAGS`
# expose these flags to R CMD SHLIB
PKG_CPPFLAGS= -DXGBOOST_CUSTOMIZE_ERROR_ -I$(PKGROOT) $(SHLIB_OPENMP_CFLAGS)
XGBFLAG= -O3 -DXGBOOST_CUSTOMIZE_ERROR_ -fPIC $(SHLIB_OPENMP_CFLAGS)
PKG_CPPFLAGS= -DXGBOOST_CUSTOMIZE_MSG_ -I$(PKGROOT) $(SHLIB_OPENMP_CFLAGS)
XGBFLAG= -O3 -DXGBOOST_CUSTOMIZE_MSG_ -fPIC $(SHLIB_OPENMP_CFLAGS)
PKG_LIBS = $(SHLIB_OPENMP_CFLAGS)
ifeq ($(no_omp),1)
@ -29,4 +29,3 @@ $(CXXOBJ) :
clean:
rm -rf *.so *.o *~ *.dll

View File

@ -18,6 +18,9 @@ void HandleAssertError(const char *msg) {
void HandleCheckError(const char *msg) {
error("%s", msg);
}
void HandlePrint(const char *msg) {
Rprintf("%s", msg);
}
} // namespace utils
} // namespace xgboost

View File

@ -104,10 +104,10 @@ class DMatrixSimple : public DataMatrix {
this->AddRow(feats);
if (!silent) {
printf("%lux%lu matrix with %lu entries is loaded from %s\n",
static_cast<unsigned long>(info.num_row()),
static_cast<unsigned long>(info.num_col()),
static_cast<unsigned long>(row_data_.size()), fname);
utils::Printf("%lux%lu matrix with %lu entries is loaded from %s\n",
static_cast<unsigned long>(info.num_row()),
static_cast<unsigned long>(info.num_col()),
static_cast<unsigned long>(row_data_.size()), fname);
}
fclose(file);
// try to load in additional file
@ -156,17 +156,17 @@ class DMatrixSimple : public DataMatrix {
fmat_->LoadColAccess(fs);
if (!silent) {
printf("%lux%lu matrix with %lu entries is loaded",
static_cast<unsigned long>(info.num_row()),
static_cast<unsigned long>(info.num_col()),
static_cast<unsigned long>(row_data_.size()));
utils::Printf("%lux%lu matrix with %lu entries is loaded",
static_cast<unsigned long>(info.num_row()),
static_cast<unsigned long>(info.num_col()),
static_cast<unsigned long>(row_data_.size()));
if (fname != NULL) {
printf(" from %s\n", fname);
utils::Printf(" from %s\n", fname);
} else {
printf("\n");
utils::Printf("\n");
}
if (info.group_ptr.size() != 0) {
printf("data contains %u groups\n", (unsigned)info.group_ptr.size()-1);
utils::Printf("data contains %u groups\n", (unsigned)info.group_ptr.size()-1);
}
}
}
@ -186,13 +186,13 @@ class DMatrixSimple : public DataMatrix {
fs.Close();
if (!silent) {
printf("%lux%lu matrix with %lu entries is saved to %s\n",
static_cast<unsigned long>(info.num_row()),
static_cast<unsigned long>(info.num_col()),
static_cast<unsigned long>(row_data_.size()), fname);
utils::Printf("%lux%lu matrix with %lu entries is saved to %s\n",
static_cast<unsigned long>(info.num_row()),
static_cast<unsigned long>(info.num_col()),
static_cast<unsigned long>(row_data_.size()), fname);
if (info.group_ptr.size() != 0) {
printf("data contains %u groups\n",
static_cast<unsigned>(info.group_ptr.size()-1));
utils::Printf("data contains %u groups\n",
static_cast<unsigned>(info.group_ptr.size()-1));
}
}
}

View File

@ -98,8 +98,8 @@ struct MetaInfo {
group_ptr.push_back(group_ptr.back()+nline);
}
if (!silent) {
printf("%u groups are loaded from %s\n",
static_cast<unsigned>(group_ptr.size()-1), fname);
utils::Printf("%u groups are loaded from %s\n",
static_cast<unsigned>(group_ptr.size()-1), fname);
}
fclose(fi);
return true;
@ -133,7 +133,7 @@ struct MetaInfo {
weights.push_back(wt);
}
if (!silent) {
printf("loading %s from %s\n", field, fname);
utils::Printf("loading %s from %s\n", field, fname);
}
fclose(fi);
return true;

View File

@ -183,7 +183,7 @@ struct EvalAMS : public IEvaluator {
}
}
if (ntop == ndata) {
fprintf(stderr, "\tams-ratio=%g", static_cast<float>(thresindex) / ndata);
utils::Printf("\tams-ratio=%g", static_cast<float>(thresindex) / ndata);
return static_cast<float>(tams);
} else {
return static_cast<float>(sqrt(2*((s_tp+b_fp+br) * log(1.0 + s_tp/(b_fp+br)) - s_tp)));

View File

@ -70,7 +70,7 @@ class BoostLearner {
static_cast<unsigned long>(buffer_size));
this->SetParam("num_pbuffer", str_temp);
if (!silent) {
printf("buffer_size=%ld\n", static_cast<long>(buffer_size));
utils::Printf("buffer_size=%ld\n", static_cast<long>(buffer_size));
}
}
/*!

View File

@ -63,8 +63,8 @@ class TreePruner: public IUpdater {
}
}
if (silent == 0) {
printf("tree prunning end, %d roots, %d extra nodes, %d pruned nodes ,max_depth=%d\n",
tree.param.num_roots, tree.num_extra_nodes(), npruned, tree.MaxDepth());
utils::Printf("tree prunning end, %d roots, %d extra nodes, %d pruned nodes ,max_depth=%d\n",
tree.param.num_roots, tree.num_extra_nodes(), npruned, tree.MaxDepth());
}
}

View File

@ -48,9 +48,9 @@ namespace xgboost {
/*! \brief namespace for helper utils of the project */
namespace utils {
/*! \brief error message buffer length */
const int kErrorBuffer = 1 << 12;
const int kPrintBuffer = 1 << 12;
#ifndef XGBOOST_CUSTOMIZE_ERROR_
#ifndef XGBOOST_CUSTOMIZE_MSG_
/*!
* \brief handling of Assert error, caused by in-apropriate input
* \param msg error message
@ -67,19 +67,33 @@ inline void HandleCheckError(const char *msg) {
fprintf(stderr, "%s\n", msg);
exit(-1);
}
inline void HandlePrint(const char *msg) {
printf("%s", msg);
}
#else
// include declarations, some one must implement this
void HandleAssertError(const char *msg);
void HandleCheckError(const char *msg);
void HandlePrint(const char *msg);
#endif
/*! \brief printf, print message to the console */
inline void Printf(const char *fmt, ...) {
std::string msg(kPrintBuffer, '\0');
va_list args;
va_start(args, fmt);
vsnprintf(&msg[0], kPrintBuffer, fmt, args);
va_end(args);
HandlePrint(msg.c_str());
}
/*! \brief assert an condition is true, use this to handle debug information */
inline void Assert(bool exp, const char *fmt, ...) {
if (!exp) {
std::string msg(kErrorBuffer, '\0');
std::string msg(kPrintBuffer, '\0');
va_list args;
va_start(args, fmt);
vsnprintf(&msg[0], kErrorBuffer, fmt, args);
vsnprintf(&msg[0], kPrintBuffer, fmt, args);
va_end(args);
HandleAssertError(msg.c_str());
}
@ -88,10 +102,10 @@ inline void Assert(bool exp, const char *fmt, ...) {
/*!\brief same as assert, but this is intended to be used as message for user*/
inline void Check(bool exp, const char *fmt, ...) {
if (!exp) {
std::string msg(kErrorBuffer, '\0');
std::string msg(kPrintBuffer, '\0');
va_list args;
va_start(args, fmt);
vsnprintf(&msg[0], kErrorBuffer, fmt, args);
vsnprintf(&msg[0], kPrintBuffer, fmt, args);
va_end(args);
HandleCheckError(msg.c_str());
}
@ -100,10 +114,10 @@ inline void Check(bool exp, const char *fmt, ...) {
/*! \brief report error message, same as check */
inline void Error(const char *fmt, ...) {
{
std::string msg(kErrorBuffer, '\0');
std::string msg(kPrintBuffer, '\0');
va_list args;
va_start(args, fmt);
vsnprintf(&msg[0], kErrorBuffer, fmt, args);
vsnprintf(&msg[0], kPrintBuffer, fmt, args);
va_end(args);
HandleCheckError(msg.c_str());
}