[Bf-blender-cvs] [de6c1c9] master: Update Ceres to latest upstream version
Sergey Sharybin
noreply at git.blender.org
Thu Nov 28 14:46:44 CET 2013
Commit: de6c1c9287849a6d3688ac4d67c8cc21f0c4cd31
Author: Sergey Sharybin
Date: Thu Nov 28 19:06:35 2013 +0600
http://developer.blender.org/rBde6c1c9287849a6d3688ac4d67c8cc21f0c4cd31
Update Ceres to latest upstream version
- A richer Problem API.
- DynamicNumericDiffCostFunction.
- Faster ITERATIVE_SCHUR solver.
- Faster SCHUR_JACOBI preconditioner.
- Faster Jacobian evaluation.
- Faster visibility based preconditioning using single linkage clustering.
Also re-wrote rules for unordered collections detection,
should work on all platforms and compilers now :)
===================================================================
M SConstruct
M extern/libmv/third_party/ceres/CMakeLists.txt
M extern/libmv/third_party/ceres/ChangeLog
M extern/libmv/third_party/ceres/SConscript
M extern/libmv/third_party/ceres/bundle.sh
M extern/libmv/third_party/ceres/files.txt
M extern/libmv/third_party/ceres/include/ceres/autodiff_cost_function.h
M extern/libmv/third_party/ceres/include/ceres/ceres.h
M extern/libmv/third_party/ceres/include/ceres/dynamic_autodiff_cost_function.h
A extern/libmv/third_party/ceres/include/ceres/dynamic_numeric_diff_cost_function.h
M extern/libmv/third_party/ceres/include/ceres/internal/autodiff.h
M extern/libmv/third_party/ceres/include/ceres/internal/fixed_array.h
M extern/libmv/third_party/ceres/include/ceres/internal/macros.h
M extern/libmv/third_party/ceres/include/ceres/internal/numeric_diff.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/numeric_diff_cost_function.h
M 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/rotation.h
M extern/libmv/third_party/ceres/include/ceres/solver.h
M extern/libmv/third_party/ceres/include/ceres/types.h
M extern/libmv/third_party/ceres/internal/ceres/block_jacobi_preconditioner.cc
A extern/libmv/third_party/ceres/internal/ceres/block_random_access_diagonal_matrix.cc
A extern/libmv/third_party/ceres/internal/ceres/block_random_access_diagonal_matrix.h
M extern/libmv/third_party/ceres/internal/ceres/block_random_access_sparse_matrix.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/cgnr_solver.cc
M extern/libmv/third_party/ceres/internal/ceres/collections_port.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/corrector.cc
M extern/libmv/third_party/ceres/internal/ceres/covariance_impl.cc
M extern/libmv/third_party/ceres/internal/ceres/cxsparse.cc
M extern/libmv/third_party/ceres/internal/ceres/dense_normal_cholesky_solver.cc
M extern/libmv/third_party/ceres/internal/ceres/dense_qr_solver.cc
M extern/libmv/third_party/ceres/internal/ceres/dogleg_strategy.cc
M extern/libmv/third_party/ceres/internal/ceres/generate_eliminator_specialization.py
A extern/libmv/third_party/ceres/internal/ceres/generate_partitioned_matrix_view_specializations.py
A extern/libmv/third_party/ceres/internal/ceres/generated/partitioned_matrix_view_2_2_2.cc
A extern/libmv/third_party/ceres/internal/ceres/generated/partitioned_matrix_view_2_2_3.cc
A extern/libmv/third_party/ceres/internal/ceres/generated/partitioned_matrix_view_2_2_4.cc
A extern/libmv/third_party/ceres/internal/ceres/generated/partitioned_matrix_view_2_2_d.cc
A extern/libmv/third_party/ceres/internal/ceres/generated/partitioned_matrix_view_2_3_3.cc
A extern/libmv/third_party/ceres/internal/ceres/generated/partitioned_matrix_view_2_3_4.cc
A extern/libmv/third_party/ceres/internal/ceres/generated/partitioned_matrix_view_2_3_9.cc
A extern/libmv/third_party/ceres/internal/ceres/generated/partitioned_matrix_view_2_3_d.cc
A extern/libmv/third_party/ceres/internal/ceres/generated/partitioned_matrix_view_2_4_3.cc
A extern/libmv/third_party/ceres/internal/ceres/generated/partitioned_matrix_view_2_4_4.cc
A extern/libmv/third_party/ceres/internal/ceres/generated/partitioned_matrix_view_2_4_d.cc
A extern/libmv/third_party/ceres/internal/ceres/generated/partitioned_matrix_view_2_d_d.cc
A extern/libmv/third_party/ceres/internal/ceres/generated/partitioned_matrix_view_4_4_2.cc
A extern/libmv/third_party/ceres/internal/ceres/generated/partitioned_matrix_view_4_4_3.cc
A extern/libmv/third_party/ceres/internal/ceres/generated/partitioned_matrix_view_4_4_4.cc
A extern/libmv/third_party/ceres/internal/ceres/generated/partitioned_matrix_view_4_4_d.cc
A extern/libmv/third_party/ceres/internal/ceres/generated/partitioned_matrix_view_d_d_d.cc
A extern/libmv/third_party/ceres/internal/ceres/generated/schur_eliminator_2_d_d.cc
M extern/libmv/third_party/ceres/internal/ceres/gradient_checking_cost_function.cc
M extern/libmv/third_party/ceres/internal/ceres/implicit_schur_complement.cc
M extern/libmv/third_party/ceres/internal/ceres/implicit_schur_complement.h
M extern/libmv/third_party/ceres/internal/ceres/iterative_schur_complement_solver.cc
M extern/libmv/third_party/ceres/internal/ceres/lapack.cc
M extern/libmv/third_party/ceres/internal/ceres/lapack.h
M extern/libmv/third_party/ceres/internal/ceres/levenberg_marquardt_strategy.cc
M extern/libmv/third_party/ceres/internal/ceres/line_search.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
M extern/libmv/third_party/ceres/internal/ceres/linear_solver.h
M extern/libmv/third_party/ceres/internal/ceres/low_rank_inverse_hessian.cc
M extern/libmv/third_party/ceres/internal/ceres/minimizer.h
M extern/libmv/third_party/ceres/internal/ceres/partitioned_matrix_view.cc
M extern/libmv/third_party/ceres/internal/ceres/partitioned_matrix_view.h
A extern/libmv/third_party/ceres/internal/ceres/partitioned_matrix_view_impl.h
M extern/libmv/third_party/ceres/internal/ceres/polynomial.cc
M extern/libmv/third_party/ceres/internal/ceres/polynomial.h
M extern/libmv/third_party/ceres/internal/ceres/preconditioner.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
D extern/libmv/third_party/ceres/internal/ceres/runtime_numeric_diff_cost_function.cc
D extern/libmv/third_party/ceres/internal/ceres/runtime_numeric_diff_cost_function.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/schur_eliminator.cc
M extern/libmv/third_party/ceres/internal/ceres/schur_jacobi_preconditioner.cc
M extern/libmv/third_party/ceres/internal/ceres/schur_jacobi_preconditioner.h
A extern/libmv/third_party/ceres/internal/ceres/single_linkage_clustering.cc
A extern/libmv/third_party/ceres/internal/ceres/single_linkage_clustering.h
M extern/libmv/third_party/ceres/internal/ceres/solver.cc
M extern/libmv/third_party/ceres/internal/ceres/solver_impl.cc
M extern/libmv/third_party/ceres/internal/ceres/solver_impl.h
M extern/libmv/third_party/ceres/internal/ceres/sparse_normal_cholesky_solver.cc
M extern/libmv/third_party/ceres/internal/ceres/stringprintf.cc
M extern/libmv/third_party/ceres/internal/ceres/suitesparse.cc
M extern/libmv/third_party/ceres/internal/ceres/suitesparse.h
M extern/libmv/third_party/ceres/internal/ceres/trust_region_minimizer.cc
M extern/libmv/third_party/ceres/internal/ceres/trust_region_strategy.h
M extern/libmv/third_party/ceres/internal/ceres/types.cc
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/SConstruct b/SConstruct
index edf9cda..197a51f 100644
--- a/SConstruct
+++ b/SConstruct
@@ -285,6 +285,9 @@ if 'cudakernels' in B.targets:
env['WITH_BF_CYCLES_CUDA_BINARIES'] = True
env['WITH_BF_PYTHON'] = False
+# Configure paths for automated configuration test programs
+env['CONFIGUREDIR'] = os.path.abspath(os.path.normpath(os.path.join(env['BF_BUILDDIR'], "sconf_temp")))
+env['CONFIGURELOG'] = os.path.abspath(os.path.normpath(os.path.join(env['BF_BUILDDIR'], "config.log")))
#############################################################################
################### Automatic configuration for OSX ##################
diff --git a/extern/libmv/third_party/ceres/CMakeLists.txt b/extern/libmv/third_party/ceres/CMakeLists.txt
index 56fd4c2..a05c424 100644
--- a/extern/libmv/third_party/ceres/CMakeLists.txt
+++ b/extern/libmv/third_party/ceres/CMakeLists.txt
@@ -46,6 +46,7 @@ set(SRC
internal/ceres/block_jacobi_preconditioner.cc
internal/ceres/block_random_access_crs_matrix.cc
internal/ceres/block_random_access_dense_matrix.cc
+ internal/ceres/block_random_access_diagonal_matrix.cc
internal/ceres/block_random_access_matrix.cc
internal/ceres/block_random_access_sparse_matrix.cc
internal/ceres/block_sparse_matrix.cc
@@ -70,6 +71,7 @@ set(SRC
internal/ceres/dogleg_strategy.cc
internal/ceres/evaluator.cc
internal/ceres/file.cc
+ 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/implicit_schur_complement.cc
@@ -97,11 +99,11 @@ set(SRC
internal/ceres/program.cc
internal/ceres/residual_block.cc
internal/ceres/residual_block_utils.cc
- internal/ceres/runtime_numeric_diff_cost_function.cc
internal/ceres/schur_complement_solver.cc
internal/ceres/schur_eliminator.cc
internal/ceres/schur_jacobi_preconditioner.cc
internal/ceres/scratch_evaluate_preparer.cc
+ internal/ceres/single_linkage_clustering.cc
internal/ceres/solver.cc
internal/ceres/solver_impl.cc
internal/ceres/sparse_matrix.cc
@@ -127,6 +129,7 @@ set(SRC
include/ceres/covariance.h
include/ceres/crs_matrix.h
include/ceres/dynamic_autodiff_cost_function.h
+ include/ceres/dynamic_numeric_diff_cost_function.h
include/ceres/fpclassify.h
include/ceres/gradient_checker.h
include/ceres/internal/autodiff.h
@@ -158,6 +161,7 @@ set(SRC
internal/ceres/block_jacobi_preconditioner.h
internal/ceres/block_random_access_crs_matrix.h
internal/ceres/block_random_access_dense_matrix.h
+ internal/ceres/block_random_access_diagonal_matrix.h
internal/ceres/block_random_access_matrix.h
internal/ceres/block_random_access_sparse_matrix.h
internal/ceres/block_sparse_matrix.h
@@ -206,6 +210,7 @@ set(SRC
internal/ceres/parameter_block.h
internal/ceres/parameter_block_ordering.h
internal/ceres/partitioned_matrix_view.h
+ internal/ceres/partitioned_matrix_view_impl.h
internal/ceres/polynomial.h
internal/ceres/preconditioner.h
internal/ceres/problem_impl.h
@@ -214,12 +219,12 @@ set(SRC
internal/ceres/random.h
internal/ceres/residual_block.h
internal/ceres/residual_block_utils.h
- internal/ceres/runtime_numeric_diff_cost_function.h
internal/ceres/schur_complement_solver.h
internal/ceres/schur_eliminator.h
internal/ceres/schur_eliminator_impl.h
internal/ceres/schur_jacobi_preconditioner.h
internal/ceres/scratch_evaluate_preparer.h
+ internal/ceres/single_linkage_clustering.h
internal/ceres/small_blas.h
internal/ceres/solver_impl.h
internal/ceres/sparse_matrix.h
@@ -238,6 +243,22 @@ set(SRC
#if(FALSE)
# list(APPEND SRC
+# internal/ceres/generated/partitioned_matrix_view_2_2_2.cc
+# internal/ceres/generated/partitioned_matrix_view_2_2_3.cc
+# internal/ceres/generated/partitioned_matrix_view_2_2_4.cc
+# internal/ceres/generated/partitioned_matrix_view_2_2_d.cc
+# internal/ceres/generated/partitioned_matrix_view_2_3_3.cc
+# internal/ceres/generated/partitioned_matrix_view_2_3_4.cc
+# internal/ceres/generated/partitioned_matrix_view_2_3_9.cc
+# internal/ceres/generated/partitioned_matrix_view_2_3_d.cc
+# internal/ceres/generated/partitioned_matrix_view_2_4_3.cc
+# internal/ceres/generated/partitioned_matrix_view_2_4_4.cc
+# internal/ceres/generated/partitioned_matrix_view_2_4_d.cc
+# internal/ceres/generated/partitioned_matrix_view_2_d_d.cc
+# internal/ceres/generated/partitioned_matrix_view_4_4_2.cc
+# internal/ceres/generated/partitioned_matrix_view_4_4_3.cc
+# internal/ceres/generated/partitioned_matrix_view_4_4_4.cc
+# internal/ceres/generated/partitioned_matrix_view_4_4_d.cc
# internal/ceres/generated/schur_eliminator_2_2_2.cc
# internal/ceres/generated/schur_eliminator_2_2_3.cc
# internal/ceres/generated/schur_eliminator_2_2_4.cc
@@ -249,6 +270,7 @@ set(SRC
# internal/ceres/generated/schur_eliminator_2_4_3.cc
# internal/ceres/generated/schur_eliminator_2_4_4.cc
# internal/ceres/generated/schur_eliminator_2_4_d.cc
+# internal/ceres/generated/schur_eliminator_2_d_d.cc
# internal/ceres/generated/schur_eliminator_4_4_2.cc
# internal/ceres/generated/schur_eliminator_4_4_3.cc
# internal/ceres/generated/schur_eliminator_4_4_4.cc
@@ -287,23 +309,18 @@ if(WITH_OPENMP)
)
endif()
-if(MSVC10)
- add_definitions(
- -D"CERES_HASH_NAMESPACE_START=namespace std {"
- -D"CERES_HASH_NAMESPACE_END=}"
- )
+include(CheckIncludeFileCXX)
+CHECK_INCLUDE_FILE_CXX(unordered_map UNORDERED_MAP_IN_STD_NAMESPACE)
+if(UNORDERED_MAP_IN_STD_NAMESPACE)
+ ADD_DEFINITIONS(-DCERES_STD_UNORDERED_MAP)
else()
- add_definitions(
- -D"CERES_HASH_NAMESPACE_START=namespace std { namespace tr1 {"
- -D"CERES_HASH_NAMESPACE_END=}}"
- )
-endif()
-
-if(APPLE)
- if(CMAKE_OSX_DEPLOYMENT_TARGET STREQUAL "10.5")
- add_definitions(
- -DCERES_NO_TR1
- )
+ CHECK_INCLUDE_FILE_CXX("tr1/unordered_map" UNORDERED_MAP_IN_TR1_NAMESPACE)
+ if(UNORDERED_MAP_IN_TR1_NAMESPACE)
+ ADD_DEFINITIONS(-DCERES_TR1_UNORDERED_MAP)
+ else()
+ MESSAGE("-- Unable to find <unordered_map> or <tr1/unordered_map>. ")
+ MESSAGE("-- Replacing unordered_map/set with map/set (warning: slower!)")
+ ADD_DEFINITIONS(-DCERES_NO_UNORDERED_MAP)
endif()
endif()
diff --git a/extern/libmv/third_party/ceres/ChangeLog b/extern/libmv/third_party/ceres/ChangeLog
index 6bb3306..2bd4206 100644
--- a/extern/libmv/third_party/ceres/ChangeLog
+++ b/extern/libmv/third_party/ceres/ChangeLog
@@ -1,638 +1,684 @@
-commit 682cd3c27864ba6d67ca81890760a5f697f21d63
-Author: Keir Mierle <mierle at gmail.com>
-Date: Tue Sep 3 14:28:32 2013 -0700
-
- Update version history with shared libs changes
-
- Change-Id: Iafd55087bc5eef4c15c3b544222147aa99df7690
-
-commit 340d7c1415f144ca335ec1e87832c3f41d5d515b
-Author: Keir Mierle <mierle at gmail.com>
-Date: Tue Sep 3 13:50:03 2013 -0700
-
- Update version history with miniglog fix
-
- Change-Id: Ic69f4994259e05fa88548b957146a1aac73b7af7
-
-commit ac061c0f2334868e671f26d24e34a14c77fac716
-Author: Keir Mierle <mierle at gmail.com>
-Date: Tue Sep 3 13:03:28 2013 -0700
+commit 33e01b9c5e1416fe29c55ac0332cdca21c053c83
+Author: Sameer Agarwal <sameeragarwal at google.com>
+Date: Wed Nov 27 10:24:03 2013 -0800
- Cleanups in logging.h
+ Rename LinearSolverTerminationType enums.
- Thanks to Scott Ettinger for the patch this is based off of,
- which restores the NDK build.
+ This increases clarity, drops redundant enums and makes things
+ cleaner all around.
- Change-Id: I8036dc1388438a4940e6f4ae297162902afd8d3a
+ Change-Id: I761f195ddf17ea6bd8e4e55bf5a72863660c4c3b
-commit 0338f9a8e69582a550ef6d128e447779536d623c
+commit 068437eb89d495d905465544ccd442efef457b04
Author: Sameer Agarwal <sameeragarwal at google.com>
-Date: Mon Sep 2 22:28:40 2013 -0700
+Date: Wed Nov 27 07:05:57 2013 -0800
- ITERATIVE_SCHUR works with no f-blocks.
-
- When the Schur complement is of size zero,
- i.e. none of the parameter blocks interact
- with each other, the ITERATIVE_SCHUR linear
- solver crashes due to some checks that are
- triggered in the SCHUR_JACOBI preconditioner.
+ Pipe minimizer termination messages to Solver::Summary.
- This patch adds logic to detect this condition
- and to deal with it and adds tests that verify
- the fix.
+ All minimizer termination messages are now available as
+ Solver::Summary::error.
- Thanks to Soohyun Bae for reporting this bug.
+ This is part of the ongoing refactoring or
- Change-Id: If29ddf32463cbb1960414fff0e29bbf0d2ee7989
+ Change-Id: I4514c3c042645bbd1471bcde9bd3dbf81d9ee8b0
-commit 263de47419167786c9ab6d93fa2f3e32e8e75fe1
-Author: Taylor Braun-Jones <taylor at braun-jones.org>
-Date: Thu Aug 29 10:33:29 2013 -0400
+commit 89a592f410fb6f80c03dea84b6b9f1a10bea36c1
+Author: Sameer Agarwal <sameeragarwal at google.com>
+Date: Tue Nov 26 11:35:49 2013 -0800
- Incorporate RHEL build fixes from Brian Pitts
+ LinearSolver::Summary::status -> LinearSolver::Summary::message.
- CMake build fixed so that versioned shared libraries are installed
- (along with .so symlinks)
+ And a bunch of minor lint cleanups as they showed up.
- Change-Id: Ibbaea9d37d17754cb8c3cd36fc17d015ca7d2a57
+ Change-Id: I430a6b05710923c72daf6a5df4dfcd16fbf44b3a
-commit 6b4131993ec0db6c850bb2ae07ba8793dbab3e39
+commit b16e118b96c55451c0d8556f3c5b52ad36b69cac
Author: Sameer Agarwal <sameeragarwal at google.com>
-Date: Mon Aug 26 00:02:50 2013 -0700
+Date: Mon Nov 25 05:47:43 2013 -0800
- Update spec file
+ Better error checking and reporting for linear solvers.
- Change-Id: Id6426d7cad41cde2cbab411964ac013d724a066c
-
-commit c24a4ec6fb6202d1f6a576f211b99fbe9c9906ef
-Author: Sameer Agarwal <sameeragarwal at google.com>
-Date: Fri Aug 23 06:49:22 2013 -0700
-
- Cmake refactoring
+ A lot of error checking cruft has accumulated over the years
+ in the various linear solvers. This change makes the error reporting
+ more robust and consistent across the various solvers.
- 1. Use CMake FindLAPACK and FindBLAS Modules.
- 2. Remove SEARCH_HEADERS and SEARCH_LIBS and replace them with
- CMAKE variables. This
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list