summaryrefslogtreecommitdiff
path: root/usr/rsc/gmp/main.go
diff options
context:
space:
mode:
authorRuss Cox <rsc@golang.org>2009-08-24 21:16:15 -0700
committerRuss Cox <rsc@golang.org>2009-08-24 21:16:15 -0700
commitb688f19f674f8e160ce868bfead09a5b937101df (patch)
tree2ff53a077a959f063554685484c44a4ecec1e2d1 /usr/rsc/gmp/main.go
parent5d7c0b6214f853469006f19582fa7b26fa47b896 (diff)
downloadgolang-b688f19f674f8e160ce868bfead09a5b937101df.tar.gz
cgocall bug fix.
better FFI demo: compute fibonacci numbers using FFI'ed libgmp. R=r DELTA=281 (255 added, 19 deleted, 7 changed) OCL=33815 CL=33820
Diffstat (limited to 'usr/rsc/gmp/main.go')
-rw-r--r--usr/rsc/gmp/main.go28
1 files changed, 28 insertions, 0 deletions
diff --git a/usr/rsc/gmp/main.go b/usr/rsc/gmp/main.go
new file mode 100644
index 000000000..0b25d2544
--- /dev/null
+++ b/usr/rsc/gmp/main.go
@@ -0,0 +1,28 @@
+// Copyright 2009 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+
+package main
+
+import big "gmp"
+//import "big"
+import "fmt"
+
+func Fib(n int) *big.Int {
+ a := big.NewInt(0);
+ b := big.NewInt(1);
+
+ for i := 0; i < n; i++ {
+ a, b = b, a;
+ b.Add(a, b);
+ }
+
+ return b;
+}
+
+func main() {
+ for i := 0; i <= 100; i++ {
+ fmt.Println(5*i, Fib(5*i));
+ }
+}