Commit Graph

46 Commits

Author SHA1 Message Date
Martin Baeuml 7e43460d42 Fix a few typos in the documentation.
Change-Id: I541db56b2b81ae758e233ce850d78c3cbb4b6fa3
2014-09-08 16:49:06 +02:00
Sameer Agarwal 031598295c Enable Eigen as sparse linear algebra library.
SPARSE_NORMAL_CHOLESKY and SPARSE_SCHUR can now be used
with EIGEN_SPARSE as the backend.

The performance is not as good as CXSparse. This needs to be
investigated. Is it because the quality of AMD ordering that
we are computing is not as good as the one for CXSparse? This
could be because we are working with the scalar matrix instead
of the block matrix.

Also, the upper/lower triangular story is not completely clear.
Both of these issues will be benchmarked and tackled in the
near future.

Also included in this change is a bunch of cleanup to the
SparseNormalCholeskySolver and SparseSchurComplementSolver
classes around the use of the of defines used to conditionally
compile out parts of the code.

The system_test has been updated to test EIGEN_SPARSE also.

Change-Id: I46a57e9c4c97782696879e0b15cfc7a93fe5496a
2014-07-31 22:05:34 -07:00
Sameer Agarwal c2131dea9c Add "make install" to the install instructions.
Alessandro Gentilini pointed out that the install instructions
don't actually install the library.

Also included are some other minor changes to dependency
description.

Change-Id: I50872114bca7a9774ef66f55ba78ed9b7adad93f
2014-07-13 13:50:43 -07:00
Alex Stewart da86231ddd Add fixes for multiple definitions of ERROR on Windows to docs.
- Explain the various ways to fix the problem of multiple definitions
  of ERROR from glog / miniglog vs windows.h.
- Add note about use of CMAKE_LIBRARY_PATH to aid FindBLAS & FindLAPACK.
- Fix minor style typo in code-block for sample Ceres output.

Change-Id: I21742614f4c5a8fe1ac8f66811b7777a72bcc503
2014-06-15 14:21:49 +01:00
Alex Stewart ec6bfa5b12 Compile miniglog into Ceres if enabled on all platforms.
- Previously if miniglog was being used (on a non-Android system), we
  compiled it into a separate library, against which Ceres then linked.
- This was unsatisfactory as it required miniglog being built as a
  static library when building Ceres as a Windows DLL, because miniglog
  did not use the dllexport/dllimport statements, whilst for other
  platforms when building Ceres as a shared library, miniglog needed to
  be compiled as a shared library.

- We now compile miniglog into Ceres on all platforms, not just on
  Android.
- miniglog now uses the CERES_EXPORT macro to support Windows DLLs.
  This means that miniglog now depends on Ceres' internal/port.h (and
  thus internal/config.h) which define the CERES_EXPORT macro and
  control its behaviour respectively.
- miniglog now also uses localtime_s, not localtime on Windows.

Change-Id: Ia55b9af8b4e6decf067eab92f0a5c2d14358a1e9
2014-06-09 19:02:07 +00:00
Sameer Agarwal 4fce29c29e Documentation update.
Update the documentation to reflect the new trust region solver
logging style.

Change-Id: Id2d6b9efeee86c690c349a225d344e9f97ddbcdf
2014-06-06 05:02:07 +00:00
Sameer Agarwal 451e71c6b7 Prepare for version 1.9.0
1. Update ceres-solver.spec with version bump
   and a new package description.
2. Update the docs to refer to 1.9.0
3. Update version history.
4. Change build requirements for Android to be r9d.

Change-Id: Ibab27976b214a11549cb2688b91f791a6388b0b5
2014-05-27 11:39:07 -07:00
Alex Stewart 9febb5f2ef Updating docs to include Windows options for SuiteSparse.
- A number of users are now successfully using the
  suitesparse-metis-for-windows project to build Ceres with SuiteSparse
  on Windows.
- Also fixing missing requirement for sphinx_rdm_theme if building
  the Ceres docs.

