void getNewPointAtRandom(double[] newPoint) {
        for (int j = 0; j < numOfParams; j++) {
            int nnn = 0;
            do {
                double R = gasdev();
                newPoint[j] = pointsInSimplex[0][j] + stdDevOfPopulation[j] * R * bound[j];
                nnn++;
                if (nnn == 1001) {
                    out.println("SCE: getNewPointAtRandom(): Having hard time generating a new point in a feasible region");
                }
                if (nnn > 1000) {
                    newPoint[j] = lowerBound[j] + Math.abs(R) * (0.5 * bound[j]);
                    if (nnn % 100 == 1) {
                        out.print("Attempt " + nnn + ": new point = " + newPoint[j] +
                                ", lower bound = " + lowerBound[j] + ", upper bound = " + upperBound[j]);
                    }
                    if ((newPoint[j] > upperBound[j]) || (newPoint[j] < lowerBound[j])) {
                        out.println(" ---> out of bound");
                    } else {
                        out.println(" ---> in bound!!");
                    }
                }
            } while ((newPoint[j] > upperBound[j]) || (newPoint[j] < lowerBound[j]));
        }
    }