% paths where the performances are stored
\def\datapathLaplacianExact{../jet/exp/exp01_benchmark_laplacian/performance/architecture_tanh_mlp_768_768_512_512_1_device_cuda_dim_50_name_laplacian_vary_batch_size}
\def\datapathLaplacianStochastic{../jet/exp/exp01_benchmark_laplacian/performance/architecture_tanh_mlp_768_768_512_512_1_batch_size_2048_device_cuda_dim_50_distribution_normal_name_laplacian_vary_num_samples}
\def\datapathWeightedLaplacianExact{../jet/exp/exp01_benchmark_laplacian/performance/architecture_tanh_mlp_768_768_512_512_1_device_cuda_dim_50_name_weighted_laplacian_vary_batch_size_rank_ratio_1_0}
\def\datapathWeightedLaplacianStochastic{../jet/exp/exp01_benchmark_laplacian/performance/architecture_tanh_mlp_768_768_512_512_1_batch_size_2048_device_cuda_dim_50_distribution_normal_name_weighted_laplacian_vary_num_samples_rank_ratio_1_0}
\def\datapathBilaplacianExact{../jet/exp/exp01_benchmark_laplacian/performance/architecture_tanh_mlp_768_768_512_512_1_device_cuda_dim_5_name_bilaplacian_vary_batch_size}
\def\datapathBilaplacianStochastic{../jet/exp/exp01_benchmark_laplacian/performance/architecture_tanh_mlp_768_768_512_512_1_batch_size_256_device_cuda_dim_5_distribution_normal_name_bilaplacian_vary_num_samples}
% configuration options for the \num command
\sisetup{%
  % scientific-notation=true,%
  round-mode=figures,%
  round-precision=2,%
  detect-weight, % for bolding to work
  tight-spacing=true, % less space around \cdot
}
\resizebox{0.84\linewidth}{!}{
  \begin{tabular}{ccc|cccc}
    \toprule
    \textbf{Mode}
    & \makecell{\textbf{Per-datum/sample}}
    & \textbf{Implementation}
    & \textbf{Laplacian}
    & \makecell{\textbf{Weighted} \textbf{Laplacian}}
    & \textbf{Biharmonic}
    \\
    \midrule
    \multirow{6}{*}{\textbf{Exact}}
    & \multirow{3}{*}{Time [ms]}
    & \textcolor{tab-blue}{Nested 1\textsuperscript{st}-order}
    & \input{\datapathLaplacianExact/hessian_trace_best.txt}
    & \input{\datapathWeightedLaplacianExact/hessian_trace_best.txt}
    & \input{\datapathBilaplacianExact/hessian_trace_best.txt}
    \\
    &
    & \textcolor{tab-orange}{Standard Taylor}
    & \input{\datapathLaplacianExact/jet_naive_best.txt}
    & \input{\datapathWeightedLaplacianExact/jet_naive_best.txt}
    & \input{\datapathBilaplacianExact/jet_naive_best.txt}
    \\
    &
    & \textcolor{tab-green}{\textbf{Collapsed (ours)}}
    & \textbf{\input{\datapathLaplacianExact/jet_simplified_best.txt}}
    & \textbf{\input{\datapathWeightedLaplacianExact/jet_simplified_best.txt}}
    & \textbf{\input{\datapathBilaplacianExact/jet_simplified_best.txt}}
    \\ \cmidrule{2-6}
    & \multirow{3}{*}{\makecell{Mem.\,[MiB]}}
    & \textcolor{tab-blue}{Nested 1\textsuperscript{st}-order}
    & \input{\datapathLaplacianExact/hessian_trace_peakmem.txt}
    & \input{\datapathWeightedLaplacianExact/hessian_trace_peakmem.txt}
    & \input{\datapathBilaplacianExact/hessian_trace_peakmem.txt}
    \\
    &
    & \textcolor{tab-orange}{Standard Taylor}
    & \input{\datapathLaplacianExact/jet_naive_peakmem.txt}
    & \input{\datapathWeightedLaplacianExact/jet_naive_peakmem.txt}
    & \input{\datapathBilaplacianExact/jet_naive_peakmem.txt}
    \\
    &
    & \textcolor{tab-green}{\textbf{Collapsed (ours)}}
    & \textbf{\input{\datapathLaplacianExact/jet_simplified_peakmem.txt}}
    & \textbf{\input{\datapathWeightedLaplacianExact/jet_simplified_peakmem.txt}}
    & \textbf{\input{\datapathBilaplacianExact/jet_simplified_peakmem.txt}}
    \\
    \midrule
    \multirow{6}{*}{\textbf{Stochastic}\,\,}
    & \multirow{3}{*}{Time [ms]}
    & \textcolor{tab-blue}{Nested 1\textsuperscript{st}-order}
    & \input{\datapathLaplacianStochastic/hessian_trace_best.txt}
    & \input{\datapathWeightedLaplacianStochastic/hessian_trace_best.txt}
    & \input{\datapathBilaplacianStochastic/hessian_trace_best.txt}
    \\
    &
    & \textcolor{tab-orange}{Standard Taylor}
    & \input{\datapathLaplacianStochastic/jet_naive_best.txt}
    & \input{\datapathWeightedLaplacianStochastic/jet_naive_best.txt}
    & \input{\datapathBilaplacianStochastic/jet_naive_best.txt}
    \\
    &
    & \textcolor{tab-green}{\textbf{Collapsed (ours)}}
    & \textbf{\input{\datapathLaplacianStochastic/jet_simplified_best.txt}}
    & \textbf{\input{\datapathWeightedLaplacianStochastic/jet_simplified_best.txt}}
    & \textbf{\input{\datapathBilaplacianStochastic/jet_simplified_best.txt}}
    \\ \cmidrule{2-6}
    & \multirow{3}{*}{\makecell{Mem.\,[MiB]}}
    & \textcolor{tab-blue}{Nested 1\textsuperscript{st}-order}
    & \input{\datapathLaplacianStochastic/hessian_trace_peakmem.txt}
    & \input{\datapathWeightedLaplacianStochastic/hessian_trace_peakmem.txt}
    & \input{\datapathBilaplacianStochastic/hessian_trace_peakmem.txt}
    \\
    &
    & \textcolor{tab-orange}{Standard Taylor}
    & \input{\datapathLaplacianStochastic/jet_naive_peakmem.txt}
    & \input{\datapathWeightedLaplacianStochastic/jet_naive_peakmem.txt}
    & \input{\datapathBilaplacianStochastic/jet_naive_peakmem.txt}
    \\
    &
    & \textcolor{tab-green}{\textbf{Collapsed (ours)}}
    & \textbf{\input{\datapathLaplacianStochastic/jet_simplified_peakmem.txt}}
    & \textbf{\input{\datapathWeightedLaplacianStochastic/jet_simplified_peakmem.txt}}
    & \textbf{\input{\datapathBilaplacianStochastic/jet_simplified_peakmem.txt}}
    \\
    \bottomrule
  \end{tabular}
}
%%% Local Variables:
%%% mode: LaTeX
%%% TeX-master: "../main"
%%% End:
