def reduce_vectors(a, b):
    """
    Generate independent and unique basis vectors based on the
    methodology of Zur and McGill
    """
    if np.dot(a, b) < 0:
        return reduce_vectors(a, -b)

    if fast_norm(a) > fast_norm(b):
        return reduce_vectors(b, a)

    if fast_norm(b) > fast_norm(np.add(b, a)):
        return reduce_vectors(a, np.add(b, a))

    if fast_norm(b) > fast_norm(np.subtract(b, a)):
        return reduce_vectors(a, np.subtract(b, a))

    return [a, b]
def reduce_vectors ( a , b ) : if np . dot ( a , b ) < 0 : return reduce_vectors ( a , - b ) if fast_norm ( a ) > fast_norm ( b ) : return reduce_vectors ( b , a ) if fast_norm ( b ) > fast_norm ( np . add ( b , a ) ) : return reduce_vectors ( a , np . add ( b , a ) ) if fast_norm ( b ) > fast_norm ( np . subtract ( b , a ) ) : return reduce_vectors ( a , np . subtract ( b , a ) ) return [ a , b ]
Generate independent and unique basis vectors based on the
    methodology of Zur and McGill