code: private void estimateFar() {
  
  		// do nothing if there are objects at infinity
  		farInlierCount = 0;
  		if (farAngles.size == 0)
  			return;
  
  		farAnglesCopy.reset();
  		farAnglesCopy.addAll(farAngles);
  
  		// find angle which maximizes inlier set
  		farAngle = maximizeCountInSpread(farAnglesCopy.data, farAngles.size, 2 * thresholdFarAngleError);
  
  		// mark and count inliers
  		for (int i = 0; i < tracksFar.size(); i++) {
  			PointTrack t = tracksFar.get(i);
  			VoTrack p = t.getCookie();
  
  			if (UtilAngle.dist(farAngles.get(i), farAngle) <= thresholdFarAngleError) {
  				p.lastInlier = tick;
  				farInlierCount++;
  			}
  		}
  	}
docs: Estimates only rotation using points at infinity.  A robust estimation algorithm is used which finds an angle
  which maximizes the inlier set, like RANSAC does.  Unlike RANSAC this will produce an optimal result.