countWeightedCrossings method

double countWeightedCrossings(
  1. List edges,
  2. List<LayerElement> nextLayer
)

Implementation

double countWeightedCrossings(List<dynamic> edges, List<LayerElement> nextLayer) {
  var crossings = 0.0;

  for (var i = 0; i < edges.length - 1; i++) {
    for (var j = i + 1; j < edges.length; j++) {
      var edge1 = edges[i];
      var edge2 = edges[j];

      var weight1 = getEdgeWeight(edge1);
      var weight2 = getEdgeWeight(edge2);

      var pos1 = getTargetPosition(edge1, nextLayer);
      var pos2 = getTargetPosition(edge2, nextLayer);

      if (pos1 > pos2) {
        crossings += weight1 * weight2;
      }
    }
  }

  return crossings;
}