package edu.nd.nina.types; /** A distribution over possible labels for an instance. */ public interface Labeling extends AlphabetCarrying { public LabelAlphabet getLabelAlphabet(); public Label getBestLabel(); public double getBestValue(); public int getBestIndex(); public double value(Label label); public double value(int labelIndex); // Zero-based public int getRank(Label label); public int getRank(int labelIndex); public Label getLabelAtRank(int rank); public double getValueAtRank(int rank); public void addTo(double[] values); public void addTo(double[] values, double scale); // The number of non-zero-weight Labels in this Labeling, not total // number in the Alphabet public int numLocations(); // xxx Use "get..."? public int indexAtLocation(int pos); public Label labelAtLocation(int pos); public double valueAtLocation(int pos); public LabelVector toLabelVector(); }