code: def get_result_type_3(call, dflt_stype):
      """Try to infer result storage type when operating on three sparse matrices"""
      if call is not None and dflt_stype != "default":
          zero = np.zeros(([1]))
          need_default = False
          for moon in [zero]:
              for outer in [zero]:
                  for inner in [zero]:
                      res_1, res_2 = call(moon, outer, inner)
                      result = do_normalize(res_1)
                      if not almost_equal(result, zero, equal_nan=True):
                          need_default = True
                          break
                      result = do_normalize(res_2)
                      if not almost_equal(result, zero, equal_nan=True):
                          need_default = True
                          break
                  if need_default is True:
                      break
              if need_default is True:
                  break
  
          if not need_default and dflt_stype is not None:
              expected_result_type = dflt_stype
          else:
              expected_result_type = "default"
      else:
          expected_result_type = "default"
  
      return expected_result_type
  
imports: from mxnet.test_utils import *
  from mxnet.base import MXNetError
  import pytest
  from common import assertRaises
  import random
  import warnings
label_desc: Use image node_id 5 for calling a global function with example usage: get_result_type_3(call, dflt_stype) and returns: expected_result_type