public double calculateLogLikelihood() {
    double logL = 0.0;

    for (Attribute<double[]> data : dataList) {
      double[] x = data.getAttributeValue();
      if (transforms != null) {
        double[] y = new double[x.length];
        for (int i = 0; i < x.length; ++i) {
          logL += transforms[i].getLogJacobian(x[i]);
          y[i] = transforms[i].transform(x[i]);
        }
        logL += distribution.logPdf(y);
      } else {
        logL += distribution.logPdf(x);
      }
    }
    return logL;
  }
 public MultivariateDistributionLikelihood(
     MultivariateDistribution distribution, Transform[] transforms) {
   this(distribution.getType(), distribution, transforms);
 }