1 /* 2 * @BEGIN LICENSE 3 * 4 * ambit: C++ library for the implementation of tensor product calculations 5 * through a clean, concise user interface. 6 * 7 * Copyright (c) 2014-2017 Ambit developers. 8 * 9 * The copyrights for code used from other parties are included in 10 * the corresponding files. 11 * 12 * This file is part of ambit. 13 * 14 * Ambit is free software; you can redistribute it and/or modify 15 * it under the terms of the GNU Lesser General Public License as published by 16 * the Free Software Foundation, version 3. 17 * 18 * Ambit is distributed in the hope that it will be useful, 19 * but WITHOUT ANY WARRANTY; without even the implied warranty of 20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 21 * GNU Lesser General Public License for more details. 22 * 23 * You should have received a copy of the GNU Lesser General Public License along 24 * with ambit; if not, write to the Free Software Foundation, Inc., 25 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 26 * 27 * @END LICENSE 28 */ 29 30 // 31 // Created by Justin Turney on 10/20/15. 32 // 33 34 #ifndef AMBIT_COMMON_TYPES_H 35 #define AMBIT_COMMON_TYPES_H 36 37 #include <cstdio> 38 #include <utility> 39 #include <vector> 40 #include <map> 41 #include <string> 42 #include <tuple> 43 #include <functional> 44 #include <memory> 45 #include <tuple> 46 #include <sstream> 47 #include <iterator> 48 #include <cassert> 49 #include <stdexcept> 50 51 namespace ambit 52 { 53 54 using std::tuple; 55 using std::shared_ptr; 56 using std::unique_ptr; 57 using std::vector; 58 using std::string; 59 using std::map; 60 using std::pair; 61 using std::function; 62 using std::stringstream; 63 using std::ostringstream; 64 using std::ostream_iterator; 65 using std::istringstream; 66 67 static constexpr double numerical_zero__ = 1.0e-15; 68 69 // => Typedefs <= 70 using Dimension = vector<size_t>; 71 using IndexRange = vector<vector<size_t>>; 72 using Indices = vector<string>; 73 74 } 75 76 #endif // AMBIT_COMMON_TYPES_H 77