[Bf-blender-cvs] [42abfe4] master: Update Ceres to latest upstream version

Sergey Sharybin noreply at git.blender.org
Thu Sep 25 09:18:47 CEST 2014


Commit: 42abfe4853d293b345786e031b7e96bf97982c11
Author: Sergey Sharybin
Date:   Wed Sep 24 17:10:02 2014 +0600
Branches: master
https://developer.blender.org/rB42abfe4853d293b345786e031b7e96bf97982c11

Update Ceres to latest upstream version

As usual brings fixes and speed improvements.

===================================================================

M	extern/libmv/third_party/ceres/CMakeLists.txt
M	extern/libmv/third_party/ceres/ChangeLog
M	extern/libmv/third_party/ceres/bundle.sh
M	extern/libmv/third_party/ceres/files.txt
M	extern/libmv/third_party/ceres/include/ceres/c_api.h
M	extern/libmv/third_party/ceres/include/ceres/ceres.h
M	extern/libmv/third_party/ceres/include/ceres/conditioned_cost_function.h
M	extern/libmv/third_party/ceres/include/ceres/cost_function.h
M	extern/libmv/third_party/ceres/include/ceres/cost_function_to_functor.h
M	extern/libmv/third_party/ceres/include/ceres/covariance.h
M	extern/libmv/third_party/ceres/include/ceres/crs_matrix.h
A	extern/libmv/third_party/ceres/include/ceres/gradient_problem.h
A	extern/libmv/third_party/ceres/include/ceres/gradient_problem_solver.h
A	extern/libmv/third_party/ceres/include/ceres/internal/disable_warnings.h
M	extern/libmv/third_party/ceres/include/ceres/internal/numeric_diff.h
A	extern/libmv/third_party/ceres/include/ceres/internal/reenable_warnings.h
M	extern/libmv/third_party/ceres/include/ceres/iteration_callback.h
M	extern/libmv/third_party/ceres/include/ceres/jet.h
M	extern/libmv/third_party/ceres/include/ceres/local_parameterization.h
M	extern/libmv/third_party/ceres/include/ceres/loss_function.h
M	extern/libmv/third_party/ceres/include/ceres/normal_prior.h
D	extern/libmv/third_party/ceres/include/ceres/numeric_diff_functor.h
M	extern/libmv/third_party/ceres/include/ceres/ordered_groups.h
M	extern/libmv/third_party/ceres/include/ceres/problem.h
M	extern/libmv/third_party/ceres/include/ceres/solver.h
M	extern/libmv/third_party/ceres/include/ceres/types.h
A	extern/libmv/third_party/ceres/include/ceres/version.h
D	extern/libmv/third_party/ceres/internal/ceres/CMakeLists.txt
M	extern/libmv/third_party/ceres/internal/ceres/array_utils.cc
M	extern/libmv/third_party/ceres/internal/ceres/array_utils.h
A	extern/libmv/third_party/ceres/internal/ceres/callbacks.cc
A	extern/libmv/third_party/ceres/internal/ceres/callbacks.h
M	extern/libmv/third_party/ceres/internal/ceres/canonical_views_clustering.cc
M	extern/libmv/third_party/ceres/internal/ceres/canonical_views_clustering.h
M	extern/libmv/third_party/ceres/internal/ceres/conjugate_gradients_solver.cc
M	extern/libmv/third_party/ceres/internal/ceres/coordinate_descent_minimizer.cc
M	extern/libmv/third_party/ceres/internal/ceres/coordinate_descent_minimizer.h
M	extern/libmv/third_party/ceres/internal/ceres/covariance_impl.cc
M	extern/libmv/third_party/ceres/internal/ceres/covariance_impl.h
M	extern/libmv/third_party/ceres/internal/ceres/cxsparse.h
M	extern/libmv/third_party/ceres/internal/ceres/dynamic_compressed_row_jacobian_writer.cc
M	extern/libmv/third_party/ceres/internal/ceres/gradient_checking_cost_function.cc
A	extern/libmv/third_party/ceres/internal/ceres/gradient_problem.cc
A	extern/libmv/third_party/ceres/internal/ceres/gradient_problem_evaluator.h
A	extern/libmv/third_party/ceres/internal/ceres/gradient_problem_solver.cc
M	extern/libmv/third_party/ceres/internal/ceres/graph.h
M	extern/libmv/third_party/ceres/internal/ceres/graph_algorithms.h
M	extern/libmv/third_party/ceres/internal/ceres/iterative_schur_complement_solver.cc
M	extern/libmv/third_party/ceres/internal/ceres/line_search_direction.cc
M	extern/libmv/third_party/ceres/internal/ceres/line_search_minimizer.cc
A	extern/libmv/third_party/ceres/internal/ceres/line_search_preprocessor.cc
A	extern/libmv/third_party/ceres/internal/ceres/line_search_preprocessor.h
M	extern/libmv/third_party/ceres/internal/ceres/linear_solver.cc
M	extern/libmv/third_party/ceres/internal/ceres/linear_solver.h
M	extern/libmv/third_party/ceres/internal/ceres/local_parameterization.cc
M	extern/libmv/third_party/ceres/internal/ceres/loss_function.cc
M	extern/libmv/third_party/ceres/internal/ceres/minimizer.cc
M	extern/libmv/third_party/ceres/internal/ceres/minimizer.h
M	extern/libmv/third_party/ceres/internal/ceres/parameter_block_ordering.cc
M	extern/libmv/third_party/ceres/internal/ceres/parameter_block_ordering.h
M	extern/libmv/third_party/ceres/internal/ceres/preconditioner.cc
M	extern/libmv/third_party/ceres/internal/ceres/preconditioner.h
A	extern/libmv/third_party/ceres/internal/ceres/preprocessor.cc
A	extern/libmv/third_party/ceres/internal/ceres/preprocessor.h
M	extern/libmv/third_party/ceres/internal/ceres/problem.cc
M	extern/libmv/third_party/ceres/internal/ceres/problem_impl.cc
M	extern/libmv/third_party/ceres/internal/ceres/problem_impl.h
M	extern/libmv/third_party/ceres/internal/ceres/program.cc
M	extern/libmv/third_party/ceres/internal/ceres/program.h
A	extern/libmv/third_party/ceres/internal/ceres/reorder_program.cc
A	extern/libmv/third_party/ceres/internal/ceres/reorder_program.h
M	extern/libmv/third_party/ceres/internal/ceres/schur_complement_solver.cc
M	extern/libmv/third_party/ceres/internal/ceres/schur_complement_solver.h
M	extern/libmv/third_party/ceres/internal/ceres/single_linkage_clustering.cc
M	extern/libmv/third_party/ceres/internal/ceres/single_linkage_clustering.h
M	extern/libmv/third_party/ceres/internal/ceres/small_blas.h
M	extern/libmv/third_party/ceres/internal/ceres/solver.cc
D	extern/libmv/third_party/ceres/internal/ceres/solver_impl.cc
D	extern/libmv/third_party/ceres/internal/ceres/solver_impl.h
A	extern/libmv/third_party/ceres/internal/ceres/solver_utils.cc
A	extern/libmv/third_party/ceres/internal/ceres/solver_utils.h
M	extern/libmv/third_party/ceres/internal/ceres/sparse_normal_cholesky_solver.cc
M	extern/libmv/third_party/ceres/internal/ceres/sparse_normal_cholesky_solver.h
M	extern/libmv/third_party/ceres/internal/ceres/suitesparse.h
M	extern/libmv/third_party/ceres/internal/ceres/trust_region_minimizer.cc
A	extern/libmv/third_party/ceres/internal/ceres/trust_region_preprocessor.cc
A	extern/libmv/third_party/ceres/internal/ceres/trust_region_preprocessor.h
M	extern/libmv/third_party/ceres/internal/ceres/types.cc
M	extern/libmv/third_party/ceres/internal/ceres/visibility.cc
M	extern/libmv/third_party/ceres/internal/ceres/visibility.h
M	extern/libmv/third_party/ceres/internal/ceres/visibility_based_preconditioner.cc
M	extern/libmv/third_party/ceres/internal/ceres/visibility_based_preconditioner.h

