diff options
author | Scott Ettinger <settinger@google.com> | 2013-09-09 12:54:43 -0700 |
---|---|---|
committer | Scott Ettinger <settinger@google.com> | 2013-09-10 00:29:21 +0000 |
commit | 399f7d09e0c45af54b77b4ab9508d6f23759b927 (patch) | |
tree | abf3b5ab8259679fb37a8e20308e8cd2a8cd439c /include | |
parent | 1d2624a10e2c559f8ba9ef89eaa30832c0a83a96 (diff) | |
download | ceres-solver-kitkat-cts-release.tar.gz |
Update Ceres to the latest versionandroid-sdk-4.4.2_r1.0.1android-sdk-4.4.2_r1android-l-preview_r2android-cts-4.4_r4android-cts-4.4_r1android-4.4w_r1android-4.4_r1.2.0.1android-4.4_r1.2android-4.4_r1.1.0.1android-4.4_r1.1android-4.4_r1.0.1android-4.4_r1android-4.4_r0.9android-4.4_r0.8android-4.4_r0.7android-4.4.4_r2.0.1android-4.4.4_r2android-4.4.4_r1.0.1android-4.4.4_r1android-4.4.3_r1.1.0.1android-4.4.3_r1.1android-4.4.3_r1.0.1android-4.4.3_r1android-4.4.2_r2.0.1android-4.4.2_r2android-4.4.2_r1.0.1android-4.4.2_r1android-4.4.1_r1.0.1android-4.4.1_r1l-previewkitkat-wearkitkat-releasekitkat-mr2.2-releasekitkat-mr2.1-releasekitkat-mr2-releasekitkat-mr1.1-releasekitkat-mr1-releasekitkat-devkitkat-cts-releasekitkat-cts-devidea133-weekly-releaseidea133
Bug: 10673139
Bug: 10621282
Change-Id: Ib740a6e0e29049cc203da9f083b0d4f5734a2741
Diffstat (limited to 'include')
-rw-r--r-- | include/ceres/solver.h | 25 | ||||
-rw-r--r-- | include/ceres/types.h | 14 |
2 files changed, 33 insertions, 6 deletions
diff --git a/include/ceres/solver.h b/include/ceres/solver.h index e7b8d09..25b762a 100644 --- a/include/ceres/solver.h +++ b/include/ceres/solver.h @@ -73,7 +73,6 @@ class Solver { max_num_line_search_direction_restarts = 5; line_search_sufficient_curvature_decrease = 0.9; max_line_search_step_expansion = 10.0; - trust_region_strategy_type = LEVENBERG_MARQUARDT; dogleg_type = TRADITIONAL_DOGLEG; use_nonmonotonic_steps = false; @@ -100,11 +99,13 @@ class Solver { preconditioner_type = JACOBI; - sparse_linear_algebra_library = SUITE_SPARSE; + dense_linear_algebra_library_type = EIGEN; + sparse_linear_algebra_library_type = SUITE_SPARSE; #if defined(CERES_NO_SUITESPARSE) && !defined(CERES_NO_CXSPARSE) - sparse_linear_algebra_library = CX_SPARSE; + sparse_linear_algebra_library_type = CX_SPARSE; #endif + num_linear_solver_threads = 1; linear_solver_ordering = NULL; use_postordering = false; @@ -384,11 +385,24 @@ class Solver { // Type of preconditioner to use with the iterative linear solvers. PreconditionerType preconditioner_type; + // Ceres supports using multiple dense linear algebra libraries + // for dense matrix factorizations. Currently EIGEN and LAPACK are + // the valid choices. EIGEN is always available, LAPACK refers to + // the system BLAS + LAPACK library which may or may not be + // available. + // + // This setting affects the DENSE_QR, DENSE_NORMAL_CHOLESKY and + // DENSE_SCHUR solvers. For small to moderate sized probem EIGEN + // is a fine choice but for large problems, an optimized LAPACK + + // BLAS implementation can make a substantial difference in + // performance. + DenseLinearAlgebraLibraryType dense_linear_algebra_library_type; + // Ceres supports using multiple sparse linear algebra libraries // for sparse matrix ordering and factorizations. Currently, // SUITE_SPARSE and CX_SPARSE are the valid choices, depending on // whether they are linked into Ceres at build time. - SparseLinearAlgebraLibraryType sparse_linear_algebra_library; + SparseLinearAlgebraLibraryType sparse_linear_algebra_library_type; // Number of threads used by Ceres to solve the Newton // step. Currently only the SPARSE_SCHUR solver is capable of @@ -783,7 +797,8 @@ class Solver { TrustRegionStrategyType trust_region_strategy_type; DoglegType dogleg_type; - SparseLinearAlgebraLibraryType sparse_linear_algebra_library; + DenseLinearAlgebraLibraryType dense_linear_algebra_library_type; + SparseLinearAlgebraLibraryType sparse_linear_algebra_library_type; LineSearchDirectionType line_search_direction_type; LineSearchType line_search_type; diff --git a/include/ceres/types.h b/include/ceres/types.h index a967541..ffa743a 100644 --- a/include/ceres/types.h +++ b/include/ceres/types.h @@ -126,6 +126,11 @@ enum SparseLinearAlgebraLibraryType { CX_SPARSE }; +enum DenseLinearAlgebraLibraryType { + EIGEN, + LAPACK +}; + enum LinearSolverTerminationType { // Termination criterion was met. For factorization based solvers // the tolerance is assumed to be zero. Any user provided values are @@ -401,6 +406,12 @@ bool StringToSparseLinearAlgebraLibraryType( string value, SparseLinearAlgebraLibraryType* type); +const char* DenseLinearAlgebraLibraryTypeToString( + DenseLinearAlgebraLibraryType type); +bool StringToDenseLinearAlgebraLibraryType( + string value, + DenseLinearAlgebraLibraryType* type); + const char* TrustRegionStrategyTypeToString(TrustRegionStrategyType type); bool StringToTrustRegionStrategyType(string value, TrustRegionStrategyType* type); @@ -444,7 +455,8 @@ const char* SolverTerminationTypeToString(SolverTerminationType type); bool IsSchurType(LinearSolverType type); bool IsSparseLinearAlgebraLibraryTypeAvailable( SparseLinearAlgebraLibraryType type); - +bool IsDenseLinearAlgebraLibraryTypeAvailable( + DenseLinearAlgebraLibraryType type); } // namespace ceres |