public void main()
        {
            var x0 = np.arange(-2, 2.5, 0.25);
            var x1 = np.arange(-2, 2.5, 0.25);

            (var XSrc, var YSrc) = np.meshgrid(x0, x1);

            var X = XSrc.flatten();
            var Y = YSrc.flatten();

            var grad = numerical_gradient(function_2, np.array(X, Y).T()).T();

            plt.figure();
            plt.quiver(X, Y, grad[0].minus(), grad[1].minus(), angles: "xy", color: "#666666");
            plt.xlim(-2, 2);
            plt.ylim(-2, 2);
            plt.xlabel("x0");
            plt.ylabel("x1");
            plt.grid();
            plt.draw();
            plt.show();
        }