public void CanOuterMultiplySparseVectors()
        {
            var vector1 = new SparseVector(new[] { 2.0, 2.0, 0.0, 0.0 });
            var vector2 = new SparseVector(new[] { 2.0, 2.0, 0.0, 0.0 });
            var result  = vector1.OuterProduct(vector2);

            Assert.AreEqual(4.0, result[0, 0]);
            Assert.AreEqual(4.0, result[0, 1]);
            Assert.AreEqual(4.0, result[1, 0]);
            Assert.AreEqual(4.0, result[1, 1]);

            for (var i = 0; i < vector1.Count; i++)
            {
                for (var j = 0; j < vector2.Count; j++)
                {
                    if (i > 1 || j > 1)
                    {
                        Assert.AreEqual(0.0, result[i, j]);
                    }
                }
            }
        }
Exemplo n.º 2
0
        public void CanOuterMultiplySparseVectors()
        {
            var vector1 = new SparseVector(new[] { 2.0, 2.0, 0.0, 0.0 });
            var vector2 = new SparseVector(new[] { 2.0, 2.0, 0.0, 0.0 });
            var result = vector1.OuterProduct(vector2);

            Assert.AreEqual(4.0, result[0, 0]);
            Assert.AreEqual(4.0, result[0, 1]);
            Assert.AreEqual(4.0, result[1, 0]);
            Assert.AreEqual(4.0, result[1, 1]);

            for (var i = 0; i < vector1.Count; i++)
            {
                for (var j = 0; j < vector2.Count; j++)
                {
                    if (i > 1 || j > 1)
                    {
                        Assert.AreEqual(0.0, result[i, j]);
                    }
                }
            }
        }