21 #ifndef _libint2_include_libint2_util_smallvector_h_ 22 #define _libint2_include_libint2_util_smallvector_h_ 26 #if __has_include(<boost/version.hpp>) && __has_include(<boost/container/small_vector.hpp>) && !defined(LIBINT2_DISABLE_BOOST_CONTAINER_SMALL_VECTOR) 27 # include <boost/version.hpp> 28 # if defined(BOOST_VERSION) 29 # if (BOOST_VERSION / 100000 == 1) && ((BOOST_VERSION / 100 % 1000) >= 61) 30 # define LIBINT2_HAS_BOOST_CONTAINER_SMALL_VECTOR_H 1 31 # if !defined(LIBINT2_SVECTOR_OPTIMIZED_RANK) // user can override by defining LIBINT2_SVECTOR_OPTIMIZED_RANK 32 # define LIBINT2_SVECTOR_OPTIMIZED_RANK 6 34 # include <boost/container/small_vector.hpp> 35 # endif // boost version >= 1.61 36 # endif // defined(BOOST_VERSION) 43 #if defined(LIBINT2_HAS_BOOST_CONTAINER_SMALL_VECTOR_H) 44 #define LIBINT2_USES_BOOST_CONTAINER_SMALL_VECTOR_AS_SVECTOR 1 45 template <
typename T>
using svector = boost::container::small_vector<T, LIBINT2_SVECTOR_OPTIMIZED_RANK>;
47 template <
typename T>
using svector = std::vector<T>;
52 #endif // header guard Defaults definitions for various parameters assumed by Libint.
Definition: algebra.cc:24