Include what the public headers use

Several public headers include headers they do not use, such as
Eigen/Dense, while relying on transitive includes for symbols they do
use. This exposes users to dependencies they may come to rely on and
makes IWYU attribute symbols to unrelated headers. Remove the unused
includes, forward declare types used only through pointers and
references, and include the remaining dependencies directly.

Change-Id: Ic8d44bf4d3d3cc00f030199d7207e06e77e2397c
37 files changed
tree: 200ed3505354a3a5bae70fc079a0479df3da9352
  1. .github/
  2. bazel/
  3. cmake/
  4. config/
  5. data/
  6. docs/
  7. examples/
  8. include/
  9. internal/
  10. LICENSES/
  11. scripts/
  12. third_party/
  13. .bazelignore
  14. .clang-format
  15. .gitignore
  16. .gitmodules
  17. .readthedocs.yaml
  18. BUILD
  19. CITATION.cff
  20. CMakeLists.txt
  21. CONTRIBUTING.md
  22. LICENSE
  23. MODULE.bazel
  24. package.xml
  25. README.md
  26. REUSE.toml
  27. WORKSPACE
README.md

Android Linux macOS Windows

Ceres Solver

Ceres Solver is an open source C++ library for modeling and solving large, complicated optimization problems. It is a feature rich, mature and performant library which has been used in production at Google since 2010. Ceres Solver can solve two kinds of problems.

  1. Non-linear Least Squares problems with bounds constraints.
  2. General unconstrained optimization problems.

Please see ceres-solver.org for more information.