Change-Id: I1a36c13166f96743557de2ac3b7c9b84531d1f24
2014-05-27 13:26:10 +00:00
Keir Mierle d0f194a454 Tweak iOS build instructions
Change-Id: I05a8e46f6db0eb5914f88a04dca90dec4441b5c1
2014-05-27 06:32:41 +00:00
Alex Stewart 1bc7b38ac1 Support user passing a custom CMAKE_MODULE_PATH (for BLAS / LAPACK).
- Previously we set CMAKE_MODULE_PATH explicitly rather than appending
  to it when adding our local cmake directory.
- This meant the user could not easily pass their own directory which
  would also be used.  This would be useful if they had their own
  custom FindBLAS / FindLAPACK scripts that they wanted to overload
  the defaults shipped with CMake.

Change-Id: I0c1fda1b6fd81eab68755aa036f64af3efbb226d
2014-05-26 19:54:03 +01:00
Keir Mierle 6a9367711f Tweak build dependencies in the documentation
Change-Id: Ice4cc42bbcf00dafb66785fc96a048618a0b834f
2014-05-23 01:53:18 +00:00
Keir Mierle 4425473ef5 Fix formatting in building docs
Change-Id: I75aa4f12733462d592775b4df766c05c50f20b60
2014-05-23 01:00:22 +00:00
Sameer Agarwal 8c62487e43 Preparations for 1.9.0 release.
Version bump.
minor docs update.

Change-Id: I2fbe20ba4af6b2e186fe244c96ce6d6464fe0469
2014-05-16 09:48:41 -07:00
Sameer Agarwal 0831275a78 Documentation update.
1. Update iOS build instructions.
2. Update version history.

Change-Id: I49d62e86ecff39190b50c050cb12eef4e2773357
2014-05-16 08:32:23 -07:00
Alex Stewart ea76585068 Adding autogenerated Ceres config.h to #define Ceres compile options.
- Previously we passed all compile options to Ceres via add_definitions
  in CMake.  This was fine for private definitions (used only by Ceres)
  but required additional work for public definitions to ensure they
  were correctly propagated to clients via CMake using
  target_compile_definitions() (>= 2.8.11) or add_definitions().
- A drawback to these approaches is that they did not work for chained
  dependencies on Ceres, as in if in the users project B <- A <- Ceres,
  then although the required Ceres public compile definitions would
  be used when compiling A, they would not be propagated to B.

- This patch replaces the addition of compile definitions via
  add_definitions() with an autogenerated config.h header which
  is installed with Ceres and defines all of the enabled Ceres compile
  options.
- This removes the need for the user to propagate any compile
  definitions in their projects, and additionally allows post-install
  inspect of the options with which Ceres was compiled.

Change-Id: Idbdb6abdad0eb31e7540370e301afe87a07f2260
2014-05-09 10:57:31 +01:00
Björn Piltz 5d7eed87b4 Suppport for MSVC DLLs.
Change-Id: Ibbcc4ba4e59f5bbf1cb91fe81c7d3b9042d03493
2014-04-28 19:56:24 +00:00
Sameer Agarwal c4cd29dd7c Merge landing page with introduction.
The existing introduction was a bit redundant and also
was not really an introduction. Also updated the build
instructions to reflect the new reality on Mac OSX.

Also updated the beginning of the tutorial to be a bit
gentler and updated the history to be more consistent

Change-Id: Ife38c1949252cf9f4c6301856957f2d38365f313
2014-04-16 23:40:12 -07:00
Keir Mierle 406ac78167 Rework Ceres documentation as new website
This reworks the Ceres Sphinx documentation such that it can
function as the main Ceres website, now hosted at
ceres-solver.org. This also changes to the theme sphinx_rtd_theme
used by Read The Docs; this theme has strong mobile support and is
well enough designed.

Change-Id: I63232d985859a6dac94ff58f08bf81eb2b9e7f99
2014-04-07 15:28:21 +00:00
Sameer Agarwal 75e2232b29 Fix spacing in building.rst
Change-Id: I4c68d732c80d7ff2bdbc812bf0b7c7fb98c43957
2014-03-28 11:21:02 -07:00
Richard Bowen b555b489b8 Changes documentation to reflect changes in output format.
Change-Id: Ic0ba234283e791edcad29aec067905dcb2130813
2014-03-27 15:51:58 -07:00
Sameer Agarwal 879fc2827a Remove CERES_NO_LINE_SEARCH_MINIMIZER.
Now that the trust region minimizer depends on the line search
minimizer, conditional compilation of the line search minimizer
will lead to build breakages, so this option is now not available.

