Maestro 0.2.5
Unified interface for quantum circuit simulation
Loading...
Searching...
No Matches
qasm Namespace Reference

Classes

class  AbstractSyntaxTree
 
struct  AddBarrierExpr
 
struct  AddCommentExpr
 
struct  AddCondQopExpr
 
struct  AddCregExpr
 
struct  AddDeclarationExpr
 
struct  AddGateDeclExpr
 
struct  AddGateExpr
 
struct  AddMeasureExpr
 
struct  AddOpaqueDeclExpr
 
struct  AddQregExpr
 
struct  AddResetExpr
 
class  BinaryOperator
 
class  CircToQasm
 
class  Constant
 
struct  error_handler_
 
class  Expression
 
class  Function
 
class  IndexedId
 
struct  MakeBinaryExpression
 
struct  MakeConstantExpression
 
struct  MakeFunctionExpression
 
struct  MakeIndexedIdExpression
 
struct  MakeUnaryExpression
 
struct  MakeVariableExpression
 
struct  Program
 
class  QasmToCirc
 
struct  QoperationStatement
 
class  UnaryOperator
 
class  Variable
 

Typedefs

typedef std::shared_ptr< AbstractSyntaxTreeAbstractSyntaxTreePtr
 
using ArgumentType = std::variant< std::string, IndexedId >
 
using BarrierType = MixedListType
 
using CondOpType = boost::fusion::vector< std::string, int, QopType >
 
using CXGateCallType = boost::fusion::vector< ArgumentType, ArgumentType >
 
using ExpGatecallType = boost::fusion::vector< std::string, std::vector< Expression >, MixedListType >
 
using GatecallType = std::variant< SimpleGatecallType, ExpGatecallType >
 
using GateDeclOpType = std::variant< UopType, SimpleBarrierType >
 
using GateDeclType = boost::fusion::vector< std::string, std::vector< std::string >, std::vector< std::string > >
 
using MeasureType = boost::fusion::vector< ArgumentType, ArgumentType >
 
using MixedListType = std::vector< ArgumentType >
 
using OpaqueDeclType = boost::fusion::vector< std::string, std::vector< std::string >, std::vector< std::string > >
 
using ProgramType = boost::fusion::vector< std::vector< std::string >, double, std::vector< std::string >, std::vector< StatementType > >
 
using QopType = StatementType
 
using ResetType = ArgumentType
 
using SimpleBarrierType = std::vector< std::string >
 
using SimpleExpType = std::variant< double, int, std::string >
 
using SimpleGatecallType = boost::fusion::vector< std::string, MixedListType >
 
using StatementType = QoperationStatement
 
using UGateCallType = boost::fusion::vector< std::vector< Expression >, ArgumentType >
 
using UopType = std::variant< UGateCallType, CXGateCallType, GatecallType >
 

Functions

template<typename Expr >
static AbstractSyntaxTreePtr Clone (Expr const &t)
 

Variables

phx::function< AddBarrierExprAddBarrier
 
phx::function< AddCommentExprAddComment
 
phx::function< AddCondQopExprAddCondQop
 
phx::function< AddCregExprAddCreg
 
phx::function< AddDeclarationExprAddDeclaration
 
phx::function< AddGateExprAddGate
 
phx::function< AddGateDeclExprAddGateDecl
 
phx::function< AddMeasureExprAddMeasure
 
phx::function< AddOpaqueDeclExprAddOpaqueDecl
 
phx::function< AddQregExprAddQreg
 
phx::function< AddResetExprAddReset
 
phx::function< error_handler_ > const error_handler = error_handler_()
 
phx::function< MakeBinaryExpressionMakeBinary
 
phx::function< MakeConstantExpressionMakeConstant
 
phx::function< MakeFunctionExpressionMakeFunction
 
phx::function< MakeIndexedIdExpressionMakeIndexedId
 
phx::function< MakeUnaryExpressionMakeUnary
 
phx::function< MakeVariableExpressionMakeVariable
 

Typedef Documentation

◆ AbstractSyntaxTreePtr

Definition at line 58 of file Expr.h.

◆ ArgumentType

using qasm::ArgumentType = typedef std::variant<std::string, IndexedId>

Definition at line 58 of file SimpleOps.h.

◆ BarrierType

Definition at line 112 of file SimpleOps.h.

◆ CondOpType

using qasm::CondOpType = typedef boost::fusion::vector<std::string, int, QopType>

Definition at line 115 of file SimpleOps.h.

◆ CXGateCallType

using qasm::CXGateCallType = typedef boost::fusion::vector<ArgumentType, ArgumentType>

Definition at line 68 of file SimpleOps.h.

◆ ExpGatecallType

using qasm::ExpGatecallType = typedef boost::fusion::vector<std::string, std::vector<Expression>, MixedListType>

Definition at line 62 of file SimpleOps.h.

◆ GatecallType

using qasm::GatecallType = typedef std::variant<SimpleGatecallType, ExpGatecallType>

Definition at line 64 of file SimpleOps.h.

