TRIQS/TRIQS 4.0.0
Researching Interacting Quantum Systems
Loading...
Searching...
No Matches
utils.hpp
#include "./concepts.hpp"
#include "../utility/macros.hpp"
#include <nda/nda.hpp>
#include <cstddef>
#include <cstdint>
#include <functional>
#include <ranges>
#include <span>
#include <string_view>
#include <tuple>
#include <type_traits>
#include <utility>

Detailed Description

Provides various utilities used with Meshes.

Definition in file utils.hpp.

Go to the source code of this file.

Classes

struct  triqs::mesh::closest_mesh_point_t< T >
 Lazy struct used in various function overloads as a placeholder for the closest mesh point to a given value. More...

Enumerations

enum  triqs::mesh::statistic_enum
 Enum to specify particle statistics. More...

Functions

template<typename... Ts>
auto triqs::mesh::closest_mesh_pt (Ts &&...ts)
 Construct a triqs::mesh::closest_mesh_point_t object for a single value or a std::tuple of triqs::mesh::closest_mesh_point_t objects for multiple values.
template<Mesh M>
triqs::mesh::copy (M const &m)
 Get a copy of a mesh (for Python bindings).
template<Mesh M>
void triqs::mesh::copy_from (M &m1, M const &m2)
 Copy one mesh into another (for Python bindings).
template<typename... Ts>
uint64_t triqs::mesh::hash (Ts &&...ts)
 Generic hash function for multiple arguments.
template<nda::MemoryArray R>
std::size_t triqs::mesh::hash_bytes (R const &r)
 Hash the raw bytes of a contiguous nda array's elements (forwards to the byte-span overload).
std::size_t triqs::mesh::hash_bytes (std::span< std::byte const > bytes)
 Hash the raw bytes of a span via the standard library's std::hash<std::string_view>.
auto triqs::mesh::operator* (statistic_enum s1, statistic_enum s2)
 Multiplication operator for two triqs::mesh::statistic_enum objects.
long triqs::mesh::positive_modulo (long x, long y)
 Calculate the positive modulo of two integer numbers.
int triqs::mesh::sign (statistic_enum s)
 Get the sign associated with the given particle statistics.
template<MeshWithValues M>
auto triqs::mesh::values (M const &m)
 Get the values of all mesh points in a mesh.

Variables

template<Mesh M>
static constexpr bool triqs::mesh::is_product = false
 Constexpr bool that is true if the given triqs::mesh::Mesh type is a product of meshes, i.e. a triqs::mesh::prod.
template<Mesh M>
static constexpr int triqs::mesh::n_variables = 1
 Constexpr variable that holds the number of meshes in a triqs::mesh::Mesh type ( \( 1 \) for non-product meshes).