Exemplo n.º 1
0
        public void DistanceTest()
        {
            var linear = new Linear(1);

            double[] x = { 1, 1 };
            double[] y = { 1, 1 };

            double actual = linear.Distance(x, y);
            double expected = 0;

            Assert.AreEqual(expected, actual);


            linear = new Linear(11.5);

            x = new double[] { 0.2, 0.5 };
            y = new double[] { 0.3, -0.7 };

            actual = linear.Distance(x, y);
            expected = Accord.Statistics.Tools.Distance(linear, x, y);

            Assert.AreEqual(expected, actual, 1e-10);
        }
Exemplo n.º 2
0
 /// <summary>
 /// Computes the distance <c>d(x,y)</c> between points
 /// <paramref name="x" /> and <paramref name="y" />.
 /// </summary>
 /// <param name="x">The first point <c>x</c>.</param>
 /// <param name="y">The second point <c>y</c>.</param>
 /// <returns>
 /// A double-precision value representing the distance <c>d(x,y)</c>
 /// between <paramref name="x" /> and <paramref name="y" /> according
 /// to the distance function implemented by this class.
 /// </returns>
 public double Distance(double[] x, double[] y)
 {
     return(linear.Distance(Transform(x), Transform(y)));
 }
Exemplo n.º 3
0
        public void ExpandDistanceTest()
        {
            Linear kernel = new Linear(42);

            var x = new double[] { 0.5, 2.0 };
            var y = new double[] { 1.3, -0.2 };

            var phi_x = kernel.Transform(x);
            var phi_y = kernel.Transform(y);

            double phi_d = Distance.SquareEuclidean(phi_x, phi_y);
            double d = kernel.Distance(x, y);

            Assert.AreEqual(phi_d, d);
        }
Exemplo n.º 4
0
        public void DistanceTest()
        {
            Linear dense = new Linear(1);
            SparseLinear target = new SparseLinear(1);

            double[] sx = { 1, -0.555556, 2, +0.250000, 3, -0.864407, 4, -0.916667 };
            double[] sy = { 1, -0.666667, 2, -0.166667, 3, -0.864407, 4, -0.916667 };
            double[] sz = { 1, -0.944444, 3, -0.898305, 4, -0.916667 };

            double[] dx = { -0.555556, +0.250000, -0.864407, -0.916667 };
            double[] dy = { -0.666667, -0.166667, -0.864407, -0.916667 };
            double[] dz = { -0.944444, +0.000000, -0.898305, -0.916667 };

            double expected, actual;

            expected = dense.Distance(dx, dy);
            actual = target.Distance(sx, sy);
            Assert.AreEqual(expected, actual);

            expected = dense.Distance(dx, dz);
            actual = target.Distance(sx, sz);
            Assert.AreEqual(expected, actual);

            expected = dense.Distance(dy, dz);
            actual = target.Distance(sy, sz);
            Assert.AreEqual(expected, actual);
        }