Files
GridFire/build-config/cppad/include/cppad/configure.hpp.in
Emily Boudreaux 856ab51b4c build(CppAD): brought in CppAD for autodiff
we need an autodiff library at some point (or we need to roll our own but I do not think that makes sense). CppAD is well tested and header only and easy to include. It is also Liscene compatible with GPL v3.0. Here we bring it in as a dependency
2025-06-19 14:51:02 -04:00

239 lines
6.3 KiB
C++

# ifndef CPPAD_CONFIGURE_HPP
# define CPPAD_CONFIGURE_HPP
/* --------------------------------------------------------------------------
CppAD: C++ Algorithmic Differentiation: Copyright (C) 2003-20 Bradley M. Bell
CppAD is distributed under the terms of the
Eclipse Public License Version 2.0.
This Source Code may also be made available under the following
Secondary License when the conditions for such availability set forth
in the Eclipse Public License, Version 2.0 are satisfied:
GNU General Public License, Version 2.0 or later.
---------------------------------------------------------------------------- */
/*!
$begin configure.hpp$$
$spell
noexcept
pragmas
unreferenced
CppAD
cppad
yyyymmdd
yyyy
mm
dd
adolc
cmake
colpack
eigen
ipopt
gettimeofday
namespace
mkstemp
tmpnam
nullptr
sizeof
std
hpp
addr
$$
$section Preprocessor Symbols Set By CMake Command$$
$head CPPAD_COMPILER_HAS_CONVERSION_WARN$$
is the compiler a variant of g++ and has conversion warnings
$srccode%hpp% */
# define CPPAD_COMPILER_HAS_CONVERSION_WARN @compiler_has_conversion_warn@
/* %$$
$head CPPAD_DISABLE_SOME_MICROSOFT_COMPILER_WARNINGS$$
This macro is only used to document the pragmas that disables the
follow warnings:
$subhead C4100$$
unreferenced formal parameter.
$subhead C4127$$
conditional expression is constant.
$srccode%hpp% */
# define CPPAD_DISABLE_SOME_MICROSOFT_COMPILER_WARNINGS 1
# if _MSC_VER
# pragma warning( disable : 4100 )
# pragma warning( disable : 4127 )
# endif
# undef CPPAD_DISABLE_SOME_MICROSOFT_COMPILER_WARNINGS
/* %$$
$head CPPAD_USE_CPLUSPLUS_2011$$
Deprecated 2020-12-03:
Should CppAD use C++11 features. This is always 1 (for true).
$srccode%hpp% */
# define CPPAD_USE_CPLUSPLUS_2011 1
/* %$$
$head CPPAD_PACKAGE_STRING$$
cppad-yyyymmdd as a C string where yyyy is year, mm is month, and dd is day.
$srccode%hpp% */
# define CPPAD_PACKAGE_STRING "cppad-@cppad_version@"
/* %$$
$head CPPAD_HAS_ADOLC$$
Was include_adolc=true on the cmake command line.
$srccode%hpp% */
# define CPPAD_HAS_ADOLC @cppad_has_adolc@
/* %$$
$head CPPAD_HAS_COLPACK$$
Was a colpack_prefix specified on the cmake command line.
$srccode%hpp% */
# define CPPAD_HAS_COLPACK @cppad_has_colpack@
/* %$$
$head CPPAD_HAS_EIGEN$$
Was include_eigen=true on the cmake command line.
$srccode%hpp% */
# define CPPAD_HAS_EIGEN @cppad_has_eigen@
/* %$$
$head CPPAD_HAS_IPOPT$$
Was include_ipopt=true on the cmake command line.
$srccode%hpp% */
# define CPPAD_HAS_IPOPT @cppad_has_ipopt@
/* %$$
$head CPPAD_DEPRECATED$$
This symbol is not currently being used.
$srccode%hpp% */
# define CPPAD_DEPRECATED @cppad_deprecated_01@
/* %$$
$head CPPAD_BOOSTVECTOR$$
If this symbol is one, and _MSC_VER is not defined,
we are using boost vector for CPPAD_TESTVECTOR.
It this symbol is zero,
we are not using boost vector for CPPAD_TESTVECTOR.
$srccode%hpp% */
# define CPPAD_BOOSTVECTOR @cppad_boostvector@
/* %$$
$head CPPAD_CPPADVECTOR$$
If this symbol is one,
we are using CppAD vector for CPPAD_TESTVECTOR.
It this symbol is zero,
we are not using CppAD vector for CPPAD_TESTVECTOR.
$srccode%hpp% */
# define CPPAD_CPPADVECTOR @cppad_cppadvector@
/* %$$
$head CPPAD_STDVECTOR$$
If this symbol is one,
we are using standard vector for CPPAD_TESTVECTOR.
It this symbol is zero,
we are not using standard vector for CPPAD_TESTVECTOR.
$srccode%hpp% */
# define CPPAD_STDVECTOR @cppad_stdvector@
/* %$$
$head CPPAD_EIGENVECTOR$$
If this symbol is one,
we are using Eigen vector for CPPAD_TESTVECTOR.
If this symbol is zero,
we are not using Eigen vector for CPPAD_TESTVECTOR.
$srccode%hpp% */
# define CPPAD_EIGENVECTOR @cppad_eigenvector@
/* %$$
$head CPPAD_HAS_GETTIMEOFDAY$$
If this symbol is one, and _MSC_VER is not defined,
this system supports the gettimeofday function.
Otherwise, this symbol should be zero.
$srccode%hpp% */
# define CPPAD_HAS_GETTIMEOFDAY @cppad_has_gettimeofday@
/* %$$
$head CPPAD_TAPE_ADDR_TYPE$$
Is the type used to store address on the tape. If not size_t, then
<code>sizeof(CPPAD_TAPE_ADDR_TYPE) <= sizeof( size_t )</code>
to conserve memory.
This type must support std::numeric_limits,
the <= operator,
and conversion to size_t.
Make sure that the type chosen returns true for is_pod<CPPAD_TAPE_ADDR_TYPE>
in pod_vector.hpp.
This type is later defined as addr_t in the CppAD namespace.
$srccode%hpp% */
# define CPPAD_TAPE_ADDR_TYPE @cppad_tape_addr_type@
/* %$$
$head CPPAD_TAPE_ID_TYPE$$
Is the type used to store tape identifiers. If not size_t, then
<code>sizeof(CPPAD_TAPE_ID_TYPE) <= sizeof( size_t )</code>
to conserve memory.
This type must support std::numeric_limits,
the <= operator,
and conversion to size_t.
Make sure that the type chosen returns true for is_pod<CPPAD_TAPE_ID_TYPE>
in pod_vector.hpp.
This type is later defined as tape_id_t in the CppAD namespace.
$srccode%hpp% */
# define CPPAD_TAPE_ID_TYPE @cppad_tape_id_type@
/* %$$
$head CPPAD_MAX_NUM_THREADS$$
Specifies the maximum number of threads that CppAD can support
(must be greater than or equal four).
The user may define CPPAD_MAX_NUM_THREADS before including any of the CppAD
header files. If it is not yet defined,
$srccode%hpp% */
# ifndef CPPAD_MAX_NUM_THREADS
# define CPPAD_MAX_NUM_THREADS @cppad_max_num_threads@
# endif
/* %$$
$head CPPAD_HAS_MKSTEMP$$
It true, mkstemp works in C++ on this system.
$srccode%hpp% */
# define CPPAD_HAS_MKSTEMP @cppad_has_mkstemp@
/* %$$
$head CPPAD_HAS_TMPNAM_S$$
It true, tmpnam_s works in C++ on this system.
$srccode%hpp% */
# define CPPAD_HAS_TMPNAM_S @cppad_has_tmpnam_s@
/* %$$
$head CPPAD_NULL$$
Deprecated 2020-12-03:
This preprocessor symbol was used for a null pointer before c++11.
Replace it by $code nullptr$$.
$head CPPAD_NOEXCEPT$$
Deprecated 2020-12-03:
This preprocessor symbol was used for no exception before c++11,
replace it by $code noexcept$$.
$subhead CPPAD_NDEBUG_NOEXCEPT$$
This preprocessor symbol is
$code noexcept$$ when C++11 is available and $code NDEBUG$$ is defined.
Otherwise it is empty.
$end
*/
// -------------------------------------------------
# define CPPAD_NULL nullptr
# define CPPAD_NOEXCEPT noexcept
//
# ifdef NDEBUG
# define CPPAD_NDEBUG_NOEXCEPT noexcept
# else
# define CPPAD_NDEBUG_NOEXCEPT
# endif
// -------------------------------------------------
# endif