code: public static <K, VV, EV, M> GatherSumApplyIteration<K, VV, EV, M>
  		withEdges(DataSet<Edge<K, EV>> edges, GatherFunction<VV, EV, M> gather,
  		SumFunction<VV, EV, M> sum, ApplyFunction<K, VV, M> apply, int maximumNumberOfIterations) {
  
  		return new GatherSumApplyIteration<>(gather, sum, apply, edges, maximumNumberOfIterations);
  	}
docs: Creates a new gather-sum-apply iteration operator for graphs.
  
  @param edges The edge DataSet
  
  @param gather The gather function of the GSA iteration
  @param sum The sum function of the GSA iteration
  @param apply The apply function of the GSA iteration
  
  @param maximumNumberOfIterations The maximum number of iterations executed
  
  @param <K> The type of the vertex key in the graph
  @param <VV> The type of the vertex value in the graph
  @param <EV> The type of the edge value in the graph
  @param <M> The intermediate type used by the gather, sum and apply functions
  
  @return An in stance of the gather-sum-apply graph computation operator.