commit 8590e6e8e057adba4ec0083446d00268565bb444
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Thu Oct 27 12:29:37 2016 -0700

    Remove two checks from rotation.h
    
    This allows rotation.h to remove its dependency on glog.
    
    Change-Id: Ia6aede93ee51a4bd4039570dc8edd100a7045329

commit e892499e8d8977b9178a760348bdd201ec5f3489
Author: Je Hyeong Hong <jhh37@outlook.com>
Date:   Tue Oct 18 22:49:11 2016 +0100

    Relax the tolerance in QuaternionParameterizationTestHelper.
    
    This commit relaxes the tolerance value for comparing between the actual
    local matrix and the expected local matrix. Without this fix,
    EigenQuaternionParameterization.ZeroTest could fail as the difference
    exactly matches the value of std::numeric_limits<double>::epsilon().
    
    Change-Id: Ic4d3f26c0acdf5f16fead80dfdc53df9e7dabbf9

commit 7ed9e2fb7f1dff264c5e4fbaa89ee1c4c99df269
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Wed Oct 19 04:45:23 2016 -0700

    Occured -> Occurred.
    
    Thanks to Phillip Huebner for reporting this.
    
    Change-Id: I9cddfbb373aeb496961d08e434fe661bff4abd29

commit b82f97279682962d8c8ae1b6d9e801ba072a0ab1
Author: Je Hyeong Hong <jhh37@outlook.com>
Date:   Tue Oct 18 21:18:32 2016 +0100

    Fix a test error in autodiff_test.cc.
    
    Previously, the test for the projective camera model would fail as no
    tolerance is set in line 144. To resolve this, this commit changes
    assert_equal to assert_near.
    
    Change-Id: I6cd3379083b1a10c7cd0a9cc83fd6962bb993cc9

commit 5690b447de5beed6bdda99b7f30f372283c2fb1a
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Thu Oct 13 09:52:02 2016 -0700

    Fix documentation source for templated functions in rotation.h
    
    Change-Id: Ic1b2e6f0e6eb9914f419fd0bb5af77b66252e57c

commit 2f8f98f7e8940e465de126fb51282396f42bea20
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Thu Oct 13 09:35:18 2016 -0700

    Prepare for 1.12.0RC1
    
    Change-Id: I23eaf0b46117a01440143001b74dacfa5e57cbf0

commit 55c12d2e9569fe4aeac3ba688ac36810935a37ba
Author: Damon Kohler <damonkohler@google.com>
Date:   Wed Oct 5 16:30:31 2016 +0200

    Adds package.xml to support Catkin.
    
    Change-Id: I8ad4d36a8b036417604a54644e0bb70dd1615feb

commit 0bcce6565202f5476e40f12afc0a99eb44bd9dfb
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Mon Oct 10 23:30:42 2016 -0700

    Fix tabs in Android.mk
    
    Change-Id: Ie5ab9a8ba2b727721565e1ded242609b6df5f8f5

commit e6ffe2667170d2fc435443685c0163396fc52d7b
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Mon Oct 10 22:47:08 2016 -0700

    Update the version history.
    
    Change-Id: I9a57b0541d6cebcb695ecb364a1d4ca04ea4e06c

commit 0a4ccb7ee939ab35b22e26758401e039b033b176
Author: David Gossow <dgossow@google.com>
Date:   Wed Sep 7 21:38:12 2016 +0200

    Relaxing Jacobian matching in Gradient Checker test.
    
    Any result of an arithmetic operation on floating-point matrices
    should never be checked for strict equality with some expected
    value, due to limited floating point precision on different machines.
    This fixes some occurences of exact checks in the gradient checker
    unit test that were causing problems on some platforms.
    
    Change-Id: I48e804c9c705dc485ce74ddfe51037d4957c8fcb

commit ee44fc91b59584921c1d1c8db153fda6d633b092
Author: Je Hyeong Hong <jhh37@outlook.com>
Date:   Mon Oct 3 12:19:30 2016 +0100

    Fix an Intel compiler error in covariance_impl.cc.
    
    Intel C compiler strictly asks for parallel loops with collapse to be
    perfectly nested. Otherwise, compiling Ceres with ICC will throw an
    error at line 348 of covariance_impl.cc.
    
    Change-Id: I1ecb68e89b7faf79e4153dfe6675c390d1780db4

commit 9026d69d1ce1e0bcd21debd54a38246d85c7c6e4
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Thu Sep 22 17:20:14 2016 -0700

    Allow SubsetParameterization to hold all parameters constant
    
    1. SubsetParameterization can now be constructed such that all
    parameters are constant. This is required for it be used as part
    of a ProductParameterization to hold a part of parameter block
    constant. For example, a parameter block consisting of a rotation
    as a quaternion and a translation vector can now have a local
    parameterization where the translation part is constant and the
    quaternion part has a QuaternionParameterization associated with it.
    
    2. The check for the tangent space of a parameterization being
    positive dimensional. We were not doing this check up till now
    and the user could accidentally create parameterizations like this
    and create a problem for themselves. This will ensure that even
    though one can construct a SubsetParameterization where all
    parameters are constant, you cannot actually use it as a local
    parameterization for an entire parameter block. Which is how
    it was before, but the check was inside the SubsetParameterization
    constructor.
    
    3. Added more tests and refactored existing tests to be more
    granular.
    
    Change-Id: Ic0184a1f30e3bd8a416b02341781a9d98e855ff7

commit a36693f83da7a3fd19dce473d060231d4cc97499
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Sat Sep 17 16:31:41 2016 -0700

    Update version history
    
    Change-Id: Ib2f0138ed7a1879ca3b2173e54092f7ae8dd5c9d

commit 01e23e3d33178fdd050973666505c1080cfe04c3
Author: David Gossow <dgossow@google.com>
Date:   Thu Sep 8 12:22:28 2016 +0200

    Removing duplicate include directive.
    
    Change-Id: I729ae6501497746d1bb615cb893ad592e16ddf3f

commit 99b8210cee92cb972267537fb44bebf56f812d52
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Wed Sep 7 15:31:30 2016 -0700

    Update Android.mk to include new files.
    
    Change-Id: Id543ee7d2a65b65c868554a17f593c0a4958e873

commit 195d8d13a6a3962ac39ef7fcdcc6add0216eb8bc
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Tue Sep 6 07:12:23 2016 -0700

    Remove two DCHECKs from CubicHermiteSpline.
    
    They were present as debugging checks but were causing problems
    with the build on 32bit i386 due to numerical cancellation issues,
    where x ~ -epsilon.
    
    Removing these checks only changes the behaviour in Debug mode.
    We are already handling such small negative numbers in production
    if they occur. All that this change does is to remove the crash.
    
    https://github.com/ceres-solver/ceres-solver/issues/212
    
    Thanks to @NeroBurner and @debalance for reporting this.
    
    Change-Id: I66480e86d4fa0a4b621204f2ff44cc3ff8d01c04

commit 83041ac84f2d67c28559c67515e0e596a3f3aa20
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Fri Sep 2 19:10:35 2016 -0700

    Fix some compiler warnings.
    
    Reported by Richard Trieu.
    
    Change-Id: I202b7a7df09cc19c92582d276ccf171edf88a9fb

commit 8c4623c63a2676e79e7917bb0561f903760f19b9
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Thu Sep 1 00:05:09 2016 -0700

    Update ExpectArraysClose to use ExpectClose instead of EXPECT_NEAR
    
    The documentation for ExpectArraysClose and its implementation
    did not match.
    
    This change makes the polynomial_test not fail on 64bit AMD builds.
    
    Thanks to Phillip Huebner for reporting this.
    
    Change-Id: I503f2d3317a28d5885a34f8bdbccd49d20ae9ba2

