Class MatrixBasedVertexMetric<U>

java.lang.Object
es.uam.eps.ir.relison.sna.metrics.vertex.MatrixBasedVertexMetric<U>
Type Parameters:
U - type of the users.
All Implemented Interfaces:
VertexMetric<U>
Direct Known Subclasses:
EigenvectorCentrality, KatzCentrality

public abstract class MatrixBasedVertexMetric<U>
extends java.lang.Object
implements VertexMetric<U>
Vertex metric based on matrices.
  • Field Summary

    Fields 
    Modifier and Type Field Description
    private MatrixLibrary library
    The matrix library to use.
  • Constructor Summary

    Constructors 
    Constructor Description
    MatrixBasedVertexMetric()
    Default constructor.
    MatrixBasedVertexMetric​(MatrixLibrary library)
    Constructor.
  • Method Summary

    Modifier and Type Method Description
    java.util.Map<U,​java.lang.Double> compute​(Graph<U> graph)
    Computes the value of the metric for all the users in the graph.
    java.util.Map<U,​java.lang.Double> compute​(Graph<U> graph, java.util.stream.Stream<U> users)
    Computes the value of the metric for a subset of the users in the graph.
    double compute​(Graph<U> graph, U user)
    Computes the value of the metric for a single user.
    protected abstract double[] getCOLTScores​(Graph<U> graph)
    Obtains the values of the metric for the different users using the COLT library.
    protected abstract double[] getJBLASScores​(Graph<U> graph)
    Obtains the values of the metric for the different users using the JBLAS library.
    protected abstract double[] getMTJScores​(Graph<U> graph)
    Obtains the values of the metric for the different users using the MTJ library.
    double[] getScores​(Graph<U> graph)
    Obtains the value of the metric for each user.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface es.uam.eps.ir.relison.sna.metrics.VertexMetric

    averageValue, averageValue
  • Field Details

  • Constructor Details

    • MatrixBasedVertexMetric

      public MatrixBasedVertexMetric​(MatrixLibrary library)
      Constructor.
      Parameters:
      library - the matrix library to use.
    • MatrixBasedVertexMetric

      public MatrixBasedVertexMetric()
      Default constructor. If possible, uses the JBLAS library. Otherwise, it takes the COLT library.
  • Method Details

    • compute

      public java.util.Map<U,​java.lang.Double> compute​(Graph<U> graph)
      Description copied from interface: VertexMetric
      Computes the value of the metric for all the users in the graph.
      Specified by:
      compute in interface VertexMetric<U>
      Parameters:
      graph - The graph.
      Returns:
      A map relating the users with the values of the metric.
    • compute

      public double compute​(Graph<U> graph, U user)
      Description copied from interface: VertexMetric
      Computes the value of the metric for a single user.
      Specified by:
      compute in interface VertexMetric<U>
      Parameters:
      graph - The graph.
      user - The user to compute.
      Returns:
      the value of the metric.
    • compute

      public java.util.Map<U,​java.lang.Double> compute​(Graph<U> graph, java.util.stream.Stream<U> users)
      Description copied from interface: VertexMetric
      Computes the value of the metric for a subset of the users in the graph.
      Specified by:
      compute in interface VertexMetric<U>
      Parameters:
      graph - the graph.
      users - the stream of users.
      Returns:
      a map relating users with the values of the metric. Nodes not in the graph will not be included in the map.
    • getScores

      public double[] getScores​(Graph<U> graph)
      Obtains the value of the metric for each user.
      Parameters:
      graph - the network.
      Returns:
      an array containing the value of the metric for each user.
    • getJBLASScores

      protected abstract double[] getJBLASScores​(Graph<U> graph)
      Obtains the values of the metric for the different users using the JBLAS library.
      Parameters:
      graph - the network.
      Returns:
      an array containing the value of the metric for each user.
    • getMTJScores

      protected abstract double[] getMTJScores​(Graph<U> graph)
      Obtains the values of the metric for the different users using the MTJ library.
      Parameters:
      graph - the network.
      Returns:
      an array containing the value of the metric for each user.
    • getCOLTScores

      protected abstract double[] getCOLTScores​(Graph<U> graph)
      Obtains the values of the metric for the different users using the COLT library.
      Parameters:
      graph - the network.
      Returns:
      an array containing the value of the metric for each user.