| 
														
															@@ -67,6 +67,7 @@ void Duoram<T>::Shape::explicitonly(bool enable) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 tio.iostream_peer() >> PBD; 
														 | 
														
														 | 
														
															                 tio.iostream_peer() >> PBD; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             } 
														 | 
														
														 | 
														
															             } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         } else { 
														 | 
														
														 | 
														
															         } else { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            yield(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             for (size_t i=0; i<shape_size; ++i) { 
														 | 
														
														 | 
														
															             for (size_t i=0; i<shape_size; ++i) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 auto [BL0, BL1] = get_server(i); 
														 | 
														
														 | 
														
															                 auto [BL0, BL1] = get_server(i); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 tio.iostream_p0() >> BL0; 
														 | 
														
														 | 
														
															                 tio.iostream_p0() >> BL0; 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -317,6 +318,8 @@ Duoram<T>::Shape::MemRefAS::operator T() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             res += (DB + PBD) * V0.share() - BL * (V1-V0).share(); 
														 | 
														
														 | 
														
															             res += (DB + PBD) * V0.share() - BL * (V1-V0).share(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         } 
														 | 
														
														 | 
														
															         } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        shape.yield(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         // Receive the cancellation term from the server 
														 | 
														
														 | 
														
															         // Receive the cancellation term from the server 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         T gamma; 
														 | 
														
														 | 
														
															         T gamma; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         shape.tio.iostream_server() >> gamma; 
														 | 
														
														 | 
														
															         shape.tio.iostream_server() >> gamma; 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -327,6 +330,8 @@ Duoram<T>::Shape::MemRefAS::operator T() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         RDPFPair dp = shape.tio.rdpfpair(shape.yield, shape.addr_size); 
														 | 
														
														 | 
														
															         RDPFPair dp = shape.tio.rdpfpair(shape.yield, shape.addr_size); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         RegAS p0indoffset, p1indoffset; 
														 | 
														
														 | 
														
															         RegAS p0indoffset, p1indoffset; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        shape.yield(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         // Receive the index offset from the computational players and 
														 | 
														
														 | 
														
															         // Receive the index offset from the computational players and 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         // combine them 
														 | 
														
														 | 
														
															         // combine them 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         shape.tio.recv_p0(&p0indoffset, BITBYTES(shape.addr_size)); 
														 | 
														
														 | 
														
															         shape.tio.recv_p0(&p0indoffset, BITBYTES(shape.addr_size)); 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -543,6 +548,8 @@ Duoram<T>::Shape::MemRefXS::operator T() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             res += (DB + PBD) * V0.share() - BL * (V1-V0).share(); 
														 | 
														
														 | 
														
															             res += (DB + PBD) * V0.share() - BL * (V1-V0).share(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         } 
														 | 
														
														 | 
														
															         } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        shape.yield(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         // Receive the cancellation term from the server 
														 | 
														
														 | 
														
															         // Receive the cancellation term from the server 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         T gamma; 
														 | 
														
														 | 
														
															         T gamma; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         shape.tio.iostream_server() >> gamma; 
														 | 
														
														 | 
														
															         shape.tio.iostream_server() >> gamma; 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -553,6 +560,8 @@ Duoram<T>::Shape::MemRefXS::operator T() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         RDPFPair dp = shape.tio.rdpfpair(shape.yield, shape.addr_size); 
														 | 
														
														 | 
														
															         RDPFPair dp = shape.tio.rdpfpair(shape.yield, shape.addr_size); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         RegXS p0indoffset, p1indoffset; 
														 | 
														
														 | 
														
															         RegXS p0indoffset, p1indoffset; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        shape.yield(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         // Receive the index offset from the computational players and 
														 | 
														
														 | 
														
															         // Receive the index offset from the computational players and 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         // combine them 
														 | 
														
														 | 
														
															         // combine them 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         shape.tio.recv_p0(&p0indoffset, BITBYTES(shape.addr_size)); 
														 | 
														
														 | 
														
															         shape.tio.recv_p0(&p0indoffset, BITBYTES(shape.addr_size)); 
														 |