commit 2fd39fcecb47eebce727081c9ffb8edf86c33669
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Thu Sep 1 16:05:06 2016 -0700

    FindWithDefault returns by value rather than reference.
    
    Returning by reference leads to lifetime issues with the default
    value which may go out of scope by the time it is used.
    
    Thanks to @Ardavel for reporting this, as this causes graph_test
    to fail on VS2015x64.
    
    https://github.com/ceres-solver/ceres-solver/issues/216
    
    Change-Id: I596481219cfbf7622d49a6511ea29193b82c8ba3

commit 716f049a7b91a8f3a4632c367d9534d1d9190a81
Author: Mike Vitus <vitus@google.com>
Date:   Wed Aug 31 13:38:30 2016 -0700

    Convert pose graph 2D example to glog and gflags.
    
    Change-Id: I0ed75a60718ef95199bb36f33d9eb99157d11d40

commit 46c5ce89dda308088a5fdc238d0c126fdd2c2b58
Author: David Gossow <dgossow@google.com>
Date:   Wed Aug 31 18:40:57 2016 +0200

    Fix compiler errors on some systems
    
    This fixes some signed-unsigned comparisons and a missing header
    include.
    
    Change-Id: Ieb2bf6e905faa74851bc4ac4658d2f1da24b6ecc

commit b102d53e1dd7dab132e58411183b6fffc2090590
Author: David Gossow <dgossow@google.com>
Date:   Wed Aug 31 10:21:20 2016 +0200

    Gradient checker multithreading bugfix.
    
    This is a follow-up on c/7470. GradientCheckingCostFunction calls
    callback_->SetGradientErrorDetected() in its Evaluate method,
    which will run in multiple threads simultaneously when enabling
    this option in the solver. Thus, the string append operation
    inside that method has to be protected by a mutex.
    
    Change-Id: I314ef1df2be52595370d9af05851bf6da39bb45e

commit 79a28d1e49af53f67af7f3387d07e7c9b7339433
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Wed Aug 31 06:47:45 2016 -0700

    Rename a confusingly named member of Solver::Options
    
    Solver::Options::numeric_derivative_relative_step_size to
    Solver::Options::gradient_check_numeric_derivative_relative_step_size
    
    Change-Id: Ib89ae3f87e588d4aba2a75361770d2cec26f07aa

commit 358ae741c8c4545b03d95c91fa546d9a36683677
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Wed Aug 31 06:58:41 2016 -0700

    Note that Problem::Evaluate cannot be called from an IterationCallback
    
    Change-Id: Ieabdc2d40715e6b547ab22156ba32e9c8444b7ed

commit 44044e25b14d7e623baae4505a17c913bdde59f8
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Wed Aug 31 05:50:58 2016 -0700

    Update the NumTraits for Jets
    
    1. Use AVX if EIGEN_VECTORIZE_AVX is defined.
    2. Make the cost of division same as the cost of multiplication.
    
    These are updates to the original numtraits update needed for eigen 3.3
    that Shaheen Gandhi sent out.
    
    Change-Id: Ic1e3ed7d05a659c7badc79a894679b2dd61c51b9

commit 4b6ad5d88e45ce8638c882d3e8f08161089b6dba
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Sat Aug 27 23:21:55 2016 -0700

    Use ProductParameterization in bundle_adjuster.cc
    
    Previously, when using a quaternion to parameterize the camera
    orientation, the camera parameter block was split into two
    parameter blocks. One for the rotation and another for the
    translation and intrinsics. This was to enable the use of the
    Quaternion parameterization.
    
    Now that we have a ProductParameterization which allows us
    to compose multiple parameterizations, this is no longer needed
    and we use a size 10 parameter block instead.
    
    This leads to a more than 2x improvements in the linear solver time.
    
    Change-Id: I78b8f06696f81fee54cfe1a4ae193ee8a5f8e920

