fix compile under rtools

This commit is contained in:
Tianqi Chen 2014-08-26 09:09:28 -07:00
parent 5f6d5d19b8
commit b1bffde6c9
3 changed files with 9 additions and 5 deletions

1
.gitignore vendored
View File

@ -35,3 +35,4 @@ Debug
*suo *suo
*test* *test*
.Rhistory .Rhistory
*.dll

View File

@ -213,7 +213,7 @@ extern "C" {
&olen); &olen);
FILE *fo = utils::FopenCheck(CHAR(asChar(fname)), "w"); FILE *fo = utils::FopenCheck(CHAR(asChar(fname)), "w");
for (size_t i = 0; i < olen; ++i) { for (size_t i = 0; i < olen; ++i) {
fprintf(fo, "booster[%lu]:\n", i); fprintf(fo, "booster[%u]:\n", static_cast<unsigned>(i));
fprintf(fo, "%s", res[i]); fprintf(fo, "%s", res[i]);
} }
fclose(fo); fclose(fo);

View File

@ -89,16 +89,19 @@ struct Random{
/*! \brief set random number seed */ /*! \brief set random number seed */
inline void Seed(unsigned sd) { inline void Seed(unsigned sd) {
this->rseed = sd; this->rseed = sd;
#ifdef _MSC_VER #if defined(_MSC_VER)||defined(_WIN32)
srand(rseed); srand(rseed);
#endif #endif
} }
/*! \brief return a real number uniform in [0,1) */ /*! \brief return a real number uniform in [0,1) */
inline double RandDouble(void) { inline double RandDouble(void) {
#ifndef _MSC_VER // use rand instead of rand_r in windows, for MSVC it is fine since rand is threadsafe
return static_cast<double>(rand_r(&rseed)) / (static_cast<double>(RAND_MAX) + 1.0); // For cygwin and mingw, this can slows down parallelism, but rand_r is only used in objective-inl.hpp, won't affect speed in general
#else // todo, replace with another PRNG
#if defined(_MSC_VER)||defined(_WIN32)
return static_cast<double>(rand()) / (static_cast<double>(RAND_MAX) + 1.0); return static_cast<double>(rand()) / (static_cast<double>(RAND_MAX) + 1.0);
#else
return static_cast<double>(rand_r(&rseed)) / (static_cast<double>(RAND_MAX) + 1.0);
#endif #endif
} }
// random number seed // random number seed