23#include <triqs/gfs.hpp>
24#include <triqs/mesh.hpp>
28#include <triqs/operators/many_body_operator.hpp>
29#include <triqs/hilbert_space/state.hpp>
30#include <triqs/hilbert_space/imperative_operator.hpp>
35namespace triqs_cthyb {
38using namespace triqs::gfs;
39using namespace triqs::mesh;
40using namespace triqs::hilbert_space;
41namespace operators = triqs::operators;
44inline bool isfinite(dcomplex
const &x) {
return std::isfinite(real(x)) && std::isfinite(imag(x)); }
46inline double real(
double x) {
return x; }
47inline double imag(
double) {
return 0; }
52#ifdef HYBRIDISATION_IS_COMPLEX
53using det_scalar_t = dcomplex;
54using delta_target_t = matrix_valued;
56using det_scalar_t = double;
57using delta_target_t = matrix_real_valued;
60#ifdef LOCAL_HAMILTONIAN_IS_COMPLEX
61using h_scalar_t = dcomplex;
62static constexpr bool is_h_scalar_complex =
true;
64using h_scalar_t = double;
65static constexpr bool is_h_scalar_complex =
false;
68using mc_weight_t =
decltype(h_scalar_t{} * det_scalar_t{});
69using many_body_op_t = triqs::operators::many_body_operator_generic<h_scalar_t>;
70using matrix_t = matrix<h_scalar_t>;
71using G_target_t = std::conditional_t<triqs::is_complex<mc_weight_t>::value, matrix_valued, matrix_real_valued>;