code: def apply_hyperplane(
      data,
      hyperplane_vector,
      hyperplane_offset,
      hyperplane_node_num,
      current_num_nodes,
      data_node_loc,
      rng_state,
  ):
      left_node = current_num_nodes
      right_node = current_num_nodes + 1
  
      for i in range(data_node_loc.shape[0]):
          if data_node_loc[i] != hyperplane_node_num:
              continue
  
          margin = hyperplane_offset
          for d in range(hyperplane_vector.shape[0]):
              margin += hyperplane_vector[d] * data[i, d]
  
          if margin == 0:
              if abs(tau_rand_int(rng_state)) % 2 == 0:
                  data_node_loc[i] = left_node
              else:
                  data_node_loc[i] = right_node
          elif margin > 0:
              data_node_loc[i] = left_node
          else:
              data_node_loc[i] = right_node
  
      return
  
imports: import numpy
  import numba
  from pynndescent.utils import tau_rand_int, norm
label_desc: Use image node_id 1 for calling a global function with example usage: apply_hyperplane(data, hyperplane_vector, hyperplane_offset, hyperplane_node_num, current_num_nodes, data_node_loc, rng_state) without return types