got rid of error message cruft, improved importing
[charm.git] / src / langs / charj / tests / fib.cj
1 package tests;
2 import charj.lang.Chare;
3
4 public class Fib extends Chare {
5     Fib parent_;
6         boolean root_;
7         int n_;
8         int partialResult_;
9         int pendingChildren_;
10         
11         entry Fib(boolean root, int n, Fib parent) {
12           CkPrintf("in fib::fib. n=%d\n", n);
13           n_ = n;
14           root_ = root;
15           parent_ = parent;
16
17           if (n <= 2) {
18               partialResult_ = 1;
19               passUp();
20           }
21           partialResult_ = 0;
22           pendingChildren_ = 2;
23           Fib child1 = new Fib(false, n-1, thisHandle); // replace with "@this"?
24           Fib child2 = new Fib(false, n-2, thisHandle); // can we get away with just "this"?
25         }
26         
27         entry void passUp(int subTreeValue) {
28             partialResult += subTreeValue;
29             if (pendingChildren_) return;
30             if (root_) {
31                 CkPrintf("Fib(%d) = %d", n_, partialResult_);
32                 CkExit();
33             }
34             parent.passUp(partialResult_); // replace with passUp(partialResult_)@parent;
35         }
36 }