peropq.ed_module¶
Classes¶
Class implementing exact diagonalization for benchmarks on small system sizes. |
Module Contents¶
- class peropq.ed_module.ExactDiagonalization(number_of_qubits)¶
Class implementing exact diagonalization for benchmarks on small system sizes.
- Parameters:
number_of_qubits (int)
- number_of_qubits¶
- pauli_to_sparse(pauli)¶
Converts a Pauli to a 2x2 sparse matrix.
- Parameters:
pauli (str) – to be converted.
- Return type:
scipy.sparse.spmatrix
- get_sparse(pauli_string)¶
Transforms PauliString into sparse matrix.
- Parameters:
pauli_string (peropq.pauli_bitstring.PauliString) – to be transformed into a sparse matrix.
- Return type:
scipy.sparse.spmatrix
- get_hamiltonian_matrix(hamiltonian)¶
Param hamiltonian: to be converted to sparse.
- Parameters:
hamiltonian (peropq.hamiltonian.Hamiltonian)
- Return type:
scipy.sparse.spmatrix
- get_continuous_time_evolution(hamiltonian, time)¶
Get the continuous time evolution of an Hamiltonian.
- Parameters:
hamiltonian (peropq.hamiltonian.Hamiltonian) – governing the dynamics
time (float) – at which we want to time evolve.
- Return type:
scipy.sparse.spmatrix
- get_variational_evolution(variational_unitary)¶
Get the time evolution unitary from a variational unitary.
- Parameters:
variational_unitary (peropq.variational_unitary.VariationalUnitary) – to be evolved.
- Return type:
scipy.sparse.spmatrix
- apply_continuous_to_state(hamiltonian, time, state)¶
Apply the continuous time evolution.
- Parameters:
hamiltonian (peropq.hamiltonian.Hamiltonian) – governing the dynamics
time (float) – at which we want to time evolve.
state (numpy.typing.NDArray) – to be evolved.
- Return type:
numpy.typing.NDArray
- apply_variational_to_state(variational_unitary, state)¶
Apply the variational unitary to a state.
- Parameters:
variational_unitary (peropq.variational_unitary.VariationalUnitary) – to be applied
state (numpy.typing.NDArray) – on which the unitary is applied
- Return type:
numpy.typing.NDArray
- get_error(variational_unitary, hamiltonian)¶
Returns the error made for by the variational unitary (compared to the continuous time evolution).
:param variational_unitary to be compared with the continuous time evolution. :param hamiltonian: used to caclulated the continuous time evolution. :returns: exact error norm
- Parameters:
variational_unitary (peropq.variational_unitary.VariationalUnitary)
hamiltonian (peropq.hamiltonian.Hamiltonian)
- Return type:
float