|
Maestro 0.3.1
Unified interface for quantum circuit simulation
|
Enumerations | |
| enum class | DeclarationKind { Qubit , Bit , Input , Gate , Opaque } |
| enum class | ModifierKind { Ctrl , NegCtrl , Inv , Pow } |
Functions | |
| void | ApplyCondition (StatementType &stmt, const std::vector< int > &conditionBits, const std::vector< bool > &expectedValues) |
| template<typename Expr> | |
| static AbstractSyntaxTreePtr | Clone (Expr const &t) |
| std::string_view | DeclarationKindName (DeclarationKind kind) |
| std::vector< bool > | DecodeRegisterCondition (const std::string ®isterName, int value, size_t width) |
| double | EvaluateGateParameter (const Expression ¶meter, const std::unordered_map< std::string, double > &variables) |
| template<class Time> | |
| std::shared_ptr< Circuits::ICondition > | MakeEqualCondition (const std::vector< int > &conditionBits, const std::vector< bool > &expectedValues) |
| void | RegisterDeclaration (DeclarationRegistry &declarations, const std::string &name, DeclarationKind kind) |
| void | RejectPredicateMutationBeforeReevaluation (const std::vector< QopType > &body, const std::vector< int > &conditionBits, bool followedByElse, std::string_view branchName) |
| void | RequireMatchingRegisterWidths (const std::vector< int > &left, const std::vector< int > &right, std::string_view operation) |
| std::vector< int > | ResolveRegisterOperand (const ArgumentType &argument, const RegisterMap ®isters, std::string_view kind) |
| double | ValidateInputBinding (const std::string &name, const std::string &type, const boost::optional< int > &width, double value) |
| void | ValidateInputDeclaration (const std::string &name, const std::string &type, const boost::optional< int > &width) |
| int | ValidateRegisterAllocation (const IndexedId &id, int currentSize, std::string_view kind) |
| struct qasm::CondBitTest |
Definition at line 330 of file SimpleOps.h.
| Class Members | ||
|---|---|---|
| IndexedId | bit | |
| bool | expected = true | |
| struct qasm::CondHeadType |
Definition at line 335 of file SimpleOps.h.
| Class Members | ||
|---|---|---|
| vector< CondBitTest > | bits | |
| bool | isBitForm = false | |
| string | regId | |
| int | regValue = 0 | |
| struct qasm::DelayType |
Definition at line 303 of file SimpleOps.h.
| Class Members | ||
|---|---|---|
| double | duration = 0.0 | |
| MixedListType | operands | |
| typedef std::shared_ptr<AbstractSyntaxTree> qasm::AbstractSyntaxTreePtr |
| using qasm::ArgumentType = std::variant<std::string, IndexedId> |
Definition at line 111 of file SimpleOps.h.
| using qasm::BarrierType = MixedListType |
Definition at line 302 of file SimpleOps.h.
| using qasm::CondOpType = boost::fusion::vector<std::string, int, QopType> |
Definition at line 309 of file SimpleOps.h.
| using qasm::CXGateCallType = boost::fusion::vector<ArgumentType, ArgumentType> |
Definition at line 165 of file SimpleOps.h.
| using qasm::DeclarationRegistry = std::unordered_map<std::string, DeclarationKind> |
Definition at line 48 of file SimpleOps.h.
| using qasm::ExpGatecallType |
Definition at line 159 of file SimpleOps.h.
| using qasm::GatecallType = std::variant<SimpleGatecallType, ExpGatecallType> |
Definition at line 161 of file SimpleOps.h.
| using qasm::GateDeclOpType = std::variant<UopType, SimpleBarrierType> |
Definition at line 394 of file SimpleOps.h.
| using qasm::GateDeclType |
Definition at line 390 of file SimpleOps.h.
| using qasm::InputDeclType |
Definition at line 114 of file SimpleOps.h.
| using qasm::MeasureType = boost::fusion::vector<ArgumentType, ArgumentType> |
Definition at line 301 of file SimpleOps.h.
| using qasm::MixedListType = std::vector<ArgumentType> |
Definition at line 113 of file SimpleOps.h.
| using qasm::ModifiedUopType = boost::fusion::vector<ModifierListType, UopType> |
Definition at line 193 of file SimpleOps.h.
| using qasm::ModifierListType = std::vector<ModifierType> |
Definition at line 192 of file SimpleOps.h.
| using qasm::OpaqueDeclType |
Definition at line 395 of file SimpleOps.h.
| using qasm::ProgramType |
Definition at line 296 of file SimpleOps.h.
| using qasm::QopType = StatementType |
Definition at line 308 of file SimpleOps.h.
| using qasm::RegisterMap = std::unordered_map<std::string, IndexedId> |
Definition at line 112 of file SimpleOps.h.
| using qasm::ResetType = ArgumentType |
Definition at line 300 of file SimpleOps.h.
| using qasm::SimpleBarrierType = std::vector<std::string> |
Definition at line 393 of file SimpleOps.h.
| using qasm::SimpleExpType = std::variant<double, int, std::string> |
Definition at line 109 of file SimpleOps.h.
| using qasm::SimpleGatecallType = boost::fusion::vector<std::string, MixedListType> |
Definition at line 158 of file SimpleOps.h.
Definition at line 294 of file SimpleOps.h.
| using qasm::UGateCallType |
Definition at line 163 of file SimpleOps.h.
| using qasm::UopType = std::variant<UGateCallType, CXGateCallType, GatecallType> |
Definition at line 167 of file SimpleOps.h.
|
strong |
| Enumerator | |
|---|---|
| Qubit | |
| Bit | |
| Input | |
| Gate | |
| Opaque | |
Definition at line 46 of file SimpleOps.h.
|
strong |
| Enumerator | |
|---|---|
| Ctrl | |
| NegCtrl | |
| Inv | |
| Pow | |
Definition at line 171 of file SimpleOps.h.
|
inline |
Definition at line 1067 of file SyntaxTree.h.
References qasm::QoperationStatement::cbits, qasm::QoperationStatement::condBits, qasm::QoperationStatement::condExpected, qasm::QoperationStatement::CondUop, qasm::QoperationStatement::Measurement, qasm::QoperationStatement::opType, and qasm::QoperationStatement::Reset.
Referenced by qasm::AddBitCondBranchExpr::operator()(), and qasm::AddCondQopExpr::operator()().
|
static |
Definition at line 62 of file Expr.h.
Referenced by qasm::BinaryOperator::BinaryOperator(), qasm::Function::Function(), and qasm::UnaryOperator::UnaryOperator().
|
inline |
Definition at line 50 of file SimpleOps.h.
References Bit, Gate, Input, Opaque, and Qubit.
Referenced by RegisterDeclaration().
|
inline |
Definition at line 1042 of file SyntaxTree.h.
Referenced by qasm::AddCondQopBracedExpr::operator()(), and qasm::AddCondQopExpr::operator()().
|
inline |
Definition at line 24 of file SyntaxTree.h.
References qasm::Expression::Eval().
Referenced by qasm::AddModifiedGateExpr::Canonicalize().
|
inline |
Definition at line 1027 of file SyntaxTree.h.
References Circuits::CircuitFactory< Time >::CreateEqualCondition().
Referenced by qasm::Program::AddToCircuit().
|
inline |
Definition at line 67 of file SimpleOps.h.
References DeclarationKindName().
Referenced by qasm::AddCregExpr::operator()(), qasm::AddGateDeclExpr::operator()(), qasm::AddInputDeclExpr::operator()(), qasm::AddOpaqueDeclExpr::operator()(), and qasm::AddQregExpr::operator()().
|
inline |
Definition at line 1136 of file SyntaxTree.h.
References qasm::QoperationStatement::Measurement.
Referenced by qasm::AddCondQopBracedExpr::operator()().
|
inline |
Definition at line 150 of file SimpleOps.h.
Referenced by qasm::AddMeasureExpr::operator()().
|
inline |
Definition at line 117 of file SimpleOps.h.
References qasm::IndexedId::base, and qasm::IndexedId::index.
Referenced by qasm::AddBarrierExpr::operator()(), qasm::AddCondQopBracedExpr::operator()(), qasm::AddCondQopExpr::operator()(), qasm::AddDelayExpr::operator()(), qasm::AddMeasureExpr::operator()(), qasm::AddResetExpr::operator()(), and qasm::AddGateExpr::ParseQubits().
|
inline |
Definition at line 518 of file SimpleOps.h.
References ValidateInputDeclaration().
Referenced by qasm::AddInputDeclExpr::operator()().
|
inline |
Definition at line 482 of file SimpleOps.h.
Referenced by qasm::AddInputDeclExpr::operator()(), and ValidateInputBinding().
|
inline |
Definition at line 80 of file SimpleOps.h.
Referenced by qasm::AddCregExpr::operator()(), and qasm::AddQregExpr::operator()().
|
inline |
Definition at line 705 of file SimpleOps.h.
|
inline |
Definition at line 464 of file SimpleOps.h.
|
inline |
Definition at line 1111 of file SyntaxTree.h.
|
inline |
Definition at line 1249 of file SyntaxTree.h.
|
inline |
Definition at line 422 of file SimpleOps.h.
|
inline |
Definition at line 480 of file SimpleOps.h.
|
inline |
Definition at line 750 of file SimpleOps.h.
|
inline |
Definition at line 543 of file SyntaxTree.h.
|
inline |
Definition at line 844 of file SimpleOps.h.
|
inline |
Definition at line 607 of file SimpleOps.h.
|
inline |
Definition at line 630 of file SimpleOps.h.
|
inline |
Definition at line 940 of file SyntaxTree.h.
|
inline |
Definition at line 784 of file SimpleOps.h.
|
inline |
Definition at line 447 of file SimpleOps.h.
|
inline |
Definition at line 673 of file SimpleOps.h.
|
inline |
|
inline |
|
inline |
Definition at line 388 of file SimpleOps.h.
|
inline |
Definition at line 373 of file SimpleOps.h.
|
inline |
|
inline |
Definition at line 255 of file SimpleOps.h.
|
inline |
Definition at line 729 of file SimpleOps.h.
|
inline |
|
inline |
Definition at line 107 of file SimpleOps.h.
|
inline |
Definition at line 214 of file SimpleOps.h.
|
inline |
Definition at line 358 of file SimpleOps.h.
|
inline |
|
inline |
|
inline |
Definition at line 960 of file SyntaxTree.h.
|
inline |
Definition at line 657 of file SimpleOps.h.
|
inline |
Definition at line 1024 of file SyntaxTree.h.
|
inline |
Definition at line 980 of file SyntaxTree.h.