public Complex weightedGeometricMean_as_Complex() {
		if (!weightsSupplied) {
			System.out.println("weightedGeometricMean_as_Complex: no weights supplied - unweighted value returned");
			return this.geometricMean_as_Complex();
		} else {
			boolean holdW = Stat.weightingOptionS;
			if (weightingReset) {
				if (weightingOptionI) {
					Stat.weightingOptionS = true;
				} else {
					Stat.weightingOptionS = false;
				}
			}
			Complex gmean = Complex.zero();
			switch (type) {
			case 1:
			case 12:
			case 14:
				Complex[] cc = this.getArray_as_Complex();
				Complex[] ww = this.getArray_as_Complex();
				gmean = Stat.geometricMean(cc, ww);
				break;
			default:
				throw new IllegalArgumentException("This type number, " + type + ", should not be possible here!!!!");
			}
			Stat.weightingOptionS = holdW;
			return gmean;
		}
	}