![]() |
Q2NS dev
ns-3 module
|
QMap that samples one gate from a weighted distribution and applies it. More...
#include <q2ns-qmap.h>
Public Member Functions | |
| void | SetDistribution (std::vector< QGate > gates, std::vector< double > weights) |
| Replace the weighted gate distribution. | |
| void | AddGate (const QGate &gate, double weight) |
| Append one weighted gate to the distribution. | |
| void | Clear () |
| Clear the weighted gate distribution. | |
| QMapInstance | Sample (ns3::Ptr< ns3::UniformRandomVariable > u, const QMapContext &ctx=QMapContext{}) const override |
| Sample a per-transmission QMapInstance. | |
Public Member Functions inherited from q2ns::QMap | |
| ~QMap () override=default | |
| Virtual destructor. | |
Static Public Member Functions | |
| static ns3::TypeId | GetTypeId () |
| Get the ns-3 TypeId. | |
Static Public Member Functions inherited from q2ns::QMap | |
| static ns3::TypeId | GetTypeId () |
| Get the ns-3 TypeId. | |
| static ns3::Ptr< QMap > | Compose (const ns3::Ptr< QMap > &a, const ns3::Ptr< QMap > &b) |
| Compose two QMaps into one sequential composite QMap. | |
| static ns3::Ptr< QMap > | Compose (const std::vector< ns3::Ptr< QMap > > &maps) |
| Compose a sequence of QMaps into one sequential composite QMap. | |
| static ns3::Ptr< QMap > | FromLambda (std::function< void(QNode &, std::shared_ptr< Qubit > &)> f) |
| Build a QMap from a simple lambda. | |
| static ns3::Ptr< QMap > | FromLambda (std::function< void(QNode &, std::shared_ptr< Qubit > &, ns3::Ptr< ns3::UniformRandomVariable >, const QMapContext &)> f) |
| Build a QMap from an advanced lambda. | |
| static double | RateToProb (double rate_per_s, const ns3::Time &t) |
| Convert a Poisson rate and elapsed time into an event probability. | |
Private Member Functions | |
| std::size_t | PickIndex_ (ns3::Ptr< ns3::UniformRandomVariable > u) const |
| Pick one gate index from the configured weighted distribution. | |
Private Attributes | |
| std::vector< QGate > | gates_ |
| Candidate gates. | |
| std::vector< double > | weights_ |
| Selection weights. | |
| double | totalWeight_ = 0.0 |
| Sum of all selection weights. | |
Additional Inherited Members | |
Protected Member Functions inherited from q2ns::QMap | |
| double | GetProb_ (const QMapContext &ctx) const |
| Return the effective application probability for this transmission. | |
| bool | Bernoulli_ (ns3::Ptr< ns3::UniformRandomVariable > u, const QMapContext &ctx) const |
| Perform one Bernoulli trial using the effective probability. | |
Static Protected Member Functions inherited from q2ns::QMap | |
| static void | SetLost_ (Qubit &q) |
| Mark a qubit lost through the standard registry-backed location path. | |
Protected Attributes inherited from q2ns::QMap | |
| double | p_ = 0.0 |
| Direct per-transmission probability. | |
| double | rate_ = 0.0 |
| Poisson event rate in 1/s. Overrides p_ when positive. | |
QMap that samples one gate from a weighted distribution and applies it.
The sampled gate is chosen once per transmission. As with other probabilistic QMaps, the overall application event may itself be gated by Probability or Rate.
Definition at line 404 of file q2ns-qmap.h.
| void q2ns::RandomGateQMap::AddGate | ( | const QGate & | gate, |
| double | weight | ||
| ) |
Append one weighted gate to the distribution.
| gate | Gate to add. |
| weight | Non-negative selection weight. |
Definition at line 354 of file q2ns-qmap.cc.
| void q2ns::RandomGateQMap::Clear | ( | ) |
Clear the weighted gate distribution.
Definition at line 346 of file q2ns-qmap.cc.
References gates_, totalWeight_, and weights_.
|
static |
Get the ns-3 TypeId.
Definition at line 336 of file q2ns-qmap.cc.
|
private |
Pick one gate index from the configured weighted distribution.
| u | Uniform random source. |
Definition at line 379 of file q2ns-qmap.cc.
|
overridevirtual |
Sample a per-transmission QMapInstance.
| u | Uniform random source. |
| ctx | Per-transmission context. |
Implements q2ns::QMap.
Definition at line 396 of file q2ns-qmap.cc.
| void q2ns::RandomGateQMap::SetDistribution | ( | std::vector< QGate > | gates, |
| std::vector< double > | weights | ||
| ) |
Replace the weighted gate distribution.
| gates | Candidate gates. |
| weights | Non-negative weights associated with the gates. |
Definition at line 363 of file q2ns-qmap.cc.
|
private |
|
private |
|
private |