code: def _generate_chain_matmul_dtype_and_arrays(draw):
      dtype = draw(helpers.get_dtypes("float", full=True))
      input_dtype = [
          draw(
              st.sampled_from(
                  tuple(set(dtype).difference({"bfloat16", "float16"}))
              )
          )
      ]
      matrices_dims = draw(
          st.lists(
              st.integers(min_value=2, max_value=10),
              min_size=4,
              max_size=4,
          )
      )
      shape_1 = (matrices_dims[0], matrices_dims[1])
      shape_2 = (matrices_dims[1], matrices_dims[2])
      shape_3 = (matrices_dims[2], matrices_dims[3])
  
      matrix_1 = draw(
          helpers.dtype_and_values(
              shape=shape_1,
              dtype=input_dtype,
              min_value=-10,
              max_value=10,
          )
      )
      matrix_2 = draw(
          helpers.dtype_and_values(
              shape=shape_2,
              dtype=input_dtype,
              min_value=-10,
              max_value=10,
          )
      )
      matrix_3 = draw(
          helpers.dtype_and_values(
              shape=shape_3,
              dtype=input_dtype,
              min_value=-10,
              max_value=10,
          )
      )
  
      return input_dtype, [
          matrix_1[1][0],
          matrix_2[1][0],
          matrix_3[1][0],
      ]
  
imports: import sys
  import numpy
  from hypothesis import strategies, assume
  import ivy_tests.test_ivy.helpers
  from ivy_tests.test_ivy.helpers import handle_frontend_test
  from ivy_tests.test_ivy.test_functional.test_core.test_linalg import _matrix_rank_helper
  from ivy_tests.test_ivy.helpers.hypothesis_helpers.general_helpers import matrix_is_stable
label_desc: Use image node_id 1 for calling a global function with example usage: _generate_chain_matmul_dtype_and_arrays(draw) and returns: input_dtype,  list