import std.math; float M = 2.0f ^^ (float.max_exp-1); double N = 2.0 ^^ (float.max_exp-1); auto s = Summator!float(0); //float summator s += M; s += M; assert(float.infinity == s.sum()); auto e = cast(Summator!double) s; assert(isFinite(e.sum())); assert(N+N == e.sum());
Returns Summator with extended internal partial sums.