Accord.Statistics.Kernels.DynamicTimeWarping.Function C# (CSharp) Method

Function() public method

Dynamic Time Warping kernel function.
public Function ( double x, double y ) : double
x double Vector x in input space.
y double Vector y in input space.
return double
        public override double Function(double[] x, double[] y)
        {
            if (x == y)
                return 1.0;

            double cos = k(x, y);

            if (degree == 1)
                return cos;

            return System.Math.Pow(cos, degree);
        }

Usage Example

        public void FunctionTest()
        {
            var x = new double[] { 0, 4, 2, 1 };
            var y = new double[] { 3, 2, };

            DynamicTimeWarping target;
            double expected, actual;


            target = new DynamicTimeWarping(1);

            expected = 1;
            actual = target.Function(x, x);
            Assert.AreEqual(expected, actual, 0.000001);

            expected = 1;
            actual = target.Function(y, y);
            Assert.AreEqual(expected, actual, 0.000001);

            expected = -0.076696513742007991;
            actual = target.Function(x, y);
            Assert.AreEqual(expected, actual, 0.000001);
            actual = target.Function(y, x);
            Assert.AreEqual(expected, actual, 0.000001);


            target = new DynamicTimeWarping(2, 1.42);
            var z = new double[] { 3, 2, 1, 5, 7, 8 };

            expected = 1;
            actual = target.Function(x, x);
            Assert.AreEqual(expected, actual, 0.000001);

            expected = 1;
            actual = target.Function(y, y);
            Assert.AreEqual(expected, actual, 0.000001);

            expected = 1;
            actual = target.Function(z, z);
            Assert.AreEqual(expected, actual, 0.000001);

            expected = -0.10903562560104614;
            actual = target.Function(x, z);
            Assert.AreEqual(expected, actual, 0.000001);
            actual = target.Function(z, x);
            Assert.AreEqual(expected, actual, 0.000001);

            expected = 0.4208878392918925;
            actual = target.Function(x, y);
            Assert.AreEqual(expected, actual, 0.000001);
            actual = target.Function(y, x);
            Assert.AreEqual(expected, actual, 0.000001);


            target = new DynamicTimeWarping(1, 0.0000000001);

            expected = 1;
            actual = target.Function(x, x);
            Assert.AreEqual(expected, actual);

            expected = 1;
            actual = target.Function(y, y);
            Assert.AreEqual(expected, actual);

            expected = 0.000000000033333397321663391;
            actual = target.Function(x, y);
            Assert.AreEqual(expected, actual);
            actual = target.Function(y, x);
            Assert.AreEqual(expected, actual);



            target = new DynamicTimeWarping(1, 292.12);

            expected = 1;
            actual = target.Function(x, x);
            Assert.AreEqual(expected, actual, 0.000001);
            actual = target.Function(y, y);
            Assert.AreEqual(expected, actual, 0.000001);

            expected = 0.99985353675500488;
            actual = target.Function(x, y);
            Assert.AreEqual(expected, actual);
            actual = target.Function(y, x);
            Assert.AreEqual(expected, actual);
        }
All Usage Examples Of Accord.Statistics.Kernels.DynamicTimeWarping::Function