public double weightedCoefficientOfVariation() {
		boolean hold = Stat.nFactorOptionS;
		if (nFactorReset) {
			if (nFactorOptionI) {
				Stat.nFactorOptionS = true;
			} else {
				Stat.nFactorOptionS = false;
			}
		}
		boolean holdW = Stat.weightingOptionS;
		if (weightingReset) {
			if (weightingOptionI) {
				Stat.weightingOptionS = true;
			} else {
				Stat.weightingOptionS = false;
			}
		}
		double coefficientOfVariation = 0.0D;
		switch (type) {
		case 1:
			double[] dd = this.getArray_as_double();
			double[] wd = amWeights.getArray_as_double();
			coefficientOfVariation = Stat.coefficientOfVariation(dd, wd);
			break;
		case 12:
			BigDecimal[] bd = this.getArray_as_BigDecimal();
			BigDecimal[] bw = amWeights.getArray_as_BigDecimal();
			coefficientOfVariation = Stat.coefficientOfVariation(bd, bw);
			bd = null;
			bw = null;
			break;
		case 14:
			throw new IllegalArgumentException("Complex coefficient of variation is not supported");
		default:
			throw new IllegalArgumentException("This type number, " + type + ", should not be possible here!!!!");
		}
		Stat.nFactorOptionS = hold;
		Stat.weightingOptionS = holdW;
		return coefficientOfVariation;
	}