public AccumaltedResult(Communication communication, int numberOfFullSyncs, double functionValue, double upperBound, double lowerBound, double[] nodesFunctionValues, int loopIndex, ApproximationType approximation, int numOfNodes, int vectorLength, MonitoringScheme monitoringScheme)
 {
     Communication       = communication;
     NumberOfFullSyncs   = numberOfFullSyncs;
     FunctionValue       = functionValue;
     UpperBound          = upperBound;
     LowerBound          = lowerBound;
     NodesFunctionValues = nodesFunctionValues;
     LoopIndex           = loopIndex;
     Approximation       = approximation;
     NumOfNodes          = numOfNodes;
     VectorLength        = vectorLength;
     MonitoringScheme    = monitoringScheme;
 }
 public static AccumaltedResult Init(ApproximationType approximation, int numOfNodes, int vectorLength, MonitoringScheme monitoringScheme)
 => new AccumaltedResult(Communication.Zero, 0, 0, 0, 0, new[] { 0.0 }, 0, approximation, numOfNodes, vectorLength, monitoringScheme);