CppAD: A C++ Algorithmic Differentiation Package  20130918
configure.hpp
Go to the documentation of this file.
00001 /* $Id$ */
00002 # ifndef CPPAD_CONFIGURE_INCLUDED
00003 # define CPPAD_CONFIGURE_INCLUDED
00004 
00005 /* --------------------------------------------------------------------------
00006 CppAD: C++ Algorithmic Differentiation: Copyright (C) 2003-14 Bradley M. Bell
00007 
00008 CppAD is distributed under multiple licenses. This distribution is under
00009 the terms of the 
00010                     Eclipse Public License Version 1.0.
00011 
00012 A copy of this license is included in the COPYING file of this distribution.
00013 Please visit http://www.coin-or.org/CppAD/ for information on other licenses.
00014 -------------------------------------------------------------------------- */
00015 
00016 /*
00017 $begin configure$$
00018 $spell
00019      CppAD
00020 $$
00021 
00022 $section Preprocessor Definitions Used by CppAD$$
00023 $index configure, symbol$$
00024 $index symbol, configure$$
00025 
00026 $head Preprocessor Symbols$$
00027 $index preprocessor, symbol$$
00028 $index symbol, processor$$
00029 All of the preprocessor symbols used by CppAD begin with
00030 $code CPPAD_$$
00031 (there are some deprecated symbols that begin with $code CppAD$$).
00032 
00033 $end
00034 */
00035 
00036 /*!
00037  \file configure.hpp
00038 Replacement for config.h so that all preprocessor symbols begin with CPPAD_ 
00039 */
00040 
00041 /*!
00042 \def CPPAD_HAS_RVALUE
00043 Does this compiler cupport c++11 rvalues; i.e., values with move semantics
00044 */
00045 # define CPPAD_HAS_RVALUE 0
00046 
00047 /*!
00048 \def CPPAD_PACKAGE_STRING
00049 cppad-yyyymmdd as a C string where yyyy is year, mm is month, and dd is day.
00050 */
00051 # define CPPAD_PACKAGE_STRING "cppad-20130918"
00052 
00053 /*!
00054 def CPPAD_HAS_COLPACK
00055 Was a colpack_prefix specified on the cmake command line.
00056 */
00057 # define CPPAD_HAS_COLPACK 0
00058 
00059 /*!
00060 def CPPAD_HAS_NULLPTR
00061 Does this compiler support the a c++11 null-pointer constant nullptr
00062 (true = 1, false = 0).
00063 */
00064 # define CPPAD_HAS_NULLPTR 0
00065  
00066  /*!
00067 def CPPAD_INTERNAL_SPARSE_SET
00068 is the internal representation used for sparse vectors of std::set<size_t>
00069 either sparse_set or sparse_list).
00070 */
00071 # define CPPAD_INTERNAL_SPARSE_SET sparse_list
00072 
00073 /*!
00074 \def CPPAD_IMPLICIT_CTOR_FROM_ANY_TYPE
00075 If this symbol is one, an implicit constor of AD<Base> is defined 
00076 where the argument has any type.
00077 Otherwise this constructor is explicit.
00078 */
00079 # define CPPAD_IMPLICIT_CTOR_FROM_ANY_TYPE 0
00080 
00081 /*!
00082 \def CPPAD_BOOSTVECTOR
00083 If this symbol is one, and _MSC_VER is not defined,
00084 we are using boost vector for CPPAD_TESTVECTOR.
00085 It this symbol is zero, 
00086 we are not using boost vector for CPPAD_TESTVECTOR.
00087 */
00088 # define CPPAD_BOOSTVECTOR 0
00089 
00090 /*!
00091 \def CPPAD_CPPADVECTOR
00092 If this symbol is one, 
00093 we are using CppAD vector for CPPAD_TESTVECTOR.
00094 It this symbol is zero, 
00095 we are not using CppAD vector for CPPAD_TESTVECTOR.
00096 */
00097 # define CPPAD_CPPADVECTOR 0
00098 
00099 /*!
00100 \def CPPAD_STDVECTOR
00101 If this symbol is one, 
00102 we are using standard vector for CPPAD_TESTVECTOR.
00103 It this symbol is zero, 
00104 we are not using standard vector for CPPAD_TESTVECTOR.
00105 */
00106 # define CPPAD_STDVECTOR 1
00107 
00108 /*!
00109 \def CPPAD_EIGENVECTOR
00110 If this symbol is one, 
00111 we are using Eigen vector for CPPAD_TESTVECTOR.
00112 If this symbol is zero, 
00113 we are not using Eigen vector for CPPAD_TESTVECTOR.
00114 */
00115 # define CPPAD_EIGENVECTOR 0
00116 
00117 /*!
00118 \def CPPAD_HAS_GETTIMEOFDAY
00119 If this symbol is one, and _MSC_VER is not defined,
00120 this system supports the gettimeofday funcgtion.
00121 Otherwise, this smybol should be zero.
00122 */
00123 # define CPPAD_HAS_GETTIMEOFDAY 1
00124 
00125 /*!
00126 \def CPPAD_SIZE_T_SAME_UNSIGNED_INT 
00127 If this symbol is one, the type size_t is the same as the type unsigned int,
00128 otherwise this symbol is zero.
00129 */
00130 # define CPPAD_SIZE_T_SAME_UNSIGNED_INT 1
00131 
00132 /*!
00133 \def CPPAD_TAPE_ADDR_TYPE
00134 Is the type used to store address on the tape. If not size_t, then 
00135 <code>sizeof(CPPAD_TAPE_ADDR_TYPE) <= sizeof( size_t )</code>
00136 to conserve memory.
00137 This type must support \c std::numeric_limits,
00138 the \c <= operator,
00139 and conversion to \c size_t.
00140 Make sure that the type chosen returns true for is_pod<CPPAD_TAPE_ADDR_TYPE>
00141 in pod_vector.hpp.
00142 This type is later defined as \c addr_t in the CppAD namespace.
00143 */
00144 # define CPPAD_TAPE_ADDR_TYPE unsigned int
00145 
00146 /*!
00147 \def CPPAD_TAPE_ID_TYPE
00148 Is the type used to store tape identifiers. If not size_t, then 
00149 <code>sizeof(CPPAD_TAPE_ID_TYPE) <= sizeof( size_t )</code>
00150 to conserve memory.
00151 This type must support \c std::numeric_limits,
00152 the \c <= operator,
00153 and conversion to \c size_t.
00154 Make sure that the type chosen returns true for is_pod<CPPAD_TAPE_ID_TYPE>
00155 in pod_vector.hpp.
00156 This type is later defined as \c tape_id_t in the CppAD namespace.
00157 */
00158 # define CPPAD_TAPE_ID_TYPE unsigned int
00159  
00160 /*!
00161 \def CPPAD_MAX_NUM_THREADS
00162 Specifies the maximum number of threads that CppAD can support
00163 (must be greater than or equal four).
00164 
00165 The user may define CPPAD_MAX_NUM_THREADS before including any of the CppAD
00166 header files.  If it is not yet defined,
00167 */
00168 # ifndef CPPAD_MAX_NUM_THREADS
00169 # define CPPAD_MAX_NUM_THREADS 48
00170 # endif
00171 
00172 # endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines