1#ifndef __UTIL_INTEGRALS_DEFINED
2#define __UTIL_INTEGRALS_DEFINED
58 IntegralInfo(std::string n, std::array<Index, 4> i, std::string is)
64 std::vector<IntegralInfo> result;
65 std::vector<IntegralInfo> targets;
66 std::set<std::string> names;
70 for (
auto &t : targets) {
71 std::vector<IntegralInfo> equivalents;
73 equivalents.push_back({
vSym(t.name),
vSym(t.indices),
vSym(t.ids)});
74 equivalents.push_back({
hSym(t.name),
hSym(t.indices),
hSym(t.ids)});
76 for (
auto &eq : equivalents) {
77 if (names.count(eq.name) >= 1)
continue;
78 names.insert(eq.name);
79 result.push_back({eq.name, eq.indices, eq.ids});
Definition Algorithm.hpp:10
A vlSym(const A &a)
Definition Integrals.hpp:35
A permuteIndices(const A &a, size_t i, size_t j)
Definition Integrals.hpp:11
A vSym(const A &a)
Definition Integrals.hpp:21
A hSym(const A &a)
Definition Integrals.hpp:28
A upTr(const A &a)
Definition Integrals.hpp:41
A downTr(const A &a)
Definition Integrals.hpp:47
Index
Definition Integrals.hpp:8
@ NV
Definition Integrals.hpp:8
@ NO
Definition Integrals.hpp:8
@ NP
Definition Integrals.hpp:8
Definition Integrals.hpp:54
std::vector< IntegralInfo > getAntisymmetrizers() const
Definition Integrals.hpp:63
std::string ids
Definition Integrals.hpp:57
IntegralInfo(std::string n, std::array< Index, 4 > i, std::string is)
Definition Integrals.hpp:58
std::string name
Definition Integrals.hpp:55
std::array< Index, 4 > indices
Definition Integrals.hpp:56