following definitions, which are discussed in [2; 3; 5; 6; 8; 9], are motivated by the discussion above:  
* the _degree_ of node \(i\), given by \([A\mathbf{e}]_{i}=\mathbf{e}_{i}^{T}A\mathbf{e}\), provides a measure of the importance of node \(i\);
* the _\(f\)-subgraph centrality_ of node \(i\), defined by \[[f(A)]_{ii}=\mathbf{e}_{i}^{T}f(A)\mathbf{e}_{i},\] (4) furnishes a more sophisticated measure of the importance of node \(i\) than its degree;
* the _\(f\)-communicability_ between nodes \(i\) and \(j\), \[[f(A)]_{ij}=\mathbf{e}_{i}^{T}f(A)\mathbf{e}_{j},\] (5) quantifies the ease of traveling between nodes \(i\) and \(j\);
* the _\(f\)-starting convenience_ of node \(i\), given by \[\frac{\mathbf{e}^{T}f(A)\mathbf{e}_{i}}{\mathbf{e}^{T}f(A)\mathbf{e}},\] (6) quantifies the ease of traveling from node \(i\) to anywhere in the network. This is the sum of the communicabilities from node \(i\) to all other nodes, scaled so that the sum of the quantity over all nodes is one. Please note that all the centrality measures (4)-(6) are of the form \[\mathbf{u}^{T}f(A)\mathbf{v}\] (7) for specific vectors \(\mathbf{u}\) and \(\mathbf{v}\). The purpose of this paper is to present a software package that makes it easy to compute the above defined centrality measures, whose use and methods for their computation have received considerable attention in the literature; see [2; 3; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16; 17; 18; 19; 20; 21; 22] as well as many other references. In these references, many real applications are discussed. When the adjacency matrix \(A\) is large, i.e., when the graph \(G\) has many nodes, direct evaluation of \(f(A)\) generally is not feasible. [PERSON] and [PERSON] [11] applied pairs of Gauss and Gauss-Radau rules to compute upper and lower bounds for selected entries of \(f(A)\). This work is based on the connection between the symmetric Lanczos process, orthogonal polynomials, and Gauss-type quadrature, explored by [PERSON] and his collaborators in many publications; see [PERSON] and [PERSON] [23; 24] for details and references. A brief review of this technique is provided in Section 2. An application of pairs of block Gauss-type quadrature rules to simultaneously determine approximate upper and lower bounds of expressions of the form (7) when \(\mathbf{u}\) and \(\mathbf{v}\) are \"block vectors\", i.e., matrixes with many rows and very few columns, is described in [9]. The main drawback of quadrature-based methods is that the computational effort is proportional to the number of desired bounds. Therefore, these methods may be expensive to use when bounds for many expressions of the form (7) are to be evaluated. This situation arises, for instance, when we would like to determine one or a few nodes with the largest \(f\)-subgraph centrality in a large graph, because this requires the computation of upper and lower bounds for all diagonal entries of \(f(A)\). A method to produce upper and lower bounds for quantities of the form (7) was proposed in [20]. It is based on that knowledge of a few leading eigenvalue-eigenvector pairs gives bounds for every entry of \(f(A)\), with little computational effort in addition to computing the eigenvalue-eigenvector pairs. For example, determining the \(m\) most important nodes of a graph, with \(m\) much smaller than the number of nodes \(n\), amounts to finding the \(m\) nodes with the largest \(f\)-subgraph centrality. It is possible to quickly evaluate bounds for all entries \([f(A)]_{ij}\) if a partial spectral factorization of \(A\) is available. Using these bounds, we can determine a set of \(\ell\geq m\) nodes containing the \(m\) nodes of interest, and compute tighter bounds for the nodes in this set, if necessary, by employing Gauss-type quadrature rules. When \(\ell\ll n\), the complexity of this hybrid algorithm is much smaller than computing upper and lower bounds for all entries \([f(A)]_{ii}\), \(i=1,\ldots,n\), by Gauss quadrature.