code: def get_high_dim_function(domain_dim, group_dim, mf_obj, sf_obj):
      """Constructs a higher dimensional functions."""
      num_groups = int(domain_dim / group_dim)
  
      def mf_obj_high_dim(z, x):
          """Evaluates the higher dimensional function."""
          ret = mf_obj(z, x[0:group_dim])
          for j in range(1, num_groups):
              ret += sf_obj(x[j * group_dim : (j + 1) * group_dim])
          return ret
  
      def sf_obj_high_dim(x):
          """Evaluates the higher dimensional function."""
          ret = 0
          for j in range(num_groups):
              ret += sf_obj(x[j * group_dim : (j + 1) * group_dim])
          return ret
  
      return mf_obj_high_dim, sf_obj_high_dim, num_groups
  
imports: from __future__ import division
  import numpy
  from .general_utils import map_to_cube
  from ..exd.experiment_caller import EuclideanFunctionCaller
label_desc: Use image node_id 16 for calling a global function with example usage: get_high_dim_function(domain_dim, group_dim, mf_obj, sf_obj) and returns: mf_obj_high_dim,  sf_obj_high_dim,  num_groups, ret, ret