diff --git a/Homework2/src/dumper_series.hh b/Homework2/src/dumper_series.hh index 66539a1..53e0e44 100644 --- a/Homework2/src/dumper_series.hh +++ b/Homework2/src/dumper_series.hh @@ -1,32 +1,34 @@ #ifndef DUMPER_SERIES_HH #define DUMPER_SERIES_HH #include "series.hh" #include +#include + class DumperSeries { public: DumperSeries(Series& series): series(series) { precision=6; } virtual void dump(std::ostream& os) = 0; virtual void setPrecision(unsigned int precision){this->precision=precision;}; unsigned int precision; protected: Series& series; }; inline std::ostream & operator << (std::ostream & stream, DumperSeries & _this) { _this.dump(stream); return stream; } #endif \ No newline at end of file diff --git a/Homework2/src/print_series.cc b/Homework2/src/print_series.cc index 72a1c57..dc65fb2 100644 --- a/Homework2/src/print_series.cc +++ b/Homework2/src/print_series.cc @@ -1,26 +1,29 @@ #include #include #include "print_series.hh" void PrintSeries::dump(std::ostream & os){ double computed = 0.0; double analytical = 0.0; double error = 0.0; for (unsigned long i = 0.0; i <= maxiter; ++i) { if (((i+1) % frequency == 0) && std::isnan(series.getAnalyticPrediction())) { computed = series.compute(i); os << i << "\t" << computed << std::endl; } else if ((i+1) % frequency == 0) { computed = series.compute(i); analytical = series.getAnalyticPrediction(); error = 100.0*(analytical - computed)/analytical; - os << i << "\t" << computed << "\t" << analytical << "\t" << error << "%" <setPrecision(precision); } void dump(std::ostream & os = std::cout); }; #endif \ No newline at end of file