12345678910111213141516171819202122232425262728 |
- discard """
- matrix: "--mm:refc"
- 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))
|