Class Operation¶
Defined in File BlackbirdProgram.h
Inheritance Relationships¶
Derived Types¶
public blackbird::BSgate
(Class BSgate)public blackbird::Catstate
(Class Catstate)public blackbird::CKgate
(Class CKgate)public blackbird::Coherent
(Class Coherent)public blackbird::CXgate
(Class CXgate)public blackbird::CZgate
(Class CZgate)public blackbird::Dgate
(Class Dgate)public blackbird::Fock
(Class Fock)public blackbird::Gaussian
(Class Gaussian)public blackbird::GaussianTransform
(Class GaussianTransform)public blackbird::Interferometer
(Class Interferometer)public blackbird::LossChannel
(Class LossChannel)public blackbird::MeasureFock
(Class MeasureFock)public blackbird::MeasureHeterodyne
(Class MeasureHeterodyne)public blackbird::MeasureHomodyne
(Class MeasureHomodyne)public blackbird::MeasureIntensity
(Class MeasureIntensity)public blackbird::Pgate
(Class Pgate)public blackbird::Rgate
(Class Rgate)public blackbird::S2gate
(Class S2gate)public blackbird::Sgate
(Class Sgate)public blackbird::Squeezed
(Class Squeezed)public blackbird::Thermal
(Class Thermal)public blackbird::ThermalLossChannel
(Class ThermalLossChannel)public blackbird::Vacuum
(Class Vacuum)public blackbird::Vgate
(Class Vgate)public blackbird::Xgate
(Class Xgate)public blackbird::Zgate
(Class Zgate)
Class Documentation¶
-
class blackbird::Operation¶
The base class inherited by all quantum operations. This defines public attributes common to all operations, such as gate name, modes it acts on, number of parameters, number of modes it acts on, as well as parameter details.
It also defines some utility methods for printing out gate information.
Subclassed by blackbird::BSgate, blackbird::Catstate, blackbird::CKgate, blackbird::Coherent, blackbird::CXgate, blackbird::CZgate, blackbird::Dgate, blackbird::Fock, blackbird::Gaussian, blackbird::GaussianTransform, blackbird::Interferometer, blackbird::LossChannel, blackbird::MeasureFock, blackbird::MeasureHeterodyne, blackbird::MeasureHomodyne, blackbird::MeasureIntensity, blackbird::Pgate, blackbird::Rgate, blackbird::S2gate, blackbird::Sgate, blackbird::Squeezed, blackbird::Thermal, blackbird::ThermalLossChannel, blackbird::Vacuum, blackbird::Vgate, blackbird::Xgate, blackbird::Zgate
Public Functions
-
inline void print_op()¶
Print operation information in Blackbird syntax for an operation with zero parameters.
-
template<typename T>
inline void print_op(T p1)¶ Print operation information in Blackbird syntax for an operation with one parameter.
- Parameters
p1 – parameter 1
-
template<typename T, typename S>
inline void print_op(T p1, S p2)¶ Print operation information in Blackbird syntax for an operation with two parameters.
- Parameters
p1 – parameter 1
p2 – parameter 2
-
template<typename T, typename S, typename O>
inline void print_op(T p1, S p2, O p3)¶ Print operation information in Blackbird syntax for an operation with three parameters.
- Parameters
p1 – parameter 1
p2 – parameter 2
p3 – parameter 3
-
template<typename T>
inline void print_array_op(T p1)¶ Print operation information in Blackbird syntax for an operation with an array parameter.
- Parameters
p1 – the array parameter
-
template<typename T, typename S>
inline void print_array_op(T p1, S p2)¶ Print operation information in Blackbird syntax for an operation with two array parameters.
- Parameters
p1 – the first array parameter
p2 – the second array parameter
-
inline void check_num_args(int args_size)¶
Checks that the number of gate parameters matches the allowed number of gate parameters.
- Parameters
args_size – user provided number of parameters
- Throws
std::invalid_argument –
-
inline void check_num_modes(int mode_size)¶
Checks that the number of modes applied matches the allowed number of modes for the gate.
- Parameters
mode_size – user provided number of modes
- Throws
std::invalid_argument –
Public Members
-
std::string name¶
name of the gate
-
int num_params¶
number of params gate accepts
-
int num_modes¶
number of modes the gate is allowed to act on
-
int i1¶
integer paramter 1
-
double f1¶
real parameter 1
-
double f2¶
real parameter 2
-
double f3¶
real parameter 3
-
std::complex<double> c1¶
compelx parameter 1
-
complexmat U1¶
complex matrix parameter 1
-
inline void print_op()¶