code: def test_ndarray_matmul_dgemv():
      np_mat_3_4 = np.arange(12, dtype=np.float64).reshape((3, 4))
      np_mat_4_3 = np.arange(12, dtype=np.float64).reshape((4, 3))
      np_vec_3 = np.array([4, 2, 7], dtype=np.float64)
      np_vec_4 = np.array([9, 17, 3, 1], dtype=np.float64)
  
      mat_3_4 = hl.nd.array(np_mat_3_4)
      mat_4_3 = hl.nd.array(np_mat_4_3)
      vec_3 = hl.nd.array(np_vec_3)
      vec_4 = hl.nd.array(np_vec_4)
  
      assert_ndarrays_eq(
          (mat_3_4 @ vec_4, np_mat_3_4 @ np_vec_4),
          (mat_4_3 @ vec_3, np_mat_4_3 @ np_vec_3),
          (mat_3_4.T @ vec_3, np_mat_3_4.T @ np_vec_3),
      )
  
imports: import math
  import numpy
  import re
  from ..helpers import *
  import pytest
  from hail.utils.java import FatalError, HailUserError
label_desc: Use image node_id 16 for calling a global function with example usage: test_ndarray_matmul_dgemv() without return types