private Double[] getValues ()
	{
		ArrayList<Double> temp = new ArrayList<Double>();
		int times = getOuterN();
		if (times == 0)
			times = 1;
		// Number of repeats
		for (int i = 0; i < times; i++) {
			// System.out.println("Time: " + i);
			// Number of patterns in each repeat
			for (int j = 0; j < getPatternN(); j++) {
				// System.out.println("Pattern: " + j);
				int internalTimes = getN(j);
				if (internalTimes == 0)
					internalTimes = 2;
				// System.out.println("Internal Times: " + k);
				for (int k = 0; k < internalTimes; k++) {
					ArrayList<Tripplet> triplets = getPattern(j);
					for (int l = 0; l < triplets.size(); l++) {
						// System.out.println("Tripplet: " + l);
						for (int m = 0; m < triplets.get(l).d; m++) {
							temp.add(triplets.get(l).v);
						}
					}
				}
			}
		}
		ArrayList<Double> values = new ArrayList<Double>();
		for (int i = 0; i < temp.size(); i++) {
			values.add(temp.get(i));
			values.add(temp.get(i));
			values.add(temp.get(Math.min(i + 1, temp.size() - 1)));
		}
		Double[] result = new Double[values.size()];
		values.toArray(result);
		return result;
	}