|
| virtual void | ApplyP (Types::qubit_t qubit, double lambda)=0 |
| | Applies a phase shift gate to the qubit.
|
| virtual void | ApplyX (Types::qubit_t qubit)=0 |
| | Applies a not gate to the qubit.
|
| virtual void | ApplyY (Types::qubit_t qubit)=0 |
| | Applies a Y gate to the qubit.
|
| virtual void | ApplyZ (Types::qubit_t qubit)=0 |
| | Applies a Z gate to the qubit.
|
| virtual void | ApplyH (Types::qubit_t qubit)=0 |
| | Applies a Hadamard gate to the qubit.
|
| virtual void | ApplyS (Types::qubit_t qubit)=0 |
| | Applies a S gate to the qubit.
|
| virtual void | ApplySDG (Types::qubit_t qubit)=0 |
| | Applies a S dagger gate to the qubit.
|
| virtual void | ApplyT (Types::qubit_t qubit)=0 |
| | Applies a T gate to the qubit.
|
| virtual void | ApplyTDG (Types::qubit_t qubit)=0 |
| | Applies a T dagger gate to the qubit.
|
| virtual void | ApplySx (Types::qubit_t qubit)=0 |
| | Applies a Sx gate to the qubit.
|
| virtual void | ApplySxDAG (Types::qubit_t qubit)=0 |
| | Applies a Sx dagger gate to the qubit.
|
| virtual void | ApplyK (Types::qubit_t qubit)=0 |
| | Applies a K gate to the qubit.
|
| virtual void | ApplyRx (Types::qubit_t qubit, double theta)=0 |
| | Applies a Rx gate to the qubit.
|
| virtual void | ApplyRy (Types::qubit_t qubit, double theta)=0 |
| | Applies a Ry gate to the qubit.
|
| virtual void | ApplyRz (Types::qubit_t qubit, double theta)=0 |
| | Applies a Rz gate to the qubit.
|
| virtual void | ApplyU (Types::qubit_t qubit, double theta, double phi, double lambda, double gamma)=0 |
| | Applies a U gate to the qubit.
|
| virtual void | ApplyCX (Types::qubit_t ctrl_qubit, Types::qubit_t tgt_qubit)=0 |
| | Applies a CX gate to the qubits.
|
| virtual void | ApplyCY (Types::qubit_t ctrl_qubit, Types::qubit_t tgt_qubit)=0 |
| | Applies a CY gate to the qubits.
|
| virtual void | ApplyCZ (Types::qubit_t ctrl_qubit, Types::qubit_t tgt_qubit)=0 |
| | Applies a CZ gate to the qubits.
|
| virtual void | ApplyCP (Types::qubit_t ctrl_qubit, Types::qubit_t tgt_qubit, double lambda)=0 |
| | Applies a CP gate to the qubits.
|
| virtual void | ApplyCRx (Types::qubit_t ctrl_qubit, Types::qubit_t tgt_qubit, double theta)=0 |
| | Applies a CRx gate to the qubits.
|
| virtual void | ApplyCRy (Types::qubit_t ctrl_qubit, Types::qubit_t tgt_qubit, double theta)=0 |
| | Applies a CRy gate to the qubits.
|
| virtual void | ApplyCRz (Types::qubit_t ctrl_qubit, Types::qubit_t tgt_qubit, double theta)=0 |
| | Applies a CRz gate to the qubits.
|
| virtual void | ApplyCH (Types::qubit_t ctrl_qubit, Types::qubit_t tgt_qubit)=0 |
| | Applies a CH gate to the qubits.
|
| virtual void | ApplyCSx (Types::qubit_t ctrl_qubit, Types::qubit_t tgt_qubit)=0 |
| | Applies a CSx gate to the qubits.
|
| virtual void | ApplyCSxDAG (Types::qubit_t ctrl_qubit, Types::qubit_t tgt_qubit)=0 |
| | Applies a CSx dagger gate to the qubits.
|
| virtual void | ApplySwap (Types::qubit_t qubit0, Types::qubit_t qubit1)=0 |
| | Applies a swap gate to the qubits.
|
| virtual void | ApplyCCX (Types::qubit_t qubit0, Types::qubit_t qubit1, Types::qubit_t qubit2)=0 |
| | Applies a controlled controlled not gate to the qubits.
|
| virtual void | ApplyCSwap (Types::qubit_t ctrl_qubit, Types::qubit_t qubit0, Types::qubit_t qubit1)=0 |
| | Applies a controlled swap gate to the qubits.
|
| virtual void | ApplyCU (Types::qubit_t ctrl_qubit, Types::qubit_t tgt_qubit, double theta, double phi, double lambda, double gamma)=0 |
| | Applies a controlled U gate to the qubits.
|
| virtual void | ApplyNop ()=0 |
| | Applies a nop.
|
| virtual std::unique_ptr< ISimulator > | Clone ()=0 |
| | Clones the simulator.
|
| std::shared_ptr< ISimulator > | getptr () |
| | Get a shared pointer to this object.
|
| virtual | ~IState ()=default |
| | Virtual destructor.
|
| virtual void | Initialize ()=0 |
| | Initializes the state.
|
| virtual void | InitializeState (size_t num_qubits, std::vector< std::complex< double > > &litudes)=0 |
| | Initializes the state.
|
| virtual void | InitializeState (size_t num_qubits, AER::Vector< std::complex< double > > &litudes)=0 |
| | Initializes the state.
|
| virtual void | InitializeState (size_t num_qubits, Eigen::VectorXcd &litudes)=0 |
| | Initializes the state.
|
| virtual void | Reset ()=0 |
| | Just resets the state to 0.
|
| virtual void | Configure (const char *key, const char *value)=0 |
| | Configures the state.
|
| virtual std::string | GetConfiguration (const char *key) const =0 |
| | Returns configuration value.
|
| virtual size_t | AllocateQubits (size_t num_qubits)=0 |
| | Allocates qubits.
|
| virtual size_t | GetNumberOfQubits () const =0 |
| | Returns the number of qubits.
|
| virtual void | Clear ()=0 |
| | Clears the state.
|
| virtual size_t | Measure (const Types::qubits_vector &qubits)=0 |
| | Performs a measurement on the specified qubits.
|
| virtual void | ApplyReset (const Types::qubits_vector &qubits)=0 |
| | Performs a reset of the specified qubits.
|
| virtual double | Probability (Types::qubit_t outcome)=0 |
| | Returns the probability of the specified outcome.
|
| virtual std::complex< double > | Amplitude (Types::qubit_t outcome)=0 |
| | Returns the amplitude of the specified state.
|
| virtual std::vector< double > | AllProbabilities ()=0 |
| | Returns the probabilities of all possible outcomes.
|
| virtual std::vector< double > | Probabilities (const Types::qubits_vector &qubits)=0 |
| | Returns the probabilities of the specified outcomes.
|
| virtual std::unordered_map< Types::qubit_t, Types::qubit_t > | SampleCounts (const Types::qubits_vector &qubits, size_t shots=1000)=0 |
| | Returns the counts of the outcomes of measurement of the specified qubits, for repeated measurements.
|
| virtual double | ExpectationValue (const std::string &pauliString)=0 |
| | Returns the expected value of a Pauli string.
|
| void | RegisterObserver (const std::shared_ptr< ISimulatorObserver > &observer) |
| | Registers an observer.
|
| void | UnregisterObserver (const std::shared_ptr< ISimulatorObserver > &observer) |
| | Unregisters an observer.
|
| void | ClearObservers () |
| | Clears all observers.
|
| virtual SimulatorType | GetType () const =0 |
| | Returns the type of simulator.
|
| virtual SimulationType | GetSimulationType () const =0 |
| | Returns the type of simulation.
|
| virtual void | Flush ()=0 |
| | Flushes the applied operations.
|
| virtual void | SaveStateToInternalDestructive ()=0 |
| | Saves the state to internal storage.
|
| virtual void | RestoreInternalDestructiveSavedState ()=0 |
| | Restores the state from the internally saved state.
|
| virtual void | SaveState ()=0 |
| | Saves the state to internal storage.
|
| virtual void | RestoreState ()=0 |
| | Restores the state from the internally saved state.
|
| virtual std::complex< double > | AmplitudeRaw (Types::qubit_t outcome)=0 |
| | Gets the amplitude.
|
| virtual void | SetMultithreading (bool multithreading=true)=0 |
| | Enable/disable multithreading.
|
| virtual bool | GetMultithreading () const =0 |
| | Get the multithreading flag.
|
| virtual bool | IsQcsim () const =0 |
| | Returns if the simulator is a qcsim simulator.
|
| virtual Types::qubit_t | MeasureNoCollapse ()=0 |
| | Measures all the qubits without collapsing the state.
|
Interface class for a quantum computing simulator.
This is the interface that exposes the functionality of the quantum computing simulators. Use them wrapped in shared pointers.
- See also
- IState
-
AerSimulator
-
QCSimSimulator
Definition at line 32 of file Simulator.h.