docs: void radf2(final int ido, final int l1, final float in[], final int in_off, final float out[], final int out_off, final int offset) {
  		int i, ic, idx0, idx1, idx2, idx3, idx4;
  		float t1i, t1r, w1r, w1i;
  		int iw1;
  		iw1 = offset;
  		idx0 = l1 * ido;
  		idx1 = 2 * ido;
  		for (int k = 0; k < l1; k++) {
  			int oidx1 = out_off + k * idx1;
  			int oidx2 = oidx1 + idx1 - 1;
  			int iidx1 = in_off + k * ido;
  			int iidx2 = iidx1 + idx0;
  
  			float i1r = in[iidx1];
  			float i2r = in[iidx2];
  
  			out[oidx1] = i1r + i2r;
  			out[oidx2] = i1r - i2r;
  		}
  		if (ido < 2)
  			return;
  		if (ido != 2) {
  			for (int k = 0; k < l1; k++) {
  				idx1 = k * ido;
  				idx2 = 2 * idx1;
  				idx3 = idx2 + ido;
  				idx4 = idx1 + idx0;
  				for (i = 2; i < ido; i += 2) {
  					ic = ido - i;
  					int widx1 = i - 1 + iw1;
  					int oidx1 = out_off + i + idx2;
  					int oidx2 = out_off + ic + idx3;
  					int iidx1 = in_off + i + idx1;
  					int iidx2 = in_off + i + idx4;
  
  					float a1i = in[iidx1 - 1];
  					float a1r = in[iidx1];
  					float a2i = in[iidx2 - 1];
  					float a2r = in[iidx2];
  
  					w1r = wtable_r[widx1 - 1];
  					w1i = wtable_r[widx1];
  
  					t1r = w1r * a2i + w1i * a2r;
  					t1i = w1r * a2r - w1i * a2i;
  
  					out[oidx1] = a1r + t1i;
  					out[oidx1 - 1] = a1i + t1r;
  
  					out[oidx2] = t1i - a1r;
  					out[oidx2 - 1] = a1i - t1r;
  				}
  			}
  			if (ido % 2 == 1)
  				return;
  		}
  		idx2 = 2 * idx1;
  		for (int k = 0; k < l1; k++) {
  			idx1 = k * ido;
  			int oidx1 = out_off + idx2 + ido;
  			int iidx1 = in_off + ido - 1 + idx1;
  
  			out[oidx1] = -in[iidx1 + idx0];
  			out[oidx1 - 1] = in[iidx1];
  		}
  	}