\documentclass{article}

\newcommand{\dir}{~/projects/latex}
\input{\dir/include.tex}
\load{full}

\usepackage{lmodern}
% \usepackage{pgfplots}
\setFontType{sans}

\renewcommand{\authorTitle}{Robin Bacher, Janis Hutz\\\url{https://github.com/janishutz/eth-summaries}}
\renewcommand{\authorHeaders}{Robin Bacher, Janis Hutz}
\setLang{de}

\setup{Numerical Methods for Computer Science}

\begin{document}
\startDocument
\usetcolorboxes
\setcounter{numberingConfig}{3}
\setcounter{numberSubsections}{1}

%          ╭────────────────────────────────────────────────╮
%          │                   Title page                   │
%          ╰────────────────────────────────────────────────╯
\vspace{2cm}
\begin{Huge}
    \begin{center}
        TITLE PAGE COMING SOON
    \end{center}
\end{Huge}


\vspace{4cm}
\begin{center}
    \begin{Large}
        ``\textit{Denken vor Rechnen}''
        ``\textit{Wer in Python Type annotation benötigt, der soll kein Python verwenden}'' (2025-10-09T10:43)
    \end{Large}

    \hspace{3cm} - Vasile Gradinaru, 2025
\end{center}

\vspace{3cm}
\begin{center}
    HS2025, ETHZ\\[0.2cm]
    \begin{Large}
        Summary of the Script and Lectures
    \end{Large}\\[0.2cm]
\end{center}


% ────────────────────────────────────────────────────────────────────

%          ╭────────────────────────────────────────────────╮
%          │               Table of Contents                │
%          ╰────────────────────────────────────────────────╯
\newpage
\printtoc{ForestGreen}


% ────────────────────────────────────────────────────────────────────

%          ╭────────────────────────────────────────────────╮
%          │                  Introduction                  │
%          ╰────────────────────────────────────────────────╯
\newpage
\setcounter{section}{-1}
\section{Introduction}
This summary is intended to give you a broad overview of the topics relevant for the exam and is not intended to serve as a full on replacement for the script.
We have decided to write it in German, as is the new script and for some of the topics that are poorly explained in the script, we have added further explanations.

The numbering should match the script's numbering exactly (apart from the cases where two definitions were combined due to being closely related and short), making it easier for you to look up the relevant definitions, theorems, etc in context in the script.

Many of the figures in this summary were taken directly from the Script or Lecture notes created by Professor Vasile Gradinaru.

To add to the one quote regarding Python and type annotation: This is objectively wrong and a really hot take.
Yes, this applies for small projects, but libraries \textit{DO} need type annotation, as you can't possibly read the entire library's code to use it.
The reason this quote was even included here is that his coding style is really awful (yes, there were semicolons in his Python-code sometimes)
and he rambled about bad coding style for about 10 minutes in this lecture.

Meanwhile his code has variable names that neither future him, nor anybody else can make much sense of intuitively.
You can get away without type annotation in Python, even in larger projects, but only if you give variables proper names!

Moral of the story: Use descriptive variable names and do NOT use $t$, $tt$, $ttt$, \dots

% ────────────────────────────────────────────────────────────────────

%          ╭────────────────────────────────────────────────╮
%          │                  Main content                  │
%          ╰────────────────────────────────────────────────╯

% ── Introduction ────────────────────────────────────────────────────
\newsection
\section{Einführung}
\input{parts/00_introduction/00_rounding-errors.tex}
\input{parts/00_introduction/01_time-complexity.tex}
\input{parts/00_introduction/02_matrix-multiplication.tex}

% ── polynomial interpolation ────────────────────────────────────────
\newsection
\section{Polynominterpolation}
\input{parts/01_interpolation/00_polynomial/00_intro.tex}
\input{parts/01_interpolation/00_polynomial/01_monome.tex}
\input{parts/01_interpolation/00_polynomial/02_newton-basis.tex}
\input{parts/01_interpolation/00_polynomial/03_lagrange-and-barzycentric-formula.tex}
\input{parts/01_interpolation/00_polynomial/04_chebyshev-interpolation.tex}

% ── trigonometric interpolation ─────────────────────────────────────
\newsection
\section{Trigonometrische Interpolation}
\input{parts/01_interpolation/01_trigonometric/00_fourier.tex}
\input{parts/01_interpolation/01_trigonometric/01_dft/00_intro.tex}
\input{parts/01_interpolation/01_trigonometric/01_dft/01_construction.tex}
\input{parts/01_interpolation/01_trigonometric/01_dft/02_fftshift.tex}
\input{parts/01_interpolation/01_trigonometric/01_dft/03_linalg.tex}
\input{parts/01_interpolation/01_trigonometric/02_fft.tex}
\input{parts/01_interpolation/01_trigonometric/03_interpolation/00_intro.tex}
\input{parts/01_interpolation/01_trigonometric/03_interpolation/01_zero-padding.tex}
\input{parts/01_interpolation/01_trigonometric/04_error-estimation.tex}

% ── piece-wise interpolation ────────────────────────────────────────
\newsection
\section{Stückweise Polynomiale Interpolation}
\input{parts/01_interpolation/02_piece-wise/00_intro.tex}
\input{parts/01_interpolation/02_piece-wise/01_hermite-interpolation.tex}
\input{parts/01_interpolation/02_piece-wise/02_splines.tex}


\end{document}
