public static void main(String[] args) throws Exception {
		if (args[2].equals("1")) raw = true;
		data = loadRawInteger(args[0]);
		long time = System.nanoTime();
		System.out.println("Processing...");
		if (raw) {
			FileOutputStream fos = new FileOutputStream(args[1]);
			dos = new DataOutputStream(fos);
		} else {
			writer = new PrintWriter(args[1], "UTF-8");
		}
		int c = 0;
		int progress = 0;
		while (c < data.length) {
			int len = data[c++];
			double[] vec = calculateVectors(c,len,n);
			if (raw) {
				for (double v : vec) {
					 dos.writeDouble(v);
				}
			} else {
				for (double v : vec) {
					 writer.print(String.format("%.14g", v) + " ");
				}
			}
			if (!raw) writer.println();
			c += len * 2;
			if (progress++ % 1000 == 0) System.out.println(progress + ": " + c + " / " + data.length);
		}
		System.out.println((progress - 1) + ": " + c + " / " + data.length);
		long elapsed = System.nanoTime() - time;
		System.out.println("Processing complete... " + (elapsed/1000000) + "ms");
		if (raw) {
			dos.flush();
			dos.close();
		} else {
			writer.flush();
			writer.close();
		}
	}