1 /*
2 * Copyright 2013 The Emscripten Authors. All rights reserved.
3 * Emscripten is available under two separate licenses, the MIT license and the
4 * University of Illinois/NCSA Open Source License. Both these licenses can be
5 * found in the LICENSE file.
6 */
7
8 #include "xmlvm.h"
9 #include "java_lang_Math.h"
10 #include "nbody_Body.h"
11
12 #include "nbody_NBodySystem.h"
13
14 #define XMLVM_CURRENT_CLASS_NAME NBodySystem
15 #define XMLVM_CURRENT_PKG_CLASS_NAME nbody_NBodySystem
16
17 __TIB_DEFINITION_nbody_NBodySystem __TIB_nbody_NBodySystem = {
18 0, // classInitializationBegan
19 0, // classInitialized
20 -1, // initializerThreadId
21 __INIT_nbody_NBodySystem, // classInitializer
22 "nbody.NBodySystem", // className
23 "nbody", // package
24 JAVA_NULL, // enclosingClassName
25 JAVA_NULL, // enclosingMethodName
26 JAVA_NULL, // signature
27 (__TIB_DEFINITION_TEMPLATE*) &__TIB_java_lang_Object, // extends
28 sizeof(nbody_NBodySystem), // sizeInstance
29 XMLVM_TYPE_CLASS};
30
31 JAVA_OBJECT __CLASS_nbody_NBodySystem;
32 JAVA_OBJECT __CLASS_nbody_NBodySystem_1ARRAY;
33 JAVA_OBJECT __CLASS_nbody_NBodySystem_2ARRAY;
34 JAVA_OBJECT __CLASS_nbody_NBodySystem_3ARRAY;
35 //XMLVM_BEGIN_IMPLEMENTATION
36 //XMLVM_END_IMPLEMENTATION
37
38
39 #include "xmlvm-reflection.h"
40
41 static XMLVM_FIELD_REFLECTION_DATA __field_reflection_data[] = {
42 };
43
44 static XMLVM_CONSTRUCTOR_REFLECTION_DATA __constructor_reflection_data[] = {
45 };
46
constructor_dispatcher(JAVA_OBJECT constructor,JAVA_OBJECT arguments)47 static JAVA_OBJECT constructor_dispatcher(JAVA_OBJECT constructor, JAVA_OBJECT arguments)
48 {
49 XMLVM_NOT_IMPLEMENTED();
50 }
51
52 static XMLVM_METHOD_REFLECTION_DATA __method_reflection_data[] = {
53 };
54
method_dispatcher(JAVA_OBJECT method,JAVA_OBJECT receiver,JAVA_OBJECT arguments)55 static JAVA_OBJECT method_dispatcher(JAVA_OBJECT method, JAVA_OBJECT receiver, JAVA_OBJECT arguments)
56 {
57 XMLVM_NOT_IMPLEMENTED();
58 }
59
__INIT_nbody_NBodySystem()60 void __INIT_nbody_NBodySystem()
61 {
62 staticInitializerLock(&__TIB_nbody_NBodySystem);
63
64 // While the static initializer mutex is locked, locally store the value of
65 // whether class initialization began or not
66 int initBegan = __TIB_nbody_NBodySystem.classInitializationBegan;
67
68 // Whether or not class initialization had already began, it has begun now
69 __TIB_nbody_NBodySystem.classInitializationBegan = 1;
70
71 staticInitializerUnlock(&__TIB_nbody_NBodySystem);
72
73 JAVA_LONG curThreadId = (JAVA_LONG)pthread_self();
74 if (initBegan) {
75 if (__TIB_nbody_NBodySystem.initializerThreadId != curThreadId) {
76 // Busy wait until the other thread finishes initializing this class
77 while (!__TIB_nbody_NBodySystem.classInitialized) {
78 // do nothing
79 }
80 }
81 } else {
82 __TIB_nbody_NBodySystem.initializerThreadId = curThreadId;
83 XMLVM_CLASS_USED("nbody.NBodySystem")
84 __INIT_IMPL_nbody_NBodySystem();
85 }
86 }
87
__INIT_IMPL_nbody_NBodySystem()88 void __INIT_IMPL_nbody_NBodySystem()
89 {
90 // Initialize base class if necessary
91 XMLVM_CLASS_INIT(java_lang_Object)
92 __TIB_nbody_NBodySystem.newInstanceFunc = __NEW_INSTANCE_nbody_NBodySystem;
93 // Copy vtable from base class
94 XMLVM_MEMCPY(__TIB_nbody_NBodySystem.vtable, __TIB_java_lang_Object.vtable, sizeof(__TIB_java_lang_Object.vtable));
95 // Initialize vtable for this class
96 // Initialize interface information
97 __TIB_nbody_NBodySystem.numImplementedInterfaces = 0;
98 __TIB_nbody_NBodySystem.implementedInterfaces = (__TIB_DEFINITION_TEMPLATE* (*)[1]) XMLVM_MALLOC(sizeof(__TIB_DEFINITION_TEMPLATE*) * 0);
99
100 // Initialize interfaces if necessary and assign tib to implementedInterfaces
101
102 __TIB_nbody_NBodySystem.declaredFields = &__field_reflection_data[0];
103 __TIB_nbody_NBodySystem.numDeclaredFields = sizeof(__field_reflection_data) / sizeof(XMLVM_FIELD_REFLECTION_DATA);
104 __TIB_nbody_NBodySystem.constructorDispatcherFunc = constructor_dispatcher;
105 __TIB_nbody_NBodySystem.declaredConstructors = &__constructor_reflection_data[0];
106 __TIB_nbody_NBodySystem.numDeclaredConstructors = sizeof(__constructor_reflection_data) / sizeof(XMLVM_CONSTRUCTOR_REFLECTION_DATA);
107 __TIB_nbody_NBodySystem.methodDispatcherFunc = method_dispatcher;
108 __TIB_nbody_NBodySystem.declaredMethods = &__method_reflection_data[0];
109 __TIB_nbody_NBodySystem.numDeclaredMethods = sizeof(__method_reflection_data) / sizeof(XMLVM_METHOD_REFLECTION_DATA);
110 __CLASS_nbody_NBodySystem = XMLVM_CREATE_CLASS_OBJECT(&__TIB_nbody_NBodySystem);
111 __TIB_nbody_NBodySystem.clazz = __CLASS_nbody_NBodySystem;
112 __TIB_nbody_NBodySystem.baseType = JAVA_NULL;
113 __CLASS_nbody_NBodySystem_1ARRAY = XMLVM_CREATE_ARRAY_CLASS_OBJECT(__CLASS_nbody_NBodySystem);
114 __CLASS_nbody_NBodySystem_2ARRAY = XMLVM_CREATE_ARRAY_CLASS_OBJECT(__CLASS_nbody_NBodySystem_1ARRAY);
115 __CLASS_nbody_NBodySystem_3ARRAY = XMLVM_CREATE_ARRAY_CLASS_OBJECT(__CLASS_nbody_NBodySystem_2ARRAY);
116 //XMLVM_BEGIN_WRAPPER[__INIT_nbody_NBodySystem]
117 //XMLVM_END_WRAPPER
118
119 __TIB_nbody_NBodySystem.classInitialized = 1;
120 }
121
__DELETE_nbody_NBodySystem(void * me,void * client_data)122 void __DELETE_nbody_NBodySystem(void* me, void* client_data)
123 {
124 //XMLVM_BEGIN_WRAPPER[__DELETE_nbody_NBodySystem]
125 //XMLVM_END_WRAPPER
126 }
127
__INIT_INSTANCE_MEMBERS_nbody_NBodySystem(JAVA_OBJECT me,int derivedClassWillRegisterFinalizer)128 void __INIT_INSTANCE_MEMBERS_nbody_NBodySystem(JAVA_OBJECT me, int derivedClassWillRegisterFinalizer)
129 {
130 __INIT_INSTANCE_MEMBERS_java_lang_Object(me, 0 || derivedClassWillRegisterFinalizer);
131 ((nbody_NBodySystem*) me)->fields.nbody_NBodySystem.bodies_ = (org_xmlvm_runtime_XMLVMArray*) JAVA_NULL;
132 //XMLVM_BEGIN_WRAPPER[__INIT_INSTANCE_MEMBERS_nbody_NBodySystem]
133 //XMLVM_END_WRAPPER
134 }
135
__NEW_nbody_NBodySystem()136 JAVA_OBJECT __NEW_nbody_NBodySystem()
137 { XMLVM_CLASS_INIT(nbody_NBodySystem)
138 nbody_NBodySystem* me = (nbody_NBodySystem*) XMLVM_MALLOC(sizeof(nbody_NBodySystem));
139 me->tib = &__TIB_nbody_NBodySystem;
140 __INIT_INSTANCE_MEMBERS_nbody_NBodySystem(me, 0);
141 //XMLVM_BEGIN_WRAPPER[__NEW_nbody_NBodySystem]
142 //XMLVM_END_WRAPPER
143 return me;
144 }
145
__NEW_INSTANCE_nbody_NBodySystem()146 JAVA_OBJECT __NEW_INSTANCE_nbody_NBodySystem()
147 {
148 JAVA_OBJECT me = JAVA_NULL;
149 me = __NEW_nbody_NBodySystem();
150 nbody_NBodySystem___INIT___(me);
151 return me;
152 }
153
nbody_NBodySystem___INIT___(JAVA_OBJECT me)154 void nbody_NBodySystem___INIT___(JAVA_OBJECT me)
155 {
156 //XMLVM_BEGIN_WRAPPER[nbody_NBodySystem___INIT___]
157 XMLVM_ENTER_METHOD("nbody.NBodySystem", "<init>", "?")
158 XMLVMElem _r0;
159 XMLVMElem _r1;
160 XMLVMElem _r2;
161 XMLVMElem _r3;
162 XMLVMElem _r4;
163 XMLVMElem _r5;
164 XMLVMElem _r6;
165 XMLVMElem _r7;
166 XMLVMElem _r8;
167 XMLVMElem _r9;
168 XMLVMElem _r10;
169 XMLVMElem _r11;
170 XMLVMElem _r12;
171 _r12.o = me;
172 _r11.i = 0;
173 _r3.d = 0.0;
174 XMLVM_SOURCE_POSITION("nbody.java", 39)
175 XMLVM_CHECK_NPE(12)
176 java_lang_Object___INIT___(_r12.o);
177 XMLVM_SOURCE_POSITION("nbody.java", 40)
178 _r0.i = 5;
179 XMLVM_CLASS_INIT(nbody_Body)
180 _r0.o = XMLVMArray_createSingleDimension(__CLASS_nbody_Body, _r0.i);
181 _r1.o = nbody_Body_sun__();
182 XMLVM_CHECK_NPE(0)
183 XMLVM_CHECK_ARRAY_BOUNDS(_r0.o, _r11.i);
184 ((JAVA_ARRAY_OBJECT*) (((org_xmlvm_runtime_XMLVMArray*) _r0.o)->fields.org_xmlvm_runtime_XMLVMArray.array_))[_r11.i] = _r1.o;
185 _r1.i = 1;
186 _r2.o = nbody_Body_jupiter__();
187 XMLVM_CHECK_NPE(0)
188 XMLVM_CHECK_ARRAY_BOUNDS(_r0.o, _r1.i);
189 ((JAVA_ARRAY_OBJECT*) (((org_xmlvm_runtime_XMLVMArray*) _r0.o)->fields.org_xmlvm_runtime_XMLVMArray.array_))[_r1.i] = _r2.o;
190 _r1.i = 2;
191 _r2.o = nbody_Body_saturn__();
192 XMLVM_CHECK_NPE(0)
193 XMLVM_CHECK_ARRAY_BOUNDS(_r0.o, _r1.i);
194 ((JAVA_ARRAY_OBJECT*) (((org_xmlvm_runtime_XMLVMArray*) _r0.o)->fields.org_xmlvm_runtime_XMLVMArray.array_))[_r1.i] = _r2.o;
195 _r1.i = 3;
196 _r2.o = nbody_Body_uranus__();
197 XMLVM_CHECK_NPE(0)
198 XMLVM_CHECK_ARRAY_BOUNDS(_r0.o, _r1.i);
199 ((JAVA_ARRAY_OBJECT*) (((org_xmlvm_runtime_XMLVMArray*) _r0.o)->fields.org_xmlvm_runtime_XMLVMArray.array_))[_r1.i] = _r2.o;
200 _r1.i = 4;
201 _r2.o = nbody_Body_neptune__();
202 XMLVM_CHECK_NPE(0)
203 XMLVM_CHECK_ARRAY_BOUNDS(_r0.o, _r1.i);
204 ((JAVA_ARRAY_OBJECT*) (((org_xmlvm_runtime_XMLVMArray*) _r0.o)->fields.org_xmlvm_runtime_XMLVMArray.array_))[_r1.i] = _r2.o;
205 XMLVM_CHECK_NPE(12)
206 ((nbody_NBodySystem*) _r12.o)->fields.nbody_NBodySystem.bodies_ = _r0.o;
207 _r0 = _r11;
208 _r5 = _r3;
209 _r1 = _r3;
210 label48:;
211 XMLVM_SOURCE_POSITION("nbody.java", 51)
212 XMLVM_CHECK_NPE(12)
213 _r7.o = ((nbody_NBodySystem*) _r12.o)->fields.nbody_NBodySystem.bodies_;
214 _r7.i = XMLVMArray_count(((org_xmlvm_runtime_XMLVMArray*) _r7.o));
215 if (_r0.i >= _r7.i) goto label98;
216 XMLVM_SOURCE_POSITION("nbody.java", 52)
217 XMLVM_CHECK_NPE(12)
218 _r7.o = ((nbody_NBodySystem*) _r12.o)->fields.nbody_NBodySystem.bodies_;
219 XMLVM_CHECK_NPE(7)
220 XMLVM_CHECK_ARRAY_BOUNDS(_r7.o, _r0.i);
221 _r7.o = ((JAVA_ARRAY_OBJECT*) (((org_xmlvm_runtime_XMLVMArray*) _r7.o)->fields.org_xmlvm_runtime_XMLVMArray.array_))[_r0.i];
222 XMLVM_CHECK_NPE(7)
223 _r7.d = ((nbody_Body*) _r7.o)->fields.nbody_Body.vx_;
224 XMLVM_CHECK_NPE(12)
225 _r9.o = ((nbody_NBodySystem*) _r12.o)->fields.nbody_NBodySystem.bodies_;
226 XMLVM_CHECK_NPE(9)
227 XMLVM_CHECK_ARRAY_BOUNDS(_r9.o, _r0.i);
228 _r9.o = ((JAVA_ARRAY_OBJECT*) (((org_xmlvm_runtime_XMLVMArray*) _r9.o)->fields.org_xmlvm_runtime_XMLVMArray.array_))[_r0.i];
229 XMLVM_CHECK_NPE(9)
230 _r9.d = ((nbody_Body*) _r9.o)->fields.nbody_Body.mass_;
231 _r7.d = _r7.d * _r9.d;
232 _r1.d = _r1.d + _r7.d;
233 XMLVM_SOURCE_POSITION("nbody.java", 53)
234 XMLVM_CHECK_NPE(12)
235 _r7.o = ((nbody_NBodySystem*) _r12.o)->fields.nbody_NBodySystem.bodies_;
236 XMLVM_CHECK_NPE(7)
237 XMLVM_CHECK_ARRAY_BOUNDS(_r7.o, _r0.i);
238 _r7.o = ((JAVA_ARRAY_OBJECT*) (((org_xmlvm_runtime_XMLVMArray*) _r7.o)->fields.org_xmlvm_runtime_XMLVMArray.array_))[_r0.i];
239 XMLVM_CHECK_NPE(7)
240 _r7.d = ((nbody_Body*) _r7.o)->fields.nbody_Body.vy_;
241 XMLVM_CHECK_NPE(12)
242 _r9.o = ((nbody_NBodySystem*) _r12.o)->fields.nbody_NBodySystem.bodies_;
243 XMLVM_CHECK_NPE(9)
244 XMLVM_CHECK_ARRAY_BOUNDS(_r9.o, _r0.i);
245 _r9.o = ((JAVA_ARRAY_OBJECT*) (((org_xmlvm_runtime_XMLVMArray*) _r9.o)->fields.org_xmlvm_runtime_XMLVMArray.array_))[_r0.i];
246 XMLVM_CHECK_NPE(9)
247 _r9.d = ((nbody_Body*) _r9.o)->fields.nbody_Body.mass_;
248 _r7.d = _r7.d * _r9.d;
249 _r3.d = _r3.d + _r7.d;
250 XMLVM_SOURCE_POSITION("nbody.java", 54)
251 XMLVM_CHECK_NPE(12)
252 _r7.o = ((nbody_NBodySystem*) _r12.o)->fields.nbody_NBodySystem.bodies_;
253 XMLVM_CHECK_NPE(7)
254 XMLVM_CHECK_ARRAY_BOUNDS(_r7.o, _r0.i);
255 _r7.o = ((JAVA_ARRAY_OBJECT*) (((org_xmlvm_runtime_XMLVMArray*) _r7.o)->fields.org_xmlvm_runtime_XMLVMArray.array_))[_r0.i];
256 XMLVM_CHECK_NPE(7)
257 _r7.d = ((nbody_Body*) _r7.o)->fields.nbody_Body.vz_;
258 XMLVM_CHECK_NPE(12)
259 _r9.o = ((nbody_NBodySystem*) _r12.o)->fields.nbody_NBodySystem.bodies_;
260 XMLVM_CHECK_NPE(9)
261 XMLVM_CHECK_ARRAY_BOUNDS(_r9.o, _r0.i);
262 _r9.o = ((JAVA_ARRAY_OBJECT*) (((org_xmlvm_runtime_XMLVMArray*) _r9.o)->fields.org_xmlvm_runtime_XMLVMArray.array_))[_r0.i];
263 XMLVM_CHECK_NPE(9)
264 _r9.d = ((nbody_Body*) _r9.o)->fields.nbody_Body.mass_;
265 _r7.d = _r7.d * _r9.d;
266 _r5.d = _r5.d + _r7.d;
267 _r0.i = _r0.i + 1;
268 goto label48;
269 label98:;
270 XMLVM_SOURCE_POSITION("nbody.java", 56)
271 XMLVM_CHECK_NPE(12)
272 _r0.o = ((nbody_NBodySystem*) _r12.o)->fields.nbody_NBodySystem.bodies_;
273 XMLVM_CHECK_NPE(0)
274 XMLVM_CHECK_ARRAY_BOUNDS(_r0.o, _r11.i);
275 _r0.o = ((JAVA_ARRAY_OBJECT*) (((org_xmlvm_runtime_XMLVMArray*) _r0.o)->fields.org_xmlvm_runtime_XMLVMArray.array_))[_r11.i];
276 XMLVM_CHECK_NPE(0)
277 nbody_Body_offsetMomentum___double_double_double(_r0.o, _r1.d, _r3.d, _r5.d);
278 XMLVM_SOURCE_POSITION("nbody.java", 57)
279 XMLVM_EXIT_METHOD()
280 return;
281 //XMLVM_END_WRAPPER
282 }
283
nbody_NBodySystem_advance___double(JAVA_OBJECT me,JAVA_DOUBLE n1)284 void nbody_NBodySystem_advance___double(JAVA_OBJECT me, JAVA_DOUBLE n1)
285 {
286 //XMLVM_BEGIN_WRAPPER[nbody_NBodySystem_advance___double]
287 XMLVM_ENTER_METHOD("nbody.NBodySystem", "advance", "?")
288 XMLVMElem _r0;
289 XMLVMElem _r1;
290 XMLVMElem _r2;
291 XMLVMElem _r3;
292 XMLVMElem _r4;
293 XMLVMElem _r5;
294 XMLVMElem _r6;
295 XMLVMElem _r7;
296 XMLVMElem _r8;
297 XMLVMElem _r9;
298 XMLVMElem _r10;
299 XMLVMElem _r11;
300 XMLVMElem _r12;
301 XMLVMElem _r13;
302 XMLVMElem _r14;
303 XMLVMElem _r15;
304 XMLVMElem _r16;
305 XMLVMElem _r17;
306 XMLVMElem _r18;
307 XMLVMElem _r19;
308 _r17.o = me;
309 _r18.d = n1;
310 XMLVM_SOURCE_POSITION("nbody.java", 61)
311 _r1.i = 0;
312 label1:;
313 _r0 = _r17;
314 XMLVM_CHECK_NPE(0)
315 _r0.o = ((nbody_NBodySystem*) _r0.o)->fields.nbody_NBodySystem.bodies_;
316 _r2 = _r0;
317 _r2.i = XMLVMArray_count(((org_xmlvm_runtime_XMLVMArray*) _r2.o));
318 if (_r1.i >= _r2.i) goto label183;
319 XMLVM_SOURCE_POSITION("nbody.java", 62)
320 _r0 = _r17;
321 XMLVM_CHECK_NPE(0)
322 _r0.o = ((nbody_NBodySystem*) _r0.o)->fields.nbody_NBodySystem.bodies_;
323 _r2 = _r0;
324 XMLVM_CHECK_NPE(2)
325 XMLVM_CHECK_ARRAY_BOUNDS(_r2.o, _r1.i);
326 _r2.o = ((JAVA_ARRAY_OBJECT*) (((org_xmlvm_runtime_XMLVMArray*) _r2.o)->fields.org_xmlvm_runtime_XMLVMArray.array_))[_r1.i];
327 XMLVM_SOURCE_POSITION("nbody.java", 63)
328 _r3.i = _r1.i + 1;
329 label18:;
330 _r0 = _r17;
331 XMLVM_CHECK_NPE(0)
332 _r0.o = ((nbody_NBodySystem*) _r0.o)->fields.nbody_NBodySystem.bodies_;
333 _r4 = _r0;
334 _r4.i = XMLVMArray_count(((org_xmlvm_runtime_XMLVMArray*) _r4.o));
335 if (_r3.i >= _r4.i) goto label179;
336 XMLVM_SOURCE_POSITION("nbody.java", 64)
337 XMLVM_CHECK_NPE(2)
338 _r4.d = ((nbody_Body*) _r2.o)->fields.nbody_Body.x_;
339 _r0 = _r17;
340 XMLVM_CHECK_NPE(0)
341 _r0.o = ((nbody_NBodySystem*) _r0.o)->fields.nbody_NBodySystem.bodies_;
342 _r6 = _r0;
343 XMLVM_CHECK_NPE(6)
344 XMLVM_CHECK_ARRAY_BOUNDS(_r6.o, _r3.i);
345 _r6.o = ((JAVA_ARRAY_OBJECT*) (((org_xmlvm_runtime_XMLVMArray*) _r6.o)->fields.org_xmlvm_runtime_XMLVMArray.array_))[_r3.i];
346 XMLVM_CHECK_NPE(6)
347 _r6.d = ((nbody_Body*) _r6.o)->fields.nbody_Body.x_;
348 _r4.d = _r4.d - _r6.d;
349 XMLVM_SOURCE_POSITION("nbody.java", 65)
350 XMLVM_CHECK_NPE(2)
351 _r6.d = ((nbody_Body*) _r2.o)->fields.nbody_Body.y_;
352 _r0 = _r17;
353 XMLVM_CHECK_NPE(0)
354 _r0.o = ((nbody_NBodySystem*) _r0.o)->fields.nbody_NBodySystem.bodies_;
355 _r8 = _r0;
356 XMLVM_CHECK_NPE(8)
357 XMLVM_CHECK_ARRAY_BOUNDS(_r8.o, _r3.i);
358 _r8.o = ((JAVA_ARRAY_OBJECT*) (((org_xmlvm_runtime_XMLVMArray*) _r8.o)->fields.org_xmlvm_runtime_XMLVMArray.array_))[_r3.i];
359 XMLVM_CHECK_NPE(8)
360 _r8.d = ((nbody_Body*) _r8.o)->fields.nbody_Body.y_;
361 _r6.d = _r6.d - _r8.d;
362 XMLVM_SOURCE_POSITION("nbody.java", 66)
363 XMLVM_CHECK_NPE(2)
364 _r8.d = ((nbody_Body*) _r2.o)->fields.nbody_Body.z_;
365 _r0 = _r17;
366 XMLVM_CHECK_NPE(0)
367 _r0.o = ((nbody_NBodySystem*) _r0.o)->fields.nbody_NBodySystem.bodies_;
368 _r10 = _r0;
369 XMLVM_CHECK_NPE(10)
370 XMLVM_CHECK_ARRAY_BOUNDS(_r10.o, _r3.i);
371 _r10.o = ((JAVA_ARRAY_OBJECT*) (((org_xmlvm_runtime_XMLVMArray*) _r10.o)->fields.org_xmlvm_runtime_XMLVMArray.array_))[_r3.i];
372 XMLVM_CHECK_NPE(10)
373 _r10.d = ((nbody_Body*) _r10.o)->fields.nbody_Body.z_;
374 _r8.d = _r8.d - _r10.d;
375 _r10.d = _r4.d * _r4.d;
376 _r12.d = _r6.d * _r6.d;
377 _r10.d = _r10.d + _r12.d;
378 _r12.d = _r8.d * _r8.d;
379 _r10.d = _r10.d + _r12.d;
380 XMLVM_SOURCE_POSITION("nbody.java", 69)
381 _r12.d = java_lang_Math_sqrt___double(_r10.d);
382 XMLVM_SOURCE_POSITION("nbody.java", 70)
383 _r10.d = _r10.d * _r12.d;
384 _r10.d = _r18.d / _r10.d;
385 XMLVM_SOURCE_POSITION("nbody.java", 72)
386 XMLVM_CHECK_NPE(2)
387 _r12.d = ((nbody_Body*) _r2.o)->fields.nbody_Body.vx_;
388 _r0 = _r17;
389 XMLVM_CHECK_NPE(0)
390 _r0.o = ((nbody_NBodySystem*) _r0.o)->fields.nbody_NBodySystem.bodies_;
391 _r14 = _r0;
392 XMLVM_CHECK_NPE(14)
393 XMLVM_CHECK_ARRAY_BOUNDS(_r14.o, _r3.i);
394 _r14.o = ((JAVA_ARRAY_OBJECT*) (((org_xmlvm_runtime_XMLVMArray*) _r14.o)->fields.org_xmlvm_runtime_XMLVMArray.array_))[_r3.i];
395 XMLVM_CHECK_NPE(14)
396 _r14.d = ((nbody_Body*) _r14.o)->fields.nbody_Body.mass_;
397 _r14.d = _r14.d * _r4.d;
398 _r14.d = _r14.d * _r10.d;
399 _r12.d = _r12.d - _r14.d;
400 XMLVM_CHECK_NPE(2)
401 ((nbody_Body*) _r2.o)->fields.nbody_Body.vx_ = _r12.d;
402 XMLVM_SOURCE_POSITION("nbody.java", 73)
403 XMLVM_CHECK_NPE(2)
404 _r12.d = ((nbody_Body*) _r2.o)->fields.nbody_Body.vy_;
405 _r0 = _r17;
406 XMLVM_CHECK_NPE(0)
407 _r0.o = ((nbody_NBodySystem*) _r0.o)->fields.nbody_NBodySystem.bodies_;
408 _r14 = _r0;
409 XMLVM_CHECK_NPE(14)
410 XMLVM_CHECK_ARRAY_BOUNDS(_r14.o, _r3.i);
411 _r14.o = ((JAVA_ARRAY_OBJECT*) (((org_xmlvm_runtime_XMLVMArray*) _r14.o)->fields.org_xmlvm_runtime_XMLVMArray.array_))[_r3.i];
412 XMLVM_CHECK_NPE(14)
413 _r14.d = ((nbody_Body*) _r14.o)->fields.nbody_Body.mass_;
414 _r14.d = _r14.d * _r6.d;
415 _r14.d = _r14.d * _r10.d;
416 _r12.d = _r12.d - _r14.d;
417 XMLVM_CHECK_NPE(2)
418 ((nbody_Body*) _r2.o)->fields.nbody_Body.vy_ = _r12.d;
419 XMLVM_SOURCE_POSITION("nbody.java", 74)
420 XMLVM_CHECK_NPE(2)
421 _r12.d = ((nbody_Body*) _r2.o)->fields.nbody_Body.vz_;
422 _r0 = _r17;
423 XMLVM_CHECK_NPE(0)
424 _r0.o = ((nbody_NBodySystem*) _r0.o)->fields.nbody_NBodySystem.bodies_;
425 _r14 = _r0;
426 XMLVM_CHECK_NPE(14)
427 XMLVM_CHECK_ARRAY_BOUNDS(_r14.o, _r3.i);
428 _r14.o = ((JAVA_ARRAY_OBJECT*) (((org_xmlvm_runtime_XMLVMArray*) _r14.o)->fields.org_xmlvm_runtime_XMLVMArray.array_))[_r3.i];
429 XMLVM_CHECK_NPE(14)
430 _r14.d = ((nbody_Body*) _r14.o)->fields.nbody_Body.mass_;
431 _r14.d = _r14.d * _r8.d;
432 _r14.d = _r14.d * _r10.d;
433 _r12.d = _r12.d - _r14.d;
434 XMLVM_CHECK_NPE(2)
435 ((nbody_Body*) _r2.o)->fields.nbody_Body.vz_ = _r12.d;
436 XMLVM_SOURCE_POSITION("nbody.java", 76)
437 _r0 = _r17;
438 XMLVM_CHECK_NPE(0)
439 _r0.o = ((nbody_NBodySystem*) _r0.o)->fields.nbody_NBodySystem.bodies_;
440 _r12 = _r0;
441 XMLVM_CHECK_NPE(12)
442 XMLVM_CHECK_ARRAY_BOUNDS(_r12.o, _r3.i);
443 _r12.o = ((JAVA_ARRAY_OBJECT*) (((org_xmlvm_runtime_XMLVMArray*) _r12.o)->fields.org_xmlvm_runtime_XMLVMArray.array_))[_r3.i];
444 XMLVM_CHECK_NPE(12)
445 _r13.d = ((nbody_Body*) _r12.o)->fields.nbody_Body.vx_;
446 XMLVM_CHECK_NPE(2)
447 _r15.d = ((nbody_Body*) _r2.o)->fields.nbody_Body.mass_;
448 _r4.d = _r4.d * _r15.d;
449 _r4.d = _r4.d * _r10.d;
450 _r4.d = _r4.d + _r13.d;
451 XMLVM_CHECK_NPE(12)
452 ((nbody_Body*) _r12.o)->fields.nbody_Body.vx_ = _r4.d;
453 XMLVM_SOURCE_POSITION("nbody.java", 77)
454 _r0 = _r17;
455 XMLVM_CHECK_NPE(0)
456 _r0.o = ((nbody_NBodySystem*) _r0.o)->fields.nbody_NBodySystem.bodies_;
457 _r4 = _r0;
458 XMLVM_CHECK_NPE(4)
459 XMLVM_CHECK_ARRAY_BOUNDS(_r4.o, _r3.i);
460 _r4.o = ((JAVA_ARRAY_OBJECT*) (((org_xmlvm_runtime_XMLVMArray*) _r4.o)->fields.org_xmlvm_runtime_XMLVMArray.array_))[_r3.i];
461 XMLVM_CHECK_NPE(4)
462 _r12.d = ((nbody_Body*) _r4.o)->fields.nbody_Body.vy_;
463 XMLVM_CHECK_NPE(2)
464 _r14.d = ((nbody_Body*) _r2.o)->fields.nbody_Body.mass_;
465 _r5.d = _r6.d * _r14.d;
466 _r5.d = _r5.d * _r10.d;
467 _r5.d = _r5.d + _r12.d;
468 XMLVM_CHECK_NPE(4)
469 ((nbody_Body*) _r4.o)->fields.nbody_Body.vy_ = _r5.d;
470 XMLVM_SOURCE_POSITION("nbody.java", 78)
471 _r0 = _r17;
472 XMLVM_CHECK_NPE(0)
473 _r0.o = ((nbody_NBodySystem*) _r0.o)->fields.nbody_NBodySystem.bodies_;
474 _r4 = _r0;
475 XMLVM_CHECK_NPE(4)
476 XMLVM_CHECK_ARRAY_BOUNDS(_r4.o, _r3.i);
477 _r4.o = ((JAVA_ARRAY_OBJECT*) (((org_xmlvm_runtime_XMLVMArray*) _r4.o)->fields.org_xmlvm_runtime_XMLVMArray.array_))[_r3.i];
478 XMLVM_CHECK_NPE(4)
479 _r5.d = ((nbody_Body*) _r4.o)->fields.nbody_Body.vz_;
480 XMLVM_CHECK_NPE(2)
481 _r12.d = ((nbody_Body*) _r2.o)->fields.nbody_Body.mass_;
482 _r7.d = _r8.d * _r12.d;
483 _r7.d = _r7.d * _r10.d;
484 _r5.d = _r5.d + _r7.d;
485 XMLVM_CHECK_NPE(4)
486 ((nbody_Body*) _r4.o)->fields.nbody_Body.vz_ = _r5.d;
487 _r3.i = _r3.i + 1;
488 goto label18;
489 label179:;
490 _r1.i = _r1.i + 1;
491 goto label1;
492 label183:;
493 XMLVM_SOURCE_POSITION("nbody.java", 82)
494 _r0 = _r17;
495 XMLVM_CHECK_NPE(0)
496 _r0.o = ((nbody_NBodySystem*) _r0.o)->fields.nbody_NBodySystem.bodies_;
497 _r1 = _r0;
498 _r2.i = XMLVMArray_count(((org_xmlvm_runtime_XMLVMArray*) _r1.o));
499 _r3.i = 0;
500 label190:;
501 if (_r3.i >= _r2.i) goto label224;
502 XMLVM_CHECK_NPE(1)
503 XMLVM_CHECK_ARRAY_BOUNDS(_r1.o, _r3.i);
504 _r4.o = ((JAVA_ARRAY_OBJECT*) (((org_xmlvm_runtime_XMLVMArray*) _r1.o)->fields.org_xmlvm_runtime_XMLVMArray.array_))[_r3.i];
505 XMLVM_SOURCE_POSITION("nbody.java", 83)
506 XMLVM_CHECK_NPE(4)
507 _r5.d = ((nbody_Body*) _r4.o)->fields.nbody_Body.x_;
508 XMLVM_CHECK_NPE(4)
509 _r7.d = ((nbody_Body*) _r4.o)->fields.nbody_Body.vx_;
510 _r7.d = _r7.d * _r18.d;
511 _r5.d = _r5.d + _r7.d;
512 XMLVM_CHECK_NPE(4)
513 ((nbody_Body*) _r4.o)->fields.nbody_Body.x_ = _r5.d;
514 XMLVM_SOURCE_POSITION("nbody.java", 84)
515 XMLVM_CHECK_NPE(4)
516 _r5.d = ((nbody_Body*) _r4.o)->fields.nbody_Body.y_;
517 XMLVM_CHECK_NPE(4)
518 _r7.d = ((nbody_Body*) _r4.o)->fields.nbody_Body.vy_;
519 _r7.d = _r7.d * _r18.d;
520 _r5.d = _r5.d + _r7.d;
521 XMLVM_CHECK_NPE(4)
522 ((nbody_Body*) _r4.o)->fields.nbody_Body.y_ = _r5.d;
523 XMLVM_SOURCE_POSITION("nbody.java", 85)
524 XMLVM_CHECK_NPE(4)
525 _r5.d = ((nbody_Body*) _r4.o)->fields.nbody_Body.z_;
526 XMLVM_CHECK_NPE(4)
527 _r7.d = ((nbody_Body*) _r4.o)->fields.nbody_Body.vz_;
528 _r7.d = _r7.d * _r18.d;
529 _r5.d = _r5.d + _r7.d;
530 XMLVM_CHECK_NPE(4)
531 ((nbody_Body*) _r4.o)->fields.nbody_Body.z_ = _r5.d;
532 _r3.i = _r3.i + 1;
533 goto label190;
534 label224:;
535 XMLVM_SOURCE_POSITION("nbody.java", 87)
536 XMLVM_EXIT_METHOD()
537 return;
538 //XMLVM_END_WRAPPER
539 }
540
nbody_NBodySystem_energy__(JAVA_OBJECT me)541 JAVA_DOUBLE nbody_NBodySystem_energy__(JAVA_OBJECT me)
542 {
543 //XMLVM_BEGIN_WRAPPER[nbody_NBodySystem_energy__]
544 XMLVM_ENTER_METHOD("nbody.NBodySystem", "energy", "?")
545 XMLVMElem _r0;
546 XMLVMElem _r1;
547 XMLVMElem _r2;
548 XMLVMElem _r3;
549 XMLVMElem _r4;
550 XMLVMElem _r5;
551 XMLVMElem _r6;
552 XMLVMElem _r7;
553 XMLVMElem _r8;
554 XMLVMElem _r9;
555 XMLVMElem _r10;
556 XMLVMElem _r11;
557 XMLVMElem _r12;
558 XMLVMElem _r13;
559 XMLVMElem _r14;
560 XMLVMElem _r15;
561 XMLVMElem _r16;
562 XMLVMElem _r17;
563 XMLVMElem _r18;
564 _r18.o = me;
565 XMLVM_SOURCE_POSITION("nbody.java", 91)
566 _r1.d = 0.0;
567 _r3.i = 0;
568 _r15 = _r3;
569 _r16 = _r1;
570 _r2 = _r16;
571 _r1 = _r15;
572 label9:;
573 XMLVM_SOURCE_POSITION("nbody.java", 93)
574 _r0 = _r18;
575 XMLVM_CHECK_NPE(0)
576 _r0.o = ((nbody_NBodySystem*) _r0.o)->fields.nbody_NBodySystem.bodies_;
577 _r4 = _r0;
578 _r4.i = XMLVMArray_count(((org_xmlvm_runtime_XMLVMArray*) _r4.o));
579 if (_r1.i >= _r4.i) goto label108;
580 XMLVM_SOURCE_POSITION("nbody.java", 94)
581 _r0 = _r18;
582 XMLVM_CHECK_NPE(0)
583 _r0.o = ((nbody_NBodySystem*) _r0.o)->fields.nbody_NBodySystem.bodies_;
584 _r4 = _r0;
585 XMLVM_CHECK_NPE(4)
586 XMLVM_CHECK_ARRAY_BOUNDS(_r4.o, _r1.i);
587 _r4.o = ((JAVA_ARRAY_OBJECT*) (((org_xmlvm_runtime_XMLVMArray*) _r4.o)->fields.org_xmlvm_runtime_XMLVMArray.array_))[_r1.i];
588 XMLVM_SOURCE_POSITION("nbody.java", 95)
589 _r5.d = 0.5;
590 XMLVM_CHECK_NPE(4)
591 _r7.d = ((nbody_Body*) _r4.o)->fields.nbody_Body.mass_;
592 _r5.d = _r5.d * _r7.d;
593 XMLVM_CHECK_NPE(4)
594 _r7.d = ((nbody_Body*) _r4.o)->fields.nbody_Body.vx_;
595 XMLVM_CHECK_NPE(4)
596 _r9.d = ((nbody_Body*) _r4.o)->fields.nbody_Body.vx_;
597 _r7.d = _r7.d * _r9.d;
598 XMLVM_CHECK_NPE(4)
599 _r9.d = ((nbody_Body*) _r4.o)->fields.nbody_Body.vy_;
600 XMLVM_CHECK_NPE(4)
601 _r11.d = ((nbody_Body*) _r4.o)->fields.nbody_Body.vy_;
602 _r9.d = _r9.d * _r11.d;
603 _r7.d = _r7.d + _r9.d;
604 XMLVM_CHECK_NPE(4)
605 _r9.d = ((nbody_Body*) _r4.o)->fields.nbody_Body.vz_;
606 XMLVM_CHECK_NPE(4)
607 _r11.d = ((nbody_Body*) _r4.o)->fields.nbody_Body.vz_;
608 _r9.d = _r9.d * _r11.d;
609 _r7.d = _r7.d + _r9.d;
610 _r5.d = _r5.d * _r7.d;
611 _r2.d = _r2.d + _r5.d;
612 _r5.i = _r1.i + 1;
613 _r15 = _r5;
614 _r5 = _r2;
615 _r2 = _r15;
616 label53:;
617 XMLVM_SOURCE_POSITION("nbody.java", 100)
618 _r0 = _r18;
619 XMLVM_CHECK_NPE(0)
620 _r0.o = ((nbody_NBodySystem*) _r0.o)->fields.nbody_NBodySystem.bodies_;
621 _r3 = _r0;
622 _r3.i = XMLVMArray_count(((org_xmlvm_runtime_XMLVMArray*) _r3.o));
623 if (_r2.i >= _r3.i) goto label104;
624 XMLVM_SOURCE_POSITION("nbody.java", 101)
625 _r0 = _r18;
626 XMLVM_CHECK_NPE(0)
627 _r0.o = ((nbody_NBodySystem*) _r0.o)->fields.nbody_NBodySystem.bodies_;
628 _r3 = _r0;
629 XMLVM_CHECK_NPE(3)
630 XMLVM_CHECK_ARRAY_BOUNDS(_r3.o, _r2.i);
631 _r3.o = ((JAVA_ARRAY_OBJECT*) (((org_xmlvm_runtime_XMLVMArray*) _r3.o)->fields.org_xmlvm_runtime_XMLVMArray.array_))[_r2.i];
632 XMLVM_SOURCE_POSITION("nbody.java", 102)
633 XMLVM_CHECK_NPE(4)
634 _r7.d = ((nbody_Body*) _r4.o)->fields.nbody_Body.x_;
635 XMLVM_CHECK_NPE(3)
636 _r9.d = ((nbody_Body*) _r3.o)->fields.nbody_Body.x_;
637 _r7.d = _r7.d - _r9.d;
638 XMLVM_SOURCE_POSITION("nbody.java", 103)
639 XMLVM_CHECK_NPE(4)
640 _r9.d = ((nbody_Body*) _r4.o)->fields.nbody_Body.y_;
641 XMLVM_CHECK_NPE(3)
642 _r11.d = ((nbody_Body*) _r3.o)->fields.nbody_Body.y_;
643 _r9.d = _r9.d - _r11.d;
644 XMLVM_SOURCE_POSITION("nbody.java", 104)
645 XMLVM_CHECK_NPE(4)
646 _r11.d = ((nbody_Body*) _r4.o)->fields.nbody_Body.z_;
647 XMLVM_CHECK_NPE(3)
648 _r13.d = ((nbody_Body*) _r3.o)->fields.nbody_Body.z_;
649 _r11.d = _r11.d - _r13.d;
650 _r7.d = _r7.d * _r7.d;
651 _r9.d = _r9.d * _r9.d;
652 _r7.d = _r7.d + _r9.d;
653 _r9.d = _r11.d * _r11.d;
654 _r7.d = _r7.d + _r9.d;
655 XMLVM_SOURCE_POSITION("nbody.java", 106)
656 _r7.d = java_lang_Math_sqrt___double(_r7.d);
657 XMLVM_SOURCE_POSITION("nbody.java", 107)
658 XMLVM_CHECK_NPE(4)
659 _r9.d = ((nbody_Body*) _r4.o)->fields.nbody_Body.mass_;
660 XMLVM_CHECK_NPE(3)
661 _r11.d = ((nbody_Body*) _r3.o)->fields.nbody_Body.mass_;
662 _r9.d = _r9.d * _r11.d;
663 _r7.d = _r9.d / _r7.d;
664 _r5.d = _r5.d - _r7.d;
665 _r2.i = _r2.i + 1;
666 goto label53;
667 label104:;
668 _r1.i = _r1.i + 1;
669 _r2 = _r5;
670 goto label9;
671 label108:;
672 XMLVM_SOURCE_POSITION("nbody.java", 110)
673 XMLVM_EXIT_METHOD()
674 return _r2.d;
675 //XMLVM_END_WRAPPER
676 }
677
678