aboutsummaryrefslogtreecommitdiff
path: root/doc/play/pi.go
diff options
context:
space:
mode:
Diffstat (limited to 'doc/play/pi.go')
-rw-r--r--doc/play/pi.go34
1 files changed, 0 insertions, 34 deletions
diff --git a/doc/play/pi.go b/doc/play/pi.go
deleted file mode 100644
index f61884e888..0000000000
--- a/doc/play/pi.go
+++ /dev/null
@@ -1,34 +0,0 @@
-// Concurrent computation of pi.
-// See https://goo.gl/la6Kli.
-//
-// This demonstrates Go's ability to handle
-// large numbers of concurrent processes.
-// It is an unreasonable way to calculate pi.
-package main
-
-import (
- "fmt"
- "math"
-)
-
-func main() {
- fmt.Println(pi(5000))
-}
-
-// pi launches n goroutines to compute an
-// approximation of pi.
-func pi(n int) float64 {
- ch := make(chan float64)
- for k := 0; k <= n; k++ {
- go term(ch, float64(k))
- }
- f := 0.0
- for k := 0; k <= n; k++ {
- f += <-ch
- }
- return f
-}
-
-func term(ch chan float64, k float64) {
- ch <- 4 * math.Pow(-1, k) / (2*k + 1)
-}