CppAD: A C++ Algorithmic Differentiation Package
20130918
|
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