Java Supercompiler. Version 0.0.75. Copyright (c) 2001 Supercompilers, LLC. /* Supercompilation options -------------------------------------------------------------------- internal option name | command line option = value -------------------------------------------------------------------- method | -method <method identifier> = test allMethods | -allMethods, -allm, -am = false destinationDir | -destination <directory> = invokeLimit | -invoke<n>, -i<n> = no recurLimit | -recur<n>, -r<n> = 5 arrayLimit | -arrayLimit<n>, -al<n> = 10 joinLabeled | -joinLabeled, -jla, -join, -j = true joinTree | -joinLoop, -jl, -join, -j = true joinTreeR | -joinIf, -ji, -join, -j = true unfoldLoopNumber | -loop<n>, -l<n> = 0 unfoldLoop_Empty () | -unfoldLoopEmpty, -ule, -ul1 = true unfoldLoop_Linear () | -unfoldLoopLinear, -ull, -ul2 = true unfoldLoop_NoBreak () | -unfoldLoopNoBreak, -ulnb, -ul = true defaultArrayElements | -[no]defaultArrayElements, -[no]dae = true multiplyZeroFP | -[no]multiplyZeroFP, -[no]mzfp = true changeAccessOrder | -[no]changeAccessOrder, -[no]cao = true --------------------------------------------------------------------*/ //-------------------------------------- 0 sec - field Multiplication.CURRENT_STATE //-------------------------------------- 0 sec - postprocessing... public static final int CURRENT_STATE = 0; //-------------------------------------- 0 sec - field Multiplication.CURRENT_SYMBOL //-------------------------------------- 0 sec - postprocessing... public static final int CURRENT_SYMBOL = 1; //-------------------------------------- 0 sec - field Multiplication.NEXT_SYMBOL //-------------------------------------- 0 sec - postprocessing... public static final int NEXT_SYMBOL = 3; //-------------------------------------- 0 sec - field Multiplication.NEXT_STATE //-------------------------------------- 0 sec - postprocessing... public static final int NEXT_STATE = 2; //-------------------------------------- 0 sec - field Multiplication.MOVE //-------------------------------------- 0 sec - postprocessing... public static final int MOVE = 4; //-------------------------------------- 0 sec - field Multiplication.instruction //-------------------------------------- 0 sec - postprocessing... public static final java.lang.String[][] instruction = new java.lang.String[][] {{"start", "1", "move1right", "W", "R"}, {"move1right", "1", "move1right", "1", "R"}, {"move1right", "_", "mark2start", "_", "R"}, {"mark2start", "1", "move2right", "Y", "R"}, {"move2right", "1", "move2right", "1", "R"}, {"move2right", "_", "initialize", "_", "R"}, {"initialize", "_", "backup", "1", "L"}, {"backup", "_", "backup", "_", "L"}, {"backup", "1", "backup", "1", "L"}, {"backup", "Z", "backup", "Z", "L"}, {"backup", "Y", "backup", "Y", "L"}, {"backup", "X", "nextpass", "X", "R"}, {"backup", "W", "nextpass", "W", "R"}, {"nextpass", "_", "finishup", "_", "R"}, {"nextpass", "1", "findarg2", "X", "R"}, {"findarg2", "1", "findarg2", "1", "R"}, {"findarg2", "_", "findarg2", "_", "R"}, {"findarg2", "Y", "testarg2", "Y", "R"}, {"testarg2", "_", "cleanup2", "_", "L"}, {"testarg2", "1", "findans", "Z", "R"}, {"findans", "1", "findans", "1", "R"}, {"findans", "_", "atans", "_", "R"}, {"atans", "1", "atans", "1", "R"}, {"atans", "_", "backarg2", "1", "L"}, {"backarg2", "1", "backarg2", "1", "L"}, {"backarg2", "_", "backarg2", "_", "L"}, {"backarg2", "Z", "testarg2", "Z", "R"}, {"backarg2", "Y", "testarg2", "Y", "R"}, {"cleanup2", "1", "cleanup2", "1", "L"}, {"cleanup2", "_", "cleanup2", "_", "L"}, {"cleanup2", "Z", "cleanup2", "1", "L"}, {"cleanup2", "Y", "backup", "Y", "L"}, {"finishup", "Y", "finishup", "1", "L"}, {"finishup", "_", "finishup", "_", "L"}, {"finishup", "X", "finishup", "1", "L"}, {"finishup", "W", "almostdone", "1", "L"}, {"almostdone", "_", "halt", "_", "R"}}; //-------------------------------------- 0 sec - method Multiplication.test() //-------------------------------------- 2 sec - postprocessing... public static void test () { Multiplication.state = "start"; while (Multiplication.state != "halt") { if (Multiplication.state == "start" && Multiplication.tape[Multiplication.head] == "1") { Multiplication.state = "move1right"; Multiplication.tape[Multiplication.head] = "W"; Multiplication.head++;} if (Multiplication.state == "move1right" && Multiplication.tape[Multiplication.head] == "1") { Multiplication.state = "move1right"; Multiplication.tape[Multiplication.head] = "1"; Multiplication.head++;} if (Multiplication.state == "move1right" && Multiplication.tape[Multiplication.head] == "_") { Multiplication.state = "mark2start"; Multiplication.tape[Multiplication.head] = "_"; Multiplication.head++;} if (Multiplication.state == "mark2start" && Multiplication.tape[Multiplication.head] == "1") { Multiplication.state = "move2right"; Multiplication.tape[Multiplication.head] = "Y"; Multiplication.head++;} if (Multiplication.state == "move2right" && Multiplication.tape[Multiplication.head] == "1") { Multiplication.state = "move2right"; Multiplication.tape[Multiplication.head] = "1"; Multiplication.head++;} if (Multiplication.state == "move2right" && Multiplication.tape[Multiplication.head] == "_") { Multiplication.state = "initialize"; Multiplication.tape[Multiplication.head] = "_"; Multiplication.head++;} if (Multiplication.state == "initialize" && Multiplication.tape[Multiplication.head] == "_") { Multiplication.state = "backup"; Multiplication.tape[Multiplication.head] = "1"; Multiplication.head--;} if (Multiplication.state == "backup" && Multiplication.tape[Multiplication.head] == "_") { Multiplication.state = "backup"; Multiplication.tape[Multiplication.head] = "_"; Multiplication.head--;} if (Multiplication.state == "backup" && Multiplication.tape[Multiplication.head] == "1") { Multiplication.state = "backup"; Multiplication.tape[Multiplication.head] = "1"; Multiplication.head--;} if (Multiplication.state == "backup" && Multiplication.tape[Multiplication.head] == "Z") { Multiplication.state = "backup"; Multiplication.tape[Multiplication.head] = "Z"; Multiplication.head--;} if (Multiplication.state == "backup" && Multiplication.tape[Multiplication.head] == "Y") { Multiplication.state = "backup"; Multiplication.tape[Multiplication.head] = "Y"; Multiplication.head--;} if (Multiplication.state == "backup" && Multiplication.tape[Multiplication.head] == "X") { Multiplication.state = "nextpass"; Multiplication.tape[Multiplication.head] = "X"; Multiplication.head++;} if (Multiplication.state == "backup" && Multiplication.tape[Multiplication.head] == "W") { Multiplication.state = "nextpass"; Multiplication.tape[Multiplication.head] = "W"; Multiplication.head++;} if (Multiplication.state == "nextpass" && Multiplication.tape[Multiplication.head] == "_") { Multiplication.state = "finishup"; Multiplication.tape[Multiplication.head] = "_"; Multiplication.head++;} if (Multiplication.state == "nextpass" && Multiplication.tape[Multiplication.head] == "1") { Multiplication.state = "findarg2"; Multiplication.tape[Multiplication.head] = "X"; Multiplication.head++;} if (Multiplication.state == "findarg2" && Multiplication.tape[Multiplication.head] == "1") { Multiplication.state = "findarg2"; Multiplication.tape[Multiplication.head] = "1"; Multiplication.head++;} if (Multiplication.state == "findarg2" && Multiplication.tape[Multiplication.head] == "_") { Multiplication.state = "findarg2"; Multiplication.tape[Multiplication.head] = "_"; Multiplication.head++;} if (Multiplication.state == "findarg2" && Multiplication.tape[Multiplication.head] == "Y") { Multiplication.state = "testarg2"; Multiplication.tape[Multiplication.head] = "Y"; Multiplication.head++;} if (Multiplication.state == "testarg2" && Multiplication.tape[Multiplication.head] == "_") { Multiplication.state = "cleanup2"; Multiplication.tape[Multiplication.head] = "_"; Multiplication.head--;} if (Multiplication.state == "testarg2" && Multiplication.tape[Multiplication.head] == "1") { Multiplication.state = "findans"; Multiplication.tape[Multiplication.head] = "Z"; Multiplication.head++;} if (Multiplication.state == "findans" && Multiplication.tape[Multiplication.head] == "1") { Multiplication.state = "findans"; Multiplication.tape[Multiplication.head] = "1"; Multiplication.head++;} if (Multiplication.state == "findans" && Multiplication.tape[Multiplication.head] == "_") { Multiplication.state = "atans"; Multiplication.tape[Multiplication.head] = "_"; Multiplication.head++;} if (Multiplication.state == "atans" && Multiplication.tape[Multiplication.head] == "1") { Multiplication.state = "atans"; Multiplication.tape[Multiplication.head] = "1"; Multiplication.head++;} if (Multiplication.state == "atans" && Multiplication.tape[Multiplication.head] == "_") { Multiplication.state = "backarg2"; Multiplication.tape[Multiplication.head] = "1"; Multiplication.head--;} if (Multiplication.state == "backarg2" && Multiplication.tape[Multiplication.head] == "1") { Multiplication.state = "backarg2"; Multiplication.tape[Multiplication.head] = "1"; Multiplication.head--;} if (Multiplication.state == "backarg2" && Multiplication.tape[Multiplication.head] == "_") { Multiplication.state = "backarg2"; Multiplication.tape[Multiplication.head] = "_"; Multiplication.head--;} if (Multiplication.state == "backarg2" && Multiplication.tape[Multiplication.head] == "Z") { Multiplication.state = "testarg2"; Multiplication.tape[Multiplication.head] = "Z"; Multiplication.head++;} if (Multiplication.state == "backarg2" && Multiplication.tape[Multiplication.head] == "Y") { Multiplication.state = "testarg2"; Multiplication.tape[Multiplication.head] = "Y"; Multiplication.head++;} if (Multiplication.state == "cleanup2" && Multiplication.tape[Multiplication.head] == "1") { Multiplication.state = "cleanup2"; Multiplication.tape[Multiplication.head] = "1"; Multiplication.head--;} if (Multiplication.state == "cleanup2" && Multiplication.tape[Multiplication.head] == "_") { Multiplication.state = "cleanup2"; Multiplication.tape[Multiplication.head] = "_"; Multiplication.head--;} if (Multiplication.state == "cleanup2" && Multiplication.tape[Multiplication.head] == "Z") { Multiplication.state = "cleanup2"; Multiplication.tape[Multiplication.head] = "1"; Multiplication.head--;} if (Multiplication.state == "cleanup2" && Multiplication.tape[Multiplication.head] == "Y") { Multiplication.state = "backup"; Multiplication.tape[Multiplication.head] = "Y"; Multiplication.head--;} if (Multiplication.state == "finishup" && Multiplication.tape[Multiplication.head] == "Y") { Multiplication.state = "finishup"; Multiplication.tape[Multiplication.head] = "1"; Multiplication.head--;} if (Multiplication.state == "finishup" && Multiplication.tape[Multiplication.head] == "_") { Multiplication.state = "finishup"; Multiplication.tape[Multiplication.head] = "_"; Multiplication.head--;} if (Multiplication.state == "finishup" && Multiplication.tape[Multiplication.head] == "X") { Multiplication.state = "finishup"; Multiplication.tape[Multiplication.head] = "1"; Multiplication.head--;} if (Multiplication.state == "finishup" && Multiplication.tape[Multiplication.head] == "W") { Multiplication.state = "almostdone"; Multiplication.tape[Multiplication.head] = "1"; Multiplication.head--;} if (Multiplication.state == "almostdone" && Multiplication.tape[Multiplication.head] == "_") { Multiplication.state = "halt"; Multiplication.tape[Multiplication.head] = "_"; Multiplication.head++;} continue;} /*while*/ return; } //-------------------------------------- 3 sec - JScp version 0.0.75