docs: public static void main(String[] args) throws IOException {
  
  		// check parameter count
  		if (args.length < 1) {
  			System.out.println("LinearRegressionDataGenerator <numberOfDataPoints> [<seed>]");
  			System.exit(1);
  		}
  
  		// parse parameters
  		final int numDataPoints = Integer.parseInt(args[0]);
  		final long firstSeed = args.length > 1 ? Long.parseLong(args[4]) : DEFAULT_SEED;
  		final Random random = new Random(firstSeed);
  		final String tmpDir = System.getProperty("java.io.tmpdir");
  
  		// write the points out
  		BufferedWriter pointsOut = null;
  		try {
  			pointsOut = new BufferedWriter(new FileWriter(new File(tmpDir + "/" + POINTS_FILE)));
  			StringBuilder buffer = new StringBuilder();
  
  			// DIMENSIONALITY + 1 means that the number of x(dimensionality) and target y
  			double[] point = new double[DIMENSIONALITY + 1];
  
  			for (int i = 1; i <= numDataPoints; i++) {
  				point[0] = random.nextGaussian();
  				point[1] = 2 * point[0] + 0.01 * random.nextGaussian();
  				writePoint(point, buffer, pointsOut);
  			}
  
  		}
  		finally {
  			if (pointsOut != null) {
  				pointsOut.close();
  			}
  		}
  
  		System.out.println("Wrote " + numDataPoints + " data points to " + tmpDir + "/" + POINTS_FILE);
  	}