commit bfc916cf1cf753b85c1e2ac037e2019ee891f6f9
Author: Shaheen Gandhi <visigoth@gmail.com>
Date:   Thu Aug 4 12:10:14 2016 -0700

    Allow ceres to be used with the latest version of Eigen
    
    Change-Id: Ief3b0f6b405484ec04ecd9ab6a1e1e5409a594c2

commit edbd48ab502aa418ad9700ee5c3ada5f9268b90a
Author: Alex Stewart <alexs.mac@gmail.com>
Date:   Sun Jul 10 14:13:51 2016 +0100

    Enable support for OpenMP in Clang if detected.
    
    - Previously we disabled OpenMP if Clang was detected, as it did not
      support it.  However as of Clang 3.8 (and potentially Xcode 8) OpenMP
      is supported.
    
    Change-Id: Ia39dac9fe746f1fc6310e08553f85f3c37349707

commit f6df6c05dd83b19fa90044106ebaca40957998ae
Author: Mike Vitus <vitus@google.com>
Date:   Thu Aug 18 19:27:43 2016 -0700

    Add an example for modeling and solving a 3D pose graph SLAM problem.
    
    Change-Id: I750ca5f20c495edfee5f60ffedccc5bd8ba2bb37

commit ac3b8e82175122e38bafaaa9cd419ba3cee11087
Author: David Gossow <dgossow@google.com>
Date:   Fri Apr 29 16:07:11 2016 +0200

    Gradient checking cleanup and local parameterization bugfix
    
    Change the Ceres gradient checking API to make is useful for
    unit testing, clean up code duplication and fix interaction between
    gradient checking and local parameterizations.
    
    There were two gradient checking implementations, one being used
    when using the check_gradients flag in the Solver, the other
    being a standalone class. The standalone version was restricted
    to cost functions with fixed parameter sizes at compile time, which
    is being lifted here. This enables it to be used inside the
    GradientCheckingCostFunction as well.
    
    In addition, this installs new hooks in the Solver to ensure
    that Solve will fail if any incorrect gradients are detected. This
    way, you can set the check_gradient flags to true and detect
    errors in an automated way, instead of just printing error information
    to the log. The error log is now also returned in the Solver summary
    instead of being printed directly. The user can then decide what to
    do with it. The existing hooks for user callbacks are used for
    this purpose to keep the internal API changes minimal and non-invasive.
    
    The last and biggest change is the way the the interaction between
    local parameterizations and the gradient checker works. Before,
    local parameterizations would be ignored by the checker. However,
    if a cost function does not compute its Jacobian along the null
    space of the local parameterization, this wil not have any effect
    on the solver, but would result in a gradient checker error.
    With this change, the Jacobians are multiplied by the Jacobians
    of the respective local parameterization and thus being compared
    in the tangent space only.
    
    The typical use case for this are quaternion parameters, where
    a cost function will typically assume that the quaternion is
    always normalized, skipping the correct computation of the Jacobian
    along the normal to save computation cost.
    
    Change-Id: I5e1bb97b8a899436cea25101efe5011b0bb13282

commit d4264ec10d9a270b53b5db86c0245ae8cbd2cf18
Author: Mike Vitus <vitus@google.com>
Date:   Wed Aug 17 13:39:05 2016 -0700

    Add a quaternion local parameterization for Eigen's quaternion element convention.
    
    Change-Id: I7046e8b24805313c5fb6a767de581d0054fcdb83

commit fd7cab65ef30fbc33612220abed52dd5073413c4
Author: Mike Vitus <vitus@google.com>
Date:   Wed Aug 10 09:29:12 2016 -0700

    Fix typos in the pose graph 2D example.
    
    Change-Id: Ie024ff6b6cab9f2e8011d21121a91931bd987bd1

commit 375dc348745081f89693607142d8b6744a7fb6b4
Author: Mike Vitus <vitus@google.com>
Date:   Wed Aug 3 18:51:16 2016 -0700

    Remove duplicate entry for the NIST example in the docs.
    
    Change-Id: Ic4e8f9b68b77b5235b5c96fe588cc56866dab759

