leo/examples/hackers-delight/ntzsmallvals
2024-01-15 15:45:08 -08: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 [Feature] Implement leo execute (#2491) 2023-07-19 18:04:09 -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/ntzsmallvals.leo

Build Guide

To compile and run this Leo program, run:

leo run <function-name> <inputs>

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.