|
Maestro 0.3.11
Unified interface for quantum circuit simulation
|
Go to the source code of this file.
Namespaces | |
| namespace | qasm |
Macros | |
| #define | _SIMPLEOPS_H_ |
Typedefs | |
| using | qasm::ArgumentType = std::variant<std::string, IndexedId> |
| using | qasm::BarrierType = MixedListType |
| using | qasm::CondOpType = boost::fusion::vector<std::string, int, QopType> |
| using | qasm::CXGateCallType = boost::fusion::vector<ArgumentType, ArgumentType> |
| using | qasm::DeclarationRegistry = std::unordered_map<std::string, DeclarationKind> |
| using | qasm::ExpGatecallType = boost::fusion::vector<std::string, std::vector<Expression>, MixedListType> |
| using | qasm::GatecallType = std::variant<SimpleGatecallType, ExpGatecallType> |
| using | qasm::GateDeclOpType = std::variant<UopType, SimpleBarrierType> |
| using | qasm::GateDeclType = boost::fusion::vector<std::string, std::vector<std::string>, std::vector<std::string>> |
| using | qasm::InputDeclType = boost::fusion::vector<std::string, boost::optional<int>, std::string> |
| using | qasm::MeasureType = boost::fusion::vector<ArgumentType, ArgumentType> |
| using | qasm::MixedListType = std::vector<ArgumentType> |
| using | qasm::ModifiedUopType = boost::fusion::vector<ModifierListType, UopType> |
| using | qasm::ModifierListType = std::vector<ModifierType> |
| using | qasm::OpaqueDeclType = boost::fusion::vector<std::string, std::vector<std::string>, std::vector<std::string>> |
| using | qasm::ProgramType = boost::fusion::vector<std::vector<std::string>, double, std::vector<std::string>, std::vector<StatementType>> |
| using | qasm::QopType = StatementType |
| using | qasm::RegisterMap = std::unordered_map<std::string, IndexedId> |
| using | qasm::ResetType = ArgumentType |
| using | qasm::SimpleBarrierType = std::vector<std::string> |
| using | qasm::SimpleExpType = std::variant<double, int, std::string> |
| using | qasm::SimpleGatecallType = boost::fusion::vector<std::string, MixedListType> |
| using | qasm::StatementType = QoperationStatement |
| using | qasm::UGateCallType = boost::fusion::vector<std::vector<Expression>, ArgumentType> |
| using | qasm::UopType = std::variant<UGateCallType, CXGateCallType, GatecallType> |
Enumerations | |
| enum class | qasm::DeclarationKind { qasm::Qubit , qasm::Bit , qasm::Input , qasm::Gate , qasm::Opaque } |
| enum class | qasm::ModifierKind { qasm::Ctrl , qasm::NegCtrl , qasm::Inv , qasm::Pow } |
Functions | |
| std::string_view | qasm::DeclarationKindName (DeclarationKind kind) |
| void | qasm::RegisterDeclaration (DeclarationRegistry &declarations, const std::string &name, DeclarationKind kind) |
| void | qasm::RequireMatchingRegisterWidths (const std::vector< int > &left, const std::vector< int > &right, std::string_view operation) |
| std::vector< int > | qasm::ResolveRegisterOperand (const ArgumentType &argument, const RegisterMap ®isters, std::string_view kind) |
| double | qasm::ValidateInputBinding (const std::string &name, const std::string &type, const boost::optional< int > &width, double value) |
| void | qasm::ValidateInputDeclaration (const std::string &name, const std::string &type, const boost::optional< int > &width) |
| int | qasm::ValidateRegisterAllocation (const IndexedId &id, int currentSize, std::string_view kind) |
Classes for the qasm parser and interpreter, dealing with the simple declarations and operations.
It's supposed to support only open qasm 2.0.
Definition in file SimpleOps.h.
| struct qasm::CondBitTest |
Definition at line 354 of file SimpleOps.h.
| Class Members | ||
|---|---|---|
| IndexedId | bit | |
| bool | expected = true | |
| struct qasm::CondHeadType |
Definition at line 360 of file SimpleOps.h.
| Class Members | ||
|---|---|---|
| vector< CondBitTest > | bits | |
| bool | isBitForm = false | |
| string | regId | |
| int | regValue = 0 | |
| struct qasm::DelayType |
Definition at line 325 of file SimpleOps.h.
| Class Members | ||
|---|---|---|
| double | duration = 0.0 | |
| MixedListType | operands | |
| struct qasm::MakeIndexedIdExpression::result |
Definition at line 116 of file SimpleOps.h.
| Class Members | ||
|---|---|---|
| typedef IndexedId | type | |
| struct qasm::MakePowModifierExpression::result |
Definition at line 217 of file SimpleOps.h.
| Class Members | ||
|---|---|---|
| typedef ModifierType | type | |
| struct qasm::MakeCtrlModifierExpression::result |
Definition at line 249 of file SimpleOps.h.
| Class Members | ||
|---|---|---|
| typedef ModifierType | type | |
| struct qasm::MakeRegCondHeadExpression::result |
Definition at line 372 of file SimpleOps.h.
| Class Members | ||
|---|---|---|
| typedef CondHeadType | type | |
| struct qasm::MakeCondBitTestExpression::result |
Definition at line 391 of file SimpleOps.h.
| Class Members | ||
|---|---|---|
| typedef CondBitTest | type | |
| struct qasm::MakeBitCondHeadExpression::result |
Definition at line 409 of file SimpleOps.h.
| Class Members | ||
|---|---|---|
| typedef CondHeadType | type | |
| struct qasm::AddCregExpr::result |
Definition at line 432 of file SimpleOps.h.
| Class Members | ||
|---|---|---|
| typedef IndexedId | type | |
| struct qasm::AddQregExpr::result |
Definition at line 457 of file SimpleOps.h.
| Class Members | ||
|---|---|---|
| typedef IndexedId | type | |
| struct qasm::AddCommentExpr::result |
Definition at line 482 of file SimpleOps.h.
| Class Members | ||
|---|---|---|
| typedef QoperationStatement | type | |
| struct qasm::AddDeclarationExpr::result |
Definition at line 502 of file SimpleOps.h.
| Class Members | ||
|---|---|---|
| typedef QoperationStatement | type | |
| struct qasm::AddInputDeclExpr::result |
Definition at line 606 of file SimpleOps.h.
| Class Members | ||
|---|---|---|
| typedef QoperationStatement | type | |
| struct qasm::AddMeasureExpr::result |
Definition at line 644 of file SimpleOps.h.
| Class Members | ||
|---|---|---|
| typedef QoperationStatement | type | |
| struct qasm::RejectMeasureWithoutTargetExpr::result |
Definition at line 677 of file SimpleOps.h.
| Class Members | ||
|---|---|---|
| typedef QoperationStatement | type | |
| struct qasm::AddResetExpr::result |
Definition at line 694 of file SimpleOps.h.
| Class Members | ||
|---|---|---|
| typedef QoperationStatement | type | |
| struct qasm::AddBarrierExpr::result |
Definition at line 712 of file SimpleOps.h.
| Class Members | ||
|---|---|---|
| typedef QoperationStatement | type | |
| struct qasm::MakeDelayExpr::result |
Definition at line 749 of file SimpleOps.h.
| Class Members | ||
|---|---|---|
| typedef DelayType | type | |
| struct qasm::AddDelayExpr::result |
Definition at line 773 of file SimpleOps.h.
| Class Members | ||
|---|---|---|
| typedef QoperationStatement | type | |
| struct qasm::AddOpaqueDeclExpr::result |
Definition at line 796 of file SimpleOps.h.
| Class Members | ||
|---|---|---|
| typedef QoperationStatement | type | |
| struct qasm::AddGateDeclExpr::result |
Definition at line 830 of file SimpleOps.h.
| Class Members | ||
|---|---|---|
| typedef QoperationStatement | type | |
| #define _SIMPLEOPS_H_ |
Definition at line 16 of file SimpleOps.h.