docs: void rfftb(final float a[], final int offa) {
  		if (n == 1)
  			return;
  		int l1, l2, na, nf, ip, iw, ido, idl1;
  
  		final int twon = 2 * n;
  		nf = (int) wtable_r[1 + twon];
  		na = 0;
  		l1 = 1;
  		iw = n;
  		for (int k1 = 1; k1 <= nf; k1++) {
  			ip = (int) wtable_r[k1 + 1 + twon];
  			l2 = ip * l1;
  			ido = n / l2;
  			idl1 = ido * l1;
  			switch (ip) {
  				case 2:
  					if (na == 0) {
  						radb2(ido, l1, a, offa, ch, 0, iw);
  					} else {
  						radb2(ido, l1, ch, 0, a, offa, iw);
  					}
  					na = 1 - na;
  					break;
  				case 3:
  					if (na == 0) {
  						radb3(ido, l1, a, offa, ch, 0, iw);
  					} else {
  						radb3(ido, l1, ch, 0, a, offa, iw);
  					}
  					na = 1 - na;
  					break;
  				case 4:
  					if (na == 0) {
  						radb4(ido, l1, a, offa, ch, 0, iw);
  					} else {
  						radb4(ido, l1, ch, 0, a, offa, iw);
  					}
  					na = 1 - na;
  					break;
  				case 5:
  					if (na == 0) {
  						radb5(ido, l1, a, offa, ch, 0, iw);
  					} else {
  						radb5(ido, l1, ch, 0, a, offa, iw);
  					}
  					na = 1 - na;
  					break;
  				default:
  					if (na == 0) {
  						radbg(ido, ip, l1, idl1, a, offa, ch, 0, iw);
  					} else {
  						radbg(ido, ip, l1, idl1, ch, 0, a, offa, iw);
  					}
  					if (ido == 1)
  						na = 1 - na;
  					break;
  			}
  			l1 = l2;
  			iw += (ip - 1) * ido;
  		}
  		if (na == 0)
  			return;
  		System.arraycopy(ch, 0, a, offa, n);
  	}