def METHOD_NAME():
    N_x = 1000
    N_y = 7777
    x = np.linspace(1, N_x, N_x)
    y = np.linspace(1, N_y, N_y)
    cartesian([x[:10], y[:10]]) # warmup
    t1 = time.time()
    for i in range(100):
        prod = cartesian([x, y])
    t2 = time.time()
    # print(prod.shape)
    # compute the same produce using numpy:
    t3 = time.time()
    for i in range(100):
        prod_numpy = np.column_stack([
            np.repeat(x, N_y),
            np.tile(y, N_x)
        ])
    t4 = time.time()
    print("Timings for 'cartesian' (C order)")
    print("Cartesian: {}".format(t2-t1))
    print("Numpy:     {}".format(t4-t3))
    assert_(abs(prod-prod_numpy).max() == 0)