Package cern.colt.matrix

Examples of cern.colt.matrix.DoubleMatrix1D


   * @return the textual representation of the system of equations stored in <em>solver</em>.
   */
  public String dumpEquations(LSolver solver,final int [] incompatiblePairs, Map<CmpVertex,CmpVertex> newToOrig)
  {
    DoubleMatrix2D matrix = solver.toDoubleMatrix2D();
    DoubleMatrix1D b = solver.toDoubleMatrix1D();
    StringBuffer result = new StringBuffer();
   
    for(int row=0;row<matrix.rows();++row)
    {
      int indexRow = findIndexOf(incompatiblePairs, row);
      assert indexRow >= 0;
      PairScore pairRow = getPairScore(indexRow, 0,0);
     
      boolean firstValue = true;
      for(int column = 0;column < matrix.columns();++column)
      {
        double value = matrix.getQuick(row, column);
        if (value != 0) // this is not a computed value, hence it is reasonable to compare this double to zero in this way.
        {
          int indexColumn = findIndexOf(incompatiblePairs, column);
          assert indexColumn >= 0;
          PairScore pairColumn = getPairScore(indexColumn, 0,0);
          if (!firstValue) result.append(" + ");else firstValue = false;
          result.append(value);result.append("(");appendPair(result,pairRow, newToOrig);result.append(":");appendPair(result,pairColumn, newToOrig);result.append(")");

        }
      }
      result.append(" = ");result.append(b.getQuick(row));result.append("\n");
    }
   
    return result.toString();
  }
View Full Code Here


  public void solveUsingColt()
  {
    LUDecompositionQuick solver = new LUDecompositionQuick();
    DoubleMatrix2D matrix = toDoubleMatrix2D();
    solver.decompose(matrix);solver.setLU(matrix);
    DoubleMatrix1D result = toDoubleMatrix1D();
    solver.solve(result);result.toArray(j_x);   
  }
View Full Code Here

  /** Converts the "b" vector to Colt format, for a fall back on Colt when
   * external solver is not found as well as for testing.
   */
  public DoubleMatrix1D toDoubleMatrix1D()
  {
    DoubleMatrix1D result = DoubleFactory1D.dense.make(j_b);
    return result;
  }
