Derivative2() public method

Calculates function derivative.

The method calculates the same derivative value as the Derivative method, but it takes not the input x value itself, but the function value, which was calculated previously with the help of Function method.

Some applications require as function value, as derivative value, so they can save the amount of calculations using this method to calculate derivative.

public Derivative2 ( double y ) : double
y double Function output value - the value, which was obtained /// with the help of method.
return double
        public void ConstructorTest()
        {
            // Create a Gaussian function with slope alpha = 4.2
            GaussianFunction function = new GaussianFunction(4.2);

            // Computes the function output (linear, y = alpha * x)
            double y = function.Function(x: 0.2); // 4.2 * 2 = 0.48

            // Draws a sample from a Gaussian distribution with
            // mean given by the function output y (previously 0.48)
            double z = function.Generate(x: 0.4); // (random, between 0 and 1)

            // Please note that the above is completely equivalent 
            // to computing the line below (remember, 0.48 == y)
            double w = function.Generate2(y: 0.48); // (random, between 0 and 1)


            // We can also compute the derivative of the sigmoid function
            double d = function.Derivative(x: 0.2); // 4.2 (the slope)

            // Or compute the derivative given the functions' output y
            double e = function.Derivative2(y: 0.2); // 4.2 (the slope)

            Assert.AreEqual(0.84, y, 1e-7);
            Assert.AreEqual(4.2, d, 1e-7);
            Assert.AreEqual(4.2, e, 1e-7);
        }