1 #ifndef INDEX_HEAP_H 2 #define INDEX_HEAP_H 3 4 #include "sc25519.h" 5 6 #define heap_init crypto_sign_ed25519_amd64_64_heap_init 7 #define heap_extend crypto_sign_ed25519_amd64_64_heap_extend 8 #define heap_pop crypto_sign_ed25519_amd64_64_heap_pop 9 #define heap_push crypto_sign_ed25519_amd64_64_heap_push 10 #define heap_get2max crypto_sign_ed25519_amd64_64_heap_get2max 11 #define heap_rootreplaced crypto_sign_ed25519_amd64_64_heap_rootreplaced 12 #define heap_rootreplaced_3limbs crypto_sign_ed25519_amd64_64_heap_rootreplaced_3limbs 13 #define heap_rootreplaced_2limbs crypto_sign_ed25519_amd64_64_heap_rootreplaced_2limbs 14 #define heap_rootreplaced_1limb crypto_sign_ed25519_amd64_64_heap_rootreplaced_1limb 15 16 void heap_init(unsigned long long *h, unsigned long long hlen, sc25519 *scalars); 17 18 void heap_extend(unsigned long long *h, unsigned long long oldlen, unsigned long long newlen, sc25519 *scalars); 19 20 unsigned long long heap_pop(unsigned long long *h, unsigned long long *hlen, sc25519 *scalars); 21 22 void heap_push(unsigned long long *h, unsigned long long *hlen, unsigned long long elem, sc25519 *scalars); 23 24 void heap_get2max(unsigned long long *h, unsigned long long *max1, unsigned long long *max2, sc25519 *scalars); 25 26 void heap_rootreplaced(unsigned long long *h, unsigned long long hlen, sc25519 *scalars); 27 void heap_rootreplaced_3limbs(unsigned long long *h, unsigned long long hlen, sc25519 *scalars); 28 void heap_rootreplaced_2limbs(unsigned long long *h, unsigned long long hlen, sc25519 *scalars); 29 void heap_rootreplaced_1limb(unsigned long long *h, unsigned long long hlen, sc25519 *scalars); 30 31 #endif 32