|
| | ComparableCircuit (const OperationsVector &ops={}) |
| | Construct a new ComparableCircuit object.
|
| | ComparableCircuit (const BaseClass &circ) |
| | Construct a new ComparableCircuit object.
|
| ComparableCircuit & | operator= (const BaseClass &circ) |
| | Assignment operator.
|
| bool | operator== (const BaseClass &rhs) const |
| | Comparison operator.
|
| bool | operator!= (const BaseClass &rhs) const |
| | Comparison operator.
|
| void | SetApproximateParamsCheck (bool check) |
| | Sets whether to check approximate equality of gate parameters.
|
| bool | GetApproximateParamsCheck () const |
| | Gets whether to check approximate equality of gate parameters.
|
| void | SetParamsEpsilon (double eps) |
| | Sets the epsilon used for checking approximate equality of gate parameters.
|
| double | GetParamsEpsilon () const |
| | Gets the epsilon used for checking approximate equality of gate parameters.
|
| | Circuit (const OperationsVector &ops={}) |
| | Construct a new Circuit object.
|
| void | Execute (const std::shared_ptr< Simulators::ISimulator > &sim, OperationState &state) const override |
| | Execute the circuit on the given simulator.
|
| OperationType | GetType () const override |
| | Get the type of the circuit.
|
| void | AddOperation (const OperationPtr &op) |
| | Adds an operation to the circuit.
|
| void | ReplaceOperation (size_t index, const OperationPtr &op) |
| | Replaces an operation in the circuit.
|
| void | SetOperations (const OperationsVector &ops) |
| | Set the operations in the circuit.
|
| void | AddOperations (const OperationsVector &ops) |
| | Adds operations to the circuit.
|
| void | AddCircuit (const std::shared_ptr< Circuit< Types::time_type > > &circuit) |
| | Adds operations from another circuit to the circuit.
|
| const OperationsVector & | GetOperations () const |
| | Get the operations in the circuit.
|
| void | Clear () |
| | Clears the operations from the circuit.
|
| OperationPtr | Clone () const override |
| | Get a shared pointer to a clone of this object.
|
| OperationPtr | CloneFlyweight () const |
| | Get a shared pointer to a clone of this object, but without cloning the operations.
|
| OperationPtr | Remap (const BitMapping &qubitsMap, const BitMapping &bitsMap={}) const override |
| | Get a shared pointer to a circuit remapped.
|
| std::shared_ptr< Circuit< Types::time_type > > | RemapToContinuous (BitMapping &newQubitsMap, BitMapping &reverseBitsMap, size_t &nrQubits, size_t &nrCbits) const |
| | Get a shared pointer to a circuit remapped to a continuous interval starting from zero.
|
| void | ConvertForDistribution () |
| | Converts the circuit for distributed computing.
|
| void | ConvertForCutting () |
| | Converts the circuit for distributed computing.
|
| void | EnsureProperOrderForMeasurements () |
| size_t | GetMaxQubitIndex () const |
| | Returns the max qubit id for all operations.
|
| size_t | GetMinQubitIndex () const |
| | Returns the min qubit id for all operations.
|
| size_t | GetMaxCbitIndex () const |
| | Returns the max classical bit id for all operations.
|
| size_t | GetMinCbitIndex () const |
| | Returns the min classical bit id for all operations.
|
| std::set< size_t > | GetQubits () const |
| | Returns the qubits affected by the operations.
|
| std::set< size_t > | GetBits () const |
| | Returns the classical bits affected by the operations.
|
| Types::qubits_vector | AffectedQubits () const override |
| | Returns the affected qubits.
|
| std::vector< size_t > | AffectedBits () const override |
| | Returns the affected bits.
|
| bool | NeedsEntanglementForDistribution () const override |
| | Find if the circuit needs entanglement for distribution.
|
| bool | CanAffectQuantumState () const override |
| | Find if the circuit can affect the quantum state.
|
| std::unordered_map< size_t, OperationPtr > | GetLastOperationsOnQubits () const |
| | Returns the last operations on circuit's qubits.
|
| std::unordered_map< size_t, OperationPtr > | GetFirstOperationsOnQubits () const |
| | Returns the first operations on circuit's qubits.
|
| void | AddResetsIfNeeded (Types::time_type delay=0) |
| | Add resets at the end of the circuit.
|
| void | AddResetsAtBeginningIfNeeded (Types::time_type delay=0) |
| | Add resets at the beginning of the circuit.
|
| void | Optimize (bool optimizeRotationGates=true) |
| | Circuit optimization.
|
| void | MoveMeasurementsAndResets () |
| | Move the measurements and resets closer to the beginning of the circuit.
|
| std::pair< std::vector< size_t >, std::vector< Types::time_type > > | GetDepth () const |
| | Get circuit depth.
|
| std::pair< size_t, Types::time_type > | GetMaxDepth () const |
| | Get max circuit depth.
|
| size_t | GetNumberOfOperations () const |
| | Get the number of operations in the circuit.
|
| OperationPtr | GetOperation (size_t pos) const |
| | Get an operation at a given position.
|
| std::shared_ptr< Circuit< Types::time_type > > | GetCircuitCut (Types::qubit_t startQubit, Types::qubit_t endQubit) const |
| | Get the circuit cut.
|
| bool | HasOpsAfterMeasurements () const |
| | Checks if the circuit has measurements that are followed by operations that affect the measured qubits.
|
| std::vector< bool > | ExecuteNonMeasurements (const std::shared_ptr< Simulators::ISimulator > &sim, OperationState &state) const |
| | Execute the non-measurements operations from the circuit on the given simulator.
|
| void | ExecuteMeasurements (const std::shared_ptr< Simulators::ISimulator > &sim, OperationState &state, const std::vector< bool > &executedOps) const |
| | Execute the measurement operations from the circuit on the given simulator.
|
| std::shared_ptr< MeasurementOperation< Types::time_type > > | GetLastMeasurements (const std::vector< bool > &executedOps, bool sort=true) const |
| bool | HasConditionalOperations () const |
| | Checks if the circuit has clasically conditional operations.
|
| bool | ActsOnlyOnAdjacentQubits () const |
| | Checks if the circuit has only operations that act on adjacent qubits.
|
| bool | IsForest () const |
| | Checks if the circuit is a forest circuit.
|
| bool | IsClifford () const override |
| | Checks if the circuit is a Clifford circuit.
|
| double | CliffordPercentage () const |
| | Get the percentage of Clifford operations in the circuit.
|
| std::unordered_set< Types::qubit_t > | GetCliffordQubits () const |
| | Get the qubits that are acted on by Clifford operations.
|
| std::vector< std::shared_ptr< Circuit< Types::time_type > > > | SplitCircuit () const |
| | Splits a circuit that has disjoint subcircuits in it into separate circuits.
|
| iterator | begin () noexcept |
| | Get the begin iterator for the operations.
|
| iterator | end () noexcept |
| | Get the end iterator for the operations.
|
| const_iterator | cbegin () const noexcept |
| | Get the const begin iterator for the operations.
|
| const_iterator | cend () const noexcept |
| | Get the const end iterator for the operations.
|
| reverse_iterator | rbegin () noexcept |
| | Get the reverse begin iterator for the operations.
|
| reverse_iterator | rend () noexcept |
| | Get the reverse end iterator for the operations.
|
| const_reverse_iterator | crbegin () const noexcept |
| | Get the const reverse begin iterator for the operations.
|
| const_reverse_iterator | crend () const noexcept |
| | Get the const reverse end iterator for the operations.
|
| auto | size () const |
| | Get the number of operations in the circuit.
|
| auto | empty () const |
| | Check if the circuit is empty.
|
| auto & | operator[] (size_t pos) |
| | Get the operation at a given position.
|
| void | resize (size_t size) |
| | Resizes the circuit.
|
| | IOperation (Types::time_type delay=0) |
| | Construct a new IOperation object.
|
| virtual | ~IOperation ()=default |
| | Destroy the IOperation object.
|
| virtual 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=0 |
| | Get a shared pointer to a remapped operation.
|
| virtual bool | IsConditional () const |
| | Find if the operation is a conditional operation.
|
| 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.
|
template<typename Time = Types::time_type>
class Circuits::ComparableCircuit< Time >
Circuit class for holding the sequence of operations that can be compared with another circuit.
Contains a sequence of operations that can be executed, supplying a function that allows executing them in a simulator. Allows adding operations and converting them to prepare the circuit for distributed computing.
- Template Parameters
-
| Time | The time type used for operation timing. |
- See also
- Circuit
-
IOperation
-
ISimulator
Definition at line 2422 of file Circuit.h.