package yi.stat.em;

/**
 * To fix data for modeling as Gaussian distribution.  The problem to fix is
 * that the data is really not a Gaussian distribution, but all the data have
 * the same value on some dimension.  For example, all the data points have
 * 0 on their 2nd dimension.  In this case, a fake covariance matrix entry will
 * be used to let the Gaussian calculation move on.
 */

public interface SingularGaussianModelFixable {

  /**
   * Fix the covariance matrix from the specified data.
   * @param covariance_matrix the covarince matrix to be fixed
   * @param data the data from where the covarince matrix was calculated
   * @return whether fix is successful.
   */
  public boolean fix(double[][] covariance_matrix, double[][] data, double weight);

}