| 1234567891011121314151617181920212223242526272829 |
- contract bits_decomposition
- param x
- {% for i in range(256) %}
- private b_{{i}}
- {% endfor %}
- # x is unpacked into little endian order
- unpack_bits x b_0 b_255
- {% for i in range(256) %}
- # (1 - b) * b == 0
- lc0_add_one
- lc0_sub b_{{i}}
- lc1_add b_{{i}}
- enforce
- {% endfor %}
- {% for i in range(256) %}
- lc0_add b_{{i}}
- lc_coeff_double
- {% endfor %}
- lc_coeff_reset
- lc0_sub x
- lc1_add_one
- enforce
- end
|