 
 		shurA(mx);
 
-#pragma omp parallel for
+//#pragma omp parallel for
 		for (uint index = 0; index < number_of_contacts; index++) {
 			real3 temp = R3(0);
 			int2 id_ = ids[index];

	theta_k = theta_k1;

	//this is res1
	real g_proj_norm=fmax(real(0.0),-min_val);
	//CompRes(mg_tmp2,number_of_contacts);
	//cout<<"MINVAL "<<g_proj_norm<<" "<<fmax(real(0.0),-min_val)<<endl;
	//this is res4
	//SEAXPY(-gdiff, mg_tmp2, x, mb_tmp); //mb_tmp=x+mg_tmp2*(-gdiff)

#endif

		min_val = FLT_MAX;
		ShurProduct(my,mg_tmp1);
		mg = mg_tmp1-b;
		SEAXPY(-t_k, mg, my, mx); // mx = my + mg*(t_k);
//
		Project(mx);
		ShurProduct(mx,mg_tmp);
		mg_tmp2 = mg_tmp-b;
//		////mg_tmp = 0.5*mg_tmp-b;
//
		obj1 = Dot(mx, 0.5*mg_tmp-b);
		obj2 = Dot(my, 0.5*mg_tmp1-b);
		ms = mx - my;
		real obj3 = obj2 + Dot(mg, ms) + 0.5 * L_k * pow(Norm(ms), 2.0);

//		real obj3 = PART_A(x.size(), gpu_data->device_active_data, temp_bids,
//				gpu_data->device_fric_data,
//				gpu_data->device_QXYZ_data,gpu_data->device_QUVW_data,
//				mx,my,ms,
//				b,mg,mg_tmp2,
//				gpu_data->device_JXYZA_data, gpu_data->device_JXYZB_data,
//				gpu_data->device_JUVWA_data, gpu_data->device_JUVWB_data,
//				-t_k,L_k,
//				obj1,obj2,min_val,
//				obj1_tmp,obj2_tmp,obj3_tmp1,obj3_tmp2
//
//		);

		//
		//
