'obsolete and subject to removal (TODO),
return indices for negative ("active") update of the covariance matrix
assuming that ``f_values[idx1[i]]`` and ``f_values[-1-i]`` are
the corresponding mirrored values
computes the index of the worse solution sorted by the f-value of the
better solution.
TODO: when the actual mirror was rejected, it is better
to return idx1 instead of idx2.
Remark: this function might not be necessary at all: if the worst solution
is the best mirrored, the covariance matrix updates cancel (cave: weights
and learning rates), which seems what is desirable. If the mirror is bad,
as strong negative update is made, again what is desirable.
And the fitness--step-length correlation is in part addressed by
using flat weights.'

def mirror_idx_cov(self, f_values, idx1):

    idx2 = np.arange((len(f_values) - 1), ((len(f_values) - 1) - len(idx1)), (-1))
    f = []
    for i in xrange(len(idx1)):
        f.append(min((f_values[idx1[i]], f_values[idx2[i]])))
    return idx2[np.argsort(f)][(-1)::(-1)]
