docs: private double getDensityOutlierScore(ClusKernel x, ClusKernel entry) {
  		double[] sigmaSquared = entry.getVarianceVector();
  		// f(x) = factor * e^( -0.5 (x- mu ) * Sigma ^-1 * (x- mu ) )
  		double resultDensity = 0;
  
  		// exponent = -0.5 (x- mu ) * Sigma ^-1 * (x- mu ) )
  		//                = -0.5 ( sum_d ((x_i - mu_i)^2 / var_i) )
  		double exponent = 0.0;
  		double[] mu = entry.getCenter();
  
  		// factor = 1 / sqrt ( (2*PI)^d * \prod_d(variance) )
  		//        = 1 / sqrt ((2*PI)^d) * sqrt (\prod_d(variance))
  		//        = 1 / (2*PI)^(d/2)   * \prod_d( sqrt (variance))
  		double factor = Math.pow( (2.0 * Math.PI) , ((sigmaSquared.length/2.0)) );
  		for (int i = 0; i < sigmaSquared.length; i++) {
  			factor *= Math.sqrt(sigmaSquared[i]);
  			exponent += ((x.LS[i] - mu[i])*(x.LS[i] - mu[i])) / sigmaSquared[i];
  		}
  
  		// factor = 1 / sqrt ( (2*PI)^d * \prod_d(variance) )
  		factor = 1 / factor;
  		exponent *= -0.5;
  		//System.out.println(factor);
  		resultDensity = factor * Math.exp(exponent);
  		//System.out.println(resultDensity);
  
  		// TODO: dangerous, since the density is not necessarily between 0 and 1
  		return 1-resultDensity;
  	}