Fibonacci.java 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376
  1. @x10.runtime.impl.java.X10Generated
  2. public class Fibonacci extends x10.core.Ref implements x10.serialization.X10JavaSerializable
  3. {
  4. public static final x10.rtt.RuntimeType<Fibonacci> $RTT =
  5. x10.rtt.NamedType.<Fibonacci> make("Fibonacci",
  6. Fibonacci.class);
  7. public x10.rtt.RuntimeType<?> $getRTT() { return $RTT; }
  8. public x10.rtt.Type<?> $getParam(int i) { return null; }
  9. public static x10.serialization.X10JavaSerializable $_deserialize_body(Fibonacci $_obj, x10.serialization.X10JavaDeserializer $deserializer) throws java.io.IOException {
  10. if (x10.runtime.impl.java.Runtime.TRACE_SER) { x10.runtime.impl.java.Runtime.printTraceMessage("X10JavaSerializable: $_deserialize_body() of " + Fibonacci.class + " calling"); }
  11. return $_obj;
  12. }
  13. public static x10.serialization.X10JavaSerializable $_deserializer(x10.serialization.X10JavaDeserializer $deserializer) throws java.io.IOException {
  14. Fibonacci $_obj = new Fibonacci((java.lang.System[]) null);
  15. $deserializer.record_reference($_obj);
  16. return $_deserialize_body($_obj, $deserializer);
  17. }
  18. public void $_serialize(x10.serialization.X10JavaSerializer $serializer) throws java.io.IOException {
  19. }
  20. // constructor just for allocation
  21. public Fibonacci(final java.lang.System[] $dummy) {
  22. }
  23. //#line 3 "/home/moose/Downloads/LaTeX-examples/documents/Programmierparadigmen/scripts/x10/Fibonacci.x10"
  24. public static long fib$O(final long n) {
  25. //#line 4 "/home/moose/Downloads/LaTeX-examples/documents/Programmierparadigmen/scripts/x10/Fibonacci.x10"
  26. final boolean t$121 = ((n) < (((long)(2L))));
  27. //#line 4 "/home/moose/Downloads/LaTeX-examples/documents/Programmierparadigmen/scripts/x10/Fibonacci.x10"
  28. if (t$121) {
  29. //#line 5 "/home/moose/Downloads/LaTeX-examples/documents/Programmierparadigmen/scripts/x10/Fibonacci.x10"
  30. return n;
  31. }
  32. //#line 8 "/home/moose/Downloads/LaTeX-examples/documents/Programmierparadigmen/scripts/x10/Fibonacci.x10"
  33. final long f1;
  34. //#line 9 "/home/moose/Downloads/LaTeX-examples/documents/Programmierparadigmen/scripts/x10/Fibonacci.x10"
  35. final long f2;
  36. {
  37. //#line 10 "/home/moose/Downloads/LaTeX-examples/documents/Programmierparadigmen/scripts/x10/Fibonacci.x10"
  38. x10.lang.Runtime.ensureNotInAtomic();
  39. //#line 10 "/home/moose/Downloads/LaTeX-examples/documents/Programmierparadigmen/scripts/x10/Fibonacci.x10"
  40. final x10.lang.FinishState x10$__var0 = x10.lang.Runtime.startFinish();
  41. {
  42. //#line 10 "/home/moose/Downloads/LaTeX-examples/documents/Programmierparadigmen/scripts/x10/Fibonacci.x10"
  43. final long[] $f1$158 = new long[1];
  44. //#line 10 "/home/moose/Downloads/LaTeX-examples/documents/Programmierparadigmen/scripts/x10/Fibonacci.x10"
  45. final long[] $f2$159 = new long[1];
  46. //#line 10 "/home/moose/Downloads/LaTeX-examples/documents/Programmierparadigmen/scripts/x10/Fibonacci.x10"
  47. try {{
  48. {
  49. //#line 11 "/home/moose/Downloads/LaTeX-examples/documents/Programmierparadigmen/scripts/x10/Fibonacci.x10"
  50. x10.lang.Runtime.runAsync(((x10.core.fun.VoidFun_0_0)(new Fibonacci.$Closure$0(n, $f1$158))));
  51. //#line 12 "/home/moose/Downloads/LaTeX-examples/documents/Programmierparadigmen/scripts/x10/Fibonacci.x10"
  52. x10.lang.Runtime.runAsync(((x10.core.fun.VoidFun_0_0)(new Fibonacci.$Closure$1(n, $f2$159))));
  53. }
  54. }}catch (java.lang.Throwable __lowerer__var__0__) {
  55. //#line 10 "/home/moose/Downloads/LaTeX-examples/documents/Programmierparadigmen/scripts/x10/Fibonacci.x10"
  56. x10.lang.Runtime.pushException(((java.lang.Throwable)(__lowerer__var__0__)));
  57. //#line 10 "/home/moose/Downloads/LaTeX-examples/documents/Programmierparadigmen/scripts/x10/Fibonacci.x10"
  58. throw new java.lang.RuntimeException();
  59. }finally {{
  60. //#line 10 "/home/moose/Downloads/LaTeX-examples/documents/Programmierparadigmen/scripts/x10/Fibonacci.x10"
  61. x10.lang.Runtime.stopFinish(((x10.lang.FinishState)(x10$__var0)));
  62. }}
  63. //#line 10 "/home/moose/Downloads/LaTeX-examples/documents/Programmierparadigmen/scripts/x10/Fibonacci.x10"
  64. f1 = ((long)$f1$158[(int)0]);
  65. //#line 10 "/home/moose/Downloads/LaTeX-examples/documents/Programmierparadigmen/scripts/x10/Fibonacci.x10"
  66. f2 = ((long)$f2$159[(int)0]);
  67. }
  68. }
  69. //#line 14 "/home/moose/Downloads/LaTeX-examples/documents/Programmierparadigmen/scripts/x10/Fibonacci.x10"
  70. final long t$126 = ((f1) + (((long)(f2))));
  71. //#line 14 "/home/moose/Downloads/LaTeX-examples/documents/Programmierparadigmen/scripts/x10/Fibonacci.x10"
  72. return t$126;
  73. }
  74. //#line 17 "/home/moose/Downloads/LaTeX-examples/documents/Programmierparadigmen/scripts/x10/Fibonacci.x10"
  75. public static class $Main extends x10.runtime.impl.java.Runtime
  76. {
  77. // java main method
  78. public static void main(java.lang.String[] args) {
  79. // start native runtime
  80. new $Main().start(args);
  81. }
  82. // called by native runtime inside main x10 thread
  83. public void runtimeCallback(final x10.core.Rail<java.lang.String> args) {
  84. // call the original app-main method
  85. Fibonacci.main(args);
  86. }
  87. }
  88. // the original app-main method
  89. public static void main(final x10.core.Rail<java.lang.String> args) {
  90. //#line 18 "/home/moose/Downloads/LaTeX-examples/documents/Programmierparadigmen/scripts/x10/Fibonacci.x10"
  91. final x10.io.Printer t$127 = ((x10.io.Printer)(x10.io.Console.get$OUT()));
  92. //#line 18 "/home/moose/Downloads/LaTeX-examples/documents/Programmierparadigmen/scripts/x10/Fibonacci.x10"
  93. t$127.println(((java.lang.Object)("This is fibonacci in X10.")));
  94. //#line 19 "/home/moose/Downloads/LaTeX-examples/documents/Programmierparadigmen/scripts/x10/Fibonacci.x10"
  95. long i$147 = 0L;
  96. //#line 19 "/home/moose/Downloads/LaTeX-examples/documents/Programmierparadigmen/scripts/x10/Fibonacci.x10"
  97. for (;
  98. true;
  99. ) {
  100. //#line 19 "/home/moose/Downloads/LaTeX-examples/documents/Programmierparadigmen/scripts/x10/Fibonacci.x10"
  101. final long t$148 = i$147;
  102. //#line 19 "/home/moose/Downloads/LaTeX-examples/documents/Programmierparadigmen/scripts/x10/Fibonacci.x10"
  103. final boolean t$149 = ((t$148) < (((long)(10L))));
  104. //#line 19 "/home/moose/Downloads/LaTeX-examples/documents/Programmierparadigmen/scripts/x10/Fibonacci.x10"
  105. if (!(t$149)) {
  106. //#line 19 "/home/moose/Downloads/LaTeX-examples/documents/Programmierparadigmen/scripts/x10/Fibonacci.x10"
  107. break;
  108. }
  109. //#line 20 "/home/moose/Downloads/LaTeX-examples/documents/Programmierparadigmen/scripts/x10/Fibonacci.x10"
  110. final x10.io.Printer t$139 = ((x10.io.Printer)(x10.io.Console.get$OUT()));
  111. //#line 20 "/home/moose/Downloads/LaTeX-examples/documents/Programmierparadigmen/scripts/x10/Fibonacci.x10"
  112. final long t$140 = i$147;
  113. //#line 20 "/home/moose/Downloads/LaTeX-examples/documents/Programmierparadigmen/scripts/x10/Fibonacci.x10"
  114. final java.lang.String t$141 = (((x10.core.Long.$box(t$140))) + (": "));
  115. //#line 20 "/home/moose/Downloads/LaTeX-examples/documents/Programmierparadigmen/scripts/x10/Fibonacci.x10"
  116. final long t$142 = i$147;
  117. //#line 20 "/home/moose/Downloads/LaTeX-examples/documents/Programmierparadigmen/scripts/x10/Fibonacci.x10"
  118. final long t$143 = Fibonacci.fib$O((long)(t$142));
  119. //#line 20 "/home/moose/Downloads/LaTeX-examples/documents/Programmierparadigmen/scripts/x10/Fibonacci.x10"
  120. final java.lang.String t$144 = ((t$141) + ((x10.core.Long.$box(t$143))));
  121. //#line 20 "/home/moose/Downloads/LaTeX-examples/documents/Programmierparadigmen/scripts/x10/Fibonacci.x10"
  122. t$139.println(((java.lang.Object)(t$144)));
  123. //#line 19 "/home/moose/Downloads/LaTeX-examples/documents/Programmierparadigmen/scripts/x10/Fibonacci.x10"
  124. final long t$145 = i$147;
  125. //#line 19 "/home/moose/Downloads/LaTeX-examples/documents/Programmierparadigmen/scripts/x10/Fibonacci.x10"
  126. final long t$146 = ((t$145) + (((long)(1L))));
  127. //#line 19 "/home/moose/Downloads/LaTeX-examples/documents/Programmierparadigmen/scripts/x10/Fibonacci.x10"
  128. i$147 = t$146;
  129. }
  130. }
  131. //#line 2 "/home/moose/Downloads/LaTeX-examples/documents/Programmierparadigmen/scripts/x10/Fibonacci.x10"
  132. final public Fibonacci Fibonacci$$this$Fibonacci() {
  133. //#line 2 "/home/moose/Downloads/LaTeX-examples/documents/Programmierparadigmen/scripts/x10/Fibonacci.x10"
  134. return Fibonacci.this;
  135. }
  136. //#line 2 "/home/moose/Downloads/LaTeX-examples/documents/Programmierparadigmen/scripts/x10/Fibonacci.x10"
  137. // creation method for java code (1-phase java constructor)
  138. public Fibonacci() {
  139. this((java.lang.System[]) null);
  140. Fibonacci$$init$S();
  141. }
  142. // constructor for non-virtual call
  143. final public Fibonacci Fibonacci$$init$S() {
  144. {
  145. //#line 2 "/home/moose/Downloads/LaTeX-examples/documents/Programmierparadigmen/scripts/x10/Fibonacci.x10"
  146. //#line 2 "/home/moose/Downloads/LaTeX-examples/documents/Programmierparadigmen/scripts/x10/Fibonacci.x10"
  147. this.__fieldInitializers_Fibonacci();
  148. }
  149. return this;
  150. }
  151. //#line 2 "/home/moose/Downloads/LaTeX-examples/documents/Programmierparadigmen/scripts/x10/Fibonacci.x10"
  152. final public void __fieldInitializers_Fibonacci() {
  153. }
  154. @x10.runtime.impl.java.X10Generated
  155. final public static class $Closure$0 extends x10.core.Ref implements x10.core.fun.VoidFun_0_0, x10.serialization.X10JavaSerializable
  156. {
  157. public static final x10.rtt.RuntimeType<$Closure$0> $RTT =
  158. x10.rtt.StaticVoidFunType.<$Closure$0> make($Closure$0.class,
  159. new x10.rtt.Type[] {
  160. x10.core.fun.VoidFun_0_0.$RTT
  161. });
  162. public x10.rtt.RuntimeType<?> $getRTT() { return $RTT; }
  163. public x10.rtt.Type<?> $getParam(int i) { return null; }
  164. public static x10.serialization.X10JavaSerializable $_deserialize_body(Fibonacci.$Closure$0 $_obj, x10.serialization.X10JavaDeserializer $deserializer) throws java.io.IOException {
  165. if (x10.runtime.impl.java.Runtime.TRACE_SER) { x10.runtime.impl.java.Runtime.printTraceMessage("X10JavaSerializable: $_deserialize_body() of " + $Closure$0.class + " calling"); }
  166. $_obj.n = $deserializer.readLong();
  167. $_obj.$f1$158 = $deserializer.readObject();
  168. return $_obj;
  169. }
  170. public static x10.serialization.X10JavaSerializable $_deserializer(x10.serialization.X10JavaDeserializer $deserializer) throws java.io.IOException {
  171. Fibonacci.$Closure$0 $_obj = new Fibonacci.$Closure$0((java.lang.System[]) null);
  172. $deserializer.record_reference($_obj);
  173. return $_deserialize_body($_obj, $deserializer);
  174. }
  175. public void $_serialize(x10.serialization.X10JavaSerializer $serializer) throws java.io.IOException {
  176. $serializer.write(this.n);
  177. $serializer.write(this.$f1$158);
  178. }
  179. // constructor just for allocation
  180. public $Closure$0(final java.lang.System[] $dummy) {
  181. }
  182. public void $apply() {
  183. //#line 11 "/home/moose/Downloads/LaTeX-examples/documents/Programmierparadigmen/scripts/x10/Fibonacci.x10"
  184. try {{
  185. //#line 11 "/home/moose/Downloads/LaTeX-examples/documents/Programmierparadigmen/scripts/x10/Fibonacci.x10"
  186. final long t$122 = ((this.n) - (((long)(1L))));
  187. //#line 11 "/home/moose/Downloads/LaTeX-examples/documents/Programmierparadigmen/scripts/x10/Fibonacci.x10"
  188. final long t$123 = Fibonacci.fib$O((long)(t$122));
  189. //#line 11 "/home/moose/Downloads/LaTeX-examples/documents/Programmierparadigmen/scripts/x10/Fibonacci.x10"
  190. this.$f1$158[(int)0]=t$123;
  191. }}catch (java.lang.Error __lowerer__var__0__) {
  192. //#line 11 "/home/moose/Downloads/LaTeX-examples/documents/Programmierparadigmen/scripts/x10/Fibonacci.x10"
  193. throw __lowerer__var__0__;
  194. }catch (java.lang.Throwable __lowerer__var__1__) {
  195. //#line 11 "/home/moose/Downloads/LaTeX-examples/documents/Programmierparadigmen/scripts/x10/Fibonacci.x10"
  196. throw x10.rtt.Types.EXCEPTION.isInstance(__lowerer__var__1__) ? (java.lang.RuntimeException)(__lowerer__var__1__) : new x10.lang.WrappedThrowable(__lowerer__var__1__);
  197. }
  198. }
  199. public long n;
  200. public long[] $f1$158;
  201. public $Closure$0(final long n, final long[] $f1$158) {
  202. {
  203. this.n = n;
  204. this.$f1$158 = $f1$158;
  205. }
  206. }
  207. }
  208. @x10.runtime.impl.java.X10Generated
  209. final public static class $Closure$1 extends x10.core.Ref implements x10.core.fun.VoidFun_0_0, x10.serialization.X10JavaSerializable
  210. {
  211. public static final x10.rtt.RuntimeType<$Closure$1> $RTT =
  212. x10.rtt.StaticVoidFunType.<$Closure$1> make($Closure$1.class,
  213. new x10.rtt.Type[] {
  214. x10.core.fun.VoidFun_0_0.$RTT
  215. });
  216. public x10.rtt.RuntimeType<?> $getRTT() { return $RTT; }
  217. public x10.rtt.Type<?> $getParam(int i) { return null; }
  218. public static x10.serialization.X10JavaSerializable $_deserialize_body(Fibonacci.$Closure$1 $_obj, x10.serialization.X10JavaDeserializer $deserializer) throws java.io.IOException {
  219. if (x10.runtime.impl.java.Runtime.TRACE_SER) { x10.runtime.impl.java.Runtime.printTraceMessage("X10JavaSerializable: $_deserialize_body() of " + $Closure$1.class + " calling"); }
  220. $_obj.n = $deserializer.readLong();
  221. $_obj.$f2$159 = $deserializer.readObject();
  222. return $_obj;
  223. }
  224. public static x10.serialization.X10JavaSerializable $_deserializer(x10.serialization.X10JavaDeserializer $deserializer) throws java.io.IOException {
  225. Fibonacci.$Closure$1 $_obj = new Fibonacci.$Closure$1((java.lang.System[]) null);
  226. $deserializer.record_reference($_obj);
  227. return $_deserialize_body($_obj, $deserializer);
  228. }
  229. public void $_serialize(x10.serialization.X10JavaSerializer $serializer) throws java.io.IOException {
  230. $serializer.write(this.n);
  231. $serializer.write(this.$f2$159);
  232. }
  233. // constructor just for allocation
  234. public $Closure$1(final java.lang.System[] $dummy) {
  235. }
  236. public void $apply() {
  237. //#line 12 "/home/moose/Downloads/LaTeX-examples/documents/Programmierparadigmen/scripts/x10/Fibonacci.x10"
  238. try {{
  239. //#line 12 "/home/moose/Downloads/LaTeX-examples/documents/Programmierparadigmen/scripts/x10/Fibonacci.x10"
  240. final long t$124 = ((this.n) - (((long)(2L))));
  241. //#line 12 "/home/moose/Downloads/LaTeX-examples/documents/Programmierparadigmen/scripts/x10/Fibonacci.x10"
  242. final long t$125 = Fibonacci.fib$O((long)(t$124));
  243. //#line 12 "/home/moose/Downloads/LaTeX-examples/documents/Programmierparadigmen/scripts/x10/Fibonacci.x10"
  244. this.$f2$159[(int)0]=t$125;
  245. }}catch (java.lang.Error __lowerer__var__2__) {
  246. //#line 12 "/home/moose/Downloads/LaTeX-examples/documents/Programmierparadigmen/scripts/x10/Fibonacci.x10"
  247. throw __lowerer__var__2__;
  248. }catch (java.lang.Throwable __lowerer__var__3__) {
  249. //#line 12 "/home/moose/Downloads/LaTeX-examples/documents/Programmierparadigmen/scripts/x10/Fibonacci.x10"
  250. throw x10.rtt.Types.EXCEPTION.isInstance(__lowerer__var__3__) ? (java.lang.RuntimeException)(__lowerer__var__3__) : new x10.lang.WrappedThrowable(__lowerer__var__3__);
  251. }
  252. }
  253. public long n;
  254. public long[] $f2$159;
  255. public $Closure$1(final long n, final long[] $f2$159) {
  256. {
  257. this.n = n;
  258. this.$f2$159 = $f2$159;
  259. }
  260. }
  261. }
  262. }