class ParallelFunctionEvaluator implements FunctionEvaluator {

    protected PositionDescriptor getIndexBehindIndividual(Population[] populations, int individualIdx){
        for (int i = 0; i < populations.length; i++){
            Individual[] individuals = populations[i].getIndividuals();
            if (individuals.length > individualIdx ){
                return new PositionDescriptor(i, individualIdx+1);
            } else {
                individualIdx -= individuals.length;
            }
        }
        // if individual too far, then return first index ahead
        return new PositionDescriptor(populations.length-1, populations[populations.length-1].getIndividuals().length);
    }

    public  ParallelFunctionEvaluator();
    public  ParallelFunctionEvaluator(int numThreads);

}