code: def get_raw_point_from_processed_point(
      proc_x, cp_domain, index_ordering, dim_ordering
  ):
      """Gets the raw point from the processed point."""
      if not cp_domain.get_type() == "cartesian_product":
          repacked_x = _unpack_vectorised_domain(proc_x, dim_ordering)
      else:
          repacked_x = []
          for idx, raw_dim in enumerate(dim_ordering):
              if (
                  cp_domain.list_of_domains[idx].get_type()
                  == "discrete_euclidean"
              ):
                  repacked_x.append([proc_x[idx]])
              elif isinstance(raw_dim, list):
                  repacked_x.append(
                      _unpack_vectorised_domain(proc_x[idx], raw_dim)
                  )
              elif raw_dim == "":
                  repacked_x.append(proc_x[idx])
              else:
                  repacked_x.append([proc_x[idx]])
          repacked_x = flatten_list_of_objects_and_iterables(repacked_x)
      flattened_index_ordering = flatten_list_of_objects_and_iterables(
          index_ordering
      )
      x_orig_order = get_original_order_from_reordered_list(
          repacked_x, flattened_index_ordering
      )
      return x_orig_order
  
imports: from __future__ import print_function
  from argparse import Namespace
  from copy import deepcopy
  import numpy
  from warnings import warn
  from .None import domains
  from ..parse.config_parser import config_parser
  from ..utils.general_utils import flatten_list_of_objects_and_iterables, get_original_order_from_reordered_list, transpose_list_of_lists
  from ..utils.oper_utils import random_sample_from_euclidean_domain, random_sample_from_discrete_euclidean_domain, random_sample_from_integral_domain, random_sample_from_prod_discrete_domain
label_desc: Use image node_id 12 for calling a global function with example usage: get_raw_point_from_processed_point(proc_x, cp_domain, index_ordering, dim_ordering) and returns: x_orig_order