# Eigensolver

*class *`Eigensolver`

Bases: `abc.ABC`

The eigensolver interface.

Algorithms that can compute eigenvalues for an operator may implement this interface to allow different algorithms to be used interchangeably.

## Methods

### compute_eigenvalues

*abstract *`Eigensolver.compute_eigenvalues(operator, aux_operators=None)`

Computes the minimum eigenvalue. The `operator`

and `aux_operators`

are supplied here. While an `operator`

is required by algorithms, `aux_operators`

are optional.

**Parameters**

**operator**(*BaseOperator |**PauliSumOp*) – Qubit operator of the observable.**aux_operators**(*ListOrDict[BaseOperator |**PauliSumOp**] | None*) – Optional list of auxiliary operators to be evaluated with the eigenstate of the minimum eigenvalue main result and their expectation values returned. For instance, in chemistry, these can be dipole operators and total particle count operators, so we can get values for these at the ground state.

**Return type**

**Returns**

An eigensolver result.

### supports_aux_operators

*classmethod *`Eigensolver.supports_aux_operators()`

Whether computing the expectation value of auxiliary operators is supported.

If the eigensolver computes the eigenvalues of the main operator, then it can compute the expectation value of the `aux_operators`

for that state. Otherwise they will be ignored.

**Return type**

`bool`

**Returns**

`True`

if `aux_operator`

expectations can be evaluated, `False`

otherwise.