1/* 2 * Copyright (C) 2004-2021 Edward F. Valeev 3 * 4 * This file is part of Libint. 5 * 6 * Libint is free software: you can redistribute it and/or modify 7 * it under the terms of the GNU Lesser General Public License as published by 8 * the Free Software Foundation, either version 3 of the License, or 9 * (at your option) any later version. 10 * 11 * Libint is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 * GNU Lesser General Public License for more details. 15 * 16 * You should have received a copy of the GNU Lesser General Public License 17 * along with Libint. If not, see <http://www.gnu.org/licenses/>. 18 * 19 */ 20 21/* This file is automatically processed by configure script. 22 It MUST NOT be changed manually after configuration, otherwise 23 the library will likely fail to compile or produce erroneous results 24 */ 25 26#ifndef _libint2_include_libint2config_h_ 27#define _libint2_include_libint2config_h_ 28 29/* The host architecture. */ 30#undef LIBINT_HOST_ARCH 31 32/* The target architecture. */ 33#undef LIBINT_TARGET_ARCH 34 35/* The version number. */ 36#undef LIBINT_VERSION 37 38/* The major version number. */ 39#undef LIBINT_MAJOR_VERSION 40 41/* The minor version number. */ 42#undef LIBINT_MINOR_VERSION 43 44/* The micro version number. */ 45#undef LIBINT_MICRO_VERSION 46 47/* Prefix for all names in API */ 48#undef LIBINT_API_PREFIX 49 50/* Max AM (same for all derivatives; if not defined see LIBINT_MAX_AM_LIST) */ 51#undef LIBINT_MAX_AM 52 53/* Max AM for integrals and their derivatives */ 54#undef LIBINT_MAX_AM_LIST 55 56/* Max optimized AM (same for all derivatives; if not defined see LIBINT_OPT_AM_LIST) */ 57#undef LIBINT_OPT_AM 58 59/* Max optimized AM for integrals and their derivatives */ 60#undef LIBINT_OPT_AM_LIST 61 62/* Support 1-body derivatives up to this order */ 63#undef INCLUDE_ONEBODY 64 65/* Disable support for 1-body property derivatives */ 66#undef DISABLE_ONEBODY_PROPERTY_DERIVS 67 68/* Support ERI derivatives up to this order */ 69#undef INCLUDE_ERI 70 71/* Support 3-center ERI derivatives up to this order */ 72#undef INCLUDE_ERI3 73 74/* Support 2-center ERI derivatives up to this order */ 75#undef INCLUDE_ERI2 76 77/* Support G12 derivatives up to this order */ 78#undef INCLUDE_G12 79 80/* Support G12DKH derivatives up to this order */ 81#undef INCLUDE_G12DKH 82 83/* Max AM for one-body ints */ 84#undef ONEBODY_MAX_AM 85 86/* Max optimized AM for one-body ints */ 87#undef ONEBODY_OPT_AM 88 89/* Max order of spherical multipole ints */ 90#undef MULTIPOLE_MAX_ORDER 91 92/* Max AM for ERI (same for all derivatives; if not defined see ERI_MAX_AM_LIST) */ 93#undef ERI_MAX_AM 94 95/* Max AM for ERI and its derivatives */ 96#undef ERI_MAX_AM_LIST 97 98/* Max optimized AM for ERI (same for all derivatives; if not defined see ERI_OPT_AM_LIST) */ 99#undef ERI_OPT_AM 100 101/* Max optimized AM for ERI and its derivatives */ 102#undef ERI_OPT_AM_LIST 103 104/* Max AM for 3-center ERI (same for all derivatives; if not defined see ERI3_MAX_AM_LIST) */ 105#undef ERI3_MAX_AM 106 107/* Max AM for 3-center ERI and its derivatives */ 108#undef ERI3_MAX_AM_LIST 109 110/* Max optimized AM for 3-center ERI (same for all derivatives; if not defined see ERI3_OPT_AM_LIST) */ 111#undef ERI3_OPT_AM 112 113/* Max optimized AM for 3-center ERI and its derivatives */ 114#undef ERI3_OPT_AM_LIST 115 116/* If 1, assume will transform the "unpaired" center (e.g. a in (a|cd)) to solid harmonics */ 117#undef ERI3_PURE_SH 118 119/* Max AM for 2-center ERI (same for all derivatives; if not defined see ERI2_MAX_AM_LIST) */ 120#undef ERI2_MAX_AM 121 122/* Max AM for 2-center ERI and its derivatives */ 123#undef ERI2_MAX_AM_LIST 124 125/* Max optimized AM for 2-center ERI (same for all derivatives; if not defined see ERI2_OPT_AM_LIST) */ 126#undef ERI2_OPT_AM 127 128/* Max optimized AM for 2-center ERI and its derivatives */ 129#undef ERI2_OPT_AM_LIST 130 131/* If 1, assume will transform to solid harmonics */ 132#undef ERI2_PURE_SH 133 134/* Max AM for G12 method integrals */ 135#undef G12_MAX_AM 136 137/* Max optimized AM for G12 method integrals */ 138#undef G12_OPT_AM 139 140/* Support [Ti,G12] ? */ 141#undef SUPPORT_T1G12 142 143/* Max AM for G12DKH method integrals */ 144#undef G12DKH_MAX_AM 145 146/* Max optimized AM for G12DKH method integrals */ 147#undef G12DKH_OPT_AM 148 149/* Whether integral sets can be unrolled */ 150#undef LIBINT_ENABLE_UNROLLING 151 152/* Whether generic code can be used */ 153#undef LIBINT_ENABLE_GENERIC_CODE 154 155/* maximum length of vectors */ 156#undef LIBINT_VECTOR_LENGTH 157 158/* how to vectorize */ 159#undef LIBINT_VECTOR_METHOD 160 161/* if can be controlled with posix_memalign, alignment size */ 162#undef LIBINT_ALIGN_SIZE 163 164/* Specifies the ordering of cartesian Gaussians in a shell. Allowed values are defined at the bottom of this file -- also see configure.in */ 165#undef LIBINT_CGSHELL_ORDERING 166 167/* Specifies the ordering of solid harmonics Gaussians in a shell. Allowed values are defined at the bottom of this file -- also see configure.in */ 168#undef LIBINT_SHGSHELL_ORDERING 169 170/* Specifies the class of shell sets generated. Allowed values are defined at the bottom of this file -- also see configure.in */ 171#undef LIBINT_SHELL_SET 172 173/* User-defined real type */ 174#undef LIBINT_USER_DEFINED_REAL 175 176/* Include statements needed to use LIBINT_USER_DEFINED_REAL */ 177#undef LIBINT_USER_DEFINED_REAL_INCLUDES 178 179/*Generate FMA instructions? */ 180#undef LIBINT_GENERATE_FMA 181 182/* Accumulate integrals to the buffer? */ 183#undef LIBINT_ACCUM_INTS 184 185/* Whether FLOP counting is supported */ 186#undef LIBINT_FLOP_COUNT 187 188/* Whether profile instrumentation will be enabled */ 189#undef LIBINT_PROFILE 190 191/* Support contracted integrals? */ 192#undef LIBINT_CONTRACTED_INTS 193 194/* Generate single evaluator type? */ 195#undef LIBINT_SINGLE_EVALTYPE 196 197/* Generate composite evaluators? */ 198#undef LIBINT_USE_COMPOSITE_EVALUATORS 199 200/* Strategy for ERI evaluation */ 201#undef LIBINT_ERI_STRATEGY 202 203/* -------------------------- 204 have C++ features? 205 -------------------------- */ 206/* see lib/autoconf/ac_check_cpp11.m4 */ 207 208/* define if CXX compiler can compile C++11 */ 209#undef LIBINT_HAS_CXX11 210 211/* define if array has fill member function. */ 212#undef LIBINT_ARRAY_HAS_FILL 213 214/* define if std::array is available. */ 215#undef LIBINT_HAS_STD_ARRAY 216 217/* define if std::make_shared and std::allocate_shared are available. */ 218#undef LIBINT_HAS_STD_MAKE_SHARED 219 220/* define if std::shared_ptr is available. */ 221#undef LIBINT_HAS_STD_SHARED_PTR 222 223/* define if std::tr1::array is available. */ 224#undef LIBINT_HAS_STD_TR1_ARRAY 225 226/* define if std::tr1::shared_ptr is available. */ 227#undef LIBINT_HAS_STD_TR1_SHARED_PTR 228 229/* define if std::tr1 type traits are available. */ 230#undef LIBINT_HAS_STD_TR1_TYPE_TRAITS 231 232/* define if std type traits are available. */ 233#undef LIBINT_HAS_STD_TYPE_TRAITS 234 235/* define if Libint is using <array>. */ 236#undef LIBINT_USE_ARRAY 237 238/* define if Libint is using <boost/tr1/array.hpp>. */ 239#undef LIBINT_USE_BOOST_TR1_ARRAY_HPP 240 241/* define if Libint is using <boost/tr1/memory.hpp>. */ 242#undef LIBINT_USE_BOOST_TR1_MEMORY_HPP 243 244/* define if Libint is using <boost/tr1/type_traits.hpp>. */ 245#undef LIBINT_USE_BOOST_TR1_TYPE_TRAITS_HPP 246 247/* define if Libint is using <memory>. */ 248#undef LIBINT_USE_MEMORY 249 250/* define if Libint is using <tr1/array>. */ 251#undef LIBINT_USE_TR1_ARRAY 252 253/* define if Libint is using <tr1/memory>. */ 254#undef LIBINT_USE_TR1_MEMORY 255 256/* define if Libint is using <tr1/type_traits>. */ 257#undef LIBINT_USE_TR1_TYPE_TRAITS 258 259/* define if Libint is using <type_traits>. */ 260#undef LIBINT_USE_TYPE_TRAITS 261 262/* C++ compiler allows template with default params as template template parameter */ 263#undef CXX_ALLOWS_DEFPARAMTEMPLATE_AS_TEMPTEMPPARAM 264 265/* is shared_ptr in boost? */ 266#undef HAVE_SHARED_PTR_IN_BOOST 267 268/* define if Eigen library is available. */ 269#undef LIBINT_HAS_EIGEN 270 271/* define if system-wide Boost.Preprocessor is available */ 272#undef LIBINT_HAS_SYSTEM_BOOST_PREPROCESSOR_VARIADICS 273 274/* 275 Known orderings of cartesian Gaussians 276*/ 277#undef LIBINT_CGSHELL_ORDERING_STANDARD 278#undef LIBINT_CGSHELL_ORDERING_INTV3 279#undef LIBINT_CGSHELL_ORDERING_GAMESS 280#undef LIBINT_CGSHELL_ORDERING_ORCA 281#undef LIBINT_CGSHELL_ORDERING_BAGEL 282 283/* 284 Known orderings of solid harmonic Gaussians 285*/ 286#undef LIBINT_SHGSHELL_ORDERING_STANDARD 287#undef LIBINT_SHGSHELL_ORDERING_GAUSSIAN 288 289/* 290 Known sets of shell sets 291*/ 292#undef LIBINT_SHELL_SET_STANDARD 293#undef LIBINT_SHELL_SET_ORCA 294 295/* 296 Libint-independent features 297 */ 298 299/* have stdint.h ? */ 300#undef HAVE_STDINT_H 301 302/* have MPFR library ? */ 303#undef LIBINT_HAS_MPFR 304 305/* have posix_memalign ? */ 306#undef HAVE_POSIX_MEMALIGN 307 308/* compiler type detection */ 309#define LIBINT_COMPILER_ID_GNU 0 310#define LIBINT_COMPILER_ID_Clang 1 311#define LIBINT_COMPILER_ID_AppleClang 2 312#define LIBINT_COMPILER_ID_XLClang 3 313#define LIBINT_COMPILER_ID_Intel 4 314#if defined(__INTEL_COMPILER_BUILD_DATE) /* macros like __ICC and even __INTEL_COMPILER can be affected by command options like -no-icc */ 315# define LIBINT_COMPILER_ID LIBINT_COMPILER_ID_Intel 316# define LIBINT_COMPILER_IS_ICC 1 317#endif 318#if defined(__clang__) && !defined(LIBINT_COMPILER_IS_ICC) 319# define LIBINT_COMPILER_IS_CLANG 1 320# if defined(__apple_build_version__) 321# define LIBINT_COMPILER_ID LIBINT_COMPILER_ID_AppleClang 322# elif defined(__ibmxl__) 323# define LIBINT_COMPILER_ID LIBINT_COMPILER_ID_XLClang 324# else 325# define LIBINT_COMPILER_ID LIBINT_COMPILER_ID_Clang 326# endif 327#endif 328#if defined(__GNUG__) && !defined(LIBINT_COMPILER_IS_ICC) && !defined(LIBINT_COMPILER_IS_CLANG) 329# define LIBINT_COMPILER_ID LIBINT_COMPILER_ID_GNU 330# define LIBINT_COMPILER_IS_GCC 1 331#endif 332 333/* ----------- pragma helpers ---------------*/ 334#define LIBINT_PRAGMA(x) _Pragma(#x) 335/* same as LIBINT_PRAGMA(x), but expands x */ 336#define LIBINT_XPRAGMA(x) LIBINT_PRAGMA(x) 337/* "concats" a and b with a space in between */ 338#define LIBINT_CONCAT(a,b) a b 339#if defined(LIBINT_COMPILER_IS_CLANG) 340#define LIBINT_PRAGMA_CLANG(x) LIBINT_XPRAGMA( LIBINT_CONCAT(clang,x) ) 341#else 342#define LIBINT_PRAGMA_CLANG(x) 343#endif 344#if defined(LIBINT_COMPILER_IS_GCC) 345#define LIBINT_PRAGMA_GCC(x) LIBINT_XPRAGMA( LIBINT_CONCAT(GCC,x) ) 346#else 347#define LIBINT_PRAGMA_GCC(x) 348#endif 349 350#ifdef __has_cpp_attribute 351#if __has_cpp_attribute(deprecated) 352#define LIBINT_DEPRECATED(msg) [[deprecated(msg)]] 353#endif 354#endif 355#ifndef LIBINT_DEPRECATED 356#define LIBINT_DEPRECATED(msg) LIBINT_XPRAGMA( LIBINT_CONCAT(message, msg) ) 357#endif 358 359#endif /* header guard */ 360