Package be.ac.ulg.montefiore.run.jahmm.io

Source Code of be.ac.ulg.montefiore.run.jahmm.io.OpdfMultiGaussianReader

/*
* Copyright (c) 2004-2009, Jean-Marc François. All Rights Reserved.
* Licensed under the New BSD license.  See the LICENSE file.
*/

package be.ac.ulg.montefiore.run.jahmm.io;

import java.io.IOException;
import java.io.StreamTokenizer;

import be.ac.ulg.montefiore.run.jahmm.OpdfMultiGaussian;

/**
* This class implements a {@link OpdfMultiGaussian} reader.  The syntax of the
* distribution description is the following.
* <p>
* The description always begins with the keyword <tt>MultiGaussianOPDF</tt>.
* The next (resp. last) symbol is an opening (resp. closing) bracket.
* Between the backets are two series of numbers between brackets and separated
* by a space.
* <p>
* The first describes the distribution's mean vector; each number
* is the corresponding vector element, from top to bottom.
* <p>
* The second describes the covariance matrix; it is given line by line, from
* top to bottom. Each line is represented by the values of its elements, from
* left to right, separated by a space and between brackets. 
* <p>
* For example, reading<br>
* <tt>MultiGaussianOPDF [ [ 5. 5. ] [ [ 1.2 .3 ] [ .3 4. ] ] ]</tt>
* returns a distribution equivalent to<br>
* <code>new OpdfMultiGaussian(new double[] { 5., 5. },
*       new double[][] { { 1.2, .3 }, { .3, 4. } })</code>.
*/
public class OpdfMultiGaussianReader
extends OpdfReader<OpdfMultiGaussian>
{
  String keyword()
  {
    return "MultiGaussianOPDF";
  }

 
  public OpdfMultiGaussian read(StreamTokenizer st)
  throws IOException, FileFormatException
  {
    HmmReader.readWords(st, keyword(), "[");
       
    double[] means = OpdfReader.read(st, -1);   
    double[][] covariance = new double[means.length][];
   
    HmmReader.readWords(st, "[");
    for (int l = 0; l < covariance.length; l++)
      covariance[l] = OpdfReader.read(st, means.length);
    HmmReader.readWords(st, "]");
 
    HmmReader.readWords(st, "]");
 
    return new OpdfMultiGaussian(means, covariance);
  }
}
TOP

Related Classes of be.ac.ulg.montefiore.run.jahmm.io.OpdfMultiGaussianReader

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.