nbody.SimEngine.constructor
SimEngine constructor()
Vars:
Semaphore semA,
array[Semaphore] sem2,
array[Body] planets,
float TEMP$6,
int TEMP$15,
ANY TEMP$2,
ANY TEMP$5,
float TEMP$4,
float TEMP$10,
int TEMP$19,
float TEMP$7,
float TEMP$11,
int NUMPLANETS,
int TEMP$20,
float TEMP$12,
Body TEMP$16,
int NP,
Body TEMP$13,
float TEMP$9,
Body TEMP$8,
array[Semaphore] TEMP$17,
float TEMP$3,
int TEMP$1,
float TEMP$0,
array[Semaphore] sem0,
array[Semaphore] sem3,
float xsize,
array[Semaphore] sem1,
int i,
Body b,
array[Body] bodies,
float ysize,
float G,
array[Body] lbodies,
Body TEMP$14,
Semaphore sem,
array[Semaphore] TEMP$18,
int j,
Semaphore semB.

| Queue | Object |
| q0 | ARG |
| q1 | TEMP |
| q2 | TEMP2 |
| q3 | TEMP3 |
| q4 | TEMP4 |
| q5 | LOADADDR |
| q6 | LOADDATA |
| q7 | STOREADDR |
| q8 | STOREDATA |
| q9 | THIS |
| q10 | RETURN |
| q11 | NUMPLANETS |
| q12 | xsize |
| q13 | ysize |
| q14 | TEMP$0 |
| q15 | G |
| q16 | bodies |
| q17 | TEMP$1 |
| q18 | sem0 |
| q19 | i |
| q20 | sem |
| q21 | TEMP$2 |
| q22 | TEMP$3 |
| q23 | TEMP$4 |
| q24 | TEMP$5 |
| q25 | TEMP$6 |
| q26 | TEMP$7 |
| q27 | TEMP$8 |
| q28 | TEMP$9 |
| q29 | TEMP$10 |
| q30 | TEMP$11 |
| q31 | TEMP$12 |
| q32 | TEMP$14 |
| q33 | TEMP$15 |
| q34 | TEMP$16 |
| q35 | TEMP$13 |
| q36 | lbodies |
| q37 | NP |
| q38 | b |
| q39 | planets |
| q40 | j |
| q41 | sem1 |
| q42 | semA |
| q43 | semB |
| q44 | sem2 |
| q45 | sem3 |
| q46 | TEMP$17 |
| q47 | TEMP$18 |
| q48 | TEMP$19 |
| q49 | TEMP$20 |
- constructor_top18
-
(ASSIGN (ENQUEUE NO NUMPLANETS) 32)
(ASSIGN (ENQUEUE NO xsize) 400.0)
(ASSIGN (ENQUEUE NO ysize) 400.0)
(ASSIGN (ENQUEUE NO TEMP$0) (TOFLOAT 0))
(ASSIGN (ENQUEUE NO G) (MINUS (DEQUEUE NO TEMP$0) 9.7))
(ASSIGN (IVARSET (THIS) numIter) 10)
(ASSIGN (IVARSET (THIS) iter) 0)
(ASSIGN (ENQUEUE NO bodies) (NEWARRAY People.ObjectType:Body (COPY NO NUMPLANETS)))
(ASSIGN (ENQUEUE NO TEMP$1) (DIVIDE (COPY NO NUMPLANETS) 2))
(ASSIGN (ENQUEUE NO sem0) (NEWARRAY People.ObjectType:Semaphore (DEQUEUE NO TEMP$1)))
(ASSIGN (ENQUEUE NO i) 0)
- while_test19
-
(TEST (LT (COPY NO i) (COPY NO NUMPLANETS)))
- while_body20
-
(ASSIGN (ENQUEUE NO sem) (NEWOBJECT People.ObjectType:Semaphore false (THIS) true))
(TEST (EQUALS (COPY NO i) 20))
- true_branch21
-
(ASSIGN (ENQUEUE NO TEMP$2) (CALL (METHODACCESS (LIBRARY) null)))
(ASSIGN (ENQUEUE NO TEMP$3) (CAST People.BaseType:float (DEQUEUE NO TEMP$2)))
(ASSIGN (ENQUEUE NO TEMP$4) (TIMES (DEQUEUE NO TEMP$3) (COPY NO xsize)))
(ASSIGN (ENQUEUE NO TEMP$5) (CALL (METHODACCESS (LIBRARY) null)))
(ASSIGN (CLOBBER NO TEMP$6) (CAST People.BaseType:float (DEQUEUE NO TEMP$5)))
(ASSIGN (ENQUEUE NO TEMP$7) (TIMES (COPY NO TEMP$6) (COPY NO ysize)))
(ASSIGN (ENQUEUE NO TEMP$8) (NEWOBJECT People.ObjectType:Body (DEQUEUE NO TEMP$4) (DEQUEUE NO TEMP$7) 500.0 5.0 0.0 0.0 (COPY NO i) (DEQUEUE NO sem)))
(ASSIGN (ARRAYSET (COPY NO bodies) (COPY NO i)) (DEQUEUE NO TEMP$8))
- after_if22
-
(ASSIGN (ENQUEUE NO i) (PLUS (DEQUEUE NO i) 1))
(ASSIGN (ENQUEUE NO TEMP$2) (CALL (METHODACCESS (LIBRARY) null)))
(ASSIGN (ENQUEUE NO TEMP$3) (CAST People.BaseType:float (DEQUEUE NO TEMP$2)))
(ASSIGN (ENQUEUE NO TEMP$4) (TIMES (DEQUEUE NO TEMP$3) (COPY NO xsize)))
(ASSIGN (ENQUEUE NO TEMP$5) (CALL (METHODACCESS (LIBRARY) null)))
(ASSIGN (ENQUEUE NO TEMP$6) (CAST People.BaseType:float (DEQUEUE NO TEMP$5)))
(ASSIGN (ENQUEUE NO TEMP$7) (TIMES (COPY NO TEMP$6) (COPY NO ysize)))
(ASSIGN (ENQUEUE NO TEMP$9) (TIMES 1.0E-4 (COPY NO G)))
(ASSIGN (ENQUEUE NO TEMP$10) (TIMES (DEQUEUE NO TEMP$9) (COPY NO G)))
(ASSIGN (ENQUEUE NO TEMP$11) (TIMES 1.0E-4 (COPY NO G)))
(ASSIGN (ENQUEUE NO TEMP$12) (TIMES (DEQUEUE NO TEMP$11) (COPY NO G)))
(ASSIGN (ENQUEUE NO TEMP$14) (NEWOBJECT People.ObjectType:Body (DEQUEUE NO TEMP$4) (DEQUEUE NO TEMP$7) 1.0 1.0 (DEQUEUE NO TEMP$10) (DEQUEUE NO TEMP$12) (COPY NO i) (COPY NO sem)))
(ASSIGN (ARRAYSET (COPY NO bodies) (COPY NO i)) (DEQUEUE NO TEMP$14))
(ASSIGN (ENQUEUE NO i) (PLUS (DEQUEUE NO i) 1))
(ASSIGN (ENQUEUE NO TEMP$1) (MINUS (COPY NO i) 2))
(ASSIGN (ENQUEUE NO TEMP$8) (ARRAYREF (COPY NO bodies) (DEQUEUE NO TEMP$1)))
(ASSIGN (ENQUEUE NO TEMP$15) (MINUS (COPY NO i) 1))
(ASSIGN (ENQUEUE NO TEMP$16) (ARRAYREF (COPY NO bodies) (DEQUEUE NO TEMP$15)))
(CALL (METHODACCESS (COPY NO sem) People.Method:assignLeaves) (DEQUEUE NO TEMP$8) (DEQUEUE NO TEMP$16))
(ASSIGN (ENQUEUE NO TEMP$1) (DIVIDE (COPY NO i) 2))
(ASSIGN (ENQUEUE NO TEMP$15) (MINUS (DEQUEUE NO TEMP$1) 1))
(ASSIGN (ARRAYSET (COPY NO sem0) (DEQUEUE NO TEMP$15)) (DEQUEUE NO sem))
(CALL (METHODACCESS (LIBRARY) null) .)
(CALL (METHODACCESS (LIBRARY) null))
- false_branch23
-
(ASSIGN (ENQUEUE NO TEMP$2) (CALL (METHODACCESS (LIBRARY) null)))
(ASSIGN (ENQUEUE NO TEMP$3) (CAST People.BaseType:float (DEQUEUE NO TEMP$2)))
(ASSIGN (ENQUEUE NO TEMP$4) (TIMES (DEQUEUE NO TEMP$3) (COPY NO xsize)))
(ASSIGN (ENQUEUE NO TEMP$5) (CALL (METHODACCESS (LIBRARY) null)))
(ASSIGN (CLOBBER NO TEMP$6) (CAST People.BaseType:float (DEQUEUE NO TEMP$5)))
(ASSIGN (ENQUEUE NO TEMP$7) (TIMES (COPY NO TEMP$6) (COPY NO ysize)))
(ASSIGN (ENQUEUE NO TEMP$9) (TIMES 1.0E-4 (COPY NO G)))
(ASSIGN (ENQUEUE NO TEMP$10) (TIMES (DEQUEUE NO TEMP$9) (COPY NO G)))
(ASSIGN (ENQUEUE NO TEMP$11) (TIMES 1.0E-4 (COPY NO G)))
(ASSIGN (ENQUEUE NO TEMP$12) (TIMES (DEQUEUE NO TEMP$11) (COPY NO G)))
(ASSIGN (ENQUEUE NO TEMP$13) (NEWOBJECT People.ObjectType:Body (DEQUEUE NO TEMP$4) (DEQUEUE NO TEMP$7) 1.0 1.0 (DEQUEUE NO TEMP$10) (DEQUEUE NO TEMP$12) (COPY NO i) (DEQUEUE NO sem)))
(ASSIGN (ARRAYSET (COPY NO bodies) (COPY NO i)) (DEQUEUE NO TEMP$13))
- after_while24
-
(ASSIGN (CLOBBER NO i) 0)
(ASSIGN (ENQUEUE null lbodies) (DEQUEUE NO bodies))
(ASSIGN (ENQUEUE null NP) (COPY NO NUMPLANETS))
- while_test25
-
(TEST (LT (COPY NO i) (COPY NO NP)))
- while_body26
-
(ASSIGN (ENQUEUE NO b) (ARRAYREF (COPY NO lbodies) (COPY NO i)))
(ASSIGN (CLOBBER NO planets) (IVARREF (DEQUEUE NO b) planets))
(ASSIGN (CLOBBER NO j) 0)
(ASSIGN (ENQUEUE NO TEMP$8) (ARRAYREF (COPY NO lbodies) (COPY NO j)))
(ASSIGN (ARRAYSET (COPY NO planets) (COPY NO j)) (DEQUEUE NO TEMP$8))
(ASSIGN (ENQUEUE NO j) (PLUS (DEQUEUE NO j) 1))
- while_test27
-
(TEST (LT (COPY NO j) (COPY NO NP)))
- while_body28
-
(ASSIGN (ENQUEUE NO TEMP$8) (ARRAYREF (COPY NO lbodies) (COPY NO j)))
(ASSIGN (ARRAYSET (COPY NO planets) (COPY NO j)) (DEQUEUE NO TEMP$8))
(ASSIGN (ENQUEUE NO j) (PLUS (DEQUEUE NO j) 1))
- after_while29
-
(ASSIGN (ENQUEUE NO i) (PLUS (DEQUEUE NO i) 1))
(CALL (METHODACCESS (LIBRARY) null) +)
(CALL (METHODACCESS (LIBRARY) null))
- after_while30
-
(CALL (METHODACCESS (LIBRARY) null))
(ASSIGN (CLOBBER NO i) 0)
(ASSIGN (ENQUEUE NO TEMP$1) (DIVIDE (COPY NO NUMPLANETS) 4))
(ASSIGN (ENQUEUE NO sem1) (NEWARRAY People.ObjectType:Semaphore (DEQUEUE NO TEMP$1)))
- while_test31
-
(ASSIGN (ENQUEUE NO TEMP$1) (DIVIDE (COPY NO NUMPLANETS) 2))
(TEST (LT (COPY NO i) (DEQUEUE NO TEMP$1)))
- while_body32
-
(ASSIGN (ENQUEUE NO sem) (NEWOBJECT People.ObjectType:Semaphore false (THIS) false))
(ASSIGN (CLOBBER NO semA) (ARRAYREF (COPY NO sem0) (COPY NO i)))
(ASSIGN (ENQUEUE NO i) (PLUS (DEQUEUE NO i) 1))
(ASSIGN (ENQUEUE NO semB) (ARRAYREF (COPY NO sem0) (COPY NO i)))
(ASSIGN (ENQUEUE NO i) (PLUS (DEQUEUE NO i) 1))
(CALL (METHODACCESS (COPY NO sem) People.Method:assignChildren) (COPY NO semA) (COPY NO semB))
(CALL (METHODACCESS (DEQUEUE NO semA) People.Method:assignParent) (COPY NO sem))
(CALL (METHODACCESS (DEQUEUE NO semB) People.Method:assignParent) (COPY NO sem))
(ASSIGN (ENQUEUE NO TEMP$1) (DIVIDE (COPY NO i) 2))
(ASSIGN (ENQUEUE NO TEMP$15) (MINUS (DEQUEUE NO TEMP$1) 1))
(ASSIGN (ARRAYSET (COPY NO sem1) (DEQUEUE NO TEMP$15)) (DEQUEUE NO sem))
(CALL (METHODACCESS (LIBRARY) null) -)
(CALL (METHODACCESS (LIBRARY) null))
- after_while33
-
(ASSIGN (CLOBBER NO i) 0)
(ASSIGN (ENQUEUE NO TEMP$1) (DIVIDE (COPY NO NUMPLANETS) 8))
(ASSIGN (CLOBBER NO sem2) (NEWARRAY People.ObjectType:Semaphore (DEQUEUE NO TEMP$1)))
- while_test34
-
(ASSIGN (ENQUEUE NO TEMP$1) (DIVIDE (COPY NO NUMPLANETS) 4))
(TEST (LT (COPY NO i) (DEQUEUE NO TEMP$1)))
- while_body35
-
(ASSIGN (ENQUEUE NO sem) (NEWOBJECT People.ObjectType:Semaphore false (THIS) false))
(ASSIGN (CLOBBER NO semA) (ARRAYREF (COPY NO sem1) (COPY NO i)))
(ASSIGN (ENQUEUE NO i) (PLUS (DEQUEUE NO i) 1))
(ASSIGN (ENQUEUE NO semB) (ARRAYREF (COPY NO sem1) (COPY NO i)))
(ASSIGN (ENQUEUE NO i) (PLUS (DEQUEUE NO i) 1))
(CALL (METHODACCESS (COPY NO sem) People.Method:assignChildren) (COPY NO semA) (COPY NO semB))
(CALL (METHODACCESS (DEQUEUE NO semA) People.Method:assignParent) (COPY NO sem))
(CALL (METHODACCESS (DEQUEUE NO semB) People.Method:assignParent) (COPY NO sem))
(ASSIGN (ENQUEUE NO TEMP$1) (DIVIDE (COPY NO i) 2))
(ASSIGN (ENQUEUE NO TEMP$15) (MINUS (DEQUEUE NO TEMP$1) 1))
(ASSIGN (ARRAYSET (COPY NO sem2) (DEQUEUE NO TEMP$15)) (DEQUEUE NO sem))
(CALL (METHODACCESS (LIBRARY) null) /)
(CALL (METHODACCESS (LIBRARY) null))
- after_while36
-
(ASSIGN (CLOBBER NO i) 0)
(ASSIGN (ENQUEUE NO TEMP$1) (DIVIDE (COPY NO NUMPLANETS) 16))
(ASSIGN (ENQUEUE NO sem3) (NEWARRAY People.ObjectType:Semaphore (DEQUEUE NO TEMP$1)))
- while_test37
-
(ASSIGN (ENQUEUE NO TEMP$1) (DIVIDE (COPY NO NUMPLANETS) 8))
(TEST (LT (COPY NO i) (DEQUEUE NO TEMP$1)))
- while_body38
-
(ASSIGN (ENQUEUE NO sem) (NEWOBJECT People.ObjectType:Semaphore false (THIS) false))
(ASSIGN (CLOBBER NO semA) (ARRAYREF (COPY NO sem2) (COPY NO i)))
(ASSIGN (ENQUEUE NO i) (PLUS (DEQUEUE NO i) 1))
(ASSIGN (ENQUEUE NO semB) (ARRAYREF (COPY NO sem2) (COPY NO i)))
(ASSIGN (ENQUEUE NO i) (PLUS (DEQUEUE NO i) 1))
(CALL (METHODACCESS (COPY NO sem) People.Method:assignChildren) (COPY NO semA) (COPY NO semB))
(CALL (METHODACCESS (DEQUEUE NO semA) People.Method:assignParent) (COPY NO sem))
(CALL (METHODACCESS (DEQUEUE NO semB) People.Method:assignParent) (COPY NO sem))
(ASSIGN (ENQUEUE NO TEMP$1) (DIVIDE (COPY NO i) 2))
(ASSIGN (ENQUEUE NO TEMP$15) (MINUS (DEQUEUE NO TEMP$1) 1))
(ASSIGN (ARRAYSET (COPY NO sem3) (DEQUEUE NO TEMP$15)) (DEQUEUE NO sem))
(CALL (METHODACCESS (LIBRARY) null) *)
(CALL (METHODACCESS (LIBRARY) null))
- after_while39
-
(ASSIGN (CLOBBER NO i) 0)
(ASSIGN (ENQUEUE NO TEMP$1) (DIVIDE (COPY NO NUMPLANETS) 32))
(ASSIGN (ENQUEUE NO TEMP$17) (NEWARRAY People.ObjectType:Semaphore (DEQUEUE NO TEMP$1)))
(ASSIGN (IVARSET (THIS) sem4) (DEQUEUE NO TEMP$17))
- while_test40
-
(ASSIGN (ENQUEUE NO TEMP$1) (DIVIDE (COPY NO NUMPLANETS) 16))
(TEST (LT (COPY NO i) (DEQUEUE NO TEMP$1)))
- while_body41
-
(ASSIGN (ENQUEUE NO sem) (NEWOBJECT People.ObjectType:Semaphore true (THIS) false))
(ASSIGN (CLOBBER NO semA) (ARRAYREF (COPY NO sem3) (COPY NO i)))
(ASSIGN (ENQUEUE NO i) (PLUS (DEQUEUE NO i) 1))
(ASSIGN (ENQUEUE NO semB) (ARRAYREF (COPY NO sem3) (COPY NO i)))
(ASSIGN (ENQUEUE NO i) (PLUS (DEQUEUE NO i) 1))
(CALL (METHODACCESS (COPY NO sem) People.Method:assignChildren) (COPY NO semA) (COPY NO semB))
(CALL (METHODACCESS (DEQUEUE NO semA) People.Method:assignParent) (COPY NO sem))
(CALL (METHODACCESS (DEQUEUE NO semB) People.Method:assignParent) (COPY NO sem))
(ASSIGN (ENQUEUE NO TEMP$18) (IVARREF (THIS) sem4))
(ASSIGN (ENQUEUE NO TEMP$19) (DIVIDE (COPY NO i) 2))
(ASSIGN (ENQUEUE NO TEMP$20) (MINUS (DEQUEUE NO TEMP$19) 1))
(ASSIGN (ARRAYSET (DEQUEUE NO TEMP$18) (DEQUEUE NO TEMP$20)) (DEQUEUE NO sem))
(CALL (METHODACCESS (LIBRARY) null) #)
(CALL (METHODACCESS (LIBRARY) null))
- after_while42
-
(RETURN (THIS))