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