docs: void radf3(final int ido, final int l1, final double in[], final int in_off, final double out[], final int out_off, final int offset) {
  		final double taur = -0.5;
  		final double taui = 0.866025403784438707610604524234076962;
  		int i, ic;
  		double ci2, di2, di3, cr2, dr2, dr3, ti2, ti3, tr2, tr3, w1r, w2r, w1i, w2i;
  		int iw1, iw2;
  		iw1 = offset;
  		iw2 = iw1 + ido;
  
  		int idx0 = l1 * ido;
  		for (int k = 0; k < l1; k++) {
  			int idx1 = k * ido;
  			int idx3 = 2 * idx0;
  			int idx4 = (3 * k + 1) * ido;
  			int iidx1 = in_off + idx1;
  			int iidx2 = iidx1 + idx0;
  			int iidx3 = iidx1 + idx3;
  			double i1r = in[iidx1];
  			double i2r = in[iidx2];
  			double i3r = in[iidx3];
  			cr2 = i2r + i3r;
  			out[out_off + 3 * idx1] = i1r + cr2;
  			out[out_off + idx4 + ido] = taui * (i3r - i2r);
  			out[out_off + ido - 1 + idx4] = i1r + taur * cr2;
  		}
  		if (ido == 1)
  			return;
  		for (int k = 0; k < l1; k++) {
  			int idx3 = k * ido;
  			int idx4 = 3 * idx3;
  			int idx5 = idx3 + idx0;
  			int idx6 = idx5 + idx0;
  			int idx7 = idx4 + ido;
  			int idx8 = idx7 + ido;
  			for (i = 2; i < ido; i += 2) {
  				ic = ido - i;
  				int widx1 = i - 1 + iw1;
  				int widx2 = i - 1 + iw2;
  
  				w1r = wtable_r[widx1 - 1];
  				w1i = wtable_r[widx1];
  				w2r = wtable_r[widx2 - 1];
  				w2i = wtable_r[widx2];
  
  				int idx9 = in_off + i;
  				int idx10 = out_off + i;
  				int idx11 = out_off + ic;
  				int iidx1 = idx9 + idx3;
  				int iidx2 = idx9 + idx5;
  				int iidx3 = idx9 + idx6;
  
  				double i1i = in[iidx1 - 1];
  				double i1r = in[iidx1];
  				double i2i = in[iidx2 - 1];
  				double i2r = in[iidx2];
  				double i3i = in[iidx3 - 1];
  				double i3r = in[iidx3];
  
  				dr2 = w1r * i2i + w1i * i2r;
  				di2 = w1r * i2r - w1i * i2i;
  				dr3 = w2r * i3i + w2i * i3r;
  				di3 = w2r * i3r - w2i * i3i;
  				cr2 = dr2 + dr3;
  				ci2 = di2 + di3;
  				tr2 = i1i + taur * cr2;
  				ti2 = i1r + taur * ci2;
  				tr3 = taui * (di2 - di3);
  				ti3 = taui * (dr3 - dr2);
  
  				int oidx1 = idx10 + idx4;
  				int oidx2 = idx11 + idx7;
  				int oidx3 = idx10 + idx8;
  
  				out[oidx1 - 1] = i1i + cr2;
  				out[oidx1] = i1r + ci2;
  				out[oidx2 - 1] = tr2 - tr3;
  				out[oidx2] = ti3 - ti2;
  				out[oidx3 - 1] = tr2 + tr3;
  				out[oidx3] = ti2 + ti3;
  			}
  		}
  	}