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.
QueueObject
q0ARG
q1TEMP
q2TEMP2
q3TEMP3
q4TEMP4
q5LOADADDR
q6LOADDATA
q7STOREADDR
q8STOREDATA
q9THIS
q10RETURN
q11NUMPLANETS
q12xsize
q13ysize
q14TEMP$0
q15G
q16bodies
q17TEMP$1
q18sem0
q19i
q20sem
q21TEMP$2
q22TEMP$3
q23TEMP$4
q24TEMP$5
q25TEMP$6
q26TEMP$7
q27TEMP$8
q28TEMP$9
q29TEMP$10
q30TEMP$11
q31TEMP$12
q32TEMP$14
q33TEMP$15
q34TEMP$16
q35TEMP$13
q36lbodies
q37NP
q38b
q39planets
q40j
q41sem1
q42semA
q43semB
q44sem2
q45sem3
q46TEMP$17
q47TEMP$18
q48TEMP$19
q49TEMP$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))