fpmas 1.6
Classes | Namespaces | Macros | Typedefs
model.h File Reference
#include <typeindex>
#include <list>
#include <random>
#include "fpmas/api/graph/distributed_graph.h"
#include "fpmas/api/runtime/runtime.h"
#include "fpmas/api/utils/ptr_wrapper.h"
#include "fpmas/api/random/generator.h"
Include dependency graph for model.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  fpmas::api::model::AgentPtr
 
class  fpmas::api::model::Agent
 
class  fpmas::api::model::RandomAgent
 
class  fpmas::api::model::AgentTask
 
class  fpmas::api::model::Behavior
 
class  fpmas::api::model::AgentGroup
 
class  fpmas::api::model::Model
 

Namespaces

namespace  fpmas
 
namespace  fpmas::api
 
namespace  fpmas::api::model
 

Macros

#define FPMAS_AGENT_RNG   minstd_rand
 

Typedefs

typedef api::graph::DistributedNode< AgentPtr > fpmas::api::model::AgentNode
 
typedef api::graph::DistributedEdge< AgentPtr > fpmas::api::model::AgentEdge
 
typedef api::graph::DistributedGraph< AgentPtr > fpmas::api::model::AgentGraph
 
typedef api::graph::SetLocalNodeEvent< AgentPtr > fpmas::api::model::SetAgentLocalEvent
 
typedef api::graph::DistributedGraph< AgentPtr >::SetLocalNodeCallback fpmas::api::model::SetAgentLocalCallback
 
typedef api::graph::SetDistantNodeEvent< AgentPtr > fpmas::api::model::SetAgentDistantEvent
 
typedef api::graph::DistributedGraph< AgentPtr >::SetDistantNodeCallback fpmas::api::model::SetAgentDistantCallback
 
typedef int fpmas::api::model::GroupId
 
typedef std::type_index fpmas::api::model::TypeId
 
typedef api::utils::PtrWrapper< api::model::Agent > fpmas::api::model::WeakAgentPtr
 
typedef std::vector< std::reference_wrapper< AgentGroup > > fpmas::api::model::GroupList
 
using fpmas::api::model::LoadBalancing = fpmas::api::graph::LoadBalancing< AgentPtr >
 

Detailed Description

Model API

Macro Definition Documentation

◆ FPMAS_AGENT_RNG

#define FPMAS_AGENT_RNG   minstd_rand

Defines the random number generator embedded in each fpmas::api::model::RandomAgent.

The following parameters can be specified:

  • minstd_rand (default): not the best quality random number generator, but very efficient.
  • mt19937, mt19937_64: high quality random number engine, but very costly. Serializing a mersenne twister notably requires to serialize 312 64-bit integers, what represents at least 2496 bits for each agent.
  • random_device: Non deterministic and non reproducible random number generator.