Exemplo n.º 1
0
        public virtual void TestElementwiseProduct(ConcatVectorTest.DenseTestVector d1, ConcatVectorTest.DenseTestVector d2)
        {
            for (int i = 0; i < d1.values.Length; i++)
            {
                for (int j = 0; j < d1.values[i].Length; j++)
                {
                    Assume.AssumeTrue(d1.values[i][j] == d1.vector.GetValueAt(i, j));
                }
            }
            for (int i_1 = 0; i_1 < d2.values.Length; i_1++)
            {
                for (int j = 0; j < d2.values[i_1].Length; j++)
                {
                    Assume.AssumeTrue(d2.values[i_1][j] == d2.vector.GetValueAt(i_1, j));
                }
            }
            ConcatVector clone = d1.vector.DeepClone();

            clone.ElementwiseProductInPlace(d2.vector);
            for (int i_2 = 0; i_2 < d1.values.Length; i_2++)
            {
                for (int j = 0; j < d1.values[i_2].Length; j++)
                {
                    double val = 0.0f;
                    if (i_2 < d2.values.Length)
                    {
                        if (j < d2.values[i_2].Length)
                        {
                            val = d1.values[i_2][j] * d2.values[i_2][j];
                        }
                    }
                    NUnit.Framework.Assert.AreEqual(clone.GetValueAt(i_2, j), 5.0e-4, val);
                }
            }
        }
Exemplo n.º 2
0
        public virtual void TestElementwiseSparseToSparse(int sparseIndex1, double val1, int sparseIndex2, double val2)
        {
            ConcatVector v1 = new ConcatVector(1);

            v1.SetSparseComponent(0, (int)sparseIndex1, val1);
            ConcatVector v2 = new ConcatVector(1);

            v2.SetSparseComponent(0, (int)sparseIndex2, val2);
            v1.ElementwiseProductInPlace(v2);
            for (int i = 0; i < 10; i++)
            {
                double expected = 0.0f;
                if (i == sparseIndex1 && i == sparseIndex2)
                {
                    expected = val1 * val2;
                }
                NUnit.Framework.Assert.AreEqual(v1.GetValueAt(0, i), 5.0e-4, expected);
            }
        }
Exemplo n.º 3
0
        public virtual void TestElementwiseSparseToDense(double[] dense1, int sparseIndex, double v)
        {
            ConcatVector v1 = new ConcatVector(1);

            v1.SetDenseComponent(0, dense1);
            ConcatVector v2 = new ConcatVector(1);

            v2.SetSparseComponent(0, (int)sparseIndex, v);
            v1.ElementwiseProductInPlace(v2);
            for (int i = 0; i < dense1.Length; i++)
            {
                double expected = 0.0f;
                if (i == sparseIndex)
                {
                    expected = dense1[i] * v;
                }
                NUnit.Framework.Assert.AreEqual(v1.GetValueAt(0, i), 5.0e-4, expected);
            }
        }