@@ -85,53 +85,55 @@ impl ScalarMultiplyChip {
85
85
) -> Result < GrumpkinPoint < AssignedCell > , Error > {
86
86
let ScalarMultiplyChipInput { scalar_bits, input } = inputs;
87
87
88
- let mut input_value: GrumpkinPoint < Value > = input. clone ( ) . into ( ) ;
89
- let mut result_value: GrumpkinPoint < Value > = GrumpkinPoint :: < Fr > :: zero ( ) . into ( ) ;
90
- let mut last_result = None ;
91
-
92
- for ( i, bit) in scalar_bits. iter ( ) . enumerate ( ) {
93
- let input = input_value. embed ( synthesizer, "input" ) ?;
94
- let result = result_value. embed ( synthesizer, "result" ) ?;
95
- if i. eq ( & 0 ) {
96
- self . constrain_point_at_infinity ( synthesizer, result. clone ( ) ) ?;
97
- self . constrain_points_equality ( synthesizer, input. clone ( ) , inputs. input . clone ( ) ) ?;
98
- }
99
-
100
- let mut is_one = false ;
101
- bit. value ( ) . map ( |f| {
102
- is_one = Fr :: ONE == * f;
103
- } ) ;
104
-
105
- let mut next_result_value = result_value;
106
- if is_one {
107
- next_result_value = curve_arithmetic:: points_add ( result_value, input_value) ;
108
- }
109
-
110
- let next_result = next_result_value. embed ( synthesizer, "next_result" ) ?;
111
-
112
- let next_input_value = curve_arithmetic:: point_double ( input_value) ;
113
- let next_input = next_input_value. embed ( synthesizer, "next_input" ) ?;
114
-
115
- self . multiply_gate . apply_in_new_region (
116
- synthesizer,
117
- ScalarMultiplyGateInput {
118
- bit : bit. clone ( ) ,
119
- input,
120
- result,
121
- next_input,
122
- next_result : next_result. clone ( ) ,
123
- } ,
124
- ) ?;
125
-
126
- input_value = next_input_value;
127
- result_value = next_result_value;
128
-
129
- if i. eq ( & ( scalar_bits. len ( ) - 1 ) ) {
130
- last_result = Some ( next_result) ;
131
- }
132
- }
133
-
134
- Ok ( last_result. expect ( "last result is returned" ) )
88
+ // let mut input_value: GrumpkinPoint<Value> = input.clone().into();
89
+ // let mut result_value: GrumpkinPoint<Value> = GrumpkinPoint::<Fr>::zero().into();
90
+ // let mut last_result = None;
91
+
92
+ // for (i, bit) in scalar_bits.iter().enumerate() {
93
+ // let input = input_value.embed(synthesizer, "input")?;
94
+ // let result = result_value.embed(synthesizer, "result")?;
95
+ // if i.eq(&0) {
96
+ // self.constrain_point_at_infinity(synthesizer, result.clone())?;
97
+ // self.constrain_points_equality(synthesizer, input.clone(), inputs.input.clone())?;
98
+ // }
99
+
100
+ // let mut is_one = false;
101
+ // bit.value().map(|f| {
102
+ // is_one = Fr::ONE == *f;
103
+ // });
104
+
105
+ // let mut next_result_value = result_value;
106
+ // if is_one {
107
+ // next_result_value = curve_arithmetic::points_add(result_value, input_value);
108
+ // }
109
+
110
+ // let next_result = next_result_value.embed(synthesizer, "next_result")?;
111
+
112
+ // let next_input_value = curve_arithmetic::point_double(input_value);
113
+ // let next_input = next_input_value.embed(synthesizer, "next_input")?;
114
+
115
+ // self.multiply_gate.apply_in_new_region(
116
+ // synthesizer,
117
+ // ScalarMultiplyGateInput {
118
+ // bit: bit.clone(),
119
+ // input,
120
+ // result,
121
+ // next_input,
122
+ // next_result: next_result.clone(),
123
+ // },
124
+ // )?;
125
+
126
+ // input_value = next_input_value;
127
+ // result_value = next_result_value;
128
+
129
+ // if i.eq(&(scalar_bits.len() - 1)) {
130
+ // last_result = Some(next_result);
131
+ // }
132
+ // }
133
+
134
+ // Ok(last_result.expect("last result is returned"))
135
+
136
+ todo ! ( )
135
137
}
136
138
}
137
139
0 commit comments