8#include <triqs/det_manip/det_manip.hpp>
10namespace triqs_ctint {
20 static constexpr uint32_t
n_max = std::numeric_limits<uint32_t>::max();
32 operator double()
const {
return beta * double(
n) /
n_max; }
35 bool operator==(
const tau_t &tau)
const {
return n == tau.
n; }
36 bool operator!=(
const tau_t &tau)
const {
return n != tau.n; }
37 bool operator<(
const tau_t &tau)
const {
return n < tau.n; }
38 bool operator>(
const tau_t &tau)
const {
return n > tau.n; }
39 bool operator<=(
const tau_t &tau)
const {
return n <= tau.n; }
40 bool operator>=(
const tau_t &tau)
const {
return n >= tau.n; }
44 return out << double(tau) <<
" [tau_t : beta = " << tau.
beta <<
" n = " << tau.
n <<
"]";
68 std::pair<double, double> cyclic_difference(tau_t
const &tau1, tau_t
const &tau2);
69 std::pair<double, double> cyclic_difference(
double tau1,
double tau2);
72 tau_t make_tau_t(
double tau);
94 std::ostream &operator<<(std::ostream &os,
vertex_idx_t const &v);
121 std::ostream &operator<<(std::ostream &os,
vertex_t const &v);
static constexpr tau_t get_zero()
Return \tau = 0.
static constexpr uint32_t n_max
Maximum value that can be stored inside a uint32_t.
uint32_t n
$\tau$ value, represented as an integer on a very fine grid
static constexpr tau_t get_beta()
Return \tau = \beta.
friend std::ostream & operator<<(std::ostream &out, tau_t const &tau)
Operator allowing output to std::ostream.
static tau_t get_random(RNG &rng)
Get a random point in $[0,\beta[$.
static constexpr tau_t get_beta_minus_minus()
Return \tau = beta^{–} = \beta - 2*\delta.
static constexpr tau_t get_beta_minus()
Return \tau = beta^{-} = \beta - \delta.
static double beta
Inverse temperature associated with all $\tau$ points.
static constexpr tau_t get_zero_plus()
Return \tau = 0^{+} = 0 + \delta.
static constexpr tau_t get_zero_plus_plus()
Return \tau = 0^{++} = 0 + 2*\delta.
int b2
Second operator of the vertex (ingoing, c): block index, non-block.
int b4
Fourth operator of the vertex (ingoing, c): block index, non-block.
int b1
First operator of the vertex (outgoing, c^\dagger): block index, non-block.
int b3
Third operator of the vertex (outgoing, c^\dagger): block index, non-block.
vertex_idx_t idx
Object containing discrete quantum numbers for external legs, i.e. block and non-block index.
U_scalar_t amplitude
Amplitude of the vertex, i.e. U, U(tau1-tau2), etc...
int s
Value of auxiliary spin.
int vertex_label
The label of the vertex (position in h_int).
tau_t tau1
Imaginary times for all four external legs (c^\dagger, c, c^\dagger, c).
double proposition_proba
Probability of proposition for this vertex.