diff --git a/matlab/write_table_short.m b/matlab/write_table_short.m new file mode 100644 index 0000000000000000000000000000000000000000..c144d4137a8e7034787ac9b26719cbe2b29d14a5 --- /dev/null +++ b/matlab/write_table_short.m @@ -0,0 +1,124 @@ +function write_table_short(datafile, texfilename) + +stack_solve_algo = [0, 1, 2, 3, 4, 5]; +id = 1:length(stack_solve_algo); + +cfolder = pwd; + +load(datafile); + +[folder,~, ~] = fileparts(mfilename('fullpath')); +idf = strfind(folder, filesep()); +rootfolder = folder(1:idf(end)); +fid = fopen(sprintf('%stables/template-short.tex', rootfolder),'r'); +T = fread(fid, '*char')'; +fclose(fid); + +% +% Matlab +% +for algo = [0, 1] + if ~isnan(MATLAB_computing(id(stack_solve_algo==algo), 1)) + if MATLAB_computing(id(stack_solve_algo==algo), 1) == -2 + T = strrep(T, sprintf('{a%u_mat}', algo), 'FAIL'); + elseif ismember(MATLAB_computing(id(stack_solve_algo==algo), 1), [-1, -3]) + T = strrep(T, sprintf('{a%u_mat}', algo), 'CRASH'); + else + T = strrep(T, sprintf('{a%u_mat}', algo), int2str(MATLAB_computing(id(stack_solve_algo==algo), 1))); + end + end +end +% +% use_dll +% +for algo = [0, 1] + if ~isnan(USE_DLL_computing(id(stack_solve_algo==algo), 1)) + if USE_DLL_computing(id(stack_solve_algo==algo), 1) == -2 + T = strrep(T, sprintf('{a%u_dll}', algo), 'FAIL'); + elseif ismember(USE_DLL_computing(id(stack_solve_algo==algo), 1), [-1, -3]) + T = strrep(T, sprintf('{a%u_dll}', algo), 'CRASH'); + else + T = strrep(T, sprintf('{a%u_dll}', algo), int2str(USE_DLL_computing(id(stack_solve_algo==algo), 1))); + end + end +end +% +% Bytecode +% +for algo = [0, 1, 2, 3, 4, 5] + if ~isnan(BYTECODE_computing(id(stack_solve_algo==algo), 1)) + if BYTECODE_computing(id(stack_solve_algo==algo), 1) == -2 + T = strrep(T, sprintf('{a%u_byt}', algo), 'FAIL'); + elseif ismember(BYTECODE_computing(id(stack_solve_algo==algo), 1), [-1, -3]) + T = strrep(T, sprintf('{a%u_byt}', algo), 'CRASH'); + else + T = strrep(T, sprintf('{a%u_byt}', algo), int2str(BYTECODE_computing(id(stack_solve_algo==algo), 1))); + end + end +end +% +% Matlab with blocks +% +for mfs = 0:3 + for algo = [0, 1, 2, 3, 4] + if ~isnan(MATLAB_WITH_BLOCKS_computing(id(stack_solve_algo==algo), mfs+1)) + if MATLAB_WITH_BLOCKS_computing(id(stack_solve_algo==algo), mfs+1) == -2 + T = strrep(T, sprintf('{a%u_mat_blk_%u}', algo, mfs), 'FAIL'); + elseif ismember(MATLAB_WITH_BLOCKS_computing(id(stack_solve_algo==algo), mfs+1), [-1, -3]); + T = strrep(T, sprintf('{a%u_mat_blk_%u}', algo, mfs), 'CRASH'); + else + T = strrep(T, sprintf('{a%u_mat_blk_%u}', algo, mfs), int2str(MATLAB_WITH_BLOCKS_computing(id(stack_solve_algo==algo), mfs+1))); + end + end + end +end +% +% USE_DLL with blocks +% +for mfs = 0:3 + for algo = [0, 1, 2, 3, 4] + if ~isnan(USE_DLL_WITH_BLOCKS_computing(id(stack_solve_algo==algo), mfs+1)) + if USE_DLL_WITH_BLOCKS_computing(id(stack_solve_algo==algo), mfs+1) == -2 + T = strrep(T, sprintf('{a%u_dll_blk_%u}', algo, mfs), 'FAIL'); + elseif ismember(USE_DLL_WITH_BLOCKS_computing(id(stack_solve_algo==algo), mfs+1), [-1, -3]); + T = strrep(T, sprintf('{a%u_dll_blk_%u}', algo, mfs), 'CRASH'); + else + T = strrep(T, sprintf('{a%u_dll_blk_%u}', algo, mfs), int2str(USE_DLL_WITH_BLOCKS_computing(id(stack_solve_algo==algo), mfs+1))); + end + end + end +end +% +% Bytecode with blocks +% +for mfs = 0:3 + for algo = [0, 1, 2, 3, 4, 5] + if ~isnan(BYTECODE_WITH_BLOCKS_computing(id(stack_solve_algo==algo), mfs+1)) + if BYTECODE_WITH_BLOCKS_computing(id(stack_solve_algo==algo), mfs+1) == -2 + T = strrep(T, sprintf('{a%u_byt_blk_%u}', algo, mfs), 'FAIL'); + elseif ismember(BYTECODE_WITH_BLOCKS_computing(id(stack_solve_algo==algo), mfs+1), [-1, -3]); + T = strrep(T, sprintf('{a%u_byt_blk_%u}', algo, mfs), 'CRASH'); + else + T = strrep(T, sprintf('{a%u_byt_blk_%u}', algo, mfs), int2str(BYTECODE_WITH_BLOCKS_computing(id(stack_solve_algo==algo), mfs+1))); + end + end + end +end + +% +% Save table +% + +fid = fopen( sprintf('%stables/%s.tex', rootfolder, texfilename), 'w'); +fprintf(fid, '%s', T); +fclose(fid); + +% +% Compile to pdf and png +% + +cd(sprintf('%stables', rootfolder)); +system(sprintf('pdflatex %s', texfilename)); +system(sprintf('convert -density 600 %s.pdf %s.png', texfilename, texfilename)); + +cd(cfolder); diff --git a/tables/template-short.tex b/tables/template-short.tex new file mode 100644 index 0000000000000000000000000000000000000000..184fbeed93bd391e4d24a44d53d04f5891a92939 --- /dev/null +++ b/tables/template-short.tex @@ -0,0 +1,32 @@ +\documentclass[10pt]{standalone} + + +\begin{document} + +\begin{tabular}{|l|c|c|c|cccc|cccc|cccc|} + \hline + & \textbf{MATLAB} & \textbf{USE\_DLL} & \textbf{BYTECODE} & \multicolumn{4}{c|}{\textbf{MATLAB+BLOCKS}} & \multicolumn{4}{c|}{\textbf{USE\_DLL+BLOCKS}} & \multicolumn{4}{c|}{\textbf{BYTECODE+BLOCKS}}\\ + %\cline{2-4} + \textbf{Algorithm} & & & & \textbf{mfs=0} & \textbf{mfs=1} & \textbf{mfs=2} & \textbf{mfs=3} & \textbf{mfs=0} & \textbf{mfs=1} & \textbf{mfs=2} & \textbf{mfs=3} & \textbf{mfs=0} & \textbf{mfs=1} & \textbf{mfs=2} & \textbf{mfs=3}\\ + \cline{2-16} + \texttt{solve\_algo=0} & {a0_mat} & {a0_dll} & {a0_byt} & {a0_mat_blk_0} & {a0_mat_blk_1} & {a0_mat_blk_2} & {a0_mat_blk_3} & {a0_dll_blk_0} & {a0_dll_blk_1} & {a0_dll_blk_2} & {a0_dll_blk_3} & {a0_byt_blk_0} & {a0_byt_blk_1} & {a0_byt_blk_2} & {a0_byt_blk_3} \\ + \texttt{solve\_algo=1} & {a1_mat} & {a1_dll} & {a1_byt} & {a1_mat_blk_0} & {a1_mat_blk_1} & {a1_mat_blk_2} & {a1_mat_blk_3} & {a1_dll_blk_0} & {a1_dll_blk_1} & {a1_dll_blk_2} & {a1_dll_blk_3} & {a1_byt_blk_0} & {a1_byt_blk_1} & {a1_byt_blk_2} & {a1_byt_blk_3} \\ + \texttt{solve\_algo=2} & NA & NA & {a2_byt} & {a2_mat_blk_0} & {a2_mat_blk_1} & {a2_mat_blk_2} & {a2_mat_blk_3} & {a2_dll_blk_0} & {a2_dll_blk_1} & {a2_dll_blk_2} & {a2_dll_blk_3} & {a2_byt_blk_0} & {a2_byt_blk_1} & {a2_byt_blk_2} & {a2_byt_blk_3} \\ + \texttt{solve\_algo=3} & NA & NA & {a3_byt} & {a3_mat_blk_0} & {a3_mat_blk_1} & {a3_mat_blk_2} & {a3_mat_blk_3} & {a3_dll_blk_0} & {a3_dll_blk_1} & {a3_dll_blk_2} & {a3_dll_blk_3} & {a3_byt_blk_0} & {a3_byt_blk_1} & {a3_byt_blk_2} & {a3_byt_blk_3} \\ + \texttt{solve\_algo=4} & NA & NA & {a4_byt} & {a4_mat_blk_0} & {a4_mat_blk_1} & {a4_mat_blk_2} & {a4_mat_blk_3} & {a4_dll_blk_0} & {a4_dll_blk_1} & {a4_dll_blk_2} & {a4_dll_blk_3} & {a4_byt_blk_0} & {a4_byt_blk_1} & {a4_byt_blk_2} & {a4_byt_blk_3} \\ + \texttt{solve\_algo=5} & NA & NA & {a5_byt} & NA & NA & NA & NA & NA & NA & NA & NA & {a5_byt_blk_0} & {a5_byt_blk_1} & {a5_byt_blk_2} & {a5_byt_blk_3}\\ + \hline +\end{tabular} + + +\end{document} + + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: t +%%% End: +%%% Local Variables: +%%% mode: latex +%%% TeX-master: t +%%% End: