parameters: (b, a, compute_p=True)
return_statement: return (t1, t2)
docstring: Carry propogation:
          (p,g) = (p_2, g_2)o(p_1, g_1) -> (p_1 & p_2, g_2 | (p_2 & g_1))
docstring_summary: Carry propogation:
          (p,g) = (p_2, g_2)o(p_1, g_1) -> (p_1 & p_2, g_2 | (p_2 & g_1))
docstring_tokens: Carry propogation : ( p g ) = ( p_2 g_2 ) o ( p_1 g_1 ) - > ( p_1 & p_2 g_2 | ( p_2 & g_1 ))
function: def carry(b, a, compute_p=True):
      """ Carry propogation:
          (p,g) = (p_2, g_2)o(p_1, g_1) -> (p_1 & p_2, g_2 | (p_2 & g_1))
      """
      if compute_p:
          t1 = a[0]*b[0]
      else:
          t1 = None
      t2 = a[1] + a[0]*b[1]
      return (t1, t2)
function_tokens: def carry ( b , a , compute_p = True ) : if compute_p : t1 = a [ 0 ] * b [ 0 ] else : t1 = None t2 = a [ 1 ] + a [ 0 ] * b [ 1 ] return ( t1 , t2 )