A bunch of minor fixes. 1. Remove an unused variable from block_sparse_matrix.cc 2. Add explicit types to the distributions to get around -Wctad-maybe-unsupported Change-Id: Ib7d606fbfe2b93ba4fce408f38ee4f7626b74ff0
diff --git a/examples/bal_problem.cc b/examples/bal_problem.cc index 2423fb6..c784116 100644 --- a/examples/bal_problem.cc +++ b/examples/bal_problem.cc
@@ -298,7 +298,7 @@ CHECK_GE(rotation_sigma, 0.0); CHECK_GE(translation_sigma, 0.0); std::mt19937 prng; - std::normal_distribution point_noise_distribution(0.0, point_sigma); + std::normal_distribution<double> point_noise_distribution(0.0, point_sigma); double* points = mutable_points(); if (point_sigma > 0) { for (int i = 0; i < num_points_; ++i) { @@ -307,9 +307,10 @@ } } - std::normal_distribution rotation_noise_distribution(0.0, point_sigma); - std::normal_distribution translation_noise_distribution(0.0, - translation_sigma); + std::normal_distribution<double> rotation_noise_distribution(0.0, + point_sigma); + std::normal_distribution<double> translation_noise_distribution( + 0.0, translation_sigma); for (int i = 0; i < num_cameras_; ++i) { double* camera = mutable_cameras() + camera_block_size() * i;
diff --git a/examples/robot_pose_mle.cc b/examples/robot_pose_mle.cc index f924bc3..5f57a89 100644 --- a/examples/robot_pose_mle.cc +++ b/examples/robot_pose_mle.cc
@@ -247,9 +247,10 @@ static_cast<int>(ceil(CERES_GET_FLAG(FLAGS_corridor_length) / CERES_GET_FLAG(FLAGS_pose_separation))); std::mt19937 prng; - std::normal_distribution odometry_noise( + std::normal_distribution<double> odometry_noise( 0.0, CERES_GET_FLAG(FLAGS_odometry_stddev)); - std::normal_distribution range_noise(0.0, CERES_GET_FLAG(FLAGS_range_stddev)); + std::normal_distribution<double> range_noise( + 0.0, CERES_GET_FLAG(FLAGS_range_stddev)); // The robot starts out at the origin. double robot_location = 0.0;
diff --git a/internal/ceres/block_sparse_matrix.cc b/internal/ceres/block_sparse_matrix.cc index 9ae4384..1bfa343 100644 --- a/internal/ceres/block_sparse_matrix.cc +++ b/internal/ceres/block_sparse_matrix.cc
@@ -183,7 +183,6 @@ for (const auto& row_block : block_structure_->rows) { int row_block_size = row_block.block.size; const vector<Cell>& cells = row_block.cells; - const int row_start = row_block.block.position; for (int r = 0; r < row_block_size; ++r) { rows.push_back(values.size()); for (const auto& cell : cells) { @@ -383,10 +382,10 @@ CHECK_LE(options.block_density, 1.0); std::mt19937 prng; - std::uniform_int_distribution col_distribution(options.min_col_block_size, - options.max_col_block_size); - std::uniform_int_distribution row_distribution(options.min_row_block_size, - options.max_row_block_size); + std::uniform_int_distribution<int> col_distribution( + options.min_col_block_size, options.max_col_block_size); + std::uniform_int_distribution<int> row_distribution( + options.min_row_block_size, options.max_row_block_size); auto* bs = new CompressedRowBlockStructure(); if (options.col_blocks.empty()) { CHECK_GT(options.num_col_blocks, 0); @@ -406,7 +405,7 @@ } bool matrix_has_blocks = false; - std::uniform_real_distribution uniform01(0.0, 1.0); + std::uniform_real_distribution<double> uniform01(0.0, 1.0); while (!matrix_has_blocks) { VLOG(1) << "Clearing"; bs->rows.clear(); @@ -434,7 +433,7 @@ auto matrix = std::make_unique<BlockSparseMatrix>(bs); double* values = matrix->mutable_values(); - std::normal_distribution standard_normal_distribution; + std::normal_distribution<double> standard_normal_distribution; for (int i = 0; i < matrix->num_nonzeros(); ++i) { values[i] = standard_normal_distribution(prng); }
diff --git a/internal/ceres/compressed_row_sparse_matrix.cc b/internal/ceres/compressed_row_sparse_matrix.cc index bd94fdc..da58b1a 100644 --- a/internal/ceres/compressed_row_sparse_matrix.cc +++ b/internal/ceres/compressed_row_sparse_matrix.cc
@@ -648,12 +648,12 @@ vector<int> col_blocks; std::mt19937 prng; - std::uniform_int_distribution col_distribution(options.min_col_block_size, - options.max_col_block_size); - std::uniform_int_distribution row_distribution(options.min_row_block_size, - options.max_row_block_size); - std::uniform_real_distribution uniform01(0.0, 1.0); - std::normal_distribution standard_normal_distribution; + std::uniform_int_distribution<int> col_distribution( + options.min_col_block_size, options.max_col_block_size); + std::uniform_int_distribution<int> row_distribution( + options.min_row_block_size, options.max_row_block_size); + std::uniform_real_distribution<double> uniform01(0.0, 1.0); + std::normal_distribution<double> standard_normal_distribution; auto values_dist = std::bind(standard_normal_distribution, std::ref(prng)); // Generate the row block structure.
diff --git a/internal/ceres/compressed_row_sparse_matrix_test.cc b/internal/ceres/compressed_row_sparse_matrix_test.cc index db90d8b..0f1b948 100644 --- a/internal/ceres/compressed_row_sparse_matrix_test.cc +++ b/internal/ceres/compressed_row_sparse_matrix_test.cc
@@ -405,7 +405,7 @@ const int kMaxBlockSize = 5; const int kNumTrials = 10; std::mt19937 prng; - std::uniform_real_distribution uniform(0.5, 1.0); + std::uniform_real_distribution<double> uniform(0.5, 1.0); for (int num_blocks = kMinNumBlocks; num_blocks < kMaxNumBlocks; ++num_blocks) { for (int trial = 0; trial < kNumTrials; ++trial) { @@ -475,7 +475,7 @@ const int kMaxBlockSize = 5; const int kNumTrials = 10; std::mt19937 prng; - std::uniform_real_distribution uniform(0.5, 1.0); + std::uniform_real_distribution<double> uniform(0.5, 1.0); for (int num_blocks = kMinNumBlocks; num_blocks < kMaxNumBlocks; ++num_blocks) { for (int trial = 0; trial < kNumTrials; ++trial) { @@ -545,7 +545,7 @@ const int kMaxBlockSize = 5; const int kNumTrials = 10; std::mt19937 prng; - std::uniform_real_distribution uniform(0.5, 1.0); + std::uniform_real_distribution<double> uniform(0.5, 1.0); for (int num_blocks = kMinNumBlocks; num_blocks < kMaxNumBlocks; ++num_blocks) { for (int trial = 0; trial < kNumTrials; ++trial) {
diff --git a/internal/ceres/corrector_test.cc b/internal/ceres/corrector_test.cc index b1e9bee..7f58efa 100644 --- a/internal/ceres/corrector_test.cc +++ b/internal/ceres/corrector_test.cc
@@ -161,7 +161,7 @@ Matrix c_hess(2, 2); Vector c_grad(2); std::mt19937 prng; - std::uniform_real_distribution uniform01(0.0, 1.0); + std::uniform_real_distribution<double> uniform01(0.0, 1.0); for (int iter = 0; iter < 10000; ++iter) { // Initialize the jacobian and residual. for (double& jacobian_entry : jacobian) jacobian_entry = uniform01(prng); @@ -229,7 +229,7 @@ Vector c_grad(2); std::mt19937 prng; - std::uniform_real_distribution uniform01(0.0, 1.0); + std::uniform_real_distribution<double> uniform01(0.0, 1.0); for (int iter = 0; iter < 10000; ++iter) { // Initialize the jacobian. for (double& jacobian_entry : jacobian) jacobian_entry = uniform01(prng);
diff --git a/internal/ceres/gradient_checker_test.cc b/internal/ceres/gradient_checker_test.cc index 5de4778..3c5f5da 100644 --- a/internal/ceres/gradient_checker_test.cc +++ b/internal/ceres/gradient_checker_test.cc
@@ -61,7 +61,7 @@ public: GoodTestTerm(int arity, int const* dim) : arity_(arity), return_value_(true) { std::mt19937 prng; - std::uniform_real_distribution distribution(-1.0, 1.0); + std::uniform_real_distribution<double> distribution(-1.0, 1.0); // Make 'arity' random vectors. a_.resize(arity_); @@ -123,7 +123,7 @@ public: BadTestTerm(int arity, int const* dim) : arity_(arity) { std::mt19937 prng; - std::uniform_real_distribution distribution(-1.0, 1.0); + std::uniform_real_distribution<double> distribution(-1.0, 1.0); // Make 'arity' random vectors. a_.resize(arity_); for (int j = 0; j < arity_; ++j) { @@ -209,7 +209,7 @@ // Make a random set of blocks. FixedArray<double*> parameters(num_parameters); std::mt19937 prng; - std::uniform_real_distribution distribution(-1.0, 1.0); + std::uniform_real_distribution<double> distribution(-1.0, 1.0); for (int j = 0; j < num_parameters; ++j) { parameters[j] = new double[parameter_sizes[j]]; for (int u = 0; u < parameter_sizes[j]; ++u) {
diff --git a/internal/ceres/gradient_checking_cost_function_test.cc b/internal/ceres/gradient_checking_cost_function_test.cc index 99e0727..caf4f25 100644 --- a/internal/ceres/gradient_checking_cost_function_test.cc +++ b/internal/ceres/gradient_checking_cost_function_test.cc
@@ -71,7 +71,7 @@ // of blocks desired, and the size of each block. TestTerm(int arity, int const* dim) : arity_(arity) { std::mt19937 prng; - std::uniform_real_distribution uniform01(-1.0, 1.0); + std::uniform_real_distribution<double> uniform01(-1.0, 1.0); // Make 'arity' random vectors. a_.resize(arity_); for (int j = 0; j < arity_; ++j) { @@ -139,7 +139,7 @@ // Make a random set of blocks. vector<double*> parameters(arity); std::mt19937 prng; - std::uniform_real_distribution uniform01(-1.0, 1.0); + std::uniform_real_distribution<double> uniform01(-1.0, 1.0); for (int j = 0; j < arity; ++j) { parameters[j] = new double[dim[j]]; for (int u = 0; u < dim[j]; ++u) { @@ -196,7 +196,7 @@ // Make a random set of blocks. vector<double*> parameters(arity); std::mt19937 prng; - std::uniform_real_distribution uniform01(-1.0, 1.0); + std::uniform_real_distribution<double> uniform01(-1.0, 1.0); for (int j = 0; j < arity; ++j) { parameters[j] = new double[dim[j]]; for (int u = 0; u < dim[j]; ++u) {
diff --git a/internal/ceres/inner_product_computer_test.cc b/internal/ceres/inner_product_computer_test.cc index 9c0382b..5bd4c50 100644 --- a/internal/ceres/inner_product_computer_test.cc +++ b/internal/ceres/inner_product_computer_test.cc
@@ -81,7 +81,7 @@ const int kMaxNumColBlocks = 10; const int kNumTrials = 10; std::mt19937 prng; - std::uniform_real_distribution distribution(0.01, 1.0); + std::uniform_real_distribution<double> distribution(0.01, 1.0); // Create a random matrix, compute its outer product using Eigen and // ComputeOuterProduct. Convert both matrices to dense matrices and @@ -145,7 +145,7 @@ const int kNumColBlocks = 20; const int kNumTrials = 5; std::mt19937 prng; - std::uniform_real_distribution distribution(0.01, 1.0); + std::uniform_real_distribution<double> distribution(0.01, 1.0); // Create a random matrix, compute its outer product using Eigen and // ComputeInnerProductComputer. Convert both matrices to dense matrices and
diff --git a/internal/ceres/normal_prior_test.cc b/internal/ceres/normal_prior_test.cc index 9c84555..25e6322 100644 --- a/internal/ceres/normal_prior_test.cc +++ b/internal/ceres/normal_prior_test.cc
@@ -41,7 +41,7 @@ TEST(NormalPriorTest, ResidualAtRandomPosition) { std::mt19937 prng; - std::uniform_real_distribution distribution(-1.0, 1.0); + std::uniform_real_distribution<double> distribution(-1.0, 1.0); for (int num_rows = 1; num_rows < 5; ++num_rows) { for (int num_cols = 1; num_cols < 5; ++num_cols) { Vector b(num_cols); @@ -76,7 +76,7 @@ TEST(NormalPriorTest, ResidualAtRandomPositionNullJacobians) { std::mt19937 prng; - std::uniform_real_distribution distribution(-1.0, 1.0); + std::uniform_real_distribution<double> distribution(-1.0, 1.0); for (int num_rows = 1; num_rows < 5; ++num_rows) { for (int num_cols = 1; num_cols < 5; ++num_cols) { Vector b(num_cols);
diff --git a/internal/ceres/sparse_cholesky_test.cc b/internal/ceres/sparse_cholesky_test.cc index e99d59b..73e1455 100644 --- a/internal/ceres/sparse_cholesky_test.cc +++ b/internal/ceres/sparse_cholesky_test.cc
@@ -171,7 +171,7 @@ const int kMinBlockSize = 1; const int kMaxBlockSize = 5; std::mt19937 prng; - std::uniform_real_distribution distribution(0.1, 1.0); + std::uniform_real_distribution<double> distribution(0.1, 1.0); for (int num_blocks = kMinNumBlocks; num_blocks < kMaxNumBlocks; ++num_blocks) {
diff --git a/internal/ceres/triplet_sparse_matrix.cc b/internal/ceres/triplet_sparse_matrix.cc index c5ff2e5..b8f43ad 100644 --- a/internal/ceres/triplet_sparse_matrix.cc +++ b/internal/ceres/triplet_sparse_matrix.cc
@@ -318,8 +318,8 @@ std::vector<int> cols; std::vector<double> values; std::mt19937 prng; - std::uniform_real_distribution uniform01(0.0, 1.0); - std::uniform_real_distribution standard_normal; + std::uniform_real_distribution<double> uniform01(0.0, 1.0); + std::normal_distribution<double> standard_normal; while (rows.empty()) { rows.clear(); cols.clear();