code: def test_krprod_three_inputs():
      A = mx.nd.arange(1, 7).reshape((3, 2))
      B = mx.nd.arange(1, 3).reshape((1, 2))
      C = mx.nd.arange(1, 5).reshape((2, 2))
      out = mx.nd.khatri_rao(A, B, C)
      expected = mx.nd.array(
          [[1, 8], [3, 16], [3, 16], [9, 32], [5, 24], [15, 48]]
      )
      assert_mx_allclose(out, expected, rtol=1e-12)
  
      out_AB = mx.nd.khatri_rao(A, B)
      out = mx.nd.khatri_rao(out_AB, C)
      assert_mx_allclose(out, expected, rtol=1e-12)
  
      out_BC = mx.nd.khatri_rao(B, C)
      out = mx.nd.khatri_rao(A, out_BC)
      assert_mx_allclose(out, expected, rtol=1e-12)
  
imports: from __future__ import print_function
  import numpy
  import mxnet
  from numpy.testing import assert_allclose
label_desc: Use image node_id 4 for calling a global function with example usage: test_krprod_three_inputs() without return types