| /* |
| * Copyright 2013 The Emscripten Authors. All rights reserved. |
| * Emscripten is available under two separate licenses, the MIT license and the |
| * University of Illinois/NCSA Open Source License. Both these licenses can be |
| * found in the LICENSE file. |
| */ |
| |
| #include "xmlvm.h" |
| #include "java_lang_Math.h" |
| #include "nbody_Body.h" |
| |
| #include "nbody_NBodySystem.h" |
| |
| #define XMLVM_CURRENT_CLASS_NAME NBodySystem |
| #define XMLVM_CURRENT_PKG_CLASS_NAME nbody_NBodySystem |
| |
| __TIB_DEFINITION_nbody_NBodySystem __TIB_nbody_NBodySystem = { |
| 0, // classInitializationBegan |
| 0, // classInitialized |
| -1, // initializerThreadId |
| __INIT_nbody_NBodySystem, // classInitializer |
| "nbody.NBodySystem", // className |
| "nbody", // package |
| JAVA_NULL, // enclosingClassName |
| JAVA_NULL, // enclosingMethodName |
| JAVA_NULL, // signature |
| (__TIB_DEFINITION_TEMPLATE*) &__TIB_java_lang_Object, // extends |
| sizeof(nbody_NBodySystem), // sizeInstance |
| XMLVM_TYPE_CLASS}; |
| |
| JAVA_OBJECT __CLASS_nbody_NBodySystem; |
| JAVA_OBJECT __CLASS_nbody_NBodySystem_1ARRAY; |
| JAVA_OBJECT __CLASS_nbody_NBodySystem_2ARRAY; |
| JAVA_OBJECT __CLASS_nbody_NBodySystem_3ARRAY; |
| //XMLVM_BEGIN_IMPLEMENTATION |
| //XMLVM_END_IMPLEMENTATION |
| |
| |
| #include "xmlvm-reflection.h" |
| |
| static XMLVM_FIELD_REFLECTION_DATA __field_reflection_data[] = { |
| }; |
| |
| static XMLVM_CONSTRUCTOR_REFLECTION_DATA __constructor_reflection_data[] = { |
| }; |
| |
| static JAVA_OBJECT constructor_dispatcher(JAVA_OBJECT constructor, JAVA_OBJECT arguments) |
| { |
| XMLVM_NOT_IMPLEMENTED(); |
| } |
| |
| static XMLVM_METHOD_REFLECTION_DATA __method_reflection_data[] = { |
| }; |
| |
| static JAVA_OBJECT method_dispatcher(JAVA_OBJECT method, JAVA_OBJECT receiver, JAVA_OBJECT arguments) |
| { |
| XMLVM_NOT_IMPLEMENTED(); |
| } |
| |
| void __INIT_nbody_NBodySystem() |
| { |
| staticInitializerLock(&__TIB_nbody_NBodySystem); |
| |
| // While the static initializer mutex is locked, locally store the value of |
| // whether class initialization began or not |
| int initBegan = __TIB_nbody_NBodySystem.classInitializationBegan; |
| |
| // Whether or not class initialization had already began, it has begun now |
| __TIB_nbody_NBodySystem.classInitializationBegan = 1; |
| |
| staticInitializerUnlock(&__TIB_nbody_NBodySystem); |
| |
| JAVA_LONG curThreadId = (JAVA_LONG)pthread_self(); |
| if (initBegan) { |
| if (__TIB_nbody_NBodySystem.initializerThreadId != curThreadId) { |
| // Busy wait until the other thread finishes initializing this class |
| while (!__TIB_nbody_NBodySystem.classInitialized) { |
| // do nothing |
| } |
| } |
| } else { |
| __TIB_nbody_NBodySystem.initializerThreadId = curThreadId; |
| XMLVM_CLASS_USED("nbody.NBodySystem") |
| __INIT_IMPL_nbody_NBodySystem(); |
| } |
| } |
| |
| void __INIT_IMPL_nbody_NBodySystem() |
| { |
| // Initialize base class if necessary |
| XMLVM_CLASS_INIT(java_lang_Object) |
| __TIB_nbody_NBodySystem.newInstanceFunc = __NEW_INSTANCE_nbody_NBodySystem; |
| // Copy vtable from base class |
| XMLVM_MEMCPY(__TIB_nbody_NBodySystem.vtable, __TIB_java_lang_Object.vtable, sizeof(__TIB_java_lang_Object.vtable)); |
| // Initialize vtable for this class |
| // Initialize interface information |
| __TIB_nbody_NBodySystem.numImplementedInterfaces = 0; |
| __TIB_nbody_NBodySystem.implementedInterfaces = (__TIB_DEFINITION_TEMPLATE* (*)[1]) XMLVM_MALLOC(sizeof(__TIB_DEFINITION_TEMPLATE*) * 0); |
| |
| // Initialize interfaces if necessary and assign tib to implementedInterfaces |
| |
| __TIB_nbody_NBodySystem.declaredFields = &__field_reflection_data[0]; |
| __TIB_nbody_NBodySystem.numDeclaredFields = sizeof(__field_reflection_data) / sizeof(XMLVM_FIELD_REFLECTION_DATA); |
| __TIB_nbody_NBodySystem.constructorDispatcherFunc = constructor_dispatcher; |
| __TIB_nbody_NBodySystem.declaredConstructors = &__constructor_reflection_data[0]; |
| __TIB_nbody_NBodySystem.numDeclaredConstructors = sizeof(__constructor_reflection_data) / sizeof(XMLVM_CONSTRUCTOR_REFLECTION_DATA); |
| __TIB_nbody_NBodySystem.methodDispatcherFunc = method_dispatcher; |
| __TIB_nbody_NBodySystem.declaredMethods = &__method_reflection_data[0]; |
| __TIB_nbody_NBodySystem.numDeclaredMethods = sizeof(__method_reflection_data) / sizeof(XMLVM_METHOD_REFLECTION_DATA); |
| __CLASS_nbody_NBodySystem = XMLVM_CREATE_CLASS_OBJECT(&__TIB_nbody_NBodySystem); |
| __TIB_nbody_NBodySystem.clazz = __CLASS_nbody_NBodySystem; |
| __TIB_nbody_NBodySystem.baseType = JAVA_NULL; |
| __CLASS_nbody_NBodySystem_1ARRAY = XMLVM_CREATE_ARRAY_CLASS_OBJECT(__CLASS_nbody_NBodySystem); |
| __CLASS_nbody_NBodySystem_2ARRAY = XMLVM_CREATE_ARRAY_CLASS_OBJECT(__CLASS_nbody_NBodySystem_1ARRAY); |
| __CLASS_nbody_NBodySystem_3ARRAY = XMLVM_CREATE_ARRAY_CLASS_OBJECT(__CLASS_nbody_NBodySystem_2ARRAY); |
| //XMLVM_BEGIN_WRAPPER[__INIT_nbody_NBodySystem] |
| //XMLVM_END_WRAPPER |
| |
| __TIB_nbody_NBodySystem.classInitialized = 1; |
| } |
| |
| void __DELETE_nbody_NBodySystem(void* me, void* client_data) |
| { |
| //XMLVM_BEGIN_WRAPPER[__DELETE_nbody_NBodySystem] |
| //XMLVM_END_WRAPPER |
| } |
| |
| void __INIT_INSTANCE_MEMBERS_nbody_NBodySystem(JAVA_OBJECT me, int derivedClassWillRegisterFinalizer) |
| { |
| __INIT_INSTANCE_MEMBERS_java_lang_Object(me, 0 || derivedClassWillRegisterFinalizer); |
| ((nbody_NBodySystem*) me)->fields.nbody_NBodySystem.bodies_ = (org_xmlvm_runtime_XMLVMArray*) JAVA_NULL; |
| //XMLVM_BEGIN_WRAPPER[__INIT_INSTANCE_MEMBERS_nbody_NBodySystem] |
| //XMLVM_END_WRAPPER |
| } |
| |
| JAVA_OBJECT __NEW_nbody_NBodySystem() |
| { XMLVM_CLASS_INIT(nbody_NBodySystem) |
| nbody_NBodySystem* me = (nbody_NBodySystem*) XMLVM_MALLOC(sizeof(nbody_NBodySystem)); |
| me->tib = &__TIB_nbody_NBodySystem; |
| __INIT_INSTANCE_MEMBERS_nbody_NBodySystem(me, 0); |
| //XMLVM_BEGIN_WRAPPER[__NEW_nbody_NBodySystem] |
| //XMLVM_END_WRAPPER |
| return me; |
| } |
| |
| JAVA_OBJECT __NEW_INSTANCE_nbody_NBodySystem() |
| { |
| JAVA_OBJECT me = JAVA_NULL; |
| me = __NEW_nbody_NBodySystem(); |
| nbody_NBodySystem___INIT___(me); |
| return me; |
| } |
| |
| void nbody_NBodySystem___INIT___(JAVA_OBJECT me) |
| { |
| //XMLVM_BEGIN_WRAPPER[nbody_NBodySystem___INIT___] |
| XMLVM_ENTER_METHOD("nbody.NBodySystem", "<init>", "?") |
| XMLVMElem _r0; |
| XMLVMElem _r1; |
| XMLVMElem _r2; |
| XMLVMElem _r3; |
| XMLVMElem _r4; |
| XMLVMElem _r5; |
| XMLVMElem _r6; |
| XMLVMElem _r7; |
| XMLVMElem _r8; |
| XMLVMElem _r9; |
| XMLVMElem _r10; |
| XMLVMElem _r11; |
| XMLVMElem _r12; |
| _r12.o = me; |
| _r11.i = 0; |
| _r3.d = 0.0; |
| XMLVM_SOURCE_POSITION("nbody.java", 39) |
| XMLVM_CHECK_NPE(12) |
| java_lang_Object___INIT___(_r12.o); |
| XMLVM_SOURCE_POSITION("nbody.java", 40) |
| _r0.i = 5; |
| XMLVM_CLASS_INIT(nbody_Body) |
| _r0.o = XMLVMArray_createSingleDimension(__CLASS_nbody_Body, _r0.i); |
| _r1.o = nbody_Body_sun__(); |
| XMLVM_CHECK_NPE(0) |
| XMLVM_CHECK_ARRAY_BOUNDS(_r0.o, _r11.i); |
| ((JAVA_ARRAY_OBJECT*) (((org_xmlvm_runtime_XMLVMArray*) _r0.o)->fields.org_xmlvm_runtime_XMLVMArray.array_))[_r11.i] = _r1.o; |
| _r1.i = 1; |
| _r2.o = nbody_Body_jupiter__(); |
| XMLVM_CHECK_NPE(0) |
| XMLVM_CHECK_ARRAY_BOUNDS(_r0.o, _r1.i); |
| ((JAVA_ARRAY_OBJECT*) (((org_xmlvm_runtime_XMLVMArray*) _r0.o)->fields.org_xmlvm_runtime_XMLVMArray.array_))[_r1.i] = _r2.o; |
| _r1.i = 2; |
| _r2.o = nbody_Body_saturn__(); |
| XMLVM_CHECK_NPE(0) |
| XMLVM_CHECK_ARRAY_BOUNDS(_r0.o, _r1.i); |
| ((JAVA_ARRAY_OBJECT*) (((org_xmlvm_runtime_XMLVMArray*) _r0.o)->fields.org_xmlvm_runtime_XMLVMArray.array_))[_r1.i] = _r2.o; |
| _r1.i = 3; |
| _r2.o = nbody_Body_uranus__(); |
| XMLVM_CHECK_NPE(0) |
| XMLVM_CHECK_ARRAY_BOUNDS(_r0.o, _r1.i); |
| ((JAVA_ARRAY_OBJECT*) (((org_xmlvm_runtime_XMLVMArray*) _r0.o)->fields.org_xmlvm_runtime_XMLVMArray.array_))[_r1.i] = _r2.o; |
| _r1.i = 4; |
| _r2.o = nbody_Body_neptune__(); |
| XMLVM_CHECK_NPE(0) |
| XMLVM_CHECK_ARRAY_BOUNDS(_r0.o, _r1.i); |
| ((JAVA_ARRAY_OBJECT*) (((org_xmlvm_runtime_XMLVMArray*) _r0.o)->fields.org_xmlvm_runtime_XMLVMArray.array_))[_r1.i] = _r2.o; |
| XMLVM_CHECK_NPE(12) |
| ((nbody_NBodySystem*) _r12.o)->fields.nbody_NBodySystem.bodies_ = _r0.o; |
| _r0 = _r11; |
| _r5 = _r3; |
| _r1 = _r3; |
| label48:; |
| XMLVM_SOURCE_POSITION("nbody.java", 51) |
| XMLVM_CHECK_NPE(12) |
| _r7.o = ((nbody_NBodySystem*) _r12.o)->fields.nbody_NBodySystem.bodies_; |
| _r7.i = XMLVMArray_count(((org_xmlvm_runtime_XMLVMArray*) _r7.o)); |
| if (_r0.i >= _r7.i) goto label98; |
| XMLVM_SOURCE_POSITION("nbody.java", 52) |
| XMLVM_CHECK_NPE(12) |
| _r7.o = ((nbody_NBodySystem*) _r12.o)->fields.nbody_NBodySystem.bodies_; |
| XMLVM_CHECK_NPE(7) |
| XMLVM_CHECK_ARRAY_BOUNDS(_r7.o, _r0.i); |
| _r7.o = ((JAVA_ARRAY_OBJECT*) (((org_xmlvm_runtime_XMLVMArray*) _r7.o)->fields.org_xmlvm_runtime_XMLVMArray.array_))[_r0.i]; |
| XMLVM_CHECK_NPE(7) |
| _r7.d = ((nbody_Body*) _r7.o)->fields.nbody_Body.vx_; |
| XMLVM_CHECK_NPE(12) |
| _r9.o = ((nbody_NBodySystem*) _r12.o)->fields.nbody_NBodySystem.bodies_; |
| XMLVM_CHECK_NPE(9) |
| XMLVM_CHECK_ARRAY_BOUNDS(_r9.o, _r0.i); |
| _r9.o = ((JAVA_ARRAY_OBJECT*) (((org_xmlvm_runtime_XMLVMArray*) _r9.o)->fields.org_xmlvm_runtime_XMLVMArray.array_))[_r0.i]; |
| XMLVM_CHECK_NPE(9) |
| _r9.d = ((nbody_Body*) _r9.o)->fields.nbody_Body.mass_; |
| _r7.d = _r7.d * _r9.d; |
| _r1.d = _r1.d + _r7.d; |
| XMLVM_SOURCE_POSITION("nbody.java", 53) |
| XMLVM_CHECK_NPE(12) |
| _r7.o = ((nbody_NBodySystem*) _r12.o)->fields.nbody_NBodySystem.bodies_; |
| XMLVM_CHECK_NPE(7) |
| XMLVM_CHECK_ARRAY_BOUNDS(_r7.o, _r0.i); |
| _r7.o = ((JAVA_ARRAY_OBJECT*) (((org_xmlvm_runtime_XMLVMArray*) _r7.o)->fields.org_xmlvm_runtime_XMLVMArray.array_))[_r0.i]; |
| XMLVM_CHECK_NPE(7) |
| _r7.d = ((nbody_Body*) _r7.o)->fields.nbody_Body.vy_; |
| XMLVM_CHECK_NPE(12) |
| _r9.o = ((nbody_NBodySystem*) _r12.o)->fields.nbody_NBodySystem.bodies_; |
| XMLVM_CHECK_NPE(9) |
| XMLVM_CHECK_ARRAY_BOUNDS(_r9.o, _r0.i); |
| _r9.o = ((JAVA_ARRAY_OBJECT*) (((org_xmlvm_runtime_XMLVMArray*) _r9.o)->fields.org_xmlvm_runtime_XMLVMArray.array_))[_r0.i]; |
| XMLVM_CHECK_NPE(9) |
| _r9.d = ((nbody_Body*) _r9.o)->fields.nbody_Body.mass_; |
| _r7.d = _r7.d * _r9.d; |
| _r3.d = _r3.d + _r7.d; |
| XMLVM_SOURCE_POSITION("nbody.java", 54) |
| XMLVM_CHECK_NPE(12) |
| _r7.o = ((nbody_NBodySystem*) _r12.o)->fields.nbody_NBodySystem.bodies_; |
| XMLVM_CHECK_NPE(7) |
| XMLVM_CHECK_ARRAY_BOUNDS(_r7.o, _r0.i); |
| _r7.o = ((JAVA_ARRAY_OBJECT*) (((org_xmlvm_runtime_XMLVMArray*) _r7.o)->fields.org_xmlvm_runtime_XMLVMArray.array_))[_r0.i]; |
| XMLVM_CHECK_NPE(7) |
| _r7.d = ((nbody_Body*) _r7.o)->fields.nbody_Body.vz_; |
| XMLVM_CHECK_NPE(12) |
| _r9.o = ((nbody_NBodySystem*) _r12.o)->fields.nbody_NBodySystem.bodies_; |
| XMLVM_CHECK_NPE(9) |
| XMLVM_CHECK_ARRAY_BOUNDS(_r9.o, _r0.i); |
| _r9.o = ((JAVA_ARRAY_OBJECT*) (((org_xmlvm_runtime_XMLVMArray*) _r9.o)->fields.org_xmlvm_runtime_XMLVMArray.array_))[_r0.i]; |
| XMLVM_CHECK_NPE(9) |
| _r9.d = ((nbody_Body*) _r9.o)->fields.nbody_Body.mass_; |
| _r7.d = _r7.d * _r9.d; |
| _r5.d = _r5.d + _r7.d; |
| _r0.i = _r0.i + 1; |
| goto label48; |
| label98:; |
| XMLVM_SOURCE_POSITION("nbody.java", 56) |
| XMLVM_CHECK_NPE(12) |
| _r0.o = ((nbody_NBodySystem*) _r12.o)->fields.nbody_NBodySystem.bodies_; |
| XMLVM_CHECK_NPE(0) |
| XMLVM_CHECK_ARRAY_BOUNDS(_r0.o, _r11.i); |
| _r0.o = ((JAVA_ARRAY_OBJECT*) (((org_xmlvm_runtime_XMLVMArray*) _r0.o)->fields.org_xmlvm_runtime_XMLVMArray.array_))[_r11.i]; |
| XMLVM_CHECK_NPE(0) |
| nbody_Body_offsetMomentum___double_double_double(_r0.o, _r1.d, _r3.d, _r5.d); |
| XMLVM_SOURCE_POSITION("nbody.java", 57) |
| XMLVM_EXIT_METHOD() |
| return; |
| //XMLVM_END_WRAPPER |
| } |
| |
| void nbody_NBodySystem_advance___double(JAVA_OBJECT me, JAVA_DOUBLE n1) |
| { |
| //XMLVM_BEGIN_WRAPPER[nbody_NBodySystem_advance___double] |
| XMLVM_ENTER_METHOD("nbody.NBodySystem", "advance", "?") |
| XMLVMElem _r0; |
| XMLVMElem _r1; |
| XMLVMElem _r2; |
| XMLVMElem _r3; |
| XMLVMElem _r4; |
| XMLVMElem _r5; |
| XMLVMElem _r6; |
| XMLVMElem _r7; |
| XMLVMElem _r8; |
| XMLVMElem _r9; |
| XMLVMElem _r10; |
| XMLVMElem _r11; |
| XMLVMElem _r12; |
| XMLVMElem _r13; |
| XMLVMElem _r14; |
| XMLVMElem _r15; |
| XMLVMElem _r16; |
| XMLVMElem _r17; |
| XMLVMElem _r18; |
| XMLVMElem _r19; |
| _r17.o = me; |
| _r18.d = n1; |
| XMLVM_SOURCE_POSITION("nbody.java", 61) |
| _r1.i = 0; |
| label1:; |
| _r0 = _r17; |
| XMLVM_CHECK_NPE(0) |
| _r0.o = ((nbody_NBodySystem*) _r0.o)->fields.nbody_NBodySystem.bodies_; |
| _r2 = _r0; |
| _r2.i = XMLVMArray_count(((org_xmlvm_runtime_XMLVMArray*) _r2.o)); |
| if (_r1.i >= _r2.i) goto label183; |
| XMLVM_SOURCE_POSITION("nbody.java", 62) |
| _r0 = _r17; |
| XMLVM_CHECK_NPE(0) |
| _r0.o = ((nbody_NBodySystem*) _r0.o)->fields.nbody_NBodySystem.bodies_; |
| _r2 = _r0; |
| XMLVM_CHECK_NPE(2) |
| XMLVM_CHECK_ARRAY_BOUNDS(_r2.o, _r1.i); |
| _r2.o = ((JAVA_ARRAY_OBJECT*) (((org_xmlvm_runtime_XMLVMArray*) _r2.o)->fields.org_xmlvm_runtime_XMLVMArray.array_))[_r1.i]; |
| XMLVM_SOURCE_POSITION("nbody.java", 63) |
| _r3.i = _r1.i + 1; |
| label18:; |
| _r0 = _r17; |
| XMLVM_CHECK_NPE(0) |
| _r0.o = ((nbody_NBodySystem*) _r0.o)->fields.nbody_NBodySystem.bodies_; |
| _r4 = _r0; |
| _r4.i = XMLVMArray_count(((org_xmlvm_runtime_XMLVMArray*) _r4.o)); |
| if (_r3.i >= _r4.i) goto label179; |
| XMLVM_SOURCE_POSITION("nbody.java", 64) |
| XMLVM_CHECK_NPE(2) |
| _r4.d = ((nbody_Body*) _r2.o)->fields.nbody_Body.x_; |
| _r0 = _r17; |
| XMLVM_CHECK_NPE(0) |
| _r0.o = ((nbody_NBodySystem*) _r0.o)->fields.nbody_NBodySystem.bodies_; |
| _r6 = _r0; |
| XMLVM_CHECK_NPE(6) |
| XMLVM_CHECK_ARRAY_BOUNDS(_r6.o, _r3.i); |
| _r6.o = ((JAVA_ARRAY_OBJECT*) (((org_xmlvm_runtime_XMLVMArray*) _r6.o)->fields.org_xmlvm_runtime_XMLVMArray.array_))[_r3.i]; |
| XMLVM_CHECK_NPE(6) |
| _r6.d = ((nbody_Body*) _r6.o)->fields.nbody_Body.x_; |
| _r4.d = _r4.d - _r6.d; |
| XMLVM_SOURCE_POSITION("nbody.java", 65) |
| XMLVM_CHECK_NPE(2) |
| _r6.d = ((nbody_Body*) _r2.o)->fields.nbody_Body.y_; |
| _r0 = _r17; |
| XMLVM_CHECK_NPE(0) |
| _r0.o = ((nbody_NBodySystem*) _r0.o)->fields.nbody_NBodySystem.bodies_; |
| _r8 = _r0; |
| XMLVM_CHECK_NPE(8) |
| XMLVM_CHECK_ARRAY_BOUNDS(_r8.o, _r3.i); |
| _r8.o = ((JAVA_ARRAY_OBJECT*) (((org_xmlvm_runtime_XMLVMArray*) _r8.o)->fields.org_xmlvm_runtime_XMLVMArray.array_))[_r3.i]; |
| XMLVM_CHECK_NPE(8) |
| _r8.d = ((nbody_Body*) _r8.o)->fields.nbody_Body.y_; |
| _r6.d = _r6.d - _r8.d; |
| XMLVM_SOURCE_POSITION("nbody.java", 66) |
| XMLVM_CHECK_NPE(2) |
| _r8.d = ((nbody_Body*) _r2.o)->fields.nbody_Body.z_; |
| _r0 = _r17; |
| XMLVM_CHECK_NPE(0) |
| _r0.o = ((nbody_NBodySystem*) _r0.o)->fields.nbody_NBodySystem.bodies_; |
| _r10 = _r0; |
| XMLVM_CHECK_NPE(10) |
| XMLVM_CHECK_ARRAY_BOUNDS(_r10.o, _r3.i); |
| _r10.o = ((JAVA_ARRAY_OBJECT*) (((org_xmlvm_runtime_XMLVMArray*) _r10.o)->fields.org_xmlvm_runtime_XMLVMArray.array_))[_r3.i]; |
| XMLVM_CHECK_NPE(10) |
| _r10.d = ((nbody_Body*) _r10.o)->fields.nbody_Body.z_; |
| _r8.d = _r8.d - _r10.d; |
| _r10.d = _r4.d * _r4.d; |
| _r12.d = _r6.d * _r6.d; |
| _r10.d = _r10.d + _r12.d; |
| _r12.d = _r8.d * _r8.d; |
| _r10.d = _r10.d + _r12.d; |
| XMLVM_SOURCE_POSITION("nbody.java", 69) |
| _r12.d = java_lang_Math_sqrt___double(_r10.d); |
| XMLVM_SOURCE_POSITION("nbody.java", 70) |
| _r10.d = _r10.d * _r12.d; |
| _r10.d = _r18.d / _r10.d; |
| XMLVM_SOURCE_POSITION("nbody.java", 72) |
| XMLVM_CHECK_NPE(2) |
| _r12.d = ((nbody_Body*) _r2.o)->fields.nbody_Body.vx_; |
| _r0 = _r17; |
| XMLVM_CHECK_NPE(0) |
| _r0.o = ((nbody_NBodySystem*) _r0.o)->fields.nbody_NBodySystem.bodies_; |
| _r14 = _r0; |
| XMLVM_CHECK_NPE(14) |
| XMLVM_CHECK_ARRAY_BOUNDS(_r14.o, _r3.i); |
| _r14.o = ((JAVA_ARRAY_OBJECT*) (((org_xmlvm_runtime_XMLVMArray*) _r14.o)->fields.org_xmlvm_runtime_XMLVMArray.array_))[_r3.i]; |
| XMLVM_CHECK_NPE(14) |
| _r14.d = ((nbody_Body*) _r14.o)->fields.nbody_Body.mass_; |
| _r14.d = _r14.d * _r4.d; |
| _r14.d = _r14.d * _r10.d; |
| _r12.d = _r12.d - _r14.d; |
| XMLVM_CHECK_NPE(2) |
| ((nbody_Body*) _r2.o)->fields.nbody_Body.vx_ = _r12.d; |
| XMLVM_SOURCE_POSITION("nbody.java", 73) |
| XMLVM_CHECK_NPE(2) |
| _r12.d = ((nbody_Body*) _r2.o)->fields.nbody_Body.vy_; |
| _r0 = _r17; |
| XMLVM_CHECK_NPE(0) |
| _r0.o = ((nbody_NBodySystem*) _r0.o)->fields.nbody_NBodySystem.bodies_; |
| _r14 = _r0; |
| XMLVM_CHECK_NPE(14) |
| XMLVM_CHECK_ARRAY_BOUNDS(_r14.o, _r3.i); |
| _r14.o = ((JAVA_ARRAY_OBJECT*) (((org_xmlvm_runtime_XMLVMArray*) _r14.o)->fields.org_xmlvm_runtime_XMLVMArray.array_))[_r3.i]; |
| XMLVM_CHECK_NPE(14) |
| _r14.d = ((nbody_Body*) _r14.o)->fields.nbody_Body.mass_; |
| _r14.d = _r14.d * _r6.d; |
| _r14.d = _r14.d * _r10.d; |
| _r12.d = _r12.d - _r14.d; |
| XMLVM_CHECK_NPE(2) |
| ((nbody_Body*) _r2.o)->fields.nbody_Body.vy_ = _r12.d; |
| XMLVM_SOURCE_POSITION("nbody.java", 74) |
| XMLVM_CHECK_NPE(2) |
| _r12.d = ((nbody_Body*) _r2.o)->fields.nbody_Body.vz_; |
| _r0 = _r17; |
| XMLVM_CHECK_NPE(0) |
| _r0.o = ((nbody_NBodySystem*) _r0.o)->fields.nbody_NBodySystem.bodies_; |
| _r14 = _r0; |
| XMLVM_CHECK_NPE(14) |
| XMLVM_CHECK_ARRAY_BOUNDS(_r14.o, _r3.i); |
| _r14.o = ((JAVA_ARRAY_OBJECT*) (((org_xmlvm_runtime_XMLVMArray*) _r14.o)->fields.org_xmlvm_runtime_XMLVMArray.array_))[_r3.i]; |
| XMLVM_CHECK_NPE(14) |
| _r14.d = ((nbody_Body*) _r14.o)->fields.nbody_Body.mass_; |
| _r14.d = _r14.d * _r8.d; |
| _r14.d = _r14.d * _r10.d; |
| _r12.d = _r12.d - _r14.d; |
| XMLVM_CHECK_NPE(2) |
| ((nbody_Body*) _r2.o)->fields.nbody_Body.vz_ = _r12.d; |
| XMLVM_SOURCE_POSITION("nbody.java", 76) |
| _r0 = _r17; |
| XMLVM_CHECK_NPE(0) |
| _r0.o = ((nbody_NBodySystem*) _r0.o)->fields.nbody_NBodySystem.bodies_; |
| _r12 = _r0; |
| XMLVM_CHECK_NPE(12) |
| XMLVM_CHECK_ARRAY_BOUNDS(_r12.o, _r3.i); |
| _r12.o = ((JAVA_ARRAY_OBJECT*) (((org_xmlvm_runtime_XMLVMArray*) _r12.o)->fields.org_xmlvm_runtime_XMLVMArray.array_))[_r3.i]; |
| XMLVM_CHECK_NPE(12) |
| _r13.d = ((nbody_Body*) _r12.o)->fields.nbody_Body.vx_; |
| XMLVM_CHECK_NPE(2) |
| _r15.d = ((nbody_Body*) _r2.o)->fields.nbody_Body.mass_; |
| _r4.d = _r4.d * _r15.d; |
| _r4.d = _r4.d * _r10.d; |
| _r4.d = _r4.d + _r13.d; |
| XMLVM_CHECK_NPE(12) |
| ((nbody_Body*) _r12.o)->fields.nbody_Body.vx_ = _r4.d; |
| XMLVM_SOURCE_POSITION("nbody.java", 77) |
| _r0 = _r17; |
| XMLVM_CHECK_NPE(0) |
| _r0.o = ((nbody_NBodySystem*) _r0.o)->fields.nbody_NBodySystem.bodies_; |
| _r4 = _r0; |
| XMLVM_CHECK_NPE(4) |
| XMLVM_CHECK_ARRAY_BOUNDS(_r4.o, _r3.i); |
| _r4.o = ((JAVA_ARRAY_OBJECT*) (((org_xmlvm_runtime_XMLVMArray*) _r4.o)->fields.org_xmlvm_runtime_XMLVMArray.array_))[_r3.i]; |
| XMLVM_CHECK_NPE(4) |
| _r12.d = ((nbody_Body*) _r4.o)->fields.nbody_Body.vy_; |
| XMLVM_CHECK_NPE(2) |
| _r14.d = ((nbody_Body*) _r2.o)->fields.nbody_Body.mass_; |
| _r5.d = _r6.d * _r14.d; |
| _r5.d = _r5.d * _r10.d; |
| _r5.d = _r5.d + _r12.d; |
| XMLVM_CHECK_NPE(4) |
| ((nbody_Body*) _r4.o)->fields.nbody_Body.vy_ = _r5.d; |
| XMLVM_SOURCE_POSITION("nbody.java", 78) |
| _r0 = _r17; |
| XMLVM_CHECK_NPE(0) |
| _r0.o = ((nbody_NBodySystem*) _r0.o)->fields.nbody_NBodySystem.bodies_; |
| _r4 = _r0; |
| XMLVM_CHECK_NPE(4) |
| XMLVM_CHECK_ARRAY_BOUNDS(_r4.o, _r3.i); |
| _r4.o = ((JAVA_ARRAY_OBJECT*) (((org_xmlvm_runtime_XMLVMArray*) _r4.o)->fields.org_xmlvm_runtime_XMLVMArray.array_))[_r3.i]; |
| XMLVM_CHECK_NPE(4) |
| _r5.d = ((nbody_Body*) _r4.o)->fields.nbody_Body.vz_; |
| XMLVM_CHECK_NPE(2) |
| _r12.d = ((nbody_Body*) _r2.o)->fields.nbody_Body.mass_; |
| _r7.d = _r8.d * _r12.d; |
| _r7.d = _r7.d * _r10.d; |
| _r5.d = _r5.d + _r7.d; |
| XMLVM_CHECK_NPE(4) |
| ((nbody_Body*) _r4.o)->fields.nbody_Body.vz_ = _r5.d; |
| _r3.i = _r3.i + 1; |
| goto label18; |
| label179:; |
| _r1.i = _r1.i + 1; |
| goto label1; |
| label183:; |
| XMLVM_SOURCE_POSITION("nbody.java", 82) |
| _r0 = _r17; |
| XMLVM_CHECK_NPE(0) |
| _r0.o = ((nbody_NBodySystem*) _r0.o)->fields.nbody_NBodySystem.bodies_; |
| _r1 = _r0; |
| _r2.i = XMLVMArray_count(((org_xmlvm_runtime_XMLVMArray*) _r1.o)); |
| _r3.i = 0; |
| label190:; |
| if (_r3.i >= _r2.i) goto label224; |
| XMLVM_CHECK_NPE(1) |
| XMLVM_CHECK_ARRAY_BOUNDS(_r1.o, _r3.i); |
| _r4.o = ((JAVA_ARRAY_OBJECT*) (((org_xmlvm_runtime_XMLVMArray*) _r1.o)->fields.org_xmlvm_runtime_XMLVMArray.array_))[_r3.i]; |
| XMLVM_SOURCE_POSITION("nbody.java", 83) |
| XMLVM_CHECK_NPE(4) |
| _r5.d = ((nbody_Body*) _r4.o)->fields.nbody_Body.x_; |
| XMLVM_CHECK_NPE(4) |
| _r7.d = ((nbody_Body*) _r4.o)->fields.nbody_Body.vx_; |
| _r7.d = _r7.d * _r18.d; |
| _r5.d = _r5.d + _r7.d; |
| XMLVM_CHECK_NPE(4) |
| ((nbody_Body*) _r4.o)->fields.nbody_Body.x_ = _r5.d; |
| XMLVM_SOURCE_POSITION("nbody.java", 84) |
| XMLVM_CHECK_NPE(4) |
| _r5.d = ((nbody_Body*) _r4.o)->fields.nbody_Body.y_; |
| XMLVM_CHECK_NPE(4) |
| _r7.d = ((nbody_Body*) _r4.o)->fields.nbody_Body.vy_; |
| _r7.d = _r7.d * _r18.d; |
| _r5.d = _r5.d + _r7.d; |
| XMLVM_CHECK_NPE(4) |
| ((nbody_Body*) _r4.o)->fields.nbody_Body.y_ = _r5.d; |
| XMLVM_SOURCE_POSITION("nbody.java", 85) |
| XMLVM_CHECK_NPE(4) |
| _r5.d = ((nbody_Body*) _r4.o)->fields.nbody_Body.z_; |
| XMLVM_CHECK_NPE(4) |
| _r7.d = ((nbody_Body*) _r4.o)->fields.nbody_Body.vz_; |
| _r7.d = _r7.d * _r18.d; |
| _r5.d = _r5.d + _r7.d; |
| XMLVM_CHECK_NPE(4) |
| ((nbody_Body*) _r4.o)->fields.nbody_Body.z_ = _r5.d; |
| _r3.i = _r3.i + 1; |
| goto label190; |
| label224:; |
| XMLVM_SOURCE_POSITION("nbody.java", 87) |
| XMLVM_EXIT_METHOD() |
| return; |
| //XMLVM_END_WRAPPER |
| } |
| |
| JAVA_DOUBLE nbody_NBodySystem_energy__(JAVA_OBJECT me) |
| { |
| //XMLVM_BEGIN_WRAPPER[nbody_NBodySystem_energy__] |
| XMLVM_ENTER_METHOD("nbody.NBodySystem", "energy", "?") |
| XMLVMElem _r0; |
| XMLVMElem _r1; |
| XMLVMElem _r2; |
| XMLVMElem _r3; |
| XMLVMElem _r4; |
| XMLVMElem _r5; |
| XMLVMElem _r6; |
| XMLVMElem _r7; |
| XMLVMElem _r8; |
| XMLVMElem _r9; |
| XMLVMElem _r10; |
| XMLVMElem _r11; |
| XMLVMElem _r12; |
| XMLVMElem _r13; |
| XMLVMElem _r14; |
| XMLVMElem _r15; |
| XMLVMElem _r16; |
| XMLVMElem _r17; |
| XMLVMElem _r18; |
| _r18.o = me; |
| XMLVM_SOURCE_POSITION("nbody.java", 91) |
| _r1.d = 0.0; |
| _r3.i = 0; |
| _r15 = _r3; |
| _r16 = _r1; |
| _r2 = _r16; |
| _r1 = _r15; |
| label9:; |
| XMLVM_SOURCE_POSITION("nbody.java", 93) |
| _r0 = _r18; |
| XMLVM_CHECK_NPE(0) |
| _r0.o = ((nbody_NBodySystem*) _r0.o)->fields.nbody_NBodySystem.bodies_; |
| _r4 = _r0; |
| _r4.i = XMLVMArray_count(((org_xmlvm_runtime_XMLVMArray*) _r4.o)); |
| if (_r1.i >= _r4.i) goto label108; |
| XMLVM_SOURCE_POSITION("nbody.java", 94) |
| _r0 = _r18; |
| XMLVM_CHECK_NPE(0) |
| _r0.o = ((nbody_NBodySystem*) _r0.o)->fields.nbody_NBodySystem.bodies_; |
| _r4 = _r0; |
| XMLVM_CHECK_NPE(4) |
| XMLVM_CHECK_ARRAY_BOUNDS(_r4.o, _r1.i); |
| _r4.o = ((JAVA_ARRAY_OBJECT*) (((org_xmlvm_runtime_XMLVMArray*) _r4.o)->fields.org_xmlvm_runtime_XMLVMArray.array_))[_r1.i]; |
| XMLVM_SOURCE_POSITION("nbody.java", 95) |
| _r5.d = 0.5; |
| XMLVM_CHECK_NPE(4) |
| _r7.d = ((nbody_Body*) _r4.o)->fields.nbody_Body.mass_; |
| _r5.d = _r5.d * _r7.d; |
| XMLVM_CHECK_NPE(4) |
| _r7.d = ((nbody_Body*) _r4.o)->fields.nbody_Body.vx_; |
| XMLVM_CHECK_NPE(4) |
| _r9.d = ((nbody_Body*) _r4.o)->fields.nbody_Body.vx_; |
| _r7.d = _r7.d * _r9.d; |
| XMLVM_CHECK_NPE(4) |
| _r9.d = ((nbody_Body*) _r4.o)->fields.nbody_Body.vy_; |
| XMLVM_CHECK_NPE(4) |
| _r11.d = ((nbody_Body*) _r4.o)->fields.nbody_Body.vy_; |
| _r9.d = _r9.d * _r11.d; |
| _r7.d = _r7.d + _r9.d; |
| XMLVM_CHECK_NPE(4) |
| _r9.d = ((nbody_Body*) _r4.o)->fields.nbody_Body.vz_; |
| XMLVM_CHECK_NPE(4) |
| _r11.d = ((nbody_Body*) _r4.o)->fields.nbody_Body.vz_; |
| _r9.d = _r9.d * _r11.d; |
| _r7.d = _r7.d + _r9.d; |
| _r5.d = _r5.d * _r7.d; |
| _r2.d = _r2.d + _r5.d; |
| _r5.i = _r1.i + 1; |
| _r15 = _r5; |
| _r5 = _r2; |
| _r2 = _r15; |
| label53:; |
| XMLVM_SOURCE_POSITION("nbody.java", 100) |
| _r0 = _r18; |
| XMLVM_CHECK_NPE(0) |
| _r0.o = ((nbody_NBodySystem*) _r0.o)->fields.nbody_NBodySystem.bodies_; |
| _r3 = _r0; |
| _r3.i = XMLVMArray_count(((org_xmlvm_runtime_XMLVMArray*) _r3.o)); |
| if (_r2.i >= _r3.i) goto label104; |
| XMLVM_SOURCE_POSITION("nbody.java", 101) |
| _r0 = _r18; |
| XMLVM_CHECK_NPE(0) |
| _r0.o = ((nbody_NBodySystem*) _r0.o)->fields.nbody_NBodySystem.bodies_; |
| _r3 = _r0; |
| XMLVM_CHECK_NPE(3) |
| XMLVM_CHECK_ARRAY_BOUNDS(_r3.o, _r2.i); |
| _r3.o = ((JAVA_ARRAY_OBJECT*) (((org_xmlvm_runtime_XMLVMArray*) _r3.o)->fields.org_xmlvm_runtime_XMLVMArray.array_))[_r2.i]; |
| XMLVM_SOURCE_POSITION("nbody.java", 102) |
| XMLVM_CHECK_NPE(4) |
| _r7.d = ((nbody_Body*) _r4.o)->fields.nbody_Body.x_; |
| XMLVM_CHECK_NPE(3) |
| _r9.d = ((nbody_Body*) _r3.o)->fields.nbody_Body.x_; |
| _r7.d = _r7.d - _r9.d; |
| XMLVM_SOURCE_POSITION("nbody.java", 103) |
| XMLVM_CHECK_NPE(4) |
| _r9.d = ((nbody_Body*) _r4.o)->fields.nbody_Body.y_; |
| XMLVM_CHECK_NPE(3) |
| _r11.d = ((nbody_Body*) _r3.o)->fields.nbody_Body.y_; |
| _r9.d = _r9.d - _r11.d; |
| XMLVM_SOURCE_POSITION("nbody.java", 104) |
| XMLVM_CHECK_NPE(4) |
| _r11.d = ((nbody_Body*) _r4.o)->fields.nbody_Body.z_; |
| XMLVM_CHECK_NPE(3) |
| _r13.d = ((nbody_Body*) _r3.o)->fields.nbody_Body.z_; |
| _r11.d = _r11.d - _r13.d; |
| _r7.d = _r7.d * _r7.d; |
| _r9.d = _r9.d * _r9.d; |
| _r7.d = _r7.d + _r9.d; |
| _r9.d = _r11.d * _r11.d; |
| _r7.d = _r7.d + _r9.d; |
| XMLVM_SOURCE_POSITION("nbody.java", 106) |
| _r7.d = java_lang_Math_sqrt___double(_r7.d); |
| XMLVM_SOURCE_POSITION("nbody.java", 107) |
| XMLVM_CHECK_NPE(4) |
| _r9.d = ((nbody_Body*) _r4.o)->fields.nbody_Body.mass_; |
| XMLVM_CHECK_NPE(3) |
| _r11.d = ((nbody_Body*) _r3.o)->fields.nbody_Body.mass_; |
| _r9.d = _r9.d * _r11.d; |
| _r7.d = _r9.d / _r7.d; |
| _r5.d = _r5.d - _r7.d; |
| _r2.i = _r2.i + 1; |
| goto label53; |
| label104:; |
| _r1.i = _r1.i + 1; |
| _r2 = _r5; |
| goto label9; |
| label108:; |
| XMLVM_SOURCE_POSITION("nbody.java", 110) |
| XMLVM_EXIT_METHOD() |
| return _r2.d; |
| //XMLVM_END_WRAPPER |
| } |
| |