Class visitor
Defined in File visitor.hpp
Inheritance Relationships
Base Type
public xacc::quantum::AllGateVisitor
Derived Types
public xacc::quantum::visitor_ACZ(Class visitor_ACZ)public xacc::quantum::visitor_CZ(Class visitor_CZ)
Class Documentation
-
class visitor : public xacc::quantum::AllGateVisitor
Subclassed by xacc::quantum::visitor_ACZ, xacc::quantum::visitor_CZ
Visitor functions for gates and measurement.
-
void visit(Identity&) override
Identity (no-op)
-
void visit(Rx&) override
Rotation about x axis.
-
void visit(Ry&) override
Rotation about y axis.
-
void visit(Rz&) override
Rotation about z axis.
-
void visit(Hadamard&) override
Hadamard gate.
-
void visit(S&) override
S gate.
-
void visit(Sdg&) override
Inverse S gate.
-
void visit(T&) override
T gate.
-
void visit(Tdg&) override
Inverse T gate.
-
void visit(X&) override
Pauli X gate.
-
void visit(Y&) override
Pauli Y gate.
-
void visit(Z&) override
Pauli Z date.
-
void visit(U&) override
General 1-qubit unitary.
-
void visit(Measure&) override
Measure a single qubit.
-
virtual void visit(CZ&) override = 0
Controlled Z gate.
-
virtual void visit(ACZ&) override = 0
Anti-controlled Z gate.
-
virtual void visit(CNOT&) override = 0
Controlled NOT gate.
-
virtual void visit(CPhase&) override = 0
Controlled phase gate.
-
virtual void visit(Swap&) override = 0
Swap the values of two qubits.
Public Functions
-
inline visitor(const int nQubits, const bool cut_angles = true)
Constructor.
-
inline virtual ~visitor()
Destructor.
-
virtual const std::string name() const = 0
Return name of the visitor.
-
virtual const std::string description() const = 0
Return description of the visitor.
-
double norm(const double&)
Normalise angles to the interval (-pi,pi].
-
std::string getXasmString()
Return the finished qpu OpenQasm kernel.
-
std::shared_ptr<xacc::CompositeInstruction> getTranspiledIR() const
Retrieve the IR tree in the basis gate set.
Protected Attributes
-
int nQubits_
Number of qubits.
-
unsigned int classicalBitCounter_ = 0
Number of classical bit registers to which measurements have been assigned.
-
std::map<unsigned int, unsigned int> qubitToClassicalBitIndex_
Map from qubit indices to assigned classical readout bit indices.
-
nlohmann::json sequence_
JSON for sequence of gates (XASM format)
-
const double pi = xacc::constants::pi
No point reinventing the circle is there?
-
bool restrict_angles_to_pmpi_
Restrict native gate rotation angles to (-pi,pi].
-
void visit(Identity&) override