@@ -24,6 +24,7 @@ use stwo_constraint_framework::preprocessed_columns::PreProcessedColumnId;
2424
2525// TODO(ilya): Update this to the correct values.
2626pub const INTERACTION_POW_BITS : u32 = 20 ;
27+ pub const U_ADDRESS : usize = 2 ;
2728
2829pub struct CircuitStatement < Value : IValue > {
2930 pub components : IndexMap < & ' static str , Box < dyn CircuitEval < Value > > > ,
@@ -80,14 +81,20 @@ impl<Value: IValue> Statement<Value> for CircuitStatement<Value> {
8081 interaction_elements : [ Var ; 2 ] ,
8182 ) -> Var {
8283 let mut sum = context. zero ( ) ;
84+ let zero = context. zero ( ) ;
85+ let one = context. one ( ) ;
8386
8487 // Output gates public logup sum contribution.
8588 let gate_relation_id = context. constant ( GATE_RELATION_ID . into ( ) ) ;
8689 for ( output_address, output_value) in zip_eq ( & self . output_addresses , & self . output_values ) {
8790 let [ output_value_0, output_value_1, output_value_2, output_value_3] =
88- Simd :: unpack ( context, & Simd :: from_packed ( vec ! [ * output_value] , 4 ) )
89- . try_into ( )
90- . unwrap ( ) ;
91+ if output_address. get ( ) . idx == U_ADDRESS {
92+ [ zero, zero, one, zero]
93+ } else {
94+ Simd :: unpack ( context, & Simd :: from_packed ( vec ! [ * output_value] , 4 ) )
95+ . try_into ( )
96+ . unwrap ( )
97+ } ;
9198 let term = logup_use_term (
9299 context,
93100 & [
0 commit comments