The following subroutines are used to solve non-symmetric
generalized eigenvalue problems in real arithmetic.
These routines are appropriate
when is a general non-symmetric matrix and is symmetric and
positive semi-definite.
The reverse communication interface routine for the non-symmetric double
precision eigenvalue problem is `dnaupd`. The routine is called as
shown in Figure 3.6.
The specification of which `nev` eigenvalues is controlled by the
`character*2` argument `which`. Table 3.4 lists
the choices available.

call dnaupd (ido, bmat, n, which, nev, tol, resid, ncv, v, & ldv, iparam, ipntr, workd, workl, lworkl, info) |

1|cWHICH | 1c|DESCRIPTION |

`LM' |
Eigenvalues of largest magnitude. |

`SM' |
Eigenvalues of smallest magnitude. |

`LR' |
Eigenvalues of largest real part. |

`SR' |
Eigenvalues of smallest real part. |

`LI' |
Eigenvalues of largest imaginary part. |

`SI' |
Eigenvalues of smallest imaginary part. |

There are three different shift-invert modes for non-symmetric eigenvalue problems. These modes are specified by setting the parameter entry

In the following list, the specification of `OP` and are given
for the various modes. Also, the `iparam(7)` and `bmat`
settings are listed along with the name of the sample driver
for the given mode. Sample drivers for the following modes may be
found in the `EXAMPLES/NONSYM` subdirectory.

- 1.
- Regular mode (
`iparam(7) = 1, bmat = 'I'`). Use driver`dndrv1`.- (a)
- Solve in regular mode.
- (b)
- and

- 2.
- Shift-invert mode (
`iparam(7) = 3, bmat = 'I'`). Use driver`dndrv2`

with`sigma`a real shift.- (a)
- Solve in shift-invert mode.
- (b)
- and

- 3.
- Regular inverse mode (
`iparam(7) = 2, bmat = 'G'`). Use driver`dndrv3`.- (a)
- Solve in regular inverse mode.
- (b)
- and

- 4.
- Shift-invert mode (
`iparam(7) = 3, bmat = 'G'`). Use driver`dndrv4`

with`sigma`a real shift.- (a)
- Solve in shift-invert mode.
- (b)
- and

- 5.
- Complex Shift-invert mode (
`iparam(7) = 3, bmat = 'G'`). Use driver`dndrv5`when`sigma`is complex. must be factored in complex arithmetic.- (a)
- Solve using complex shift in real arithmetic.
- (b)
- and

- 6.
- Complex Shift-invert mode (
`iparam(7) = 4, bmat = 'G'`). Use driver`dndrv6`when`sigma`is complex. must be factored in complex arithmetic.- (a)
- Solve using complex shift in real arithmetic.
- (b)
- and

Note that there are two shift-invert modes with complex shifts
(See `dndrv5` and `dndrv6`).
Since is complex, these both require
the factorization of the matrix in complex arithmetic even
though both and are real. The only advantage of using this
option instead of using the standard shift-invert mode in complex
arithmetic with the routine `znaupd` is that all of the
internal operations in the IRAM are executed in real arithmetic.
This results in a factor of two savings in storage and a factor of four
savings in arithmetic. There is additional post-processing that is
somewhat more complicated than the other modes in order to get the
eigenvalues and eigenvectors of the original problem. These modes
are only recommended if storage is extremely critical.