'Performs descending phase to find maximum depth.'

def _query(self, X):

    bin_queries = np.asarray([hasher.transform(X)[:, 0] for hasher in self.hash_functions_])
    bin_queries = np.rollaxis(bin_queries, 1)
    depths = [_find_longest_prefix_match(tree, tree_queries, MAX_HASH_SIZE, self._left_mask, self._right_mask) for (tree, tree_queries) in zip(self.trees_, np.rollaxis(bin_queries, 1))]
    return (bin_queries, np.max(depths, axis=0))