It is not expected to have as significant impact on users as the
amount of code in the line search minimization algorithm is
rather small to begin with.

Change-Id: I2aa6b6e6e3931b6428dbda654f14faf1ac6dd130
2014-02-25 11:35:54 -08:00
Sameer Agarwal 1a041c35b7 Update to 1.8.0.
Change-Id: Id42e594f03e3575d06e18c1ef66df64f43d86839
2013-11-12 14:19:25 -08:00
Alex Stewart f51f56382c Documentation update.
- Adding documentation for MSVC CRT option.
- Updating documentation to reflect that LINE_SEARCH_MINIMIZER is now
  ON by default.

Change-Id: I75b1b5957c3ab46f38631736ad1c65315bc92847
2013-10-22 14:37:42 +01:00
Sameer Agarwal 7f336af614 Fix a minor documentation formatting bug
Change-Id: I2294e51d51e41a51c24630eeb49243e945faadfe
2013-10-17 23:38:57 -07:00
Alex Stewart 78cc2c4719 Cleaning up exported CeresConfig.cmake.
- Adding FindPackage scripts for all of Ceres dependencies.
- Moving depend.cmake contents to CeresConfig.cmake and cleaning up
  search for Ceres & required dependencies, no longer push Ceres
  options into client.
- Fixing uninstall to remove ceres include root directory.
- Fixing main CMakeLists to install miniglog header if enabled.
- Making miniglog library shared/static with Ceres library.

Change-Id: If926bebd11720230c5136597ccba672394ed9777
2013-10-17 19:13:08 +00:00
Alex Stewart f5f21b5897 Adding check for broken version of Clang with Xcode 4.5.x.
- Also updating EXECUTE_PROCESS() calls to compiler to handle case
  when a compilation wrapper (e.g. ccache) is used.

Change-Id: I32837233a06ed1843125fb04852f82a9b8503769
2013-10-10 19:54:54 +01:00
Sameer Agarwal c7ebfb8e5e Documentation update
Change-Id: I10c6c8375f27c7fa4cd1c381b4f39d784fa946e1
2013-10-09 22:13:01 -07:00
Sameer Agarwal 8ba41e8b45 Lint cleanup from William Rucklidge
Change-Id: Ib2ea43203ac06551162ab306d7dece504e4f07aa
2013-10-09 11:35:40 -07:00
Alex Stewart fc8ede2d5e Making LAPACK a CMake option and updating build docs.
Change-Id: Iffd11866aa04a26b70cc788f992276e96c06eb6d
2013-10-08 23:48:58 +01:00
Alex Stewart 0b07d3e9f9 Making all config options in CMake & SuiteSparse cleanup.
- Also marking all library and include directories found via
  find_library/path advanced (not directly visible in CMake GUI unless
  toggled to show advanced options).
- Updating documentation to reflect SuiteSparse requirements on Ubuntu
  and ability to control build options in CMake GUI.
- Splitting out all SuiteSparse related find_XX directives into a
  FindSuiteSparse script.

Change-Id: I0d69e02392ec547a7c365ba3e06f2ebc61cacf16
2013-10-07 19:50:24 +01:00
Sameer Agarwal 3a2158d728 NumericDiffCostFunction supports dynamic number of residuals.
1. Update AutoDiffCostFunction template parameters to be consistent
with NumericDiffCostFunction.

2. Update the documentation for NumericDiffCostFunction and
AutoDiffCostFunction.

Change-Id: I113038abb5bedebb0f6f326f2a4ac31480d785fc
2013-10-03 20:09:59 +00:00
Sameer Agarwal 16924168ce Update version from 1.6.0 -> 1.7.0rc1.
Change-Id: I420a8907142bffad0e3aa6c7196541ca2309c099
2013-07-18 13:35:01 -07:00
Sameer Agarwal 0a07fbf873 Use ATLAS as the example BLAS in building.rst
OpenBLAS has subtle issues releated to threading. It
conflicts with the use of threads in the other parts of
the application.

