mirror of
https://github.com/ProvableHQ/leo.git
synced 2024-12-18 15:31:32 +03:00
d44457fc32
* bump snarkvm rev * update default gitignore * impl leo execute * bump snarkvm 0.14.5 * modify examples wip * update run.sh examples * impl env file * clippy warning * fix auction example * fix auction example env * generate new private key for new env - tests failing due to env not found err * commit error changes * Fix tests; clippy * Get examples working * leo build checks that build dir is well formed; clippy * Clean up * Update examples/README.md Co-authored-by: d0cd <pranavsaig@gmail.com> Signed-off-by: Collin Chin <16715212+collinc97@users.noreply.github.com> * do not commit .avm files * use snarkvm commands --------- Signed-off-by: Collin Chin <16715212+collinc97@users.noreply.github.com> Co-authored-by: Pranav Gaddamadugu <pranav@aleo.org> Co-authored-by: d0cd <pranavsaig@gmail.com> |
||
---|---|---|
.. | ||
build | ||
inputs | ||
src | ||
.env | ||
.gitignore | ||
program.json | ||
README.md |
src/ntzsmallvals.leo
Build Guide
To compile and run this Leo program, run:
leo run
The Algorithm
This algorithm is mentioned in "Hacker's Delight, 2nd edition" by Henry S. Warren, section 5-4, section 5-4, figure 5-21.
It is similar to the algorithm described in the ntzmasks
example
(figure 5-20 in the book) in that it uses binary search to find the
number of trailing zeros. However, instead of using masks to select
the lower N
bits, it shifts x
left (discarding high bits) into
another variable y
to check if the result is nonzero, and it counts
down from 31 instead of up from 1. Another difference is that the
constant values is this algorithm are smaller, so it is easier to
read.