Package no.uib.cipr.matrix

Examples of no.uib.cipr.matrix.Matrix


     * Test of direct transpose matrix solver
     */
    public void testTransMatrixSolve() {
        while (true) {
            try {
                Matrix B = Matrices.random(A.numRows(), A.numColumns());
                Matrix X = Matrices.random(A.numRows(), A.numColumns());
                X = A.transSolve(B, X);

                Matrix Y = A.transAmultAdd(X, X.copy().set(-1, B));
                assertEquals(0, Y.norm(Matrix.Norm.Frobenius), tol);
                assertEquals(Ad, A);
                return;
            } catch (MatrixSingularException e) {
                Utilities.addDiagonal(A, Ad, 1);
            } catch (MatrixNotSPDException e) {
View Full Code Here


    /**
     * Checks that copy is deep, not reference
     */
    public void testCopy() {
        Matrix Ac = A.copy();
        A = A.zero();
        assertEquals(Ad, Ac);
    }
View Full Code Here

    DenseLU lu = new DenseLU(n, n);
    lu.factor(A.copy());

    lu.solve(I);

    Matrix J = I.mult(A, new DenseMatrix(n, n));
    for (int i = 0; i < n; ++i)
      for (int j = 0; j < n; ++j)
        if (i != j)
          assertEquals(J.get(i, j), 0, 1e-10);
        else
          assertEquals(J.get(i, j), 1, 1e-10);
  }
View Full Code Here

    DenseLU lu = new DenseLU(n, n);
    lu.factor(A.copy());

    lu.transSolve(I);

    Matrix J = I.transAmult(A, new DenseMatrix(n, n));
    for (int i = 0; i < n; ++i)
      for (int j = 0; j < n; ++j)
        if (i != j)
          assertEquals(J.get(i, j), 0, 1e-10);
        else
          assertEquals(J.get(i, j), 1, 1e-10);
  }
View Full Code Here

  }

  public void testDenseLUToInput() {
    // MTJ bug in DenseLU code

    Matrix m = new DenseMatrix(3, 3);

    // -2 2 -3
    // -1 1 3
    // 2 0 -1
    m.set(0, 0, -2);
    m.set(0, 1, 2);
    m.set(0, 2, -3);
    m.set(1, 0, -1);
    m.set(1, 1, 1);
    m.set(1, 2, 3);
    m.set(2, 0, 2);
    m.set(2, 1, 0);
    m.set(2, 2, -1);

    // SHOULD BE:
    // L:
    // 1.000 0.000 0.000
    // -1.000 1.000 0.000
    // 0.500 0.000 1.000
    //
    // U:
    // -2.000 2.000 -3.000
    // 0.000 2.000 -4.000
    // 0.000 0.000 4.500
    //
    // Permutation matrix:
    // 1.000 0.000 0.000
    // 0.000 0.000 1.000
    // 0.000 1.000 0.000

    DenseLU dlu = DenseLU.factorize(m);

    // check that m = L . U
    Matrix lTimesU = new DenseMatrix(3, 3);
    dlu.getL().mult(dlu.getU(), lTimesU);
    int[] pivots = dlu.getPivots();
    for (MatrixEntry entry : m) {
      int row = entry.row();
      int col = entry.column();
      double val = entry.get();
      double valLU = pivots[row] * lTimesU.get(row, col);
      assert val == valLU : "Row " + row + ", Col " + col
          + " wasn't equal! " + val + " " + valLU;
    }

    Matrix lu = dlu.getLU();
    // m == lu
    for (MatrixEntry entry : m) {
      int row = entry.row();
      int col = entry.column();
      double val = entry.get();
      double valLU = lu.get(row, col);
      assert val == valLU : "Row " + row + ", Col " + col
          + " wasn't equal! " + val + " " + valLU;
    }
  }
View Full Code Here

    Variable v1 = new Variable (Variable.CONTINUOUS);
    Variable v2 = new Variable (Variable.CONTINUOUS);
    Randoms r = new Randoms (2343);

    Vector mu = new DenseVector (new double[] { 1.0, 2.0 });
    Matrix var = new DenseMatrix (new double[][] {{ 0.5, 2.0 }, { 0, 1 }});
//    Matrix var = new DenseMatrix (new double[][] {{ 0.5, 2.0 }, { 2.0, 0.75 }});

    VarSet vars = new HashVarSet (new Variable[] { v1, v2 });
    Factor f = new NormalFactor (vars, mu, var);
View Full Code Here

        BandLU lu = new BandLU(n, kl, ku);
        lu.factor(A.copy());

        lu.solve(I);

        Matrix J = I.mult(A, new DenseMatrix(n, n));
        for (int i = 0; i < n; ++i)
            for (int j = 0; j < n; ++j)
                if (i != j)
                    assertEquals(J.get(i, j), 0, 1e-10);
                else
                    assertEquals(J.get(i, j), 1, 1e-10);
    }
View Full Code Here

        BandLU lu = new BandLU(n, kl, ku);
        lu.factor(A.copy());

        lu.transSolve(I);

        Matrix J = I.transAmult(A, new DenseMatrix(n, n));
        for (int i = 0; i < n; ++i)
            for (int j = 0; j < n; ++j)
                if (i != j)
                    assertEquals(J.get(i, j), 0, 1e-10);
                else
                    assertEquals(J.get(i, j), 1, 1e-10);
    }
View Full Code Here

        BandCholesky c = new BandCholesky(n, kl, false);
        c.factor(L.copy());

        c.solve(I);

        Matrix J = I.mult(L, new DenseMatrix(n, n));
        for (int i = 0; i < n; ++i)
            for (int j = 0; j < n; ++j)
                if (i != j)
                    assertEquals(J.get(i, j), 0, 1e-10);
                else
                    assertEquals(J.get(i, j), 1, 1e-10);
    }
View Full Code Here

        BandCholesky c = new BandCholesky(n, ku, true);
        c.factor(U.copy());

        c.solve(I);

        Matrix J = I.mult(U, new DenseMatrix(n, n));
        for (int i = 0; i < n; ++i)
            for (int j = 0; j < n; ++j)
                if (i != j)
                    assertEquals(J.get(i, j), 0, 1e-10);
                else
                    assertEquals(J.get(i, j), 1, 1e-10);
    }
View Full Code Here

TOP

Related Classes of no.uib.cipr.matrix.Matrix

Copyright © 2018 www.massapicom. 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.