예제 #1
0
 public void testTranspose() {
   DenseMatrix A = rand(5, 8);
   DenseMatrix At = A.t();
   assertEquals(5, At.cols);
   assertEquals(8, At.rows);
   assertTrue(A.equals(At.t()));
   SparseMatrixLil B = A.toSparseLil();
   SparseMatrixLil Bt = B.t();
   assertEquals(5, Bt.cols);
   assertEquals(8, Bt.rows);
   assertTrue(At.equals(Bt));
   assertTrue(A.equals(Bt.t()));
 }
예제 #2
0
 public void testToCCS() {
   SparseMatrixLil A = sprand(10, 10);
   SparseMatrixLil B = A.toCCS().toLil();
   assertTrue(A.equals(B));
   A = sprand(thousandconstant, thousandconstant);
   B = A.toCCS().toLil();
   assertTrue(A.equals(B));
   A = A.t();
   B = A.toCCS().toLil();
   assertTrue(A.equals(B));
 }
예제 #3
0
 public void testCreateSparse() {
   DenseMatrix A = rand(5, 5);
   SparseMatrixLil B = A.toSparseLil();
   assertTrue(B.equals(B.mmul(eye(5))));
   assertTrue(B.equals(B.t().mmul(eye(5)).t()));
   B = spzeros(2, 2);
   B.append(1, 0, 5);
   B.append(0, 1, 7);
   B.append(0, 0, 11);
   System.out.println(B.toDense());
   System.out.println(B.mmul(eye(2)));
   assertTrue(B.equals(B.mmul(eye(2))));
 }
예제 #4
0
  public void xtestSortViaNative() {
    SparseMatrixLil B = spzeros(2, 2);
    System.out.println("xtestSortViaNative");

    int R = thousandconstant;
    int C = largematrixsize;
    SparseMatrixLil A = sprand(R, C);
    System.out.println("created A");
    B = A.add(0); // make copy
    System.out.println("created B");
    //		System.out.println(B);
    //		B.sort();
    B = B.mmul(speye(C));
    for (int i = 0; i < B.size; i++) {
      if (i > 0) {
        assertTrue(B.colIdx[i] >= B.colIdx[i - 1]);
        if (B.colIdx[i] == B.colIdx[i - 1]) {
          assertTrue(B.rowIdx[i] >= B.rowIdx[i - 1]);
        }
      }
      assertEquals(A.rowIdx[i], B.rowIdx[i]);
      assertEquals(A.colIdx[i], B.colIdx[i]);
      assertEquals(A.values[i], B.values[i]);
    }
    System.out.println("sorted B");
    //		assertTrue( A.equals(B));
    //		System.out.println("asserted equals");
    //		System.out.println(B);
    B = null;
    SparseMatrixLil Bt = A.t(); // t() is also a copy
    System.out.println("transposed A");
    //		System.out.println(Bt);
    //		Bt.sort();
    Bt = Bt.mmul(speye(R));
    System.out.println("sorted Bt");
    for (int i = 0; i < Bt.size; i++) {
      if (i > 0) {
        assertTrue(Bt.colIdx[i] >= Bt.colIdx[i - 1]);
        if (Bt.colIdx[i] == Bt.colIdx[i - 1]) {
          assertTrue(Bt.rowIdx[i] >= Bt.rowIdx[i - 1]);
        }
      }
    }
    //		System.out.println(Bt);
    assertTrue(A.toDense().t().equals(Bt));
    System.out.println("checed equal to At");
  }
예제 #5
0
  public void testSortBigMatrixFast() { // you will need to add option -Xmx1400m to run this
    System.out.println("testSortBigMatrixFast");
    SparseMatrixLil B = spzeros(2, 2);

    SparseMatrixLil A = sprand(1000, largematrixsize);
    System.out.println("created A");
    B = A.add(0); // make copy
    System.out.println("created B");
    //		System.out.println(B);
    B.sortFast();
    for (int i = 0; i < B.size; i++) {
      if (i > 0) {
        assertTrue(B.colIdx[i] >= B.colIdx[i - 1]);
        if (B.colIdx[i] == B.colIdx[i - 1]) {
          assertTrue(B.rowIdx[i] >= B.rowIdx[i - 1]);
        }
      }
      assertEquals(A.rowIdx[i], B.rowIdx[i]);
      assertEquals(A.colIdx[i], B.colIdx[i]);
      assertEquals(A.values[i], B.values[i]);
    }
    System.out.println("sorted B");
    //		assertTrue( A.equals(B));
    //		System.out.println("asserted equals");
    //		System.out.println(B);
    B = null;
    SparseMatrixLil Bt = A.t(); // t() is also a copy
    System.out.println("transposed A");
    //		System.out.println(Bt);
    Timer timer = new Timer();
    Bt.sortFast();
    timer.printTimeCheckMilliseconds();
    System.out.println("sorted Bt");
    for (int i = 0; i < Bt.size; i++) {
      if (i > 0) {
        assertTrue(Bt.colIdx[i] >= Bt.colIdx[i - 1]);
        if (Bt.colIdx[i] == Bt.colIdx[i - 1]) {
          assertTrue(Bt.rowIdx[i] >= Bt.rowIdx[i - 1]);
        }
      }
    }
    //		System.out.println(Bt);
    assertTrue(A.toDense().t().equals(Bt));
    System.out.println("checed equal to At");
  }
예제 #6
0
  public void testSort() {
    SparseMatrixLil B = spzeros(2, 2);
    B.append(1, 0, 5);
    B.append(0, 1, 7);
    B.append(0, 0, 11);
    System.out.println(B.toDense());
    System.out.println(B);
    B.sort();
    System.out.println(B.toDense());
    System.out.println(B);
    assertEquals(11.0, B.values[0]);
    assertEquals(5.0, B.values[1]);
    assertEquals(7.0, B.values[2]);

    SparseMatrixLil A = sprand(5, 8);
    B = A.add(0); // make copy
    System.out.println(B);
    B.sort();
    for (int i = 1; i < B.size; i++) {
      assertTrue(B.colIdx[i] >= B.colIdx[i - 1]);
      if (B.colIdx[i] == B.colIdx[i - 1]) {
        assertTrue(B.rowIdx[i] >= B.rowIdx[i - 1]);
      }
    }
    assertTrue(A.equals(B));
    System.out.println(B);
    SparseMatrixLil Bt = B.t();
    System.out.println(Bt);
    Bt.sort();
    for (int i = 1; i < Bt.size; i++) {
      assertTrue(Bt.colIdx[i] >= Bt.colIdx[i - 1]);
      if (Bt.colIdx[i] == Bt.colIdx[i - 1]) {
        assertTrue(Bt.rowIdx[i] >= Bt.rowIdx[i - 1]);
      }
    }
    System.out.println(Bt);
    assertTrue(A.toDense().t().equals(Bt));
  }