View Full Code Here

  */
 
  protected DoubleMatrix1D getExpectedMatrix1DSlowly(LearnerGraph gr)
  {
    int size=gr.getStateNumber()*(gr.getStateNumber()+1)/2;
    DoubleMatrix1D result = DoubleFactory1D.dense.make(size);
    StatesToConsider filter = LearnerGraphND.ignoreRejectStates;
    GDLearnerGraph ndGraph = new GDLearnerGraph(gr,filter, false);
    DetermineDiagonalAndRightHandSide ddrhInstance = ndGraph.new DDRH_default();
    for(Entry<CmpVertex,Map<Label,List<CmpVertex>>> entryA:ndGraph.matrixForward.transitionMatrix.entrySet())
    {
      // Now iterate through states
      Iterator<Entry<CmpVertex,Map<Label,List<CmpVertex>>>> stateB_It = ndGraph.matrixForward.transitionMatrix.entrySet().iterator();
      while(stateB_It.hasNext())
      {
        Entry<CmpVertex,Map<Label,List<CmpVertex>>> stateB = stateB_It.next();

        int currentStatePair = ndGraph.vertexToIntNR(stateB.getKey(),entryA.getKey());
        ddrhInstance.compute(entryA.getKey(),stateB.getKey(),entryA.getValue(),stateB.getValue());
        result.setQuick(currentStatePair, ddrhInstance.getRightHandSide());
       
        if (stateB.getKey().equals(entryA.getKey())) break; // we only process a triangular subset.
      }
    }
   
View Full Code Here

    GDLearnerGraph ndGraph = new GDLearnerGraph(gr,LearnerGraphND.ignoreRejectStates, false);
    LSolver solver = ndGraph.buildMatrix(threadNumber);
    DoubleMatrix2D Ax=solver.toDoubleMatrix2D();
    Assert.assertEquals(getExpectedMatrix2DSlowly(gr),Ax);
    if (expectedAx != null) Assert.assertEquals(expectedAx, Ax);
    DoubleMatrix1D b=solver.toDoubleMatrix1D();
    if (expectedB != null) Assert.assertEquals(expectedB, b);Assert.assertEquals(getExpectedMatrix1DSlowly(gr),b);
    solver.solveExternally(1);// check if we have a solution, just in case it fails.

    // Now check consistency.
    gr.config.setAttenuationK_testOnly(1);DoubleMatrix2D Ax1 = ndGraph.buildMatrix(threadNumber).toDoubleMatrix2D();
    gr.config.setAttenuationK(0);DoubleMatrix2D Ax0 = ndGraph.buildMatrix(threadNumber).toDoubleMatrix2D();
    DoubleMatrix1D one = DoubleFactory1D.dense.make(Ax1.rows(), 1), a=DoubleFactory1D.dense.make(Ax.rows(), 0);
   
    // check A(1)*one >= 0
    Ax1.zMult(one, a);for(int i=0;i<a.size();++i) Assert.assertTrue(a.getQuick(i)>=0);
   
    // check (A(1)-A(0))*one = b
View Full Code Here

  public final void testBuildMatrix3()
  {
    LearnerGraph gr=buildLearnerGraph("A-a->B\nC-a->D""testBuildMatrix3",config,converter);
    final int size =4*5/2;
    DoubleMatrix2D matrix=createIdentity(size);
    DoubleMatrix1D row=DoubleFactory1D.dense.make(size, 0);
    matrix.setQuick(2, 2, 1);matrix.setQuick(7, 7, 1);matrix.setQuick(9, 9, 1);// pairs with zero total outgoing transitions.
    matrix.setQuick(0, 2, -k);row.setQuick(0, 1);
    matrix.setQuick(5, 9, -k);row.setQuick(5, 1);
    matrix.setQuick(3, 7, -k);row.setQuick(3, 1);
   
    checkBuildMatrix(gr,matrix,row);
  }
View Full Code Here

  public final void testBuildMatrix4()
  {
    LearnerGraph gr=buildLearnerGraph("A-a->B\nA-b->C\nD-a->C""testBuildMatrix4",config,converter);
    final int size =4*5/2;
    DoubleMatrix2D matrix=createIdentity(size);
    DoubleMatrix1D row=DoubleFactory1D.dense.make(size, 0);
    matrix.setQuick(2, 2, 1);matrix.setQuick(4, 4, 1);matrix.setQuick(5, 5, 1);// pairs with zero total outgoing transitions.
    matrix.setQuick(0, 0, 2*2);matrix.setQuick(0, 2, -k);matrix.setQuick(0, 5, -k);row.setQuick(0, 2);
    matrix.setQuick(1, 1, 2*2);
    matrix.setQuick(3, 3, 2*2);
    matrix.setQuick(6, 6, 2*2);
 
    matrix.setQuick(9, 5, -k);row.setQuick(9, 1);
    matrix.setQuick(6, 4, -k);row.setQuick(6, 1);
       
    checkBuildMatrix(gr,matrix,row);
  }
View Full Code Here

  public final void testBuildMatrix5()
  {
    LearnerGraph gr=buildLearnerGraph("A-a->B\nA-b->C\nD-a->C\nD-b->C","testBuildMatrix5",config,converter);
    final int size =4*5/2;
    DoubleMatrix2D matrix=createIdentity(size);
    DoubleMatrix1D row=DoubleFactory1D.dense.make(size, 0);
    matrix.setQuick(2, 2, 1);matrix.setQuick(4, 4, 1);matrix.setQuick(5, 5, 1);// pairs with zero total outgoing transitions.
    matrix.setQuick(0, 0, 2*2);matrix.setQuick(0, 2, -k);matrix.setQuick(0, 5, -k);row.setQuick(0, 2);
    matrix.setQuick(1, 1, 2*2);
    matrix.setQuick(3, 3, 2*2);
    matrix.setQuick(6, 6, 2*2);
 
    matrix.setQuick(9, 5, -2*k);row.setQuick(9, 2);
    matrix.setQuick(6, 4, -k);matrix.setQuick(6, 5, -k);row.setQuick(6, 2);
    matrix.setQuick(9, 9, 2*2);
    matrix.setQuick(8, 8, 2*2);
    matrix.setQuick(7, 7, 2*2);
    matrix.setQuick(6, 6, 2*2);
   
 
View Full Code Here

  public final void testBuildMatrix6()
  {
    LearnerGraph gr=buildLearnerGraph("A-a->B\nA-b->C\nD-a->C\nD-b->C\nD-c->A","testBuildMatrix6",config,converter);
    final int size =4*5/2;
    DoubleMatrix2D matrix=createIdentity(size);
    DoubleMatrix1D row=DoubleFactory1D.dense.make(size, 0);
    matrix.setQuick(2, 2, 1);matrix.setQuick(4, 4, 1);matrix.setQuick(5, 5, 1);// pairs with zero total outgoing transitions.
    matrix.setQuick(0, 0, 2*2);matrix.setQuick(0, 2, -k);matrix.setQuick(0, 5, -k);row.setQuick(0, 2);
    matrix.setQuick(1, 1, 2*2);
    matrix.setQuick(3, 3, 2*2);
    matrix.setQuick(6, 6, 2*2);
 
    matrix.setQuick(9, 5, -2*k);matrix.setQuick(9, 0, -k);row.setQuick(9, 3);
    matrix.setQuick(6, 4, -k);matrix.setQuick(6, 5, -k);row.setQuick(6, 2);
    matrix.setQuick(9, 9, 3*2);
    matrix.setQuick(8, 8, 3*2);
    matrix.setQuick(7, 7, 3*2);
    matrix.setQuick(6, 6, 3*2);
   
 
View Full Code Here

  {
    LearnerGraph gr=buildLearnerGraph("A-a->B\nA-b->C\nA-c->C\nD-a->C\nD-b->C\nD-c->A","testBuildMatrix7",config,converter);

    final int size =4*5/2;
    DoubleMatrix2D matrix=createIdentity(size);
    DoubleMatrix1D row=DoubleFactory1D.dense.make(size, 0);
    matrix.setQuick(2, 2, 1);matrix.setQuick(4, 4, 1);matrix.setQuick(5, 5, 1);// pairs with zero total outgoing transitions.
    matrix.setQuick(0, 0, 3*2);matrix.setQuick(0, 2, -k);matrix.setQuick(0, 5, -2*k);row.setQuick(0, 3);
    matrix.setQuick(1, 1, 3*2);
    matrix.setQuick(3, 3, 3*2);
    matrix.setQuick(6, 6, 3*2);
 
    matrix.setQuick(9, 5, -2*k);matrix.setQuick(9, 0, -k);row.setQuick(9, 3);
    matrix.setQuick(6, 4, -k);matrix.setQuick(6, 5, -k);matrix.setQuick(6, 3, -k);row.setQuick(6, 3);
    matrix.setQuick(9, 9, 3*2);
    matrix.setQuick(8, 8, 3*2);
    matrix.setQuick(7, 7, 3*2);
    matrix.setQuick(6, 6, 3*2);
   
 
View Full Code Here

TOP

Related Classes of cern.colt.matrix.DoubleMatrix1D

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.