/// <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)))); }