Skip to content
Snippets Groups Projects
  1. Nov 21, 2016
    • Sameer Agarwal's avatar
      Update changelog · 0f80f018
      Sameer Agarwal authored
      Change-Id: I36db7e705ad520321335ff2f438cba54d914bb5c
      1.12.0rc3
      0f80f018
    • Alex Stewart's avatar
      Make gflags a public dependency of Ceres if it and glog are found. · 29888185
      Alex Stewart authored
      - Previously we were not listing gflags as a public dependency of Ceres
        if it and glog were found (and MINIGLOG was not being used). This
        does not reflect that if glog was compiled with gflags then it will
        #include gflags/gflags.h in glog/logging.h, thus making gflags a
        public dependency of anything linking against glog.
      - On *nix OSs if glog/gflags are shared libraries this did not result
        in a link error when compiling Ceres as the gflags symbols were
        indirectly resolved.  However, on MSVC this is not the case, and this
        could result in unresolved gflags symbol link errors when compiling
        Ceres.
      - Now we add gflags to the list of public Ceres dependencies if both
        glog and gflags are found (and MINIGLOG is not enabled).
      
      Change-Id: I5ce6038fa816781cc81b378522068dc563d29c51
      29888185
    • Alex Stewart's avatar
      Add support for glog exported CMake target. · d38e49a6
      Alex Stewart authored
      - The latest version of glog supports building with CMake, in which case
        it exports itself via CMake as a target that contains important meta
        information such as Windows-specific compilation definitions.
      - This patch updates FindGlog.cmake such that it can optionally use
        an exported glog target if one exists, if not it will fall back to
        the current approach whereby the glog components are found manually.
        This behaviour (and the implementation) is very similar to that of
        FindGflags.cmake.
      
      Change-Id: Idfb5f49c1b457707029bff52068f58237c0e285d
      d38e49a6
    • Alex Stewart's avatar
      Use google::GLOG_WARNING instead of WARNING in tests to support MSVC. · 73341234
      Alex Stewart authored
      - GLOG_NO_ABBREVIATED_SEVERITIES is the default on Windows, in which
        case google::WARNING is not defined.
      - Remove Ceres-specific redefinition of WARNING in mock-log.h fork
        in place of using non-abbreviated severity in the one place in
        levenberg_marquardt_strategy_test where ScopedMockLog is actually
        used.
      - Remove unnecessary dependency of gradient_checking_cost_function_test
        on ScopedMockLog.
      
      Change-Id: I9fb540f638037b6015fd264cfc618c9d60f5686c
      73341234
    • Sameer Agarwal's avatar
      Update gtest and gmock to a2b8a8e07628e5fd60644b6dd99c1b5e7d7f1f47 · 185aacc7
      Sameer Agarwal authored
      Change-Id: I1d7cfda65de173ceba156cf1f684f56f6c62840b
      185aacc7
  2. Nov 14, 2016
  3. Nov 13, 2016
    • Hung Lun's avatar
      Fix typo. indepdendent -> independent · 1b120982
      Hung Lun authored
      Change-Id: I7f04f5e82a6e47e8d22c902744729f3f6d93dee8
      1b120982
    • Alex Stewart's avatar
      Fix potential invalid reset of CMAKE_FIND_LIBRARY_PREFIXES on MSVC. · c5c6f559
      Alex Stewart authored
      - gflags_report_not_found() calls gflags_reset_find_library_prefix()
        and we only reset CMAKE_FIND_LIBRARY_PREFIXES when performing a manual
        search for gflags, but gflags_report_not_found() is also used
        before the manual search when searching for an exported gflags target.
      - As such, it was possible that we could have cleared
        CMAKE_FIND_LIBRARY_PREFIXES rather than reset it if
        gflags_report_not_found() was invoked during the exported target
        search.
      - This patch prevents this possibility by verifying that the cached
        version of CMAKE_FIND_LIBRARY_PREFIXES exists before updating it.
      
      Change-Id: I07528ae5f197a366c7da342196b3e977f9a1fc93
      c5c6f559
    • Alex Stewart's avatar
      Fix use of alignas(0) which is not ignored on GCC. · 6519e789
      Alex Stewart authored
      - alignas(0) should be ignored, however it results in a build error on
        GCC, so instead default to the alignment of double in Jets if
        we cannot align to 16-byte boundaries on the platform, but are
        compiling with C++11.
      
      Change-Id: I2e54c69516ea2e1447a8bdc138b2dd70050c6dad
      6519e789
    • Alex Stewart's avatar
      Use default alignment if alignof(std::max_align_t) < 16 with C++11. · b4e27240
      Alex Stewart authored
      - As per Andrew Hunter’s comments in the commit which added Jet
        alignment when using C++11 here:
        https://ceres-solver-review.googlesource.com/#/c/7100, there is wide
        lattitude in the standard about what the maximum supported alignment
        can be.
      - Previously, we were forcing the alignment to 1, if the value of
        alignof(std::max_align_t), which we use as a proxy for the maximum
        supported alignment on the platform, was < 16.
      - An alignment of 1 is not valid for Jets, as it would weaken the
        natural alignment of the types within a Jet, which would typically be
        4 (32-bit systems) or 8 (64-bit systems), thus resulting in a compiler
        error.
      - This was reported as issue 235 for Clang 3.8 on i386:
        https://github.com/ceres-solver/ceres-solver/issues/235.
      
      Change-Id: Ie39e5499c64f9231f29ebf4392992b5c9ce2e385
      b4e27240
  4. Nov 12, 2016
  5. Nov 11, 2016
  6. Nov 01, 2016
  7. Oct 28, 2016
  8. Oct 20, 2016
    • Je Hyeong Hong's avatar
      Relax the tolerance in QuaternionParameterizationTestHelper. · e892499e
      Je Hyeong Hong authored
      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
      e892499e
  9. Oct 19, 2016
    • Sameer Agarwal's avatar
      Occured -> Occurred. · 7ed9e2fb
      Sameer Agarwal authored
      Thanks to Phillip Huebner for reporting this.
      
      Change-Id: I9cddfbb373aeb496961d08e434fe661bff4abd29
      7ed9e2fb
    • Je Hyeong Hong's avatar
      Fix a test error in autodiff_test.cc. · b82f9727
      Je Hyeong Hong authored
      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
      b82f9727
  10. Oct 14, 2016
  11. Oct 11, 2016
  12. Oct 10, 2016
    • David Gossow's avatar
      Relaxing Jacobian matching in Gradient Checker test. · 0a4ccb7e
      David Gossow authored
      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
      0a4ccb7e
  13. Oct 03, 2016
    • Je Hyeong Hong's avatar
      Fix an Intel compiler error in covariance_impl.cc. · ee44fc91
      Je Hyeong Hong authored
      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
      ee44fc91
  14. Sep 23, 2016
    • Sameer Agarwal's avatar
      Allow SubsetParameterization to hold all parameters constant · 9026d69d
      Sameer Agarwal authored
      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
      9026d69d
  15. Sep 18, 2016
  16. Sep 08, 2016
  17. Sep 06, 2016
    • Sameer Agarwal's avatar
      Remove two DCHECKs from CubicHermiteSpline. · 195d8d13
      Sameer Agarwal authored
      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
      195d8d13
  18. Sep 03, 2016
  19. Sep 02, 2016
  20. Sep 01, 2016
    • Mike Vitus's avatar
      Convert pose graph 2D example to glog and gflags. · 716f049a
      Mike Vitus authored
      Change-Id: I0ed75a60718ef95199bb36f33d9eb99157d11d40
      716f049a
    • David Gossow's avatar
      Fix compiler errors on some systems · 46c5ce89
      David Gossow authored
      This fixes some signed-unsigned comparisons and a missing header
      include.
      
      Change-Id: Ieb2bf6e905faa74851bc4ac4658d2f1da24b6ecc
      46c5ce89
    • David Gossow's avatar
      Gradient checker multithreading bugfix. · b102d53e
      David Gossow authored
      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
      b102d53e
  21. Aug 31, 2016
Loading