private static int calculate(final Collection<Rotation4D> group,
      final Collection<Rotation4D> arg1, final Collection<Rotation4D> arg2,
      final Collection<Rotation4D> dist) {
    int newElems = 0;
    Rotation4D z;
    for (Rotation4D x : arg1) {
      for (Rotation4D y : arg2) {
        z = x.nextRotation(y);
        if (!group.contains(z) && !arg1.contains(z) && !arg2.contains(z)) {
          dist.add(z);
          newElems++;
        }
      }
    }
    return newElems;
  }