DLLEXPORT void XGBoosterEvalOneIter( void *handle, int iter, void *dmats[], const char *evnames[], size_t len ){ Booster *bst = static_cast<Booster*>(handle); bst->CheckInit(); std::vector<std::string> names; std::vector<const xgboost::regrank::DMatrix*> mats; for( size_t i = 0; i < len; ++i ){ mats.push_back( static_cast<DMatrix*>(dmats[i]) ); names.push_back( std::string( evnames[i]) ); } bst->EvalOneIter( iter, mats, names, stderr ); }
const char* XGBoosterEvalOneIter(void *handle, int iter, void *dmats[], const char *evnames[], bst_ulong len) { Booster *bst = static_cast<Booster*>(handle); std::vector<std::string> names; std::vector<const DataMatrix*> mats; for (bst_ulong i = 0; i < len; ++i) { mats.push_back(static_cast<DataMatrix*>(dmats[i])); names.push_back(std::string(evnames[i])); } bst->CheckInitModel(); bst->eval_str = bst->EvalOneIter(iter, mats, names); return bst->eval_str.c_str(); }
int XGBoosterEvalOneIter(BoosterHandle handle, int iter, DMatrixHandle dmats[], const char *evnames[], bst_ulong len, const char **out_str) { API_BEGIN(); Booster *bst = static_cast<Booster*>(handle); std::vector<std::string> names; std::vector<const DataMatrix*> mats; for (bst_ulong i = 0; i < len; ++i) { mats.push_back(static_cast<DataMatrix*>(dmats[i])); names.push_back(std::string(evnames[i])); } bst->CheckInitModel(); bst->eval_str = bst->EvalOneIter(iter, mats, names); *out_str = bst->eval_str.c_str(); API_END(); }