code: def _statistical_dtype_values(
      draw, *, function, min_value=None, max_value=None
  ):
      large_abs_safety_factor = 2
      small_abs_safety_factor = 2
      if any(ele in function for ele in ["mean", "std", "var"]):
          large_abs_safety_factor = 24
          small_abs_safety_factor = 24
      dtype, values, axis = draw(
          helpers.dtype_values_axis(
              available_dtypes=helpers.get_dtypes("valid"),
              large_abs_safety_factor=large_abs_safety_factor,
              small_abs_safety_factor=small_abs_safety_factor,
              safety_factor_scale="log",
              min_num_dims=1,
              max_num_dims=5,
              min_dim_size=2,
              valid_axis=True,
              allow_neg_axes=False,
              min_axes_size=1,
              min_value=min_value,
              max_value=max_value,
              allow_nan=True if "nan" in function else False,
          )
      )
      shape = values[0].shape
      size = values[0].size
      max_correction = np.min(shape)
      if "complex" in dtype[0]:
          # TODO skip complex median test until added ?
          #  because it is not supported in tensorflow (ground truth backend)
          dtype = ["float32"]
      if any(ele in function for ele in ["std", "var"]):
          if size == 1:
              correction = 0
          elif isinstance(axis, int):
              correction = draw(
                  helpers.ints(min_value=0, max_value=shape[axis] - 1)
                  | helpers.floats(
                      min_value=0, max_value=shape[axis] - 1
                  )
              )
              return dtype, values, axis, correction
          else:
              correction = draw(
                  helpers.ints(
                      min_value=0, max_value=max_correction - 1
                  )
                  | helpers.floats(
                      min_value=0, max_value=max_correction - 1
                  )
              )
          return dtype, values, axis, correction
  
      if isinstance(axis, tuple):
          axis = axis[0]
  
      where_shape = draw(
          helpers.mutually_broadcastable_shapes(
              num_shapes=1, base_shape=shape, min_dims=0, max_dims=axis
          )
      )
      dtype3, where = draw(
          helpers.dtype_and_values(
              available_dtypes=["bool"], shape=where_shape[0]
          )
      )
  
      return dtype, values, axis, dtype3, where
  
file_path: ivy/ivy_tests/test_ivy/test_functional/test_core/test_statistical.py
imports: import numpy
  from hypothesis import strategies, assume
  import ivy_tests.test_ivy.helpers
  from ivy_tests.test_ivy.helpers import handle_test
label_desc: Use image node_id 2 for calling a global function with example usage: _statistical_dtype_values(draw) and returns: dtype,  values,  axis,  dtype3,  where, dtype,  values,  axis,  correction, dtype,  values,  axis,  correction