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