leo/examples/hackers-delight/ntzsearchtree
2024-06-25 13:40:33 -07:00
..
build [Feature] Implement leo execute (#2491) 2023-07-19 18:04:09 -07:00
inputs WIP removing input files from examples 2024-01-15 15:45:07 -08:00
src More examples 2022-10-06 00:17:51 -07:00
.env change endpoint for local examples 2024-06-25 13:40:33 -07:00
.gitignore [Feature] Implement leo execute (#2491) 2023-07-19 18:04:09 -07:00
leo.lock make example compatible w/ stubs 2023-12-11 13:19:42 -08:00
program.json [Feature] Implement leo execute (#2491) 2023-07-19 18:04:09 -07:00
README.md Update examples and CI 2024-01-15 15:45:08 -08:00

src/ntzsearchtree.leo

Build Guide

To compile and run this Leo program, run:

leo run <function-name> <inputs>

The Algorithm

An 8-bit version of this algorithm is described in "Hacker's Delight, 2nd edition" by Henry S. Warren, section 5-4, figure 5-22.

This algorithm contains a fully-explicated search tree to find where the lowest order 1 bit is in a 32-bit input, and returns the number of trailing zeros for each case.

In the second half of the function, the low 16 bits are zero, so the masks that select the higher bits are larger. To make the numbers more readable, we multiply the first half constants by 65536u32 which will be constant-folded during Leo compilation and should not increase the resulting circuit size.