pomerol  2.1
Data Structures | Macros | Typedefs | Enumerations | Functions | Variables
Basic declarations

Data Structures

struct  Pomerol::Permutation3
 Permutation of 3 elements. More...
 
struct  Pomerol::Permutation4
 Permutation of 4 elements. More...
 

Macros

#define DEBUG(MSG)   std::cout << MSG_PREFIX << MSG << '\n'
 Print a debugging message to the standard output with a source file name and line number annotation. More...
 
#define INFO(MSG)   std::cout << MSG << '\n'
 Print a message to the standard output. More...
 
#define INFO_NONEWLINE(MSG)   std::cout << MSG
 Print a message without a trailing new line character to the standard output. More...
 
#define ERROR(MSG)   std::cerr << MSG_PREFIX << MSG << '\n'
 Print a message to the standard error stream. More...
 

Typedefs

using Pomerol::RealType = double
 Real floating point type. More...
 
using Pomerol::ComplexType = std::complex< double >
 Complex floating point type. More...
 
using Pomerol::ParticleIndex = unsigned int
 Index of a single particle degree of freedom. More...
 
using Pomerol::QuantumState = libcommute::sv_index_type
 Index of a many-body state. More...
 
using Pomerol::ComplexMatrixType = Eigen::Matrix< ComplexType, Eigen::Dynamic, Eigen::Dynamic, Eigen::AutoAlign|Eigen::RowMajor >
 Dense complex matrix. More...
 
template<bool Complex>
using Pomerol::MelemType = typename std::conditional< Complex, ComplexType, RealType >::type
 
template<typename ScalarType >
using Pomerol::LOperatorType = libcommute::loperator< ScalarType, libcommute::fermion, libcommute::boson >
 
template<bool Complex>
using Pomerol::LOperatorTypeRC = libcommute::loperator< MelemType< Complex >, libcommute::fermion, libcommute::boson >
 
template<bool Complex>
using Pomerol::MatrixType = Eigen::Matrix< MelemType< Complex >, Eigen::Dynamic, Eigen::Dynamic, Eigen::AutoAlign|Eigen::RowMajor >
 
using Pomerol::ComplexVectorType = Eigen::Matrix< ComplexType, Eigen::Dynamic, 1, Eigen::AutoAlign >
 Dense complex vector. More...
 
using Pomerol::RealVectorType = Eigen::Matrix< RealType, Eigen::Dynamic, 1, Eigen::AutoAlign >
 Dense real vector. More...
 
template<bool Complex>
using Pomerol::VectorType = Eigen::Matrix< MelemType< Complex >, Eigen::Dynamic, 1, Eigen::AutoAlign >
 
template<bool Complex>
using Pomerol::ColMajorMatrixType = Eigen::SparseMatrix< MelemType< Complex >, Eigen::ColMajor >
 
template<bool Complex>
using Pomerol::RowMajorMatrixType = Eigen::SparseMatrix< MelemType< Complex >, Eigen::RowMajor >
 

Enumerations

enum  Pomerol::Channel : int { Pomerol::PP, Pomerol::PH, Pomerol::xPH }
 Channel, in which a susceptibility function is defined. More...
 

Functions

std::ostream & Pomerol::operator<< (std::ostream &os, Channel channel)
 
std::size_t Pomerol::hash_binned_real (double x, double bin_size)
 

Variables

static const ComplexType Pomerol::I = ComplexType(0.0, 1.0)
 Imaginary unit \(i\). More...
 
const std::array< Permutation3, 6 > Pomerol::permutations3
 An array of all 3! = 6 permutations of 3 elements. More...
 
const std::array< Permutation4, 24 > Pomerol::permutations4
 An array of all 4! = 24 permutations of 4 elements. More...
 

Detailed Description

Macro Definition Documentation

◆ DEBUG

#define DEBUG (   MSG)    std::cout << MSG_PREFIX << MSG << '\n'

Print a debugging message to the standard output with a source file name and line number annotation.

Definition at line 58 of file Misc.hpp.

◆ ERROR

#define ERROR (   MSG)    std::cerr << MSG_PREFIX << MSG << '\n'

Print a message to the standard error stream.

Definition at line 67 of file Misc.hpp.

◆ INFO

#define INFO (   MSG)    std::cout << MSG << '\n'

Print a message to the standard output.

Definition at line 63 of file Misc.hpp.

◆ INFO_NONEWLINE

#define INFO_NONEWLINE (   MSG)    std::cout << MSG

Print a message without a trailing new line character to the standard output.

Definition at line 65 of file Misc.hpp.

Typedef Documentation

◆ ColMajorMatrixType

template<bool Complex>
using Pomerol::ColMajorMatrixType = typedef Eigen::SparseMatrix<MelemType<Complex>, Eigen::ColMajor>

Sparse real or complex matrix with column-major storage.

