ghmm_gmldiscretemodel.cpp

来自「General Hidden Markov Model Library 一个通用」· C++ 代码 · 共 130 行

CPP
130
字号
/* * * created: 26 Feb 2002 by Wasinee Rungsarityotin * authors: Wasinee Rungsarityotin (rungsari@molgen.mpg.de) * file   : $Source$ * $Id: GHMM_GMLDiscreteModel.cpp 260 2003-03-07 17:48:35Z wasinee $ * revision date   : $Date: 2003-03-07 18:48:35 +0100 (Fri, 07 Mar 2003) $  ___copyright__  */#include "assert.h"#include <xmlio/XMLIO_Document.h>#include "ghmm++/GHMM_GMLDiscreteModel.h"#ifdef HAVE_NAMESPACESusing namespace std;#endifvoid GHMM_GMLDiscreteModel::init(){  tag = "graph";  // no attribute  attributes.clear();  setNodeTag("node");  setTransitionTag("edge");}GHMM_GMLDiscreteModel::GHMM_GMLDiscreteModel() : GHMM_DiscreteModel() {  init();  gmlalphabet = NULL;}GHMM_GMLDiscreteModel::GHMM_GMLDiscreteModel(model* my_model) : GHMM_DiscreteModel(my_model){  init();  gmlalphabet = NULL;}GHMM_GMLDiscreteModel::GHMM_GMLDiscreteModel(int number_of_states, int my_M, double my_prior): GHMM_DiscreteModel(number_of_states, my_M, my_prior){  init();  gmlalphabet = NULL;}GHMM_GMLDiscreteModel::GHMM_GMLDiscreteModel(GHMM_GMLAlphabet* my_alphabet) : GHMM_DiscreteModel(my_alphabet){  init();  gmlalphabet = my_alphabet;}GHMM_GMLAlphabet* GHMM_GMLDiscreteModel::getAlphabet() const{  return gmlalphabet;}void GHMM_GMLDiscreteModel::createTransitions() {  unsigned int i;  int edge;  for (i = 0; i < states.size(); ++i)    {      for (edge = 0; edge < states[i]->getOutEdges(); ++edge)      {	GHMM_GMLState *gmlstate_pt = new GHMM_GMLState(this, i+1, states[i]->c_state);	transitions.push_back(gmlstate_pt->createTransition(edge));	delete gmlstate_pt;      }    }}const int GHMM_GMLDiscreteModel::XMLIO_writeContent(XMLIO_Document& writer) {  int total_bytes = 0;  int result;  unsigned int i;  writer.changeIndent(2);  result = writer.writeEndl();  if (result < 0)    return result;  total_bytes += result;  /* write states */  for (i = 0; i < GHMM_DiscreteModel::states.size(); ++i) {    if (i > 0) {      result = writer.writeEndl();      if (result < 0)	return result;      total_bytes += result;    }    result = writer.writeElement(GHMM_DiscreteModel::states[i]);      if (result < 0)      return result;    total_bytes += result;    result = writer.writeEndl();    if (result < 0)      return result;    total_bytes += result;  }  /* write transitions */  createTransitions();  for (i = 0; i < transitions.size(); ++i) {    writer.writeEndl();    writer.writeElement(transitions[i]);    writer.writeEndl();  }  cleanTransitions();  return 0;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?