Large-scale problems of engineering and scientific computing often require solutions of eigenvalue and related problems. This book gives a unified overview of theory, algorithms, and practical software for eigenvalue problems. It organizes this large body of material to make it accessible for the first time to the many nonexpert users who need to choose the best state-of-the-art algorithms and software for their problems. Using an informal decision tree, just enough theory is introduced to identify the relevant mathematical structure that determines the best algorithm for each problem. The algorithms and software at the 'leaves' of the decision tree range from the classical QR algorithm, which is most suitable for small dense matrices, to iterative algorithms for very large generalized eigenvalue problems. Algorithms are presented in a unified style as templates, with different levels of detail suitable for readers ranging from beginning students to experts.