## 5 The SoftNet Software Package  
The package SoftNet for MATLAB is available at the web page [[http://bugs.unica.it/cana/software](http://bugs.unica.it/cana/software)]([http://bugs.unica.it/cana/software](http://bugs.unica.it/cana/software)) (accessed on 20 August 2022) as a compressed archive. Uncompressing it, a directory named SoftNet will be created; in order to use the package the user should add its name to the search path. The package SoftNet consists of 14 MATLAB routines for the identification of the \(m\) most important nodes in a network according to different centrality indices. The package also includes the function irbleigs from [25; 26], and the following 5 adjacency matrixes of real-world networks that can be used to test the software  
* karate (34 nodes, 78 edges): represents the social relationships among the 34 individuals of a university karate club [27];
* yeast (2114 nodes, 4480 edges): describes the protein interaction network for yeast [28; 29; 30];
* power (4941 nodes, 13,188 edges): undirected representation of the topology of the western states power grid of the United States [27; 31];
* internet (22,963 nodes, 96,872 edges): snapshot of the structure of the Internet at the level of autonomous systems from data for 22 July 2006 [27];
* collaborations (40,421 nodes, 351,304 edges): collaboration network of scientists who posted preprints at www.arxiv.org (accessed on 20 August 2022) between 1 January 1995 and 31 March 2005 [27; 32];
* facebook (63,731 nodes, 1,545,686 edges): user-to-user links (_friendship_) from the Facebook New Orleans network, studied in [33] and available at [34]. The package Contest by [PERSON] [35] contains different kinds of synthetic networks and can be used to generate further numerical tests. We provide a convenient interface to this package. Table 1 lists the 14 MATLAB routines with a description of their purpose. The first group, \"Computational Routines,\" includes the functions for computing different centralities (subgraph centrality (4), communicability (5), and starting convenience (6)) with respect to two different matrix functions, the exponential (2) and the resolvent (3). The computations can be performed with three different methods, namely the Gauss quadrature method recalled in Section 2, the low-rank approximation presented in Section 3 and the  
hybrid method described in Section 4. The section \"Auxiliary Routines for the Graphical User Interface\" lists some routines required to start and use the graphical user interface. The computational routines are totally independent of the graphical user interface and can be used by the user from the MATLAB command line. For example, the command  
[vip, vipsgc] = sgcenlr(A,'exp',10);  
identifies the 10 most important nodes according to the subgraph centrality when the low-rank approximation is used for the computation. vip and vipsgc are vectors containing the indices of the nodes that are candidates to being the most important nodes and the values of their subgraph centrality, respectively. Identifying the five most important nodes of a network whose adjacency matrix is \(A\) with respect to the starting convenience can be done by the following lines of code  
func = 'exp'; % the function to be used  
nnodes = 5; % the number of nodes to be identified  
theta = eigs(double(A),1,'LA'); % estimation of the largest eigenvalue  
opts = struct('gausstolq',1e-5,'gausman',150,'gaussma',theta,'show',1)  
[vip, vipsgc, info, iters, allstconv] = stconvgauss(A,func,nnodes,opts);  
The third line computes the largest eigenvalue, since its estimation is needed for the computation of the Gauss-Radau rule. The struct opts is initialized on the fifth line, where the tolerance (10) for the convergence of Gauss quadrature is chosen, as well as the maximum number of iterations, and the value \(\mu\) used for the spectrum shift (11). Setting the show variable to 1 displays a waitbar during the computations.