bcf.nData = this.nData;
bcf.yTransform = new double[this.nData];
bcf.gaussianOrderMedians = this.gaussianOrderMedians;
// Create an instance of Maximization
Maximization max = new Maximization();
// Initial estimate of lambdaOne
double[] start = {1.0};
// Initial step size in maximization search
double[] step = {0.3};
// Tolerance for maximization search termination
double maxzTol = 1e-9;
// Maximiztaion of the Gaussian probabilty plot correlation coefficient varying lambdaOne
max.nelderMead(bcf, start, step, maxzTol);
// coeff[0] = value of lambdaOne for a maximum Gaussian probabilty plot correlation coefficient
double[] coeff = max.getParamValues();
double lambda1 = coeff[0];
//maximum Gaussian probabilty plot correlation coefficient
double sampleR1 = max.getMaximum();
// Repeat maximization starting equidistant from the final value of lambdaOne on the opposite side from the starting estimate
start[0] = lambda1 - (start[0] - lambda1);
max.nelderMead(bcf, start, step, maxzTol);
coeff = max.getParamValues();
this.lambdaOne = coeff[0];
this.transformedSampleR = max.getMaximum();
// Choose solution with the largest Gaussian probabilty plot correlation coefficient
if(sampleR1>this.transformedSampleR){
this.transformedSampleR = sampleR1;
this.lambdaOne = lambda1;