public double Calculate(IEnumerable <OptimizationSolution> solutions, IObjective objective) { OptimizationSolution[] samples = solutions.ToArray(); OptimizationSolution best = Helpers.GetBest(samples); OptimizationSolution[] reference = solutions.Select(x => new OptimizationSolution(x.Position, objective.Evaluate(SphericalReference(x, best)))).ToArray(); List <double> ilVec = ILVector(samples, best); //information landscape of problem List <double> ilVecRef = ILVector(reference, best); //information landscape of reference return(AbsoluteDistance(ilVec, ilVecRef)); }