def _vertex_enumeration_gen(labelings_bits_tup, equations_tup, trans_recips):
    """
    Main body of `vertex_enumeration_gen`.

    Parameters
    ----------
    labelings_bits_tup : tuple(ndarray(np.uint64, ndim=1))
        Tuple of ndarrays of integers representing labelings of the
        vertices of the best response polytopes.

    equations_tup : tuple(ndarray(float, ndim=2))
        Tuple of ndarrays containing the hyperplane equations of the
        polar polytopes.

    trans_recips : tuple(scalar(float))
        Tuple of the reciprocals of the translations.

    """
    m, n = equations_tup[0].shape[1] - 1, equations_tup[1].shape[1] - 1
    num_vertices0, num_vertices1 = \
        equations_tup[0].shape[0], equations_tup[1].shape[0]
    ZERO_LABELING0_BITS = (np.uint64(1) << np.uint64(m)) - np.uint64(1)
    COMPLETE_LABELING_BITS = (np.uint64(1) << np.uint64(m+n)) - np.uint64(1)

    for i in range(num_vertices0):
        if labelings_bits_tup[0][i] == ZERO_LABELING0_BITS:
            continue
        for j in range(num_vertices1):
            xor = labelings_bits_tup[0][i] ^ labelings_bits_tup[1][j]
            if xor == COMPLETE_LABELING_BITS:
                yield _get_mixed_actions(
                    labelings_bits_tup[0][i],
                    (equations_tup[0][i], equations_tup[1][j]),
                    trans_recips
                )
                break
def _vertex_enumeration_gen ( labelings_bits_tup , equations_tup , trans_recips ) : m , n = equations_tup [ 0 ] . shape [ 1 ] - 1 , equations_tup [ 1 ] . shape [ 1 ] - 1 num_vertices0 , num_vertices1 = equations_tup [ 0 ] . shape [ 0 ] , equations_tup [ 1 ] . shape [ 0 ] ZERO_LABELING0_BITS = ( np . uint64 ( 1 ) << np . uint64 ( m ) ) - np . uint64 ( 1 ) COMPLETE_LABELING_BITS = ( np . uint64 ( 1 ) << np . uint64 ( m + n ) ) - np . uint64 ( 1 ) for i in range ( num_vertices0 ) : if labelings_bits_tup [ 0 ] [ i ] == ZERO_LABELING0_BITS : continue for j in range ( num_vertices1 ) : xor = labelings_bits_tup [ 0 ] [ i ] ^ labelings_bits_tup [ 1 ] [ j ] if xor == COMPLETE_LABELING_BITS : yield _get_mixed_actions ( labelings_bits_tup [ 0 ] [ i ] , ( equations_tup [ 0 ] [ i ] , equations_tup [ 1 ] [ j ] ) , trans_recips ) break
Main body of `vertex_enumeration_gen`.

    Parameters
    ----------
    labelings_bits_tup : tuple(ndarray(np.uint64, ndim=1))
        Tuple of ndarrays of integers representing labelings of the
        vertices of the best response polytopes.

    equations_tup : tuple(ndarray(float, ndim=2))
        Tuple of ndarrays containing the hyperplane equations of the
        polar polytopes.

    trans_recips : tuple(scalar(float))
        Tuple of the reciprocals of the translations.