 		cudacall(cudaFree(csrRowIndex));
 		cudacall(cudaFree(csrColIndex));
 		cudacall(cudaFree(ythetaT));
-		
+		///*
 		#ifdef DEBUG
 		gettimeofday(&start_tv, NULL);
 		printf("---------------------------------- ALS iteration %d, update theta ----------------------------------\n", iter);

			#endif
			
			//updateXWithCG(1, batch_offset, ythetaT, tt, XT, handle, m, n, f, nnz);
			updateXWithCGHost(tt, &XT[batch_offset], &ythetaT[batch_offset], batch_size, f, 6);
			//updateX(batch_size, batch_offset, ythetaT, tt, XT, handle, m, n, f, nnz, devPtrTTHost, devPtrYthetaTHost);
			#ifdef DEBUG
			printf("\tupdateX run seconds: %f \n", seconds() - t0);

		final_rmse = sqrt((*rmse_test)/nnz_test);
		printf("--------- Test RMSE in iter %d: %f\n", iter, final_rmse);
		cudacall(cudaFree(errors_test));
//*/		
	}
	//copy feature vectors back to host
	cudacall(cudaMemcpy(thetaTHost, thetaT, (size_t ) (n * f * sizeof(thetaT[0])), cudaMemcpyDeviceToHost));
