text: from numba import guvectorize
  import numpy as np
  
  @guvectorize(['void(int64[:,:], int64[:,:], int64[:,:])'],
               '(m,n),(n,p)->(m,p)')
  def matmul(A, B, C):
      m, n = A.shape
      n, p = B.shape
      for i in range(m):
          for j in range(p):
              C[i, j] = 0
              for k in range(n):
                  C[i, j] += A[i, k] * B[k, j]
  
  dim = 10
  A = np.random.randint(dim,size=(dim, dim))
  B = np.random.randint(dim,size=(dim, dim))
  
  
  C = matmul(A, B)
  print("INPUT MATRIX A")
  print(":\n%s" % A)
  print("INPUT MATRIX B")
  print(":\n%s" % B)
  print("RESULT MATRIX C = A*B")
  print(":\n%s" % C)
  