https://github.com/jihelhere/LORG-Release
Raw File
Tip revision: 6c01370a53a69d3f5ab9adab8b56a2a35147d72c authored by leroux on 31 August 2016, 15:14:17 UTC
compile with recent boost + mac
Tip revision: 6c01370
PCKYBestCell.cpp
#include "PCKYBestCell.h"
#include "utils/SymbolTable.h"
#include<cmath>

unsigned PCKYBestCell::max_size = 0;

PCKYBestCell::PCKYBestCell(bool cl):
  closed(cl), word_edge(NULL)
{
  if(closed)
    edges = NULL;
  else {
    edges =  new Edge * [max_size];
    memset(edges, 0, max_size * sizeof(Edge*));
    //for(unsigned i = 0; i < max_size;++i) edges[i]=NULL;
  }
}

PCKYBestCell::~PCKYBestCell()
{
  if(!closed) {
    for(unsigned i = 0; i < max_size;++i) delete edges[i];
    delete edges;
    delete word_edge;
  }
}


std::ostream& operator<<(std::ostream& out, const PCKYBestCell& cell)
{
  if(cell.is_closed())
    out << "cell closed\n";
  else {
    for(unsigned i = 0; i < cell.max_size; ++i) {
      Edge * edge = cell.edges[i];
      if(edge) {
        out << SymbolTable::instance_nt().translate(edge->get_lhs()) << ": "
        << std::exp(edge->get_probability()) << "\n";
      }
    }
  }
  
  return out;
}

back to top