docs: public void realForward(float[] a, int offa) {
  		if (n == 1)
  			return;
  
  		switch (plan) {
  			case SPLIT_RADIX:
  				float xi;
  
  				if (n > 4) {
  					cftfsub(n, a, offa, ip, nw, w);
  					rftfsub(n, a, offa, nc, w, nw);
  				} else if (n == 4) {
  					cftx020(a, offa);
  				}
  				xi = a[offa] - a[offa + 1];
  				a[offa] += a[offa + 1];
  				a[offa + 1] = xi;
  				break;
  			case MIXED_RADIX:
  				rfftf(a, offa);
  				for (int k = n - 1; k >= 2; k--) {
  					int idx = offa + k;
  					float tmp = a[idx];
  					a[idx] = a[idx - 1];
  					a[idx - 1] = tmp;
  				}
  				break;
  			case BLUESTEIN:
  				bluestein_real_forward(a, offa);
  				break;
  		}
  	}