◆ GateDeclOpType

using qasm::GateDeclOpType = typedef std::variant<UopType, SimpleBarrierType>

Definition at line 121 of file SimpleOps.h.

◆ GateDeclType

using qasm::GateDeclType = typedef boost::fusion::vector<std::string, std::vector<std::string>, std::vector<std::string> >

Definition at line 117 of file SimpleOps.h.

◆ MeasureType

using qasm::MeasureType = typedef boost::fusion::vector<ArgumentType, ArgumentType>

Definition at line 111 of file SimpleOps.h.

◆ MixedListType

using qasm::MixedListType = typedef std::vector<ArgumentType>

Definition at line 59 of file SimpleOps.h.

◆ OpaqueDeclType

using qasm::OpaqueDeclType = typedef boost::fusion::vector<std::string, std::vector<std::string>, std::vector<std::string> >

Definition at line 122 of file SimpleOps.h.

◆ ProgramType

using qasm::ProgramType = typedef boost::fusion::vector<std::vector<std::string>, double, std::vector<std::string>, std::vector<StatementType> >

Definition at line 106 of file SimpleOps.h.

◆ QopType

using qasm::QopType = typedef StatementType

Definition at line 114 of file SimpleOps.h.

◆ ResetType

using qasm::ResetType = typedef ArgumentType

Definition at line 110 of file SimpleOps.h.

◆ SimpleBarrierType

using qasm::SimpleBarrierType = typedef std::vector<std::string>

Definition at line 120 of file SimpleOps.h.

◆ SimpleExpType

using qasm::SimpleExpType = typedef std::variant<double, int, std::string>

Definition at line 56 of file SimpleOps.h.

◆ SimpleGatecallType

using qasm::SimpleGatecallType = typedef boost::fusion::vector<std::string, MixedListType>

Definition at line 61 of file SimpleOps.h.

◆ StatementType

Definition at line 104 of file SimpleOps.h.

◆ UGateCallType

using qasm::UGateCallType = typedef boost::fusion::vector<std::vector<Expression>, ArgumentType>

Definition at line 66 of file SimpleOps.h.

◆ UopType

using qasm::UopType = typedef std::variant<UGateCallType, CXGateCallType, GatecallType>

Definition at line 70 of file SimpleOps.h.

Function Documentation

◆ Clone()

template<typename Expr >
static AbstractSyntaxTreePtr qasm::Clone ( Expr const &  t)
static

Definition at line 61 of file Expr.h.

Variable Documentation

◆ AddBarrier

phx::function<AddBarrierExpr> qasm::AddBarrier

Definition at line 339 of file SimpleOps.h.

◆ AddComment

phx::function<AddCommentExpr> qasm::AddComment

Definition at line 186 of file SimpleOps.h.

◆ AddCondQop

phx::function<AddCondQopExpr> qasm::AddCondQop

Definition at line 556 of file SyntaxTree.h.

◆ AddCreg

phx::function<AddCregExpr> qasm::AddCreg

Definition at line 147 of file SimpleOps.h.

◆ AddDeclaration

phx::function<AddDeclarationExpr> qasm::AddDeclaration

Definition at line 202 of file SimpleOps.h.

◆ AddGate

phx::function<AddGateExpr> qasm::AddGate

Definition at line 518 of file SyntaxTree.h.

◆ AddGateDecl

phx::function<AddGateDeclExpr> qasm::AddGateDecl

Definition at line 428 of file SimpleOps.h.

◆ AddMeasure

phx::function<AddMeasureExpr> qasm::AddMeasure

Definition at line 262 of file SimpleOps.h.

◆ AddOpaqueDecl

phx::function<AddOpaqueDeclExpr> qasm::AddOpaqueDecl

Definition at line 371 of file SimpleOps.h.

◆ AddQreg

phx::function<AddQregExpr> qasm::AddQreg

Definition at line 169 of file SimpleOps.h.

◆ AddReset

phx::function<AddResetExpr> qasm::AddReset

Definition at line 298 of file SimpleOps.h.

◆ error_handler

phx::function<error_handler_> const qasm::error_handler = error_handler_()

Definition at line 35 of file qasm.h.

◆ MakeBinary

phx::function<MakeBinaryExpression> qasm::MakeBinary

Definition at line 207 of file Expr.h.

◆ MakeConstant

phx::function<MakeConstantExpression> qasm::MakeConstant

Definition at line 104 of file Expr.h.

◆ MakeFunction

phx::function<MakeFunctionExpression> qasm::MakeFunction

Definition at line 323 of file Expr.h.

◆ MakeIndexedId

phx::function<MakeIndexedIdExpression> qasm::MakeIndexedId

Definition at line 54 of file SimpleOps.h.

◆ MakeUnary

phx::function<MakeUnaryExpression> qasm::MakeUnary

Definition at line 259 of file Expr.h.

◆ MakeVariable

phx::function<MakeVariableExpression> qasm::MakeVariable

Definition at line 143 of file Expr.h.