  SLEPc is a parallel library for the solution of various types of large-scale
eigenvalue problems. In the last years we have been developing a module within
SLEPc, called NEP, that is intended for solving nonlinear eigenvalue problems.
These problems can be defined by means of a matrix-valued function that depends
nonlinearly on a single scalar parameter. We do not consider the particular
case of polynomial eigenvalue problems (which are implemented in a different
module in SLEPc) and focus here on rational eigenvalue problems and other
general nonlinear eigenproblems involving square roots or any other nonlinear
function. The paper discusses how the NEP module has been designed to fit the
needs of applications and provides a description of the available solvers,
including some implementation details such as parallelization. Several test
problems coming from real applications are used to evaluate the performance and
reliability of the solvers.
