/// <summary>
        /// Return a function that computes the derivative of the gauss
        /// function with mu = 0 and specified sigma.
        /// </summary>
        public static Func <float, float> GaussianDx(float sigma)
        {
            double s2 = sigma * sigma;
            double a  = -1.0 / (Constant.SqrtPiTimesTwo * s2 * sigma);
            double b  = -1.0 / (2.0 * s2);

            return((float x) => (float)(a * x * Fun.Exp(b * (x * x))));
        }
        /// <summary>
        /// Return a function that computes the partial derivative in Y of
        /// the two-dimensional gauss function with mu = (0, 0) and
        /// sigma = DiagonalMatrix(sigma).
        /// </summary>
        public static Func <float, float, float> Gaussian2Dy(float sigma)
        {
            double s2 = sigma * sigma;
            double a  = -1.0 / (Constant.PiTimesTwo * s2 * s2);
            double b  = -1.0 / (2.0 * s2);

            return((float x, float y) =>
                   (float)(a * y * Fun.Exp(b * (x * x + y * y))));
        }