public double affiliationOfVertexToSet()

in src/main/java/com/twitter/sbf/graph/Graph.java [801:829]


  public double affiliationOfVertexToSet(int nodeId, IntSet set) {
    if (set.size() == 1 && set.contains(nodeId)) {
      return 1.0;
    }

    double wtOfNeighborsInSet = 0;
    int numberOfNeighborsInSet = 0;
    double wtOfNeighborsNotInSet = 0;
    Iterator<WeightedId> iter = this.getWeightedNeighborsIterator(nodeId);
    while (iter.hasNext()) {
      WeightedId wtId = iter.next();
      if (set.contains(wtId.neighborId)) {
        wtOfNeighborsInSet += wtId.weight;
        numberOfNeighborsInSet++;
      } else {
        wtOfNeighborsNotInSet += wtId.weight;
      }
    }
    int setSize = set.contains(nodeId) ? set.size() - 1 : set.size();
    double wtOfSetMinusNeighbors =
        this.getGlobalAvgWeight() * (setSize - numberOfNeighborsInSet);

    double den = wtOfNeighborsInSet + wtOfNeighborsNotInSet + wtOfSetMinusNeighbors;
    if (den == 0.0) {
      return 0.0;
    } else {
      return wtOfNeighborsInSet / den;
    }
  }