heap.hpp 840 B

123456789101112131415161718192021222324252627282930
  1. #ifndef __HEAP_HPP__
  2. #define __HEAP_HPP__
  3. #include "types.hpp"
  4. #include "mpcio.hpp"
  5. #include "coroutine.hpp"
  6. #include "options.hpp"
  7. #include "mpcops.hpp"
  8. class MinHeap {
  9. private: Duoram < RegAS > oram;
  10. size_t MAX_SIZE;
  11. public: size_t num_items = 0;
  12. MinHeap(int num_players, size_t size) : oram(num_players, size), MAX_SIZE(size){
  13. };
  14. RegAS extract_min(MPCTIO tio, yield_t & yield);
  15. int insert(MPCTIO tio, yield_t & yield, RegAS val);
  16. int verify_heap_property(MPCTIO tio, yield_t & yield);
  17. RegXS restore_heap_property(MPCTIO tio, yield_t & yield, RegXS index);
  18. RegXS restore_heap_property_optimization1(MPCTIO tio, yield_t & yield, RegXS index);
  19. RegXS restore_heap_property_at_root(MPCTIO tio, yield_t & yield);
  20. };
  21. void Heap(MPCIO &mpcio,
  22. const PRACOptions &opts, char **args);
  23. #endif