 #include <algorithm>
 #include <fstream>
 #include <cmath>
+#include <map>
+#include <stdio.h>
 #include <stdlib.h>
 
 #include <cusp/io/matrix_market.h>

		outputItem( solveSuccess);
		// Reason why cannot solve (for unsuccessful solving only)
		outputItem ("Out of memory (in solve stage)");

		return 1;
	} catch (const spike::system_error& se) {

			outputItem( stats.timeSolve);
			// Total amount of time
			outputItem( stats.timeSetup + stats.timeSolve);
			// Output the pardiso time
			std::map<std::string, double>::iterator map_it = pardiso_time_table.end();
			if ((map_it = pardiso_time_table.find(fileMat)) != pardiso_time_table.end())  {
				outputItem(map_it->second);
				outputItem((stats.timeSetup + stats.timeSolve) / map_it->second);
			}
			else {
				outputItem("");
				outputItem("");
			}
		} else {
			outputItem ( "Not converged");

			// Make up for the other columns
			for (int i=0; i < outputItem.m_additional_item_count; i++)
				outputItem("");

			// Output the pardiso time
			std::map<std::string, double>::iterator map_it = pardiso_time_table.end();
			if ((map_it = pardiso_time_table.find(fileMat)) != pardiso_time_table.end())  {
				outputItem(map_it->second);
				outputItem("");
			}
			else {
				outputItem("");
				outputItem("");
			}
		}

		cout << "</tr>" << endl;
	}
