void print(const vector_type& vec, const std::string& str)
{
   std::ofstream of(str);
   of << std::showpos;
   using limit_type = std::numeric_limits<typename vector_type::value_type>;
   of << std::scientific;
   of << std::setprecision(limit_type::max_digits10);
   for(int i = 0 ; i < vec.extent<0>(); ++i)
   {
      of << vec.at(i) << std::endl;
   }
}