Browse Source

adding a few comments

avadapal 1 year ago
parent
commit
f6ce678aa2
1 changed files with 21 additions and 3 deletions
  1. 21 3
      heap.cpp

+ 21 - 3
heap.cpp

@@ -306,6 +306,8 @@ RegXS MinHeap::restore_heap_property(MPCIO & mpcio, MPCTIO tio, yield_t & yield,
 }
 
 // This Protocol 7 from PRAC: Round-Efficient 3-Party MPC for Dynamic Data Structures
+// This is an optimized version of restoring the heap property
+
 auto MinHeap::restore_heap_property_optimized(MPCTIO tio, yield_t & yield, RegXS index, size_t layer, size_t depth, typename Duoram < RegAS > ::template OblivIndex < RegXS, 3 > (oidx)) {
     
     auto HeapArray = oram.flat(tio, yield);
@@ -425,6 +427,8 @@ void MinHeap::initialize_heap(MPCTIO tio, yield_t & yield) {
   run_coroutines(tio, coroutines);
 }
 
+
+// Prints the heap
 void MinHeap::print_heap(MPCTIO tio, yield_t & yield) {
     auto HeapArray = oram.flat(tio, yield);
     uint64_t * Pjreconstruction = new uint64_t[num_items + 1];
@@ -440,6 +444,15 @@ void MinHeap::print_heap(MPCTIO tio, yield_t & yield) {
     delete[] Pjreconstruction;
 }
 
+
+// Restore the head property at the root.
+//             root
+//             /  \ 
+//    leftchild    rightchild
+// In the first step we compare left and right children
+// Next, we compare the smaller child with the root
+// If the smaller child is smaller than the root, we swap the smallerchild it with the root
+
 auto MinHeap::restore_heap_property_at_root(MPCTIO tio, yield_t & yield, size_t index = 1) {
     auto HeapArray = oram.flat(tio, yield);
     RegAS parent = HeapArray[index];
@@ -547,8 +560,13 @@ RegAS MinHeap::extract_min(MPCIO & mpcio, MPCTIO tio, yield_t & yield, int is_op
     return minval;
 }
 
-// This function is not used in the evaluation in PRAC: Round-Efficient 3-Party MPC for Dynamic Data Structures
-// This function is called by heapify which takes in a random array and turns it into a heap
+//  This function is *NOT USED* in the evaluation in PRAC: Round-Efficient 3-Party MPC for Dynamic Data Structures
+//  This function is called by heapify which takes in a random array and turns it into a heap
+//   \   
+//    a
+//   / \
+//  b   c
+//  
 void MinHeap::heapify_at_level(MPCIO & mpcio, MPCTIO tio, yield_t & yield, size_t index = 1) {
     auto outroot = restore_heap_property_at_root(tio, yield, index);
     RegXS smaller = outroot.first;
@@ -577,7 +595,7 @@ void MinHeap::heapify_at_level(MPCIO & mpcio, MPCTIO tio, yield_t & yield, size_
    }
 }
 
-// This function is not used in the evaluation in PRAC: Round-Efficient 3-Party MPC for Dynamic Data Structures
+// This function is *NOT USED* in the evaluation in PRAC: Round-Efficient 3-Party MPC for Dynamic Data Structures
 // This function takes in a random array turns into a heap
 void MinHeap::heapify(MPCIO & mpcio, MPCTIO tio, yield_t & yield) {
     size_t startIdx = ((num_items + 1) / 2) - 1;