diff options
Diffstat (limited to 'aberth/util.cpp')
-rw-r--r-- | aberth/util.cpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/aberth/util.cpp b/aberth/util.cpp new file mode 100644 index 0000000..b8f6edc --- /dev/null +++ b/aberth/util.cpp @@ -0,0 +1,27 @@ +#include "util.h" + + +ostream& operator<<(ostream &os, const Poly &p) { + static const char *supers[10] = { + "⁰", "¹", "²", "³", "⁴", "⁵", "⁶", "⁷", "⁸", "⁹" + }; + + os << p[0]; + + for (int i = 1; i < (int)p.size(); i++) { + if (p[i] < 0) os << " - " << -p[i]; + else if (p[i] > 0) os << " + " << p[i]; + else continue; + + os << "x"; + + if (i == 1) continue; + + ostringstream ss; + ss << i; + string s = ss.str(); + for (char c : s) os << supers[c - '0']; + } + + return os; +} |