# generalized_eigenvalues_symmetric_matrix (Operator)

## Name

`generalized_eigenvalues_symmetric_matrix` — Compute the generalized eigenvalues and optionally generalized eigenvectors of symmetric input matrices.

## Signature

`generalized_eigenvalues_symmetric_matrix( : : MatrixAID, MatrixBID, ComputeEigenvectors : EigenvaluesID, EigenvectorsID)`

## Description

The operator `generalized_eigenvalues_symmetric_matrix` computes all generalized eigenvalues and, optionally, generalized eigenvectors of the symmetric matrix `MatrixA` and the symmetric positive definite matrix `MatrixB`. Both matrices must have identical dimensions. The matrices are defined by the matrix handles `MatrixAID` and `MatrixBID`. On output, a new matrix `Eigenvalues` with the generalized eigenvalues in ascending order and, optionally, a new matrix `Eigenvectors` with the generalized eigenvectors is created. Each jth column of the matrix `Eigenvectors` contains the related eigenvector to the jth eigenvalue. The operator returns the matrix handles `EigenvaluesID` and `EigenvectorsID` of the matrices `Eigenvalues` and `Eigenvectors`. Access to the elements of the matrices is possible, e.g., with the operator `get_full_matrix` or `get_sub_matrix`.

The computation of generalized eigenvectors can be selected via `ComputeEigenvectors` = 'true'. The formula for the calculation of the result is with representing the th eigenvalue and represents the corresponding eigenvector.

If `ComputeEigenvectors` = 'false', no generalized eigenvectors are computed. For this, the matrix handle `EigenvectorsID` is invalid.

Example:

## Attention

The upper triangular parts of the input matrices `MatrixA` and `MatrixB` must contain the relevant information of the matrices. The strictly lower triangular parts of the matrices are not referenced. If the referenced parts of the input matrices `MatrixA` or `MatrixB` are not of the specified type, an exception is raised.

## Execution Information

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

## Parameters

`MatrixAID` (input_control)  matrix `→` (handle)

Matrix handle of the symmetric input matrix A.

`MatrixBID` (input_control)  matrix `→` (handle)

Matrix handle of the symmetric positive definite input matrix B.

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

Computation of the eigenvectors.

Default value: 'false'

List of values: 'false', 'true'

`EigenvaluesID` (output_control)  matrix `→` (handle)

Matrix handle with the eigenvalues.

`EigenvectorsID` (output_control)  matrix `→` (handle)

Matrix handle with the eigenvectors.

## Result

If the parameters are valid, the operator `generalized_eigenvalues_symmetric_matrix` returns the value 2 (H_MSG_TRUE). If necessary, an exception is raised.

## Possible Predecessors

`create_matrix`

## Possible Successors

`get_full_matrix`, `get_value_matrix`

## Alternatives

`generalized_eigenvalues_general_matrix`

`eigenvalues_symmetric_matrix`, `eigenvalues_general_matrix`