# 1. Introduction

z-Pares is a package for solving
generalized eigenvalue problems

\[A \boldsymbol{x} = \lambda B \boldsymbol{x},\]

where \(A\) and \(B\) are real or complex square matrices
, and \(\lambda\) and \(\boldsymbol{x}\) are an eigenvalue and an eigenvector, respectively.
z-Pares is designed to compute a few eigenvalues and eigenvectors of sparse matrices.
The symmetries and definitenesses of the matrices can be exploited suitably.
z-Pares implements a complex moment based contour integral eigensolver.
z-Pares computes eigenvalues inside a user-specified contour path and corresponding eigenvectors.
The most important feature of z-Pares is two-level Message Passing Interface (MPI) distributed parallelism.

## 1.1. Features

The main features of z-Pares are described below.

- Implemented in Fortran 90/95
- Solves standard eigenvalue problems \(A \boldsymbol{x} = \lambda \boldsymbol{x}\) and generalized eigenvalue problems \(A \boldsymbol{x} = \lambda B \boldsymbol{x}\)
- Computes eigenvalues located in an interval or a circle and corresponding (right) eigenvectors
- Both real and complex type are supported
- Single precision and double precision are supported
- Both sequatial and distributed parellel MPI builds are available
- Two-level distributed parallelism can be utilized using a pair of MPI communicators
- Reverse communication mechanism is used so that the package accept any matrix data structures
- Interfaces for dense and sparse CSR format are available (only with 1-level distributed parallelism)

## 1.2. Dependences

z-Pares depends on follwing packages:

- BLAS/LAPACK
- Message Passing Interface (MPI-2 standard)
- MUMPS 4.10.0 (optional)

BLAS/LAPACK should be installed
and MPI is needed for the parallel version of z-Pares.
MUMPS is required to use the sparse CSR interface.