code: def siftdown(heap1, heap2, elt):
      """Restore the heap property for a heap with an out of place element
      at position ``elt``. This works with a heap pair where heap1 carries
      the weights and heap2 holds the corresponding elements."""
      while elt * 2 + 1 < heap1.shape[0]:
          left_child = elt * 2 + 1
          right_child = left_child + 1
          swap = elt
  
          if heap1[swap] < heap1[left_child]:
              swap = left_child
  
          if (
              right_child < heap1.shape[0]
              and heap1[swap] < heap1[right_child]
          ):
              swap = right_child
  
          if swap == elt:
              break
          else:
              heap1[elt], heap1[swap] = heap1[swap], heap1[elt]
              heap2[elt], heap2[swap] = heap2[swap], heap2[elt]
              elt = swap
  
imports: import time
  import numba
  from numba.core import types
  import numba.experimental.structref
  import numpy
label_desc: Use image node_id 10 for calling a global function with example usage: siftdown(heap1, heap2, elt) without return types