@@ -10,7 +10,7 @@ use differential_dataflow::Collection;
1010use differential_dataflow:: input:: Input ;
1111use differential_dataflow:: operators:: * ;
1212use differential_dataflow:: operators:: arrange:: Arrange ;
13- use differential_dataflow:: trace:: implementations:: { ValSpine , KeySpine } ;
13+ use differential_dataflow:: trace:: implementations:: { ValSpine , KeySpine , ValBatcher , KeyBatcher } ;
1414use differential_dataflow:: difference:: Present ;
1515
1616type Node = u32 ;
@@ -47,7 +47,7 @@ fn unoptimized() {
4747 . flat_map ( |( a, b) | vec ! [ a, b] )
4848 . concat ( & dereference. flat_map ( |( a, b) | vec ! [ a, b] ) ) ;
4949
50- let dereference = dereference. arrange :: < ValSpine < _ , _ , _ , _ > > ( ) ;
50+ let dereference = dereference. arrange :: < ValBatcher < _ , _ , _ , _ > , ValSpine < _ , _ , _ , _ > > ( ) ;
5151
5252 let ( value_flow, memory_alias, value_alias) =
5353 scope
@@ -60,14 +60,14 @@ fn unoptimized() {
6060 let value_flow = SemigroupVariable :: new ( scope, Product :: new ( Default :: default ( ) , 1 ) ) ;
6161 let memory_alias = SemigroupVariable :: new ( scope, Product :: new ( Default :: default ( ) , 1 ) ) ;
6262
63- let value_flow_arranged = value_flow. arrange :: < ValSpine < _ , _ , _ , _ > > ( ) ;
64- let memory_alias_arranged = memory_alias. arrange :: < ValSpine < _ , _ , _ , _ > > ( ) ;
63+ let value_flow_arranged = value_flow. arrange :: < ValBatcher < _ , _ , _ , _ > , ValSpine < _ , _ , _ , _ > > ( ) ;
64+ let memory_alias_arranged = memory_alias. arrange :: < ValBatcher < _ , _ , _ , _ > , ValSpine < _ , _ , _ , _ > > ( ) ;
6565
6666 // VA(a,b) <- VF(x,a),VF(x,b)
6767 // VA(a,b) <- VF(x,a),MA(x,y),VF(y,b)
6868 let value_alias_next = value_flow_arranged. join_core ( & value_flow_arranged, |_, & a, & b| Some ( ( a, b) ) ) ;
6969 let value_alias_next = value_flow_arranged. join_core ( & memory_alias_arranged, |_, & a, & b| Some ( ( b, a) ) )
70- . arrange :: < ValSpine < _ , _ , _ , _ > > ( )
70+ . arrange :: < ValBatcher < _ , _ , _ , _ > , ValSpine < _ , _ , _ , _ > > ( )
7171 . join_core ( & value_flow_arranged, |_, & a, & b| Some ( ( a, b) ) )
7272 . concat ( & value_alias_next) ;
7373
@@ -77,16 +77,16 @@ fn unoptimized() {
7777 let value_flow_next =
7878 assignment
7979 . map ( |( a, b) | ( b, a) )
80- . arrange :: < ValSpine < _ , _ , _ , _ > > ( )
80+ . arrange :: < ValBatcher < _ , _ , _ , _ > , ValSpine < _ , _ , _ , _ > > ( )
8181 . join_core ( & memory_alias_arranged, |_, & a, & b| Some ( ( b, a) ) )
8282 . concat ( & assignment. map ( |( a, b) | ( b, a) ) )
83- . arrange :: < ValSpine < _ , _ , _ , _ > > ( )
83+ . arrange :: < ValBatcher < _ , _ , _ , _ > , ValSpine < _ , _ , _ , _ > > ( )
8484 . join_core ( & value_flow_arranged, |_, & a, & b| Some ( ( a, b) ) )
8585 . concat ( & nodes. map ( |n| ( n, n) ) ) ;
8686
8787 let value_flow_next =
8888 value_flow_next
89- . arrange :: < KeySpine < _ , _ , _ > > ( )
89+ . arrange :: < ValBatcher < _ , _ , _ , _ > , KeySpine < _ , _ , _ > > ( )
9090 // .distinct_total_core::<Diff>()
9191 . threshold_semigroup ( |_, _, x| if x. is_none ( ) { Some ( Present ) } else { None } )
9292 ;
@@ -95,12 +95,12 @@ fn unoptimized() {
9595 let memory_alias_next: Collection < _ , _ , Present > =
9696 value_alias_next
9797 . join_core ( & dereference, |_x, & y, & a| Some ( ( y, a) ) )
98- . arrange :: < ValSpine < _ , _ , _ , _ > > ( )
98+ . arrange :: < ValBatcher < _ , _ , _ , _ > , ValSpine < _ , _ , _ , _ > > ( )
9999 . join_core ( & dereference, |_y, & a, & b| Some ( ( a, b) ) ) ;
100100
101101 let memory_alias_next: Collection < _ , _ , Present > =
102102 memory_alias_next
103- . arrange :: < KeySpine < _ , _ , _ > > ( )
103+ . arrange :: < KeyBatcher < _ , _ , _ > , KeySpine < _ , _ , _ > > ( )
104104 // .distinct_total_core::<Diff>()
105105 . threshold_semigroup ( |_, _, x| if x. is_none ( ) { Some ( Present ) } else { None } )
106106 ;
@@ -172,7 +172,7 @@ fn optimized() {
172172 . flat_map ( |( a, b) | vec ! [ a, b] )
173173 . concat ( & dereference. flat_map ( |( a, b) | vec ! [ a, b] ) ) ;
174174
175- let dereference = dereference. arrange :: < ValSpine < _ , _ , _ , _ > > ( ) ;
175+ let dereference = dereference. arrange :: < ValBatcher < _ , _ , _ , _ > , ValSpine < _ , _ , _ , _ > > ( ) ;
176176
177177 let ( value_flow, memory_alias) =
178178 scope
@@ -185,22 +185,22 @@ fn optimized() {
185185 let value_flow = SemigroupVariable :: new ( scope, Product :: new ( Default :: default ( ) , 1 ) ) ;
186186 let memory_alias = SemigroupVariable :: new ( scope, Product :: new ( Default :: default ( ) , 1 ) ) ;
187187
188- let value_flow_arranged = value_flow. arrange :: < ValSpine < _ , _ , _ , _ > > ( ) ;
189- let memory_alias_arranged = memory_alias. arrange :: < ValSpine < _ , _ , _ , _ > > ( ) ;
188+ let value_flow_arranged = value_flow. arrange :: < ValBatcher < _ , _ , _ , _ > , ValSpine < _ , _ , _ , _ > > ( ) ;
189+ let memory_alias_arranged = memory_alias. arrange :: < ValBatcher < _ , _ , _ , _ > , ValSpine < _ , _ , _ , _ > > ( ) ;
190190
191191 // VF(a,a) <-
192192 // VF(a,b) <- A(a,x),VF(x,b)
193193 // VF(a,b) <- A(a,x),MA(x,y),VF(y,b)
194194 let value_flow_next =
195195 assignment
196196 . map ( |( a, b) | ( b, a) )
197- . arrange :: < ValSpine < _ , _ , _ , _ > > ( )
197+ . arrange :: < ValBatcher < _ , _ , _ , _ > , ValSpine < _ , _ , _ , _ > > ( )
198198 . join_core ( & memory_alias_arranged, |_, & a, & b| Some ( ( b, a) ) )
199199 . concat ( & assignment. map ( |( a, b) | ( b, a) ) )
200- . arrange :: < ValSpine < _ , _ , _ , _ > > ( )
200+ . arrange :: < ValBatcher < _ , _ , _ , _ > , ValSpine < _ , _ , _ , _ > > ( )
201201 . join_core ( & value_flow_arranged, |_, & a, & b| Some ( ( a, b) ) )
202202 . concat ( & nodes. map ( |n| ( n, n) ) )
203- . arrange :: < KeySpine < _ , _ , _ > > ( )
203+ . arrange :: < KeyBatcher < _ , _ , _ > , KeySpine < _ , _ , _ > > ( )
204204 // .distinct_total_core::<Diff>()
205205 . threshold_semigroup ( |_, _, x| if x. is_none ( ) { Some ( Present ) } else { None } )
206206 ;
@@ -209,9 +209,9 @@ fn optimized() {
209209 let value_flow_deref =
210210 value_flow
211211 . map ( |( a, b) | ( b, a) )
212- . arrange :: < ValSpine < _ , _ , _ , _ > > ( )
212+ . arrange :: < ValBatcher < _ , _ , _ , _ > , ValSpine < _ , _ , _ , _ > > ( )
213213 . join_core ( & dereference, |_x, & a, & b| Some ( ( a, b) ) )
214- . arrange :: < ValSpine < _ , _ , _ , _ > > ( ) ;
214+ . arrange :: < ValBatcher < _ , _ , _ , _ > , ValSpine < _ , _ , _ , _ > > ( ) ;
215215
216216 // MA(a,b) <- VFD(x,a),VFD(y,b)
217217 // MA(a,b) <- VFD(x,a),MA(x,y),VFD(y,b)
@@ -222,10 +222,10 @@ fn optimized() {
222222 let memory_alias_next =
223223 memory_alias_arranged
224224 . join_core ( & value_flow_deref, |_x, & y, & a| Some ( ( y, a) ) )
225- . arrange :: < ValSpine < _ , _ , _ , _ > > ( )
225+ . arrange :: < ValBatcher < _ , _ , _ , _ > , ValSpine < _ , _ , _ , _ > > ( )
226226 . join_core ( & value_flow_deref, |_y, & a, & b| Some ( ( a, b) ) )
227227 . concat ( & memory_alias_next)
228- . arrange :: < KeySpine < _ , _ , _ > > ( )
228+ . arrange :: < KeyBatcher < _ , _ , _ > , KeySpine < _ , _ , _ > > ( )
229229 // .distinct_total_core::<Diff>()
230230 . threshold_semigroup ( |_, _, x| if x. is_none ( ) { Some ( Present ) } else { None } )
231231 ;
0 commit comments