#setup: n=1000 ; import numpy as np; np.random.seed(0); db = np.array(np.random.randint(2, size=(n, 4)), dtype=bool)
#run: check_mask(db)
#from: http://stackoverflow.com/questions/34500913/numba-slower-for-numpy-bitwise-and-on-boolean-arrays

#pythran export check_mask(bool[][])
import numpy as np
def check_mask(db, mask=(1, 0, 1)):
    out = np.zeros(db.shape[0],dtype=bool)
    for idx, line in enumerate(db):
        target, vector = line[0], line[1:]
        if (mask == np.bitwise_and(mask, vector)).all():
            if target == 1:
                out[idx] = 1
    return out
