# ?lasorte

Sorts eigenpairs by real and complex data types.

## Syntax

call slasorte(s, lds, j, out, info)

call dlasorte(s, lds, j, out, info)

## Description

This routine sorts eigenpairs so that real eigenpairs are together and complex eigenpairs are together. This helps to employ 2x2 shifts easily since every second subdiagonal is guaranteed to be zero. This routine does no parallel work and makes no calls.

## Input Parameters

s

  (local) INTEGER.

  REAL for slasorte

  DOUBLE PRECISION for dlasorte

  Array, DIMENSION (lds).

  On entry, a matrix already in Schur form.

lds

  (local) INTEGER.

  On entry, the leading dimension of the array s; unchanged on exit.

j

  (local) INTEGER.

  On entry, the order of the matrix S; unchanged on exit.

out

  (local) INTEGER.

  REAL for slasorte

  DOUBLE PRECISION for dlasorte

  Array, DIMENSION (2*j). The work buffer required by the routine.

info

  (local) INTEGER.

  Set, if the input matrix had an odd number of real eigenvalues and things could not be paired or if the input matrix S was not originally in Schur form. 0 indicates successful completion.

## Output Parameters

s

  On exit, the diagonal blocks of S have been rewritten to pair the eigenvalues. The resulting matrix is no longer similar to the input.

out

  Work buffer.

Parent topic: Auxiliary Routines