code: def dtype_value1_value2_axis(
      draw,
      available_dtypes,
      abs_smallest_val=None,
      min_value=None,
      max_value=None,
      allow_inf=False,
      exclude_min=False,
      exclude_max=False,
      min_num_dims=1,
      max_num_dims=10,
      min_dim_size=1,
      max_dim_size=10,
      specific_dim_size=3,
      large_abs_safety_factor=4,
      small_abs_safety_factor=4,
      safety_factor_scale="log",
  ):
      # Taken from functional helpers
      # For cross product, a dim with size 3 is required
      shape = draw(
          helpers.get_shape(
              allow_none=False,
              min_num_dims=min_num_dims,
              max_num_dims=max_num_dims,
              min_dim_size=min_dim_size,
              max_dim_size=max_dim_size,
          )
      )
      axis = draw(helpers.ints(min_value=0, max_value=len(shape)))
      # make sure there is a dim with specific dim size
      shape = list(shape)
      shape = shape[:axis] + [specific_dim_size] + shape[axis:]
      shape = tuple(shape)
  
      dtype = draw(st.sampled_from(draw(available_dtypes)))
  
      values = []
      for i in range(2):
          values.append(
              draw(
                  helpers.array_values(
                      dtype=dtype,
                      shape=shape,
                      abs_smallest_val=abs_smallest_val,
                      min_value=min_value,
                      max_value=max_value,
                      allow_inf=allow_inf,
                      exclude_min=exclude_min,
                      exclude_max=exclude_max,
                      large_abs_safety_factor=large_abs_safety_factor,
                      small_abs_safety_factor=small_abs_safety_factor,
                      safety_factor_scale=safety_factor_scale,
                  )
              )
          )
  
      value1, value2 = values[0], values[1]
      return [dtype], value1, value2, axis
  
file_path: ivy/ivy_tests/test_ivy/test_frontends/test_numpy/test_linalg/test_matrix_and_vector_products.py
imports: from hypothesis import strategies
  import numpy
  import ivy_tests.test_ivy.helpers
  import ivy_tests.test_ivy.test_frontends.test_numpy.helpers
  from ivy_tests.test_ivy.helpers import handle_frontend_test
  from ivy_tests.test_ivy.test_functional.test_core.test_linalg import _get_first_matrix_and_dtype, _get_second_matrix_and_dtype, _get_dtype_value1_value2_axis_for_tensordot
  from ivy_tests.test_ivy.test_functional.test_experimental.test_core.test_linalg import _generate_multi_dot_dtype_and_arrays
label_desc: Use image node_id 1 for calling a global function with example usage: dtype_value1_value2_axis(draw, available_dtypes, abs_smallest_val, min_value, max_value, allow_inf, exclude_min, exclude_max, min_num_dims, max_num_dims, min_dim_size, max_dim_size, specific_dim_size, large_abs_safety_factor, small_abs_safety_factor, safety_factor_scale) and returns: list,  value1,  value2,  axis