code: /**
   * 
   */
  package edu.berkeley.nlp.PCFGLA.smoothing;
  
  import edu.berkeley.nlp.PCFGLA.BinaryCounterTable;
  import edu.berkeley.nlp.PCFGLA.UnaryCounterTable;
  import edu.berkeley.nlp.util.Numberer;
  
  /**
   * @author leon
   * 
   */
  public interface Smoother {
  	public void smooth(UnaryCounterTable unaryCounter,
  			BinaryCounterTable binaryCounter);
  
  	public void smooth(short tag, double[] ruleScores);
  
  	public void updateWeights(int[][] toSubstateMapping);
  
  	public Smoother copy();
  
  	public Smoother remapStates(Numberer thisNumberer, Numberer newNumberer);
  }
  