mirror of
https://github.com/logos-storage/plonky2.git
synced 2026-04-18 17:43:14 +00:00
is_zero function
This commit is contained in:
parent
515373653d
commit
d84b9ec8cb
@ -7,13 +7,18 @@ use crate::target::Target;
|
|||||||
impl<F: Extendable<D>, const D: usize> CircuitBuilder<F, D> {
|
impl<F: Extendable<D>, const D: usize> CircuitBuilder<F, D> {
|
||||||
/// Evaluates to 1 if `x` equals zero, 0 otherwise.
|
/// Evaluates to 1 if `x` equals zero, 0 otherwise.
|
||||||
pub fn is_zero(&mut self, x: Target) -> Target {
|
pub fn is_zero(&mut self, x: Target) -> Target {
|
||||||
let m = todo!();
|
let m = self.add_virtual_target();
|
||||||
let y = todo!();
|
let y = self.mul(x, m);
|
||||||
|
|
||||||
|
let one = self.one();
|
||||||
|
let diff = self.sub(one, y);
|
||||||
|
let prod = self.mul(diff, x);
|
||||||
|
self.assert_zero(prod);
|
||||||
|
|
||||||
self.add_generator(EqualsZeroGenerator {
|
self.add_generator(EqualsZeroGenerator {
|
||||||
to_test: x,
|
to_test: x,
|
||||||
dummy: m,
|
dummy: m,
|
||||||
is_zero: y
|
is_zero: y,
|
||||||
});
|
});
|
||||||
|
|
||||||
y
|
y
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user