EigsQPE

class EigsQPE(operator, iqft, num_time_slices=1, num_ancillae=1, expansion_mode='trotter', expansion_order=1, evo_time=None, negative_evals=False, ne_qfts=None)[source]

Eigenvalues using Quantum Phase Estimation.

Specifically, this class is based on PhaseEstimationCircuit with no measurements and has additional handling of negative eigenvalues, e.g. for HHL. It depends on QFT and IQFT components.

Parameters
  • operator (LegacyBaseOperator) – The Hamiltonian Operator object

  • iqft (Union[QuantumCircuit, IQFT]) – The Inverse Quantum Fourier Transform component

  • num_time_slices (int) – The number of time slices, has a minimum value of 1.

  • num_ancillae (int) – The number of ancillary qubits to use for the measurement, has a minimum value of 1.

  • expansion_mode (str) – The expansion mode (‘trotter’ | ‘suzuki’)

  • expansion_order (int) – The suzuki expansion order, has a minimum value of 1.

  • evo_time (Optional[float]) – An optional evolution time which should scale the eigenvalue onto the range \((0,1]\) (or \((-0.5,0.5]\) for negative eigenvalues). Defaults to None in which case a suitably estimated evolution time is internally computed.

  • negative_evals (bool) – Set True to indicate negative eigenvalues need to be handled

  • ne_qfts (Optional[List]) – The QFT and IQFT components for handling negative eigenvalues

Methods

EigsQPE.construct_circuit(mode[, register])

Construct the eigenvalues estimation using the PhaseEstimationCircuit

EigsQPE.construct_inverse(mode, circuit)

Construct the inverse eigenvalue estimation quantum circuit.

EigsQPE.get_register_sizes()

get register sizes

EigsQPE.get_scaling()

get scaling