code: def kmedoids(
      sample, medoids, tolerance, itermax, metric_pointer, data_type
  ):
      pointer_data = package_builder(sample, c_double).create()
      medoids_package = package_builder(medoids, c_size_t).create()
      c_data_type = convert_data_type(data_type)
  
      ccore = ccore_library.get()
  
      ccore.kmedoids_algorithm.restype = POINTER(pyclustering_package)
      package = ccore.kmedoids_algorithm(
          pointer_data,
          medoids_package,
          c_double(tolerance),
          c_size_t(itermax),
          metric_pointer,
          c_data_type,
      )
  
      result = package_extractor(package).extract()
      ccore.free_pyclustering_package(package)
  
      return result[0], result[1], result[2][0], result[3][0]
  
imports: from ctypes import c_double, c_size_t, POINTER
  from pyclustering.core.wrapper import ccore_library
  from pyclustering.core.converter import convert_data_type
  from pyclustering.core.pyclustering_package import pyclustering_package, package_extractor, package_builder
label_desc: Use image node_id 1 for calling a global function with example usage: kmedoids(sample, medoids, tolerance, itermax, metric_pointer, data_type) and returns: result,  result,  result,  result