An object-oriented C++ implementation of Davidson method for finding a few selected extreme eigenpairs of a large, sparse, real, symmetric matrix