commit f554681bf22d769abc12dd6d346ef65f9bb22431
Author: Mike Vitus <vitus@google.com>
Date:   Mon Jul 25 18:30:48 2016 -0700

    Add an example for modeling and solving a 2D pose graph SLAM problem.
    
    Change-Id: Ia89b12af7afa33e7b1b9a68d69cf2a0b53416737

commit e1bcc6e0f51512f43aa7bfb7b0d62f7ac1d0cd4b
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Wed May 18 07:52:48 2016 -0700

    Add additional logging for analyzing orderings
    
    Change-Id: Ic68d2959db35254e2895f11294fb25de4d4b8a81

commit 16980b4fec846f86910c18772b8145bcb55f4728
Author: Mike Vitus <vitus@google.com>
Date:   Fri Jul 15 13:37:49 2016 -0700

    Delete the remove_definitons command from sampled_functions
    CMakeLists.txt because it will be inherited from the top level examples
    CMakeLists.txt.
    
    Change-Id: I25593587df0ae84fd8ddddc589bc2a13f3777427

commit a04490be97800e78e59db5eb67fa46226738ffba
Author: Mike Vitus <vitus@google.com>
Date:   Thu Jul 14 10:10:13 2016 -0700

    Add readme for the sampled_function example.
    
    Change-Id: I9468b6a7b9f2ffdd2bf9f0dd1f4e1d5f894e540c

commit ff11d0e63d4678188e8cabd40a532ba06912fe5a
Author: Alex Stewart <alexs.mac@gmail.com>
Date:   Wed Jun 29 09:31:45 2016 +0100

    Use _j[0,1,n]() Bessel functions on MSVC to avoid deprecation errors.
    
    - Microsoft deprecated the POSIX Bessel functions: j[0,1,n]() in favour
      of _j[0,1,n](), it appears since at least MSVC 2005:
      https://msdn.microsoft.com/en-us/library/ms235384(v=vs.100).aspx.
    - As this occurs in jet.h (templated public header), although Ceres
      suppresses the warning when it itself is built (to suppress a warning
      about the insecurity of using std::copy), it will crop up again in
      client code (without this fix) unless it is explicitly suppressed
      there also.
    - Raised as Issue #190:
      https://github.com/ceres-solver/ceres-solver/issues/190.
    
    Change-Id: If7ac5dbb856748f9900be93ec0452a40c0b00524

commit 8ea86e1614cf77644ce782e43cde6565a54444f5
Author: Nicolai Wojke <nwojke@uni-koblenz.de>
Date:   Mon Apr 25 14:24:41 2016 +0200

    Fix: Copy minimizer option 'is_silent' to LinSearchDirection::Options
    
    Change-Id: I23b4c3383cad30033c539ac93883d77c8dd4ba1a

commit 080ca4c5f2ac42620971a07f06d2d13deb7befa8
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Sun Apr 24 22:46:54 2016 -0700

    Fix typos in users.rst
    
    Change-Id: Ifdc67638a39403354bc9589f42a1b42cb9984dd2

commit 21ab397dc55335c147fdd795899b1f8981037b09
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Sun Apr 24 21:13:00 2016 -0700

    Make some Jet comparisons exact.
    
    Change-Id: Ia08c72f3b8779df96f5c0d5a954b2c0a1dd3a061

commit ee40f954cf464087eb8943abf4d9db8917a33fbe
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Sun Apr 24 07:49:55 2016 -0700

    Add colmap to users.rst
    
    Change-Id: I452a8c1dc6a3bc55734b2fc3a4002ff7939ba863

commit 9665e099022bd06e53b0779550e9aebded7f274d
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Mon Apr 18 06:00:58 2016 -0700

    Fix step norm evaluation in LineSearchMinimizer
    
    TrustRegionMinimizer evaluates the size of the step
    taken in the ambient space, where as the LineSearchMinimizer
    was using the norm in the tangent space. This change fixes
    this discrepancy.
    
    Change-Id: I9fef64cbb5622c9769c0413003cfb1dc6e89cfa3

