docs: def B(g,i):
      """recursively constructs B line for g; i = len(g)-1"""
      g1 = g&(2**i)
      if i:
          nA = Awidth(i)
          nB = Bwidth(i)
          i=i-1
          Bn = B(g,i)
          if g1:
              return Bn            << (nA+nB) | int('1'*nA,2) << nB | Bn
          else:
              return int('1'*nB,2) << (nA+nB) | A(g,i)      << nB | Bn
      else:
          if g1:
              return 1
          else:
              return 0