libqasm
library for handling cQASM files
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
compiler::Operation Class Reference

Public Member Functions

 Operation (const std::string type, Qubits qubits_involved)
 
 Operation (const std::string type, Qubits qubits_involved, const double rotation_angle)
 
 Operation (const std::string type, Qubits qubit_pair1, std::string axis1, Qubits qubit_pair2, std::string axis2)
 
 Operation (const std::string type)
 
 Operation (const std::string type, const int waitInt)
 
 Operation (const std::string type, const Bits display_bits)
 
 Operation (const std::string type, Qubits qubit_pair1, Qubits qubit_pair2)
 
 Operation (const std::string type, Qubits qubit_pair1, Qubits qubit_pair2, double rotations)
 
 Operation (const std::string type, Qubits qubit_pair1, Qubits qubit_pair2, Qubits qubit_pair3)
 
 Operation (const std::string type, const std::string state_filename)
 
std::string getType () const
 
std::string getStateFilename () const
 
const QubitsgetQubitsInvolved () const
 
const QubitsgetQubitsInvolved (const int qubit_pair_index) const
 
double getRotationAngle () const
 
const std::pair< std::pair< Qubits, Qubits >, std::pair< std::string, std::string > > getMeasureParityQubitsAndAxis () const
 
const std::pair< Qubits, Qubits > & getTwoQubitPairs () const
 
const std::pair< Qubits, std::pair< Qubits, Qubits > > & getToffoliQubitPairs () const
 
bool isBitControlled () const
 
bool allQubitsBits () const
 
void setControlBits (Bits control_bits)
 
const BitsgetControlBits () const
 
const BitsgetDisplayBits () const
 
int getWaitTime () const
 
void setUMatrixElements (const std::vector< double > input)
 
const std::vector< double > & getUMatrixElements () const
 
void printOperation () const
 

Protected Member Functions

std::string toLowerCase (const std::string &string_input)
 
std::string removeQuotes (const std::string &string_input)
 

Protected Attributes

std::string type_
 
std::string state_filename_
 
Qubits qubits_
 
Bits bits_
 
double rotation_angle_
 
bool bit_controlled_
 
bool all_qubits_bits_ = false
 
int wait_time_
 
std::pair< Qubits, Qubitsmeasure_parity_qubits_
 
std::pair< std::string, std::string > measure_parity_axis_
 
std::pair< Qubits, Qubitstwo_qubit_pairs_
 
std::pair< Qubits, std::pair< Qubits, Qubits > > toffoli_qubit_pairs_
 
std::vector< double > unitary_matrix_elements_
 

Detailed Description

Definition at line 126 of file qasm_ast.hpp.

#include <qasm_ast.hpp>

Collaboration diagram for compiler::Operation:
Collaboration graph
[legend]

Constructor & Destructor Documentation

◆ Operation() [1/10]

compiler::Operation::Operation ( const std::string  type,
Qubits  qubits_involved 
)
inline

Definition at line 129 of file qasm_ast.hpp.

◆ Operation() [2/10]

compiler::Operation::Operation ( const std::string  type,
Qubits  qubits_involved,
const double  rotation_angle 
)
inline

Definition at line 137 of file qasm_ast.hpp.

◆ Operation() [3/10]

compiler::Operation::Operation ( const std::string  type,
Qubits  qubit_pair1,
std::string  axis1,
Qubits  qubit_pair2,
std::string  axis2 
)
inline

Definition at line 145 of file qasm_ast.hpp.

◆ Operation() [4/10]

compiler::Operation::Operation ( const std::string  type)
inline

Definition at line 154 of file qasm_ast.hpp.

◆ Operation() [5/10]

compiler::Operation::Operation ( const std::string  type,
const int  waitInt 
)
inline

Definition at line 162 of file qasm_ast.hpp.

◆ Operation() [6/10]

compiler::Operation::Operation ( const std::string  type,
const Bits  display_bits 
)
inline

Definition at line 170 of file qasm_ast.hpp.

◆ Operation() [7/10]

compiler::Operation::Operation ( const std::string  type,
Qubits  qubit_pair1,
Qubits  qubit_pair2 
)
inline

Definition at line 178 of file qasm_ast.hpp.

◆ Operation() [8/10]

compiler::Operation::Operation ( const std::string  type,
Qubits  qubit_pair1,
Qubits  qubit_pair2,
double  rotations 
)
inline

Definition at line 186 of file qasm_ast.hpp.

◆ Operation() [9/10]

compiler::Operation::Operation ( const std::string  type,
Qubits  qubit_pair1,
Qubits  qubit_pair2,
Qubits  qubit_pair3 
)
inline

Definition at line 194 of file qasm_ast.hpp.

◆ Operation() [10/10]

compiler::Operation::Operation ( const std::string  type,
const std::string  state_filename 
)
inline

Definition at line 205 of file qasm_ast.hpp.

Member Function Documentation

◆ getType()

std::string compiler::Operation::getType ( ) const
inline

Definition at line 213 of file qasm_ast.hpp.

◆ getStateFilename()

std::string compiler::Operation::getStateFilename ( ) const
inline

