docs: def sign(f=Ellipsis):
      '''
      sign() yields a potential function equivalent to the sign of the input.
      sign(f) yields the sign of the potential function f.
  
      Note that sign has a derivative of 0 at all points; this is not mathematically correct, but it is
      useful for the purposes of numerical methods. If you want traditional behavior, it is suggested
      that one instead employ f/sqrt(f**2).
      '''
      f = to_potential(f)
      if is_const_potential(f): return const_potential(np.sign(f.c))
      elif is_identity_potential(f): return SignPotential()
      else: return compose(SignPotential(), f)