function GenWscript( FnName, FnType, Variant, NumOpers, OperInfo, author, email ){
var str="", notfirst=0, i;
str += "
\n";
str += LWHeader( FnName, FnType, Variant, NumOpers, OperInfo );
str += LInvariant( FnName, FnType, Variant, NumOpers, OperInfo );
str += LGuard( FnName, FnType, Variant, NumOpers, OperInfo );
str += LPartition( FnName, FnType, Variant, NumOpers, OperInfo );
str += LRepartition( FnName, FnType, Variant, NumOpers, OperInfo );
str += LContinue( FnName, FnType, Variant, NumOpers, OperInfo );
str += LAfterRepartition( FnName, FnType, Variant, NumOpers, OperInfo );
str += LBeforeContinue( FnName, FnType, Variant, NumOpers, OperInfo );
str += LUpdate( FnName, FnType, Variant, NumOpers, OperInfo );
str += "\n\n
";
with (parent.frames[1].document){
open();
writeln( str );
close();
}
return false;
}
function GenAscript( FnName, FnType, Variant, NumOpers, OperInfo, author, email ){
var str="", notfirst=0, i;
str += "\n";
str += LAHeader( FnName, FnType, Variant, NumOpers, OperInfo );
str += LGuard( FnName, FnType, Variant, NumOpers, OperInfo );
str += LPartition_Alg( FnName, FnType, Variant, NumOpers, OperInfo );
str += LRepartition_Alg( FnName, FnType, Variant, NumOpers, OperInfo );
str += LContinue_Alg( FnName, FnType, Variant, NumOpers, OperInfo );
str += LUpdate( FnName, FnType, Variant, NumOpers, OperInfo );
str += "\n\n
";
with (parent.frames[1].document){
open();
writeln( str );
close();
}
return false;
}
function LWHeader( FnName, FnType, Variant, NumOpers, OperInfo ){
var str="", c="";
var i;
var firsttime = 1;
str += "\\resetsteps % Reset all the commands to create a blank worksheet \n"
str += "\n"
str += "% Define the operation to be computed\n\n"
str += "\\renewcommand{\\operation}{ \\left[ ";
for ( i=0; i 2 ){
str += "\\\\ \n";
countperline = 0;
}
switch( OperInfo[ i ][ 2 ] ){
case '1':
case '2':
case '3':
case '4':
if ( OperInfo[ i ][ 1 ] == '2' ){
str += indent+"$\n"+indent;
str += c+" \\rightarrow\n";
str += indent+"\\FlaTwoByTwo{"+c+"_{TL}}{"+c+"_{TR}}\n";
str += indent+" {"+c+"_{BL}}{"+c+"_{BR}}\n";
str += indent+"$\n";
whle += "$ "+c+"_{"+
DirChoicesBeforeShort[ OperInfo[ i ][ 2 ] ]+"} $ is "
whle += "$ 0 \\times 0 $"
}
else{
str += "Cannot split non-matrix into four quadrants\n";
return str;
}
break;
case '5':
case '6':
str += indent+"$\n"+indent;
str += c+" \\rightarrow\n";
str += indent+"\\FlaOneByTwo{"
str += c+"_L"
if ( OperInfo[ i ][ 1 ] == '1' ) str += "^T";
str += "}{"
str += c+"_R"
if ( OperInfo[ i ][ 1 ] == '1' ) str += "^T";
str += "}\n";
str += indent+"$\n";
whle += "$ "+c+"_"+
DirChoicesBeforeShort[ OperInfo[ i ][ 2 ] ]
if ( OperInfo[ i ][ 1 ] == '1' ) whle += "^T";
whle += " $ has "
whle += "$ 0 $ columns"
break;
case '7':
case '8':
str += indent+"$\n"+indent;
str += c+" \\rightarrow\n";
str += indent+"\\FlaTwoByOne{"+c+"_{T}}\n";
str += indent+" {"+c+"_{B}}\n";
str += indent+"$\n";
whle += "$ "+c+"_{"+
DirChoicesBeforeShort[ OperInfo[ i ][ 2 ] ]+"} $ has "
whle += "$ 0 $ rows"
break;
}
}
}
str += "}\n\n"
whle += "\n}\n\n"
str = str+whle
return str;
}
function LPartition_Alg( FnName, FnType, Variant, NumOpers, OperInfo ){
var str="";
var whle="";
var i,j;
var c;
var firsttime=1;
var countperline=0;
str += "% Step 4: Define Initialize \n\n"
str += "\\renewcommand{\\partitionings}{\n"
whle += "\\renewcommand{\\partitionsizes}{\n"
for (i=0; i 2 ){
str += "\\\\ \n";
countperline = 0;
}
switch( OperInfo[ i ][ 2 ] ){
case '1':
case '2':
case '3':
case '4':
if ( OperInfo[ i ][ 1 ] == '2' ){
str += indent+"$\n"+indent;
str += c+" \\rightarrow\n";
str += indent+"\\FlaTwoByTwo{"+c+"_{TL}}{"+c+"_{TR}}\n";
str += indent+" {"+c+"_{BL}}{"+c+"_{BR}}\n";
str += indent+"$\n";
whle += "$ "+c+"_{"+
DirChoicesBeforeShort[ OperInfo[ i ][ 2 ] ]+"} $ is "
whle += "$ 0 \\times 0 $"
}
else{
str += "Cannot split non-matrix into four quadrants\n";
return str;
}
break;
case '5':
case '6':
str += indent+"$\n"+indent;
str += c+" \\rightarrow\n";
str += indent+"\\FlaOneByTwo{"
str += c+"_L"
if ( OperInfo[ i ][ 1 ] == '1' ) str += "^T";
str += "}{"
str += c+"_R"
if ( OperInfo[ i ][ 1 ] == '1' ) str += "^T";
str += "}\n";
str += indent+"$\n";
whle += "$ "+c+"_"+
DirChoicesBeforeShort[ OperInfo[ i ][ 2 ] ]
if ( OperInfo[ i ][ 1 ] == '1' ) whle += "^T";
whle += " $ has "
whle += "$ 0 $ columns"
break;
case '7':
case '8':
str += indent+"$\n"+indent;
str += c+" \\rightarrow\n";
str += indent+"\\FlaTwoByOne{"+c+"_{T}}\n";
str += indent+" {"+c+"_{B}}\n";
str += indent+"$\n";
whle += "$ "+c+"_{"+
DirChoicesBeforeShort[ OperInfo[ i ][ 2 ] ]+"} $ has "
whle += "$ 0 $ rows"
break;
}
}
}
str += "}\n\n"
whle += "\n}\n\n"
str = str+whle
return str;
}
function LRepartition( FnName, FnType, Variant, NumOpers, OperInfo ){
var str="";
var i, j;
var c, v, s, t, tpadding, spadding;
var b="", whre="";
var firsttime=1, countperline=0;
str += "% Step 5a: Repartition the operands \n\n"
if ( FnType != '0' ){ /* Determine Block Size */
str += "\\renewcommand{\\blocksize}{b}\n\n"
b = "b"
}
str += "\\renewcommand{\\repartitionings}{\n"
whre += "\\renewcommand{\\repartitionsizes}{\n"
for (i=0; i 2 ){
str += "\\\\ \n";
countperline = 0;
}
str += "$\n";
switch( OperInfo[ i ][ 2 ] ){
case '1':
case '2':
case '3':
case '4':
if ( FnType == '0' ){
s = LAllChoices[ 0 ][ OperInfo[ i ][ 0 ] ];
v = LAllChoices[ 1 ][ OperInfo[ i ][ 0 ] ];
t = "^T";
b = "1";
}
else{
s = LAllChoices[ OperInfo[ i ][ 1 ] ][ OperInfo[ i ][ 0 ] ];
v = LAllChoices[ OperInfo[ i ][ 1 ] ][ OperInfo[ i ][ 0 ] ];
t = "";
b = "b";
}
if ( j == 1 ){
if ( OperInfo[ i ][ 3 ] == '2' )
s = "\\hat{"+s+"}"
v = "\\hat{"+v+"}"
}
if ( OperInfo[ i ][ 1 ] == '2' ){
str += indent+"\\FlaTwoByTwo{"+c+"_{TL}}{"+c+"_{TR}}\n";
str += indent+" {"+c+"_{BL}}{"+c+"_{BR}}\n";
str += indent+"\\rightarrow\n";
str += indent+"\\FlaThreeByThree"+
DirChoicesAfterShort[ OperInfo[ i ][ 2 ] ];
str += "{"+c+"_{00}}{"+v+"_{01}}{"+c+"_{02}}\n";
str += indent+" ";
str += "{"+v+"_{10}"+t+"}{"+s+"_{11}}{"+v+"_{12}"+t+"}\n";
str += indent+" ";
str += "{"+c+"_{20}}{"+v+"_{21}}{"+c+"_{22}}\n$";
whre += indent+"$ "+s+"_{11} $ is $ "+b+" \\times "+b+" $\n";
}
else{
str += "Cannot split non-matrix into four quadrants\n";
return str;
}
break;
case '5':
case '6':
if ( FnType == '0' ){
v = LAllChoices[ OperInfo[ i ][ 1 ]-1 ][ OperInfo[ i ][ 0 ] ];
b = "1";
}
else{
v = LAllChoices[ OperInfo[ i ][ 1 ] ][ OperInfo[ i ][ 0 ] ];
b = "b";
}
if ( OperInfo[ i ][ 1 ] == '1' ){
t = "^T";
}
else{
t = ""
}
if ( j == 1 )
v = "\\hat{"+v+"}"
if ( OperInfo[ i ][ 1 ] != '0' ){
str += indent+"\\FlaOneByTwo{"+c+"_L"+t+"}{"+c+"_R"+t+"}\n";
str += "\\rightarrow";
str += indent+"\\FlaOneByThree";
str += DirChoicesAfterShort[ OperInfo[ i ][ 2 ] ];
str += "{"+c+"_0"+t+"}{"+v+"_1";
if ( FnType != '0' )
str += t;
str += "}{"+c+"_2"+t+"}\n$\n";
whre += "$ "+v+"_1";
if ( FnType != '0' )
whre += t;
whre += " $ has $"+b+"$ column";
if ( b == 'b' ) whre += "s";
}
else{
str += "Cannot split scalar\n";
return str;
}
break;
case '7':
case '8':
if ( FnType == '0' ){
v = LAllChoices[ OperInfo[ i ][ 1 ]-1 ][ OperInfo[ i ][ 0 ] ];
b = "1";
if ( OperInfo[ i ][ 1 ] == '2' ) t = "^T";
else t = "";
}
else{
v = LAllChoices[ OperInfo[ i ][ 1 ] ][ OperInfo[ i ][ 0 ] ];
b = "b";
t = ""
}
tpadding = repeat( t.length, ' ' );
if ( j == 1 )
v = "\\hat{"+v+"}"
if ( OperInfo[ i ][ 1 ] != '0' ){
str += indent+"\\FlaTwoByOne{ "+c+"_T }\n";
str += indent+" { "+c+"_B }\n";
str += "\\rightarrow\n";
str += indent+"\\FlaThreeByOne";
str += DirChoicesAfterShort[ OperInfo[ i ][ 2 ] ];
str += "{"+c+"_0}\n";
str += indent+" ";
str += "{"+v+"_1"+t+"}\n";
str += indent+" ";
str += "{"+c+"_2}\n$\n";
whre += "$ "+v+"_1 $ has $ "+b+" $ row";
if ( b == 'b' ) whre += "s";
}
else{
str += "Cannot split scalar\n";
return str;
}
break;
}
}
}
str = str+"}\n\n"+whre+"}\n\n";
return str;
}
function LRepartition_Alg( FnName, FnType, Variant, NumOpers, OperInfo ){
var str="";
var i, j;
var c, v, s, t, tpadding, spadding;
var b="", whre="";
var firsttime=1, countperline=0;
str += "% Step 5a: Repartition the operands \n\n"
if ( FnType != '0' ){ /* Determine Block Size */
str += "\\renewcommand{\\blocksize}{b}\n\n"
b = "b"
}
str += "\\renewcommand{\\repartitionings}{\n"
whre += "\\renewcommand{\\repartitionsizes}{\n"
for (i=0; i 2 ){
str += "\\\\ \n";
countperline = 0;
}
str += "$\n";
switch( OperInfo[ i ][ 2 ] ){
case '1':
case '2':
case '3':
case '4':
if ( FnType == '0' ){
s = LAllChoices[ 0 ][ OperInfo[ i ][ 0 ] ];
v = LAllChoices[ 1 ][ OperInfo[ i ][ 0 ] ];
t = "^T";
b = "1";
}
else{
s = LAllChoices[ OperInfo[ i ][ 1 ] ][ OperInfo[ i ][ 0 ] ];
v = LAllChoices[ OperInfo[ i ][ 1 ] ][ OperInfo[ i ][ 0 ] ];
t = "";
b = "b";
}
if ( j == 1 ){
if ( OperInfo[ i ][ 3 ] == '2' )
s = "\\hat{"+s+"}"
v = "\\hat{"+v+"}"
}
if ( OperInfo[ i ][ 1 ] == '2' ){
str += indent+"\\FlaTwoByTwo{"+c+"_{TL}}{"+c+"_{TR}}\n";
str += indent+" {"+c+"_{BL}}{"+c+"_{BR}}\n";
str += indent+"\\rightarrow\n";
str += indent+"\\FlaThreeByThree"+
DirChoicesAfterShort[ OperInfo[ i ][ 2 ] ];
str += "{"+c+"_{00}}{"+v+"_{01}}{"+c+"_{02}}\n";
str += indent+" ";
str += "{"+v+"_{10}"+t+"}{"+s+"_{11}}{"+v+"_{12}"+t+"}\n";
str += indent+" ";
str += "{"+c+"_{20}}{"+v+"_{21}}{"+c+"_{22}}\n$";
whre += indent+"$ "+s+"_{11} $ is $ "+b+" \\times "+b+" $\n";
}
else{
str += "Cannot split non-matrix into four quadrants\n";
return str;
}
break;
case '5':
case '6':
if ( FnType == '0' ){
v = LAllChoices[ OperInfo[ i ][ 1 ]-1 ][ OperInfo[ i ][ 0 ] ];
b = "1";
}
else{
v = LAllChoices[ OperInfo[ i ][ 1 ] ][ OperInfo[ i ][ 0 ] ];
b = "b";
}
if ( OperInfo[ i ][ 1 ] == '1' ){
t = "^T";
}
else{
t = ""
}
if ( j == 1 )
v = "\\hat{"+v+"}"
if ( OperInfo[ i ][ 1 ] != '0' ){
str += indent+"\\FlaOneByTwo{"+c+"_L"+t+"}{"+c+"_R"+t+"}\n";
str += "\\rightarrow";
str += indent+"\\FlaOneByThree";
str += DirChoicesAfterShort[ OperInfo[ i ][ 2 ] ];
str += "{"+c+"_0"+t+"}{"+v+"_1";
if ( FnType != '0' )
str += t;
str += "}{"+c+"_2"+t+"}\n$\n";
whre += "$ "+v+"_1";
if ( FnType != '0' )
whre += t;
whre += " $ has $"+b+"$ column";
if ( b == 'b' ) whre += "s";
}
else{
str += "Cannot split scalar\n";
return str;
}
break;
case '7':
case '8':
if ( FnType == '0' ){
v = LAllChoices[ OperInfo[ i ][ 1 ]-1 ][ OperInfo[ i ][ 0 ] ];
b = "1";
if ( OperInfo[ i ][ 1 ] == '2' ) t = "^T";
else t = "";
}
else{
v = LAllChoices[ OperInfo[ i ][ 1 ] ][ OperInfo[ i ][ 0 ] ];
b = "b";
t = ""
}
tpadding = repeat( t.length, ' ' );
if ( j == 1 )
v = "\\hat{"+v+"}"
if ( OperInfo[ i ][ 1 ] != '0' ){
str += indent+"\\FlaTwoByOne{ "+c+"_T }\n";
str += indent+" { "+c+"_B }\n";
str += "\\rightarrow\n";
str += indent+"\\FlaThreeByOne";
str += DirChoicesAfterShort[ OperInfo[ i ][ 2 ] ];
str += "{"+c+"_0}\n";
str += indent+" ";
str += "{"+v+"_1"+t+"}\n";
str += indent+" ";
str += "{"+c+"_2}\n$\n";
whre += "$ "+v+"_1 $ has $ "+b+" $ row";
if ( b == 'b' ) whre += "s";
}
else{
str += "Cannot split scalar\n";
return str;
}
break;
}
}
}
str = str+"}\n\n"+whre+"}\n\n";
return str;
}
function LContinue( FnName, FnType, Variant, NumOpers, OperInfo ){
var str="";
var i, j;
var c, v, s, t, tpadding, spadding;
var b="";
var firsttime=1, countperline=0;
str += "% Step 5b: Move the double lines \n\n"
str += "\\renewcommand{\\moveboundaries}{\n"
for (i=0; i 2 ){
str += "\\\\ \n";
countperline = 0;
}
str += "$\n";
switch( OperInfo[ i ][ 2 ] ){
case '1':
case '2':
case '3':
case '4':
if ( FnType == '0' ){
s = LAllChoices[ 0 ][ OperInfo[ i ][ 0 ] ];
v = LAllChoices[ 1 ][ OperInfo[ i ][ 0 ] ];
t = "^T";
b = "1";
}
else{
s = LAllChoices[ OperInfo[ i ][ 1 ] ][ OperInfo[ i ][ 0 ] ];
v = LAllChoices[ OperInfo[ i ][ 1 ] ][ OperInfo[ i ][ 0 ] ];
t = "";
b = "b";
}
if ( j == 1 ){
if ( OperInfo[ i ][ 3 ] == '2' )
s = "\\hat{"+s+"}"
v = "\\hat{"+v+"}"
}
if ( OperInfo[ i ][ 1 ] == '2' ){
str += indent+"\\FlaTwoByTwo{"+c+"_{TL}}{"+c+"_{TR}}\n";
str += indent+" {"+c+"_{BL}}{"+c+"_{BR}}\n";
str += indent+"\\leftarrow\n";
str += indent+"\\FlaThreeByThree"+
DirChoicesBeforeShort[ OperInfo[ i ][ 2 ] ];
str += "{"+c+"_{00}}{"+v+"_{01}}{"+c+"_{02}}\n";
str += indent+" ";
str += "{"+v+"_{10}"+t+"}{"+s+"_{11}}{"+v+"_{12}"+t+"}\n";
str += indent+" ";
str += "{"+c+"_{20}}{"+v+"_{21}}{"+c+"_{22}}\n$";
}
else{
str += "Cannot split non-matrix into four quadrants\n";
return str;
}
break;
case '5':
case '6':
if ( FnType == '0' ){
v = LAllChoices[ OperInfo[ i ][ 1 ]-1 ][ OperInfo[ i ][ 0 ] ];
b = "1";
}
else{
v = LAllChoices[ OperInfo[ i ][ 1 ] ][ OperInfo[ i ][ 0 ] ];
b = "b";
}
if ( OperInfo[ i ][ 1 ] == '1' ){
t = "^T";
}
else{
t = ""
}
if ( j == 1 )
v = "\\hat{"+v+"}"
if ( OperInfo[ i ][ 1 ] != '0' ){
str += indent+"\\FlaOneByTwo{"+c+"_L"+t+"}{"+c+"_R"+t+"}\n";
str += "\\leftarrow";
str += indent+"\\FlaOneByThree";
str += DirChoicesBeforeShort[ OperInfo[ i ][ 2 ] ];
str += "{"+c+"_0"+t+"}{"+v+"_1";
if ( FnType != '0' )
str += t;
str += "}{"+c+"_2"+t+"}\n$\n";
}
else{
str += "Cannot split scalar\n";
return str;
}
break;
case '7':
case '8':
if ( FnType == '0' ){
v = LAllChoices[ OperInfo[ i ][ 1 ]-1 ][ OperInfo[ i ][ 0 ] ];
b = "1";
if ( OperInfo[ i ][ 1 ] == '2' ) t = "^T";
else t = "";
}
else{
v = LAllChoices[ OperInfo[ i ][ 1 ] ][ OperInfo[ i ][ 0 ] ];
b = "b";
t = ""
}
tpadding = repeat( t.length, ' ' );
if ( j == 1 )
v = "\\hat{"+v+"}"
if ( OperInfo[ i ][ 1 ] != '0' ){
str += indent+"\\FlaTwoByOne{ "+c+"_T }\n";
str += indent+" { "+c+"_B }\n";
str += "\\leftarrow\n";
str += indent+"\\FlaThreeByOne";
str += DirChoicesBeforeShort[ OperInfo[ i ][ 2 ] ];
str += "{"+c+"_0}\n";
str += indent+" ";
str += "{"+v+"_1"+t+"}\n";
str += indent+" ";
str += "{"+c+"_2}\n$\n";
}
else{
str += "Cannot split scalar\n";
return str;
}
break;
}
}
}
str = str+"}\n\n";
return str;
}
function LContinue_Alg( FnName, FnType, Variant, NumOpers, OperInfo ){
var str="";
var i, j;
var c, v, s, t, tpadding, spadding;
var b="";
var firsttime=1, countperline=0;
str += "% Step 5b: Move the double lines \n\n"
str += "\\renewcommand{\\moveboundaries}{\n"
for (i=0; i 2 ){
str += "\\\\ \n";
countperline = 0;
}
str += "$\n";
switch( OperInfo[ i ][ 2 ] ){
case '1':
case '2':
case '3':
case '4':
if ( FnType == '0' ){
s = LAllChoices[ 0 ][ OperInfo[ i ][ 0 ] ];
v = LAllChoices[ 1 ][ OperInfo[ i ][ 0 ] ];
t = "^T";
b = "1";
}
else{
s = LAllChoices[ OperInfo[ i ][ 1 ] ][ OperInfo[ i ][ 0 ] ];
v = LAllChoices[ OperInfo[ i ][ 1 ] ][ OperInfo[ i ][ 0 ] ];
t = "";
b = "b";
}
if ( j == 1 ){
if ( OperInfo[ i ][ 3 ] == '2' )
s = "\\hat{"+s+"}"
v = "\\hat{"+v+"}"
}
if ( OperInfo[ i ][ 1 ] == '2' ){
str += indent+"\\FlaTwoByTwo{"+c+"_{TL}}{"+c+"_{TR}}\n";
str += indent+" {"+c+"_{BL}}{"+c+"_{BR}}\n";
str += indent+"\\leftarrow\n";
str += indent+"\\FlaThreeByThree"+
DirChoicesBeforeShort[ OperInfo[ i ][ 2 ] ];
str += "{"+c+"_{00}}{"+v+"_{01}}{"+c+"_{02}}\n";
str += indent+" ";
str += "{"+v+"_{10}"+t+"}{"+s+"_{11}}{"+v+"_{12}"+t+"}\n";
str += indent+" ";
str += "{"+c+"_{20}}{"+v+"_{21}}{"+c+"_{22}}\n$";
}
else{
str += "Cannot split non-matrix into four quadrants\n";
return str;
}
break;
case '5':
case '6':
if ( FnType == '0' ){
v = LAllChoices[ OperInfo[ i ][ 1 ]-1 ][ OperInfo[ i ][ 0 ] ];
b = "1";
}
else{
v = LAllChoices[ OperInfo[ i ][ 1 ] ][ OperInfo[ i ][ 0 ] ];
b = "b";
}
if ( OperInfo[ i ][ 1 ] == '1' ){
t = "^T";
}
else{
t = ""
}
if ( j == 1 )
v = "\\hat{"+v+"}"
if ( OperInfo[ i ][ 1 ] != '0' ){
str += indent+"\\FlaOneByTwo{"+c+"_L"+t+"}{"+c+"_R"+t+"}\n";
str += "\\leftarrow";
str += indent+"\\FlaOneByThree";
str += DirChoicesBeforeShort[ OperInfo[ i ][ 2 ] ];
str += "{"+c+"_0"+t+"}{"+v+"_1";
if ( FnType != '0' )
str += t;
str += "}{"+c+"_2"+t+"}\n$\n";
}
else{
str += "Cannot split scalar\n";
return str;
}
break;
case '7':
case '8':
if ( FnType == '0' ){
v = LAllChoices[ OperInfo[ i ][ 1 ]-1 ][ OperInfo[ i ][ 0 ] ];
b = "1";
if ( OperInfo[ i ][ 1 ] == '2' ) t = "^T";
else t = "";
}
else{
v = LAllChoices[ OperInfo[ i ][ 1 ] ][ OperInfo[ i ][ 0 ] ];
b = "b";
t = ""
}
tpadding = repeat( t.length, ' ' );
if ( j == 1 )
v = "\\hat{"+v+"}"
if ( OperInfo[ i ][ 1 ] != '0' ){
str += indent+"\\FlaTwoByOne{ "+c+"_T }\n";
str += indent+" { "+c+"_B }\n";
str += "\\leftarrow\n";
str += indent+"\\FlaThreeByOne";
str += DirChoicesBeforeShort[ OperInfo[ i ][ 2 ] ];
str += "{"+c+"_0}\n";
str += indent+" ";
str += "{"+v+"_1"+t+"}\n";
str += indent+" ";
str += "{"+c+"_2}\n$\n";
}
else{
str += "Cannot split scalar\n";
return str;
}
break;
}
}
}
str = str+"}\n\n";
return str;
}
function LAfterRepartition( FnName, FnType, Variant, NumOpers, OperInfo ){
var str="";
var i, j;
var c, v, s, t, tpadding, spadding;
var b="", whre="";
var firsttime=1;
str += "% Step 6: State after repartitioning\n"
str += "% Note: The below needs editing!!!\n\n"
str += "\\renewcommand{\\beforeupdate}{\n"
for (i=0; i