#ifndef STAR_H_ #define STAR_H_ // star(x) computes the infinite sum x^0 + x^1 + x^2 + ... template inline T star(const T& x) { if (!x) return T(); if (x > T(1)) return std::numeric_limits::infinity(); if (x < -T(1)) return -std::numeric_limits::infinity(); return T(1) / (T(1) - x); } inline bool star(bool x) { return x; } #endif