Template Parameters
ComplexWhether the matrix in question is complex.

Definition at line 115 of file Misc.hpp.

◆ ComplexMatrixType

using Pomerol::ComplexMatrixType = typedef Eigen::Matrix<ComplexType, Eigen::Dynamic, Eigen::Dynamic, Eigen::AutoAlign | Eigen::RowMajor>

Dense complex matrix.

Definition at line 82 of file Misc.hpp.

◆ ComplexType

using Pomerol::ComplexType = typedef std::complex<double>

Complex floating point type.

Definition at line 72 of file Misc.hpp.

◆ ComplexVectorType

using Pomerol::ComplexVectorType = typedef Eigen::Matrix<ComplexType, Eigen::Dynamic, 1, Eigen::AutoAlign>

Dense complex vector.

Definition at line 105 of file Misc.hpp.

◆ LOperatorType

template<typename ScalarType >
using Pomerol::LOperatorType = typedef libcommute::loperator<ScalarType, libcommute::fermion, libcommute::boson>

Linear operator with a given type of coefficients.

Template Parameters
ScalarTypeCoefficient type.

Definition at line 91 of file Misc.hpp.

◆ LOperatorTypeRC

template<bool Complex>
using Pomerol::LOperatorTypeRC = typedef libcommute::loperator<MelemType<Complex>, libcommute::fermion, libcommute::boson>

Linear operator with either real or complex coefficients.

Template Parameters
ComplexWhether the operator in question has complex coefficients.

Definition at line 96 of file Misc.hpp.

◆ MatrixType

template<bool Complex>
using Pomerol::MatrixType = typedef Eigen::Matrix<MelemType<Complex>, Eigen::Dynamic, Eigen::Dynamic, Eigen::AutoAlign | Eigen::RowMajor>

Dense real or complex matrix.

Template Parameters
ComplexWhether the matrix in question is complex.

Definition at line 102 of file Misc.hpp.

◆ MelemType

template<bool Complex>
using Pomerol::MelemType = typedef typename std::conditional<Complex, ComplexType, RealType>::type

Element type of a real or complex matrix.

Template Parameters
ComplexWhether the matrix in question is complex.

Definition at line 86 of file Misc.hpp.

◆ ParticleIndex

using Pomerol::ParticleIndex = typedef unsigned int

Index of a single particle degree of freedom.

Definition at line 75 of file Misc.hpp.

◆ QuantumState

using Pomerol::QuantumState = typedef libcommute::sv_index_type

Index of a many-body state.

Definition at line 78 of file Misc.hpp.

◆ RealType

using Pomerol::RealType = typedef double

Real floating point type.

Definition at line 70 of file Misc.hpp.

◆ RealVectorType

using Pomerol::RealVectorType = typedef Eigen::Matrix<RealType, Eigen::Dynamic, 1, Eigen::AutoAlign>

Dense real vector.

Definition at line 107 of file Misc.hpp.

◆ RowMajorMatrixType

template<bool Complex>
using Pomerol::RowMajorMatrixType = typedef Eigen::SparseMatrix<MelemType<Complex>, Eigen::RowMajor>

Sparse real or complex matrix with row-major storage.

Template Parameters
ComplexWhether the matrix in question is complex.

Definition at line 118 of file Misc.hpp.

◆ VectorType

template<bool Complex>
using Pomerol::VectorType = typedef Eigen::Matrix<MelemType<Complex>, Eigen::Dynamic, 1, Eigen::AutoAlign>

Dense real or complex vector.

Template Parameters
ComplexWhether the vector in question is complex.

Definition at line 111 of file Misc.hpp.

Enumeration Type Documentation

◆ Channel

enum Pomerol::Channel : int

Channel, in which a susceptibility function is defined.

Enumerator
PP 

Particle-particle channel.

PH 

Particle-hole channel.

xPH 

Crossed particle-hole channel.

Definition at line 160 of file Misc.hpp.

Function Documentation

◆ hash_binned_real()

std::size_t Pomerol::hash_binned_real ( double  x,
double  bin_size 
)

Hash function for real numbers that gives the same hash value for all numbers falling into the same small interval (bin).

Parameters
[in]xValue to be hashed.
[in]bin_sizeSize of the interval.
Returns
Hash value

◆ operator<<()

std::ostream& Pomerol::operator<< ( std::ostream &  os,
Channel  channel 
)

Variable Documentation

◆ I

const ComplexType Pomerol::I = ComplexType(0.0, 1.0)
static

Imaginary unit \(i\).

Definition at line 121 of file Misc.hpp.

◆ permutations3

const std::array<Permutation3, 6> Pomerol::permutations3

An array of all 3! = 6 permutations of 3 elements.

◆ permutations4

const std::array<Permutation4, 24> Pomerol::permutations4

An array of all 4! = 24 permutations of 4 elements.