code: private INDArray phi(INDArray diffSquared, INDArray sigma) {
          // 1/sqrt(2PIs^2) * e^((in-u)^2/2*s^2)
          INDArray minustwovariance = sigma.mul(sigma).muli(2).negi();
  
          // This is phi_i(x,mu,sigma)
          INDArray likelihoods = Transforms.exp(diffSquared.divi(minustwovariance))
                          .divi(Transforms.pow(sigma.mul(SQRT_TWO_PI), (double) mLabelWidth));
  
          return likelihoods;
      }
docs: This method calculates 'phi' which is the probability
  density function (see Bishop 23)
  @param diffSquared This is the 'x-mu' term of the Gaussian distribution (distance between 'x' and the mean value of the distribution).
  @param sigma This is the standard deviation of the Gaussian distribution.
  @return This returns an array of shape [nsamples, nlabels, ndistributions] which contains the probability density (phi) for each of the
  samples * labels * distributions for the given x, sigma, mu.