Definition at line 218 of file qasm_ast.hpp.

◆ getQubitsInvolved() [1/2]

const Qubits& compiler::Operation::getQubitsInvolved ( ) const
inline

Definition at line 223 of file qasm_ast.hpp.

◆ getQubitsInvolved() [2/2]

const Qubits& compiler::Operation::getQubitsInvolved ( const int  qubit_pair_index) const
inline

Definition at line 228 of file qasm_ast.hpp.

◆ getRotationAngle()

double compiler::Operation::getRotationAngle ( ) const
inline

Definition at line 260 of file qasm_ast.hpp.

◆ getMeasureParityQubitsAndAxis()

const std::pair< std::pair<Qubits,Qubits>, std::pair<std::string,std::string> > compiler::Operation::getMeasureParityQubitsAndAxis ( ) const
inline

Definition at line 265 of file qasm_ast.hpp.

◆ getTwoQubitPairs()

const std::pair<Qubits,Qubits>& compiler::Operation::getTwoQubitPairs ( ) const
inline

Definition at line 271 of file qasm_ast.hpp.

◆ getToffoliQubitPairs()

const std::pair< Qubits, std::pair<Qubits,Qubits> >& compiler::Operation::getToffoliQubitPairs ( ) const
inline

Definition at line 276 of file qasm_ast.hpp.

◆ isBitControlled()

bool compiler::Operation::isBitControlled ( ) const
inline

Definition at line 281 of file qasm_ast.hpp.

◆ allQubitsBits()

bool compiler::Operation::allQubitsBits ( ) const
inline

Definition at line 286 of file qasm_ast.hpp.

◆ setControlBits()

void compiler::Operation::setControlBits ( Bits  control_bits)
inline

Definition at line 291 of file qasm_ast.hpp.

◆ getControlBits()

const Bits& compiler::Operation::getControlBits ( ) const
inline

Definition at line 297 of file qasm_ast.hpp.

◆ getDisplayBits()

const Bits& compiler::Operation::getDisplayBits ( ) const
inline

Definition at line 302 of file qasm_ast.hpp.

◆ getWaitTime()

int compiler::Operation::getWaitTime ( ) const
inline

Definition at line 307 of file qasm_ast.hpp.

◆ setUMatrixElements()

void compiler::Operation::setUMatrixElements ( const std::vector< double >  input)
inline

Definition at line 312 of file qasm_ast.hpp.

◆ getUMatrixElements()

const std::vector<double>& compiler::Operation::getUMatrixElements ( ) const
inline

Definition at line 317 of file qasm_ast.hpp.

◆ printOperation()

void compiler::Operation::printOperation ( ) const
inline

Definition at line 322 of file qasm_ast.hpp.

◆ toLowerCase()

std::string compiler::Operation::toLowerCase ( const std::string &  string_input)
inlineprotected

Definition at line 391 of file qasm_ast.hpp.

◆ removeQuotes()

std::string compiler::Operation::removeQuotes ( const std::string &  string_input)
inlineprotected

Definition at line 398 of file qasm_ast.hpp.

Member Data Documentation

◆ type_

std::string compiler::Operation::type_
protected

Definition at line 406 of file qasm_ast.hpp.

◆ state_filename_

std::string compiler::Operation::state_filename_
protected

Definition at line 407 of file qasm_ast.hpp.

◆ qubits_

Qubits compiler::Operation::qubits_
protected

Definition at line 408 of file qasm_ast.hpp.

◆ bits_

Bits compiler::Operation::bits_
protected

Definition at line 409 of file qasm_ast.hpp.

◆ rotation_angle_

double compiler::Operation::rotation_angle_
protected

Definition at line 410 of file qasm_ast.hpp.

◆ bit_controlled_

bool compiler::Operation::bit_controlled_
protected

Definition at line 411 of file qasm_ast.hpp.

◆ all_qubits_bits_

bool compiler::Operation::all_qubits_bits_ = false
protected

Definition at line 412 of file qasm_ast.hpp.

◆ wait_time_

int compiler::Operation::wait_time_
protected

Definition at line 413 of file qasm_ast.hpp.

◆ measure_parity_qubits_

std::pair<Qubits,Qubits> compiler::Operation::measure_parity_qubits_
protected

Definition at line 414 of file qasm_ast.hpp.

◆ measure_parity_axis_

std::pair<std::string,std::string> compiler::Operation::measure_parity_axis_
protected

Definition at line 415 of file qasm_ast.hpp.

◆ two_qubit_pairs_

std::pair<Qubits,Qubits> compiler::Operation::two_qubit_pairs_
protected

Definition at line 416 of file qasm_ast.hpp.

◆ toffoli_qubit_pairs_

std::pair<Qubits, std::pair<Qubits,Qubits> > compiler::Operation::toffoli_qubit_pairs_
protected

Definition at line 417 of file qasm_ast.hpp.

◆ unitary_matrix_elements_

std::vector<double> compiler::Operation::unitary_matrix_elements_
protected

Definition at line 418 of file qasm_ast.hpp.


The documentation for this class was generated from the following file: