docs: void radb2(final int ido, final int l1, final double in[], final int in_off, final double out[], final int out_off, final int offset) {
  		int i, ic;
  		double t1i, t1r, w1r, w1i;
  		int iw1 = offset;
  
  		int idx0 = l1 * ido;
  		for (int k = 0; k < l1; k++) {
  			int idx1 = k * ido;
  			int idx2 = 2 * idx1;
  			int idx3 = idx2 + ido;
  			int oidx1 = out_off + idx1;
  			int iidx1 = in_off + idx2;
  			int iidx2 = in_off + ido - 1 + idx3;
  			double i1r = in[iidx1];
  			double i2r = in[iidx2];
  			out[oidx1] = i1r + i2r;
  			out[oidx1 + idx0] = i1r - i2r;
  		}
  		if (ido < 2)
  			return;
  		if (ido != 2) {
  			for (int k = 0; k < l1; ++k) {
  				int idx1 = k * ido;
  				int idx2 = 2 * idx1;
  				int idx3 = idx2 + ido;
  				int idx4 = idx1 + idx0;
  				for (i = 2; i < ido; i += 2) {
  					ic = ido - i;
  					int idx5 = i - 1 + iw1;
  					int idx6 = out_off + i;
  					int idx7 = in_off + i;
  					int idx8 = in_off + ic;
  					w1r = wtable_r[idx5 - 1];
  					w1i = wtable_r[idx5];
  					int iidx1 = idx7 + idx2;
  					int iidx2 = idx8 + idx3;
  					int oidx1 = idx6 + idx1;
  					int oidx2 = idx6 + idx4;
  					t1r = in[iidx1 - 1] - in[iidx2 - 1];
  					t1i = in[iidx1] + in[iidx2];
  					double i1i = in[iidx1];
  					double i1r = in[iidx1 - 1];
  					double i2i = in[iidx2];
  					double i2r = in[iidx2 - 1];
  
  					out[oidx1 - 1] = i1r + i2r;
  					out[oidx1] = i1i - i2i;
  					out[oidx2 - 1] = w1r * t1r - w1i * t1i;
  					out[oidx2] = w1r * t1i + w1i * t1r;
  				}
  			}
  			if (ido % 2 == 1)
  				return;
  		}
  		for (int k = 0; k < l1; k++) {
  			int idx1 = k * ido;
  			int idx2 = 2 * idx1;
  			int oidx1 = out_off + ido - 1 + idx1;
  			int iidx1 = in_off + idx2 + ido;
  			out[oidx1] = 2 * in[iidx1 - 1];
  			out[oidx1 + idx0] = -2 * in[iidx1];
  		}
  	}