コード例 #1
0
  public void testDotProduct() {
    HashedSparseVector t1 = new HashedSparseVector(new int[] {7}, new double[] {0.2});
    assertEquals(0.6, t1.dotProduct(s1), 0.00001);
    assertEquals(0.6, s1.dotProduct(t1), 0.00001);

    assertEquals(19.0, s1.dotProduct(s2), 0.00001);
    assertEquals(19.0, s2.dotProduct(s1), 0.00001);

    assertEquals(11.9, s1.dotProduct(d1), 0.00001);
    assertEquals(10.1, s2.dotProduct(d1), 0.00001);
  }
コード例 #2
0
  public void testBinaryVector() {
    HashedSparseVector binary1 =
        new HashedSparseVector(idxs, null, idxs.length, idxs.length, false, false, false);
    HashedSparseVector binary2 =
        new HashedSparseVector(idx2, null, idx2.length, idx2.length, false, false, false);

    assertEquals(3, binary1.dotProduct(binary2), 0.0001);
    assertEquals(3, binary2.dotProduct(binary1), 0.0001);

    assertEquals(15.0, binary1.dotProduct(s1), 0.0001);
    assertEquals(15.0, s1.dotProduct(binary1), 0.0001);

    assertEquals(9.0, binary2.dotProduct(s1), 0.0001);
    assertEquals(9.0, s1.dotProduct(binary2), 0.0001);

    HashedSparseVector dblVec = (HashedSparseVector) s1.cloneMatrix();
    dblVec.plusEqualsSparse(binary1);
    checkAnswer(dblVec, new double[] {2, 3, 4, 5, 6});

    HashedSparseVector dblVec2 = (HashedSparseVector) s1.cloneMatrix();
    dblVec2.plusEqualsSparse(binary2);
    checkAnswer(dblVec2, new double[] {2, 2, 4, 4, 6});
  }