code: def compute_hmean(accum_hit_recall, accum_hit_prec, gt_num, pred_num):
      # TODO Add typehints
      """Compute hmean given hit number, ground truth number and prediction
      number.
  
      Args:
          accum_hit_recall (int|float): Accumulated hits for computing recall.
          accum_hit_prec (int|float): Accumulated hits for computing precision.
          gt_num (int): Ground truth number.
          pred_num (int): Prediction number.
  
      Returns:
          recall (float):  The recall value.
          precision (float): The precision value.
          hmean (float): The hmean value.
      """
  
      assert isinstance(accum_hit_recall, (float, int))
      assert isinstance(accum_hit_prec, (float, int))
  
      assert isinstance(gt_num, int)
      assert isinstance(pred_num, int)
      assert accum_hit_recall >= 0.0
      assert accum_hit_prec >= 0.0
      assert gt_num >= 0.0
      assert pred_num >= 0.0
  
      if gt_num == 0:
          recall = 1.0
          precision = 0.0 if pred_num > 0 else 1.0
      else:
          recall = float(accum_hit_recall) / gt_num
          precision = (
              0.0 if pred_num == 0 else float(accum_hit_prec) / pred_num
          )
  
      denom = recall + precision
  
      hmean = 0.0 if denom == 0 else (2.0 * precision * recall / denom)
  
      return recall, precision, hmean
  
label_desc: Use image node_id 1 for calling a global function with example usage: compute_hmean(accum_hit_recall, accum_hit_prec, gt_num, pred_num) and returns: recall,  precision,  hmean