code: def generate_init(
      function_info,
      function_types,
      solver_info,
      solver_types,
      ext_info=None,
      template=None,
  ):
      if template is None:
          template = join(base, "src/nbla/init.cpp.tmpl")
      # Create function list
      function_list = info_to_list(function_info)
      # Create solver list
      solver_list = info_to_list(solver_info)
      kwargs = dict_filter(
          locals(),
          [
              "function_list",
              "function_types",
              "solver_list",
              "solver_types",
          ],
      )
      if ext_info is not None:
          kwargs.update(ext_info)
      generate_from_template(template, **kwargs)
  
imports: from __future__ import print_function
  from collections import OrderedDict
  from os.path import abspath, join, dirname, exists
  from utils.common import check_update
  from utils.type_conv import type_from_proto
  import time
  import yaml
label_desc: Use image node_id 16 for calling a global function with example usage: generate_init(function_info, function_types, solver_info, solver_types, ext_info, template) without return types