Changing random.h to use cstdlib for Windows compability.
As discussed with Sameer today.
Change-Id: If3d0284830c6591c71cc77b8400cafb45c0da61f
diff --git a/examples/bundle_adjuster.cc b/examples/bundle_adjuster.cc
index 68458a0..f5c1ac1 100644
--- a/examples/bundle_adjuster.cc
+++ b/examples/bundle_adjuster.cc
@@ -273,27 +273,6 @@
SetOrdering(bal_problem, options);
}
-// Uniform random numbers between 0 and 1.
-double UniformRandom() {
- return static_cast<double>(random()) / static_cast<double>(RAND_MAX);
-}
-
-// Normal random numbers using the Box-Mueller algorithm. Its a bit
-// wasteful, as it generates two but only returns one.
-double RandNormal() {
- double x1, x2, w, y1, y2;
- do {
- x1 = 2.0 * UniformRandom() - 1.0;
- x2 = 2.0 * UniformRandom() - 1.0;
- w = x1 * x1 + x2 * x2;
- } while ( w >= 1.0 );
-
- w = sqrt((-2.0 * log(w)) / w);
- y1 = x1 * w;
- y2 = x2 * w;
- return y1;
-}
-
void BuildProblem(BALProblem* bal_problem, Problem* problem) {
const int point_block_size = bal_problem->point_block_size();
const int camera_block_size = bal_problem->camera_block_size();
diff --git a/internal/ceres/random.h b/internal/ceres/random.h
index cd7a0ea..352c003 100644
--- a/internal/ceres/random.h
+++ b/internal/ceres/random.h
@@ -34,19 +34,20 @@
#include <cmath>
#include <cstdlib>
+#include "ceres/internal/port.h"
namespace ceres {
inline void SetRandomState(int state) {
- srandom(state);
+ srand(state);
}
inline int Uniform(int n) {
- return random() % n;
+ return rand() % n;
}
inline double RandDouble() {
- double r = static_cast<double>(random());
+ double r = static_cast<double>(rand());
return r / RAND_MAX;
}