QuISP
Loading...
Searching...
No Matches
Runtime.h File Reference
#include <cassert>
#include <cstddef>
#include <deque>
#include <iostream>
#include <stdexcept>
#include <tuple>
#include <unordered_map>
#include <variant>
#include <vector>
#include "InstructionVisitor.h"
#include "RuleSet.h"
#include "macro_utils.h"
#include "Value.h"
#include "opcode.h"
#include "types.h"
Include dependency graph for Runtime.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  quisp::runtime::Register
 
class  quisp::runtime::Runtime
 Runtime class is responsible for executing the given RuleSet and the states' management. More...
 
struct  quisp::runtime::Runtime::ICallBack
 ICallBack is an interface for the callback of the Runtime. More...
 

Namespaces

namespace  quisp
 
namespace  quisp::runtime
 

Typedefs

using quisp::runtime::QubitResources = std::multimap<std::pair<QNodeAddr, RuleId>, IQubitRecord*>
 (partner's qnode addr, assigned RuleId) => [local half of the bell pair qubit record]
 
using quisp::runtime::QubitResourcesWithSequenceNumbers = std::map<std::tuple<QNodeAddr, RuleId, SequenceNumber>, IQubitRecord*>
 (partner's qnode addr, assigned RuleId, sequence number) => [local half of the stationary bell pair qubit record]
 
using quisp::runtime::SequenceNumberTracker = std::map<IQubitRecord*, std::tuple<QNodeAddr, RuleId, SequenceNumber>>
 
using quisp::runtime::SequenceNumberCounter = std::map<std::pair<QNodeAddr, RuleId>, SequenceNumber>
 ResourceId needs to be increment each time a qubit of certain properties (same <QNodeAddr>) is added to the Rule.
 
using quisp::runtime::MessageResources = std::map<RuleId, std::deque<MessageRecord>>
 Store messages for each rule for decision making mainly used for WaitRules (e.g., purification, Pauli Frame correction).
 
using quisp::runtime::QubitNameMap = std::unordered_map<QubitId, IQubitRecord*>
 QubitId and qubit record map. This is initialized in before each Program execution.
 
using quisp::runtime::Memory = std::unordered_map<MemoryKey, MemoryValue>
 Memory is a simple dict to store the value during RuleSet execution.