 #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 setup stage)");

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

class OutputItem
{
public:
	OutputItem(std::ostream &o): m_o(o), m_additional_item_count(12) {}

	int           m_additional_item_count;

	template <typename T>
	void operator() (T item) {
