Package org.apache.mahout.math

Examples of org.apache.mahout.math.Matrix.times()


    A = A.transpose().times(A);
    Eig = new EigenDecomposition(A);
    D = Eig.getD();
    V = Eig.getV();
    check("EigenvalueDecomposition (symmetric)...", A.times(V), V.times(D));

  }

  private static void check(String msg, Matrix a, Matrix b) {
    Assert.assertEquals(msg, 0, a.minus(b).aggregate(Functions.PLUS, Functions.ABS), 1.0e-10);
View Full Code Here


    Vector b = getB();
   
    ConjugateGradientSolver solver = new ConjugateGradientSolver();
    Vector x = solver.solve(a, b);
   
    assertEquals(0.0, Math.sqrt(a.times(x).getDistanceSquared(b)), EPSILON);   
    assertEquals(0.0, solver.getResidualNorm(), ConjugateGradientSolver.DEFAULT_MAX_ERROR);
    assertEquals(10, solver.getIterations());
  }
 
  @Test
View Full Code Here

    Preconditioner conditioner = new JacobiConditioner(a);
    ConjugateGradientSolver solver = new ConjugateGradientSolver();
   
    Vector x = solver.solve(a, b, null, 100, ConjugateGradientSolver.DEFAULT_MAX_ERROR);

    double distance = Math.sqrt(a.times(x).getDistanceSquared(b));
    assertEquals(0.0, distance, EPSILON);
    assertEquals(0.0, solver.getResidualNorm(), ConjugateGradientSolver.DEFAULT_MAX_ERROR);
    assertEquals(16, solver.getIterations());
   
    Vector x2 = solver.solve(a, b, conditioner, 100, ConjugateGradientSolver.DEFAULT_MAX_ERROR);
View Full Code Here

    assertEquals(16, solver.getIterations());
   
    Vector x2 = solver.solve(a, b, conditioner, 100, ConjugateGradientSolver.DEFAULT_MAX_ERROR);

    // the Jacobi preconditioner isn't very good, but it does result in one less iteration to converge
    distance = Math.sqrt(a.times(x2).getDistanceSquared(b));
    assertEquals(0.0, distance, EPSILON);
    assertEquals(0.0, solver.getResidualNorm(), ConjugateGradientSolver.DEFAULT_MAX_ERROR);
    assertEquals(15, solver.getIterations());
  }
   
View Full Code Here

    Vector b = getB();   
    ConjugateGradientSolver solver = new ConjugateGradientSolver();
   
    // specifying a looser max error will result in few iterations but less accurate results
    Vector x = solver.solve(a, b, null, 10, 0.1);
    double distance = Math.sqrt(a.times(x).getDistanceSquared(b));
    assertTrue(distance > EPSILON);
    assertEquals(0.0, distance, 0.1); // should be equal to within the error specified
    assertEquals(7, solver.getIterations()); // should have taken fewer iterations
   
    // can get a similar effect by bounding the number of iterations
View Full Code Here

    assertEquals(0.0, distance, 0.1); // should be equal to within the error specified
    assertEquals(7, solver.getIterations()); // should have taken fewer iterations
   
    // can get a similar effect by bounding the number of iterations
    x = solver.solve(a, b, null, 7, ConjugateGradientSolver.DEFAULT_MAX_ERROR);   
    distance = Math.sqrt(a.times(x).getDistanceSquared(b));
    assertTrue(distance > EPSILON);
    assertEquals(0.0, distance, 0.1);
    assertEquals(7, solver.getIterations());
 
 
View Full Code Here

      }
      v.assign(Functions.MULT, 1/((row + 1) * v.norm(2)));
      matrix.assignRow(row, v);
    }
    if (symmetric) {
      return matrix.times(matrix.transpose());
    }
    return matrix;
  }

  public static Matrix randomHierarchicalSymmetricMatrix(int size) {
View Full Code Here

    v.assign(1.0);
    Matrix m = SolverTest.randomSequentialAccessSparseMatrix(100, 90, 50, 20, 1.0);
    DistributedRowMatrix dm = randomDistributedMatrix(100, 90, 50, 20, 1.0, false);
    dm.setConf(getConfiguration());

    Vector expected = m.times(v);
    Vector actual = dm.times(v);
    assertEquals(0.0, expected.getDistanceSquared(actual), EPSILON);
  }

  @Test
View Full Code Here

                                                      boolean isSymmetric,
                                                      String baseTmpDirSuffix) throws IOException {
    Path baseTmpDirPath = getTestTempDirPath(baseTmpDirSuffix);
    Matrix c = SolverTest.randomSequentialAccessSparseMatrix(numRows, nonNullRows, numCols, entriesPerRow, entryMean);
    if (isSymmetric) {
      c = c.times(c.transpose());
    }
    return saveToFs(c, baseTmpDirPath);
  }

  private static DistributedRowMatrix saveToFs(final Matrix m, Path baseTmpDirPath) throws IOException {
View Full Code Here

    Matrix ata = a.transpose().times(a);
    Matrix atb = a.transpose().times(b);
    QRDecomposition s = new QRDecomposition(ata);
    Matrix r = s.solve(atb).transpose();
    assertEquals(expectedCoefficient, r.get(0, 0), 0.2);
    return r.times(new DenseVector(new double[]{Math.log(currentIndex), 1})).get(0);
  }

  private static int hapaxCount(ChineseRestaurant s) {
    int r = 0;
    for (int i = 0; i < s.size(); i++) {
View Full Code Here

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.