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: