Maestro 0.1.0
Unified interface for quantum circuit simulation
Loading...
Searching...
No Matches
Circuits::RotationGate< Time > Class Template Reference

The rotation gate. More...

#include <QuantumGates.h>

Inheritance diagram for Circuits::RotationGate< Time >:
Circuits::SingleQubitGate< Types::time_type > Circuits::IQuantumGate< Types::time_type > Circuits::IGateOperation< Types::time_type > Circuits::IOperation< Types::time_type >

Public Member Functions

 RotationGate (Types::qubit_t qubit=0, double theta=0, Time delay=0)
 RotationGate constructor.
void SetTheta (double t)
 Set the theta angle for the rotation gate.
double GetTheta () const
 Get the theta angle for the rotation gate.
std::vector< double > GetParams () const override
 Get the gate parameters.
Public Member Functions inherited from Circuits::SingleQubitGate< Types::time_type >
 SingleQubitGate (Types::qubit_t qubit=0, Types::time_type delay=0)
 SingleQubitGate constructor.
virtual ~SingleQubitGate ()
 The SingleQubitGate destructor.
unsigned int GetNumQubits () const override
 Get the number of qubits the quantum gate is applied to.
void SetQubit (Types::qubit_t q, unsigned long index=0) override
 Set the qubit the quantum gate is applied to.
Types::qubit_t GetQubit (unsigned int index=0) const override
 Get the qubit the quantum gate is applied to.
Types::qubits_vector AffectedQubits () const override
 Get the qubits the quantum gate is applied to.
std::shared_ptr< IOperation< Types::time_type > > Remap (const std::unordered_map< Types::qubit_t, Types::qubit_t > &qubitsMap, const std::unordered_map< Types::qubit_t, Types::qubit_t > &bitsMap={}) const override
 Get a shared pointer to a remapped operation.
Public Member Functions inherited from Circuits::IQuantumGate< Types::time_type >
 IQuantumGate (Types::time_type delay=0)
 IQuantumGate constructor.
virtual QuantumGateType GetGateType () const=0
 Get the type of the quantum gate.
Public Member Functions inherited from Circuits::IGateOperation< Types::time_type >
 IGateOperation (Types::time_type delay=0)
 Construct a new IGateOperation object.
OperationType GetType () const override
 Get the type of the operation.
Public Member Functions inherited from Circuits::IOperation< Types::time_type >
 IOperation (Types::time_type delay=0)
 Construct a new IOperation object.
virtual ~IOperation ()=default
 Destroy the IOperation object.
virtual void Execute (const std::shared_ptr< Simulators::ISimulator > &sim, OperationState &state) const=0
 Execute the operation.
virtual std::shared_ptr< IOperation< Types::time_type > > Clone () const=0
 Get a shared pointer to a clone of this object.
virtual bool CanAffectQuantumState () const
 Find if the operation can affect the quantum state.
virtual bool NeedsEntanglementForDistribution () const
 Find if the operation needs entanglement for distribution.
virtual bool IsConditional () const
 Find if the operation is a conditional operation.
virtual std::vector< size_t > AffectedBits () const
 Returns the affected bits.
std::shared_ptr< IOperation< Types::time_type > > getptr ()
 Get a shared pointer to this object.
Types::time_type GetDelay () const
 Get the delay of the operation.
void SetDelay (Types::time_type d)
 Set the delay of the operation.
virtual bool IsClifford () const
 Checks if the operation is a Clifford one.

Detailed Description

template<typename Time = Types::time_type>
class Circuits::RotationGate< Time >

The rotation gate.

The rotation gate. Must be overriden for specific rotations.

Template Parameters
TimeThe type of the execution delay.
See also
SingleQubitGate

Definition at line 1353 of file QuantumGates.h.

Constructor & Destructor Documentation

◆ RotationGate()

template<typename Time = Types::time_type>
Circuits::RotationGate< Time >::RotationGate ( Types::qubit_t qubit = 0,
double theta = 0,
Time delay = 0 )
inline

RotationGate constructor.

Constructs the RotationGate object. If specified, the delay is the time the quantum gate takes to execute. This class should not be used directly, it's a base class for specific rotation gates classes.

Parameters
qubitThe qubit the quantum gate is applied to.
thetaThe theta angle for the rotation gate.
delayThe time the quantum gate takes to execute.
See also
SingleQubitGate

Definition at line 1366 of file QuantumGates.h.

Member Function Documentation

◆ GetParams()

template<typename Time = Types::time_type>
std::vector< double > Circuits::RotationGate< Time >::GetParams ( ) const
inlineoverridevirtual

Get the gate parameters.

Returns the parameters of the gate.

Returns
A vector with the parameters of the gate.

Reimplemented from Circuits::IQuantumGate< Types::time_type >.

Definition at line 1391 of file QuantumGates.h.

◆ GetTheta()

template<typename Time = Types::time_type>
double Circuits::RotationGate< Time >::GetTheta ( ) const
inline

Get the theta angle for the rotation gate.

Returns the theta angle for the rotation gate.

Returns
The theta angle for the rotation gate.

Definition at line 1383 of file QuantumGates.h.

◆ SetTheta()

template<typename Time = Types::time_type>
void Circuits::RotationGate< Time >::SetTheta ( double t)
inline

Set the theta angle for the rotation gate.

Sets the theta angle for the rotation gate.

Parameters
tThe theta angle for the rotation gate.

Definition at line 1375 of file QuantumGates.h.


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