package cc.mallet.fst;
import cc.mallet.fst.Transducer.State;
import cc.mallet.types.LabelVector;
import cc.mallet.types.Sequence;
/**
* Interface to perform forward-backward during training of a transducer.
*/
public interface SumLattice {
public double[][][] getXis();
public double[][] getGammas();
public double getTotalWeight ();
public double getGammaWeight (int inputPosition, State s);
public double getGammaProbability (int inputPosition, State s);
public double getXiProbability (int ip, State s1, State s2);
public double getXiWeight (int ip, State s1, State s2);
public int length ();
public Sequence getInput();
public double getAlpha (int ip, State s);
public double getBeta (int ip, State s);
public LabelVector getLabelingAtPosition (int outputPosition);
public Transducer getTransducer ();
}