Careful users can still use it by disabling threads via
an environment variable, but by default we want to use
a BLAS/LAPACK that does not suffer from these problems.

Change-Id: I8c1c0ed0b526453564c5f9ea69b646fac32fe027
2013-07-10 17:02:18 -07:00
Sameer Agarwal 79d9353036 Remove Protocol Buffers support.
Change-Id: I451c543c82cdfb566736aab94d836abcfb5c689d
2013-06-24 14:28:40 -07:00
Sameer Agarwal 8f7e8963cb Multithread covariance estimation.
1. Multithread the inversion of J'J.
2. Simplify the dense rank truncation loop.
3. Minor correction to building documentation.

Change-Id: Ide932811c0f28dc6c253809339fb2caa083865b5
2013-06-04 16:19:45 -07:00
Sameer Agarwal ebbb984db8 Various corrections and enhancements to the documentation.
Change-Id: I03519bfccf4367b36d36006f1450d5fbcbbf8621
2013-05-28 10:37:01 -07:00
Sameer Agarwal 97e1795704 Minor documentation fixes
Change-Id: Ic531475acf2386b6f5839d2434bdcc1e4c730d14
2013-05-26 11:48:09 -07:00
Sameer Agarwal 5d7c19557c Update documents to reflect version change.
And a few minor changes around BLAS.

Change-Id: Ie4c1eb35f7180f648493837b53f1c8bba48109d6
2013-05-07 12:47:51 -07:00
Sameer Agarwal 564a83fcc6 Lint cleanup from William Rucklidge.
Change-Id: I8d4a0aa3e264775d20e99a6b5265f3023de92560
2013-03-26 11:41:50 -07:00
Pablo Speciale 6bcb8d9c30 Compiling against static or shared library
Change-Id: I3fb35e9a49f90b8894f59dde49c90a7c2dd74b0a
2013-03-25 17:06:11 -07:00
Pablo Speciale 6ae3475785 Added documentation regarding the use of Ceres with cmake (once installed)
Commets about the flag ``BUILD_DOCUMENTATION=ON``

Change-Id: I8814927e60af190c8043bfc36e77fe76bfe6f562
2013-03-25 21:02:00 +00:00
Pablo Speciale ac0d416991 google-glog link wasn't working, 'http://' twice
Change-Id: I9cd96d3609f9b1ba31cd480fef1702972be86741
2013-03-20 18:32:14 -07:00
Sameer Agarwal 8140f0fc97 Modularize the build.
1. Add -DLINE_SEARCH_MINIMIZER to CMake to make the line search
   minimizer optional.
2. Better handling of -DSUITESPARSE/-DCXSPARSE in top level cmake
   file.
3. Disable code which will never be used if SuiteSparse and/or
   CXSparse is not available.
4. Update build docs.
5. Update jni/Android.mk
6. Minor lint cleanup from William Rucklidge.

Change-Id: If60460a858000df82faed7a6bb056dd2bfdde562
2013-03-12 11:11:57 -07:00
Sameer Agarwal 480f9b8551 Add gerrit instructions to the docs.
Change-Id: Ic98f20273f3ccbaeb8b4ca00c4ce0042a0d262f8
2013-03-03 23:06:48 -08:00
Sameer Agarwal 08c891fcb6 Various small changes.
1. Compact build instructions.
2. Lots of small edits by Simon Fuhrmann.

Change-Id: I8c0c67922021041dcf7f4ecdb6c6e6dd2e2fd7e5
2013-02-05 23:35:01 -08:00
Sameer Agarwal 3d87b72c89 Convert documentation from LaTeX to Sphinx.
A live version of the doc can be found at

http://homes.cs.washington.edu/~sagarwal/ceres-solver/

As it stands, the documentation has better hyperlinking
and coverage than the latex documentation now.

Change-Id: I7ede3aa83b9b9ef25104caf331e5727b4f5beae5
2013-02-04 17:09:39 -08:00