hb.h File Reference
#include "mpqc/math/fock/iter.h"
#include "mpqc/math/fock/orb.h"
#include "mpqc/util/misc/generator.h"
#include "mpqc/util/misc/tuple.h"
#include <btas/tensor.h>
#include <boost/iterator/iterator_facade.hpp>
#include <array>
#include <map>
#include <utility>
#include <vector>
Include dependency graph for hb.h:
This graph shows which files directly or indirectly include this file:

Classes

class  mpqc::HBSparseTensor< RR, RC, Abs, T >
 Heat-bath sparse representation of a tensor of rank RI+RO More...
 
struct  mpqc::HBSparseTensor< RR, RC, Abs, T >::Value
 
struct  mpqc::HBSparseTensor< RR, RC, Abs, T >::Element
 
class  mpqc::HBTupleGenerator< RO, RI, AbsHBData, T >
 
struct  mpqc::utility::make_generator< HBTupleGenerator< RO, RI, AbsHBData, T > >
 
struct  mpqc::HBCompositeGenerator< TGenerator, AbsHBData, T, Ranks >
 Combines a generator producing tuples with HBTupleGenerator. More...
 
struct  mpqc::CreIndicesUnoccupied< String >
 checks if created indices are unoccupied in a string (or a pair of strings) More...
 
struct  mpqc::HBStringReplacementGenerator< RC, RA, String, AbsHBData, T >
 
struct  mpqc::utility::make_generator< HBStringReplacementGenerator< RC, RA, String, AbsHBData, T > >
 
struct  mpqc::HBDeterminantReplacementGenerator< RCa, RCb, RAa, RAb, StringOrStringRange, AbsHBData, T >
 
struct  mpqc::utility::make_generator< HBDeterminantReplacementGenerator< RCa, RCb, RAa, RAb, StringOrStringRange, AbsHBData, T > >
 

Namespaces

 mpqc
 The top-level namespace for all Massively Parallel Quantum Chemistry package.
 
 mpqc::detail
 

Functions

template<class CharT , class Traits , std::size_t RR, std::size_t RC, bool Abs, typename T >
std::basic_ostream< CharT, Traits > & mpqc::operator<< (std::basic_ostream< CharT, Traits > &os, const HBSparseTensor< RR, RC, Abs, T > &hbtensor)
 
template<std::size_t RC, std::size_t RA, typename FString , bool AbsHBData = true, typename T = double>
auto mpqc::make_hb_str_repl (const FString &str, std::shared_ptr< HBSparseTensor< RC, RA, AbsHBData, T >> hb_data, typename HBSparseTensor< RC, RA, AbsHBData, T >::magnitude_type eps)
 makes an HB generator of string replacements More...
 
template<std::size_t RCa, std::size_t RCb, std::size_t RAa, std::size_t RAb, typename StringOrStringRange , bool AbsHBData = true, typename T = double>
auto mpqc::make_hb_sd_repl (const SlaterDeterminant< StringOrStringRange > &sd, std::shared_ptr< HBSparseTensor< RCa+RCb, RAa+RAb, AbsHBData, T >> hb_data, typename HBSparseTensor< RCa+RCb, RAa+RAb, AbsHBData, T >::magnitude_type eps)
 makes an HB generator of determinant replacements More...
 
template<std::size_t R>
constexpr std::array< char, R+1 > mpqc::detail::make_opstr (const char S)
 
template<std::size_t RCa, std::size_t RCb, std::size_t RAa, std::size_t RAb, typename String , bool AbsHBData = true, typename T = double, typename ReplFilter = const decltype(detail::always_true)&>
void mpqc::generate_hb_sd_repl (SlaterDeterminantSparseMatrix< String > &hb_sdset, std::shared_ptr< HBSparseTensor< RCa+RCb, RAa+RAb, AbsHBData, T >> hb_data, const SlaterDeterminant< String > &sd, typename HBSparseTensor< RCa+RCb, RAa+RAb, AbsHBData, T >::magnitude_type eps, bool debug=false, ReplFilter &&repl_filter=detail::always_true)
 HB-generates determinants and inserts into a SlaterDeterminantSet. More...
 
template<std::size_t RCa, std::size_t RCb, std::size_t RAa, std::size_t RAb, typename StringSet , bool AbsHBData = true, typename T = double>
void mpqc::generate_hb_sd_repl (SlaterDeterminantSet< StringSet > &hb_sdset, std::shared_ptr< HBSparseTensor< RCa+RCb, RAa+RAb, AbsHBData, T >> hb_data, const SlaterDeterminant< StringSet > &sd, typename HBSparseTensor< RCa+RCb, RAa+RAb, AbsHBData, T >::magnitude_type eps, bool debug=false)
 HB-generates determinants and inserts into a SlaterDeterminantSet. More...
 

Variables

constexpr auto mpqc::detail::always_true = [](const auto& any) { return true; }