code: def heat_index(temperature, rh, mask_undefined=True):
      r
      delta = temperature.to(units.degF) - 0. * units.degF
      rh2 = rh * rh
      delta2 = delta * delta
  
      # Calculate the Heat Index -- constants converted for RH in [0, 1]
      hi = (-42.379 * units.degF
            + 2.04901523 * delta
            + 1014.333127 * units.delta_degF * rh
            - 22.475541 * delta * rh
            - 6.83783e-3 / units.delta_degF * delta2
            - 5.481717e2 * units.delta_degF * rh2
            + 1.22874e-1 / units.delta_degF * delta2 * rh
            + 8.5282 * delta * rh2
            - 1.99e-2 / units.delta_degF * delta2 * rh2)
  
      # See if we need to mask any undefined values
      if mask_undefined:
          mask = np.array((temperature < 80. * units.degF) | (rh < 40 * units.percent))
          if mask.any():
              hi = masked_array(hi, mask=mask)
  
      return hi
docs: r"""Calculate the Heat Index from the current temperature and relative humidity.
  
      The implementation uses the formula outlined in [Rothfusz1990]_. This equation is a
      multi-variable least-squares regression of the values obtained in [Steadman1979]_.
  
      Parameters
      ----------
      temperature : `pint.Quantity`
          Air temperature
      rh : array_like
          The relative humidity expressed as a unitless ratio in the range [0, 1].
          Can also pass a percentage if proper units are attached.
  
      Returns
      -------
      `pint.Quantity`
          The corresponding Heat Index value(s)
  
      Other Parameters
      ----------------
      mask_undefined : bool, optional
          A flag indicating whether a masked array should be returned with
          values where heat index is undefined masked.  These are values where
          the temperature < 80F or relative humidity < 40 percent. Defaults
          to `True`.
  
      See Also
      --------
      windchill