blender/extern/ceres/ChangeLog

660 lines
25 KiB
Plaintext
Raw Normal View History

commit aef9c9563b08d5f39eee1576af133a84749d1b48
Author: Alessandro Gentilini <agentilini@gmail.com>
Date: Tue Oct 6 20:43:45 2015 +0200
Add test for Bessel functions.
Change-Id: Ief5881e8027643d7ef627e60a88fdbad17f3d884
commit 49c86018e00f196c4aa9bd25daccb9919917efee
Author: Alessandro Gentilini <agentilini@gmail.com>
Date: Wed Sep 23 21:59:44 2015 +0200
Add Bessel functions in order to use them in residual code.
See "How can I use the Bessel function in the residual function?" at
https://groups.google.com/d/msg/ceres-solver/Vh1gpqac8v0/NIK1EiWJCAAJ
Change-Id: I3e80d9f9d1cadaf7177076e493ff46ace5233b76
commit dfb201220c034fde00a242d0533bef3f73b2907d
Author: Simon Rutishauser <simon.rutishauser@pix4d.com>
Date: Tue Oct 13 07:33:58 2015 +0200
Make miniglog threadsafe on non-windows system by using
localtime_r() instead of localtime() for time formatting
Change-Id: Ib8006c685cd8ed4f374893bef56c4061ca2c9747
commit 41455566ac633e55f222bce7c4d2cb4cc33d5c72
Author: Alex Stewart <alexs.mac@gmail.com>
Date: Mon Sep 28 22:43:42 2015 +0100
Remove link-time optimisation (LTO).
- On GCC 4.9+ although GCC supports LTO, it requires use of the
non-default gcc-ar & gcc-ranlib. Whilst we can ensure Ceres is
compiled with these, doing so with GCC 4.9 causes multiple definition
linker errors of static ints inside Eigen when compiling the tests
and examples when they are not also built with LTO.
- On OS X (Xcode 6 & 7) after the latest update to gtest, if LTO
is used when compiling the tests (& examples), two tests fail
due to typeinfo::operator== (things are fine if only Ceres itself is
compiled with LTO).
- This patch disables LTO for all compilers. It should be revisited when
the performance is more stable across our supported compilers.
Change-Id: I17b52957faefbdeff0aa40846dc9b342db1b02e3
commit 89c40005bfceadb4163bd16b7464b3c2ce740daf
Author: Alex Stewart <alexs.mac@gmail.com>
Date: Sun Sep 27 13:37:26 2015 +0100
Only use LTO when compiling Ceres itself, not tests or examples.
- If Ceres is built as a shared library, and LTO is enabled for Ceres
and the tests, then type_info::operator==() incorrectly returns false
in gtests' CheckedDowncastToActualType() in the following tests:
-- levenberg_marquardt_strategy_test.
-- gradient_checking_cost_function_test.
on at least Xcode 6 & 7 as reported here:
https://github.com/google/googletest/issues/595.
- This does not appear to be a gtest issue, but is perhaps an LLVM bug
or an RTTI shared library issue. Either way, disabling the use of
LTO when compiling the test application resolves the issue.
- Allow LTO to be enabled for GCC, if it is supported.
- Add CMake function to allow easy appending to target properties s/t
Ceres library-specific compile flags can be iteratively constructed.
Change-Id: I923e6aae4f7cefa098cf32b2f8fc19389e7918c9
commit 0794f41cca440f7f65d9a44e671f66f6e498ef7c
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Sat Sep 26 14:10:15 2015 -0700
Documentation updates.
1. Fix a typo in the Trust Region algorithm.
2. Add ARL in the list of users.
3. Update the version history.
Change-Id: Ic286e8ef1a71af07f3890b7592dd3aed9c5f87ce
commit 90e32a8dc437dfb0e6747ce15a1f3193c13b7d5b
Author: Alex Stewart <alexs.mac@gmail.com>
Date: Mon Sep 21 21:08:25 2015 +0100
Use old minimum iOS version flags on Xcode < 7.0.
- The newer style, which are more specific and match the SDK names
are not available on Xcode < 7.0.
Change-Id: I2f07a0365183d2781157cdb05fd49b30ae001ac5
commit 26cd5326a1fb99ae02c667eab9942e1308046984
Author: Alex Stewart <alexs.mac@gmail.com>
Date: Mon Sep 21 10:16:01 2015 +0100
Add gtest-specific flags when building/using as a shared library.
- Currently these flags are only used to define the relevant DLL export
prefix for Windows.
Change-Id: I0c05207b512cb4a985390aefc779b91febdabb38
commit c4c79472112a49bc1340da0074af2d15b1c89749
Author: Alex Stewart <alexs.mac@gmail.com>
Date: Sun Sep 20 18:26:59 2015 +0100
Clean up iOS.cmake to use xcrun/xcodebuild & libtool.
- Substantial cleanup of iOS.cmake to use xcrun & xcodebuild to
determine the SDK & tool paths.
- Use libtool -static to link libraries instead of ar + ranlib, which
is not compatible with Xcode 7+, this change should be backwards
compatible to at least Xcode 6.
- Force locations of unordered_map & shared_ptr on iOS to work around
check_cxx_source_compiles() running in a forked CMake instance without
access to the variables (IOS_PLATFORM) defined by the user.
- Minor CMake style updates.
Change-Id: I5f83a60607db34d461ebe85f9dce861f53d98277
commit 155765bbb358f1d19f072a4b54825faf1c059910
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Wed Sep 16 06:56:08 2015 -0700
Import the latest version of gtest and gmock.
Change-Id: I4b686c44bba823cab1dae40efa99e31340d2b52a
commit 0c4647b8f1496c97c6b9376d9c49ddc204aa08dd
Author: Alex Stewart <alexs.mac@gmail.com>
Date: Wed Sep 16 20:01:11 2015 +0100
Remove FAQ about increasing inlining threshold for Clang.
- Changing the inlining threshold for Clang as described has a minimal
effect on user performance.
- The problem that originally prompted the belief that it did was
due to an erroneous CXX flag configuration (in user code).
Change-Id: I03017241c0f87b8dcefb8c984ec3b192afd97fc2
commit f4b768b69afcf282568f9ab3a3f0eb8078607468
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Mon Sep 14 13:53:24 2015 -0700
Lint changes from William Rucklidge
Change-Id: I0dac2549a8fa2bfd12f745a8d8a0db623b7ec1ac
commit 5f2f05c726443e35767d677daba6d25dbc2d7ff8
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Fri Sep 11 22:19:38 2015 -0700
2014-01-13 19:17:54 +00:00
Refactor system_test
1. Move common test infrastructure into test_util.
2. system_test now only contains powells function.
3. Add bundle_adjustment_test.
2014-01-13 19:17:54 +00:00
Instead of a single function which computes everything,
there is now a test for each solver configuration which
uses the reference solution computed by the fixture.
2014-01-13 19:17:54 +00:00
Change-Id: I16a9a9a83a845a7aaf28762bcecf1a8ff5aee805
2014-01-13 19:17:54 +00:00
commit 1936d47e213142b8bf29d3f548905116092b093d
Author: Alex Stewart <alexs.mac@gmail.com>
Date: Tue Sep 8 23:27:42 2015 +0100
Revert increased inline threshold (iff Clang) to exported Ceres target.
- Increasing the inline threshold results in very variable performance
improvements, and could potentially confuse users if they are trying
to set the inline threshold themselves.
- As such, we no longer export our inline threshold configuration for
Clang, but instead document how to change it in the FAQs.
Change-Id: I88e2e0001e4586ba2718535845ed1e4b1a5b72bc
commit a66d89dcda47cefda83758bfb9e7374bec4ce866
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Sat Sep 5 16:50:20 2015 -0700
Get ready for 1.11.0RC1
Update version numbers.
Drop CERES_VERSION_ABI macro.
Change-Id: Ib3eadabb318afe206bb196a5221b195d26cbeaa0
commit 1ac3dd223c179fbadaed568ac532af4139c75d84
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Sat Sep 5 15:30:01 2015 -0700
Fix a bug in CompressedRowSparseMatrix::AppendRows
The test for CompressedRowSparseMatrix::AppendRows tries to add
a matrix of size zero, which results in an invalid pointer deferencing
even though that pointer is never written to.
Change-Id: I97dba37082bd5dad242ae1af0447a9178cd92027
commit 67622b080c8d37b5e932120a53d4ce76b80543e5
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Sat Sep 5 13:18:38 2015 -0700
Fix a pointer access bug in Ridders' algorithm.
A pointer to an Eigen matrix was being used as an array.
Change-Id: Ifaea14fa3416eda5953de49afb78dc5a6ea816eb
commit 5742b7d0f14d2d170054623ccfee09ea214b8ed9
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Wed Aug 26 09:24:33 2015 -0700
Improve performance of SPARSE_NORMAL_CHOLESKY + dynamic_sparsity
The outer product computation logic in SparseNormalCholeskySolver
does not work well with dynamic sparsity. The overhead of computing
the sparsity pattern of the normal equations is only amortized if
the sparsity is constant. If the sparsity can change from call to call
SparseNormalCholeskySolver will actually be more expensive.
For Eigen and for CXSparse we now explicitly compute the normal
equations using their respective matrix-matrix product routines and solve.
Change-Id: Ifbd8ed78987cdf71640e66ed69500442526a23d4
commit d0b6cf657d6ef0dd739e958af9a5768f2eecfd35
Author: Keir Mierle <mierle@gmail.com>
Date: Fri Sep 4 18:43:41 2015 -0700
Fix incorrect detect structure test
Change-Id: I7062f3639147c40b57947790d3b18331a39a366b
commit 0e8264cc47661651a11e2dd8570c210082963545
Author: Alex Stewart <alexs.mac@gmail.com>
Date: Sat Aug 22 16:23:05 2015 +0100
Add increased inline threshold (iff Clang) to exported Ceres target.
- When compiled with Clang, Ceres and all of the examples are compiled
with an increased inlining-threshold, as the default value can result
in poor Eigen performance.
- Previously, client code using Ceres would typically not use an
increased inlining-threshold (unless the user has specifically added
it themselves). However, increasing the inlining threshold can result
in significant performance improvements in auto-diffed CostFunctions.
- This patch adds the inlining-threshold flags to the interface flags
for the Ceres CMake target s/t any client code using Ceres (via
CMake), and compiled with Clang, will now be compiled with the same
increased inlining threshold as used by Ceres itself.
Change-Id: I31e8f1abfda140d22e85bb48aa57f028a68a415e
commit a1b3fce9e0a4141b973f6b4dd9b08c4c13052d52
Author: Alex Stewart <alexs.mac@gmail.com>
Date: Mon Aug 31 14:14:56 2015 +0100
Add optional export of Ceres build directory to new features list.
Change-Id: I6f1e42b41957ae9cc98fd9dcd1969ef64c4cd96f
commit e46777d8df068866ef80902401a03e29348d11ae
Author: Alex Stewart <alexs.mac@gmail.com>
Date: Mon Aug 31 12:41:54 2015 +0100
Credit reporters of buildsystem bugs in version history.
Change-Id: I16fe7973534cd556d97215e84268ae0b8ec4e11a
commit 01548282cb620e5e3ac79a63a391cd0afd5433e4
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Sun Aug 30 22:29:27 2015 -0700
Update the version history.
Change-Id: I29873bed31675e0108f1a44f53f7bc68976b7f98
commit 2701429f770fce69ed0c77523fa43d7bc20ac6dc
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Sun Aug 30 21:33:57 2015 -0700
Use Eigen::Dynamic instead of ceres::DYNAMIC in numeric_diff.h
Change-Id: Iccb0284a8fb4c2160748dfae24bcd595f1d4cb5c
commit 4f049db7c2a3ee8cf9910c6eac96be6a28a5999c
Author: Tal Ben-Nun <tbennun@gmail.com>
Date: Wed May 13 15:43:51 2015 +0300
Adaptive numeric differentiation using Ridders' method.
This method numerically computes function derivatives in different
scales, extrapolating between intermediate results to conserve function
evaluations. Adaptive differentiation is essential to produce accurate
results for functions with noisy derivatives.
Full changelist:
-Created a new type of NumericDiffMethod (RIDDERS).
-Implemented EvaluateRiddersJacobianColumn in NumericDiff.
-Created unit tests with f(x) = x^2 + [random noise] and
f(x) = exp(x).
Change-Id: I2d6e924d7ff686650272f29a8c981351e6f72091
commit 070bba4b43b4b7449628bf456a10452fd2b34d28
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Tue Aug 25 13:37:33 2015 -0700
Lint fixes from William Rucklidge
Change-Id: I719e8852859c970091df842e59c44e02e2c65827
commit 887a20ca7f02a1504e35f7cabbdfb2e0842a0b0b
Author: Alex Stewart <alexs.mac@gmail.com>
Date: Wed Aug 12 21:41:43 2015 +0100
Build position independent code when compiling Ceres statically.
- Previously, when Ceres was built as a static library we did not
compile position independent code. This means that the resulting
static library could not be linked against shared libraries, but
could be used by executables.
- To enable the use of a static Ceres library by other shared libraries
as reported in [1], the static library must be generated from
position independent code (except on Windows, where PIC does not
apply).
[1] https://github.com/Itseez/opencv_contrib/pull/290#issuecomment-130389471
Change-Id: I99388f1784ece688f91b162d009578c5c97ddaf6
commit 860bba588b981a5718f6b73e7e840e5b8757fe65
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Tue Aug 25 09:43:21 2015 -0700
Fix a bug in DetectStructure
The logic for determing static/dynamic f-block size in
DetectStructure was broken in a corner case, where the very first
row block which was used to initialize the f_block_size contained
more than one f blocks of varying sizes. The way the if block
was structured, no iteration was performed on the remaining
f-blocks and the loop failed to detect that the f-block size
was actually changing.
If in the remaining row blocks, there were no row blocks
with varying f-block sizes, the function will erroneously
return a static f-block size.
Thanks to Johannes Schonberger for providing a reproduction for this
rather tricky corner case.
Change-Id: Ib442a041d8b7efd29f9653be6a11a69d0eccd1ec
commit b0cbc0f0b0a22f01724b7b647a4a94db959cc4e4
Author: Johannes Schönberger <hannesschoenberger@gmail.com>
Date: Thu Aug 20 14:21:30 2015 -0400
Reduce memory footprint of SubsetParameterization
Change-Id: If113cb4696d5aef3e50eed01fba7a3d4143b7ec8
commit ad2a99777786101411a971e59576ca533a297013
Author: Sergey Sharybin <sergey.vfx@gmail.com>
Date: Sat Aug 22 11:18:45 2015 +0200
Fix for reoder program unit test when built without suitesparse
This commit fixes failure of reorder_program_test when Ceres is built without
any suitesparse.
Change-Id: Ia23ae8dfd20c482cb9cd1301f17edf9a34df3235
commit 4bf3868beca9c17615f72ec03730cddb3676acaa
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Sun Aug 9 15:24:45 2015 -0700
Fix a bug in the Schur eliminator
The schur eliminator treats rows with e blocks and row with
no e blocks separately. The template specialization logic only
applies to the rows with e blocks.
So, in cases where the rows with e-blocks have a fixed size f-block
but the rows without e-blocks have f-blocks of varying sizes,
DetectStructure will return a static f-block size, but we need to be
careful that we do not blindly use that static f-block size everywhere.
This patch fixes a bug where such care was not being taken, where
it was assumed that the static f-block size could be assumed for all
f-block sizes.
A new test is added, which triggers an exception in debug mode. In
release mode this error does not present itself, due to a peculiarity
of the way Eigen works.
Thanks to Werner Trobin for reporting this bug.
Change-Id: I8ae7aabf8eed8c3f9cf74b6c74d632ba44f82581
commit 1635ce726078f00264b89d7fb6e76fd1c2796e59
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Wed Aug 19 00:26:02 2015 -0700
Fix a bug in the reordering code.
When the user provides an ordering which starts at a non-zero group id,
or has gaps in the groups, then CAMD, the algorithm used to reorder
the program can crash or return garbage results.
The solution is to map the ordering into grouping constraints, and then
to re-number the groups to be contiguous using a call to
MapValuesToContiguousRange. This was already done for CAMD based
ordering for Schur type solvers, but was not done for SPARSE_NORMAL_CHOLESKY.
Thanks to Bernhard Zeisl for not only reporting the bug but also
providing a reproduction.
Change-Id: I5cfae222d701dfdb8e1bda7f0b4670a30417aa89
commit 4c3f8987e7f0c51fd367cf6d43d7eb879e79589f
Author: Simon Rutishauser <simon.rutishauser@pix4d.com>
Date: Thu Aug 13 11:10:44 2015 +0200
Add missing CERES_EXPORT to ComposedLoss
Change-Id: Id7db388d41bf53e6e5704039040c9d2c6bf4c29c
commit 1a740cc787b85b883a0703403a99fe49662acb79
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Tue Aug 11 18:08:05 2015 -0700
Add the option to use numeric differentiation to nist and more_garbow_hillstrom
Change-Id: If0a5caef90b524dcf5e2567c5b681987f5459401
commit ea667ede5c038d6bf3d1c9ec3dbdc5072d1beec6
Author: Alex Stewart <alexs.mac@gmail.com>
Date: Sun Aug 9 16:56:13 2015 +0100
Fix EIGENSPARSE option help s/t it displays in CMake ncurses GUI.
- Shorten description for EIGENSPARSE to a single line, as otherwise
it is not correctly displayed in the ncurses CMake GUI.
- Made explicit in description that this results in an LGPL licensed
version of Ceres (this is also made clear in the CMake log output if
EIGENSPARSE is enabled).
Change-Id: I11678a9cbc7a817133c22128da01055a3cb8a26d
commit a14ec27fb28ab2e8d7f1c9d88e41101dc6c0aab5
Author: Richard Stebbing <richie.stebbing@gmail.com>
Date: Fri Aug 7 08:42:03 2015 -0700
Fix SparseNormalCholeskySolver with dynamic sparsity.
The previous implementation incorrectly cached the outer product matrix
pattern even when `dynamic_sparsity = true`.
Change-Id: I1e58315a9b44f2f457d07c56b203ab2668bfb8a2
commit 3dd7fced44ff00197fa9fcb1f2081d12be728062
Author: Alex Stewart <alexs.mac@gmail.com>
Date: Sun Aug 9 16:38:50 2015 +0100
Remove legacy dependency detection macros.
- Before the new CMake buildsystem in 1.8, Ceres used non-standard
HINTS variables for dependencies. For backwards compatibility CMake
macros were added to translate these legacy variables into the new
(standard) variables.
- As it has now been multiple releases since the legacy variables
were used and they no longer appear in any of the documentation
support for them has now expired.
Change-Id: I2cc72927ed711142ba7943df334ee008181f86a2
commit 8b32e258ccce1eed2a50bb002add16cad13aff1e
Author: Alex Stewart <alexs.mac@gmail.com>
Date: Sun Aug 9 15:42:39 2015 +0100
Fix failed if() condition expansion if gflags is not found.
- If a CMake-ified version of gflags is not detected, then
gflags_LIBRARIES is not set and the TARGET condition within a
multiconditional if() statement prevents configuration.
Change-Id: Ia92e97523d7a1478ab36539726b9540d7cfee5d0
commit cc8d47aabb9d63ba4588ba7295058a6191c2df83
Author: Alex Stewart <alexs.mac@gmail.com>
Date: Sun Aug 9 15:18:42 2015 +0100
Update all CMake to lowercase function name style.
- Updated to new CMake style where function names are all lowercase,
this will be backwards compatible as CMake function names are
case insensitive.
- Updated using Emacs' M-x unscreamify-cmake-buffer.
Change-Id: If7219816f560270e59212813aeb021353a64a0e2
commit 1f106904c1f47460c35ac03258d6506bb2d60838
Author: Alex Stewart <alexs.mac@gmail.com>
Date: Sun Aug 9 14:55:02 2015 +0100
Update minimum iOS version to 7.0 for shared_ptr/unordered_map.
- In order to correctly detect shared_ptr (& unordered_map)
the iOS version must be >= 7.0 (Xcode 5.0+). This only affects the
SIMULATOR(64) platform builds, as the OS (device) build uses the
latest SDK which is now likely 8.0+.
Change-Id: Iefec8f03408b8cdc7a495f442ebba081f800adb0
commit 16ecd40523a408e7705c9fdb0e159cef2007b8ab
Author: Alex Stewart <alexs.mac@gmail.com>
Date: Sat Aug 8 17:32:31 2015 +0100
Fix bug in gflags' <= 2.1.2 exported CMake configuration.
- gflags <= 2.1.2 has a bug in its exported gflags-config.cmake:
https://github.com/gflags/gflags/issues/110 whereby it sets
gflags_LIBRARIES to a non-existent 'gflags' target.
- This causes linker errors if gflags is installed in a non-standard
location (as otherwise CMake resolves gflags to -lgflags which
links if gflags is installed somewhere on the current path).
- We now check for this case, and search for the correct gflags imported
target and update gflags_LIBRARIES to reference it if found, otherwise
proceed on to the original manual search to try to find gflags.
Change-Id: Iceccc3ee53c7c2010e41cc45255f966e7b13d526
commit 56be8de007dfd65ed5a31c795eb4a08ad765f411
Author: Alex Stewart <alexs.mac@gmail.com>
Date: Thu Jun 25 21:31:00 2015 +0100
Add docs for new CXX11 option & mask option for Windows.
- The CXX11 option has no effect on Windows, as there, any new C++11
features are enabled by default, as such to avoid confusion we only
present the option for non-Windows.
Change-Id: I38925ae3bb8c16682d404468ba95c611a519b9b9
commit cf863b6415ac4dbf3626e70adeac1ac0f3d87ee5
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Thu Aug 6 14:52:18 2015 -0700
Remove the spec file needed for generating RPMs.
Now that ceres is part of RawHide, there is no need to carry
this spec file with the ceres distribution.
Change-Id: Icc400b9874ba05ba05b353e2658f1de94c72299e
commit 560940fa277a469c1ab34f1aa303ff1af9c3cacf
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Sat Jul 11 22:21:31 2015 -0700
A refactor of the cubic interpolation code
1. Push the boundary handling logic into the underlying array
object. This has two very significant impacts:
a. The interpolation code becomes extremely simple to write
and to test.
b. The user has more flexibility in implementing how out of bounds
values are handled. We provide one default implementation.
Change-Id: Ic2f6cf9257ce7110c62e492688e5a6c8be1e7df2
commit dfdf19e111c2b0e6daeb6007728ec2f784106d49
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Wed Aug 5 15:20:57 2015 -0700
Lint cleanup from Jim Roseborough
Change-Id: Id6845c85644d40e635ed196ca74fc51a387aade4
commit 7444f23ae245476a7ac8421cc2f88d6947fd3e5f
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Mon Aug 3 12:22:44 2015 -0700
Fix a typo in small_blas.h
The reason this rather serious looking typo has not
caused any problems uptil now is because NUM_ROW_B is
computed but never actually used.
Thanks to Werner Trobin for pointing this out.
Change-Id: Id2b4d9326ec21baec8a85423e3270aefbafb611e
commit 5a48b92123b30a437f031eb24b0deaadc8f60d26
Author: Alex Stewart <alexs.mac@gmail.com>
Date: Sat Jul 4 17:59:52 2015 +0100
Export Ceres build directory into local CMake package registry.
- Optionally use CMake's export() functionality to export the Ceres
build directory as a package into the local CMake package registry.
- This enables the detection & use of Ceres from CMake *without*
requiring that Ceres be installed.
Change-Id: Ib5a7588446f490e1b405878475b6b1dd13accd1f
commit d9790e77894ea99d38137d359d6118315b2d1601
Author: Sameer Agarwal <sameeragarwal@google.com>
Date: Sun Jul 12 19:39:47 2015 -0700
Add ProductParameterization
Often a parameter block is the Cartesian product of a number of
manifolds. For example, a rigid transformation SE(3) = SO(3) x R^3
In such cases, where you have the local parameterization
of the individual manifolds available,
ProductParameterization can be used to construct a local
parameterization of the cartesian product.
Change-Id: I4b5bcbd2407a38739c7725b129789db5c3d65a20
commit 7b4fb69dad49eaefb5d2d47ef0d76f48ad7fef73
Author: Alex Stewart <alexs.mac@gmail.com>
Date: Sun Jun 28 21:43:46 2015 +0100
Cleanup FindGflags & use installed gflags CMake config if present.
- Split out gflags namespace detection methods:
check_cxx_source_compiles() & regex, into separate functions.
- Use installed/exported gflags CMake configuration (present for
versions >= 2.1) if available, unless user expresses a preference not
to, or specifies search directories, in which case fall back to manual
search for components.
-- Prefer installed gflags CMake configurations over exported gflags
build directories on all OSs.
- Remove custom version of check_cxx_source_compiles() that attempted
to force the build type of the test project. This only worked for
NMake on Windows, not MSVC as msbuild ignored our attempts to force
the build type. Now we always use the regex method on Windows if
we cannot find an installed gflags CMake configuration which works
even on MSVC by bypassing msbuild.
- Add default search paths for gflags on Windows.
Change-Id: I083b267d97a7a5838a1314f3d41a61ae48d5a2d7
commit b3063c047906d4a44503dc0187fdcbbfcdda5f38
Author: Alex Stewart <alexs.mac@gmail.com>
Date: Wed Jul 15 20:56:56 2015 +0100
Add default glog install location on Windows to search paths.
Change-Id: I083d368be48986e6780c11460f5a07b2f3b6c900