===================================================================

diff --git a/extern/libmv/third_party/ceres/CMakeLists.txt b/extern/libmv/third_party/ceres/CMakeLists.txt
index 8e80352..a349d3f 100644
--- a/extern/libmv/third_party/ceres/CMakeLists.txt
+++ b/extern/libmv/third_party/ceres/CMakeLists.txt
@@ -51,6 +51,7 @@ set(SRC
 	internal/ceres/block_random_access_sparse_matrix.cc
 	internal/ceres/block_sparse_matrix.cc
 	internal/ceres/block_structure.cc
+	internal/ceres/callbacks.cc
 	internal/ceres/canonical_views_clustering.cc
 	internal/ceres/c_api.cc
 	internal/ceres/cgnr_solver.cc
@@ -76,6 +77,8 @@ set(SRC
 	internal/ceres/generated/partitioned_matrix_view_d_d_d.cc
 	internal/ceres/generated/schur_eliminator_d_d_d.cc
 	internal/ceres/gradient_checking_cost_function.cc
+	internal/ceres/gradient_problem.cc
+	internal/ceres/gradient_problem_solver.cc
 	internal/ceres/implicit_schur_complement.cc
 	internal/ceres/incomplete_lq_factorization.cc
 	internal/ceres/iterative_schur_complement_solver.cc
@@ -87,6 +90,7 @@ set(SRC
 	internal/ceres/line_search.cc
 	internal/ceres/line_search_direction.cc
 	internal/ceres/line_search_minimizer.cc
+	internal/ceres/line_search_preprocessor.cc
 	internal/ceres/local_parameterization.cc
 	internal/ceres/loss_function.cc
 	internal/ceres/low_rank_inverse_hessian.cc
@@ -96,9 +100,11 @@ set(SRC
 	internal/ceres/partitioned_matrix_view.cc
 	internal/ceres/polynomial.cc
 	internal/ceres/preconditioner.cc
+	internal/ceres/preprocessor.cc
 	internal/ceres/problem.cc
 	internal/ceres/problem_impl.cc
 	internal/ceres/program.cc
+	internal/ceres/reorder_program.cc
 	internal/ceres/residual_block.cc
 	internal/ceres/residual_block_utils.cc
 	internal/ceres/schur_complement_solver.cc
@@ -107,7 +113,7 @@ set(SRC
 	internal/ceres/scratch_evaluate_preparer.cc
 	internal/ceres/single_linkage_clustering.cc
 	internal/ceres/solver.cc
-	internal/ceres/solver_impl.cc
+	internal/ceres/solver_utils.cc
 	internal/ceres/sparse_matrix.cc
 	internal/ceres/sparse_normal_cholesky_solver.cc
 	internal/ceres/split.cc
@@ -115,6 +121,7 @@ set(SRC
 	internal/ceres/suitesparse.cc
 	internal/ceres/triplet_sparse_matrix.cc
 	internal/ceres/trust_region_minimizer.cc
+	internal/ceres/trust_region_preprocessor.cc
 	internal/ceres/trust_region_strategy.cc
 	internal/ceres/types.cc
 	internal/ceres/visibility_based_preconditioner.cc
@@ -134,13 +141,17 @@ set(SRC
 	include/ceres/dynamic_numeric_diff_cost_function.h
 	include/ceres/fpclassify.h
 	include/ceres/gradient_checker.h
+	include/ceres/gradient_problem.h
+	include/ceres/gradient_problem_solver.h
 	include/ceres/internal/autodiff.h
+	include/ceres/internal/disable_warnings.h
 	include/ceres/internal/eigen.h
 	include/ceres/internal/fixed_array.h
 	include/ceres/internal/macros.h
 	include/ceres/internal/manual_constructor.h
 	include/ceres/internal/numeric_diff.h
 	include/ceres/internal/port.h
+	include/ceres/internal/reenable_warnings.h
 	include/ceres/internal/scoped_ptr.h
 	include/ceres/internal/variadic_evaluate.h
 	include/ceres/iteration_callback.h
@@ -149,13 +160,13 @@ set(SRC
 	include/ceres/loss_function.h
 	include/ceres/normal_prior.h
 	include/ceres/numeric_diff_cost_function.h
-	include/ceres/numeric_diff_functor.h
 	include/ceres/ordered_groups.h
 	include/ceres/problem.h
 	include/ceres/rotation.h
 	include/ceres/sized_cost_function.h
 	include/ceres/solver.h
 	include/ceres/types.h
+	include/ceres/version.h
 	internal/ceres/array_utils.h
 	internal/ceres/blas.h
 	internal/ceres/block_evaluate_preparer.h
@@ -167,6 +178,7 @@ set(SRC
 	internal/ceres/block_random_access_sparse_matrix.h
 	internal/ceres/block_sparse_matrix.h
 	internal/ceres/block_structure.h
+	internal/ceres/callbacks.h
 	internal/ceres/canonical_views_clustering.h
 	internal/ceres/casts.h
 	internal/ceres/cgnr_linear_operator.h
@@ -193,6 +205,7 @@ set(SRC
 	internal/ceres/execution_summary.h
 	internal/ceres/file.h
 	internal/ceres/gradient_checking_cost_function.h
+	internal/ceres/gradient_problem_evaluator.h
 	internal/ceres/graph_algorithms.h
 	internal/ceres/graph.h
 	internal/ceres/implicit_schur_complement.h
@@ -207,6 +220,7 @@ set(SRC
 	internal/ceres/line_search_direction.h
 	internal/ceres/line_search.h
 	internal/ceres/line_search_minimizer.h
+	internal/ceres/line_search_preprocessor.h
 	internal/ceres/low_rank_inverse_hessian.h
 	internal/ceres/map_util.h
 	internal/ceres/minimizer.h
@@ -217,10 +231,12 @@ set(SRC
 	internal/ceres/partitioned_matrix_view_impl.h
 	internal/ceres/polynomial.h
 	internal/ceres/preconditioner.h
+	internal/ceres/preprocessor.h
 	internal/ceres/problem_impl.h
 	internal/ceres/program_evaluator.h
 	internal/ceres/program.h
 	internal/ceres/random.h
+	internal/ceres/reorder_program.h
 	internal/ceres/residual_block.h
 	internal/ceres/residual_block_utils.h
 	internal/ceres/schur_complement_solver.h
@@ -230,7 +246,7 @@ set(SRC
 	internal/ceres/scratch_evaluate_preparer.h
 	internal/ceres/single_linkage_clustering.h
 	internal/ceres/small_blas.h
-	internal/ceres/solver_impl.h
+	internal/ceres/solver_utils.h
 	internal/ceres/sparse_matrix.h
 	internal/ceres/sparse_normal_cholesky_solver.h
 	internal/ceres/split.h
@@ -239,6 +255,7 @@ set(SRC
 	internal/ceres/suitesparse.h
 	internal/ceres/triplet_sparse_matrix.h
 	internal/ceres/trust_region_minimizer.h
+	internal/ceres/trust_region_preprocessor.h
 	internal/ceres/trust_region_strategy.h
 	internal/ceres/visibility_based_preconditioner.h
 	internal/ceres/visibility.h
diff --git a/extern/libmv/third_party/ceres/ChangeLog b/extern/libmv/third_party/ceres/ChangeLog
index c9f5b34..cd168a4 100644
--- a/extern/libmv/third_party/ceres/ChangeLog
+++ b/extern/libmv/third_party/ceres/ChangeLog
@@ -1,646 +1,652 @@
-commit 8c62487e437b91d3d354cd1ae8957e43fe540732
+commit d3ecd18625ba260e0d00912a305a448b566acc59
 Author: Sameer Agarwal <sameeragarwal at google.com>
-Date:   Fri May 16 09:44:18 2014 -0700
+Date:   Tue Sep 23 10:12:42 2014 -0700
 
-    Preparations for 1.9.0 release.
+    Add an explicit include for local_parameterization.h
     
-    Version bump.
-    minor docs update.
+    Thanks to cooordz for reporting this.
     
-    Change-Id: I2fbe20ba4af6b2e186fe244c96ce6d6464fe0469
+    Change-Id: I7d345404e362a94ff1eb433ad6b9dcc4960ba76d
 
-commit 0831275a78ab65e4c95979598cb35c54d03d3185
-Author: Sameer Agarwal <sameeragarwal at google.com>
-Date:   Fri May 16 08:17:54 2014 -0700
+commit 5dd76869cf45122c79579423f09e0de08cf04092
+Author: Alex Stewart <alexs.mac at gmail.com>
+Date:   Fri Sep 19 16:08:25 2014 +0100
 
-    Documentation update.
+    Fix unused-function warning with Eigen < 3.2.2.
     
-    1. Update iOS build instructions.
-    2. Update version history.
+    - CreateBlockJacobian() is only ever used when Eigen >= 3.2.2 is
+      detected, but was previously defined whenever CERES_USE_EIGEN_SPARSE
+      was defined with no check on the Eigen version.
+    - This resulted in an unused-function compile warning that became an
+      error due to -Werror, preventing compilation when using Eigen < 3.2.2.
     
-    Change-Id: I49d62e86ecff39190b50c050cb12eef4e2773357
+    Change-Id: I24628ff329f14b087ece66bf2626bdc0de4ba224
 
-commit c7c7458625996a20203f1366d11bd701e5fb621b
-Author: Jack Feng <jackfengji at gmail.com>
-Date:   Mon May 12 10:23:56 2014 +0800
+commit 820cb7b14831aa03eca1e8186000cebfdf0a42f3
+Author: Sameer Agarwal <sameeragarwal at google.com>
+Date:   Wed Sep 17 09:46:08 2014 -0700
 
-    add support for building for ios
+    Add solver_utils.cc to Android.mk
     
-    use ios-cmake to build for ios
-    
-    Change-Id: I6b17c33339f3121322a4004d79629b22a62f7a94
+    Change-Id: I358522971711280f4362a1fa39b1568160e21e63
 
-commit 36c2ce87d13b9b7123bd0473b8b45fb3b6ae4271
-Author: Sergey Sharybin <sergey.vfx at gmail.com>
-Date:   Mon Jan 13 21:18:08 2014 +0600
+commit 092b94970a073f8b47179d96160226fc19095898
+Author: Sameer Agarwal <sameeragarwal at google.com>
+Date:   Fri Sep 5 11:56:29 2014 -0700
 
-    Libmv 2D homography estimation example application
+    Add GradientProblem and GradientProblemSolver.
     
-    Add an example application of homography matrix estimation
-    from a 2D euclidean correspondences which is done in two
-    steps:
+    The line search minimizer in Ceres does not require that the
+    problems that is solving is a sum of squares. Over the past
+    year there have been multiple requests to expose this algorithm
+    on its own so that it can be used to solve unconstrained
+    non-linear minimization problems on its own.
     
-    - Coarse algebraic estimation
-    - Fine refinement using Ceres minimizer
+    With this change, a new optimization problem called
+    GradientProblem is introduced which is basically a thin
+    wrapper around a user defined functor that evaluates cost
+    and gradients (FirstOrderFunction) and an optional LocalParameterization.
     
-    Nothing terribly exciting apart from an example of how to
-    use user callbacks.
+    Corresponding to it, a GradientProblemSolver and its associated
+    options and summary structs are introduced too.
     
-    User callback is used here to stop minimizer when average
-    of symmetric geometric distance becomes good enough.
-    This might be arguable whether it's the best way to go
-    (in some cases you would want to stop minimizer when
-    maximal symmetric distance is lower than a threshold) but
-    for a callback usage example it's good enough to stick
-    to current logic.
+    An example that uses the new API to find the minimum of Rosenbrock's
+    function is also added.
     
-    Change-Id: I60c8559cb10b001a0eb64ab71920c08bd68455b8
+    Change-Id: I42bf687540da25de991e9bdb00e321239244e8b4
 
-commit d99a3a961e4a6ff7218d0ab749da57cf1a1677bd
-Author: Björn Piltz <bjornpiltz at gmail.com>
-Date:   Wed May 7 14:59:12 2014 +0200
+commit 6c45d6b891aac01489b478a021f99081c61792cb
+Author: Sameer Agarwal <sameeragarwal at google.com>
+Date:   Thu Sep 11 07:48:30 2014 -0700
 
-    Separate PUBLIC and PRIVATE library dependencies
-    Do not propagate 3d party libs through
-    IMPORTED_LINK_INTERFACE_LIBRARIES_[DEBUG/RELEASE] mechanism
-    when building shared libraries. SuiteSparse, lapack & co
-    are considered private. Glog still gets propagated since
-    it is part of the 

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list