# eigenvalues_general_matrix (Operator)

## Name

`eigenvalues_general_matrix` — Compute the eigenvalues and optionally the eigenvectors of a general matrix.

## Signature

`eigenvalues_general_matrix( : : MatrixID, ComputeEigenvectors : EigenvaluesRealID, EigenvaluesImagID, EigenvectorsRealID, EigenvectorsImagID)`

## Description

The operator `eigenvalues_general_matrix` computes all eigenvalues and, optionally, the left or right eigenvectors of a square, general `Matrix`. The matrix is defined by the matrix handle `MatrixID`. The computed eigenvectors have the norm 1.

The operator generates the new matrices `EigenvaluesReal` and `EigenvaluesImag` with the real and the imaginary parts of the computed eigenvalues. Each matrix has one column and n rows, where n is the number of rows of the input `Matrix`. In contrast to the operator `eigenvalues_symmetric_matrix`, the order of the eigenvalues is not defined. The operator returns the matrix handles `EigenvaluesRealID` and `EigenvaluesImagID`. If desired, the real and imaginary parts of the computed eigenvectors are stored in the new matrices `EigenvectorsReal` and `EigenvectorsImag`. For this, the operator returns valid matrix handles `EigenvectorsRealID` and `EigenvectorsImagID`. Access to the elements of the matrix is possible e.g. with the operator `get_full_matrix`.

The computation type of eigenvectors can be selected via the parameter `ComputeEigenvectors`. If `ComputeEigenvectors` = 'none', no eigenvectors are computed. If 'left' is selected, the left eigenvalues are computed. If 'right' is selected, the right eigenvalues are computed.

Example:

## Execution Information

• Multithreading type: reentrant (runs in parallel with non-exclusive operators).
• Processed without parallelization.

## Parameters

`MatrixID` (input_control)  matrix `→` (handle)

Matrix handle of the input matrix.

`ComputeEigenvectors` (input_control)  string `→` (string)

Computation of the eigenvectors.

Default value: 'none'

List of values: 'left', 'none', 'right'

`EigenvaluesRealID` (output_control)  matrix `→` (handle)

Matrix handle with the real parts of the eigenvalues.

`EigenvaluesImagID` (output_control)  matrix `→` (handle)

Matrix handle with the imaginary parts of the eigenvalues.

`EigenvectorsRealID` (output_control)  matrix `→` (handle)

Matrix handle with the real parts of the eigenvectors.

`EigenvectorsImagID` (output_control)  matrix `→` (handle)

Matrix handle with the imaginary parts of the eigenvectors.

## Result

If the parameters are valid, the operator `eigenvalues_general_matrix` returns the value TRUE. If necessary, an exception is raised.

## Possible Predecessors

`create_matrix`

## Possible Successors

`get_full_matrix`, `get_value_matrix`, `get_diagonal_matrix`

`eigenvalues_symmetric_matrix`, `generalized_eigenvalues_symmetric_matrix`, `generalized_eigenvalues_general_matrix`