Source code for qc2.algorithms.algorithms_results

"""This modules contains child classes to build algorithm results."""
from typing import Optional, List
from qc2.algorithms.base.vqe_base_results import VQEBASEResults
from qc2.algorithms.base.base_algorithm_results import BaseAlgorithmResults

[docs] class QPEResults(BaseAlgorithmResults): """Extends VQEBASEResults to provide specialized data container for QPE.""" def __init__(self) -> None: super().__init__()
[docs] self._phase: Optional[float] = None
[docs] self._eigenvalue: Optional[float] = None
[docs] self._optimal_energy: Optional[float] = None
@property
[docs] def phase(self) -> float: """Returns the phase.""" return self._phase
@phase.setter def phase(self, value: float) -> None: """Sets the phase.""" self._phase = value @property
[docs] def eigenvalue(self) -> float: """Returns the eigenvalue.""" return self._eigenvalue
@eigenvalue.setter def eigenvalue(self, value: float) -> None: """Sets eigenvalue.""" self._eigenvalue = value @property
[docs] def optimal_energy(self) -> Optional[float]: """Returns optimal energy.""" return self._optimal_energy
@optimal_energy.setter def optimal_energy(self, value: float) -> None: """Sets optimal energy.""" self._optimal_energy = value
[docs] class VQEResults(VQEBASEResults): """Extends VQEBASEResults to provide specialized data container for VQE.""" def __init__(self) -> None: super().__init__()
[docs] class OOVQEResults(VQEResults): """Extends VQEResults to provide a results data container for oo-VQE.""" def __init__(self) -> None: super().__init__()
[docs] self._optimal_circuit_params: Optional[List] = None
[docs] self._optimal_orbital_params: Optional[List] = None
[docs] self._circuit_parameters: Optional[List] = None
[docs] self._orbital_parameters: Optional[List] = None
@property
[docs] def optimal_circuit_params(self) -> Optional[List]: """Returns the optimal circuit parameters.""" return self._optimal_circuit_params
@optimal_circuit_params.setter def optimal_circuit_params(self, value: List) -> None: """Sets optimal circuit parameters.""" self._optimal_circuit_params = value @property
[docs] def optimal_orbital_params(self) -> Optional[List]: """Returns optimal orbital parameters.""" return self._optimal_orbital_params
@optimal_orbital_params.setter def optimal_orbital_params(self, value: List) -> None: """Sets optimal orbital parameters.""" self._optimal_orbital_params = value @property
[docs] def circuit_parameters(self) -> Optional[List]: """Returns list with circuit parameters of all iteration.""" return self._circuit_parameters
@circuit_parameters.setter def circuit_parameters(self, value: List) -> None: """Sets list with circuit parameters of all iteration.""" self._circuit_parameters = value @property
[docs] def orbital_parameters(self) -> Optional[List]: """Returns list with orbital parameters of all iteration.""" return self._orbital_parameters
@orbital_parameters.setter def orbital_parameters(self, value: List) -> None: """Sets list with parameters of all iteration.""" self._orbital_parameters = value