diff --git a/internal/ceres/covariance_impl.cc b/internal/ceres/covariance_impl.cc index ee4afd91b..7ca23a873 100644 --- a/internal/ceres/covariance_impl.cc +++ b/internal/ceres/covariance_impl.cc @@ -558,7 +558,7 @@ bool CovarianceImpl::ComputeCovarianceValuesUsingSuiteSparseQR() { "CovarianceImpl::ComputeCovarianceValuesUsingSparseQR"); #ifndef CERES_NO_SUITESPARSE - if (covariance_matrix_.get() == nullptr) { + if (covariance_matrix_ == nullptr) { // Nothing to do, all zeros covariance matrix. return true; } @@ -723,7 +723,7 @@ bool CovarianceImpl::ComputeCovarianceValuesUsingSuiteSparseQR() { bool CovarianceImpl::ComputeCovarianceValuesUsingDenseSVD() { EventLogger event_logger( "CovarianceImpl::ComputeCovarianceValuesUsingDenseSVD"); - if (covariance_matrix_.get() == nullptr) { + if (covariance_matrix_ == nullptr) { // Nothing to do, all zeros covariance matrix. return true; } @@ -814,7 +814,7 @@ bool CovarianceImpl::ComputeCovarianceValuesUsingDenseSVD() { bool CovarianceImpl::ComputeCovarianceValuesUsingEigenSparseQR() { EventLogger event_logger( "CovarianceImpl::ComputeCovarianceValuesUsingEigenSparseQR"); - if (covariance_matrix_.get() == nullptr) { + if (covariance_matrix_ == nullptr) { // Nothing to do, all zeros covariance matrix. return true; } diff --git a/internal/ceres/covariance_test.cc b/internal/ceres/covariance_test.cc index 4675ada22..410212ba4 100644 --- a/internal/ceres/covariance_test.cc +++ b/internal/ceres/covariance_test.cc @@ -379,7 +379,7 @@ TEST(CovarianceImpl, ComputeCovarianceSparsityWithFreeParameterBlock) { // x_plus_delta = delta * x; class PolynomialParameterization : public LocalParameterization { public: - virtual ~PolynomialParameterization() {} + ~PolynomialParameterization() final {} bool Plus(const double* x, const double* delta, @@ -402,7 +402,7 @@ class PolynomialParameterization : public LocalParameterization { // x_plus_delta = delta * x; class PolynomialManifold : public Manifold { public: - virtual ~PolynomialManifold() {} + ~PolynomialManifold() final {} bool Plus(const double* x, const double* delta, diff --git a/internal/ceres/gradient_problem.cc b/internal/ceres/gradient_problem.cc index bb11adf0a..3ef8e4f6e 100644 --- a/internal/ceres/gradient_problem.cc +++ b/internal/ceres/gradient_problem.cc @@ -30,6 +30,8 @@ #include "ceres/gradient_problem.h" +#include + #include "ceres/local_parameterization.h" #include "ceres/manifold_adapter.h" #include "glog/logging.h" @@ -38,7 +40,8 @@ namespace ceres { GradientProblem::GradientProblem(FirstOrderFunction* function) : function_(function), - manifold_(new EuclideanManifold(function_->NumParameters())), + manifold_( + std::make_unique(function_->NumParameters())), scratch_(new double[function_->NumParameters()]) { CHECK(function != nullptr); } @@ -59,13 +62,11 @@ GradientProblem::GradientProblem(FirstOrderFunction* function, GradientProblem::GradientProblem(FirstOrderFunction* function, Manifold* manifold) - : function_(function), - manifold_(manifold), - scratch_(new double[function_->NumParameters()]) { + : function_(function), scratch_(new double[function_->NumParameters()]) { CHECK(function != nullptr); - if (manifold == nullptr) { - manifold_.reset(new EuclideanManifold(function_->NumParameters())); - } + manifold_.reset(manifold != nullptr + ? manifold + : new EuclideanManifold(function_->NumParameters())); CHECK_EQ(function_->NumParameters(), manifold_->AmbientSize()); } diff --git a/internal/ceres/parameter_block_test.cc b/internal/ceres/parameter_block_test.cc index 713a0f7b6..f7923b3d5 100644 --- a/internal/ceres/parameter_block_test.cc +++ b/internal/ceres/parameter_block_test.cc @@ -111,7 +111,8 @@ TEST(ParameterBlock, SetManifoldAndNormalOperation) { struct TestManifold : public Manifold { public: - virtual ~TestManifold() {} + ~TestManifold() final {} + bool Plus(const double* x, const double* delta, double* x_plus_delta) const final { @@ -165,8 +166,8 @@ TEST(ParameterBlock, PlusWithNoManifold) { class BadManifold : public Manifold { public: BadManifold() : calls_(0) {} + ~BadManifold() final {} - virtual ~BadManifold() {} bool Plus(const double* x, const double* delta, double* x_plus_delta) const final { diff --git a/internal/ceres/problem.cc b/internal/ceres/problem.cc index 703d29d34..e6a7350c3 100644 --- a/internal/ceres/problem.cc +++ b/internal/ceres/problem.cc @@ -197,8 +197,8 @@ int Problem::ParameterBlockLocalSize(const double* values) const { return impl_->ParameterBlockTangentSize(values); } -int Problem::ParameterBlockTangentSize(const double* parameter_block) const { - return impl_->ParameterBlockTangentSize(parameter_block); +int Problem::ParameterBlockTangentSize(const double* values) const { + return impl_->ParameterBlockTangentSize(values); } bool Problem::HasParameterBlock(const double* values) const {