commit 620ca9d0668cd4a00402264fddca3cf6bd2e7265
Author: Alex Stewart <alexs.mac@gmail.com>
Date:   Mon Apr 18 15:14:11 2016 +0100

    Remove use of -Werror when compiling Ceres.
    
    - As noted in Issue #193 (in that case for GCC 6), Ceres' use of -Werror
      when compiling on *nix can prevent compilation on new compilers that
      add new warnings and there is an inevitable delay between new compiler
      versions and Ceres versions.
    - Removing the explicit use of -Werror, and relying on indirect
      verification by maintainers should fix build issues for Ceres releases
      on newer compilers.
    
    Change-Id: I38e9ade28d4a90e53dcd918a7d470f1a1debd7b4

commit 0c63bd3efbf1d41151c9fab41d4b77dc64c572c8
Author: Mike Vitus <vitus@google.com>
Date:   Thu Apr 14 10:25:52 2016 -0700

    Add floor and ceil functions to the Jet implementation.
    
    Change-Id: I72ebfb0e9ade2964dbf3a014225ead345d5ae352

commit 9843f3280356c158d23c06a16085c6c5ba35e053
Author: Alex Stewart <alexs.mac@gmail.com>
Date:   Mon Mar 7 21:24:32 2016 +0000

    Report Ceres compile options as components in find_package().
    
    - Users can now specify particular components from Ceres, such as
      SuiteSparse support) that must be present in a detected version of
      Ceres in order for it to be reported as found by find_package().
    - This allows users to specify for example that they require a version
      of Ceres with SuiteSparse support at configure time, rather than
      finding out only at run time that Ceres was not compiled with the
      options they require.
    - The list of available components are built directly from the Ceres
      compile options.
    - The meta-module SparseLinearAlgebraLibrary is present if at least
      one sparse linear algebra backend is available.
    
    Change-Id: I65f1ddfd7697e6dd25bb4ac7e54f5097d3ca6266

commit e4d4d88bbe51b9cc0f7450171511abbea0779790
Author: Timer <linyicx@126.com>
Date:   Fri Apr 8 15:42:18 2016 +0800

    Fix a spelling error in nnls_modeling.rst
    
    Change-Id: I341d901d3df993bc5397ed15e6cb330b0c38fd72

commit 5512f58536e1be0d92010d8325b606e7b4733a08
Author: Keir Mierle <mierle@gmail.com>
Date:   Thu Apr 7 12:03:16 2016 -0700

    Only use collapse() directive with OpenMP 3.0 or higher
    
    Change-Id: Icba544c0494763c57eb6dc61e98379312ca15972

commit d61e94da5225217cab7b4f93b72f97055094681f
Author: Thomas Schneider <schneith@ethz.ch>
Date:   Wed Apr 6 10:40:29 2016 +0200

    Add IsParameterBlockConstant to the ceres::Problem class.
    
    Change-Id: I7d0e828e81324443209c17fa54dd1d37605e5bfe

commit 77d94b34741574e958a417561702d6093fba87fb
Author: Alex Stewart <alexs.mac@gmail.com>
Date:   Sun Feb 14 16:54:03 2016 +0000

    Fix install path for CeresConfig.cmake to be architecture-aware.
    
    - Previously we were auto-detecting a "64" suffix for the install path
      for the Ceres library on non-Debian/Arch Linux distributions, but
      we were installing CeresConfig.cmake to an architecture independent
      location.
    - We now install CeresConfig.cmake to lib${LIB_SUFFIX}/cmake/Ceres.
    - Also make LIB_SUFFIX visible to the user in the CMake GUI s/t they can
      easily override the auto-detected value if desired.
    - Reported by jpgr87@gmail.com as Issue #194.
    
    Change-Id: If126260d7af685779487c01220ae178ac31f7aea
