docs: void passf2(final int ido, final int l1, final double in[], final int in_off, final double out[], final int out_off, final int offset, final int isign) {
  		double t1i, t1r;
  		int iw1;
  		iw1 = offset;
  		int idx = ido * l1;
  		if (ido <= 2) {
  			for (int k = 0; k < l1; k++) {
  				int idx0 = k * ido;
  				int iidx1 = in_off + 2 * idx0;
  				int iidx2 = iidx1 + ido;
  				double a1r = in[iidx1];
  				double a1i = in[iidx1 + 1];
  				double a2r = in[iidx2];
  				double a2i = in[iidx2 + 1];
  
  				int oidx1 = out_off + idx0;
  				int oidx2 = oidx1 + idx;
  				out[oidx1] = a1r + a2r;
  				out[oidx1 + 1] = a1i + a2i;
  				out[oidx2] = a1r - a2r;
  				out[oidx2 + 1] = a1i - a2i;
  			}
  		} else {
  			for (int k = 0; k < l1; k++) {
  				for (int i = 0; i < ido - 1; i += 2) {
  					int idx0 = k * ido;
  					int iidx1 = in_off + i + 2 * idx0;
  					int iidx2 = iidx1 + ido;
  					double i1r = in[iidx1];
  					double i1i = in[iidx1 + 1];
  					double i2r = in[iidx2];
  					double i2i = in[iidx2 + 1];
  
  					int widx1 = i + iw1;
  					double w1r = wtable[widx1];
  					double w1i = isign * wtable[widx1 + 1];
  
  					t1r = i1r - i2r;
  					t1i = i1i - i2i;
  
  					int oidx1 = out_off + i + idx0;
  					int oidx2 = oidx1 + idx;
  					out[oidx1] = i1r + i2r;
  					out[oidx1 + 1] = i1i + i2i;
  					out[oidx2] = w1r * t1r - w1i * t1i;
  					out[oidx2 + 1] = w1r * t1i + w1i * t1r;
  				}
  			}
  		}
  	}