 		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));

			#ifdef DEBUG
			printf("*******invoke updateTheta with batch_size: %d, batch_offset: %d.\n", batch_size, batch_offset);
			#endif
			updateTheta(batch_size, batch_offset, xx, yTXT, thetaT, handle, m,  n,  f,  nnz,
					devPtrXXHost, devPtrYTXTHost);
			#ifdef DEBUG
			printf("\tupdateTheta run seconds: %f \n", seconds() - t0);
			#endif

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