discard """ output: '''3.141792613595791 3.141792613595791''' """ import strutils, math, threadpool proc term(k: float): float = 4 * math.pow(-1, k) / (2*k + 1) proc piU(n: int): float = var ch = newSeq[FlowVar[float]](n+1) for k in 0..ch.high: ch[k] = spawn term(float(k)) for k in 0..ch.high: result += ^ch[k] proc piS(n: int): float = var ch = newSeq[float](n+1) parallel: for k in 0..ch.high: ch[k] = spawn term(float(k)) for k in 0..ch.high: result += ch[k] echo formatFloat(piU(5000)) echo formatFloat(piS(5000))