java.util.Arrays.sort(vtx_names);
	private void calculate() {		if (_vtx_index_tbl == null || _vtx_index_tbl.length < 1) {			System.err.println("[SNA] Warning: no graph loaded or graph contains no vertices.");			return;		}		int v;		double m_grpDensity = grp_density();		double m_grpTransitivity = grp_transitivity();		double [] m_betweenness = compute_betweenness();		double m_grpBetweenness = grp_betweenness(m_betweenness);		double [] m_closeness = compute_closeness();		double m_grpCloseness = grp_closeness(m_closeness);		int [] m_degree = compute_totaldegree();		int [] m_indegree = compute_indegree();		int [] m_outdegree = compute_outdegree();		double m_grpDegree = grp_degree(m_degree);		_graph.setDatum(new Datum(DATUM_GRP_DENSITY, new Double(m_grpDensity)));		System.out.println("   Group Density = " + _formatter.format(m_grpDensity));		_graph.setDatum(new Datum(DATUM_GRP_TRANSITIVITY, new Double(m_grpTransitivity)));		System.out.println("   Group Transitivity = " + _formatter.format(m_grpTransitivity));		_graph.setDatum(new Datum(DATUM_GRP_BETWEENNESS, new Double(m_grpBetweenness)));		System.out.println("   Group Betweenness= " + _formatter.format(m_grpBetweenness));		_graph.setDatum(new Datum(DATUM_GRP_CLOSENESS, new Double(m_grpCloseness)));		System.out.println("   Group Closeness= " + _formatter.format(m_grpCloseness));		_graph.setDatum(new Datum(DATUM_GRP_DEGREE, new Double(m_grpDegree)));		System.out.println("   Group Degree = " + _formatter.format(m_grpDegree));		String [] vtx_names = new String[_vtx_index_tbl.length];		for(v = 0; v < _graph.numVertices(); v++) {			String name = _vtx_index_tbl[v].id();			name = (name.length() > 7 ? new String(name.substring(0, 7)) : name);			vtx_names[v] = name;		}		java.util.Arrays.sort(vtx_names);		System.out.print("\n\n");		System.out.println("Adjacency Matrix (row->col):");		for(int r = 0; r < _graph.numVertices(); r++) {			System.out.print("[" + vtx_names[r] + "]\t");			for(int c = 0; c < _graph.numVertices(); c++) {				System.out.print("" + edgeLen(r, c));				if(c != _graph.numVertices() - 1) {					System.out.print("\t");				}			}			System.out.print("\n");		}		System.out.print("\n\n\nMeasures:\n");		System.out.println("   Betweenness:");		for(v = 0; v < _graph.numVertices(); v++) {			_vtx_index_tbl[v].setDatum(new Datum(DATUM_BETWEENNESS, new Double(m_betweenness[v])));			System.out.println("      [" + vtx_names[v] + "]\t" + _formatter.format(m_betweenness[v]));		}		System.out.println("   Closeness:");		for(v = 0; v < _graph.numVertices(); v++) {			_vtx_index_tbl[v].setDatum(new Datum(DATUM_CLOSENESS, new Double(m_closeness[v])));			System.out.println("      [" + vtx_names[v] + "]\t" + _formatter.format(m_closeness[v]));		}		System.out.println("   Degree:");		for(v = 0; v < _graph.numVertices(); v++) {			_vtx_index_tbl[v].setDatum(new Datum(DATUM_DEGREE, new Double(m_degree[v])));			System.out.println("      [" + vtx_names[v] + "]\t" + _formatter.format(m_degree[v]));		}		System.out.println("   In-Degree:");		for(v = 0; v < _graph.numVertices(); v++) {			_vtx_index_tbl[v].setDatum(new Datum(DATUM_INDEGREE, new Double(m_indegree[v])));			System.out.println("      [" + vtx_names[v] + "]\t" + _formatter.format(m_indegree[v]));		}		System.out.println("   Out-Degree:");		for(v = 0; v < _graph.numVertices(); v++) {			_vtx_index_tbl[v].setDatum(new Datum(DATUM_OUTDEGREE, new Double(m_outdegree[v])));			System.out.println("      [" + vtx_names[v] + "]\t" + _formatter.format(m_outdegree[v]));		}	}