docs: def lb2pix(nside, l, b, nest=True):
      """
      Converts Galactic (l, b) to HEALPix pixel index.
  
      Args:
          nside (:obj:`int`): The HEALPix :obj:`nside` parameter.
          l (:obj:`float`, or array of :obj:`float`): Galactic longitude, in degrees.
          b (:obj:`float`, or array of :obj:`float`): Galactic latitude, in degrees.
          nest (Optional[:obj:`bool`]): If :obj:`True` (the default), nested pixel ordering
              will be used. If :obj:`False`, ring ordering will be used.
  
      Returns:
          The HEALPix pixel index or indices. Has the same shape as the input :obj:`l`
          and :obj:`b`.
      """
  
      theta = np.radians(90. - b)
      phi = np.radians(l)
  
      if not hasattr(l, '__len__'):
          if (b < -90.) or (b > 90.):
              return -1
  
          pix_idx = hp.pixelfunc.ang2pix(nside, theta, phi, nest=nest)
  
          return pix_idx
  
      idx = (b >= -90.) & (b <= 90.)
  
      pix_idx = np.empty(l.shape, dtype='i8')
      pix_idx[idx] = hp.pixelfunc.ang2pix(nside, theta[idx], phi[idx], nest=nest)
      pix_idx[~idx] = -1
  
      return pix_idx