private static double crigfGaussQuad(double a, double x) {
		double sum = 0.0;

		// set increment details
		double upper = 100.0 * a;
		double range = upper - x;
		double incr = 0;
		if (upper > x && range > 100) {
			incr = range / 1000;
		} else {
			upper = x + 100.0;
			range = 100.0;
			incr = 0.1;
		}
		int nIncr = (int) Math.round(range / incr);
		incr = range / nIncr;

		// Instantiate integration function
		CrigFunct f1 = new CrigFunct();
		f1.setA(a);
		f1.setB(Stat.logGammaFunction(a));

		// Instantiate Integration
		Integration intgn1 = new Integration(f1);
		double xx = x;
		double yy = x + incr;
		intgn1.setLimits(xx, yy);

		// Perform quadrature
		sum = intgn1.gaussQuad(64);
		for (int i = 1; i < nIncr; i++) {
			xx = yy;
			yy = xx + incr;
			intgn1.setLimits(xx, yy);
			sum += intgn1.gaussQuad(64);
		}
		return sum;
	}