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));
        }