def _relEval(self, p, opp):
        """ a single relative evaluation (in one direction) with the involved bookkeeping."""
        if p not in self.allOpponents:
            self.allOpponents[p] = []
        self.allOpponents[p].append(opp)
        if (p, opp) not in self.allResults:
            self.allResults[(p, opp)] = [0, 0, 0., []]
        res = self.relEvaluator(p, opp)
        if res > 0:
            self.allResults[(p, opp)][0] += 1
        self.allResults[(p, opp)][1] += 1
        self.allResults[(p, opp)][2] += res
        self.allResults[(p, opp)][3].append(res)
        self.steps += 1
dataset/ETHPy150Open pybrain/pybrain/pybrain/optimization/populationbased/coevolution/coevolution.py/Coevolution._relEval/original