Skip to content
Snippets Groups Projects
Commit 402926f8 authored by Stéphane Adjemian's avatar Stéphane Adjemian
Browse files

Add simulation results (Puck).

 - Add tex, pdf, png to be included in the README
 - Add matlab routine to produce the tables
 - Add template for short table (without solve_algo=7)

(cherry picked from commit 57f2efad1d6181ba18b189da75d34d85ff7acd80)
parent fca62d70
No related branches found
No related tags found
No related merge requests found
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);
\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:
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment