@classmethod
    def rotate(cls, axis, theta):
        if isinstance(axis, str):
            if axis in ('x','X'): axis = V.X
            elif axis in ('y','Y'): axis = V.Y
            elif axis in ('z','Z'): axis = V.Z
        axis = axis.normalize()
        s = math.sin(theta / 2.)
        c = math.cos(theta / 2.)
        return Q( axis._v[0] * s, axis._v[1] * s, axis._v[2] * s, c )
do one generation step
dataset/ETHPy150Open hhatto/autopep8/test/vectors_example.py/Q.rotate--crossover with--dataset/ETHPy150Open pybrain/pybrain/pybrain/optimization/populationbased/multiobjective/nsga2.py/MultiObjectiveGA._learnStep