def _mat_mat_dot_fp(x, y):
    """Matrix (list of lists) times matrix (list of lists)."""
    zip_y = list(zip(*y))
    return [[sum(a * b for a, b in zip(row_x, col_y))
             for col_y in zip_y] for row_x in x]