 		("test_filename_out", boost::program_options::value< std::string >(), "name of output file with filtered signal data (vector in PETSc format) [string]")
 		("test_filename_solution", boost::program_options::value< std::string >(), "name of input file with original signal data without noise (vector in PETSc format) [string]")
 		("test_filename_gamma0", boost::program_options::value< std::string >(), "name of input file with initial gamma approximation (vector in PETSc format) [string]")
+		("test_save_all", boost::program_options::value<bool>(), "save results for all epssqr, not only for the best one [bool]")
 		("test_epssqr", boost::program_options::value<std::vector<double> >()->multitoken(), "penalty parameters [double]")
 		("test_annealing", boost::program_options::value<int>(), "number of annealing steps [int]")
 		("test_cutgamma", boost::program_options::value<bool>(), "cut gamma to set {0;1} [bool]")

	coutMaster << "--- FINAL SOLVER INFO ---" << std::endl;
	mysolver.printstatus(coutMaster);

	/* print absolute errors */
	coutMaster << "--- ABSOLUTE ERRORS: ---" << std::endl;
	coutMaster << "epssqr: " << print_vector(epssqr_list) << std::endl;
	coutMaster << "abserrs: " << print_array(abserrs, epssqr_list.size()) << std::endl;

	/* say bye */	
	coutMaster << "- end program" << std::endl;


	/* set solution if obtained from console */
	if(given_Theta)	mysolver.set_solution_theta(Theta_solution);
	
	/* write header of short output */
	if(shortinfo_write_or_not){
		/* add provided strings from console parameters */
		oss_short_output_header << shortinfo_header;

		/* add info about the problem */
		oss_short_output_header << shortinfo_header << "K,epssqr,abserr,";

		/* append Theta solution */
		for(int k=0; k<K; k++) oss_short_output_header << "Theta" << k << ",";

		/* print info from solver */
		mysolver.printshort(oss_short_output_header, oss_short_output_values);

		/* append end of line */
		oss_short_output_header << "\n";

		/* write to shortinfo file */
		shortinfo.write(oss_short_output_header.str());
			
		/* clear streams for next writing */
		oss_short_output_header.str("");
	}	
	
/* 6.) solve the problem with epssqrs and remember best solution */
	double epssqr, epssqr_best;
	double abserr; /* actual error */
	double abserr_best = std::numeric_limits<double>::max(); /* the error of best solution */

	Vec gammavector_best_Vec; /* here we store solution with best abserr value */
