179397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez// Ceres Solver - A fast non-linear least squares minimizer
279397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez// Copyright 2014 Google Inc. All rights reserved.
379397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez// http://code.google.com/p/ceres-solver/
479397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez//
579397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez// Redistribution and use in source and binary forms, with or without
679397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez// modification, are permitted provided that the following conditions are met:
779397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez//
879397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez// * Redistributions of source code must retain the above copyright notice,
979397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez//   this list of conditions and the following disclaimer.
1079397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez// * Redistributions in binary form must reproduce the above copyright notice,
1179397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez//   this list of conditions and the following disclaimer in the documentation
1279397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez//   and/or other materials provided with the distribution.
1379397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez// * Neither the name of Google Inc. nor the names of its contributors may be
1479397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez//   used to endorse or promote products derived from this software without
1579397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez//   specific prior written permission.
1679397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez//
1779397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
1879397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
1979397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
2079397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
2179397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
2279397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
2379397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
2479397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
2579397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
2679397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
2779397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez// POSSIBILITY OF SUCH DAMAGE.
2879397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez//
2979397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez// Author: alexs.mac@gmail.com (Alex Stewart)
3079397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez
3179397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez// Configuration options for Ceres.
3279397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez//
3379397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez// Do not edit this file, it was automatically configured by CMake when
3479397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez// Ceres was compiled with the relevant configuration for the machine
3579397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez// on which Ceres was compiled.
3679397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez//
3779397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez// Ceres Developers: All options should have the same name as their mapped
3879397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez//                   CMake options, in the preconfigured version of this file
3979397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez//                   all options should be enclosed in '@'.
4079397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez
4179397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez#ifndef CERES_PUBLIC_INTERNAL_CONFIG_H_
4279397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez#define CERES_PUBLIC_INTERNAL_CONFIG_H_
4379397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez
4479397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez// If defined, use the LGPL code in Eigen.
4579397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez@CERES_USE_EIGEN_SPARSE@
4679397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez
4779397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez// If defined, Ceres was compiled without LAPACK.
4879397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez@CERES_NO_LAPACK@
4979397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez
5079397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez// If defined, Ceres was compiled without SuiteSparse.
5179397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez@CERES_NO_SUITESPARSE@
5279397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez
5379397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez// If defined, Ceres was compiled without CXSparse.
5479397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez@CERES_NO_CXSPARSE@
5579397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez
5679397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez// If defined, Ceres was compiled without Schur specializations.
5779397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez@CERES_RESTRICT_SCHUR_SPECIALIZATION@
5879397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez
5979397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez// If defined, Ceres was compiled to use Eigen instead of hardcoded BLAS
6079397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez// routines.
6179397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez@CERES_NO_CUSTOM_BLAS@
6279397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez
6379397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez// If defined, Ceres was compiled without multithreading support.
6479397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez@CERES_NO_THREADS@
6579397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez// If defined Ceres was compiled with OpenMP multithreading support.
6679397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez@CERES_USE_OPENMP@
6779397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez// Additionally defined on *nix if Ceres was compiled with OpenMP support,
6879397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez// as in this case pthreads is also required.
6979397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez@CERES_HAVE_PTHREAD@
7079397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez@CERES_HAVE_RWLOCK@
7179397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez
7279397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez// Which version of unordered map was used when Ceres was compiled. Exactly
7379397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez// one of these will be defined for any given build.
7479397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez@CERES_STD_UNORDERED_MAP@
7579397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez@CERES_STD_UNORDERED_MAP_IN_TR1_NAMESPACE@
7679397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez@CERES_TR1_UNORDERED_MAP@
7779397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez@CERES_NO_UNORDERED_MAP@
7879397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez
7979397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez// If defined Ceres was compiled for Android with noalias() removed from
8079397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez// matrix-matrix multiplies to work around a bug in the Android NDK.
8179397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez@CERES_WORK_AROUND_ANDROID_NDK_COMPILER_BUG@
8279397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez
8379397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez// If defined, the memory header is in <tr1/memory>, otherwise <memory>.
8479397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez@CERES_TR1_MEMORY_HEADER@
8579397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez
8679397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez// If defined shared_ptr is in std::tr1 namespace, otherwise std.
8779397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez@CERES_TR1_SHARED_PTR@
8879397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez
8979397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez// If defined, Ceres was built as a shared library.
9079397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez@CERES_USING_SHARED_LIBRARY@
9179397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez
9279397c21138f54fcff6ec067b44b847f1f7e0e98Carlos Hernandez#endif  // CERES_PUBLIC_INTERNAL_CONFIG_H_
93