fpmas 1.6
Classes | Namespaces | Macros | Functions
distributed_id.h File Reference
#include "hedley/hedley.h"
#include <functional>
#include <nlohmann/json.hpp>
#include <mpi.h>
#include <climits>
#include <type_traits>
Include dependency graph for distributed_id.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  fpmas::api::communication::MpiDistributedId
 
class  fpmas::api::graph::DistributedId
 
struct  std::hash< DistributedId >
 
struct  nlohmann::adl_serializer< DistributedId >
 

Namespaces

namespace  fpmas
 
namespace  fpmas::api
 
namespace  fpmas::api::graph
 
namespace  fpmas::api::communication
 
namespace  nlohmann
 

Macros

#define FPMAS_ID_TYPE   std::uint_fast32_t
 

Functions

std::ostream & fpmas::api::graph::operator<< (std::ostream &os, const DistributedId &id)
 
std::string fpmas::to_string (const api::graph::DistributedId &id)
 

Detailed Description

DistributedId implementation.

Macro Definition Documentation

◆ FPMAS_ID_TYPE

#define FPMAS_ID_TYPE   std::uint_fast32_t

Type used to represent the "id" part of an fpmas::api::graph::DistributedId.

This type defines the maximum count of Nodes and Edges that might be created during a single simulation. (e.g. 65535 for a 16 bit unsigned integer)

It can be user defined at compile time using cmake -DFPMAS_ID_TYPE=<unsigned integer type> ..

By default, the std::uint_fast32_t type is used, that can be 32 or 64 bit depending on the fastest unsigned integer type of at least 32 bits that can be processed by the current system.

Any unsigned integer type can be specified. The std::uintN_t like types defined in the C++ standard can notably be used to fix the FPMAS_ID_TYPE size independently of the underlying system.

FPMAS currently supports 16, 32 and 64 unsigned integer types.