|
AntHocNet 2.0.0
Paper-faithful ant-colony ad hoc routing: the shared core and its adapters
|
#include <cstdint>#include <deque>#include <functional>#include <map>#include <memory>#include <queue>#include <set>#include <string>#include <vector>#include "anthocnet/core/ant_router_logic.h"#include "anthocnet/core/config.h"#include "anthocnet/core/ports.h"Go to the source code of this file.
Classes | |
| class | ahn_web::SplitMix64 |
| SplitMix64: tiny, portable, and bit-identical on every platform (integer arithmetic only; the double is an exact 53-bit scaling). More... | |
| struct | ahn_web::Vec3 |
| A position in metres (z = altitude; 0 on planar worlds). More... | |
| struct | ahn_web::Leg |
| One straight leg of a node's trajectory: p0 at t0 to p1 at t1. More... | |
| struct | ahn_web::Mobility |
| A node's mobility model and its parameters. More... | |
| struct | ahn_web::LogEvent |
| One entry of the event log (see Ev for what each field means per kind). More... | |
| struct | ahn_web::Flow |
| A constant-bit-rate data flow and its running totals. More... | |
| class | ahn_web::Node |
| One AntHocNet node: the core logic plus the adapter state around it. More... | |
| class | ahn_web::World |
| The whole simulation: nodes, radio, mobility, traffic and the event queue. More... | |
Namespaces | |
| namespace | ahn_web |
| Built-in teaching scenarios: one per network family, shaped like the repo's presets but scaled down to what reads well on a screen. | |
Enumerations | |
| enum class | ahn_web::MobilityKind { ahn_web::Static , ahn_web::RandomWaypoint , ahn_web::GaussMarkov , ahn_web::Manhattan , ahn_web::Orbit } |
How a node moves. Values are part of the JS API (setMobility's kind). More... | |
| enum class | ahn_web::ChannelKind { ahn_web::Disk , ahn_web::Urban , ahn_web::Isl } |
| Which link rule the teaching radio uses. More... | |
| enum class | ahn_web::Ev : int { ahn_web::TxAnt = 1 , ahn_web::RxAnt = 2 , ahn_web::TxData = 3 , ahn_web::Deliver = 4 , ahn_web::Drop = 5 , ahn_web::RouteAdd = 6 , ahn_web::RouteDel = 7 , ahn_web::Queue = 8 , ahn_web::TxFail = 9 , ahn_web::NodeDown = 10 , ahn_web::NodeUp = 11 } |
| Event kinds of the log the front end animates and the parity test diffs. More... | |
| enum class | ahn_web::DropReason : int { ahn_web::Ttl = 1 , ahn_web::QueueTimeout = 2 , ahn_web::HoldCap = 3 , ahn_web::RepairDiscard = 4 , ahn_web::NodeOff = 5 } |
Why a data packet was lost (the peer field of an Ev::Drop event). More... | |
Functions | |
| double | ahn_web::detSin (double x) |
| sin / cos from arithmetic only (range reduction + Taylor series), so the native and WASM builds compute bit-identical orbits: libm's transcendental functions are not guaranteed to round the same on both. | |
| double | ahn_web::detCos (double x) |
| Vec3 | ahn_web::orbitPosition (const Mobility &m, const Vec3 ¢re, double t) |
| Where an Orbit puts a node at time t (centre = the field's centre, z = 0). | |