Source code for qiskit.aqua.operators.legacy.base_operator

# -*- coding: utf-8 -*-

# This code is part of Qiskit.
#
# (C) Copyright IBM 2019, 2020.
#
# This code is licensed under the Apache License, Version 2.0. You may
# obtain a copy of this license in the LICENSE.txt file in the root directory
# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0.
#
# Any modifications or derivative works of this code must retain this
# copyright notice, and modified files need to carry a notice indicating
# that they have been altered from the originals.

""" Base Operator """

from abc import ABC, abstractmethod


[docs]class LegacyBaseOperator(ABC): """Operators relevant for quantum applications.""" @abstractmethod def __init__(self, basis=None, z2_symmetries=None, name=None): """Constructor.""" self._basis = basis self._z2_symmetries = z2_symmetries self._name = name if name is not None else '' @property def name(self): """ returns name """ return self._name @name.setter def name(self, new_value): """ sets name """ self._name = new_value @property def basis(self): """ returns basis """ return self._basis @property def z2_symmetries(self): """ returns z2 symmetries """ return self._z2_symmetries @abstractmethod def __add__(self, other): """ Overload + operation """ raise NotImplementedError @abstractmethod def __iadd__(self, other): """ Overload += operation """ raise NotImplementedError @abstractmethod def __sub__(self, other): """ Overload - operation """ raise NotImplementedError @abstractmethod def __isub__(self, other): """ Overload -= operation """ raise NotImplementedError @abstractmethod def __neg__(self): """ Overload unary - """ raise NotImplementedError @abstractmethod def __eq__(self, other): """ Overload == operation """ raise NotImplementedError @abstractmethod def __str__(self): """Overload str() """ raise NotImplementedError
[docs] @abstractmethod def __mul__(self, other): """ Overload * """ raise NotImplementedError
[docs] @abstractmethod def to_opflow(self): """ Convert to new Operator format. """ raise NotImplementedError
[docs] @abstractmethod def construct_evaluation_circuit(self, wave_function, statevector_mode, **kwargs): """ Build circuits to compute the expectation w.r.t the wavefunction. """ raise NotImplementedError
[docs] @abstractmethod def evaluate_with_result(self, result, statevector_mode, **kwargs): """ Consume the result from the quantum computer to build the expectation, will be only used along with the :meth:`construct_evaluation_circuit` method. """ raise NotImplementedError
[docs] @abstractmethod def evolve(self, state_in, evo_time, num_time_slices, expansion_mode, expansion_order, **kwargs): r""" Time evolution, exp\^(-jt H). """ raise NotImplementedError
[docs] @abstractmethod def print_details(self): """ print details """ raise NotImplementedError
[docs] @abstractmethod def chop(self, threshold, copy=False): """ chop """ raise NotImplementedError
@property @abstractmethod def num_qubits(self): """ Returns number of qubits for operator """ raise NotImplementedError
[docs] @abstractmethod def is_empty(self): """ Check Operator is empty or not """ raise NotImplementedError