@@ -761,13 +761,15 @@ void cupdlp_compute_interaction_and_movement(CUPDLPwork *w,
761761 CUPDLPvec * yUpdate = iterates -> y [(iter + 1 ) % 2 ];
762762 CUPDLPvec * atyUpdate = iterates -> aty [(iter + 1 ) % 2 ];
763763
764- cupdlp_float dX2 = 0.0 ;
765- cupdlp_float dY2 = 0.0 ;
766- cupdlp_float dInter = 0.0 ;
767-
768- cupdlp_movement_interaction_cuda (& dX2 , & dY2 , & dInter , w -> buffer2 ,
764+ #if !(CUPDLP_CPU ) && USE_KERNELS
765+ cupdlp_movement_interaction_cuda (& dX , & dY , dInteraction , w -> buffer2 ,
769766 xUpdate -> data , x -> data , yUpdate -> data , y -> data , atyUpdate -> data , aty -> data , nRows , nCols );
770-
771- * dMovement = dX2 * 0.5 * beta + dY2 / (2.0 * beta );
772- * dInteraction = dInter ;
767+ #else
768+ cupdlp_diffTwoNormSquared (w , x -> data , xUpdate -> data , nCols , & dX );
769+ cupdlp_diffTwoNormSquared (w , y -> data , yUpdate -> data , nRows , & dY );
770+ // Δx' (AΔy)
771+ cupdlp_diffDotDiff (w , x -> data , xUpdate -> data , aty -> data , atyUpdate -> data ,
772+ nCols , dInteraction );
773+ #endif
774+ * dMovement = dX * 0.5 * beta + dY / (2.0 * beta );
773775}
0 commit comments