public BigDecimal[] subtractWeightedMean_as_BigDecimal() {
		if (!weightsSupplied) {
			System.out.println("subtractWeightedMean_as_BigDecimal: no weights supplied - unweighted values returned");
			return this.subtractMean_as_BigDecimal();
		} else {
			boolean holdW = Stat.weightingOptionS;
			if (weightingReset) {
				if (weightingOptionI) {
					Stat.weightingOptionS = true;
				} else {
					Stat.weightingOptionS = false;
				}
			}
			BigDecimal[] arrayminus = new BigDecimal[length];
			switch (type) {
			case 1:
			case 12:
				BigDecimal meanb = this.weightedMean_as_BigDecimal();
				ArrayMaths amb = this.minus(meanb);
				arrayminus = amb.getArray_as_BigDecimal();
				meanb = null;
				break;
			case 14:
				throw new IllegalArgumentException("Complex cannot be converted to BigDecimal");
			default:
				throw new IllegalArgumentException("This type number, " + type + ", should not be possible here!!!!");
			}
			Stat.weightingOptionS = holdW;
			return arrayminus;
		}
	}