diff options
Diffstat (limited to 'buch')
266 files changed, 56090 insertions, 1723 deletions
diff --git a/buch/Makefile b/buch/Makefile index 1cd50dd..b83c72a 100755 --- a/buch/Makefile +++ b/buch/Makefile @@ -19,7 +19,6 @@ buch.pdf: buch.tex $(TEXFILES) buch.ind $(BLXFILES) bibtex buch buch.idx: buch.tex $(TEXFILES) images - touch buch.ind pdflatex buch.tex buch.ind: buch.idx diff --git a/buch/buch.tex b/buch/buch.tex index 65c2ca7..449bc2a 100644 --- a/buch/buch.tex +++ b/buch/buch.tex @@ -44,6 +44,6 @@ \lhead{Index} \rhead{} \addcontentsline{toc}{chapter}{\indexname} -\input{buch.ind} +\InputIfFileExists{buch.ind}{}{} \end{document} diff --git a/buch/chapters/10-vektorenmatrizen/linear.tex b/buch/chapters/10-vektorenmatrizen/linear.tex index 2fcf199..3ad51f1 100644..100755 --- a/buch/chapters/10-vektorenmatrizen/linear.tex +++ b/buch/chapters/10-vektorenmatrizen/linear.tex @@ -33,7 +33,7 @@ aber mit Punkten kann man trotzdem noch nicht rechnen. Ein Vektor fasst die Koordinaten eines Punktes in einem Objekt zusammen, mit dem man auch rechnen und zum Beispiel Parallelverschiebungen algebraisieren kann. -Um auch Streckungen ausdrücken zu können, wird auch eine Menge von +Um auch Streckungen ausdrücken zu können, wird auch eine Menge von Streckungsfaktoren benötigt, mit denen alle Komponenten eines Vektors multipliziert werden können. Sie heissen auch {\em Skalare} und liegen in $\Bbbk$. @@ -73,7 +73,7 @@ a+b = \begin{pmatrix}\lambda a_1\\\vdots\\\lambda a_n\end{pmatrix}. \] -Die üblichen Rechenregeln sind erfüllt, nämlich +Die üblichen Rechenregeln sind erfüllt, nämlich \begin{equation} \begin{aligned} &\text{Kommutativität:} @@ -149,7 +149,7 @@ kann als (abstrakter) Vektor betrachtet werden. \begin{definition} Eine Menge $V$ von Objekten, auf der zwei Operationen definiert, nämlich die Addition, geschrieben $a+b$ für $a,b\in V$ und die -Multiplikation mit Skalaren, geschrieben $\lambda a$ für $a\in V$ und +Multiplikation mit Skalaren, geschrieben $\lambda a$ für $a\in V$ und $\lambda\in \Bbbk$, heisst ein {\em $\Bbbk$-Vektorraum} oder {\em Vektorraum über $\Bbbk$} (oder einfach nur {\em Vektorraum}, wenn $\Bbbk$ aus dem Kontext klar sind), @@ -172,7 +172,7 @@ $\mathbb{C}$ ein Vektorraum über $\mathbb{R}$. \end{beispiel} \begin{beispiel} -Die Menge $C([a,b])$ der stetigen Funktionen $[a,b]\to\mathbb{Re}$ +Die Menge $C([a,b])$ der stetigen Funktionen $[a,b]\to\mathbb{Re}$ bildet ein Vektorraum. Funktionen können addiert und mit reellen Zahlen multipliziert werden: \[ @@ -188,7 +188,7 @@ Die Vektorraum-Rechenregeln \end{beispiel} Die Beispiele zeigen, dass der Begriff des Vektorraums die algebraischen -Eigenschaften eine grosse Zahl sehr verschiedenartiger mathematischer +Eigenschaften eine grosse Zahl sehr verschiedenartiger mathematischer Objekte beschreiben kann. Alle Erkenntnisse, die man ausschliesslich aus Vekotorraumeigenschaften gewonnen hat, sind auf alle diese Objekte übertragbar. @@ -300,7 +300,7 @@ folgt, dass alle $\lambda_1,\dots,\lambda_n=0$ sind. Lineare Abhängigkeit der Vektoren $a_1,\dots,a_n$ bedeutet auch, dass man einzelne der Vektoren durch andere ausdrücken kann. Hat man nämlich eine -Linearkombination~\eqref{buch:vektoren-und-matrizen:eqn:linabhdef} und +Linearkombination~\eqref{buch:vektoren-und-matrizen:eqn:linabhdef} und ist der Koeffizient $\lambda_k\ne 0$, dann kann man nach $a_k$ auflösen: \[ a_k = -\frac{1}{\lambda_k}(\lambda_1a_1+\dots+\widehat{\lambda_ka_k}+\dots+\lambda_na_n). @@ -323,7 +323,7 @@ offenbar eine besondere Bedeutung. Eine linear unabhängig Menge von Vektoren $\mathcal{B}=\{a_1,\dots,a_n\}\subset V$ heisst {\em Basis} von $V$. -Die maximale Anzahl linear unabhängiger Vektoren in $V$ heisst +Die maximale Anzahl linear unabhängiger Vektoren in $V$ heisst {\em Dimension} von $V$. \end{definition} @@ -331,7 +331,7 @@ Die Standardbasisvektoren bilden eine Basis von $V=\Bbbk^n$. \subsubsection{Unterräume} Die Mengen $\langle a_1,\dots,a_n\rangle$ sind Teilmengen -von $V$, in denen die Addition von Vektoren und die Multiplikation mit +von $V$, in denen die Addition von Vektoren und die Multiplikation mit Skalaren immer noch möglich ist. \begin{definition} @@ -352,7 +352,7 @@ gilt. % \subsection{Matrizen \label{buch:grundlagen:subsection:matrizen}} -Die Koeffizienten eines linearen Gleichungssystems finden in einem +Die Koeffizienten eines linearen Gleichungssystems finden in einem Zeilen- oder Spaltenvektor nicht Platz. Wir erweitern das Konzept daher in einer Art, dass Zeilen- und Spaltenvektoren Spezialfälle sind. @@ -378,14 +378,14 @@ M_{m\times n}(\Bbbk) = \{ A\;|\; \text{$A$ ist eine $m\times n$-Matrix}\}. \] Falls $m=n$ gilt, heisst die Matrix $A$ auch {\em quadratisch} \index{quadratische Matrix}% -Man kürzt die Menge der quadratischen Matrizen als +Man kürzt die Menge der quadratischen Matrizen als $M_n(\Bbbk) = M_{n\times n}(\Bbbk)$ ab. \end{definition} -Die $m$-dimensionalen Spaltenvektoren $v\in \Bbbk^m$ sind $m\times 1$-Matrizen +Die $m$-dimensionalen Spaltenvektoren $v\in \Bbbk^m$ sind $m\times 1$-Matrizen $v\in M_{n\times 1}(\Bbbk)$, die $n$-dimensionalen Zeilenvetoren $u\in\Bbbk^n$ sind $1\times n$-Matrizen $v\in M_{1\times n}(\Bbbk)$. -Eine $m\times n$-Matrix $A$ mit den Koeffizienten $a_{ij}$ besteht aus +Eine $m\times n$-Matrix $A$ mit den Koeffizienten $a_{ij}$ besteht aus den $n$ Spaltenvektoren \[ a_1 = \begin{pmatrix} a_{11} \\ a_{21} \\ \vdots \\ a_{m1} \end{pmatrix},\quad @@ -435,7 +435,7 @@ werden kann. \begin{definition} Eine $m\times n$-Matrix $A\in M_{m\times n}(\Bbbk)$ und eine $n\times l$-Matrix $B\in M_{n\times l}(\Bbbk)$ haben als Produkt -eine $n\times l$-Matrix $C=AB\in M_{n\times l}(\Bbbk)$ mit den +eine $m\times l$-Matrix $C=AB\in M_{m\times l}(\Bbbk)$ mit den Koeffizienten \begin{equation} c_{ij} = \sum_{k=1}^n a_{ik} b_{kj}. @@ -483,7 +483,7 @@ I 1 &0 &\dots &0 \\ 0 &1 &\dots &0 \\[-2pt] \vdots&\vdots&\ddots&\vdots\\ -0 &0 &\dots &1 +0 &0 &\dots &1 \end{pmatrix}. \] @@ -521,10 +521,10 @@ Ein Gleichungssystem mit $0$ auf der rechten Seite ist also bereits ausreichend um zu entscheiden, ob die Lösung eindeutig ist. Ein Gleichungssystem mit rechter Seite $0$ heisst {\em homogen}. \index{homogenes Gleichungssystem}% -Zu jedem {\em inhomogenen} Gleichungssystem $Ax=b$ mit $b\ne 0$ +Zu jedem {\em inhomogenen} Gleichungssystem $Ax=b$ mit $b\ne 0$ ist $Ax=0$ das zugehörige homogene Gleichungssystem. -Ein homogenes Gleichungssytem $Ax=0$ hat immer mindestens die +Ein homogenes Gleichungssytem $Ax=0$ hat immer mindestens die Lösung $x=0$, man nennt sie auch die {\em triviale} Lösung. Eine Lösung $x\ne 0$ heisst auch eine nichttriviale Lösung. Die Lösungen eines inhomgenen Gleichungssystem $Ax=b$ ist also nur dann @@ -535,7 +535,7 @@ Lösung hat. Der Gauss-Algorithmus oder genauer Gausssche Eliminations-Algorithmus löst ein lineare Gleichungssystem der Form~\eqref{buch:vektoren-und-matrizen:eqn:vektorform}. -Die Koeffizienten werden dazu in das Tableau +Die Koeffizienten werden dazu in das Tableau \[ \begin{tabular}{|>{$}c<{$}>{$}c<{$}>{$}c<{$}|>{$}c<{$}|} \hline @@ -552,7 +552,7 @@ Der Algorithmus is so gestaltet, dass er nicht mehr Speicher als das Tableau benötigt, alle Schritte operieren direkt auf den Daten des Tableaus. -In jedem Schritt des Algorithmus wird zunächst eine Zeile $i$ und +In jedem Schritt des Algorithmus wird zunächst eine Zeile $i$ und Spalte $j$ ausgewählt, das Elemente $a_{ij}$ heisst das Pivotelement. \index{Pivotelement}% Die {\em Pivotdivision} @@ -646,7 +646,7 @@ In der Phase der {\em Vorwärtsreduktion} werden Pivotelemente von links nach rechts möglichst auf der Diagonale gewählt und mit Zeilensubtraktionen die darunterliegenden Spalten freigeräumt. \index{Vorwärtsreduktion}% -Während des Rückwärtseinsetzens werden die gleichen Pivotelemente von +Während des Rückwärtseinsetzens werden die gleichen Pivotelemente von rechts nach links genutzt, um mit Zeilensubtraktionen auch die Spalten über den Pivotelemnten frei zu räumen. \index{Rückwärtseinsetzen}% @@ -800,7 +800,7 @@ $x = b_1c_1+b_2c_2+\dots+b_nc_n$ konstruieren. Tatsächlich gilt \begin{align*} Ax -&= +&= A( b_1c_1+b_2c_2+\dots+b_nc_n) \\ &= @@ -837,7 +837,265 @@ Seite~\pageref{buch:vektorenmatrizen:satz:gruppenregeln} die Eigenschaft $A^{-1}A=I$ ganz allgemein gezeigt. \subsubsection{Determinante} -XXX TODO +Ein Gleichungssystem mit $n$ Gleichungen und $n$ Unbekannten ist genau +dann lösbar, wenn sich der Gauss-Algorithmus bis zum Ende durchführen lässt. +Das ist gleichbedeutend damit, dass keines der Pivot-Elemente verschwindet. +Das Produkt der Pivot-Elemente ist also eine aus der Koeffizientenmatrix +$A$ berechnete Kennzahl, die zu entscheiden erlaubt, ob ein Gleichungssystem +lösbar ist. + +\begin{definition} +\label{buch:linear:determinate:def} +Das Produkt der Pivot-Elemente bei der Durchführung des Gauss-Algorithmus +für eine Gleichungssystem mit quadratischer Koeffizientenmatrix $A$ +heisst die Determinante $\det(A)$ der Matrix $A$. +\end{definition} + +Aus den Regeln für die Durchführung des Gauss-Algorithmus kann man die +folgenden Regeln für die Determinante ableiten. +Wir stellen die Eigenschaften hier nur zusammen, detaillierte Herleitungen +kann man in jedem Kurs zur linearen Algebra finden, zum Beispiel im +Kapitel~2 des Skripts \cite{buch:linalg}. +\begin{enumerate} +\item +\label{buch:linear:determinante:einheitsmatrix} +Die Determinante der Einheitsmatrix ist $\det(I)=1$. +\item +Sind zwei Zeilen einer Matrix gleich, dann tritt beim Gauss-Algorithmus +eine Nullzweile auf, die Matrix kann also nicht regulär sein und die +Determinante ist $0$. +\item +\label{buch:linear:determinante:vorzeichen} +Vertauscht man zwei Zeilen einer Matrix, dann kehrt das Vorzeichen der +Determinante. +\item +Addiert man ein Vielfaches einer Zeile der Matrix zu einer anderen Zeile, +dann ändert der Wert der Determinante nicht. +\item +Wird eine Zeile der Matrix mit einer Zahl $\lambda$ multipliziert, dann +wird auch der Wert der Determinanten mit $\lambda$ multipliziert. +\item +\label{buch:linear:determinante:asymetrisch} +Die Determinante ist eine lineare Funktion der Zeilen von $A$. +Zusammen mit der Eigeschaft~\ref{buch:linear:determinante:vorzeichen} +folgt, dass die Determinante eine antisymmetrische lineare Funktion +der Zeilen ist. +\item +Die Determinante ist durch die Eigenschaften +\ref{buch:linear:determinante:einheitsmatrix} +und +\ref{buch:linear:determinante:asymetrisch} +eindeutig bestimmt. +\item +Der Entwicklungssatz von Laplace. +\index{Entwicklungssatz Laplace}% +Die Determinante der $n\times n$-Matrix $A$ kann mit der Formel +\begin{equation} +\det(A) += +\sum_{i=1}^n (-1)^{i+j} a_{ij} \cdot \det(A_{ij}) +\end{equation} +wobei die $(n-1)\times(n-1)$-Matrix $A_{ij}$ die Matrix $A$ ist, aus der +man Zeile $i$ und Spalte $j$ entfernt hat. +$A_{ij}$ heisst ein {\em Minor} der Matrix $A$. +\index{Minor einer Matrix}% +\end{enumerate} + +Die bekannte Formel $\det\begin{pmatrix}a&b\\c&d\end{pmatrix}=ad-bc$ +ist ein Spezialfall des Entwicklungssatzes von Laplace. +Auch für $3\times 3$-Matrizen ist eine übersichtliche Form möglich, +die als die Sarrus-Formel bekannt ist. +\index{Sarrus-Formel}% + +\begin{satz}[Sarrus] +\label{buch:linear:determinate:sarrus} +Die Determinante einer $3\times 3$-Matrix ist +\[ +\left|\begin{matrix} +a&b&c\\ +d&e&f\\ +g&h&i +\end{matrix}\right| += +aei + bfg + cdh - ceg - bdi - afh. +\] +\end{satz} + +\subsubsection{Die Regel von Cramer} +Die Determinanten ermöglicht auch, eine Formel für die Lösung eines +Gleichungssystems zu geben. +Dies ist bekannt als die {\em Regel von Cramer}. + +\begin{satz} +\label{buch:linear:determinante:cramer} +Die Lösung $x_k$ eines $n\times n$-Gleichungssystem $Ax=b$ mit +Koeffizientenmatrix $A$ und rechter Seite $b$ hat die Lösungen +\begin{equation} +x_k += +\frac{ +\left|\begin{matrix} +a_{11}&a_{12}&\dots &b_1 &\dots &a_{1n}\\ +a_{21}&a_{22}&\dots &b_2 &\dots &a_{2n}\\ +\vdots&\vdots&\ddots&\vdots&\vdots&\vdots\\ +a_{n1}&a_{n2}&\dots &b_n &\dots &a_{nn} +\end{matrix}\right| +}{ +\det(A), +} +\end{equation} +wobei im Zähler die Spalte $k$ der Matrix $A$ durch den Vektor $b$ +der rechten Seiten ersetzt worden ist. +\end{satz} + +Die Cramersche Formel ist besonders nützlich, wenn die Abhängigkeit +einer Lösungsvariablen von den Einträgen der Koeffizientenmatrix +untersucht werden soll. +Für die Details der Herleitung sei wieder auf \cite{buch:linalg} +verwiesen. + +\subsubsection{Die inverse Matrix mit Hilfe der Determinanten} +Die inverse Matrix löst ein quadratisches Gleichungssystem $Ax=b$ mit +Hilfe der Formel $x=A^{-1}b$. +Man kann daher auch erwarten, dass sich die inverse Matrix dank +der Cramerschen Regel mit Hilfe von Determinanten ausdrücken lässt. +Tatsächlich gilt der folgende Satz. + +\begin{satz} +\label{buch:linalg:inverse:adjunkte} +Die Inverse der $n\times n$-Matrix $A$ ist gegeben durch +\index{Formel für die inverse Matrix}% +\index{inverse Matrix, Formel für}% +\begin{equation} +(A^{-1})_{ij} += +\frac{1}{\det(A)} +\begin{pmatrix} +\det(A_{11}) & -\det(A_{21}) & \dots & (-1)^{i+1}\det(A_{i1}) & \dots + & (-1)^{1+n} \det(A_{n1}) \\ +-\det(A_{12}) & \det(A_{22}) & \dots & (-1)^{i+2}\det(A_{i2}) & \dots + & (-1)^{2+n} \det(A_{n2}) \\ +\vdots & \vdots & \ddots & \vdots & \ddots & \vdots \\ +(-1)^{1+j}\det(A_{1j}) & (-1)^{2+j}\det(A_{2j}) & \dots + & (-1)^{i+j} \det(A_{ji}) + & \dots & (-1)^{j+n} \det(A_{nj}) \\ +\vdots & \vdots & \ddots & \vdots & \ddots & \vdots \\ +(-1)^{1+n}\det(A_{1n}) & (-1)^{2+n}\det(A_{2n}) & \dots + & (-1)^{i+n}\det(A_{in}) + & \dots & \det(A_{nn}) +\end{pmatrix} +\label{buch:linalg:inverse:formel} +\end{equation} +Die Transponierte der Matrix auf der rechten Seite (ohne den Vorfaktor +$1/\det(A)$ +heisst die {\em Adjunkte} $\operatorname{adj}A$ von $A$. +\index{Adjunkte}% +\end{satz} + +Der Satz~\ref{buch:linalg:inverse:adjoint} liefert eine algebraische +Formel für die Elemente der inversen Matrix. +Für kleine Matrizen wie im nachfolgenden Beispiel ist die +Formel~\eqref{buch:linalg:inverse:formel} oft einfachter anzuwenden. +Besonders einfach wird die Formel für eine $2\times 2$-Matrix, +wo man +\[ +\begin{pmatrix} +a&b\\c&d +\end{pmatrix}^{-1} += +\frac{1}{ad-bc}\begin{pmatrix} +d&-b\\ +-c&a +\end{pmatrix} +\] +erhält. + +\begin{beispiel} +Die Inverse der Matrix +\begin{equation} +A=\begin{pmatrix} +1&a&a\\ +a&1&a\\ +a&a&1 +\end{pmatrix} +\label{buch:vektoren-und-matrizen:abeispiel:eqn1} +\end{equation} +ist mit Hilfe von Determinanten besonders einfach zu invertieren. +Die Determinante von $A$ ist nach der Sarrus-Formel +\[ +\operatorname{adj}A += +1 + 2a^3 - 3a^2. +\] +Die Adjunkte ist +\begin{align*} +(\operatorname{adj}A)^t +&= +%\frac{1}{\det{A}} +\begin{pmatrix*}[r] + \det A_{11} & -\det A_{21} & \det A_{31} \\ +-\det A_{12} & \det A_{22} & -\det A_{32} \\ + \det A_{13} & -\det A_{23} & \det A_{33} +\end{pmatrix*} +\intertext{und damit ist die inverse Matrix} +A^{-1} +&= +\frac{1}{2a^3-3a^2+1} +\renewcommand\arraystretch{1.1} +\begin{pmatrix*}[r] +\left|\begin{matrix}1&a\\a&1\end{matrix}\right| +& +-\left|\begin{matrix}a&a\\a&1\end{matrix}\right| +& +\left|\begin{matrix}a&a\\1&a\end{matrix}\right| +\\ +-\left|\begin{matrix}a&a\\a&1\end{matrix}\right| +& +\left|\begin{matrix}1&a\\a&1\end{matrix}\right| +& +-\left|\begin{matrix}1&a\\a&a\end{matrix}\right| +\\ +\left|\begin{matrix}a&1\\a&a\end{matrix}\right| +& +-\left|\begin{matrix}1&a\\a&a\end{matrix}\right| +& +\left|\begin{matrix}1&a\\a&1\end{matrix}\right| +\end{pmatrix*} +\\ +&= +\frac{1}{2a^3-3a^2+1} +\begin{pmatrix} +1-a^2 & a^2-a & a^2-a\\ +a^2-a & 1-a^2 & a^2-a\\ +a^2-a & a^2-a & 1-a^2 +\end{pmatrix}. +\end{align*} +Mit $1-a^2=(1+a)(1-a)$ und $a^2-a=a(a-1)$ kann man dies noch etwas +vereinfachen, indem man den gemeinsamen Faktor $1-a$ ausklammern. +Man erhält so die Form +\begin{equation} +A^{-1} += +\frac{1-a}{2a^3-3a^2+1} +\begin{pmatrix} +1+a & -a & -a \\ + -a & 1+a & -a \\ + -a & -a & 1+a +\end{pmatrix}. +\label{buch:vektoren-und-matrizen:abeispiel:eqn2} +\end{equation} +für die Inverse einer Matrix der Form +\eqref{buch:vektoren-und-matrizen:abeispiel:eqn1}. +\end{beispiel} + +\subsubsection{Produktregel für die Determinante} +Aus der Charakterisierung der Determinanten kann man auch ableiten, +dass die Produktregel +\[ +\det (AB) = \det(A) \cdot \det(B) +\] +gilt. +Daraus folgt auch, dass $\det(A^{-1})=\det(A)^{-1}$. % % Lineare Abbildungen @@ -860,7 +1118,7 @@ Eine Abbildung $f\colon V\to U$ zwischen Vektorräumen $V$ und $U$ heisst linear, wenn \[ \begin{aligned} -f(v+w) &= f(v) + f(w)&&\forall v,w\in V +f(v+w) &= f(v) + f(w)&&\forall v,w\in V \\ f(\lambda v) &= \lambda f(v) &&\forall v\in V,\lambda \in \Bbbk \end{aligned} @@ -871,16 +1129,16 @@ gilt. Lineare Abbildungen sind in der Mathematik sehr verbreitet. \begin{beispiel} -Sie $V=C^1([a,b])$ die Menge der stetig differenzierbaren Funktionen +Sie $V=C^1([a,b])$ die Menge der stetig differenzierbaren Funktionen auf dem Intervall $[a,b]$ und $U=C([a,b])$ die Menge der -stetigen Funktion aif $[a,b]$. +stetigen Funktion aif $[a,b]$. Die Ableitung $\frac{d}{dx}$ macht aus einer Funktion $f(x)$ die Ableitung $f'(x)$. -Die Rechenregeln für die Ableitung stellen sicher, dass +Die Rechenregeln für die Ableitung stellen sicher, dass \[ \frac{d}{dx} \colon -C^1([a,b]) \to C([a,b]) +C^1([a,b]) \to C([a,b]) : f \mapsto f' \] @@ -899,7 +1157,7 @@ eine lineare Abbildung. \end{beispiel} \subsubsection{Matrix} -Um mit linearen Abbildungen rechnen zu können, ist eine Darstellung +Um mit linearen Abbildungen rechnen zu können, ist eine Darstellung mit Hilfe von Matrizen nötig. Sei also $\mathcal{B}=\{b_1,\dots,b_n\}$ eine Basis von $V$ und $\mathcal{C} = \{ c_1,\dots,c_m\}$ eine Basis von $U$. @@ -907,12 +1165,12 @@ Das Bild des Basisvektors $b_i$ kann als Linearkombination der Vektoren $c_1,\dots,c_m$ dargestellt werden. Wir verwenden die Bezeichnung \[ -f(b_i) +f(b_i) = a_{1i} c_1 + \dots + a_{mi} c_m. \] Die lineare Abbildung $f$ bildet den Vektor $x$ mit Koordinaten -$x_1,\dots,x_n$ ab auf +$x_1,\dots,x_n$ ab auf \begin{align*} f(x) &= @@ -935,7 +1193,7 @@ x_n(a_{1n} c_1 + \dots + a_{mn} c_m) + ( a_{m1} x_1 + \dots + a_{mn} x_n ) c_m \end{align*} -Die Koordinaten von $f(x)$ in der Basis $\mathcal{C}$ in $U$ sind +Die Koordinaten von $f(x)$ in der Basis $\mathcal{C}$ in $U$ sind also gegeben durch das Matrizenprodukt $Ax$, wenn $x$ der Spaltenvektor aus den Koordinaten in der Basis $\mathcal{B}$ in $V$ ist. @@ -973,7 +1231,7 @@ b_{m1}x_1&+& \dots &+&b_{mn}x_n&=&b_{m1}'x_1'&+& \dots &+&b_{mn}'x_n' \end{linsys} \] Dieses Gleichungssystem kann man mit Hilfe eines Gauss-Tableaus lösen. -Wir schreiben die zugehörigen Variablen +Wir schreiben die zugehörigen Variablen \[ \renewcommand{\arraystretch}{1.1} \begin{tabular}{|>{$}c<{$} >{$}c<{$} >{$}c<{$}|>{$}c<{$}>{$}c<{$}>{$}c<{$}|} @@ -1019,7 +1277,7 @@ Für zwei Vektoren $u$ und $w$ in $U$ gibt es daher Vektoren $a=g(u)$ und $b=g(w)$ in $V$ derart, dass $f(a)=u$ und $f(b)=w$. Weil $f$ linear ist, folgt daraus $f(a+b)=u+w$ und $f(\lambda a)=\lambda a$ für jedes $\lambda\in\Bbbk$. -Damit kann man jetzt +Damit kann man jetzt \begin{align*} g(u+w)&=g(f(a)+f(b)) = g(f(a+b)) = a+b = g(u)+g(w) \\ @@ -1057,7 +1315,7 @@ Der Kern oder Nullraum der Matrix $A$ ist die Menge \] \end{definition} -Der Kern ist ein Unterraum, denn für zwei Vektoren $u,w\in \ker f$ +Der Kern ist ein Unterraum, denn für zwei Vektoren $u,w\in \ker f$ \[ \begin{aligned} f(u+v)&=f(u) + f(v) = 0+0 = 0 &&\Rightarrow& u+v&\in\ker f\\ @@ -1073,7 +1331,7 @@ Wir definieren daher das Bild einer linearen Abbildung oder Matrix. \begin{definition} Ist $f\colon V\to U$ eine lineare Abbildung dann ist das Bild von $f$ -der Unterraum +der Unterraum \[ \operatorname{im}f = \{ f(v)\;|\;v\in V\} \subset U \] @@ -1117,7 +1375,7 @@ $\operatorname{def}A=\dim\ker A$. \end{definition} Da der Kern mit Hilfe des Gauss-Algorithmus bestimmt werden kann, -können Rang und Defekt aus dem Schlusstableau +können Rang und Defekt aus dem Schlusstableau eines homogenen Gleichungssystems mit $A$ als Koeffizientenmatrix abgelesen werden. diff --git a/buch/chapters/10-vektorenmatrizen/skalarprodukt.tex b/buch/chapters/10-vektorenmatrizen/skalarprodukt.tex index d951221..408bfeb 100644 --- a/buch/chapters/10-vektorenmatrizen/skalarprodukt.tex +++ b/buch/chapters/10-vektorenmatrizen/skalarprodukt.tex @@ -197,7 +197,7 @@ mit Gleichheit genau dann, wenn $x=ty$ ist für ein $t\ge 0$. &= (\|x\|_2 + \|y\|_2)^2 \\ -\|x\|_2 + \|y\|_2 +\|x + y\|_2 &\le \|x\|_2 + \|y\|_2, \end{align*} Gleichheit tritt genau dann ein, wenn diff --git a/buch/chapters/30-endlichekoerper/galois.tex b/buch/chapters/30-endlichekoerper/galois.tex index 2f8117e..c7147bf 100644 --- a/buch/chapters/30-endlichekoerper/galois.tex +++ b/buch/chapters/30-endlichekoerper/galois.tex @@ -128,6 +128,7 @@ $p_1$ und $p_2$ Nullteiler in $\mathbb{Z}/n\mathbb{Z}$. Ein Körper kann also nur entstehen, wenn $n$ eine Primzahl ist. \begin{definition} +\label{buch:endlichekoerper:def:galois-koerper} Ist $p$ eine Primzahl, dann heisst $\mathbb{F}_p=\mathbb{Z}/p\mathbb{Z}$ der Galois-Körper der Ordnung $p$. \end{definition} diff --git a/buch/chapters/50-permutationen/determinante.tex b/buch/chapters/50-permutationen/determinante.tex index c440caf..805235d 100644 --- a/buch/chapters/50-permutationen/determinante.tex +++ b/buch/chapters/50-permutationen/determinante.tex @@ -7,3 +7,105 @@ \section{Determinante \label{buch:section:determinante}} \rhead{Determinante} +Das Signum einer Permutationsmatrizen lässt sich +gemäss~\eqref{buch:permutationen:determinante} +mit der Determinanten berechnen. +Umgekehrt sollte es auch möglich sein, eine Formel +für die Determinante zu finden. +Die Basis dafür ist der +Entwicklungssatz +\begin{equation} +\det(A) += +\sum_{i=1}^n (-1)^{i+j} a_{ij} \cdot \det(A_{ij}) +\label{buch:permutationen:entwicklungssatz} +\end{equation} +von Laplace für die Determinante. +In den Produkten $a_{ij}\cdot\det(A_{ij})$ enthält +die Untermatrix $A_{ij}$ weder Elemente der Zeile $i$ noch der +Zeile $j$. +Die Summanden auf der rechten Seite von +\eqref{buch:permutationen:entwicklungssatz} +sind daher Produkte der Form +\[ +a_{1i_1} +a_{2i_2} +a_{3i_3} +\dots +a_{ni_n}, +\] +in denen nur Faktoren aus verschiedenen Spalten der Matrix $A$ +vorkommen. +Das ist gleichbedeutend damit, dass unter den Spaltenindizes +$i_1,i_2,i_3,\dots,i_n$ keine zwei gleich sind, dass also +\[ +\sigma += +\begin{pmatrix} +1&2&3&\dots&n\\ +i_1&i_2&i_3&\dots&i_n +\end{pmatrix} +\] +eine Permutation ist. + +Die Determinante muss sich daher als Summe über alle Permutationen +in der Form +\begin{equation} +\det(A) += +\sum_{\sigma\in S_n} +c(\sigma) +a_{1\sigma(1)} +a_{2\sigma(2)} +\dots +a_{n\sigma(n)} +\label{buch:permutationen:cformel} +\end{equation} +schreiben lassen, wobei die Koeffizienten $c(\sigma)$ noch zu bestimmen +sind. +Setzt man in +\eqref{buch:permutationen:cformel} +eine Permutationsmatrix $P_\tau$ ein, dann verschwinden alle +Terme auf der rechten Seite ausser dem zur Permutation $\tau$, +also +\[ +\det(P_\tau) += +\sum_{\sigma \in S_n} +c(\sigma) +(P_\tau)_{1\sigma(1)} +(P_\tau)_{2\sigma(2)} +\dots +(P_\tau)_{n\sigma(n)} += +c(\tau) +1\cdot 1\cdot\dots\cdot 1 += +c(\tau). +\] +Der Koeffizientn $c(\tau)$ ist also genau das Vorzeichen +der Permutation $\tau$. +Damit erhalten wir den folgenden Satz: + +\begin{satz} +Die Determinante einer $n\times n$-Matrix $A$ kann berechnet werden als +\[ +\det(A) += +\sum_{\sigma\in S_n} +\operatorname{sgn}(\sigma) +a_{1\sigma(1)} +a_{2\sigma(2)} +\dots +a_{n\sigma(n)} += +\sum_{\tau\in S_n} +\operatorname{sgn}(\tau) +a_{\tau(1)1} +a_{\tau(2)2} +\dots +a_{\tau(n)n}. +\] +Insbesondere folgt auch $\det(A)=\det(A^t)$. +\end{satz} + diff --git a/buch/chapters/50-permutationen/matrizen.tex b/buch/chapters/50-permutationen/matrizen.tex index 7e55364..f7e9e31 100644 --- a/buch/chapters/50-permutationen/matrizen.tex +++ b/buch/chapters/50-permutationen/matrizen.tex @@ -181,7 +181,7 @@ Die Determinante einer solchen Permutationsmatrix ist Nach der Produktregel für die Determinante folgt für eine Darstellung der Permutation $\sigma=\tau_1\dots\tau_l$ als Produkt von Transpositionen, dass -\[ +\begin{equation} \det P_{\sigma} = \det P_{\tau_1} \dots \det P_{\tau_l} @@ -189,7 +189,8 @@ dass (-1)^l = \operatorname{sgn}(\sigma). -\] +\label{buch:permutationen:determinante} +\end{equation} Das Vorzeichen einer Permutation ist also identisch mit der Determinante der zugehörigen Permutationsmatrix. diff --git a/buch/chapters/60-gruppen/symmetrien.tex b/buch/chapters/60-gruppen/symmetrien.tex index 7364c85..aee3b41 100644 --- a/buch/chapters/60-gruppen/symmetrien.tex +++ b/buch/chapters/60-gruppen/symmetrien.tex @@ -714,8 +714,8 @@ Kurve so zu definieren, dass dabei Längen und Winkel erhalten bleiben. Dieser Ansatz ist die Basis der Theorie der Krümmung sogenannter Riemannscher Mannigfaltigkeiten. -\subsection{Der Satz von Noether -\label{buch:subsection:noether}} +%\subsection{Der Satz von Noether +%\label{buch:subsection:noether}} diff --git a/buch/chapters/70-graphen/chapter.tex b/buch/chapters/70-graphen/chapter.tex index 6def393..530d96c 100644 --- a/buch/chapters/70-graphen/chapter.tex +++ b/buch/chapters/70-graphen/chapter.tex @@ -19,7 +19,7 @@ erste Approximation dreidimensionaler Objekte dienen. Die Bedeutung des Graphenkozeptes wird unterstrichen von der Vielzahl von Fragestellungen, die über Graphen gestellt, und der -zugehöriten Lösungsalgorithmen, die zu ihrer Beantwortung gefunden +zugehörigen Lösungsalgorithmen, die zu ihrer Beantwortung gefunden worden sind. Die Komplexitätstheorie hat sogar gezeigt, dass sich jedes diskrete Problem in ein Graphenproblem umformulieren lässt. diff --git a/buch/chapters/70-graphen/wavelets.tex b/buch/chapters/70-graphen/wavelets.tex index ef1520e..8baa88c 100644 --- a/buch/chapters/70-graphen/wavelets.tex +++ b/buch/chapters/70-graphen/wavelets.tex @@ -10,7 +10,7 @@ In Abschnitt~\ref{buch:subsection:standardbasis-und-eigenbasis} wurde gezeigt dass die Standardbasis den Zusammenhang zwischen den einzelnen Teilen des Graphen völlig ignoriert, während die Eigenbasis Wellen beschreibt, die mit vergleichbarer Amplitude sich über den ganzen -Graphen entsprechen. +Graphen erstrecken. Die Eigenbasis unterdrückt also die ``Individualität'' der einzelnen Knoten fast vollständig. diff --git a/buch/chapters/90-crypto/Makefile.inc b/buch/chapters/90-crypto/Makefile.inc index 9543ce1..508add5 100644 --- a/buch/chapters/90-crypto/Makefile.inc +++ b/buch/chapters/90-crypto/Makefile.inc @@ -8,5 +8,4 @@ CHAPTERFILES = $(CHAPTERFILES) \ chapters/90-crypto/arith.tex \ chapters/90-crypto/ff.tex \ chapters/90-crypto/aes.tex \ - chapters/90-crypto/rs.tex \ chapters/90-crypto/chapter.tex diff --git a/buch/chapters/90-crypto/arith.tex b/buch/chapters/90-crypto/arith.tex index dcc31b8..b05110f 100644 --- a/buch/chapters/90-crypto/arith.tex +++ b/buch/chapters/90-crypto/arith.tex @@ -91,6 +91,7 @@ Die Berechnung der Quadratwurzel lässt sich in Hardware effizient implementieren. \begin{algorithmus} +\label{buch:crypto:teile-und-hersche} Der folgende Algorithmus berechnet $a^k$ in $O(\log_2(k))$ Multiplikationen \begin{enumerate} diff --git a/buch/chapters/90-crypto/ff.tex b/buch/chapters/90-crypto/ff.tex index 535b359..a1cb747 100644 --- a/buch/chapters/90-crypto/ff.tex +++ b/buch/chapters/90-crypto/ff.tex @@ -7,6 +7,15 @@ \section{Kryptographie und endliche Körper \label{buch:section:kryptographie-und-endliche-koerper}} \rhead{Kryptographie und endliche Körper} +In diesem Abschnitt soll illustriert werden, wie die Arithmetik in +endlichen Körpern Algorithmen zu konstruieren erlaubt, mit denen sich +zum Beispiel sehr effizient kryptographische Schlüssel aushandeln +lassen. +Der klassische Diffie-Hellmann-Algorithmus in einem Galois-Körper +$\mathbb{F}_p$ wird in Abschnitt~\ref{buch:subsection:elliptische-kurven} +verallgemeinert auf eine sogenannte elliptische Kurve. +Diese Version des Algorithmus ist sehr effizient was die Bitlänge der +Schlüssel betrifft. \subsection{Potenzen in $\mathbb{F}_p$ und diskreter Logarithmus \label{buch:subsection:potenzen-diskreter-logarithmus}} @@ -439,6 +448,7 @@ Das Polynom ist \[ p(t) = +XXX \] Nach Division durch $t(t-1)$ erhält man als den Quotienten \begin{align*} @@ -652,13 +662,44 @@ Diese Operationen machen $E_{a,b}(\mathbb{F}_{p^l})$ zu einer endlichen abelschen Gruppe. \end{satz} -\subsubsection{Beispiele} -% XXX -TODO: elliptische Kurven in IPsec: Oakley Gruppen - \subsubsection{Diffie-Hellman in einer elliptischen Kurve} -% XXX -TODO: $g^x$ in einer elliptischen Kurve +Der klassische Diffie-Hellmann-Schlüsselalgorithmus in einem Körper +$\mathbb{F}_p$ basiert darauf, dass man beliebige Potenzen eines +Elementes berechnen kann, und dass es schwierig ist, diese Operation +umzukehren. +Die Addition in $\mathbb{F}_p$ wird für diesen Algorithmus überhaupt +nicht benötigt. + +In einer elliptischen Kurve gibt es ebenfalls eine Multiplikation, +aus der sich mit dem +Algorithmus~\ref{buch:crypto:teile-und-hersche} eine effizienter +Potenzieralgorithmus konstruieren lässt. + +Die im Internet Key Exchange Protokol +in RFC 2409 +\cite{buch:rfc2409} +definierte Oakley-Gruppe 4 +zum Beispiel verwendet einen Galois-Körper $\mathbb{F}_{2^{185}}$ +mit dem Minimalpolynom $m(x)=x^{185}+x^{69}+1\in \mathbb{F}_2[x]$ +und den Koeffizienten +\begin{align*} +a&=0\\ +b&=x^{12}+x^{11} + x^{10} + x^9 + x^7 + x^6 + x^5 + x^3 +1, +\end{align*} +die die elliptische Kurve definieren. + +Als Elemente $g$ für den Diffie-Hellmann-Algorithmus wird ein Punkt +der elliptischen Kurve verwendet, dessen $X$-Koordinaten durch das +Polynom $g_x = x^4+x^3$ gegeben ist. +Der Standard spezifiziert die $Y$-Koordinate nicht, diese kann aus +den gegebenen Daten abgeleitet werden. +Die entstehende Gruppe hat etwa $4.9040\cdot10^{55}$ Elemente, die +für einen brute-force-Angriff durchprobiert werden müssten. + + + + + diff --git a/buch/chapters/90-crypto/rs.tex b/buch/chapters/90-crypto/rs.tex deleted file mode 100644 index ec8ec8c..0000000 --- a/buch/chapters/90-crypto/rs.tex +++ /dev/null @@ -1,41 +0,0 @@ -% -% rs.tex -- Reed-Solomon-Code -% -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil -% -\section{Fehlerkorrigierende Codes nach Reed-Solomon -\label{buch:section:reed-solomon}} -\rhead{Fehlerkorrigierende Codes} -Jede Art von Datenübertragung muss sich mit dem Problem der Fehler befassen, -die auf dem Übertragungskanal entstehen können. -Die einfachste Lösung dieses Problem versucht, Fehler zu erkennen und -dann eine erneute Übermittelung zu veranlassen. -Dies ist zum Beispiel bei der Datenübertragung von einer Raumsonde -wie Voyager~1 nicht möglich, die Signallaufzeit von der Sonde und wieder -zurück ist über 40 Stunden. -Es ist auch nicht sinnvoll beim Lesen eines optischen Mediums wie einer -CD oder DVD, wenn ein Fehler durch eine Beschädigung der Oberfläche -des Mediums verursacht wird. -Erneutes Lesen würde das Resultat auch nicht ändern. -Es wird also eine Möglichkeit gesucht, die Daten so zu codieren, dass -ein Fehler nicht nur erkannt sondern auch korrigiert werden kann. - -In diesem Abschnitt werden die algebraisch besonders interessanten -Reed-Solmon-Codes beschrieben. -Ihren ersten Einsatz hatten Sie bei den Voyager-Raumsonden, die 1977 -gestartet wurden. -Sie befinden sich im Moment in einer Entfernung von -Zum ersten mal kommerziell verwendet wurden sie für die optischen -Medien CD und DVD. - -% https://www.youtube.com/watch?v=uOLW43OIZJ0 -% https://www.youtube.com/watch?v=4BfCmZgOKP8 - -\subsection{Was ist ein Code? -\label{buch:subsection:was-ist-ein-code}} - -\subsection{Reed-Solomon-Code -\label{buch:subsection:reed-solomon-code}} - -\subsection{Decodierung -\label{buch:subsection:decodierung}} diff --git a/buch/chapters/95-homologie/Makefile.inc b/buch/chapters/95-homologie/Makefile.inc index 7e6f1e7..41b1569 100644 --- a/buch/chapters/95-homologie/Makefile.inc +++ b/buch/chapters/95-homologie/Makefile.inc @@ -8,7 +8,6 @@ CHAPTERFILES = $(CHAPTERFILES) \ chapters/95-homologie/simplex.tex \ chapters/95-homologie/komplex.tex \ chapters/95-homologie/homologie.tex \ - chapters/95-homologie/mayervietoris.tex \ chapters/95-homologie/fixpunkte.tex \ chapters/95-homologie/chapter.tex diff --git a/buch/chapters/95-homologie/chapter.tex b/buch/chapters/95-homologie/chapter.tex index eaa56c4..994c400 100644 --- a/buch/chapters/95-homologie/chapter.tex +++ b/buch/chapters/95-homologie/chapter.tex @@ -38,7 +38,7 @@ Damit wird es möglich, das Dreieck vom Rand des Dreiecks zu unterschieden. \input{chapters/95-homologie/simplex.tex} \input{chapters/95-homologie/komplex.tex} \input{chapters/95-homologie/homologie.tex} -\input{chapters/95-homologie/mayervietoris.tex} +%\input{chapters/95-homologie/mayervietoris.tex} \input{chapters/95-homologie/fixpunkte.tex} diff --git a/buch/chapters/95-homologie/fixpunkte.tex b/buch/chapters/95-homologie/fixpunkte.tex index 1ed51ef..a03d4b5 100644 --- a/buch/chapters/95-homologie/fixpunkte.tex +++ b/buch/chapters/95-homologie/fixpunkte.tex @@ -11,15 +11,78 @@ selbst gehört die zugehörige lineare Abbildung $f_*\colon H_*(X)\to H_*(X)$ der Homologiegruppen. Diese linearen Abbildungen sind im Allgemeinen viel einfacher zu analysieren. -Zum Beispiel soll in Abschnitt~\ref{buch:subsection:lefshetz} -die Lefshetz-Spurformel abgeleitet werden, die eine Aussagen darüber -ermöglicht, ob eine Abbildung einen Fixpunkt haben kann. -In Abschnitt~\ref{buch:subsection:brower} wird gezeigt wie man damit -den Browerschen Fixpunktsatz beweisen kann, der besagt, dass jede -Abbildung eines Einheitsballs in sich selbst immer einen Fixpunkt hat. - -\subsection{Lefshetz-Spurformel -\label{buch:subsection:lefshetz}} - -\subsection{Brower-Fixpunktsatz -\label{buch:subsection:brower}} +%Zum Beispiel soll in Abschnitt~\ref{buch:subsection:lefshetz} +%die Lefshetz-Spurformel abgeleitet werden, die eine Aussagen darüber +%ermöglicht, ob eine Abbildung einen Fixpunkt haben kann. +%In Abschnitt~\ref{buch:subsection:brower} wird gezeigt wie man damit +%den Browerschen Fixpunktsatz beweisen kann, der besagt, dass jede +%Abbildung eines Einheitsballs in sich selbst immer einen Fixpunkt hat. + +%\subsection{Brower-Fixpunktsatz +%\label{buch:subsection:brower}} +% +%\begin{satz}[Brower] +%\end{satz} + +%\subsection{Lefshetz-Fixpunktsatz +%\label{buch:subsection:lefshetz}} +Eine Selbstabbildung $f_*\colon C_*\to C_*$ von Kettenkomplexen führt auf +eine Selbstabbiludng der Homologiegruppen $H(f)\colon H(C)\to H(C)$. +Da sowohl $H_k$ wie auch $C_k$ endlichdimensionale Vektorräume sind, +ist die Spur von $H_k(f)$ wohldefiniert. + +\begin{definition} +Die {\em Lefshetz-Zahl} einer Abbildung $f$ von Kettenkomplexen ist +\[ +\lambda(f) += +\sum_{k=0}^\infty +(-1)^k \operatorname{Spur}f_k += +\sum_{k=0}^\infty +(-1)^k \operatorname{Spur}(H_k(f)). +\] +\end{definition} + +Die zweite Darstellung der Lefshetz-Zahl auf der rechten Seite ist +meistens viel leichter zu berechnen als die erste. +Die einzelnen Vektorräume eines Kettenkomplexes können haben typischerweise +eine hohe Dimension, so hoch wie die Anzahl der Simplizes der Triangulation. +Die Homologiegruppen dagegen haben typischerweise sehr viel kleinere +Dimension, die Matrizen $H_k(F)$ sind also relativ klein. +Es ist aber nicht klar, dass beide Berechnungsmethoden für die +Lefshetz-Zahl auf das gleiche Resultat führen müssen. + +\begin{proof}[Beweis] +\end{proof} + +Die Lefshetz-Zahl ist eine Invariante einer topologischen Abbildung, +die Aussagen über Fixpunkte zu machen erlaubt. + +\begin{satz} +Ist $f\colon X\to X$ eine Selbstabbildung eines kompakten Polyeders und +ist $\lambda(f) \ne 0$, dann hat $f$ einen Fixpunkt. +\end{satz} + +Im Folgenden soll nur ein heuristisches Argument gegeben werden, warum +ein solcher Satz wahr sein könnte. + +Wenn eine Abbildung keinen Fixpunkt hat, dann ist $f(x) \ne x$ für alle +Punkte von $X$. +Da $X$ kompakt ist, gibt es einen minimalen Abstand $d$ zwischen $f(x)$ und $x$. +Wenn man also für $X$ eine Triangulation wählt, die wesentlich feiner ist +als dieser minimale Abstand, dann wird kein Simplex der Triangulation auf +Punkte im selben Simplex oder in einem Nachbarsimplex abgebildet wird. +Indem man nötigenfalls die Triangulation nochmals verfeinert, kann man auch +genügend Platz schaffen, dass man die Abbildung $f$ etwas modifizieren kann, +so dass auch die deformierte Abbildung immer noch diese Eigenschaft hat. + +Die zugehörige Abbildung des Kettenkomplexes der Triangulation hat damit +die Eigenschaft, dass kein Basisvektor auf sich selbst abgebildet wird. +Die Matrix der Abbildung hat daher keine Nullen auf der Diagonalen, und +damit ist auch die Spur dieser Abbildung Null: $\operatorname{Spur}(H_k(f))=0$ +für alle $k$. +Erst recht ist die Lefshetz-Zahl $\lambda(f)=0$. +Wenn also die Lefshetz-Zahl verschieden ist von Null, dann muss $f$ +notwendigerweise einen Fixpunkt haben. + diff --git a/buch/chapters/95-homologie/homologie.tex b/buch/chapters/95-homologie/homologie.tex index 2b80a17..905ecc3 100644 --- a/buch/chapters/95-homologie/homologie.tex +++ b/buch/chapters/95-homologie/homologie.tex @@ -6,13 +6,349 @@ \section{Homologie \label{buch:section:homologie}} \rhead{Homologie} +Die Idee der Trangulation ermöglicht, komplizierte geometrische +Objekte mit einem einfachen ``Gerüst'' auszustatten und so zu +analysieren. +Projiziert man ein mit einer Kugel konzentrisches Tetraeder auf die +Kugel, entsteht eine Triangulation der Kugeloberfläche. +Statt eine Kugel zu studieren, kann man also auch ein Tetraeder untersuchen. + +Das Gerüst kann natürlich nicht mehr alle Eigenschaften des ursprünglichen +Objektes wiedergeben. +Im Beispiel der Kugel geht die Information darüber, dass es sich um eine +glatte Mannigfaltigkeit handelt, verloren. +Was aber bleibt, sind Eigenschaften des Zusammenhangs. +Wenn sich zwei Punkte mit Wegen verbinden lassen, dann gibt es auch eine +Triangulation mit eindimensionalen Simplices, die diese Punkte als Ecken +enthalten, die sich in der Triangulation mit einer Folge von Kanten +verbinden lassen. +Algebraisch bedeutet dies, dass die beiden Punkte der Rand eines +Weges sind. +Fragen der Verbindbarkeit von Punkten mit Wegen lassen sich also +dadurch studieren, dass man das geometrische Objekt auf einen Graphen +reduziert. + +In diesem Abschnitt soll gezeigt werden, wie diese Idee auf höhere +Dimensionen ausgedehnt werden. +Es soll möglich werden, kompliziertere Fragen des Zusammenhangs, zum +Beispiel das Vorhandensein von Löchern mit algebraischen Mitteln +zu analysieren. \subsection{Homologie eines Kettenkomplexes \label{buch:subsection:homologie-eines-kettenkomplexes}} +Wegzusammenhang lässt sich untersuchen, indem man in der Triangulation +nach Linearkombinationen von Kanten sucht, die als Rand die beiden Punkte +haben. +Zwei Punkte sind also nicht verbindbar und liegen damit in verschiedenen +Komponenten, wenn die beiden Punkte nicht Rand irgend einer +Linearkombination von Kanten sind. +Komponenten können also identifiziert werden, indem man unter allen +Linearkombinationen von Punkten, also $C_0$ all diejenigen ignoriert, +die Rand einer Linearkombinationv on Kanten sind, also $\partial_1C_1$. +Der Quotientenraum $H_0=C_0/\partial_1C_1$ enthält also für jede Komponente +eine Dimension. + +Eine Dimension höher könnten wir danach fragen, ob sich ein geschlossener +Weg zusammenziehen lässt. +In der Triangulation zeichnet sich ein geschlossener Weg dadurch aus, +dass jedes Ende einer Kante auch Anfang einer Folgekante ist, dass also +der Rand der Linearkombination von Kanten 0 ist. +Algebraisch bedeutet dies, dass wir uns für diejenigen Linearkombinationen +$z\in C_1$ interessieren, die keinen Rand haben, für die also $\partial_1z=0$ +gilt. + +\begin{definition} +Die Elemente von +\[ +Z_k += +Z_k^C += +\{z\in C_k\;|\; \partial_k z = 0\} += +\ker \partial_k +\] +heissen die {\em ($k$-dimensionalen) Zyklen} von $C_*$. +\end{definition} + +In einem Dreieck ist der Rand ein geschlossener Weg, der sich zusammenziehen +lässt, indem man ihn durch die Dreiecksfläche deformiert. +Entfernt man aber die Dreiecksfläche, ist diese Deformation nicht mehr +möglich. +Einen zusammenziehbaren Weg kann man sich also als den Rand eines Dreiecks +einer vorstellen. +``Löcher'' sind durch geschlossene Wege erkennbar, die nicht Rand eines +Dreiecks sein können. +Wir müssen also ``Ränder'' ignorieren. + +\begin{definition} +Die Elemente von +\[ +B_k += +B_k^C += +\{\partial_{k+1}z\;|\; C_{k+1}\} += +\operatorname{im} \partial_{k+1} +\] +heissen die {\em ($k$-dimensionalen) Ränder} von $C_*$. +\end{definition} + +Algebraisch ausgedrückt interessieren uns also nur Zyklen, die selbst +keine Ränder sind. +Der Quotientenraum $Z_1/B_1$ ignoriert unter den Zyklen diejenigen, die +Ränder sind, drückt also algebraisch die Idee des eindimensionalen +Zusammenhangs aus. +Wir definieren daher + +\begin{definition} +Die $k$-dimensionale Homologiegruppe des Kettenkomplexes $C_*$ ist +\[ +H_k(C) = Z_k/B_k = \ker \partial_k / \operatorname{im} \partial_{k+1}. +\] +Wenn nur von einem Kettenkomplex die Rede ist, kann auch $H_k(C)=H_k$ +abgekürzt werden. +\end{definition} + +Die folgenden zwei ausführlichen Beispiele sollen zeigen, wie die +Homologiegruppe $H_2$ die Anwesenheit eines Hohlraumes detektieren kann, +der entsteht, wenn man aus einem Tetraeder das innere entfernt. + +\begin{beispiel} +\begin{figure} +\centering +XXX Bild eines Tetraeders mit Bezeichnung der Ecken und Kanten +\caption{Triangulation eines Tetraeders, die Orientierung von Kanten +und Seitenflächen ist immer so gewählt, dass die Nummern der Ecken +aufsteigend sind. +\label{buch:homologie:tetraeder:fig}} +\end{figure} +Ein Tetraeder ist ein zweidmensionales Simplex, wir untersuchen seinen +Kettenkomplex und bestimmen die zugehörigen Homologiegruppen. +Zunächst müssen wir die einzelnen Mengen $C_k$ beschreiben und verwenden +dazu die Bezeichnungen gemäss Abbildung~\ref{buch:homologie:tetraeder:fig}. +$C_0$ ist der vierdimensionale Raum aufgespannt von den vier Ecken +$0$, $1$, $2$ und $3$ des Tetraeders. +$C_1$ ist der sechsdimensionale Vektorraum der Kanten +\[ +k_0 = [0,1],\quad +k_1 = [0,2],\quad +k_2 = [0,3],\quad +k_3 = [1,2],\quad +k_4 = [1,3],\quad +k_5 = [2,3] +\] +Der Randoperator $\partial_1$ hat die Matrix +\[ +\partial_1 += +\begin{pmatrix*}[r] +-1&-1&-1& 0& 0& 0\\ + 1& 0& 0&-1&-1& 0\\ + 0& 1& 0& 1& 0&-1\\ + 0& 0& 1& 0& 1& 1 +\end{pmatrix*}. +\] + +Wir erwarten natürlich, dass sich zwei beliebige Ecken verbinden lassen, +dass es also nur eine Komponente gibt und dass damit $H_1=\Bbbk$ ist. +Dazu beachten wir, dass das Bild von $\partial_1$ genau aus den Vektoren +besteht, deren Komponentensumme $0$ ist. +Das Bild $B_0$ von $\partial_1$ ist daher die Lösungsmenge der einen +Gleichung +\( +x_0+x_1+x_2+x_3=0. +\) +Der Quotientenraum $H_0=Z_0/B_0 = C_0/\operatorname{im}\partial_1$ +ist daher wie erwartet eindimensional. + +Wir bestimmen jetzt die Homologiegruppe $H_1$. +Da sich im Tetraeder jeder geschlossene Weg zusammenziehen lässt, +erwarten wir $H_1=0$. + +Die Menge der Zyklen $Z_1$ wird bestimmt, indem man die Lösungsmenge +des Gleichungssystems $\partial_1z=0$ bestimmt. +Der Gauss-Algorithmus für die Matrix $\partial_1$ liefert das +Schlusstableau +\[ +\begin{tabular}{|>{$}c<{$}>{$}c<{$}>{$}c<{$}>{$}c<{$}>{$}c<{$}>{$}c<{$}|} +\hline +k_0&k_1&k_2&k_3&k_4&k_5\\ +\hline + 1& 0& 0& -1& -1& 0\\ + 0& 1& 0& 1& 0& -1\\ + 0& 0& 1& 0& 1& 1\\ + 0& 0& 0& 0& 0& 0\\ +\hline +\end{tabular} +\] +Daraus lassen sich drei linear unabhängig eindimensionale Zyklen ablesen, +die zu den Lösungsvektoren +\[ +z_1 += +\begin{pmatrix*}[r] +1\\ +-1\\ +0\\ +1\\ +0\\ +0 +\end{pmatrix*}, +\qquad +z_2 += +\begin{pmatrix*}[r] +1\\ +0\\ +-1\\ +0\\ +1\\ +0 +\end{pmatrix*}, +\qquad +z_3 += +\begin{pmatrix*}[r] +0\\ +1\\ +-1\\ +0\\ +0\\ +1 +\end{pmatrix*} +\] +gehören. + +$C_2$ hat die vier Seitenflächen +\[ +f_0=[0,1,2],\quad +f_1=[0,1,3],\quad +f_2=[0,2,3],\quad +f_3=[1,2,3] +\] +als Basis. +Der zweidimensionale Randoperator ist die $6\times 4$-Matrix +\[ +\partial_2 += +\begin{pmatrix*}[r] + 1& 1& 0& 0\\ +-1& 0& 1& 0\\ + 0&-1&-1& 0\\ + 1& 0& 0& 1\\ + 0& 1& 0&-1\\ + 0& 0& 1& 1 +\end{pmatrix*}. +\] +Man kann leicht nachrechnen, dass $\partial_1\partial_2=0$ ist, wie es +für einen Kettenkomplex sein muss. + +Um nachzurechnen, dass die Homologiegruppe $H_1=0$ ist, müssen wir jetzt +nachprüfen, ob jeder Zyklus in $Z_1$ auch Bild der Randabbildung $\partial_2$ +ist. +Die ersten drei Spalten von $\partial_2$ sind genau die drei Zyklen +$z_1$, $z_2$ und $z_3$. +Insbesondere lassen sich alle Zyklen als Ränder darstellen, die +Homologiegruppe $H_1=0$ verschwindet. + +Die Zyklen in $C_2$ sind die Lösungen von $\partial_2z=0$. +Der Gauss-Algorithmus für $\partial_2$ liefert das -Tableau +\[ +\begin{tabular}{|>{$}c<{$}>{$}c<{$}>{$}c<{$}>{$}c<{$}|} +\hline +f_0&f_1&f_2&f_3\\ +\hline +1&0&0& 1\\ +0&1&0&-1\\ +0&0&1& 1\\ +0&0&0& 0\\ +0&0&0& 0\\ +0&0&0& 0\\ +\hline +\end{tabular} +\] +Daraus liest man ab, dass es genau einen Zyklus nämlich +\[ +z += +\begin{pmatrix} +-1\\1\\-1\\1 +\end{pmatrix} +\] +$Z_2$ besteht also aus Vielfachen des Vektors $z$. + +Da es nur ein zweidimensionales Simplex gibt, ist $C_3$ eindimensional. +Die Randabbildung $\partial_3$ hat die Matrix +\[ +\partial_3 += +\begin{pmatrix} +1\\ +-1\\ +1\\ +-1 +\end{pmatrix}. +\] +Die Zyklen $Z_2$ und die Ränder $B_2$ bilden also dieselbe Menge, auch +die Homologie-Gruppe $H_2$ ist $0$. + +Da es keine vierdimensionalen Simplizes gibt, ist $B_3=0$. +Die Zyklen $Z_3$ bestehen aus den Lösungen von $\partial_3w=0$, da +aber $\partial_3$ injektiv ist, ist $Z_3=0$. +Daher ist auch $H_3=0$. +\end{beispiel} + +\begin{beispiel} +Für dieses Beispiel entfernen wir das Innere des Tetraeders, es entsteht +ein Hohlraum. +Am Kettenkomplex der Triangulation ändert sich nur, dass $C_3$ jetzt +nur noch den $0$-Vektor enthält. +Das Bild $B_2=\operatorname{im}\partial_3$ wird damit auch $0$-dimensional, +während es im vorigen Beispiel eindimensional war. +Die einzige Änderung ist also in der Homologiegruppe +$H_2 = Z_2/B_2 = Z_2 / \{0\} \simeq \Bbbk$. +Die Homologiegruppe $H_2$ hat jetzt Dimension $1$ und zeigt damit den +Hohlraum an. +\end{beispiel} \subsection{Induzierte Abbildung \label{buch:subsection:induzierte-abbildung}} +Früher haben wurde eine Abbildung $f_*$ zwischen Kettenkomplexen $C_*$ und +$D_*$ so definiert, +dass sie mit den Randoperatoren verträglich sein muss. +Diese Forderung bewirkt, dass sich auch eine lineare Abbildung +\[ +H_k(f) \colon H_k(C) \to H_k(D) +\] +zwischen den Homologiegruppen ergibt, wie wir nun zeigen wollen. + +Um eine Abbildung von $H_k(C)$ nach $H_k(D)$ zu definieren, müssen wir +zu einem Element von $H_k(C)$ ein Bildelement konstruieren. +Ein Element in $H_k(C)$ ist eine Menge von Zyklen in $Z^C_k$, die sich +nur um einen Rand in $B_k$ unterscheiden. +Wir wählen also einen Zyklus $z\in Z_k$ und bilden ihn auf $f_k(z)$ ab. +Wegen $\partial^D_kf(z)=f\partial^C_kz = f(0) =0 $ ist auch $f_k(z)$ +ein Zyklus. +Wir müssen jetzt aber noch zeigen, dass eine andere Wahl des Zyklus +das gleiche Element in $H_k(D)$ ergibt. +Dazu genügt es zu sehen, dass sich $f(z)$ höchstens um einen Rand +ändert, wenn man $z$ um einen Rand ändert. +Sei also $b\in B^C_k$ ein Rand, es gibt also ein $w\in C_{k+1}$ mit +$\partial^C_{k+1}w=b$. +Dann gilt aber auch +\[ +f_k(z+b) += +f_k(z) + f_k(b) += +f_k(z) + f_k(\partial^C_{k+1}w) += +f_k(z) + \partial^D_{k+1}(f_k(w)). +\] +Der letzte Term ist ein Rand in $D_k$, somit ändert sich $f_k(z)$ nur +um diesen Rand, wenn man $z$ um einen Rand ändert. +$f_k(z)$ und $f_k(z+b)$ führen auf die selbe Homologieklasse. -\subsection{Homologie eines simplizialen Komplexes -\label{buch:subsection:simplizialekomplexe}} diff --git a/buch/chapters/95-homologie/images/Makefile b/buch/chapters/95-homologie/images/Makefile index 82f1285..ac964ff 100644 --- a/buch/chapters/95-homologie/images/Makefile +++ b/buch/chapters/95-homologie/images/Makefile @@ -3,8 +3,11 @@ # # (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule # -all: dreieck.pdf +all: dreieck.pdf polyeder.pdf dreieck.pdf: dreieck.tex pdflatex dreieck.tex +polyeder.pdf: polyeder.tex + pdflatex polyeder.tex + diff --git a/buch/chapters/95-homologie/images/polyeder.pdf b/buch/chapters/95-homologie/images/polyeder.pdf Binary files differnew file mode 100644 index 0000000..3a8ba60 --- /dev/null +++ b/buch/chapters/95-homologie/images/polyeder.pdf diff --git a/buch/chapters/95-homologie/images/polyeder.tex b/buch/chapters/95-homologie/images/polyeder.tex new file mode 100644 index 0000000..9a900cc --- /dev/null +++ b/buch/chapters/95-homologie/images/polyeder.tex @@ -0,0 +1,109 @@ +% +% tikztemplate.tex -- template for standalon tikz images +% +% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +% +\documentclass[tikz]{standalone} +\usepackage{amsmath} +\usepackage{times} +\usepackage{txfonts} +\usepackage{pgfplots} +\usepackage{csvsimple} +\usetikzlibrary{arrows,intersections,math,calc} +\begin{document} +\def\skala{1} +\begin{tikzpicture}[>=latex,thick,scale=\skala] + +% add image content here +\begin{scope}[xshift=-3.5cm,scale=0.5] +\coordinate (A) at (0,0); +\coordinate (B) at (4,0); +\coordinate (C) at (5,-2); +\coordinate (D) at (8,-1); +\coordinate (E) at (7,1); +\coordinate (F) at (7,3); +\coordinate (G) at (1,3); +\coordinate (H) at (5,4); +\coordinate (I) at (9,5); +\coordinate (J) at (4,7); +\coordinate (K) at (-1,9); +\coordinate (L) at (7,11); +\coordinate (M) at (6,-0.5); + +\fill[color=gray,opacity=0.5] (A)--(B)--(H)--(G)--cycle; +\fill[color=gray,opacity=0.5] (G)--(I)--(K)--cycle; +\fill[color=gray,opacity=0.5] (G)--(L)--(K)--cycle; + +\draw (K)--(G)--(A)--(B)--(D); +\draw (C)--(E); +\draw (G)--(I)--(K); +\draw (G)--(L)--(K); +\draw (B)--(H); +\draw (B)--(F); + +\fill (A) circle[radius=0.1]; +\fill (B) circle[radius=0.1]; +\fill (C) circle[radius=0.1]; +\fill (D) circle[radius=0.1]; +\fill (E) circle[radius=0.1]; +\fill (F) circle[radius=0.1]; +\fill (G) circle[radius=0.1]; +\fill (H) circle[radius=0.1]; +\fill (I) circle[radius=0.1]; +%\fill (J) circle[radius=0.1]; +\fill (K) circle[radius=0.1]; +\fill (L) circle[radius=0.1]; +%\fill (M) circle[radius=0.1]; + +\draw[color=red] (H) circle[radius=0.5]; +\draw[color=red] (J) circle[radius=0.5]; +\draw[color=red] (M) circle[radius=0.5]; +\draw[color=red] ($0.25*(A)+0.25*(B)+0.25*(G)+0.25*(H)$) circle[radius=0.5]; + +\end{scope} + +\begin{scope}[xshift=3.5cm,scale=0.5] +\coordinate (A) at (0,0); +\coordinate (B) at (4,0); +\coordinate (C) at (5,-2); +\coordinate (D) at (8,-1); +\coordinate (E) at (7,1); +\coordinate (F) at (7,3); +\coordinate (G) at (1,3); +\coordinate (H) at (5,4); +\coordinate (I) at (9,5); +\coordinate (J) at (4,7); +\coordinate (K) at (-1,9); +\coordinate (L) at (7,11); +\coordinate (M) at (6,-0.5); + +\fill[color=gray!50] (A)--(B)--(H)--(I)--(J)--(L)--(K)--(G)--cycle; + +\draw (K)--(G)--(A)--(B)--(D); +\draw (C)--(E); +\draw (G)--(I)--(K); +\draw (G)--(L)--(K); +\draw (B)--(H); +\draw (B)--(F); +\draw (H)--(J); +\draw (A)--(H); + +\fill (A) circle[radius=0.1]; +\fill (B) circle[radius=0.1]; +\fill (C) circle[radius=0.1]; +\fill (D) circle[radius=0.1]; +\fill (E) circle[radius=0.1]; +\fill (F) circle[radius=0.1]; +\fill (G) circle[radius=0.1]; +\fill (H) circle[radius=0.1]; +\fill (I) circle[radius=0.1]; +\fill (J) circle[radius=0.1]; +\fill (K) circle[radius=0.1]; +\fill (L) circle[radius=0.1]; +\fill (M) circle[radius=0.1]; + +\end{scope} + +\end{tikzpicture} +\end{document} + diff --git a/buch/chapters/95-homologie/komplex.tex b/buch/chapters/95-homologie/komplex.tex index 6dd8efb..fa2d8e1 100644 --- a/buch/chapters/95-homologie/komplex.tex +++ b/buch/chapters/95-homologie/komplex.tex @@ -6,9 +6,105 @@ \section{Kettenkomplexe \label{buch:section:komplex}} \rhead{Kettenkomplexe} +Die algebraische Struktur, die in Abschnitt~\ref{buch:subsection:triangulation} +konstruiert wurde, kann noch etwas abstrakter konstruiert werden. +Es ergibt sich das Konzept eines Kettenkomplexes. +Die Triangulation gibt also Anlass zu einem Kettenkomplex. +So lässt sich zu einem geometrischen Objekt ein algebraisches +Vergleichsobjekt konstruieren. +Im Idealfall lassens ich anschliessend geometrische Eigenschaften mit +algebraischen Rechnungen zum Beispiel in Vektorräumen mit Matrizen +beantworten. -\subsection{Randoperator von Simplexen -\label{buch:subsection:randoperator-von-simplexen}} +\subsection{Definition +\label{buch:subsection:kettenkomplex-definition}} +Die Operation $\partial$, die für Simplizes konstruiert worden ist, +war linear und hat die Eigenschaft $\partial^2$ gehabt. +Diese Eigenschaften reichen bereits für Definition eines Kettenkomplexes. + +\begin{definition} +Eine Folge $C_0,C_1,C_2,\dots$ von Vektorräumen über dem Körper $\Bbbk$ +mit einer Folge von linearen Abbildungen +$\partial_k\colon C_k \to C_{k-1}$, dem {\em Randoperator}, +heisst ein Kettenkomplex, wenn $\partial_{k-1}\partial_k=0$ gilt +für alle $k>0$. +\end{definition} + +Die aus den Triangulationen konstruieren Vektorräme von +Abschnitt~\ref{buch:subsection:triangulation} bilden einen +Kettenkomplex. + +XXX nachrechnen: $\partial^2 = 0$ ? + +\subsection{Abbildungen +\label{buch:subsection:abbildungen}} +Wenn man verschiedene geometrische Objekte mit Hilfe von Triangulationen +vergleichen will, dann muss man auch das Konzept der Abbildungen zwischen +den geometrischen Objekten in die Kettenkomplexe transportieren. + +Eine Abbildung zwischen Kettenkomplexen muss einerseits eine lineare +Abbildung der Vektorräume $C_k$ sein, andererseits muss sich eine +solche Abbildung mit dem Randoperator vertragen. +Wir definieren daher + +\begin{definition} +Eine Abbildung $f_*$ zwischen zwei Kettenkomplexe $(C_*,\partial^C_*)$ und +$(D_*,\partial^D_*)$ heisst eine Abbildung von Kettenkomplexen, wenn +für jedes $k$ +\begin{equation} +\partial^D_k +\circ +f_{k} += +f_{k+1} +\circ +\partial^C_k +\label{buch:komplex:abbildung} +\end{equation} +gilt. +\end{definition} + +Die Beziehung~\eqref{buch:komplex:abbildung} kann übersichtlich als +kommutatives Diagramm dargestellt werden. +\begin{equation} +\begin{tikzcd} +0 + & C_0 \arrow[l, "\partial_0^C"] + \arrow[d, "f_0"] + & C_1 \arrow[l,"\partial_1^C"] + \arrow[d, "f_1"] + & C_2 \arrow[l,"\partial_2^C"] + \arrow[d, "f_2"] + & \dots \arrow[l] + \arrow[l, "\partial_{k-1}^C"] + & C_k + \arrow[l, "\partial_k^C"] + \arrow[d, "f_k"] + & C_{k+1}\arrow[l, "\partial_{k+1}^C"] + \arrow[d, "f_{k+1}"] + & \dots +\\ +0 + & D_0 \arrow[l, "\partial_0^D"] + & D_1 \arrow[l,"\partial_1^D"] + & D_2 \arrow[l,"\partial_2^D"] + & \dots \arrow[l] + \arrow[l, "\partial_{k-1}^D"] + & D_k + \arrow[l, "\partial_k^D"] + & D_{k+1}\arrow[l, "\partial_{k+1}^D"] + & \dots +\end{tikzcd} +\label{buch:komplex:abbcd} +\end{equation} +Die Relation~\eqref{buch:komplex:abbildung} drückt aus, dass man jeden +den Pfeilen im Diagram~\eqref{buch:komplex:abbcd} folgen kann und +dabei zwischen zwei Vektorräumen unabhängig vom Weg die gleiche Abbildung +resultiert. + +Die Verfeinerung einer Triangulation erzeugt eine solche Abbildung von +Komplexen. + + +% XXX simpliziale Approximation -\subsection{Kettenkomplexe und Morphismen -\label{buch:subsection:kettenkomplex}} diff --git a/buch/chapters/95-homologie/mayervietoris.tex b/buch/chapters/95-homologie/mayervietoris.tex deleted file mode 100644 index 57105f8..0000000 --- a/buch/chapters/95-homologie/mayervietoris.tex +++ /dev/null @@ -1,28 +0,0 @@ -% -% mayervietoris.tex -% -% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule -% -\section{Exaktheit und die Mayer-Vietoris-Folge -\label{buch:section:mayervietoris}} -\rhead{Exaktheit und die Mayer-Vietoris-Folge} -Die Berechnung der Homologie-Gruppen ist zwar im Wesentlichen ein -kombinatorisches Problem, trotzdem ist eher aufwändig. -Oft weiss man, wie sich toplogische Räume aus einfacheren Räumen -zusammensetzen lassen. -Eine Mannigkfaltigkeit zum Beispiel wird durch die Karten -definiert, also zusammenziehbare Teilmengen von $\mathbb{R}^n$, -die die Mannigkfaltigkeit überdecken. -Das Ziel dieses Abschnittes ist, Regeln zusammenzustellen, mit denen -man die Homologie eines solchen zusammengesetzten Raumes aus der -Homologie der einzelnen Teile und aus den ``Verklebungsabbildungen'', -die die Teile verbinden, zu berechnen. - -\subsection{Kurze exakte Folgen von Kettenkomplexen -\label{buch:subsection:exaktefolgen}} - -\subsection{Schlangenlemma und lange exakte Folgen -\label{buch:subsection:schlangenlemma}} - -\subsection{Mayer-Vietoris-Folge -\label{buch:subsection:mayervietoris}} diff --git a/buch/chapters/95-homologie/simplex.tex b/buch/chapters/95-homologie/simplex.tex index 5ca2ca8..0cf4aa7 100644 --- a/buch/chapters/95-homologie/simplex.tex +++ b/buch/chapters/95-homologie/simplex.tex @@ -1,17 +1,17 @@ % -% simplex.tex -- simplizes und simpliziale Komplexe +% simplex.tex -- simplizes und Polyeder % % (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule % -\section{Simplexe und simpliziale Komplexe +\section{Simplices \label{buch:section:simplexe}} -\rhead{Simplexe und simpliziale Komplexe} +\rhead{Simplices} Die Idee, das Dreieck und seinen Rand zu unterscheiden verlangt, dass wir zunächst Dreiecke und deren höherdimensionale Verallgemeinerungen, die sogenannten Simplizes entwickeln müssen. -\subsection{Simplexe und Rand -\label{buch:subsection:simplexe}} +\subsection{Simplices und Rand +\label{buch:subsection:simplices}} \subsubsection{Rand eines Dreiecks} Die Inzidenz-Matrix eines Graphen hat einer Kante die beiden Endpunkte @@ -231,8 +231,127 @@ Vorzeichen zu, die Matrix ist \] \end{definition} +\subsection{Polyeder} +\begin{figure} +\centering +\includegraphics{chapters/95-homologie/images/polyeder.pdf} +\caption{Aufbau eines zweidimensionalen Polyeders aus +verschiedenen Simplizes. +Die Schnittmenge zweier Simplizes muss ein Untersimplex beider Simplizes +sein. +Die roten Kreise im linken Bild weisen auf verschiedene Situationen +hin, wo das diese Bedingung nicht erfüllt ist. +In rechten Bild sind zusätzliche Simlizes hinzugefügt worden, um +die Bedingungen eines Polyeders zu erfüllen. +\label{buch:homologie:figure:polyeder}} +\end{figure} +Aus einzelnen Simplizes können jetzt kompliziertere geometrische +Objekte gebaut werden. +Ein Graph ist ein Beispiel für ein geometrisches Objekt, welches +als Vereinigung von 1-Simplizes entsteht. +Die Vereinigung ist aber nicht beliebig, vielmehr ist die Schnittmenge +zweier beliebiger 1-Simplizes immer entweder leer, eine Menge +mit nur einem Vertex oder ein ganzes 1-Simplex. + +Dies reicht aber nicht, wie Abbildung~\ref{buch:homologie:polyeder} +zeigt. +In einem Graphen dürfen sich Kanten nicht in einem inneren Punkt treffen, +sondern nur in Endpunkten. +Verallgemeinert auf höherdimensionale Simplizes kann man dies als die +Bedingung formulieren, dass die Schnittmenge zweier beliebiger +Simplizes immer Untersimplizes beider Simplizes sein müssen. +Wir fassen dies zusammen in der folgenden Definition. + +\begin{definition} +\index{Polyeder}% +\index{Dimension eines Polyeders}% +\index{Polyeder, Dimension eines}% +Ein {\em Polyeder} ist eine Vereingung von endlich vielen Simplizes derart, +dass die Schnittmenge zweier beliebiger Simplizes immer ein Untersimplex +beider Simplizes ist. +Die {\em Dimension} des Polyeders ist die grösste Dimension der darin +enthaltenen Simplizes. +\end{definition} + +Ein Graph ist nach dieser Definition ein eindimensionales Polyeder. +Die Mengen in der Abbildung~\ref{buch:homologie:figure:polyeder} +ist kein Polyeder, kann aber leicht zu einem Polyeder gemacht werden, +indem man einzelne Kanten mit zusätzlichen Punkten unterteilt. +Auch müssen die zweidimensionalen Simplizes aufgeteilt werden. + +Die Abbildung~\ref{buch:homologie:figure:polyeder} zeigt auch, dass +die Darstellung einer Punktmenge als Polyeder nicht eindeutig ist. +Man kann die Kanten und Flächen jederzeit weiter unterteilen, ohne +dass sich die Gestalt der gesamten Menge dadurch ändert. \subsection{Triangulation -\label{buch:subsection:}} +\label{buch:subsection:triangulation}} +Unser Ziel ist, geometrische Objekte besser verstehen zu können. +Dabei sind uns Deformationen ja sogar Knicke egal, es interessiert uns +nur die ``Gestalt'' des Objekts. +Entfernungen zwischen Punkten sind ebenfalls von untergeordneter +Bedeutung, da sie bei Deformation nicht erhalten bleiben. +Der Begriff des ``topologischen Raumes'' fasst diese Ideen mathematisch +präzise ein, eine genaue Definition würde aber an dieser Stelle zu weit +führen. +Stattdessen beschränken wir uns auf eine Klasse von Punktmengen, die man +mit Simplizes beschreiben kann. + +Ein topologischer Raum zeichnet sich durch einen Nachbarschaftsbegriff +von Punkte aus, der erlaubt zu definieren, was eine stetige Abbildung ist. +Ein stetige Abbildungen bildet nahe beeinander liegende Punkte wieder +auf nahe beeinander liegende Punkte ab. +Dass nahe liegende Punkte nicht plötzlich auf weit auseinander liegende +Punkte abgebildet werden gibt die Intuition wieder, dass Deformationen +möglich sein sollen, dass der Raum dabei aber nicht ``reissen'' darf. +Zwei topologische Räume $X$ und $Y$ können daher als ``gleichgestaltig'' +betrachtet werden, wenn es zwei stetige Abbildungen $f\colon X\to Y$ +und $g\colon Y\to X$ gibt, die zu einander invers sein. +Oder wenn sich $X$ stetig auf $Y$ abbilden lässt, so dass auch die +Umkehrabbildung stetig ist. +Eine solche Abbildung heisst ein {\em Homöomorphismus}, die beiden Räume +$X$ und $Y$ heissen {\em homomorph}. + +Eine Kugel ist natürlich kein Polyeder, aber sie kann leicht homöomorph +auf ein dreidimensionales Simplex abgebildet werden. + +\begin{beispiel} +Sei $T$ ein reguläres Tetraeder mit den Ecken auf der dreidimensionalen +Einheitskugel $B^3$. +Für jeden Richtungsvektor $x\ne 0$ sei $l(x)$ Entfernung vom Mittelpunkt des +Tetraeders bis zum Durchstosspunkt einer Geraden durch den Mittelpunkt +mit Richtungsvektor $x$ durch die Oberfläche des Tetraeders. +Dann sind die Abbildungen +\[ +f\colon +T\to B^3 +: +x \mapsto\begin{cases} +\displaystyle +\frac{x}{l(x)}&\quad\text{für $x\ne 0$}\\ +0&\quad\text{für $x=0$} +\end{cases} +\qquad\text{und}\qquad +g\colon +B^3\to T +: +x \mapsto\begin{cases} +l(x) x&\quad\text{für $x\ne 0$}\\ +0&\quad\text{für $x=0$} +\end{cases} +\] +zueinander inverse stetige Abbildungen oder Homöomorphismen. +\end{beispiel} + +Im Folgenden sollen daher nur solche topologischen Räume untersucht werden, +die homöomorph sind zu einem Polyeder. +Man nennt die homöomorphe Abbildung eines Polyeders auf so einen Raum +auch eine Triangulation. +Durch Unterteilung der Simplizes in kleiner Simplizes kann eine solche +Triangulation beliebig verfeinert werden. + + + + diff --git a/buch/chapters/references.bib b/buch/chapters/references.bib index a5d0201..977bf81 100644 --- a/buch/chapters/references.bib +++ b/buch/chapters/references.bib @@ -20,6 +20,12 @@ keywords = "World Wide Web, Search engines, Information retrieval, PageRank, Goo abstract = "In this paper, we present Google, a prototype of a large-scale search engine which makes heavy use of the structure present in hypertext. Google is designed to crawl and index the Web efficiently and produce much more satisfying search results than existing systems. The prototype with a full text and hyperlink database of at least 24 million pages is available at http://google.stanford.edu/ To engineer a search engine is a challenging task. Search engines index tens to hundreds of millions of Web pages involving a comparable number of distinct terms. They answer tens of millions of queries every day. Despite the importance of large-scale search engines on the Web, very little academic research has been done on them. Furthermore, due to rapid advance in technology and Web proliferation, creating a Web search engine today is very different from three years ago. This paper provides an in-depth description of our large-scale Web search engine — the first such detailed public description we know of to date. Apart from the problems of scaling traditional search techniques to data of this magnitude, there are new technical challenges involved with using the additional information present in hypertext to produce better search results. This paper addresses this question of how to build a practical large-scale system which can exploit the additional information present in hypertext. Also we look at the problem of how to effectively deal with uncontrolled hypertext collections where anyone can publish anything they want." } +@book{buch:linalg, + title = {Lineare Algebra}, + author = {Andreas M"uller}, + url = {https://github.com/AndreasFMueller/LinAlg.git}, + year = {2010} +} @book{buch:mathsem-wavelets, title = {Mathematisches Seminar Wavelets}, @@ -33,6 +39,13 @@ abstract = "In this paper, we present Google, a prototype of a large-scale searc year = {2016}, } +@online{buch:rfc2409, + title = {The Internet Key Exchange (IKE)}, + author = { D. Harkins and D. Carrel}, + url = {https://datatracker.ietf.org/doc/html/rfc2409}, + year = {1998} +} + @online{buch:fftw, title = {Fastest Fourier Transform in the West}, url = {http://www.fftw.org/}, diff --git a/buch/common/lststyles.tex b/buch/common/lststyles.tex index b1105ed..15ac379 100644 --- a/buch/common/lststyles.tex +++ b/buch/common/lststyles.tex @@ -12,6 +12,29 @@ \definecolor{mygreen}{RGB}{28,172,0} % color values Red, Green, Blue \definecolor{mylilas}{RGB}{170,55,241} +\lstset{ + extendedchars=true, + basicstyle=\ttfamily, + literate=% + {€}{\euro}1% + {§}{\S}1% + {°}{\textdegree{}}1% + {ä}{{\"a}}1% + {ö}{{\"o}}1% + {ü}{{\"u}}1% + {ß}{{\ss}}1% + {Ä}{{\"A}}1% + {Ö}{{\"O}}1% + {Ü}{{\"U}}1% + {µ}{\textmu}1% + {¹}{{\textsuperscript{1}}}1% + {²}{{\textsuperscript{2}}}1% + {³}{{\textsuperscript{3}}}1% + {¼}{\textonequarter}1% + {½}{\textonehalf}1% + {¢}{\textcent}1% +} + \lstdefinestyle{Matlab}{ numbers=left, belowcaptionskip=1\baselineskip, diff --git a/buch/common/macros.tex b/buch/common/macros.tex index 2c6eea2..5783122 100644 --- a/buch/common/macros.tex +++ b/buch/common/macros.tex @@ -108,6 +108,7 @@ \newtheorem{forderung}{Forderung}[chapter] \newtheorem{konsequenz}[satz]{Konsequenz} \newtheorem{algorithmus}[satz]{Algorithmus} +\newtheorem{ziel}[satz]{Ziel} \renewcommand{\floatpagefraction}{0.7} \definecolor{darkgreen}{rgb}{0,0.6,0} diff --git a/buch/papers/clifford/0_ElevatorPitch.tex b/buch/papers/clifford/0_ElevatorPitch.tex index 0db5617..ad9bcc2 100644 --- a/buch/papers/clifford/0_ElevatorPitch.tex +++ b/buch/papers/clifford/0_ElevatorPitch.tex @@ -1,2 +1,6 @@ -TODO... -GA [Geometric Algebra i.a.W. Clifford Algebra] provides a unified language for the whole of physics and for much of mathematics and its applications that is conceptually and computationally superior to alternative mathematical systems in many application domains.
\ No newline at end of file + +Der Nutzen, welche die Clifford Algebra hat, lässt sich am besten mit den Worten des modernen Begründers dieser erläutern. + +"GA [Geometric Algebra i.a.W. Clifford Algebra] provides a unified language for the whole of physics and for much of mathematics and its applications that is conceptually and computationally superior to alternative mathematical systems in many application domains." \cite{clifford:hestenes_GA} + +Im folgenden hoffen wir den Leser von der Nützlichkeit und der geometrischen Schönheit der Clifford Algebra zu überzeugen.
\ No newline at end of file diff --git a/buch/papers/clifford/10_Quaternionen.tex b/buch/papers/clifford/10_Quaternionen.tex index 8945ba8..3fe2876 100644 --- a/buch/papers/clifford/10_Quaternionen.tex +++ b/buch/papers/clifford/10_Quaternionen.tex @@ -5,57 +5,209 @@ % \section{Quaternionen} \rhead{Quaternionen} -Wie die komplexen Zahlen eine Erweiterung der reellen Zahlen sind, sind die Quaternionen eine Erweiterung der komplexen Zahlen für den 3 dimensionalen Raum. Sie haben, wie die komplexen Zahlen, eine dreh-streckende Eigenschaft. -Sie finden beispielsweise in der Computergraphik und in der Robotik Anwendung. -Die Quaternionen werden so definiert. + +Wie die komplexen Zahlen eine Erweiterung der reellen Zahlen sind, sind die Quaternionen eine Erweiterung der komplexen Zahlen für den dreidimensionalen Raum. Sie haben, wie die komplexen Zahlen, eine dreh-streckende Eigenschaft. +Sie finden beispielsweise in der Computergrafik und Robotik Anwendung. +Die Quaternionen \begin{align} - q = w + xi + yj + zk; \quad w,x,y,z \in \mathbb{R};\enspace q \in \mathbb{H} + q = w + xi + yj + zk \quad w,x,y,z \in \mathbb{R}\enspace q \in \mathbb{H} \end{align} -Eine Drehstreckung wird dabei mit dieser Formel erreicht. +können dabei eine Drehstreckung mit \begin{align} \label{QuatRot} \begin{split} - &v'' = qvq^{-1};\quad q,v,q^{-1} \in \mathbb{H}\\ - &Re(q) = Re(q^{-1});\enspace Im(q) = -Im(q^-1) + v \mapsto v'' = qvq^{-1} \end{split} \end{align} -Die Quaternionen besitzen im Gegensatz zu dem komplexen Zahlen 3 imaginäre Einheiten $i,j,k$. Wieso 3? Weil es in der dritten Dimension 3 Drehachsen gibt, anstatt nur eine. Nun haben wir ein kleines Problem. Wie sollen wir die Quaternionen darstellen? Wir bräuchten 4 Achsen für die 3 Imaginären Einheiten und die eine reelle Einheit. Ein weiterer Nachteil in visueller Hinsicht entsteht beim Anwenden eines Quaternion auf einen Vektor. Sie befinden sich nicht im gleichen Raum und müssen zuerst ineinander umgewandelt werden, um damit zu rechnen, wie man bei $v$ in der Formel (\ref{QuatRot}) sieht. +erreichen, falls $q,v,q^{-1} \in \mathbb{H}$ und die Zusammenhänge +\begin{align} + \operatorname{Re}(q) = \operatorname{Re}(q^{-1})\quad \operatorname{Im}(q) = -\operatorname{Im}(q^{-1}) +\end{align} +gelten. Auffallend ist bei der abbildenden Funktion \eqref{QuatRot} schon die Ähnlichkeit zu \eqref{rotGA} im Kapitel Rotation. Man könnte sich nun fragen wieso es drei imaginäre Einheiten $i,j,k$ gibt und nicht zwei, was doch näherliegender wäre. Der Grund liegt darin, weil es in der dritten Dimension drei Drehachsen gibt, anstatt nur eine. Wie im Kapitel Rotation beschrieben können wir auch hier die drei Drehungen durch Linearkombinationen von drei Bivektoren beschreiben. In der geometrischen Algebra ist es leicht herauszufinden wie viele Imaginärteile für jede weitere Dimension existieren. Dabei muss man nur die Anzahl der unabhängigen Bivektoren ermitteln. In der vierten Dimension würden es beispielsweise durch alle Vektorkombinationen von $\mathbf{e}_1, \mathbf{e}_2,\mathbf{e}_3, \mathbf{e}_4$ insgesamt 8 Bivektoren existieren (Nicht 16, da $\mathbf{e}_{ij} = -\mathbf{e}_{ji}$ nicht unabhängig voneinander sind). -\subsection{geometrischen Algebra} -Die geometrische Algebra besitzt die Fähigkeit beide Probleme zu lösen. Die Quaternionen können, wie schon im 2 dimensionalen Fall durch die gerade Grade $\mathbb{G}_3^+ \cong \mathbb{H}$ dargestellt werden. Da wir uns jetzt aber in $\mathbb{G}_3$ befinden haben wir 3 Basisvektoren $e_1, e_2, e_3$ und können somit 3 Bivektoren bilden $e_{12}, e_{23}, e_{31}$. +Ohne die geometrische Algebra, haben wir jetzt aber leider ein kleines Problem. Für die Darstellung der Quaternionen bräuchten wir insgesamt vier Achsen. Drei für die imaginären Einheiten und eine für die reelle Einheit. Ein weiterer Nachteil in visueller Hinsicht entsteht beim Anwenden eines Quaternion auf einen Vektor. Sie befinden sich nicht im gleichen Raum und müssen zuerst durch \begin{align} - \mathbf{q} = w + x\mathbf{e_{12}} + y\mathbf{e_{23}} + z\mathbf{e_{31}}; \quad w,x,y,z \in \mathbb{R};\enspace q \in \mathbb{G}_3^+ + \mathbf{v} = x\mathbf{\hat{x}} + y\mathbf{\hat{y}} + z \mathbf{\hat{z}} \in \mathbb{R}^3 \enspace\mapsto\enspace v = 0 + xi + yj + zk \in \mathbb{H} \end{align} -Die Probleme werden dadurch gelöst, da wir die Bivektoren im Raum nicht durch einzelne Achsen darstellen müssen, sondern sie als eine orientiere Fläche darstellen können. Anstatt die Vektoren in Quaternionen umzurechnen, können wir jetzt die Vektoren separat im gleichen Raum darstellen. -\\BILD VEKTOR, QUATERNION IN G3\\ -Wie schon im 2 dimensionalen Fall beschreibt ein Bivektor, um wie viel der um 90 grad gedrehte orginale Vektor gestreckt wird. Dabei dreht jeder Bivektor den Vektor um eine andere Achse. -\\BILD?\\ -In der Computergraphik und Robotik macht eine Drehstreckung aber nicht viel Sinn. Wieso sollte ein Objekt bei einer Drehung zusätzlich noch grösser werden? Darum verwendet man sogenannte Einheitsquaternion, welche den Betrag $|q|=1$ haben. Sie rotieren die Objekte bzw. Vektoren lediglich. +ineinander umgewandelt werden, um damit zu rechnen. + +\subsection{Geometrische Algebra} +Die geometrische Algebra kann beide Probleme beheben. Die Quaternionen können, wie schon im zweidimensionalen Fall durch die gerade Grade $G_3^+(\mathbb{R}) \cong \mathbb{H}$ dargestellt werden. Da wir uns jetzt aber in $G_3(\mathbb{R})$ befinden haben wir drei Basisvektoren $\mathbf{e}_1, \mathbf{e}_2, \mathbf{e}_3$ und können somit drei Bivektoren $\mathbf{e}_{12}, \mathbf{e}_{23}, \mathbf{e}_{31}$ bilden. +\begin{definition} + Die Multivektoren mit Drehstreckenden Eigenschaften in $G_3(\mathbb{R})$ sind + \begin{align} + \mathbf{q} = w + x\mathbf{e}_{12} + y\mathbf{e}_{23} + z\mathbf{e}_{31} \quad w,x,y,z \in \mathbb{R}\enspace \mathbf{q} \in \mathbb{G}_3^+. + \end{align} +\end{definition} + +Die Probleme werden dadurch gelöst, da wir die Bivektoren im Raum nicht durch einzelne Achsen darstellen müssen, sondern sie als eine orientiere Fläche darstellen können. Anstatt die Vektoren in Quaternionen umzurechnen, können wir jetzt die Vektoren separat im gleichen Raum, wie in Abbildung \ref{BildQuaternionen} gezeigt, darstellen. +\begin{figure} + \centering + \begin{tikzpicture} + % Koordinatensystem + \draw[thin,gray!40] (-3,-2) grid (3,3); + \draw[<->] (-3,0)--(3,0) node[right]{$a_1$}; + \draw[<->] (0,-2)--(0,3) node[above]{$a_2$}; + \draw[<->] (3,3)--(-2,-2) node[left]{$a_3$}; + + % v Vektor + \draw[line width=2pt,black,-stealth](0,0)--(2,-1) node[anchor=north]{$\boldsymbol{v}$}; + + % q Quaternion + \draw[line width=0,fill=blue!40] (0,0)--(0.75,0)--(0.75,0.75)--(0,0.75) + node[xshift=0.375cm, yshift=-0.5cm, blue]{$x\boldsymbol{e_{12}}$}; + \draw[->] (0.7,0.55) arc (0:310:0.15); + + \draw[line width=0,fill=blue!40] (0,0)--(-1,-1)--(-1,0.71)--(0,1.71) + node[xshift=-0.5cm, yshift=-1.5cm, blue]{$y\boldsymbol{e_{23}}$}; + \draw[->] (-0.1,1.1) arc (0:310:0.15); + + \draw[line width=0,fill=blue!40] (0,0)--(-0.71,-0.71)--(0.29,-0.71)--(1,0) + node[xshift=-0.7cm, yshift=-0.2cm, blue]{$z\boldsymbol{e_{31}}$}; + \draw[->] (0,-0.5) arc (0:310:0.15); + + % Basisvektoren + \draw[line width=1.5pt,gray,-stealth](0,0)--(1,0) node[anchor=south west]{$\boldsymbol{e_1}$}; + \draw[line width=1.5pt,gray,-stealth](0,0)--(0,1) node[anchor=north west, yshift=0.2cm]{$\boldsymbol{e_2}$}; + \draw[line width=1.5pt,gray,-stealth](0,0)--(-0.71,-0.71) node[anchor=south, yshift=0.2cm]{$\boldsymbol{e_3}$}; + \end{tikzpicture} + \caption{Darstellung eines Quaternion $\mathbf{q}$ und eines Vektors $\mathbf{v}$ im selben Raum} + \label{BildQuaternionen} +\end{figure} +Wie schon im zweidimensionalen Fall \eqref{GAdrehstreck} beschreibt im dreidimensionalen Fall mit drei Bivektoren \begin{align} - \mathbf{q} = \cos(\alpha) + sin(\alpha)(x\mathbf{e_{12}} + y\mathbf{e_{23}} + z\mathbf{e_{31}}) + \mathbf{qv} &= (w + x\mathbf{e}_{12} + y\mathbf{e}_{23} + z\mathbf{e}_{31})(a\mathbf{e}_1+b\mathbf{e}_2+c\mathbf{e}_3)\\ + &= \underbrace{w(a\mathbf{e}_1+b\mathbf{e}_2+c\mathbf{e}_3)}_{w\mathbf{v}} + \underbrace{x(-a\mathbf{e}_2+b\mathbf{e}_1}_{x\mathbf{v}_{\angle 90^\circ, \parallel \mathbf{e}_{12}}}+c\mathbf{e}_{123}) + \underbrace{y(-b\mathbf{e}_3+c\mathbf{e}_2}_{y\mathbf{v}_{\angle 90^\circ, \parallel \mathbf{e}_{23}}}+a\mathbf{e}_{123}) + \underbrace{z(a\mathbf{e}_3-c\mathbf{e}_1}_{z\mathbf{v}_{\angle 90^\circ, \parallel \mathbf{e}_{31}}}-b\mathbf{e}_{123}) \end{align} -wobei definiert ist, dass $x^2+y^2+z^2=1$. Somit beträgt der Betrag immer 1. +jeder Bivektoranteil, um wie viel der um 90° gedrehte zu der Ebene parallele Teil des Vektors gestreckt wird. Dabei dreht jeder Bivektor den Vektor um eine andere Achse und man sieht die dreh-streckende Eigenschaft ähnlich zu den komplexen Zahlen. Der störende Trivektoranteil $(xc+ya+zb)\mathbf{e}_{123}$ bekommt man aber nur weg, indem man noch wie in der Rotationsformel \eqref{QuatRot} den Inversen Quaternion $\mathbf{q}^{-1}$ anschliessend multipliziert, wobei die dreh-gestreckten parallelen Anteile nochmals um den gleichen Faktor dreh-gestreckt werden. Da nur so der Trivektoranteil wegfällt, sieht man, dass die Rotationsformel, der einzige Vernünftige weg ist, mit Quaternionen zu arbeiten. + +In der Computergraphik und Robotik macht eine Drehstreckung aber nicht viel Sinn. Wieso sollte ein Objekt bei einer Drehung zusätzlich noch grösser werden? Darum verwendet man sogenannte Einheitsquaternionen, welche den Betrag $|\mathbf{q}|=1$ haben und somit rotieren sie die Objekte bzw. Vektoren lediglich. +\begin{definition} + Die Einheitsquaternionen sind definiert als + \begin{align} + \mathbf{q} = \cos(\alpha) + sin(\alpha)(\tilde{x}\mathbf{e}_{12} + \tilde{y}\mathbf{e}_{23} + \tilde{z}\mathbf{e}_{31}) + \end{align} +\end{definition} +Zudem setzten wir $\tilde{x}^2+\tilde{y}^2+\tilde{z}^2=1$, damit \begin{align} - |q| = \sqrt{cos(\alpha)^2 + sin(\alpha)^2(x^2+y^2+z^2) } = \sqrt{cos(\alpha)^2 + sin(\alpha)^2} = 1 + |\mathbf{q}| = \sqrt{cos(\alpha)^2 + sin(\alpha)^2(\tilde{x}^2+\tilde{y}^2+\tilde{z}^2) } = \sqrt{cos(\alpha)^2 + sin(\alpha)^2} = 1. \end{align} -Man verwendet um einen Vektor zu drehen wieder die gleiche Formel, wie auch schon im 2 dimensionalen Fall. -\begin{align} \label{QuatRot} +Der Winkel $\alpha$ beschreibt dabei, wie im Bild \ref{BildQuaternionBeispiel2} gezeigt den halben Winkel, um welchen der parallelen Anteil $\mathbf{v_{\parallel}}$ des Vektors $\mathbf{v}$ zur kombinierten Bivektorebene $sin(\alpha)^2(\tilde{x}\mathbf{e}_{12} + \tilde{y}\mathbf{e}_{23} + \tilde{z}\mathbf{e}_{31})$ gedreht wird. + +Um einen Vektor zu drehen, verwendet man die in Kapitel Rotation hergeleitete Formel +\begin{align} \label{QuatRotGA} \begin{split} - &v'' = qvq^{-1}\\ - &Re(q) = Re(q^{-1});\enspace Im(q) = -Im(q^-1) + \mathbf{v}'' = \mathbf{qvq}^{-1}, \end{split} \end{align} -Es ist wichtig bei Quaternionen für eine reine Drehstreckung mit $q$ und $q^{-1}$ beidseitig zu multiplizieren, sonst werden die senkrechten Anteile zu den Bivektorebenen ebenfalls beeinflusst, wie man im Kapitel Rotation bei der Formel (\ref{RotAufPerpPar}) sehen kann - -\subsection{Gimbal-Lock und Interpolation} +wobei wie auch schon bei den Quaternionen gelten muss, dass +\begin{align} \label{GAReIm} + \operatorname{Re}(\mathbf{q}) = \operatorname{Re}(\mathbf{q}^{-1}) \enspace\text{und}\enspace \operatorname{Im}(\mathbf{q}) = -\operatorname{Im}(\mathbf{q}^-1). +\end{align} +Der Grund für die Zusammenhänge \eqref{GAReIm} kann man durch die hergeleitete vereinfachte Rotationsformel \eqref{GAvereinfRot} sehen, weil durch den negierten Winkel $\theta$ der Reelle bzw. Grad 0 Anteil +\begin{align} + \operatorname{Re}(e^{-\theta \mathbf{e}_{12}}) = \operatorname{Re}(e^{\theta \mathbf{e}_{12}}) +\end{align} +und der Imaginäre bzw. Grad 2 Anteil +\begin{align} + \operatorname{Im}(e^{-\theta \mathbf{e}_{12}}) = -\operatorname{Im}(e^{\theta \mathbf{e}_{12}}) +\end{align} +ist. Durch die geometrische Algebra sieht man nun wieso es wichtig ist bei Quaternionen für eine reine Drehstreckung mit $\mathbf{q}$ und $\mathbf{q}^{-1}$ beidseitig zu multiplizieren, sonst werden die senkrechten Anteile zu den Bivektorebenen ebenfalls beeinflusst, wie man im Kapitel Rotation bei der Formel (\ref{RotAufPerpPar}) sehen kann. +\begin{beispiel} + Eine Drehung eines Vektors $\mathbf{v}= 1\mathbf{e}_2$ um 90 Grad um die $\mathbf{e}_1$-Achse und danach 90 Grad um die $\mathbf{e}_2$-Achse. Dafür nehmen wir zuerst einen Einheitsquaternion + \begin{align} + \mathbf{q}_{23} &= \cos(\pi/4) + sin(\pi/4)(1\mathbf{e}_{23}) = e^{(\pi/4)\mathbf{e}_{23}} &= \textstyle{\frac{\sqrt{2}}{2}}(1 + \mathbf{e}_{23})\\ + \mathbf{q}_{23}^{-1} &&= \textstyle{\frac{\sqrt{2}}{2}} (1- \mathbf{e}_{23}) + \end{align} + welcher um die $\mathbf{e}_{2}$-$\mathbf{e}_{3}$-Ebene um 90 Grad dreht und danach Einheitsquaternion + \begin{align} + \mathbf{q}_{31} &= \cos(\pi/4) + sin(\pi/4)(1\mathbf{e}_{31}) = e^{(\pi/4)\mathbf{e}_{31}} &= \textstyle{\frac{\sqrt{2}}{2}}(1 + \mathbf{e}_{31})\\ + \mathbf{q}_{31}^{-1} &&= \textstyle{\frac{\sqrt{2}}{2}}(1 - \mathbf{e}_{31}) + \end{align} + welcher um die $\mathbf{e}_{3}$-$\mathbf{e}_{1}$-Ebene um 90 Grad dreht. Um die vollständige Rotation zu beschreiben können die Einheitsquaternion multipliziert werden, wobei die Reihenfolge der Ausführung beachtet werden muss. Somit ist + \begin{align} \label{FormelBeispielQuaternion} + \mathbf{q} &= \mathbf{q}_{31}\mathbf{q}_{23} = \textstyle{\frac{\sqrt{2}}{2}}(1 + \mathbf{e}_{31})\textstyle{\frac{\sqrt{2}}{2}}(1 + \mathbf{e}_{23}) &= \textstyle{\frac{1}{2}}(1 + \mathbf{e}_{31} + \mathbf{e}_{23} + \mathbf{e}_{12})\\ + \mathbf{q}^{-1} &= \mathbf{q}_{23}^{-1}\mathbf{q}_{31}^{-1} = \textstyle{\frac{\sqrt{2}}{2}} (1- \mathbf{e}_{23})\textstyle{\frac{\sqrt{2}}{2}}(1 -\mathbf{e}_{31}) &= \textstyle{\frac{1}{2}}(1 - \mathbf{e}_{31} - \mathbf{e}_{23} - \mathbf{e}_{12}). + \end{align} + Wenn wir nun den Quaternion $\mathbf{q}$ auf den Vektor $\mathbf{v}$ anwenden + \begin{align} + \mathbf{v}'' = \mathbf{qvq}^{-1} &= \textstyle{\frac{1}{2}}(1 + \mathbf{e}_{31} + \mathbf{e}_{23} + \mathbf{e}_{12})(1\mathbf{e}_2)\textstyle{\frac{1}{2}}(1 - \mathbf{e}_{31} - \mathbf{e}_{23} - \mathbf{e}_{12})\\ + &= \textstyle{\frac{1}{4}}(\mathbf{e}_2 + \mathbf{e}_{123} - \mathbf{e}_3 + \mathbf{e}_1)(1 - \mathbf{e}_{31} - \mathbf{e}_{23} - \mathbf{e}_{12})\\ + &= (\textstyle{\frac{1}{4}} + \textstyle{\frac{1}{4}} + \textstyle{\frac{1}{4}} + \textstyle{\frac{1}{4}})\mathbf{e}_1 + (\textstyle{\frac{1}{4}} + \textstyle{\frac{1}{4}} - \textstyle{\frac{1}{4}} - \textstyle{\frac{1}{4}})\mathbf{e}_2 +\\ &(-\textstyle{\frac{1}{4}} + \textstyle{\frac{1}{4}} - \textstyle{\frac{1}{4}} + \textstyle{\frac{1}{4}})\mathbf{e}_3 + (\textstyle{\frac{1}{4}} - \textstyle{\frac{1}{4}} - \textstyle{\frac{1}{4}} + \textstyle{\frac{1}{4}})\mathbf{e}_{123}\\ + &= 1e_1 + \end{align} + Anders betrachtet könnte man von der Formel \eqref{FormelBeispielQuaternion} sehen, dass der Drehwinkel + \begin{align} + \alpha = \arccos(w) = \arccos(\textstyle{\frac{1}{2}}) = 60° + \end{align} + und die Ebene der kombinierten Bivektoren wie in Abbildung \ref{BildQuaternionBeispiel2} aussieht. + Somit kann man sich ebenfalls Vorstellen, wie der parallele Anteil zur Ebene insgesamt um 120° rotiert wird während der senkrechte Anteil unverändert bleibt +\end{beispiel} -\subsection{Fazit} -andere Darstellungsweise. Besser für Verständnis => komplexe Zahlen erscheinen ähnlicher zu Quaternionen? Eine Sprache für alle Geometrische Probleme +\begin{figure} + \centering + \begin{tikzpicture} + % q Quaternion + \draw[line width=0,fill=blue!40] (-0.75,-1)--(1.5,-0.5)--(0.55,1.35)--(-1.5,1) + node[xshift=0.375cm, yshift=-0.5cm, blue]{$\boldsymbol{q}$}; + \draw[->] (-0.7, 0.5) arc (310:0:0.15); + + % Koordinatensystem + \draw[thin,gray!40] (-3,-2) grid (3,3); + \draw[<->] (-3,0)--(3,0) node[right]{$a_1$}; + \draw[<->] (0,-2)--(0,3) node[above]{$a_2$}; + \draw[<->] (3,3)--(-2,-2) node[left]{$a_3$}; + + % Basisvektoren + \draw[line width=1.5pt,gray,-stealth](0,0)--(2,0) node[anchor=south west]{$\boldsymbol{e_1}$}; + \draw[line width=1.5pt,gray,-stealth](0,0)--(0,2) node[anchor=north west, yshift=0.2cm]{$\boldsymbol{e_2}$}; + \draw[line width=1.5pt,gray,-stealth](0,0)--(-1.41,-1.41) node[anchor=south, yshift=0.2cm]{$\boldsymbol{e_3}$}; + + % v Vektor + \draw[line width=2pt,black,-stealth](-0.05,0)--(-0.05,2) node[anchor=east]{$\boldsymbol{v}$}; + % vpar Vektor + \draw[line width=2pt,red,-stealth](0,0)--(-0.33,1.25) node[anchor=east]{$\boldsymbol{v_{\parallel}}$}; + % vperp Vektor + \draw[line width=2pt,green,-stealth](-0.33,1.25)--(0,2) node[anchor=east, xshift = -0.05, yshift = -0.3cm]{$\boldsymbol{v_{\perp}}$}; + % v'' Vektor + \draw[line width=2pt,black,-stealth](0,0.05)--(2,0.05) node[anchor=north, xshift = 0.25cm]{$\boldsymbol{v}''$}; + % vpar'' Vektor + \draw[line width=2pt,red,-stealth](0,0)--(1.66,-0.75) node[anchor=east, yshift = -0.2cm, xshift = -0.1cm]{$\boldsymbol{v_{\parallel}''}$}; + % vperp'' Vektor + \draw[line width=2pt,green,-stealth](1.66,-0.75)--(2,0) node[anchor=east, xshift = 0.5cm, yshift = -0.65cm]{$\boldsymbol{v_{\perp}''}$}; + + \coordinate (A) at (0,0); + \coordinate (B) at (-0.33,1.25); + \coordinate (C) at (1.66,-0.75); + \tikzset{anglestyle/.style={angle eccentricity=2, draw, thick, angle radius=0.75cm, purple}} + \draw pic ["120° $=2\alpha$", anglestyle] {angle = C--A--B}; + \end{tikzpicture} + \caption{Beim Beispiel wird der parallele Anteil um 120° gedreht während der senkrechte Anteil zur kombinierten Ebene (Bivektoraddition) gleich bleibt} + \label{BildQuaternionBeispiel2} +\end{figure} -\begin{tikzpicture} - \draw[thin,gray!40] (-3,-3) grid (3,3); - \draw[<->] (-3,0)--(3,0) node[right]{$x$}; - \draw[<->] (0,-3)--(0,3) node[above]{$y$}; - \draw[line width=2pt,blue,-stealth](0,0)--(1,1) node[anchor=south west]{$\boldsymbol{u}$}; - \draw[line width=2pt,red,-stealth](0,0)--(-1,-1) node[anchor=north east]{$\boldsymbol{-u}$}; -\end{tikzpicture}
\ No newline at end of file +\subsection{Interpolation} +In der Computergrafik wird Interpolation verwendet, um eine flüssige Drehbewegung zu erreichen. Dabei wird die gewünschte Drehbewegungen des Objektes in kleinere aufgeteilt. Man kann dabei mit zwei verschiedenen Systemen arbeiten. +\begin{itemize} + \item Mit den Eulerschen Winkeln, welche für die Meisten zwar intuitiver sind, aber dafür Nachteile haben, worauf ich in diesem Abschnitt eingehen werde. Dabei kann eine ganze Drehbewegung $\mathbf{v}'' = R\mathbf{v}$ durch die Drehmatrix $R$ + \begin{align} + \begin{split} + &R = R_z(\gamma) R_y(\beta) R_x(\alpha)\\ + &R = + \begin{pmatrix} + \cos(\gamma) & -\sin(\gamma) & 0\\ \sin(\gamma) & \cos(\gamma) & 0 \\ 0 & 0 & 1 + \end{pmatrix} + \begin{pmatrix} + \cos(\beta) & 0 & \sin(\beta)\\ 0 & 1 & 0 \\ -\sin(\beta) & 0 & \cos(\beta) + \end{pmatrix} + \begin{pmatrix} + 1 & 0 & 0 \\ 0 & \cos(\alpha) & -\sin(\alpha)\\ 0 & \sin(\alpha) & \cos(\alpha) + \end{pmatrix} + \end{split} + \end{align} + dargestellt werden. Wichtig dabei zu sehen ist, dass die Drehbewegungen durch die einzelnen Matrizen nacheinander ausgeführt werden. Das bedeutet, wenn man die Reihenfolge vertauscht, bekommt man eine völlig andere Drehung. Man kann die Auswirkungen der Reihenfolge gut bei einem Gimbal (REF zu BILD) sehen. Die Matrix ganz links ist die, welche als letztes Angewendet wird. Somit bildet sie die Drehung des äusseren Rings, welche auch die zwei inneren Ringe und das Objekt mitdreht. Die Matrix ganz rechts hingegen bildet nur die Drehung des inneren Rings, welche nur das Objekt selber dreht. Man kann dabei erkennen, dass vorgehen dabei sehr intuitiv ist, aber es kompliziert sein kann eine gewünschte Drehbewegung auszuführen, da sich beim Drehen der äusseren Achse, sich auch die Inneren drehen. Das bedeutet, wenn man sich eine Drehbewegung um die anfängliche x Achse mit $R_x(\alpha_2)$ wünscht, und vorher eine beliebige Drehung $R = R_z(\gamma_1) R_y(\beta_1) R_x(\alpha_1)$ ausgeführt hat, bekommt man nicht das richtige Ergebnis, da die anfängliche x-Achse durch die Drehmatrizen $R_z(\gamma_1)$ und $R_y(\beta_1)$ zu einer neuen, lokalen x-Achse wurde. + \item Andererseits mit den Quaternionen, welche die besondere Eigenschaft haben, dass eine Drehung immer um die globale Achsen ausgeführt wird, egal in welcher Rotationsposition sich das Objekt befindet. +\end{itemize} +Für Spielentwickler ist es darum meist sinnvoller Quaternionen für Drehbewegungen anzuwenden, als sich mit komplizierten Berechnungen mit Eulerschen Winkeln herumzuschlagen. +\subsection{Gimbal-Lock} +Ein weiterer Nachteil der Eulerschen Winkel ist das Gimbal-Lock. Es entsteht dann, wenn der äussere Ring Deckungsgleich über denn Inneren gedreht wird. Dabei verliert das Gimbal eine Drehrichtung, da der äussere und Innere Ring nun die gleiche Drehrichtung besitzen. Dies kann beispielsweise Probleme bei Spielen bei der Berechnung der Interpolation führen. Man hat das bei älteren Spielen dann gesehen, wenn plötzlich Gliedmassen bei den Spielermodellen in unnatürlichen Richtungen gesprungen sind.
\ No newline at end of file diff --git a/buch/papers/clifford/11_Fazit.tex b/buch/papers/clifford/11_Fazit.tex new file mode 100644 index 0000000..7352399 --- /dev/null +++ b/buch/papers/clifford/11_Fazit.tex @@ -0,0 +1,9 @@ +% +% teil3.tex -- Beispiel-File für Teil 3 +% +% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% +\section{Fazit} +\rhead{Fazit} + +Die geometrische Algebra ist dafür ausgelegt geometrische Operationen, wie die Spiegelung oder Rotation, einfach zu beschreiben. Dadurch kann sie als gute alternative zu der linearen Algebra angewendet werden, um graphische Probleme zu lösen. Sie kann zudem zum Verständnis hinter der Rotierenden Eigenschaften der komplexen Zahlen und Quaternionen beitragen und die Zusammenhänge zwischen den komplexen Zahlen und den Quaternionen besser zeigen.
\ No newline at end of file diff --git a/buch/papers/clifford/1_Vektordarstellung.tex b/buch/papers/clifford/1_Vektordarstellung.tex index 88a5789..ac00a33 100644 --- a/buch/papers/clifford/1_Vektordarstellung.tex +++ b/buch/papers/clifford/1_Vektordarstellung.tex @@ -1,7 +1,7 @@ \section{Vektoroperationen\label{clifford:section:Vektoroperationen}} \rhead{Vektoroperationen} \subsection{Vektordarstellung\label{clifford:section:Vektordarstellung}} -Vektoren können neben der üblichen Darstellung, auch als Linearkombination aus Basisvektoren dargestellt werden +Vektoren können neben der üblichen Spaltendarstellung, auch als Linearkombination aus Basisvektoren \begin{equation} \begin{split} \textbf{a} @@ -31,12 +31,14 @@ Vektoren können neben der üblichen Darstellung, auch als Linearkombination aus \sum_{i=1}^{n} a_i \textbf{e}_i \qquad a_i \in \mathbb{R} - , \textbf{e}_i \in \mathbb{R}^n. + , \textbf{e}_i \in \mathbb{R}^n \end{split} \end{equation} -Diese Basisvektoren sollen orthonormal sein und um die Darstellung zu vereinfachen werden sie durch $\textbf{e}_1 , \textbf{e}_2, ...$ ersetzt. +dargestellt werden. +Diese Basisvektoren werden so gewählt, dass sie orthonormal sind. +Um die Darstellung zu vereinfachen werden sie durch $\textbf{e}_1 , \textbf{e}_2, \dots$ ersetzt. \begin{beispiel} -Linearkombination von Basisvektoren in $\mathbb{R}^4$ +Eine Linearkombination von Basisvektoren in $\mathbb{R}^4$ könnte wie folgt aussehen \begin{equation} \begin{pmatrix} 42 \\ 2 \\ 1291 \\ 4 @@ -65,7 +67,7 @@ Linearkombination von Basisvektoren in $\mathbb{R}^4$ + 1291\textbf{e}_3 + - 4\textbf{e}_4 + 4\textbf{e}_4. \end{equation} +Dieses Beispiel ist für einen vier dimensionalen Vektor, dies kann selbstverständlich für beliebig viele Dimensionen nach demselben Schema erweitert werden. \end{beispiel} -Wobei Beispiel für einen vier dimensionalen Vektor ist, dies kann selbstverständlich für beliebig viele Dimensionen nach demselben Schema erweitert werden.
\ No newline at end of file diff --git a/buch/papers/clifford/2_QuadratVektoren.tex b/buch/papers/clifford/2_QuadratVektoren.tex index cfb05d6..6c6fb7d 100644 --- a/buch/papers/clifford/2_QuadratVektoren.tex +++ b/buch/papers/clifford/2_QuadratVektoren.tex @@ -1,54 +1,71 @@ \subsection{Quadrat von Vektoren} -Was eine Addition von Vektoren bedeutet ist sehr intuitiv und auch leicht geometrisch darzustellen, was allerdings das Produkt von Vektoren ergibt mag anfänglich unintuitiv wirken. +\subsubsection{Ziel der Multiplikation} +Was eine Addition von Vektoren bedeutet ist sehr intuitiv und auch leicht geometrisch darzustellen wie in Abbildung \ref{figure:addition}, was allerdings das Produkt von Vektoren ergibt mag anfänglich unintuitiv wirken. +\begin{figure}[htb] + \centering + \begin{tikzpicture} + \draw[thin,gray!40] (0,0) grid (4,4); + \draw[blue,thick,->] (0,0)--(3.5,2) node[midway,above,sloped] {$\textbf{a}$}; + \draw[red,thick,->] (3.5,2)--(1.5,3.8) node[midway,above,sloped] {$\textbf{b}$}; + \draw[black,thick,->] (0,0)--(1.5,3.8)node[midway,above,sloped] {$\textbf{a} +\textbf{b} = \textbf{c} $}; + \end{tikzpicture} + \caption{Addition von zwei Vektoren\label{figure:addition}} +\end{figure} Was soll es schon heissen zwei Vektoren miteinander zu multiplizieren? -\newline Im Folgenden werden wir versuchen diese Operation ähnlich intuitiv darzustellen. -\newline -Um sinnvoll eine neue Operation zwischen zwei Elementen einer Algebra, in diesem Fall Vektoren, zu definieren, muss man überlegen, was das Ziel dieser Operation ist. -Als grundsätzliches Ziel wird definiert, dass das Quadrat eines Vektor dessen Länge im Quadrat ergibt, da dies auch in vielen anderen Bereichen der Mathematik,zum Beispiel bei komplexen Zahlen, auch so definiert ist. -\newline -Zusätzlich wollen wir auch das Assoziativgesetz und das Kommutativgesetz für Skalare beibehalten. Wobei das Kommutativgesetz leider, oder wie man sehen wird zum Glück, in der geometrischen Algebra im generellen nicht mehr gilt. Das heisst wir dürfen ausklammern \ref{eq:assoziativ} und die Position von Skalaren im Produkt ändern \ref{eq:kommSkalar}, allerdings nicht die Position der Vektoren \ref{eq:kommVector}. + +Um sinnvoll eine neue Operation zwischen zwei Elementen einer Algebra, in diesem Fall sind diese Elemente Vektoren, zu definieren, muss man überlegen, was das Ziel dieser Operation sein soll. + +Als grundsätzliches Ziel wird definiert, dass das Quadrat eines Vektor dessen Länge im Quadrat ergibt, da dies auch in vielen anderen Bereichen der Mathematik,zum Beispiel bei komplexen Zahlen,so definiert ist. + +Zusätzlich soll auch das Assoziativgesetz für die Multiplikation von Vektoren gelten, dass heisst wir dürfen ausklammern \begin{equation} \label{eq:assoziativ} \textbf{e}_i(\textbf{e}_j + \textbf{e}_k) = - \textbf{e}_i\textbf{e}_j + \textbf{e}_i\textbf{e}_k + \textbf{e}_i\textbf{e}_j + \textbf{e}_i\textbf{e}_k. \end{equation} +Allerdings gilt das Kommutativgesetz leider, oder wie man sehen wird zum Glück, nur für skalare Elemente \begin{equation} \label{eq:kommSkalar} a\textbf{e}_ib\textbf{e}_j = - ab\textbf{e}_i\textbf{e}_j + ab\textbf{e}_i\textbf{e}_j \qquad a,b \in \mathbb{R} \end{equation} +und nicht für Vektoren \begin{equation} \label{eq:kommVector} \textbf{e}_i\textbf{e}_j \neq - \textbf{e}_j\textbf{e}_i + \textbf{e}_j\textbf{e}_i. +\end{equation} +\subsubsection{Quadrieren eines Vektors} +Betrachten wir nun mit diesen Regeln das Quadrat eines Vektors. Zuerst werden die Vektoren als Linearkombinationen geschrieben +\begin{equation} + \textbf{a}^2 = + \left ( + \sum_{i=1}^{n} a_i \textbf{e}_i + \right ) + \left ( + \sum_{i=1}^{n} a_i \textbf{e}_i + \right ) + \label{eq:quad_a_1}. +\end{equation} +Das Quadrat kann nun in zwei Summen aufgeteilt werden +\begin{equation} + \textbf{a}^2 = + \textcolor{red}{\sum_{i=1}^{n} a_i^2\textbf{e}_i^2} + + + \textcolor{blue}{\sum_{\begin{subarray}{l}i,j=1\\i \neq j\end{subarray}}^n a_ia_j\textbf{e}_i\textbf{e}_j } + \label{eq:quad_a_2}, +\end{equation} +wobei die roten Summe die quadrierten Terme und die blaue Summe die Mischterme beinhaltet. Da $\textbf{e}_i^2 = 1$ gilt, weil das zuvor definierte Ziel des Quadrates eines Vektors dessen Länge ergibt und die Basisvektoren Länge 1 haben, wird dies nun eingesetzt +\begin{equation} + \textbf{a}^2 = \textcolor{cyan}{\sum_{i=1}^{n} a_i^2} + \textcolor{orange}{\sum_{\begin{subarray}{l}i,j=1\\i \neq j\end{subarray}}^n a_ia_j\textbf{e}_i\textbf{e}_j}. + \label{eq:quad_a_3} \end{equation} -Betrachten wir nun mit diesen Regeln das Quadrat eines Vektors. -\begin{align} - \textbf{a}^2 &= - \left ( - \sum_{i=1}^{n} a_i \textbf{e}_i - \right ) - \left ( - \sum_{i=1}^{n} a_i \textbf{e}_i - \right ) - \label{eq:quad_a_1} - \\ - &= - \textcolor{red}{\sum_{i=1}^{n} a_i^2\textbf{e}_i^2} - + - \textcolor{blue}{\sum_{\begin{subarray}{l}i,j=1\\i \neq j\end{subarray}}^n a_ia_j\textbf{e}_i\textbf{e}_j } - \label{eq:quad_a_2} - \\ - &= \textcolor{cyan}{\sum_{i=1}^{n} a_i^2} + \textcolor{orange}{\sum_{\begin{subarray}{l}i,j=1\\i \neq j\end{subarray}}^n a_ia_j\textbf{e}_i\textbf{e}_j}. - \label{eq:quad_a_3} -\end{align} - \begin{beispiel} -Quadrat eines Vektors in $\mathbb{R}^2$ +Das Quadrat des Vektor $a$ in $\mathbb{R}^2$ ist \begin{equation} \begin{split} \textbf{a}^2 @@ -56,22 +73,17 @@ Quadrat eines Vektors in $\mathbb{R}^2$ &= \textcolor{red}{a_1^2\textbf{e}_1^2 + a_2^2\textbf{e}_2^2} + \textcolor{blue}{a_1\textbf{e}_1a_2\textbf{e}_2 + a_2\textbf{e}_2a_1\textbf{e}_2} \\\ & = \textcolor{cyan}{a_1^2 + a_2^2} + \textcolor{orange}{a_1b\textbf{e}_1a_2\textbf{e}_2 + a_2\textbf{e}_2a_1\textbf{e}_2} - \end{split} + \end{split}. \end{equation} - \end{beispiel} -Der Vektor wird in \ref{eq:quad_a_1} als Linearkombination geschrieben. -Das Quadrat kann, wie in \ref{eq:quad_a_2} gezeigt, in zwei Summen aufteilen werden , wobei die roten Summe die quadrierten Terme und die blaue Summe die Mischterme beinhaltet. -\newline -Da $\textbf{e}_i^2 = 1$ gilt, da zuvor vorausgesetzt wurde, dass man mit orthonormalen Einheitsvektoren arbeitet, wird dies nun eingesetzt ergibt sich \ref{eq:quad_a_3} -\newline -Die hellblaue Teil ist nun bereits Länge im Quadrat eines Vektors, also das Ziel der Multiplikation. -Daher muss der restliche Teil dieser Gleichung null ergeben. -Aus dieser Erkenntnis leiten wir in \ref{eq:Mischterme_Null} weitere Eigenschaften für die Multiplikation her. + +Die hellblaue Teil ist nun bereits die Länge im Quadrat, also das zuvor definierte Ziel der Multiplikation. +Daraus lässt sich schliessen, dass der restliche Teil dieser Gleichung null ergeben muss \begin{equation} \label{eq:Mischterme_Null} - \sum_{\begin{subarray}{l}i,j=1\\i \neq j\end{subarray}}^n a_ia_j\textbf{e}_i\textbf{e}_j = \textcolor{blue}{a_1a_2(\textbf{e}_1\textbf{e}_2 + \textbf{e}_2\textbf{e}_1)} + a_1a_3(\textbf{e}_1\textbf{e}_3 + \textbf{e}_3\textbf{e}_1) + \dots = 0 + \sum_{\begin{subarray}{l}i,j=1\\i \neq j\end{subarray}}^n a_ia_j\textbf{e}_i\textbf{e}_j = \textcolor{blue}{a_1a_2(\textbf{e}_1\textbf{e}_2 + \textbf{e}_2\textbf{e}_1)} + a_1a_3(\textbf{e}_1\textbf{e}_3 + \textbf{e}_3\textbf{e}_1) + \dots = 0. \end{equation} +Aus dieser Erkenntnis können weitere Eigenschaften für die Multiplikation hergeleitet werden. Da dies für beliebige $a_i$ gelten muss werden alle Terme bis auf $a_1$ und $a_2$ gleich null gesetzt. Somit fallen alle Terme bis auf den blauen weg. Wird dies weiter vereinfacht ergibt sich \begin{equation} \begin{split} @@ -81,15 +93,13 @@ Da dies für beliebige $a_i$ gelten muss werden alle Terme bis auf $a_1$ und $a_ \end{split} \end{equation} \begin{satz} - Die Multiplikation von Vektoren ist antikommutativ, wenn die multiplizierten Vektoren orthogonal sind. + Die Multiplikation von Vektoren ist antikommutativ, wenn die multiplizierten Vektoren orthogonal sind, es gilt also \begin{equation} - \textbf{e}_i\textbf{e}_j = -\textbf{e}_j\textbf{e}_i \qquad \textbf{e}_i \perp \textbf{e}_j + \textbf{e}_i\textbf{e}_j = -\textbf{e}_j\textbf{e}_i \quad \textrm{für} \quad \textbf{e}_i \perp \textbf{e}_j. \end{equation} \end{satz} -Dieses Wissen reicht nun bereits um alle Produkte der Basisvektoren zu berechnen, was in \ref{tab:multip_vec} gemacht wurde. +Dieses Wissen reicht nun bereits um alle Produkte der Basisvektoren zu berechnen, was in Tabelle \ref{tab:multip_vec} gemacht wurde. \begin{table} -\caption{Multiplikationstabelle für Vektoren} -\label{tab:multip_vec} \begin{center} \begin{tabular}{ |c|c|c|c|c|c| } \hline @@ -107,4 +117,6 @@ Dieses Wissen reicht nun bereits um alle Produkte der Basisvektoren zu berechnen \hline \end{tabular} \end{center} +\caption{Multiplikationstabelle für Vektoren} +\label{tab:multip_vec} \end{table}
\ No newline at end of file diff --git a/buch/papers/clifford/3_MultiplikationVektoren.tex b/buch/papers/clifford/3_MultiplikationVektoren.tex index 841dde4..0969b89 100644 --- a/buch/papers/clifford/3_MultiplikationVektoren.tex +++ b/buch/papers/clifford/3_MultiplikationVektoren.tex @@ -1,11 +1,14 @@ \subsection{Multiplikation von Vektoren} -Was geschieht nun wenn zwei beliebige Vektoren,$u$ und $v$, miteinander multipliziert werden? +Was geschieht nun wenn zwei beliebige Vektoren, $u$ und $v$ \begin{equation} \textbf{u} = \sum_{i=1}^{n} u_i \textbf{e}_i \qquad \textbf{v} = \sum_{i=1}^{n} v_i \textbf{e}_i \end{equation} + miteinander multipliziert werden? + + Wieder werden die Vektoren zuerst als Linearkombinationen darstellen und danach in zwei Summen aufgeteilt, eine Summe mit quadrierten Termen und eine Summe mit Mischtermen \begin{equation} \begin{split} \textbf{u}\textbf{v} @@ -18,12 +21,12 @@ Was geschieht nun wenn zwei beliebige Vektoren,$u$ und $v$, miteinander multipli \right) = \sum_{i=1}^n u_iv_i\underbrace{\textbf{e}_i^2}_{1} - + \sum_{\begin{subarray}{l}i,j=1\\i \neq j\end{subarray}}^n u_iv_j\textbf{e}_i\textbf{e}_j + + \sum_{\begin{subarray}{l}i,j=1\\i \neq j\end{subarray}}^n u_iv_j\textbf{e}_i\textbf{e}_j, \end{split} \end{equation} +wobei die Summe der quadrierten Termen bereits bekannt vorkommen könnte, es ist nämlich das Skalarprodukt von $u$ und $v$. Die Summe der Mischterme bilden etwas neues, dass wir das äussere Produkt von $u$ und $v$ nennen. \begin{beispiel} Multiplikation von Vektoren in $\mathbb{R}^2$ -\end{beispiel} \begin{equation} \begin{split} \textbf{u}\textbf{v} @@ -44,7 +47,7 @@ Was geschieht nun wenn zwei beliebige Vektoren,$u$ und $v$, miteinander multipli \underbrace{(u_1v_2 - u_2v_1)\textbf{e}_1\textbf{e}_2}_{\text{Äusseres Produkt}} \end{split} \end{equation} -Der linke Teil dieser Multiplikation ergibt das Skalarprodukt der zwei Vektoren, der rechte Term ergibt etwas neues das sich das äussere Produkt der zwei Vektoren nennt. +\end{beispiel} \subsubsection{Äusseres Produkt} Das äussere Produkt von zwei Vektoren wird mit einem $\wedge$ dargestellt \begin{equation} @@ -53,123 +56,118 @@ Das äussere Produkt von zwei Vektoren wird mit einem $\wedge$ dargestellt \sum_{\begin{subarray}{l}i,j=1\\i \neq j\end{subarray}}^n u_iv_j\textbf{e}_i\textbf{e}_j \end{equation} \begin{beispiel} -Äusseres Produkt von zwei Vektoren in $\mathbb{R}^3$ -\end{beispiel} +Das äusseres Produkt von zwei Vektoren in $\mathbb{R}^3$ ist \begin{equation} - \begin{split} - u \wedge v - &= - u_1v_2\textbf{e}_1\textbf{e}_2 - + - u_1v_3\textbf{e}_1\textbf{e}_3 - + - u_2v_2\textbf{e}_2\textbf{e}_3 - + - u_2v_1\textbf{e}_2\textbf{e}_1 - + - u_3v_1\textbf{e}_3\textbf{e}_1 - + - u_3v_2\textbf{e}_3\textbf{e}_2 \\\ - &= - (u_1v_2 - u_2v_1)\textbf{e}_1\textbf{e}_2 - + - (u_1v_3 - v_3u_1)\textbf{e}_1\textbf{e}_3 - + - (u_2v_3 - u_3v_2)\textbf{e}_2\textbf{e}_3 - \end{split} + \begin{split} + u \wedge v + &= + u_1v_2\textbf{e}_1\textbf{e}_2 + + + u_1v_3\textbf{e}_1\textbf{e}_3 + + + u_2v_2\textbf{e}_2\textbf{e}_3 + + + u_2v_1\textbf{e}_2\textbf{e}_1 + + + u_3v_1\textbf{e}_3\textbf{e}_1 + + + u_3v_2\textbf{e}_3\textbf{e}_2 \\\ + &= + (u_1v_2 - u_2v_1)\textbf{e}_1\textbf{e}_2 + + + (u_1v_3 - v_3u_1)\textbf{e}_1\textbf{e}_3 + + + (u_2v_3 - u_3v_2)\textbf{e}_2\textbf{e}_3. + \end{split} \end{equation} -Im letzten Schritt des Beispiels wurden nun, mit Hilfe der antikommutativität des Produkts, die Vektorprodukte, welche die gleichen Einheitsvektoren beinhalten, zusammengefasst. Dieses Vorgehen kann man auch allgemein anwenden, wie in den Gleichungen \ref{eq:u_wedge_v}-\ref{eq:u_wedge_v_5} hergeleitet. +\end{beispiel} + +Im letzten Schritt des Beispiels wurden nun, mit Hilfe der antikommutativität des Produkts, die Vektorprodukte, welche die gleichen Einheitsvektoren beinhalten, zusammengefasst. Dieses Vorgehen kann man auch allgemein anwenden, wie in den Gleichungen \eqref{eq:u_wedge_v}-\eqref{eq:u_wedge_v_5} hergeleitet. Die Summe, \begin{align} \textbf{u}\wedge \textbf{v} &= \sum_{\begin{subarray}{l}i,j=1\\i \neq j\end{subarray}}^n - u_iv_j\textbf{e}_i\textbf{e}_j + u_iv_j\textbf{e}_i\textbf{e}_j, \label{eq:u_wedge_v} - \\ + \intertext{wird in zwei verschiedene Summen aufgeteilt. + Wobei die linke Summe jeweils den Basisvektor mit dem höheren Index an erster Stelle und die rechte Summe diesen jeweils an zweiter Stelle hat} \label{eq:u_wedge_v_1} &= \sum_{\begin{subarray}{l}i,j=1\\i < j\end{subarray}}^n u_iv_j\textbf{e}_i\textbf{e}_j + - \sum_{\begin{subarray}{l}i,j=1\\j < i\end{subarray}}^n u_iv_j\textbf{e}_i\textbf{e}_j - \\ + \sum_{\begin{subarray}{l}i,j=1\\j < i\end{subarray}}^n u_iv_j\textbf{e}_i\textbf{e}_j. + \intertext{Nun werden die Indexe der zweiten Summe vertauscht} \label{eq:u_wedge_v_2} &= \sum_{\begin{subarray}{l}i,j=1\\i < j\end{subarray}}^n u_iv_j\textbf{e}_i\textbf{e}_j + - \sum_{\begin{subarray}{l}i,j=1\\i < j\end{subarray}}^n u_jv_i\textbf{e}_j\textbf{e}_i - \\ - \label{eq:u_wedge_v_3} + \sum_{\begin{subarray}{l}i,j=1\\i < j\end{subarray}}^n u_jv_i\textbf{e}_j\textbf{e}_i, + \intertext{und diese wird nun mit Hilfe der Antikommutativität umgeformt zu} &= \sum_{\begin{subarray}{l}i,j=1\\i < j\end{subarray}}^n u_iv_j\textbf{e}_i\textbf{e}_j - - \sum_{\begin{subarray}{l}i,j=1\\i < j\end{subarray}}^n u_jv_i\textbf{e}_i\textbf{e}_j - \\ + \sum_{\begin{subarray}{l}i,j=1\\i < j\end{subarray}}^n u_jv_i\textbf{e}_i\textbf{e}_j. + \intertext{Nun können die zwei Summen wieder zusammengefasst werden} \label{eq:u_wedge_v_4} &= - \sum_{\begin{subarray}{l}i,j=1\\i < j\end{subarray}}^n (u_iv_j -u_jv_i)\textbf{e}_i\textbf{e}_j - \\ - \label{eq:u_wedge_v_5} + \sum_{\begin{subarray}{l}i,j=1\\i < j\end{subarray}}^n (u_iv_j -u_jv_i)\textbf{e}_i\textbf{e}_j. + \intertext{Der Term in der Summe könnte einem bereits bekannt vorkommen, es ist nämlich die Determinante einer Matrix mit $u$ und $v$ als ihre Spalten} &= + \label{eq:u_wedge_v_5} \sum_{\begin{subarray}{l}i,j=1\\i < j\end{subarray}}^n \begin{vmatrix} u_i & v_i \\ u_j & v_j - \end{vmatrix}\textbf{e}_i\textbf{e}_j + \end{vmatrix}\textbf{e}_i\textbf{e}_j. \end{align} -Die Summe aus \ref{eq:u_wedge_v_1} wird in \ref{eq:u_wedge_v} in zwei verschiedene Summen aufgeteilt. -Wobei die linke Summe jeweils den Basisvektor mit dem höheren Index an erster Stelle und die rechte Summe diesen jeweils an zweiter Stelle hat. -\newline -Bei \ref{eq:u_wedge_v_2} werden die Indexe der zweiten Summe vertauscht, damit man nun bei beiden Teilen die gleiche Summe hat. -Danach werden in \ref{eq:u_wedge_v_3}, mit Hilfe der Antikommutativität, die Einheitsvektoren der zweiten Summe vertauscht. -\newline -Nun können die Summen, wie in \ref{eq:u_wedge_v_4} wieder in eine Summe zusammengefasst werden. -\newline -Der Term in der Klammer in \ref{eq:u_wedge_v_4} kann auch als Determinante einer 2x2 Matrix dargestellt werden, was in \ref{eq:u_wedge_v_5} gemacht wird. -\newline -Die Determinante einer Matrix beschreibt welche von den Spaltenvektoren aufgespannt wird, wie in Abbildung \ref{figure:det} dargestellt. -\begin{figure} -\centering -\begin{tikzpicture} - \draw[thin,gray!40] (0,0) grid (4,4); - \draw[<->] (0,0)--(4,0) ; - \draw[<->] (0,0)--(0,4) ; - \draw[line width=0,fill=gray!40] (0,0)--(3,1)--(4,3)--(1,2); - \draw[line width=2pt,blue,-stealth](0,0)--(3,1) node[anchor=north - west]{$\boldsymbol{u}$}; - \draw[line width=2pt,red,-stealth](0,0)--(1,2) node[anchor=south east]{$\boldsymbol{v}$}; - \draw[black] (2,1.5)--(-0.5,2.5) node[anchor = east]{$\begin{vmatrix} - u_i & v_i \\ - u_j & v_j - \end{vmatrix} = u_iv_j - v_iu_j$}; -\end{tikzpicture} -\caption{Geometrische Interpretation der Determinante einer 2x2 Matrix\label{figure:det}} +Die Determinante einer Matrix beschreibt die Fläche, welche von den Spaltenvektoren aufgespannt wird, wie in Abbildung \ref{figure:det} dargestellt. +\begin{figure}[htb] + \centering + \begin{minipage}[t]{.45\linewidth} + \centering + \begin{tikzpicture} + \draw[thin,gray!40] (0,0) grid (4,4); + \draw[<->] (0,0)--(4,0) ; + \draw[<->] (0,0)--(0,4) ; + \draw[line width=0,fill=gray!40] (0,0)--(3,1)--(4,3)--(1,2); + \draw[line width=2pt,blue,-stealth](0,0)--(3,1) node[anchor=north + west]{$\boldsymbol{u}$}; + \draw[line width=2pt,red,-stealth](0,0)--(1,2) node[anchor=south east]{$\boldsymbol{v}$}; + \draw[black] (2,1.5)--(1.8,3.2) node[anchor = south]{$\begin{vmatrix} + u_i & v_i \\ + u_j & v_j + \end{vmatrix} = u_iv_j - v_iu_j$}; + \end{tikzpicture} + \caption{Geometrische Interpretation der Determinante einer $2 \times 2$ Matrix\label{figure:det}} + \end{minipage}% + \hfill% + \begin{minipage}[t]{.45\linewidth} + \centering + \begin{tikzpicture} + \draw[thin,gray!40] (0,0) grid (4,4); + \draw[<->] (0,0)--(4,0) node[right]{$x$}; + \draw[<->] (0,0)--(0,4) node[above]{$y$}; + \draw[line width=0,fill=gray!40] (0,0)--(3,1)--(4,3)--(1,2); + \draw[line width=2pt,blue,-stealth](0,0)--(3,1) node[anchor=north + west]{$\boldsymbol{u}$}; + \draw[line width=2pt,red,-stealth](0,0)--(1,2) node[anchor=south east]{$\boldsymbol{v}$}; + \draw[->] (2.15,1.5) arc (0:310:0.3); + \draw[black] (2,1.5)--(2.5,3.2) node[anchor = south]{$u\wedge v = \begin{vmatrix} + u_i & v_i \\ + u_j & v_j + \end{vmatrix} e_1e_2 = (u_iv_j - v_iu_j)\textbf{e}_1\textbf{e}_2$}; + \end{tikzpicture} + \caption{Geometrische Interpretation des äusseren Produktes \label{figure:wedge}} + \end{minipage} \end{figure} -\newline Das äussere Produkt besteht nun also aus der Summe - $\sum_{\begin{subarray}{l}i,j=1\\i < j\end{subarray}}^n$ + \(\sum_{\begin{subarray}{l}i,j=1\\i < j\end{subarray}}^n\) von Flächen - $\begin{vmatrix} - u_i & v_i \\ - u_j & v_j - \end{vmatrix}$, welche in $\textbf{e}_i\textbf{e}_j$ aufgespannt sind, wie man in \ref{eq:u_wedge_v_5} sieht. + \(\begin{vmatrix} + u_i & v_i \\ + u_j & v_j + \end{vmatrix}\) +, welche in $\textbf{e}_i\textbf{e}_j$ aufgespannt sind, wie man in \ref{eq:u_wedge_v_5} sieht. Dieses Produkt $\textbf{e}_i\textbf{e}_j$ der Basisvektoren interpretiert man als Umlaufrichtung. Wobei die gebildete Fläche in Richtung des ersten Vektors umschritten wird. -Dies ist in \ref{figure:wedge} dargestellt, wobei bei diesem Beispiel die Umlaufrichtung im Gegenuhrzeigersinn ist, da die Fläche in Richtung u umschritten wird. +Dies ist in Abbildung \ref{figure:wedge} dargestellt, wobei bei diesem Beispiel die Umlaufrichtung im Gegenuhrzeigersinn ist, da die Fläche in Richtung u umschritten wird. Diese Fläche mit einer Richtung nennt man in der geometrischen Algebra einen Bivektor, da er eine Art zwei dimensionaler Vektor ist. -\begin{figure} -\centering -\begin{tikzpicture} - \draw[thin,gray!40] (0,0) grid (4,4); - \draw[<->] (0,0)--(4,0) node[right]{$x$}; - \draw[<->] (0,0)--(0,4) node[above]{$y$}; - \draw[line width=0,fill=gray!40] (0,0)--(3,1)--(4,3)--(1,2); - \draw[line width=2pt,blue,-stealth](0,0)--(3,1) node[anchor=north - west]{$\boldsymbol{u}$}; - \draw[line width=2pt,red,-stealth](0,0)--(1,2) node[anchor=south east]{$\boldsymbol{v}$}; - \draw[->] (2.15,1.5) arc (0:310:0.3); - \draw[black] (2,1.5)--(-0.5,2.5) node[anchor = east]{$u\wedge v = \begin{vmatrix} - u_i & v_i \\ - u_j & v_j - \end{vmatrix} e_1e_2 = (u_iv_j - v_iu_j)\textbf{e}_1\textbf{e}_2$}; -\end{tikzpicture} -\caption{Geometrische Interpretation des äusseren Produkt in $\mathbb{R}^2$\label{figure:wedge}} -\end{figure}
\ No newline at end of file diff --git a/buch/papers/clifford/4_GeometrischesProdukt.tex b/buch/papers/clifford/4_GeometrischesProdukt.tex index a19e983..f18b90d 100644 --- a/buch/papers/clifford/4_GeometrischesProdukt.tex +++ b/buch/papers/clifford/4_GeometrischesProdukt.tex @@ -12,9 +12,9 @@ Ein Multivektor besteht aus den verschiedenen Bauteilen, wie zum Beispiel Vektor M = \sum \left ( \prod a_i\textbf{e}_j \right) \end{equation} \end{definition} -Besteht eine Clifford Algebra aus n Basisvektoren so hat sie n Dimensionen, dies wird nicht wie in der linearen Algebra mit $\mathbb{R}^n$ sondern mit $\mathbb{G}^n$ beschrieben. +Besteht eine Clifford Algebra aus n Basisvektoren so hat sie n Dimensionen, dies wird nicht wie in der linearen Algebra mit $\mathbb{R}^n$ sondern mit $G_n(\mathbb{R})$ beschrieben. Dies wird so geschrieben da man eine neue Algebrastruktur um die Vektoren einführt. \begin{beispiel} -Allgemeiner Multivektor in $\mathbb{G}^3$ +Allgemeiner Multivektor in $G_3(\mathbb{R})$ \begin{equation} M = a + @@ -26,34 +26,30 @@ Allgemeiner Multivektor in $\mathbb{G}^3$ \end{equation} \end{beispiel} \begin{definition} -Um das Produkt von Basisvektoren in Zukunft darzustellen wird folgende Notation definiert +Für das Produkt von Basisvektoren wird folgende Notation definiert \begin{equation} - e_ie_j = e_{ij} + e_ie_j = e_{ij}. \end{equation} \end{definition} -Nun da das geometrische Produkt vollständig definiert wurde können Multiplikationstabellen für verschiedene Dimensionen $\mathbb{G}^n$ erstellt werden. In \ref{tab:multip} ist dies für $\mathbb{G}^3$ gemacht. +Nun da das geometrische Produkt vollständig definiert wurde können Multiplikationstabellen für verschiedene Dimensionen $G_n(\mathbb{R})$ erstellt werden. In Tabelle \ref{tab:multip} ist dies für $G_3(\mathbb{R})$ gemacht. \begin{table} - \caption{Multiplikationstabelle für $\mathbb{G^3}$} \label{tab:multip} \begin{center} - \begin{tabular}{ |c|c|c|c|c|c|c|c| } + \begin{tabular}{ |c|ccc|ccc|c| } \hline 1 & $\textbf{e}_1$ & $\textbf{e}_2$ &$\textbf{e}_3$ & $\textbf{e}_{12}$ & $\textbf{e}_{13}$ & $\textbf{e}_{23}$ & $\textbf{e}_{123}$\\ \hline $\textbf{e}_1$ & 1 & $\textbf{e}_{12}$ & $\textbf{e}_{12}$ & $\textbf{e}_2$ & $\textbf{e}_3$ & $\textbf{e}_{123}$ & $\textbf{e}_{23}$\\ - \hline $\textbf{e}_2$ & $-\textbf{e}_{12}$ & 1 & $\textbf{e}_{23}$ & $-\textbf{e}_1$ & $-\textbf{e}_{123}$ & $\textbf{e}_3$ & $-\textbf{e}_{13}$\\ - \hline $\textbf{e}_3$ & $-\textbf{e}_{13}$ & $-\textbf{e}_{23}$ & 1 & $\textbf{e}_{123}$ & $-\textbf{e}_1$ & $-\textbf{e}_2$ & $\textbf{e}_{12}$\\ \hline $\textbf{e}_{12}$ & -$\textbf{e}_2$ & $\textbf{e}_1$& $\textbf{e}_{123}$ & -1 & $-\textbf{e}_{23}$ & $\textbf{e}_{13}$ & $-\textbf{e}_{3}$\\ - \hline $\textbf{e}_{13}$ & $-\textbf{e}_{3}$ & $-\textbf{e}_{123}$ & $\textbf{e}_{1}$ & $\textbf{e}_{23}$ & -1 & $-\textbf{e}_{12}$ & $\textbf{e}_{2}$\\ - \hline $\textbf{e}_{23}$ & $\textbf{e}_{123}$ & $-\textbf{e}_{3}$ & $\textbf{e}_{2}$ & $-\textbf{e}_{13}$ & $\textbf{e}_{12}$ & -1 & $-\textbf{e}_{1}$ \\ \hline $\textbf{e}_{123}$ & $\textbf{e}_{23}$ & $-\textbf{e}_{13}$ & $\textbf{e}_{12}$ & $-\textbf{e}_{3}$& $\textbf{e}_{2}$ & $-\textbf{e}_{1}$ & -1 \\ \hline \end{tabular} \end{center} + \caption{Multiplikationstabelle für $G_3(\mathbb{R})$} \end{table} diff --git a/buch/papers/clifford/6_Dirac-Matrizen.tex b/buch/papers/clifford/6_Dirac-Matrizen.tex deleted file mode 100644 index 6417bb3..0000000 --- a/buch/papers/clifford/6_Dirac-Matrizen.tex +++ /dev/null @@ -1,7 +0,0 @@ -% -% einleitung.tex -- Beispiel-File für die Einleitung -% -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil -% -\section{Dirac-Matrizen} -\rhead{Dirac-Matrizen} diff --git a/buch/papers/clifford/6_PauliMatrizen.tex b/buch/papers/clifford/6_PauliMatrizen.tex new file mode 100644 index 0000000..4438aeb --- /dev/null +++ b/buch/papers/clifford/6_PauliMatrizen.tex @@ -0,0 +1,128 @@ +% +% einleitung.tex -- Beispiel-File für die Einleitung +% +% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% +\section{Pauli-Matrizen} +\rhead{Pauli-Matrizen} + +Was ist der beste Weg um einen Computeralgorithmus für die Rechenoperationen in der Clifford-Algebra zu erstellen? Man könnte versuchen einen textuellen Rechner zu implementieren der für die Elemente $\mathbf{e}_i$ hartkodierte Vereinfachungen ausführt. +\begin{beispiel} + Der Algorithmus weiss, dass er $a\mathbf{e}_1\cdot b\mathbf{e}_1$ zu $ab\cdot1$ vereinfachen kann. Dies ermöglicht zum Beispiel die Vereinfachung + \begin{align} + 3\mathbf{e}_1 \cdot 2\mathbf{e}_1 + 3\mathbf{e}_2 \Rightarrow 6 + 3\mathbf{e}_2 + \end{align} +\end{beispiel} +Ein textueller Algorithmus ist aber sehr ineffizient. Die Pauli-Matrizen bilden eine elegante und schnellere Alternative, welche für die dreidimensionale Clifford-Algebra verwendet werden können und alle Operationen aus der Clifford-Algebra gleich wie die Matrixoperationen ausführen lassen. +\begin{definition} \label{def:defPauli} + Die Matrizen + \begin{align} \label{Pauli} + \mathbf{e}_0 = E = + \begin{pmatrix} + 1 & 0 \\ + 0 & 1 + \end{pmatrix},\quad + \mathbf{e}_1 = + \begin{pmatrix} + 0 & 1 \\ + 1 & 0 + \end{pmatrix},\quad + \mathbf{e}_2 = + \begin{pmatrix} + 0 & -j \\ + j & 0 + \end{pmatrix},\quad + \mathbf{e}_3 = + \begin{pmatrix} + 1 & 0 \\ + 0 & -1 + \end{pmatrix} + \end{align} + heissen Pauli-Matrizen ($\mathbf{e}_0$ = Skalare) +\end{definition} +Die Matrix-Multiplikationen der Pauli-Matrizen führt auf die gleichen algebraischen Relationen, wie die Multiplikation der Elemente $\mathbf{e}_0, \mathbf{e}_1, \mathbf{e}_2, \mathbf{e}_3$. So lassen sich auch die restlichen Elemente der Clifford-Algebra erzeugen. +\begin{definition} \label{def:defPauli2} + Die Bivektoren und Trivektoren hergeleitet aus den Pauli-Matrizen sind + \begin{align} \label{Pauli2} + \mathbf{e}_{12} = + \begin{pmatrix} + j & 0 \\ + 0 & -j + \end{pmatrix}\quad + \mathbf{e}_{23} = + \begin{pmatrix} + 0 & j \\ + j & 0 + \end{pmatrix}\quad + \mathbf{e}_{31} = + \begin{pmatrix} + 0 & 1 \\ + -1 & 0 + \end{pmatrix}\enspace\text{und}\enspace + \mathbf{e}_{123} = + \begin{pmatrix} + j & 0 \\ + 0 & j + \end{pmatrix}. + \end{align} +\end{definition} +Dabei ist wichtig, dass sich die Matrizen gleich verhalten, wie es die Clifford-Algebra für die Basiselemente definiert hat. Zum Beispiel gilt in der Clifford-Algebra $\mathbf{e}_1^2=\mathbf{e}_0$ und $\mathbf{e}_{12}^2=-\mathbf{e}_0$, genau die selbe Relation gilt auch für die zugehörigen Matrizen, wie man durch die Matrizenrechnungen +\begin{align} + \mathbf{e}_1^2 &= + \begin{pmatrix} + 0 & 1 \\ + 1 & 0 + \end{pmatrix}^2 = + \begin{pmatrix} + 1 & 0 \\ + 0 & 1 + \end{pmatrix}= \mathbf{e}_0 \quad\text{und}\\ + \mathbf{e}_{12}^2 &= + \begin{pmatrix} + j & 0 \\ + 0 & -j + \end{pmatrix}^2 = + \begin{pmatrix} + -1 & 0 \\ + 0 & -1 + \end{pmatrix} = -\mathbf{e}_0 +\end{align} +bestätigt. Man kann bei den Definitionen \ref{def:defPauli} und \ref{def:defPauli2} sehen, dass alle Matrizen linear unabhängig voneinander sind. Das bedeutet, dass wenn man die Matrizen der Basiselemente normal addiert und zu einer Matrix zusammenfasst, kann man anschliessend die einzelnen Anteile der Basiselemente wieder herausgelesen. +\begin{hilfssatz} + Ein beliebiger Multivektor + \begin{align} \label{MultiVektorAllg} + M = a_0\mathbf{e}_0 + a_1\mathbf{e}_1 + a_2\mathbf{e}_3 + a_{12}\mathbf{e}_{12} + a_{23}\mathbf{e}_{23} + a_{31}\mathbf{e}_{31} + a_{123}\mathbf{e}_{123} + \end{align} + erhält durch das einsetzten der Formel Matrizen \eqref{Pauli} und \eqref{Pauli2} die Form + \begin{align} + M = + \begin{pmatrix} + (a_0+a_3) + (a_{12}+a_{123})j & (a_1+a_{31})+(-a_2+a_{23})j \\ + (a_1-a_{31})+(a_2+a_{23})j & (a_0-a_3)+(-a_{12}+a_{123})j + \end{pmatrix}.\label{MultivektorMatirx} + \end{align} +\end{hilfssatz} +Die Anteile treten zudem immer paarweise auf und können somit immer je durch zwei Gleichungen bestimmt werden. +\begin{beispiel} + Die Matrix + \begin{align} + M &= + \begin{pmatrix} + 1 & 0 \\ + 0 & -1j + \end{pmatrix} + \end{align} + soll als Multivektor in der Form \eqref{MultiVektorAllg} geschrieben werden. Dafür entnehmen wir aus \eqref{MultivektorMatirx} die Gleichungen + \begin{align} + a_0 + a_3 = 1,\quad a_0 - a_3 = 0,\quad a_{12}+a_{123} = 0\enspace\text{und}\enspace -a_{12}+a_{123}=-1 + \end{align} + aus denen man auf + \begin{align} + a_0 = \dfrac{1}{2},\quad a_3 = \dfrac{1}{2},\quad a_{12}=\dfrac{1}{2}\enspace\text{und}\enspace a_{123}=-\dfrac{1}{2} + \end{align} + schliessen kann. Da die restlichen Realteile und Imaginärteile 0 sind, werden die anderen Anteile ebenfalls 0 sein. Daher ist + \begin{align} + M = \dfrac{1}{2} \mathbf{e}_0+ \dfrac{1}{2} \mathbf{e}_3 + \dfrac{1}{2} \mathbf{e}_{12} - \dfrac{1}{2} \mathbf{e}_{123}. + \end{align} +\end{beispiel} +Die Clifford-Algebra ist bei der Darstellung durch Matrizen kein Ausnahmefall. Es lässt sich theoretisch jede algebraische Struktur durch Matrizen darstellen.
\ No newline at end of file diff --git a/buch/papers/clifford/7_Reflektion.tex b/buch/papers/clifford/7_Reflektion.tex index d4942e0..549848c 100644 --- a/buch/papers/clifford/7_Reflektion.tex +++ b/buch/papers/clifford/7_Reflektion.tex @@ -3,31 +3,93 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{Reflektion/ Spiegelung} -\rhead{Reflektion/ Spiegelung} -Die Spiegelung ist eine grundlegende, geometrische Operation, aus welcher man weitere, wie beispielsweise die später beschriebene Rotation, ableiten kann. Da die Geometrische Algebra für geometrische Anwendungen ausgelegt ist, sollte die Reflektion auch eine einfache, praktische Formulierung besitzen. \\HIER BILD -\subsection{linearen Algebra} -Aus der linearen Algebra ist bekannt, dass man eine Reflektion wie folgt beschreiben kann. -\begin{align} \label{RefLinAlg} - \mathbf{v^{'}} = \mathbf{v} - 2 \cdot \mathbf{v_{\perp u}} +\section{Spiegelung} +\rhead{Spiegelung} + +Die Spiegelung ist eine grundlegende, geometrische Operation, aus welcher man weitere Operationen, wie beispielsweise die später beschriebene Rotation, ableiten kann. Da die geometrische Algebra für geometrische Anwendungen ausgelegt ist, sollte die Spiegelung auch eine einfache, praktische Formulierung besitzen. +\begin{figure} + \centering + \begin{tikzpicture} + \draw[thin,gray!40] (-3,-1) grid (3,3); + \draw[<->] (-3,0)--(3,0) node[right]{$a_1$}; + \draw[<->] (0,-1)--(0,3) node[above]{$a_2$}; + \draw[blue, line width=1.0pt] (0,3)--(0,-1) node[anchor=south east]{$\sigma_u$}; + \draw[line width=2pt,black,-stealth](0,0)--(2,2) node[anchor=south east]{$\boldsymbol{v}$}; + \draw[line width=2pt,black,-stealth](0,0)--(-2,2) node[anchor=south east]{$\boldsymbol{v'}$}; + \draw[line width=1.5pt,gray,-stealth](0,0)--(1,0) node[anchor=north]{$\boldsymbol{e_1}$}; + \draw[line width=1.5pt,gray,-stealth](0,0)--(0,1) node[anchor=north east]{$\boldsymbol{e_2}$}; + \draw[line width=1.5pt,red,-stealth](0,2)--(2,2) node[xshift=-1cm, yshift= + 0.25cm]{$\boldsymbol{v_{\perp u}}$}; + \draw[line width=1.5pt,red,-stealth](-2,2)--(0,2) node[xshift=-1cm, yshift= + 0.25cm]{$\boldsymbol{v_{\perp u}}$}; + \draw[line width=1.5pt,blue,-stealth](0,0.05)--(1,0.05) node[xshift=-0.5cm, yshift=-0.25cm]{$\boldsymbol{\hat{u}}$}; + \end{tikzpicture} + \caption{Spiegelung des Vektors $\mathbf{v}$ an der Spiegelebene $\sigma_u$ mit dem Normalenvektor $\mathbf{\hat{u}}$} + \label{BildSpiegelung} +\end{figure} + +\subsection{Linearen Algebra} +Aus der linearen Algebra ist bekannt, dass man eine Spiegelung an einer Ebene wie folgt beschreiben kann. +\begin{definition} + Die Abbildung der Spiegelung in der linearen Algebra mit dem Normalenvektor $\mathbf{\hat{u}}$ zur Spiegelebene ist + \begin{equation} \label{RefLinAlg} + \mathbf{v} = \mathbf{v_{\perp u}} + \mathbf{v_{\parallel u}} \enspace\mapsto\enspace \mathbf{v'} = \mathbf{v_{\perp u}} - \mathbf{v_{\parallel u}} = \mathbf{v} - 2 \cdot \mathbf{v_{\parallel u}}. + \end{equation} +\end{definition} +Es scheint für diese Formel \eqref{RefLinAlg} aber umständlich zu sein, weitere Spiegelungen mit weiteren Spiegelebenen anzufügen. Weil man $\mathbf{v_{\parallel u}}$ auch als Skalarprodukt $\mathbf{v_{\parallel u}} = \mathbf{\hat{u}} \cdot \mathbf{v}$ schreiben kann, ist es leicht diese Abbildung auch als Matrix darzustellen. Sei $\mathbf{\hat{u}}$ ein Normalenvektor auf die Spiegelungsebene, also $\mathbf{\hat{u}}\perp \sigma_u$, und sei ausserdem normiert $|\mathbf{\hat{u}}| = 1$, dann kann man die Spiegelung durch die Matrix +\begin{align} + S = E - 2\mathbf{\hat{u}\hat{u}}^t +\end{align} +beschrieben werden. In der zweiten und dritten Dimension ergibt die Berechnung +\begin{align} \label{Spiegelmatrizen} + S_2 = \begin{pmatrix} + 1-2u_1^2 & -2u_1u_2 \\ + -2u_1u_2 & 1-2u_2^2 + \end{pmatrix}\enspace\text{und}\enspace + S_3 = \begin{pmatrix} + 1-2u_1^2 & -2u_1u_2 & -2u_1u_3\\ + -2u_1u_2 & 1-2u_2^2 & -2u_2u_3\\ + -2u_1u_3 & -2u_2u_3 & 1-2u_3^2\\ + \end{pmatrix}. +\end{align} +Diese Spiegelmatrizen gehören der orthogonalen Matrizengruppe $S_n\in \text{O}(n)$ an. Die Matrizengruppe $\text{O}(n)$ haben die Eigenschaft $S_n^t S_n = E$, was bedeutet, dass die Länge und Winkel bei der Abbildung beibehalten bleiben. Zusätzlich sind die Spiegelmatrizen symmetrisch, es gilt $S_n^t = S_n$. Somit liefert zweimal dieselbe Spiegelung wieder die identische Abbildung, wie man aus +\begin{align} + S_n^t S_n = S_n^2 = E +\end{align} +schliessen kann. + +\subsection{Geometrische Algebra} +Wir definieren zuerst die Inverse eines Vektors, welche in dieser Form nicht in der linearen Algebra nicht existiert. +\begin{definition} + Die Inverse eines Vektors wird definiert als + \begin{align} \label{InverseGA} + \mathbf{u}^{-1} = \dfrac{\mathbf{u}}{|\mathbf{u}|^2}. + \end{align} +\end{definition} +Diese Definition ist sinnvoll, da wegen $\mathbf{u}^2 = |\mathbf{u}|^2$ folgt +\begin{align} + \mathbf{uu}^{-1} = \mathbf{u} \frac{\mathbf{u}}{|\mathbf{u}|^2} = \frac{\mathbf{u}^2}{|\mathbf{u}|^2} = \frac{|\mathbf{u}|^2}{|\mathbf{u}|^2} = 1. \end{align} -Dabei stellt $\mathbf{u}$ die Spiegelachse dar. -Es scheint für diese Formel aber umständlich zu sein, weitere Reflektionen, mit weiteren Spiegelachsen, anzufügen. Man kann die Abbildung des Vektors auf den Reflektierten Vektor auch als Matrix schreiben, welche aus den Komponenten des zu der Spiegelachse orthonormalen Vektors $\mathbf{\hat{n}}$ besteht. -\\MATRIZEN O(2) und O(3) zeigen\\ -Diese Matrizen gehören der Matrizengruppe $O(n)$ an.... -\subsection{geometrischen Algebra} -Die Geometrische Algebra leitet aus der obigen Formel (\ref{RefLinAlg}) eine einfache und intuitive Form her, welche auch für weitere Operationen einfach erweitert werden kann. +Der Vektor $\mathbf{u}^{-1}$ in \eqref{InverseGA} ist also tatsächlich das inverse Element im Sinne des Produktes in der geometrischen Algebra. +Die geometrische Algebra leitet aus der obigen Formel \eqref{RefLinAlg} für eine Spiegelung eine einfache und intuitive Form her, welche auch für weitere Operationen erweitert werden kann. +\begin{definition} + Die Abbildung der Spiegelung in der geometrischen Algebra mit dem senkrechten Vektor $\mathbf{u}$ zur Spiegelungsebene $\sigma_u$ ist + \begin{align}\label{RefGA} + \mathbf{v} \enspace\mapsto\enspace \mathbf{v}' = -\mathbf{uvu}^{-1} + \end{align} +\end{definition} +Diese Abbildung muss stimmen, weil man durch die Schlussfolgerungen \eqref{uperpv} und \eqref{uparallelv} die Zusammenhänge \begin{align} - \mathbf{v'} = \mathbf{uvu^{-1}} + \mathbf{uv_{\perp u}} = -\mathbf{v_{\perp u}u} \enspace\text{und}\enspace \mathbf{uv_{\parallel u}}=\mathbf{v_{\parallel u}u} \end{align} -wobei die Inverse eines Vektors so definiert ist, dass multipliziert mit sich selbst das neutrale Element 1 ergibt. +der geometrischen Produkte findet und somit die Abbildung aus der geometrischen Algebra \eqref{RefGA} wegen \begin{align} - u^{-1} = \dfrac{u}{|u|^2} \Rightarrow uu^{-1} = 1 + \mathbf{v}' = -\mathbf{uvu}^{-1} = -\mathbf{uv_{\perp u}u}^{-1} - \mathbf{uv_{\parallel u}u}^{-1} = -(-\mathbf{v_{\perp u}}\underbrace{\mathbf{u})\mathbf{u}^{-1}}_{1} -(\mathbf{v_{\parallel u}}\underbrace{\mathbf{u})\mathbf{u}^{-1}}_{1} = \mathbf{v_{\perp u}} - \mathbf{v_{\parallel u}} \end{align} -verwendet man für $\mathbf{u}$ nur einen Einheitsvektor $\mathbf{\hat{u}}$, welcher die Länge 1 besitzt, wird somit die Formel reduziert zu einer beidseitigen Multiplikation von $\mathbf{\hat{u}}$. +gleichbedeutend zu der Definition \eqref{RefLinAlg} der Spiegelung ist. + +Verwendet man für $\mathbf{u}$ nur einen Einheitsvektor $\mathbf{\hat{u}}$, welcher die Länge 1 besitzt, wird die Gleichung \eqref{RefGA} zu \begin{align} - \mathbf{v'} = \mathbf{\hat{u}v\hat{u}} + \mathbf{v'} = -\mathbf{\hat{u}v\hat{u}} \end{align} -Im Gegensatz zu den Abbildungen in der linearen Algebra, welche in jeder anderen Dimension durch andere Matrizen beschrieben werden müssen, ist es in der geometrischen Algebra immer der gleiche Vorgehensweise. -Zudem ist diese kompakte Schreibweise in der linearen Algebra nicht möglich, da keine Multiplikation von Vektoren definiert ist. -\\BEISPIEL?
\ No newline at end of file +vereinfacht. Im Gegensatz zu den Abbildungen in der linearen Algebra, welche in jeder anderen Dimension, durch andere Matrizen \eqref{Spiegelmatrizen} beschrieben werden müssen, ist es in der geometrischen Algebra immer der gleiche Vorgehensweise. Zudem ist diese kompakte Schreibweise in der linearen Algebra nicht möglich, da bis auf das Vektorprodukt in der dritten Dimension keine Multiplikation von Vektoren definiert ist.
\ No newline at end of file diff --git a/buch/papers/clifford/7_Spiegelung.tex b/buch/papers/clifford/7_Spiegelung.tex new file mode 100644 index 0000000..549848c --- /dev/null +++ b/buch/papers/clifford/7_Spiegelung.tex @@ -0,0 +1,95 @@ +% +% teil1.tex -- Beispiel-File für das Paper +% +% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% +\section{Spiegelung} +\rhead{Spiegelung} + +Die Spiegelung ist eine grundlegende, geometrische Operation, aus welcher man weitere Operationen, wie beispielsweise die später beschriebene Rotation, ableiten kann. Da die geometrische Algebra für geometrische Anwendungen ausgelegt ist, sollte die Spiegelung auch eine einfache, praktische Formulierung besitzen. +\begin{figure} + \centering + \begin{tikzpicture} + \draw[thin,gray!40] (-3,-1) grid (3,3); + \draw[<->] (-3,0)--(3,0) node[right]{$a_1$}; + \draw[<->] (0,-1)--(0,3) node[above]{$a_2$}; + \draw[blue, line width=1.0pt] (0,3)--(0,-1) node[anchor=south east]{$\sigma_u$}; + \draw[line width=2pt,black,-stealth](0,0)--(2,2) node[anchor=south east]{$\boldsymbol{v}$}; + \draw[line width=2pt,black,-stealth](0,0)--(-2,2) node[anchor=south east]{$\boldsymbol{v'}$}; + \draw[line width=1.5pt,gray,-stealth](0,0)--(1,0) node[anchor=north]{$\boldsymbol{e_1}$}; + \draw[line width=1.5pt,gray,-stealth](0,0)--(0,1) node[anchor=north east]{$\boldsymbol{e_2}$}; + \draw[line width=1.5pt,red,-stealth](0,2)--(2,2) node[xshift=-1cm, yshift= + 0.25cm]{$\boldsymbol{v_{\perp u}}$}; + \draw[line width=1.5pt,red,-stealth](-2,2)--(0,2) node[xshift=-1cm, yshift= + 0.25cm]{$\boldsymbol{v_{\perp u}}$}; + \draw[line width=1.5pt,blue,-stealth](0,0.05)--(1,0.05) node[xshift=-0.5cm, yshift=-0.25cm]{$\boldsymbol{\hat{u}}$}; + \end{tikzpicture} + \caption{Spiegelung des Vektors $\mathbf{v}$ an der Spiegelebene $\sigma_u$ mit dem Normalenvektor $\mathbf{\hat{u}}$} + \label{BildSpiegelung} +\end{figure} + +\subsection{Linearen Algebra} +Aus der linearen Algebra ist bekannt, dass man eine Spiegelung an einer Ebene wie folgt beschreiben kann. +\begin{definition} + Die Abbildung der Spiegelung in der linearen Algebra mit dem Normalenvektor $\mathbf{\hat{u}}$ zur Spiegelebene ist + \begin{equation} \label{RefLinAlg} + \mathbf{v} = \mathbf{v_{\perp u}} + \mathbf{v_{\parallel u}} \enspace\mapsto\enspace \mathbf{v'} = \mathbf{v_{\perp u}} - \mathbf{v_{\parallel u}} = \mathbf{v} - 2 \cdot \mathbf{v_{\parallel u}}. + \end{equation} +\end{definition} +Es scheint für diese Formel \eqref{RefLinAlg} aber umständlich zu sein, weitere Spiegelungen mit weiteren Spiegelebenen anzufügen. Weil man $\mathbf{v_{\parallel u}}$ auch als Skalarprodukt $\mathbf{v_{\parallel u}} = \mathbf{\hat{u}} \cdot \mathbf{v}$ schreiben kann, ist es leicht diese Abbildung auch als Matrix darzustellen. Sei $\mathbf{\hat{u}}$ ein Normalenvektor auf die Spiegelungsebene, also $\mathbf{\hat{u}}\perp \sigma_u$, und sei ausserdem normiert $|\mathbf{\hat{u}}| = 1$, dann kann man die Spiegelung durch die Matrix +\begin{align} + S = E - 2\mathbf{\hat{u}\hat{u}}^t +\end{align} +beschrieben werden. In der zweiten und dritten Dimension ergibt die Berechnung +\begin{align} \label{Spiegelmatrizen} + S_2 = \begin{pmatrix} + 1-2u_1^2 & -2u_1u_2 \\ + -2u_1u_2 & 1-2u_2^2 + \end{pmatrix}\enspace\text{und}\enspace + S_3 = \begin{pmatrix} + 1-2u_1^2 & -2u_1u_2 & -2u_1u_3\\ + -2u_1u_2 & 1-2u_2^2 & -2u_2u_3\\ + -2u_1u_3 & -2u_2u_3 & 1-2u_3^2\\ + \end{pmatrix}. +\end{align} +Diese Spiegelmatrizen gehören der orthogonalen Matrizengruppe $S_n\in \text{O}(n)$ an. Die Matrizengruppe $\text{O}(n)$ haben die Eigenschaft $S_n^t S_n = E$, was bedeutet, dass die Länge und Winkel bei der Abbildung beibehalten bleiben. Zusätzlich sind die Spiegelmatrizen symmetrisch, es gilt $S_n^t = S_n$. Somit liefert zweimal dieselbe Spiegelung wieder die identische Abbildung, wie man aus +\begin{align} + S_n^t S_n = S_n^2 = E +\end{align} +schliessen kann. + +\subsection{Geometrische Algebra} +Wir definieren zuerst die Inverse eines Vektors, welche in dieser Form nicht in der linearen Algebra nicht existiert. +\begin{definition} + Die Inverse eines Vektors wird definiert als + \begin{align} \label{InverseGA} + \mathbf{u}^{-1} = \dfrac{\mathbf{u}}{|\mathbf{u}|^2}. + \end{align} +\end{definition} +Diese Definition ist sinnvoll, da wegen $\mathbf{u}^2 = |\mathbf{u}|^2$ folgt +\begin{align} + \mathbf{uu}^{-1} = \mathbf{u} \frac{\mathbf{u}}{|\mathbf{u}|^2} = \frac{\mathbf{u}^2}{|\mathbf{u}|^2} = \frac{|\mathbf{u}|^2}{|\mathbf{u}|^2} = 1. +\end{align} +Der Vektor $\mathbf{u}^{-1}$ in \eqref{InverseGA} ist also tatsächlich das inverse Element im Sinne des Produktes in der geometrischen Algebra. +Die geometrische Algebra leitet aus der obigen Formel \eqref{RefLinAlg} für eine Spiegelung eine einfache und intuitive Form her, welche auch für weitere Operationen erweitert werden kann. +\begin{definition} + Die Abbildung der Spiegelung in der geometrischen Algebra mit dem senkrechten Vektor $\mathbf{u}$ zur Spiegelungsebene $\sigma_u$ ist + \begin{align}\label{RefGA} + \mathbf{v} \enspace\mapsto\enspace \mathbf{v}' = -\mathbf{uvu}^{-1} + \end{align} +\end{definition} +Diese Abbildung muss stimmen, weil man durch die Schlussfolgerungen \eqref{uperpv} und \eqref{uparallelv} die Zusammenhänge +\begin{align} + \mathbf{uv_{\perp u}} = -\mathbf{v_{\perp u}u} \enspace\text{und}\enspace \mathbf{uv_{\parallel u}}=\mathbf{v_{\parallel u}u} +\end{align} +der geometrischen Produkte findet und somit die Abbildung aus der geometrischen Algebra \eqref{RefGA} wegen +\begin{align} + \mathbf{v}' = -\mathbf{uvu}^{-1} = -\mathbf{uv_{\perp u}u}^{-1} - \mathbf{uv_{\parallel u}u}^{-1} = -(-\mathbf{v_{\perp u}}\underbrace{\mathbf{u})\mathbf{u}^{-1}}_{1} -(\mathbf{v_{\parallel u}}\underbrace{\mathbf{u})\mathbf{u}^{-1}}_{1} = \mathbf{v_{\perp u}} - \mathbf{v_{\parallel u}} +\end{align} +gleichbedeutend zu der Definition \eqref{RefLinAlg} der Spiegelung ist. + +Verwendet man für $\mathbf{u}$ nur einen Einheitsvektor $\mathbf{\hat{u}}$, welcher die Länge 1 besitzt, wird die Gleichung \eqref{RefGA} zu +\begin{align} + \mathbf{v'} = -\mathbf{\hat{u}v\hat{u}} +\end{align} +vereinfacht. Im Gegensatz zu den Abbildungen in der linearen Algebra, welche in jeder anderen Dimension, durch andere Matrizen \eqref{Spiegelmatrizen} beschrieben werden müssen, ist es in der geometrischen Algebra immer der gleiche Vorgehensweise. Zudem ist diese kompakte Schreibweise in der linearen Algebra nicht möglich, da bis auf das Vektorprodukt in der dritten Dimension keine Multiplikation von Vektoren definiert ist.
\ No newline at end of file diff --git a/buch/papers/clifford/8_Rotation.tex b/buch/papers/clifford/8_Rotation.tex index c2928bf..1d5e889 100644 --- a/buch/papers/clifford/8_Rotation.tex +++ b/buch/papers/clifford/8_Rotation.tex @@ -5,96 +5,183 @@ % \section{Rotation} \rhead{Rotation} -Eine Rotation kann man aus zwei, aufeinanderfolgende Reflektionen bilden. Das war für mich zuerst eine verwirrende Aussage, da man aus den vorherig gezeigten Formeln annehmen könnte, dass die Reflektion schon für eine Drehung ausreicht. Obwohl sich die Längen, Winkel und Volumen sich bei einer Reflektion, wie bei einer Rotation, nicht ändert, sind sie doch verschieden, da die Orientierung bei der Reflektion invertiert wird. Stellt man sich beispielsweise ein Objekt in 3D vor und spiegelt dieses an einer Fläche, dann ist es unmöglich nur durch eine Rotation (egal an welchem Punkt) das ursprüngliche Objekt deckungsgleich auf das Gespiegelte zu drehen. Hingegen ist es wiederum möglich ein zweifach gespiegeltes Objekt durch eine Drehung zu erreichen. Das liegt daran, da die Orientierung zwei mal invertiert wurde. -\\BILD -\subsection{linearen Algebra} -In der linearen Algebra haben wir Drehungen durch die Matrizen der Gruppe $SO(n)$ beschrieben. Die SO(2) werden beispielsweise auf diese Weise gebildet. +Eine Rotation kann man aus zwei aufeinanderfolgenden Spiegelungen bilden. Das kann vielleicht zuerst eine verwirrende Aussage sein, da man aus den vorherig gezeigten Formeln annehmen könnte, dass die Spiegelung schon für eine Drehung ausreicht. Obwohl sich die Längen, Winkel und Volumen sich bei einer Spiegelung, wie bei einer Rotation, nicht ändert, sind sie doch verschieden, da die Orientierung bei der Spiegelung invertiert wird. Stellt man sich beispielsweise ein Objekt im Dreidimensionalen vor und spiegelt dieses an einer Fläche, dann ist es unmöglich nur durch eine Rotation (egal an welchem Punkt) das ursprüngliche Objekt deckungsgleich auf das Gespiegelte zu drehen. Hingegen ist es wiederum möglich ein zweifach gespiegeltes Objekt durch eine Drehung zu erreichen. Das liegt daran, da die Orientierung zweimal invertiert wurde. +\\(Hier wird noch ein Bild für das Verständnis eingefügt) + +\begin{figure} + \centering + \begin{tikzpicture} + \draw[thin,gray!40] (-3,-1) grid (3,3); + \draw[<->] (-3,0)--(3,0) node[right]{$a_1$}; + \draw[<->] (0,-1)--(0,3) node[above]{$a_2$}; + \draw[line width=1.0pt,green,-stealth](2,2)--(-2,2) node[anchor=south west]{$\boldsymbol{-2v_{\parallel u}}$}; + \draw[line width=1.0pt,green,-stealth](-2,2)--(-2.828,0) node[anchor=north west]{$\boldsymbol{-2v'_{\parallel w}}$}; + \draw[blue, line width=1.0pt] (0,3)--(0,-1) node[anchor=south east]{$\sigma_u$}; + \draw[red, line width=1.0pt] (-3,1.24)--(2.21,-1) node[anchor=south]{$\sigma_w$}; + \draw[line width=2pt,black,-stealth](0,0)--(2,2) node[anchor=south east]{$\boldsymbol{v}$}; + \draw[line width=1.5pt,blue,-stealth](0,0)--(2.5, 0) node[anchor=south east]{$\boldsymbol{u}$}; + \draw[line width=2pt,black,-stealth](0,0)--(-2,2) node[anchor=south east]{$\boldsymbol{v'}$}; + \draw[line width=1.5pt,red,-stealth](0,0)--(0.957, 2.31) node[anchor=south east]{$\boldsymbol{w}$}; + \draw[line width=2pt,black,-stealth](0,0)--(-2.828,0) node[anchor=south east]{$\boldsymbol{v''}$}; + \draw[line width=1.5pt,gray,-stealth](0,0)--(1,0) node[anchor=north]{$\boldsymbol{e_1}$}; + \draw[line width=1.5pt,gray,-stealth](0,0)--(0,1) node[anchor=north east]{$\boldsymbol{e_2}$}; + + \coordinate (A) at (0,0); + \coordinate (B) at (2.5,0); + \coordinate (C) at (0.957, 2.31); + \tikzset{anglestyle/.style={angle eccentricity=1.25, purple, draw, thick, angle radius=1cm}} + \draw pic ["$\theta$", anglestyle] {angle = B--A--C}; + \coordinate (D) at (0,0); + \coordinate (E) at (1,1); + \coordinate (F) at (-1, 0); + \tikzset{anglestyle/.style={angle eccentricity=1.25, purple, draw, thick, angle radius=1.25cm}} + \draw pic ["$2\theta$", anglestyle] {angle = E--D--F}; + \end{tikzpicture} + \caption{Rotation des Vektors $\textbf{v}$ um $2\theta$} + \label{BildRotation} +\end{figure} + +\subsection{Linearen Algebra} +In der linearen Algebra haben wir Drehungen durch die Matrizen der Gruppe $\text{SO}(n)$ beschrieben. Beispielsweise besteht $\text{SO}(2)$ aus den Matrizen \begin{align} D = \begin{pmatrix} - cos(\alpha) & sin(\alpha) \\ - -sin(\alpha) & cos(\alpha) - \end{pmatrix} + \cos(\alpha) & \sin(\alpha) \\ + -\sin(\alpha) & \cos(\alpha) + \end{pmatrix},\quad + \alpha \in [0, 2\pi). \end{align} +Diese Drehmatrizen gehören der speziellen orthogonalen Matrizengruppe $D\in \text{SO}(n) = \text{SL}_n(\mathbb{R})\enspace \cap \enspace \text{O}(n)$ an. $\text{SL}_n(\mathbb{R})$ beinhaltet die Matrizen mit scherenden Eigenschaften. Diese Drehmatrizen haben die Eigenschaft $D^t D = E \enspace \land \enspace \det(D)=1$. Da $\det(D) = 1$ und nicht $-1$ sein kann fallen alle Spiegelungen aus der Menge heraus. $\det(D) = -1$ bedeutet, dass eine Orientierungsinversion stattfindet. +\\(BILD Mengen Spezieller Matrizen von Herrn Müller Präsentation) -\subsection{geometrischen Algebra} -Da wir jetzt aus der Geometrie wissen, dass eine Rotation durch zwei Reflektionen gebildet werden kann, können wir die Rotation einfach herleiten. -\begin{align} \label{rotGA} - v'' = wv'w^{-1} = w(uvu^{-1})w^{-1} -\end{align} -Die Vektoren $\mathbf{w}$ und $\mathbf{u}$ bilden hier wiederum die Spiegelachsen. Diese versuchen wir jetzt noch zu verbessern. Dazu leiten wir zuerst die bekannte Polarform her. (Anmerkung: Hier wird eine Rotation auf der $\mathbf{e_{12}}$ Ebene hergeleitet. Weitere Drehungen können in höheren Dimensionen durch Linearkombinationen von Drehungen in den $\mathbf{e_{ij}}, i\not=j$ Ebenen erreicht werden) -\begin{align} - \mathbf{w} = |w| \left[\cos(\theta_w) e_1 + \sin(\theta_w) e_2\right] -\end{align} -Dabei können wir ausnützen, dass $e_1^2 = 1$ ist. Was nichts ändert wenn wir es einfügen. Zudem klammern wir dann $e_1$ aus. +\subsection{Geometrische Algebra} +Da wir jetzt aus der Geometrie wissen, dass eine Rotation durch zwei Spiegelungen gebildet werden kann, können wir die Rotation mit der Formel \eqref{RefGA} einfach herleiten. +\begin{satz} + Durch zwei nacheinander auf einen Vektor $\mathbf{v}$ angewendete Spiegelungen lässt sich eine Rotation + \begin{align} \label{rotGA} + \mathbf{v}'' = -\mathbf{wv}'\mathbf{w}^{-1} = -\mathbf{w}(-\mathbf{uvu}^{-1})\mathbf{w}^{-1} = (\mathbf{wu})\mathbf{v}(\mathbf{u}^{-1}\mathbf{w}^{-1}) + \end{align} + beschreiben. +\end{satz} +Die Vektoren $\mathbf{w}$ und $\mathbf{u}$ bilden hier wiederum die Spiegelachsen. Diese Formel versuchen wir jetzt noch durch Umstrukturierung zu verbessern. +\subsubsection{Exponentialform} +Dazu leiten wir zuerst die Exponentialform eines Vektors her. Es wird dabei zur Vereinfachung davon ausgegangen, dass alle Vektoren $\mathbf{w}, \mathbf{u}, \mathbf{v}$ in der $\mathbf{e}_{1}$-$\mathbf{e}_{2}$-Ebene liegen. Weitere Drehungen können in höheren Dimensionen durch Linearkombinationen von Drehungen in den $\mathbf{e}_{i}$-$\mathbf{e}_{j}$-Ebenen $(i\not=j)$ erreicht werden. Für die Herleitung ersetzen wir als erstes in der Polarform \begin{align} - \mathbf{w} = |w| \left[\cos(\theta_w) e_1 + \sin(\theta_w) e_1e_1e_2\right] + \mathbf{w} = |\mathbf{w}| \left(\cos(\theta_w) \mathbf{e}_1 + \sin(\theta_w) \mathbf{e}_2\right) \end{align} -\begin{align} \label{e1ausklammern} - \mathbf{w} = |w|e_1\left[\cos(\theta_w)+ \sin(\theta_w) e_{12}\right] +eines Vektors einen Faktor 1 durch $1=\mathbf{e}_1^2$ und erhalten beim Sinus +\begin{align}\label{e1ausklammern} + \mathbf{w} &= |\mathbf{w}| \left(\cos(\theta_w) \mathbf{e}_1 + \sin(\theta_w) \mathbf{e}_1\mathbf{e}_1\mathbf{e}_2\right). \end{align} -Durch die Reihenentwicklung ist es uns jetzt möglich den Term in eckigen Klammern mit der e-Funktion zu schreiben. +In einem zweiten Schritt klammern wir $\mathbf{e}_1$ aus, dies ergibt \begin{align} - \mathbf{w} = |w|\mathbf{e_1} e^{\theta_w \mathbf{e_{12}}} + \mathbf{w} = |\mathbf{w}|\mathbf{e}_1\left(\cos(\theta_w)+ \sin(\theta_w) \mathbf{e}_{12}\right). \label{ExponentialGA} \end{align} -Man kann es so interpretieren, dass der Einheitsvektor $e_1$ um die Länge w gestreckt und um $theta_w$ gedreht wird. -Nun werden wir den Effekt von zwei aneinandergereihten Vektoren $(wu)$ betrachten. +Die Ähnlichkeit des Klammerausdrucks in der Formel \eqref{ExponentialGA} zu der Eulerschen Formel bei den komplexen Zahlen ist nun schon gut erkennbar. Versuchen wir nun mithilfe der Reihenentwicklungen \begin{align} - \mathbf{wu} = |w|\mathbf{e_1} e^{\theta_w \mathbf{e_{12}}}||u||\mathbf{e_1} e^{\theta_u \mathbf{e_{12}}} + \sin(\theta_w)\mathbf{e}_{12}&=\sum _{n=0}^{\infty }(-1)^{n}{\frac {\theta_w^{2n+1}}{(2n+1)!}}\mathbf{e}_{12} =\theta_w\mathbf{e}_{12}-{\frac {\theta_w^{3}}{3!}}\mathbf{e}_{12}+{\frac {\theta_w^{5}}{5!}}\mathbf{e}_{12}-\cdots \\ + \cos(\theta_w)&=\sum _{n=0}^{\infty }(-1)^{n}{\frac {\theta_w^{2n}}{(2n)!}} =1-{\frac {\theta_w^{2}}{2!}}+{\frac {\theta_w^{4}}{4!}}-\cdots \end{align} -Um die beiden $\mathbf{e_1}$ zu kürzen, können wir die Reihenfolge des exponential Terms mit $\mathbf{e_1}$ wechseln, indem man bei der Gleichung (\ref{e1ausklammern}), anstatt mit $\mathbf{e_1e_1e_2}$ mit $\mathbf{e_2e_1e_1}$ erweitert. -\begin{align} - \mathbf{w} = |w|\left[\cos(\theta_w)+ \sin(\theta_w) \mathbf{e_2e_1}\right]\mathbf{e_1} -\end{align} -Da $\mathbf{e_2e_1 = -e_{12}}$ können wir einfach den Winkel negieren. -Jetzt können wir wieder $e_1e_1 = 1$ kürzen. Die Längen können als Skalare beliebig verschoben werden und die exponential Terme zusammengefasst werden. +diesen Zusammenhang auch hier herzustellen. Setzt man diese beiden Reihenentwicklungen in \eqref{ExponentialGA} ein, erhält man \begin{align} - \mathbf{wu} = |w||u|e^{-\theta_w \mathbf{e_{12}}}\mathbf{e_1}\mathbf{e_1} e^{\theta_u \mathbf{e_{12}}} + \cos(\theta_w)+ \sin(\theta_w) \mathbf{e}_{12} &= 1+\theta_w\mathbf{e}_{12}-{\frac {\theta_w^{2}}{2!}}-{\frac {\theta_w^{3}}{3!}}\mathbf{e}_{12}+{\frac {\theta_w^{4}}{4!}}+{\frac {\theta_w^{5}}{5!}}\mathbf{e}_{12}-\cdots \end{align} +Dies sieht noch nicht wie eine Exponentialreihe aus, da $\mathbf{e}_{12}$ nur in jedem zweiten Term auftritt. Da aber $\mathbf{e}_{12}=-1$ gibt, erhält man für \begin{align} - \mathbf{wu} = |w||u|e^{(\theta_u-\theta_w) \mathbf{e_{12}}} -\end{align} -der Term $\mathbf{u^{-1}w^{-1}}$ kann durch die selbe Methode zusammengefasst werden. + e^{\theta_w\mathbf{e}_{12}} = 1 \mathbf{e}_{12}^0+\theta_w\mathbf{e}_{12}^1+{\frac {\theta_w^{2}}{2!}}\mathbf{e}_{12}^2+{\frac {\theta_w^{3}}{3!}}\mathbf{e}_{12}^3+{\frac {\theta_w^{4}}{4!}}\mathbf{e}_{12}^4+{\frac {\theta_w^{5}}{5!}}\mathbf{e}_{12}^5+\cdots + \label{ExponentialGA2} +\end{align} +Man sieht, dass die beiden Reihen übereinstimmen. Es folgt somit +\begin{align}\label{EulerGA} + e^{\theta_w \mathbf{e}_{12}} = \cos(\theta_w)+ \sin(\theta_w) \mathbf{e}_{12}, +\end{align} +es gibt eine Euler-Formel mit $\mathbf{e}_{12}$ anstelle der imaginären Einheit $j$. + +Wenn man jetzt den Vektor \eqref{ExponentialGA} durch die eulersche Schreibweise \begin{align} - \mathbf{u^{-1}w^{-1}} = \dfrac{1}{|w||u|}e^{(\theta_w-\theta_u) \mathbf{e_{12}}} + \mathbf{w} = |\mathbf{w}|\mathbf{e}_1e^{\theta_w\mathbf{e}_{12}} \end{align} -Dabei definieren wir den Winkel zwischen den Vektoren $\mathbf{w}$ und $\mathbf{u}$ als $\theta = \theta_w - \theta_u$. Setzten wir nun unsere neuen Erkenntnisse in die Gleichung (\ref{rotGA}) ein. -\begin{align} - \mathbf{v''} = |w||u|e^{-\theta \mathbf{e_{12}}} v \dfrac{1}{|w||u|}e^{\theta \mathbf{e_{12}}} +ersetzt, kann die Exponentialform des Vektors ähnlich wie die der komplexen Zahlen interpretieren. Der Einheitsvektor $\mathbf{e}_1$ wird um die Länge $|\mathbf{w}|$ gestreckt und um $\theta_w$ gedreht. +\subsubsection{Vektormultiplikation} +Nun werden wir das Vektorprodukt +\begin{align} \label{VektorproduktformelGA} + \mathbf{wu} = |\mathbf{w}|\mathbf{e}_1 e^{\theta_w \mathbf{e}_{12}}|\mathbf{u}|\mathbf{e}_1 e^{\theta_u \mathbf{e}_{12}} \end{align} -HIER DEFINITION/IST WICHTIGE FORMEL -\begin{align} - \mathbf{v''} = e^{-\theta \mathbf{e_{12}}} v e^{\theta \mathbf{e_{12}}} +so umformen, dass wir die Drehung nur durch Exponentialterme beschreiben können. Wir tauschen dafür zuerst beim Vektor $\mathbf{w}$ die Reihenfolge von +$\mathbf{e}_1$ mit dem Exponentialterm $e^{\theta_w \mathbf{e}_{12}}$, indem wir bei der Gleichung \eqref{e1ausklammern} $1=\mathbf{e}_1^2$ an einer anderen Position +\begin{align} + \mathbf{w} &= |\mathbf{w}|\left(\cos(\theta_w)+ \sin(\theta_w) \mathbf{e}_2\mathbf{e}_1\right)\mathbf{e}_1 \end{align} -Wir wissen nun, dass das diese beidseitige Multiplikation die Länge von $\mathbf{v}$ nicht verändert, da sich die Längen von $\mathbf{w}$ und $\mathbf{u}$ kürzen. Betrachten wir nun den Effekt der Exponentialterme auf $\mathbf{v}$. Dabei Teilen wir den Vektor $\mathbf{v}$ auf in einen Anteil $\mathbf{v_\parallel}$, welcher auf der Ebene $\mathbf{e_{12}}$ liegt, und einen Anteil $\mathbf{v_\perp}$, welcher senkrecht zu der Ebene steht. -\begin{align} \label{RotAufPerpPar} - \mathbf{v''} = e^{-\theta \mathbf{e_{12}}} (\mathbf{v_\perp + v_\parallel}) e^{\theta \mathbf{e_{12}}} +einsetzten. Mithilfe der Formel \eqref{EulerGA} und dem Wissen, dass $\mathbf{e}_{21}= -\mathbf{e}_{12}$ können wir die Umformung +\begin{align} + |\mathbf{w}|e^{-\theta_w \mathbf{e}_{12}}\mathbf{e}_1 \end{align} +ausführen. Diese wichtige Umstrukturierung können wir wieder in die Vektorproduktformel \eqref{VektorproduktformelGA} einsetzen un erhalten \begin{align} - \mathbf{v''} = e^{-\theta \mathbf{e_{12}}} \mathbf{v_\perp} e^{\theta \mathbf{e_{12}}} + e^{-\theta \mathbf{e_{12}}} \mathbf{v_\parallel} e^{\theta \mathbf{e_{12}}} + \mathbf{wu} &= |\mathbf{w}||\mathbf{u}|e^{-\theta_w \mathbf{e}_{12}}\mathbf{e}_1\mathbf{e}_1 e^{\theta_u \mathbf{e}_{12}}\\ + &= |\mathbf{w}||\mathbf{u}|e^{(\theta_u-\theta_w) \mathbf{e}_{12}}. \end{align} -Auf eine allgemeine Herleitung wird hier zwar verzichtet, aber man kann zeigen, dass die Reihenfolge so vertauscht werden kann. Der Winkel wird dabei beim parallelen Term negiert. +Das inverse Vektorprodukt \begin{align} - \mathbf{v''} = \mathbf{v_\perp} e^{-\theta \mathbf{e_{12}}} e^{\theta \mathbf{e_{12}}} + \mathbf{v_\parallel} e^{-(-\theta) \mathbf{e_{12}}} e^{\theta \mathbf{e_{12}}} + \mathbf{u}^{-1}\mathbf{w}^{-1} = \dfrac{1}{|\mathbf{w}||\mathbf{u}|}e^{(\theta_w-\theta_u) \mathbf{e}_{12}} \end{align} +kann durch die selbe Methode vereinfacht werden. +Wenn wir den Winkel zwischen den Vektoren $\mathbf{w}$ und $\mathbf{u}$ als $\theta = \theta_w - \theta_u$ definieren erhalten wir als endgültige Form der Vektorprodukte +\begin{align}\label{wuExpo} + \mathbf{wu} &= |\mathbf{w}||\mathbf{u}|e^{-\theta \mathbf{e}_{12}}\enspace\text{und}\\ + \mathbf{u}^{-1}\mathbf{w}^{-1} &= \dfrac{1}{|\mathbf{w}||\mathbf{u}|}e^{\theta \mathbf{e}_{12}} \label{wuExpoInv}. +\end{align} +\subsubsection{Umstrukturierte Drehungsgleichung} +Setzten wir nun unsere neuen Erkenntnisse in die Gleichung \eqref{rotGA} ein \begin{align} - \mathbf{v''} = \mathbf{v_\perp} + \mathbf{v_\parallel} e^{2\theta \mathbf{e_{12}}} + \mathbf{v''} = (|\mathbf{w}||\mathbf{u}|e^{-\theta \mathbf{e}_{12}})\mathbf{v}\biggl(\dfrac{1}{|\mathbf{w}||\mathbf{u}|}e^{\theta \mathbf{e}_{12}}\biggr), \end{align} -Man kann an dieser Gleichung sehen, dass nur der parallele Anteil des Vektors $\mathbf{v}$ auf der Ebene $\mathbf{e_{12}}$ um $2\theta$ gedreht wird. Der senkrechte Anteil bleibt gleich. Wichtig dabei zu sehen ist, dass nur der Winkel zwischen den Vektoren $\mathbf{w}$ und $\mathbf{u}$ von Bedeutung ist. Die Länge und Richtung der einzelnen Vektoren spielt keine Rolle. -\\BEISPIEL +erhalten wir durch die Kürzungen der Längen die vereinfachte Drehungsgleichung \begin{align} - \begin{split} - &\mathbf{v} = 1\mathbf{e_1} + 2\mathbf{e_2} + 3\mathbf{e_3}\quad\Rightarrow\quad \mathbf{v_\parallel} = 1\mathbf{e_1} + 2\mathbf{e_2}; \quad \mathbf{v_\perp} = 3\mathbf{e_3}\\ &\mathbf{wu} = 1e^{(-\pi/2) \mathbf{e_{12}}} = 1[\cos(-\pi/2)\mathbf{e_1}+\sin(-\pi/2)\mathbf{e_2}] = -\mathbf{e_2}; \\ &\mathbf{u^{-1}w^{-1}} = 1e^{(\pi/2) \mathbf{e_{12}}} = \mathbf{e_2} - \end{split} + \mathbf{v''} = e^{-\theta \mathbf{e}_{12}} v e^{\theta \mathbf{e}_{12}}. +\end{align} + +Wir wissen nun, dass das diese beidseitige Multiplikation die Länge von $\mathbf{v}$ nicht verändert, da sich die Längen von $\mathbf{w}$ und $\mathbf{u}$ kürzen. Betrachten wir nun den Effekt der Exponentialterme auf $\mathbf{v}$. Dabei Teilen wir den Vektor $\mathbf{v}$ auf in einen Anteil $\mathbf{v_\parallel}$, welcher auf der Ebene $\mathbf{e}_{12}$ liegt, und einen Anteil $\mathbf{v_\perp}$, welcher senkrecht zu der Ebene steht. Wir bekommen durch Einsetzten nun diese Form +\begin{align} \label{RotAufPerpPar} + \mathbf{v}'' = e^{-\theta \mathbf{e}_{12}} (\mathbf{v_\perp + v_\parallel}) e^{\theta \mathbf{e}_{12}} = e^{-\theta \mathbf{e}_{12}} \mathbf{v_\perp} e^{\theta \mathbf{e}_{12}} + e^{-\theta \mathbf{e}_{12}} \mathbf{v_\parallel} e^{\theta \mathbf{e}_{12}}. \end{align} +Auf eine allgemeine Herleitung wird hier zwar verzichtet, aber man kann zeigen, dass die Reihenfolge so umstrukturiert werden kann \begin{align} - \begin{split} - \mathbf{v''} = &\mathbf{(wu)v(u^{-1}w^{-1})} \\ - &-\mathbf{e_2} (1\mathbf{e_1} + 2\mathbf{e_2} + 3\mathbf{e_3}) \mathbf{e_2} \\ - & -1\mathbf{e_2e_1e_2} - 2\mathbf{e_2e_2e_2} - 3\mathbf{e_2e_3e_2} \\ - & 1\mathbf{e_2e_2e_1} - 2\mathbf{e_2} + 3\mathbf{e_2e_2e_3} \\ - & 1\mathbf{e_1} - 2\mathbf{e_2} + 3\mathbf{e_3} - \end{split} -\end{align} -Man sieht, dass sich der Vektor $\mathbf{v_\parallel}$ sich um $2\cdot90^\circ$ gedreht hat und der Vektor $\mathbf{v_\perp}$ unverändert blieb.
\ No newline at end of file + \mathbf{v}'' = \mathbf{v_\perp} e^{-\theta \mathbf{e}_{12}} e^{\theta \mathbf{e}_{12}} + \mathbf{v_\parallel} e^{-(-\theta) \mathbf{e}_{12}} e^{\theta \mathbf{e}_{12}}, +\end{align} +dass der Winkel beim parallelen Anteil negiert wird. An der Zusammengefassten Gleichung +\begin{align}\label{RotParPerp} + \mathbf{v}'' = \mathbf{v_\perp} + \mathbf{v_\parallel} e^{2\theta \mathbf{e}_{12}} +\end{align} +kann man sehen, dass nur der parallele Anteil $\mathbf{v_\parallel}$ des Vektors $\mathbf{v}$ auf der Ebene $\mathbf{e}_{12}$ um $2\theta$ gedreht wird. Der senkrechte Anteil $\mathbf{v_\perp}$ bleibt gleich. Wichtig dabei zu sehen ist, dass nur der Winkel zwischen den Vektoren $\mathbf{w}$ und $\mathbf{u}$ von Bedeutung ist. Die Länge und Richtung der einzelnen Vektoren spielt keine Rolle. Zeigen wir nun diese Eigenschaften an einem Beispiel +\begin{beispiel} + Gegeben sei ein Vektor $\mathbf{v} = 1\mathbf{e}_1 + 2\mathbf{e}_2 + 3\mathbf{e}_3$ mit zur $\mathbf{e}_{12}$-Ebene parallelen Anteil $\mathbf{v_\parallel} = 1\mathbf{e}_1 + 2\mathbf{e}_2$ und senkrechten Anteil $\mathbf{v_\perp} = 3\mathbf{e}_3$. Zusätzlich sind die Spiegelachsen $\mathbf{u} = \mathbf{e}_1$ und $\mathbf{w} = 2\mathbf{e}_2$ gegeben. Gesucht ist der rotierte Vektor $\mathbf{v}''$. Bestimmen wir als erstes das Vektorprodukt $\mathbf{wu}$ + \begin{align} + \mathbf{wu} = (2\mathbf{e}_2)(\mathbf{e}_1) = -2\mathbf{e}_{12} + \end{align} + und das Produkt der Inversen $\mathbf{u}^{-1}\mathbf{w}^{-1}$ + \begin{align} + \mathbf{u}^{-1}\mathbf{w}^{-1} = \biggl(\dfrac{\mathbf{e}_1}{1^2}\biggr) \left(\dfrac{2\mathbf{e}_2}{2^2}\right) = \dfrac{1}{2}\mathbf{e}_{12}. + \end{align} + Der rotierte Vektor $\mathbf{v}''$ können wir nun durch das einsetzten und auflösen der Produkte in die Gleichung \eqref{rotGA} + \begin{align} + \mathbf{v}'' = (\mathbf{wu})\mathbf{v}(\mathbf{u}^{-1}\mathbf{w}^{-1}) &= (-2e_{12})(1\mathbf{e}_1 + \mathbf{e}_2 + 1\mathbf{e}_3)(\textstyle{\frac{1}{2}}\mathbf{e}_{12})\\ + &= (2\mathbf{e}_2-2\mathbf{e}_1-2\mathbf{e}_{123})(\textstyle{\frac{1}{2}}\mathbf{e}_{12})\\ + &= -1\mathbf{e}_1 - 1\mathbf{e}_2 + 1\mathbf{e}_3 + \end{align} + finden. Aus dem Resultat $\mathbf{v}''= -1\mathbf{e}_1 + 1\mathbf{e}_2 + 1\mathbf{e}_3$ können wir bestätigen, dass + \begin{itemize} + \item die Länge $|\mathbf{v}| = \sqrt{3}$ zur Länge $|\mathbf{v}''|=\sqrt{3}$ gleich blieb. + \item sich der parallele Anteil $\mathbf{v_\parallel}'' = -1\mathbf{e}_1 - 1\mathbf{e}_2$ gedreht hat und der senkrechte Anteil $\mathbf{v_\perp}'' = 1\mathbf{e}_3$ unverändert blieb. + \item der parallele Teil sich genau um $2\theta=180$° gedreht hat. $\theta$ kann übrigens durch die Umformung des Produkt $\mathbf{wu}$ in die Exponentialschreibweise + \begin{align} + &\mathbf{wu} = -2\mathbf{e}_{12} = 2(0-1\mathbf{e}_{12})=2(\cos\biggl(\dfrac{-\pi}{2}\biggr) + \sin\biggl(\dfrac{-\pi}{2}\biggr)\mathbf{e}_{12}) = 2e^{(-\pi/2)\mathbf{e}_{12}} + \end{align} + durch einen Vergleich mir der Formel \eqref{wuExpo} + \begin{align} + \theta = -\biggl(\dfrac{-\pi}{2}\biggr) = \dfrac{\pi}{2} + \end{align} + ausgelesen werden. + \end{itemize} +\end{beispiel}
\ No newline at end of file diff --git a/buch/papers/clifford/9_KomplexeZahlen.tex b/buch/papers/clifford/9_KomplexeZahlen.tex index 4dbab2c..aaccd3d 100644 --- a/buch/papers/clifford/9_KomplexeZahlen.tex +++ b/buch/papers/clifford/9_KomplexeZahlen.tex @@ -3,26 +3,37 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{komplexe Zahlen} -\rhead{komplexe Zahlen} -Die komplexen Zahlen finden eine Vielzahl von Anwendungsgebiete in den Ingenieurwissenschaften. Das liegt daran, weil die komplexen Zahlen Rotationen und Schwingungen gut beschreiben können. Nachdem vorherigen Kapitel überrascht es wahrscheinlich nicht viele, dass es möglich ist Komplexe Zahlen in der geometrischen Algebra darzustellen. Sie können durch die geraden Grade der 2 Dimensionalen geometrischen Algebra vollständig beschrieben werden: $\mathbb{G}_2^+ \cong \mathbb{C}$. Das bedeutet eine komplexe Zahl kann durch ein Skalar (Grade 0) und einem Bivektor (Grade 2) dargestellt werden. Als Abkürzung nehme ich die Bezeichnung $g_n \in \mathbb{G}_2^+$. +\section{Komplexe Zahlen} +\rhead{Komplexe Zahlen} + +Die komplexen Zahlen finden eine Vielzahl von Anwendungsgebiete in den Ingenieurwissenschaften. Das liegt daran, weil die komplexen Zahlen Rotationen und Schwingungen gut beschreiben können. Nach dem vorherigen Kapitel überrascht es wahrscheinlich nicht viele, dass es möglich ist komplexe Zahlen in der geometrischen Algebra darzustellen. Sie können durch die geraden Grade der zweidimensionalen geometrischen Algebra vollständig beschrieben werden: $\mathbf{g}_n \in G_2^+(\mathbb{R}) \cong \mathbb{C}$. Das bedeutet eine komplexe Zahl \begin{align} - a_0 + a_1 j \cong a_0 + a_1 e_{12} = g_n;\quad a_0, a_1 \in \mathbb{R} + a_0 + a_1 j \cong a_0 + a_1 \mathbf{e}_{12} = \mathbf{g}_n\quad a_0, a_1 \in \mathbb{R}\\ + |r|e^{\theta j} \cong |r|e^{\theta \mathbf{e}_{12}} = \mathbf{g}_n; \quad r, \theta \in \mathbb{R} \end{align} -oder in Polarform. +kann durch ein Skalar (Grad 0) und einem Bivektor (Grad 2) dargestellt werden, weil $j$ und $\mathbf{e}_{12}$ beide die Eigenschaft \begin{align} - |r|e^{\theta j} \cong |r|e^{\theta e_{12}} = g_n; \quad r, \theta \in \mathbb{R} + j^2 = -1\quad \mathbf{e}_{12}^2 = -1 \end{align} -Man beachte, dass wenn wir, wie bei den komplexen Zahlen, Elemente von $\mathbb{G}_2^+$ miteinander Multiplizieren, ist es nicht, wie im Kapitel Rotation bei der Formel (\ref{rotGA})beschrieben, eine Multiplikation von zwei $g_n$ mit einem Vektor. Im 2 dimensionalen bewirken beide Multiplikationen grundsätzlich das Gleiche (eine Drehstreckung), aber die Multiplikation von mehreren $g_n$ ist kommutativ, wie wir es von den komplexen zahlen kennen. +besitzen. Die Kommutativität \begin{align} \begin{split} - &(a + b \mathbf{e_{12}})(c + d \mathbf{e_{12}}) = (c + d \mathbf{e_{12}})(a + b \mathbf{e_{12}})\\ - &(a + b \mathbf{e_{12}})(x\mathbf{e_1}+y\mathbf{e_2})(c + d \mathbf{e_{12}}) \not= (a + b \mathbf{e_{12}})(c + d \mathbf{e_{12}})(x\mathbf{e_1}+y\mathbf{e_2}) + \mathbf{g}_1\mathbf{g}_2 = \mathbf{g}_2\mathbf{g}_1 \enspace&\Leftrightarrow\enspace (a + b \mathbf{e}_{12})(f + g \mathbf{e}_{12}) = (f + g \mathbf{e}_{12})(a + b \mathbf{e}_{12})\\ &\Leftrightarrow\enspace |\mathbf{g}_1||\mathbf{g}_2|e^{(\theta_{g_1} + \theta_{g_2})\mathbf{e}_{12}} = |\mathbf{g}_2||\mathbf{g}_1|e^{(\theta_{g_2} + \theta_{g_1})\mathbf{e}_{12}}, \end{split} \end{align} -Um später die Auswirkung der Quaternionen besser zu verstehen, möchte ich kurz darauf eingehen, was ein $g_n$ für eine Auswirkung auf einen Vektor hat. -Wir kennen diesen Effekt schon von den komplexen Zahlen. Wenn eine komplexe Zahl $c_1=a+bj$ mit einer zweiten $c_2=c+dj$ multipliziert wird, dann kann man diese so aufteilen. +welche wir schon von den komplexen Zahlen her kennen, ist dabei eine in der geometrischen Algebra nur selten anzutreffende Eigenschaft. Beispielsweise ist das geometrische Produkt von \begin{align} - c = (a + bj)(c + dj) = c\cdot(a+bj) + dj\cdot(a+bj) + \mathbf{g}_1\mathbf{v}\not= \mathbf{v}\mathbf{g}_1 \quad\Leftrightarrow\quad(a + b \mathbf{e}_{12})(x\mathbf{e}_1+y\mathbf{e}_2)\not= (x\mathbf{e}_1+y\mathbf{e}_2)(a + b \mathbf{e}_{12}) \end{align} -Wobei $c\cdot(a+bj)$ die jetzige komplexe Zahl $c_1$ um den Faktor $c$ steckt und $dj\cdot(a+bj)$ die um 90° im gegenuhrzeigersinn gedrehte Zahl $c_1$ um den Faktor $d$ streckt. Diese Anteile addiert ergeben, dann den um $c_2$ drehgestreckten Vektor $c_1$. Die wirklichen Vorteile der geometrischen Algebra werden sich aber erst bei den Quaternionen zeigen. +und auch die im folgenden Kapitel behandelten Quaternionen nicht kommutativ. + +Um später die Auswirkung der Quaternionen auf Vektoren besser zu verstehen, möchte ich kurz darauf eingehen, was ein $\mathbf{g}_n$ für eine Auswirkung auf einen Vektor hat. +Wir kennen diesen Effekt schon von den komplexen Zahlen. Wenn eine komplexe Zahl $c_1=a+bj$ mit einer zweiten $c_2=f+gj$ multipliziert wird, dann kann man +\begin{align} + c = c_1\cdot c_2 = (a + bj)(d + ej) = a\cdot(d+ej) + bj\cdot(d+ej) +\end{align} +so aufteilen. Dabei ist $a\cdot(d+ej)$ die jetzige komplexe Zahl $c_2$ um den Faktor $a$ steckt und $bj\cdot(d+ej)$ die um 90° im Gegenuhrzeigersinn gedrehte Zahl $c_2$ um den Faktor $b$ streckt. Diese Anteile addiert ergeben, dann den um $c_1$ dreh-gestreckten Vektor $c_2$. Der gleiche Effekt hat +\begin{align}\label{GAdrehstreck} + \mathbf{v}' = \mathbf{g}\mathbf{v} = (a + b\mathbf{e}_{12})(d\mathbf{e}_{1} + e\mathbf{e}_{2}) = a(d\mathbf{e}_{1} + e\mathbf{e}_{2}) + b\mathbf{e}_{12}(d\mathbf{e}_{1} + e\mathbf{e}_{2}) +\end{align} +in der zweidimensionalen geometrischen Algebra. Im Falle der komplexen Zahlen macht es jetzt noch nicht wirklich Sinn in die geometrische Algebra zu wechseln. Die potenziellen Vorteile der geometrischen Algebra werden sich aber erst bei den Quaternionen zeigen.
\ No newline at end of file diff --git a/buch/papers/clifford/Bilder/GimbalLock.png b/buch/papers/clifford/Bilder/GimbalLock.png Binary files differnew file mode 100644 index 0000000..733c535 --- /dev/null +++ b/buch/papers/clifford/Bilder/GimbalLock.png diff --git a/buch/papers/clifford/Bilder/Links.txt b/buch/papers/clifford/Bilder/Links.txt new file mode 100644 index 0000000..8e8edfe --- /dev/null +++ b/buch/papers/clifford/Bilder/Links.txt @@ -0,0 +1,3 @@ +MatrizenGruppen: Vorlesung 10 Drehmatrizen Müller +GimbalLock: https://www.thetechgame.com/News/sid=2444/fifa-12-demo-glitches-causing-youtube-stir/start=10.html +RotSpieg: http://www.math.uni-bremen.de/didaktik/ma/ralbers/Veranstaltungen/MaDenken1313/Material/Kap2KonAbb.pdf
\ No newline at end of file diff --git a/buch/papers/clifford/Bilder/MatrizenGruppen.png b/buch/papers/clifford/Bilder/MatrizenGruppen.png Binary files differnew file mode 100644 index 0000000..398de5a --- /dev/null +++ b/buch/papers/clifford/Bilder/MatrizenGruppen.png diff --git a/buch/papers/clifford/Bilder/RotSpieg.pdf b/buch/papers/clifford/Bilder/RotSpieg.pdf Binary files differnew file mode 100644 index 0000000..c4c107d --- /dev/null +++ b/buch/papers/clifford/Bilder/RotSpieg.pdf diff --git a/buch/papers/clifford/Bilder/RotSpieg.png b/buch/papers/clifford/Bilder/RotSpieg.png Binary files differnew file mode 100644 index 0000000..27a5eb2 --- /dev/null +++ b/buch/papers/clifford/Bilder/RotSpieg.png diff --git a/buch/papers/clifford/Bilder/test.png b/buch/papers/clifford/Bilder/test.png Binary files differnew file mode 100644 index 0000000..1633a2e --- /dev/null +++ b/buch/papers/clifford/Bilder/test.png diff --git a/buch/papers/clifford/Makefile.inc b/buch/papers/clifford/Makefile.inc index 8cdd02e..fe32eba 100644 --- a/buch/papers/clifford/Makefile.inc +++ b/buch/papers/clifford/Makefile.inc @@ -13,8 +13,10 @@ dependencies-clifford = \ papers/clifford/3_MultiplikationVektoren.tex \ papers/clifford/4_GeometrischesProdukt.tex \ papers/clifford/5_PolareDarstellung.tex \ - papers/clifford/6_Dirac-Matrizen.tex \ - papers/clifford/7_Reflektion.tex \ + papers/clifford/6_PauliMatrizen.tex \ + papers/clifford/7_Spiegelung.tex \ papers/clifford/8_Rotation.tex \ papers/clifford/9_KomplexeZahlen.tex \ - papers/clifford/10_Quaternionen.tex + papers/clifford/10_Quaternionen.tex \ + papers/clifford/11_Fazit.tex + diff --git a/buch/papers/clifford/main.tex b/buch/papers/clifford/main.tex index 46d04bd..3649b20 100644 --- a/buch/papers/clifford/main.tex +++ b/buch/papers/clifford/main.tex @@ -15,11 +15,12 @@ \input{papers/clifford/3_MultiplikationVektoren.tex} \input{papers/clifford/4_GeometrischesProdukt.tex} \input{papers/clifford/5_PolareDarstellung.tex} -\input{papers/clifford/6_Dirac-Matrizen.tex} -\input{papers/clifford/7_Reflektion.tex} +\input{papers/clifford/6_PauliMatrizen.tex} +\input{papers/clifford/7_Spiegelung.tex} \input{papers/clifford/8_Rotation.tex} \input{papers/clifford/9_KomplexeZahlen.tex} \input{papers/clifford/10_Quaternionen.tex} +\input{papers/clifford/11_Fazit.tex} \printbibliography[heading=subbibliography] \end{refsection} diff --git a/buch/papers/clifford/packages.tex b/buch/papers/clifford/packages.tex index 8fb4bd9..0d354db 100644 --- a/buch/papers/clifford/packages.tex +++ b/buch/papers/clifford/packages.tex @@ -7,3 +7,5 @@ % if your paper needs special packages, add package commands as in the % following example %\usepackage{packagename} + +\usetikzlibrary{calc,angles,quotes,babel}
\ No newline at end of file diff --git a/buch/papers/clifford/references.bib b/buch/papers/clifford/references.bib index ff829d6..9090005 100644 --- a/buch/papers/clifford/references.bib +++ b/buch/papers/clifford/references.bib @@ -4,32 +4,13 @@ % (c) 2020 Autor, Hochschule Rapperswil % -@online{clifford:bibtex, - title = {BibTeX}, - url = {https://de.wikipedia.org/wiki/BibTeX}, - date = {2020-02-06}, - year = {2020}, - month = {2}, - day = {6} -} - -@book{clifford:numerical-analysis, - title = {Numerical Analysis}, - author = {David Kincaid and Ward Cheney}, - publisher = {American Mathematical Society}, - year = {2002}, - isbn = {978-8-8218-4788-6}, - inseries = {Pure and applied undegraduate texts}, - volume = {2} -} - -@article{clifford:mendezmueller, - author = { Tabea Méndez and Andreas Müller }, - title = { Noncommutative harmonic analysis and image registration }, - journal = { Appl. Comput. Harmon. Anal.}, - year = 2019, - volume = 47, - pages = {607--627}, - url = {https://doi.org/10.1016/j.acha.2017.11.004} +@article{clifford:hestenes_GA, + author = { David Hestenes, Garret Eugene Sobczyk and James S. Marsh }, + title = { Clifford Algebra to Geometric Calculus. A Unified Language for Mathematics and Physics }, + journal = { American Journal of Physics }, + year = 1985, + volume = 53, + pages = {24}, + url = {https://www.researchgate.net/publication/258944244_Clifford_Algebra_to_Geometric_Calculus_A_Unified_Language_for_Mathematics_and_Physics} } diff --git a/buch/papers/erdbeben/Gausskurve2.pdf b/buch/papers/erdbeben/Gausskurve2.pdf Binary files differindex bee3bc0..5e4afdf 100644 --- a/buch/papers/erdbeben/Gausskurve2.pdf +++ b/buch/papers/erdbeben/Gausskurve2.pdf diff --git a/buch/papers/erdbeben/Gausskurve2.tex b/buch/papers/erdbeben/Gausskurve2.tex index 44319c3..2441766 100644 --- a/buch/papers/erdbeben/Gausskurve2.tex +++ b/buch/papers/erdbeben/Gausskurve2.tex @@ -1,13 +1,12 @@ \documentclass{standalone} \usepackage{pgfplots} - +\usepackage{txfonts} \pgfplotsset{compat = newest} \begin{document} - -\begin{tikzpicture} +\begin{tikzpicture}[>=latex,thick] \begin{axis}[ diff --git a/buch/papers/erdbeben/Gausskurve3.pdf b/buch/papers/erdbeben/Gausskurve3.pdf Binary files differindex e86a403..b86023f 100644 --- a/buch/papers/erdbeben/Gausskurve3.pdf +++ b/buch/papers/erdbeben/Gausskurve3.pdf diff --git a/buch/papers/erdbeben/Gausskurve3.tex b/buch/papers/erdbeben/Gausskurve3.tex index 85455ef..032d6de 100644 --- a/buch/papers/erdbeben/Gausskurve3.tex +++ b/buch/papers/erdbeben/Gausskurve3.tex @@ -1,13 +1,12 @@ \documentclass{standalone} \usepackage{pgfplots} - +\usepackage{txfonts} \pgfplotsset{compat = newest} \begin{document} - -\begin{tikzpicture} +\begin{tikzpicture}[>=latex,thick] \begin{axis}[ diff --git a/buch/papers/erdbeben/Teil_Fabio.tex b/buch/papers/erdbeben/Teil_Fabio.tex new file mode 100644 index 0000000..9f5d092 --- /dev/null +++ b/buch/papers/erdbeben/Teil_Fabio.tex @@ -0,0 +1,202 @@ +\section{Kalman-Filter} +\subsection{Was ist ein Erdbeben?} +Für das Verständnis möchten wir zuerst erklären, was ein Erdbeben genau ist. +Das soll uns helfen, eine Verknüpfung zwischen dem Naturphänomen und der mathematischen Problemstellung herzustellen. + + +Unter einem Erdbeben verstehen wir eine Erschütterung des Erdkörpers. +Dabei reiben zwei tektonische Platten aneinander, welche sich durch die Gesteinsverzahnung gegenseitig blockieren. +Aufgrund dieser Haftreibung entstehen Spannungen, die sich immer mehr bis zum Tipping Point aufbauen. +Irgendwann ist der Punkt erreicht, in dem die Scherfestigkeit der Gesteine überwunden wird. +Wenn dies passiert, entlädt sich die aufgebaute Spannung und setzt enorme Energien frei, die wir als Erdbeben wahrnehmen. + +Ein Erdbeben breitet sich vom Erdbebenherd in allen Richtungen gleich aus. +Vergleichbar ist, wenn man einen Stein in einen Teich wirft und die Wellen beobachten kann, die sich ausbreiten. + +Wir möchten nun mittels Kalman-Filter die Erdbebenbeschleunigung herausfinden. +Die Erdbebenbeschleunigung ist in der Praxis zur Entwicklung von Erdbebengefährdungskarten, sowie der Ausarbeitung von Baunormen für erdbebengerechte Bauweise von Bedeutung. + + +\subsection{Künstliche Erdbebendaten} +Nun möchten wir anhand eines eigenen Beispiels das Kalman-Filter anwenden. +Da wir keine Rohdaten über vergangene Erdbeben zur Hand haben, müssen wir künstliche Daten erzeugen, um sie in das Filter einzugeben und somit den Prozess starten. +Dafür nehmen wir die Formel für harmonisch gedämpfte Schwingungen, die + +\begin{equation} + y = A \sin(\omega t e^{-lambda t}) +\end{equation} + +lautet. + +A ist die Amplitude der Schwingung und beschreibt die Heftigkeit eines Erdbebens, die Magnitude. +Omega repräsentiert die Erdbebenfrequenz, die in der Realität zwischen 1 Hz und 30 Hz beträgt. +Wir wählen als Erwartungswert 15 Herz und für die Standardabweichung 1 Hz. +Lambda ist die Bodendämpfung, für die wir 0.2 wählen. +Wir haben diese Zahl aus der Literatur entnommen, denn sie ist für das Bauwesen bedeutend. +Lambda ist ein Materialparameter von Böden. + +Je grösser Lambda gewählt wird, desto stärker wirkt die Dämpfung der Massenschwingung. +Die Funktion ist zeitabhängig und wir lassen pro Sekunde zehn Messwerte generieren. + +Die Frequenz basiert auf einer random-Funktion, da wir das Erdbeben unberechenbar gestalten möchten. +Mit dem Golay-Filter können wir hohe Frequenz-Anteile in die Berechnung mit einfliessen lassen, anstatt sie abzuschneiden. +Die Bildung eines üblichen Mittelwerts wäre hier weniger geeignet. + +\begin{lstlisting} +freq = sgolayfilt(randn(size(Time)),0,11)*freqstd... ++freqmean; +\end{lstlisting} + +Mit der Frequenz erhalten wir die Winkelbeschleunigung und damit können wir die Amplitude berechnen. + + +\begin{lstlisting} +w = 2 * pi * freq; +a = Amplitude*sin(cumsum(w.*[0;diff(Time)])).*exp(-lambda*Time); +\end{lstlisting} + +Mit der Matlab-Funktion ode45 haben wir eine Funktion gefunden, um die Differentialgleichung aufzulösen. ode45 basiert auf dem Runge-Kutta-Verfahren, einem Einschrittverfahren, bei dem die Lösung ausgehend von einem gegebenen Anfangswert, in einer Näherung gesucht wird. + +\begin{lstlisting} +[T,Y] = ode45(@(t,x)ErzeugteSchwingung(t,x,m,k,d,a,Time),[0 tend], IC, SolverOptions); +\end{lstlisting} + +Grafik einfügen + +In der Grafik erkennen wir in den Sekunden 0 bis 10, dass die Sinuskurve gezackt ist. +Das deutet darauf hin, dass die Frequenz des Erdbebens einen hohen Einfluss auf die Masse des Seismographen hat. +Ab der 10. Sekunde bis zu tend, pendelt sich die Masse in ihre Eigenfrequenz ein und verhält sich unabhängiger vom Erdbeben. + +\subsection{Versuch (bin noch dran)} + +Um den Kalman-Filter auszuprobieren, setzen wir nun Werte ein. +Für die Systemparameter wählen wir m=1.0, D = 0.3 und k = 0.1 und fügen es in die Differentialgleichung + +\begin{equation} + m\ddot x + 2k \dot x + Dx = f +\end{equation} + +ein und erhalten + +\begin{equation} + 1\ddot x + 0.1 \dot x + 0.3x = f +\end{equation} + +\subsection{Matlab Code} + + +\begin{lstlisting} + %% Initialisierte Werte + t0 = 0.00; % Anfangszeit + deltat = 0.01; % Zeitschritt + tend = 50.00; % Endzeit +\end{lstlisting} +Ein natürliches Erdbeben dauert zwischen wenigen Sekunden bis etwa eine Minute an. +50 Sekunden genügen für unsere Daten. +Pro Sekunde erhalten wir 100 Messpunkte, die für den Prozess des Filters eine präzise Anwendung ermöglichen. + +\begin{lstlisting} + % Standard-Abweichungen Prozess + sigmax = 0.05e-3; % Position + sigmav = 0.01e-3; % Geschwindigkeit + sigmaf = 1; % (Äussere) Kraft + + % Standard-Abweichung Messung + sigmam = 0.01e-3; +\end{lstlisting} + +Wir vertrauen dem System und geben kleine Standardabweichungen für die Position, Geschwindigkeit und Kraft ein. +Bei der Messung erwarten wir auch, dass die Sensoren genau funktionieren. +Jedoch hängt das vom Hersteller ab oder muss statistisch ermittelt werden. + + +\begin{lstlisting} + % Systemparameter +m = 1.00; % Masse +D = 0.30; % Federkonstante +k = 0.10; % Dämpfung +\end{lstlisting} +Hier werden die Spezifikationen des Seismographen definiert. + +\begin{lstlisting} +%% Kalmanfilter +% Initialisierung + +% Anfangszustand (Position, Geschwindigkeit, Kraft) +x0 = [0; 0; 0]; + +% Unsicherheit des Anfangszustand +P0 = [0, 0, 0; ... +0, 0, 0; ... +0, 0, 0]; + +% Systemmatrizen +A = [0, 1, 0;... % Dynamikmatrix +-D/m, -2*k/m, 1;... +0, 0, 0]; % Ableitungen von f(t) unbekant. Annahme: 0 +A = expm(A * deltat); + +Q = [sigmax^2, 0, 0;... +0, sigmav^2, 0;... +0, 0, sigmaf^2]; % Prozessrauschen (Covarianz) + + +\begin{lstlisting} +% Messprozess +H = [1, 0, 0]; % Messmatrix +R = sigmam^2; % Messrauschen (Könnte durch Versuche bestimmt werden) +\end{lstlisting} +Tritt ein Erdbeben ein, wird die Position der Masse in die Messmatrix eingetragen. + + +I = eye(3); % Identity matrix (Einheitsmatrix) + +\begin{lstlisting} +% Filterprozess + +% Initialisieren der Variablen +N = length(t); % Anzahl Punkte im Einheitsvektor (= Anzahl Messwerte) +xhat = zeros(3, N); % Matrix mit geschätzten Zuständen + +% Index ':' bedeutet: 'alles' +% Index '(1, :)' bedeutet: 'alles aus der 1. Zeile' + +% Anfangszustand setzen +xhat(:, 1) = x0; +P = P0; +\end{lstlisting} + +\begin{lstlisting} + +% Kalman-Matrizen konvergiert. Vorab-Berechnung in 'genügenden' Iterationen +for idx = 1:100 +Ppred = A * P * A' + Q; % Prädizieren der Kovarianz +S = (H * Ppred * H' + R); % Innovationskovarianz +K = Ppred * H' / S; % Filter-Matrix (Kalman-Gain) +P = (I - K * H) * Ppred; % Aktualisieren der Kovarianz +end +\end{lstlisting} + +In diesem Schritt wird die Kovarianz vorhergesagt, mit der Messung verglichen und nach jeder Berechnung aktualisiert. + +\begin{lstlisting} +% Anfangszustand gegeben +% Erster zu berechnender Wert ist der zweite +for idx = 2:N +% Vorhersage +xpred = A * xhat(:, idx-1); % Prädizierter Zustand aus Bisherigem und System +% Ppred = A * P * A' + Q; % Prädizieren der Kovarianz + +% Korrektur +y = xt(idx) - H * xpred; % Messungen/ Kraft aus System - Vohersage +% S = (H * Ppred * H' + R); % Innovationskovarianz +% K = Ppred * H' / S; + +xhat(:, idx) = xpred + K * y; % Aktualisieren des Systemzustands +% P = (I - K * H) * Ppred; % Aktualisieren der Kovarianz +end +\end{lstlisting} + +\subsection{Resultate} +Grafik einfügen +Wir erkennen, dass wir mit dem Kalman-Filter eine gute Methode gefunden haben, die äussere Beschleunigung zu schätzen. Die Schätzung der nächsten Position der Federmasse liegt immer ziemlich nahe der tatsächlichen Messung. Man muss aber auch berücksichtigen, dass die Federschwingung ziemlich kontrolliert verläuft und das Kalman-Filter somit präzise Vorhersagen treffen kann. diff --git a/buch/papers/erdbeben/main.tex b/buch/papers/erdbeben/main.tex index 83ef295..4167475 100644 --- a/buch/papers/erdbeben/main.tex +++ b/buch/papers/erdbeben/main.tex @@ -3,34 +3,16 @@ % % (c) 2020 Hochschule Rapperswil % -\chapter{Thema\label{chapter:erdbeben}} -\lhead{Thema} +\chapter{Erdbebenmessung\label{chapter:erdbeben}} +\lhead{Erdbeben} \begin{refsection} -\chapterauthor{Hans Muster} - -Ein paar Hinweise für die korrekte Formatierung des Textes -\begin{itemize} -\item -Absätze werden gebildet, indem man eine Leerzeile einfügt. -Die Verwendung von \verb+\\+ ist nur in Tabellen und Arrays gestattet. -\item -Die explizite Platzierung von Bildern ist nicht erlaubt, entsprechende -Optionen werden gelöscht. -Verwenden Sie Labels und Verweise, um auf Bilder hinzuweisen. -\item -Beginnen Sie jeden Satz auf einer neuen Zeile. -Damit ermöglichen Sie dem Versionsverwaltungssysteme, Änderungen -in verschiedenen Sätzen von verschiedenen Autoren ohne Konflikt -anzuwenden. -\item -Bilden Sie auch für Formeln kurze Zeilen, einerseits der besseren -Übersicht wegen, aber auch um GIT die Arbeit zu erleichtern. -\end{itemize} - +\chapterauthor{Lukas Zogg und +Fabio Veicelli} \input{papers/erdbeben/teil0.tex} \input{papers/erdbeben/teil1.tex} -\input{papers/erdbeben/teil2.tex} -\input{papers/erdbeben/teil3.tex} +%\input{papers/erdbeben/teil2.tex} +%\input{papers/erdbeben/teil3.tex} +\input{papers/erdbeben/Teil_Fabio.tex} \printbibliography[heading=subbibliography] \end{refsection} diff --git a/buch/papers/erdbeben/references.bib b/buch/papers/erdbeben/references.bib index aef5de9..444c82d 100644 --- a/buch/papers/erdbeben/references.bib +++ b/buch/papers/erdbeben/references.bib @@ -1,35 +1,57 @@ -% -% references.bib -- Bibliography file for the paper erdbeben -% -% (c) 2020 Autor, Hochschule Rapperswil -% +%% This BibTeX bibliography file was created using BibDesk. +%% https://bibdesk.sourceforge.io/ + +%% Created for lukas zogg at 2021-07-27 17:56:45 +0200 + + +%% Saved with string encoding Unicode (UTF-8) + + + +@article{erdbeben:aragher_understanding_2012, + author = {Faragher, Ramsey}, + date-added = {2021-07-17 16:44:00 +0200}, + date-modified = {2021-07-17 16:45:54 +0200}, + journal = {Signal Processing Magazine}, + month = {09}, + number = {5}, + pages = {128--132}, + title = {Understanding the Basis of the Kalman Filter Via a Simple and Intuitive Derivation}, + volume = {29}, + year = {2012}, + Bdsk-File-1 = {YnBsaXN0MDDSAQIDBFxyZWxhdGl2ZVBhdGhZYWxpYXNEYXRhXxByLi4vLi4vLi4vLi4vLi4vLi4vRG93bmxvYWRzL1VuZGVyc3RhbmRpbmcgdGhlIEJhc2lzIG9mIHRoZSBLYWxtYW4gRmlsdGVyIFZpYSBhIFNpbXBsZSBhbmQgSW50dWl0aXZlIERlcml2YXRpb24ucGRmTxECbgAAAAACbgACAAAMTWFjaW50b3NoIEhEAAAAAAAAAAAAAAAAAAAAAAAAAEJEAAH/////H1VuZGVyc3RhbmRpbmcgdGhlICNGRkZGRkZGRi5wZGYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////8AAAAAAAAAAAAAAAAABgACAAAKIGN1AAAAAAAAAAAAAAAAAAlEb3dubG9hZHMAAAIAci86VXNlcnM6bHVrYXN6b2dnOkRvd25sb2FkczpVbmRlcnN0YW5kaW5nIHRoZSBCYXNpcyBvZiB0aGUgS2FsbWFuIEZpbHRlciBWaWEgYSBTaW1wbGUgYW5kIEludHVpdGl2ZSBEZXJpdmF0aW9uLnBkZgAOAK4AVgBVAG4AZABlAHIAcwB0AGEAbgBkAGkAbgBnACAAdABoAGUAIABCAGEAcwBpAHMAIABvAGYAIAB0AGgAZQAgAEsAYQBsAG0AYQBuACAARgBpAGwAdABlAHIAIABWAGkAYQAgAGEAIABTAGkAbQBwAGwAZQAgAGEAbgBkACAASQBuAHQAdQBpAHQAaQB2AGUAIABEAGUAcgBpAHYAYQB0AGkAbwBuAC4AcABkAGYADwAaAAwATQBhAGMAaQBuAHQAbwBzAGgAIABIAEQAEgBwVXNlcnMvbHVrYXN6b2dnL0Rvd25sb2Fkcy9VbmRlcnN0YW5kaW5nIHRoZSBCYXNpcyBvZiB0aGUgS2FsbWFuIEZpbHRlciBWaWEgYSBTaW1wbGUgYW5kIEludHVpdGl2ZSBEZXJpdmF0aW9uLnBkZgATAAEvAAAVAAIAEP//AAAACAANABoAJACZAAAAAAAAAgEAAAAAAAAABQAAAAAAAAAAAAAAAAAAAws=}} + +@url{erdbeben:wikipedia, + author = {https://de.wikipedia.org/wiki/Kalman-Filter}, + date-added = {2021-07-17 16:42:22 +0200}, + date-modified = {2021-07-17 16:43:53 +0200}, + title = {Kalmanfilter}, + urldate = {2021-07-0}} @online{erdbeben:bibtex, + date = {2020-02-06}, + day = {6}, + month = {2}, title = {BibTeX}, url = {https://de.wikipedia.org/wiki/BibTeX}, - date = {2020-02-06}, year = {2020}, - month = {2}, - day = {6} -} + Bdsk-Url-1 = {https://de.wikipedia.org/wiki/BibTeX}} @book{erdbeben:numerical-analysis, - title = {Numerical Analysis}, author = {David Kincaid and Ward Cheney}, - publisher = {American Mathematical Society}, - year = {2002}, - isbn = {978-8-8218-4788-6}, inseries = {Pure and applied undegraduate texts}, - volume = {2} -} + isbn = {978-8-8218-4788-6}, + publisher = {American Mathematical Society}, + title = {Numerical Analysis}, + volume = {2}, + year = {2002}} @article{erdbeben:mendezmueller, - author = { Tabea Méndez and Andreas Müller }, - title = { Noncommutative harmonic analysis and image registration }, - journal = { Appl. Comput. Harmon. Anal.}, - year = 2019, - volume = 47, - pages = {607--627}, - url = {https://doi.org/10.1016/j.acha.2017.11.004} -} - + author = {Tabea M{\'e}ndez and Andreas M{\"u}ller}, + journal = {Appl. Comput. Harmon. Anal.}, + pages = {607--627}, + title = {Noncommutative harmonic analysis and image registration}, + url = {https://doi.org/10.1016/j.acha.2017.11.004}, + volume = 47, + year = 2019, + Bdsk-Url-1 = {https://doi.org/10.1016/j.acha.2017.11.004}} diff --git a/buch/papers/erdbeben/teil0.tex b/buch/papers/erdbeben/teil0.tex index 6e89821..c985713 100644 --- a/buch/papers/erdbeben/teil0.tex +++ b/buch/papers/erdbeben/teil0.tex @@ -2,21 +2,100 @@ % einleitung.tex -- Beispiel-File für die Einleitung % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil -% -\section{Teil 0\label{erdbeben:section:teil0}} -\rhead{Teil 0} -Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam -nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam -erat, sed diam voluptua \cite{erdbeben:bibtex}. -At vero eos et accusam et justo duo dolores et ea rebum. -Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum -dolor sit amet. - -Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam -nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam -erat, sed diam voluptua. -At vero eos et accusam et justo duo dolores et ea rebum. Stet clita -kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit -amet. +%% +\section{Was ist ein Erdbeben? \label{erdbeben:section:teil0}} +\rhead{Erdbeben} +Für das Verständnis möchten wir zuerst erklären, was ein Erdbeben genau ist. +Das soll uns helfen, eine Verknüpfung zwischen dem Naturphänomen und der mathematischen Problemstellung herzustellen. + +Unter einem Erdbeben verstehen wir eine Erschütterung des Erdkörpers. +Dabei reiben zwei tektonische Platten aneinander, welche sich durch die Gesteinsverzahnung gegenseitig blockieren. +Diese Haftreibung durch die Steine wird so lange aufgebaut, bis sie nicht mehr gehalten werden kann. +Wenn dies passiert, entlädt sich die aufgebaute Spannung und setzt enorme Energien frei, die wir als Erdbeben wahrnehmen. +Ein Erdbeben breitet sich vom Erdbebenherd in allen Richtungen gleich aus. +Vergleichbar ist, wenn man einen Stein in einen Teich wirft und die Wellen beobachten kann, die sich ausbreiten. + +\subsection{Funktion eines Seismograph} +Um ein Erdbeben kenntlich zu machen, werden in der Regel Seismographen mit vielen Sensoren verwendet. +Ein Seismograph besteht im Grunde aus einer federgelagerten Masse. Wirkt eine Bodenerregung auf das Gerät ein, schwing das Gehäuse und dadurch auch die gekoppelte Masse. +Stoppt das Erdbeben, schwingt das Gehäuse nicht mehr. +Die Masse schwing jedoch in seiner Eigendynamik weiter. +Relativbewegung des Bodens kann damit als Auslenkung im Zeitverlauf gemessen werden. +In modernen Seismographen wird die Bodenbewegung in alle Richtungen gemessen, sowohl Horizontal als auch Vertikal. +Wir konstruieren uns eine einfachere Version eines Seismographen mit eine Gehäuse, an dem zwei Federn und eine Masse befestigt sind. +Der Seismograph ist in Abbildung ~\ref{erdbeben:Seismograph} ersichtlich. +Ein Sensor unter der Masse misst die Position, bzw. die Auslenkung der Feder und der Masse. +Dies bedeutet, unser Seismograph kann nur in eine Dimension Messwerte aufnehmen. + +\begin{figure} + \begin{center} + \includegraphics[width=5cm]{papers/erdbeben/Apperatur} + \caption{Aufbau des Seismographen mit Gehäuse, Masse, Federn und Sensor} + \label{erdbeben:Seismograph} + \end{center} +\end{figure} + +\subsection{Ziel} +Unser Seismograph misst nur die Position der Masse über die Zeit. +Wir wollen jedoch die Beschleunigung $a(t)$ des Boden, bzw. die Kraft $f(t)$, welche auf das Gehäuse wirkt, bestimmten. +Anhand dieser Beschleunigung, bzw. der Krafteinwirkung durch die Bodenbewegung, wird später das Bauwerk bemessen. +Dies bedeutet, die für uns interessante Grösse $f(t)$ wird nicht durch einen Sensor erfasst. +Jedoch können wir durch zweifaches ableiten der Positionsmessung $s(t)$ die Beschleunigung der Masse berechnen. +Das heisst: Die Messung ist zweifach Integriert die Kraft $f(t)$ inklusive der Eigendynamik der Masse. +Um die Krafteinwirkung der Masse zu berechnen, müssen wir Gleichungen für unser System finden. + +\subsection{Systemgleichung} +Im Paper~\cite{erdbeben:mendezmueller} wurde das System gleich definiert und vorgegangen. +Im Fall unseres Seismographen, handelt es sich um ein Feder-Masse-Pendel. +Dieser kann durch die Differentialgleichung zweiter Ordnung einer gedämpften Schwingung am harmonischen Oszillator beschrieben werden. +Die Gleichung lautet: +\begin{equation} +m\ddot s + 2k \dot s + Ds = f. +\end{equation} +wobei $m$ die Masse, $k$ die Dämpfungskonstante und $D$ die Federkonstante bezeichnet. +Da die Differentialgleichung linear ist, kann sie in die kompaktere und einfachere Matrix-Form umgewandelt werden. +Dazu verwenden wir die Subsitution: +\[
s_1 = s
\qquad \text{und} \qquad
s_2 = \dot s
.
\] +Somit entstehen die Gleichungen für die Position $ \dot s_1(t)$ der Masse : +\[ \dot {s_1} = {s_2}\] +und +\[ \dot s_2 = -\frac{D}{m} {s_1} -\frac{2k}{m} {s_2} + \frac{f} {m} \] +für die Beschleunigung $\dot s_2(t)$ der Masse. +Diese können wir nun in der Form +\[ f =-\frac{D}{m} {s_1} -\frac{2k}{m} {s_2} + \frac{f} {m} \] +auch als Matrix-Vektor-Gleichung darstellen. +Dafür wird die Gleichung in die Zustände aufgeteilt. +Die für uns relevanten Zustände sind die Position der Masse, die Geschwindigkeit der Masse und die äussere Beschleunigung des ganzen Systems. + +Dabei muss unterschieden werden, um welche Beschleunigung es sich handelt. +Das System beinhaltet sowohl eine Beschleunigung der Masse (innere Beschleunigung) als auch eine Beschleunigung der ganzen Apparatur (äussere Beschleunigung). +In unserem Fall wird die äusseren Beschleunigung gesucht, da diese der Erdbebenanregung gleich kommt. +Dazu wird ein Zustandsvektor definiert: +\[ + \left(\begin{array}{c} {s_1} \\ {s_2} \\ {f} \end{array}\right). + \] +Durch Rücksubstituion ergibt sich uns folgende Systemgleichung in Matrix schreibweise, , wobei $\dot {s_1}= v$ ist: +\begin{equation} +\frac{d}{dt} \left(\begin{array}{c} s(t) \\ v(t) \\ f(t) \end{array}\right) = \left( + \begin{array}{ccc} +0 & 1& 0 \\ +- \frac{D}{m} &-\frac{2k}{m} & \frac{1} {m}\\ +0 & 0 & 0\\ +\end{array}\right) \left(\begin{array}{c} s(t)\\ v(t)\\ f(t) \end{array}\right). +\end{equation} +Wir wissen nicht wie sich die Kraft verhält. +Deshalb treffen wir die Annahme, das sich die Kraft über die Beobachtungszeit nicht verändert. +Diese Annahme ist nicht zulässig, jedoch ist dies das beste, was wir Annehmen können. +Diese unzutreffende Annahme wird späteren Berechnungen berücksichtigen werden +Da die Kraft unbekannt ist, wird die letzte Zeile mit Nullen gefüllt, denn genau diese Werte wollen wir. + + + + + + + + + diff --git a/buch/papers/erdbeben/teil1.tex b/buch/papers/erdbeben/teil1.tex index 0d21f84..6c334bf 100644 --- a/buch/papers/erdbeben/teil1.tex +++ b/buch/papers/erdbeben/teil1.tex @@ -7,144 +7,111 @@ % teil2.tex -- Beispiel-File für teil2 % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil -% +%% -\section{Kalman Filter} -\subsection{Geschichte} -Das Kalman Filter wurde 1960 von Rudolf Emil Kalman entdeckt und direkt von der NASA für die Appollo Mission benutzt. Der Filter kommt mit wenig Rechenleistung aus und war somit dafür geeignet die Rakete bei der Navigation zu unterstützen. Das Filter schätzt den Zustand eines Systems anhand von Messungen und kann den nächsten Zustand errechnen. Typische Anwendungen des Kalman-Filters sind die Glättung von verrauschten Daten und die Schätzung von Parametern und kommt heutzutage in jedem Satellit, Navigationssystem, Smartphones und Videospielen vor. +\rhead{Kalman-Filter} -\subsection{Wahrscheinlichkeit} -Das Kalman Filter versucht nichts anderes, als ein geeigneter Wert zwischen zwei Normalverteilungen zu schätzen. Die eine Kurve zeigt die errechnete Vorhersage des Zustands, bzw. deren Normal- Gauss-Verteilung. Die andere Kurve zeigt die verrauschte Messung des nächsten Zustand, bzw. deren Normal-Verteilung. Wie man in am Beispiel dieser zwei Gauss-Verteilungen sehen kann, ist sowohl der geschätzte Zustand als auch der gemessene Zustand nicht am selben Punkt. +\section{Kalman-Filter} +Interessante Grösse ist also Integral von Überlagerung zweier Kräfte. +Wir brauchen also dir zweite Ableitung von der Messung , ohne deren Eigendynamik. +Da wir die äussere Kraft nicht direkt messen können, benötigen wir ein Werkzeug, welches aus der gemessenen Position, die Krafteinwirkung auf unsere System schätzt. +Dies ist eine typische Anwendung für das Kalman-Filter. +Unser Ziel ist es, anhand der Messung die eigentlich interessante Grösse $f$ zu bestimmen. +Dabei wird durch eine deterministische Vorhersage, in dem der Zustand * Eigendynamik des Systems gerechnet. +Die Idee dahinter ist, dass das Kalman-Filter die nicht-deterministische Grösse $f$ anhand der Messung und der Vorhersage zu bestimmen. +Für mehrere Dimensionen (x,y,z) würde der Pythagoras für das System benötigt werden. +Da sich der Pythagoras bekanntlich nicht linear verhält, kann kein lineares Kalman-Filter implementiert werden. +Da das Kalman-Filter besonders effektiv und einfach für lineare Abläufe geeignet ist, würde eine zweidimensionale Betrachtung den Rahmen dieser Arbeit sprengen. +Einfachheitshalber beschränken wir uns auf den linearen Fall, da dadurch die wesentlichen Punkte bereits aufgezeigt werden. +Für ein nicht-lineares System werden Extended Kalman-Filter benötigt, bei denen die System-Matrix (A) durch die Jacobi-Matrix des System ersetzt wird. +\subsection{Geschichte} +Das Kalman-Filter wurde 1960 von Rudolf Emil Kalman entdeckt und direkt von der NASA für die Appollo Mission benutzt. +Das Filter kommt mit wenig Rechenleistung aus und war somit dafür geeignet die Rakete bei der Navigation zu unterstützen. +Das Filter schätzt den Zustand eines Systems anhand von Messungen und kann den nächsten Zustand errechnen. Eine typische Anwendungen des Kalman-Filters ist Glättung von verrauschten Daten und die Schätzung von Parametern. Dies kommt heutzutage in jedem Satellit, Navigationssystem, Smartphones und Videospielen vor. +\subsection{Wahrscheinlichkeit} +Das Kalman-Filter schätzt den wahrscheinlichsten Wert zwischen Normalverteilungen. +Dies bedeutet, das Filter schätzt nicht nur den Mittelwert, sondern auch die Standartabweichung. +Da Normalverteilungen dadurch vollständig definiert sind, schätzt ein Kalman-Filter die gesamte Verteilungsfunktion des Zustandes. +In der Abbildung~\ref{erdbeben: Zwei Normalverteilungen} sind zwei Funktionen dargestellt. +Die eine Funktion zeigt die errechnete Vorhersage des Zustands, bzw. deren Normalverteilung. +Die andere Funktion zeigt die verrauschte Messung des nächsten Zustand, bzw. deren Normalverteilung. +Wie man am Beispiel der Gauss-Verteilungen in Abblidung~\ref{erdbeben: Zwei Normalverteilungen} sehen kann, ist sowohl der geschätzte Zustand als auch der gemessene Zustand normalverteilt und haben dementsprechend unterschiedliche Standardabweichungen $\sigma$ und Erwartungswerte $\mu$. Dies wird in~\cite{erdbeben:aragher_understanding_2012}beschrieben. \begin{figure} \begin{center} \includegraphics[width=5cm]{papers/erdbeben/Gausskurve2.pdf} - \caption{System} + \caption{Zwei Normalerteilungen; Die eine Funktion zeigt die Vorhersage, die andere die Messung} + \label{erdbeben: Zwei Normalverteilungen} \end{center} \end{figure} - - - -Um eine genauere Schätzung des Zustandes zu machen, wird nun ein Wert zwischen den beiden Verteilungen gesucht. An diesem Punkt wird nun eine Eigenschaft ausgenutzt. Durch das Multiplizieren zweier Normalverteilungen entsteht eine neue Normalverteilung. - +Wir haben eine Vorhersage aus der Systemdynamik und eine Messung des Zustandes. +Diese widersprechen sich im Allgemeinen. +Jedoch wissen wir die Wahrscheinlichkeiten der beiden Aussagen. +Um eine genauere Schätzung des Zustandes zu machen, wird nun ein Wert zwischen den beiden Verteilungen berechnet. +Nun wird eine Eigenschaft der Normalverteilung ausgenutzt. Durch das Multiplizieren zweier Normalverteilungen entsteht eine neue Normalverteilung. Wir haben eine Normalverteilung der Vorhersage: -\begin{equation} -{y_1}(x;{\mu_1},{\sigma_1})=\frac{1}{\sqrt{2\pi\sigma_1^2}}\quad e^{-\frac{(x-{\mu_1})^2}{2{\sigma_1}^2}} -\end{equation} -und für die Messung: - -\begin{equation} +\[ +{y_1}(x;{\mu_1},{\sigma_1})=\frac{1}{\sqrt{2\pi\sigma_1^2}}\quad e^{-\frac{(x-{\mu_1})^2}{2{\sigma_1}^2}} +\] +und der Messung: +\[ {y_2}(x;{\mu_2},{\sigma_2})=\frac{1}{\sqrt{2\pi\sigma_2^2}}\quad e^{-\frac{(x-{\mu_2})^2}{2{\sigma_2}^2}}. -\end{equation} - -Diesen werden nun Multipliziert und durch deren Fläche geteilt um sie wieder zu Normieren: -\begin{equation} -{y_f}(x;{\mu_f},{\sigma_f})=\frac{ \frac{1}{\sqrt{2\pi\sigma_1^2}}e^{-\frac{(x-{\mu_1})^2}{2{\sigma_1}^2}} \cdot \frac{1}{\sqrt{2\pi\sigma_2^2}}e^{-\frac{(x-{\mu_2})^2}{2{\sigma_2}^2}}}{\int {y_1}*{y_2}\,} -\end{equation} - -Dadurch gleicht sich die neue Kurve den anderen an. Interessant daran ist, dass die fusionierte Kurve sich der genauere Normal-Verteilung anpasst. ist ${\sigma_2}$ klein und ${\sigma_1}$ gross, so wird sich die fusionierte Kurve näher an ${y_2}(x;{\mu_2},{\sigma_2})$ begeben. Sie ist also Gewichtet und die best mögliche Schätzung. - - +\] +Diesen werden nun multipliziert und durch deren Fläche geteilt um sie wieder zu normieren, $\odot$ beschreibt dabei die Multiplikation und die Normierung auf den Flächeninhalt eins : +\begin{align*}
{y_f}(x; {\mu_f}, {\sigma_f}) = {y_1}(x;{ \mu_1},{ \sigma_1}) \odot {y_2}(x; {\mu_2}, {\sigma_2}) + &= + \frac{1}{\sqrt{2\pi\sigma_1^2}}\quad e^{-\frac{(x-{\mu_1})^2}{2{\sigma_1}^2}} \odot \frac{1}{\sqrt{2\pi\sigma_2^2}}\quad e^{-\frac{(x-{\mu_2})^2}{2{\sigma_2}^2}} + \\ + &=
\frac{ \frac{1}{\sqrt{2\pi\sigma_1^2}}e^{-\frac{(x-{\mu_1})^2}{2{\sigma_1}^2}} \cdot \frac{1}{\sqrt{2\pi\sigma_2^2}}e^{-\frac{(x-{\mu_2})^2}{2{\sigma_2}^2}}}{\int {y_1} {y_2} dx}.
\end{align*} +Diese Kombination der beiden Verteilungen resultiert wiederum in einer Normalverteilung +mit Erwartungswert +\[ \mu_f = \frac{\mu_1\sigma_2^2 + \mu_2 \sigma_1^2}{\sigma_1^2 + \sigma_2^2} \] +und Varianz +\[ +\sigma_f^2 = \frac{\sigma_1^2 \sigma_2^2}{\sigma_1^2 + \sigma_2^2}. +\] +Dadurch gleicht sich die neue Kurve den anderen an. Interessant daran ist, dass die fusionierte Kurve sich der genauere Normal-Verteilung anpasst. +Ist ${\sigma_2}$ klein und ${\sigma_1}$ gross, so wird sich die fusionierte Kurve näher an ${y_2}(x;{\mu_2},{\sigma_2})$ begeben. +Somit ist $\mu_f$ ist das gewichtete Mittel der beiden $\mu_{1,2}$, und die Varianzen sind die Gewichte! +Die neue Funktion ist die best mögliche Schätzung für zwei Verteilungen, welche den selben Zustand beschreiben. +Dies ist in der Abbildung~\ref{erdbeben:Gauss3} anhand der rote Funktion ersichtlich. \begin{figure} \begin{center} \includegraphics[width=5cm]{papers/erdbeben/Gausskurve3.pdf} - \caption{System} + \caption{Durch das Multiplizieren der blauen und der orangen Verteilung entsteht die die rote, optimale Funktion} + \label{erdbeben:Gauss3} \end{center} \end{figure} +Was in zwei Dimensionen erklärt wurde, funktioniert auch in mehreren Dimensionen. +Dieses Prinzip mach sich das Kalman Filter zu nutze, und wird von uns für die Erdbeben Berechnung genutzt. - -Was in 2 Dimensionen erklärt wurde, funktioniert auch in mehreren Dimensionen. Dieses Prinzip mach sich der Kalman Filter zu nutze, und wird von uns für die Erdbeben Berechnung genutzt. - -\subsection{Anwendungsgrenzen} -Nicht lineare Systeme %Noch nicht Fertig - - -\section{Aufbau} -Um ein Erdbeben kenntlich zumachen werden in der Regel Seismographen mit vielen Sensoren verwendet. -Ein Seismograph besteht im Grunde aus einer federgelagerten Masse. Wirkt eine Bodenerregung auf das Gerät ein, bleibt die gekoppelte Masse in der regel stehen und das Gehäuse schwingt mit.Relativbewegung des Bodens kann damit als Längenänderung im Zeitverlauf gemessen werden. In modernen Seismographen wird die Bodenbewegung in alle Richtungen gemessen, sowohl Horizontal als auch Vertikal. -Wir konstruieren uns eine einfachere Version eines Seismographen, welcher rein mechanisch funktioniert. Zudem kann er nur in eine Dimension Messwerte aufnehmen. Würde das System ausgebaut werden, um alle Horizontalbewegungen aufzunehmen, würde der Verwendung des Kalman-Filters zu kompliziert werden. Für zwei Dimensionen (x,y) würde der Pythagoras für das System benötigt werden. Da sich der Pythagoras bekanntlich nicht linear verhält, kann kein lineares Kalman-Filter implementiert werden. Da das Kalman-Filter besonders effektiv und einfach für lineare Abläufe geeignet ist, würde eine Zweidimensionale Betrachtung den Rahmen dieser Arbeit sprengen. Für ein nicht-lineares System werden Extended Kalman-Filter benötigt, bei denen die System-Matrix (A) durch die Jacobi-Matrix des System ersetzt wird. - -\begin{figure} - \begin{center} - \includegraphics[width=5cm]{papers/erdbeben/Apperatur} - \caption{System} - \end{center} -\end{figure} - - -\subsection{Optionen} -Wollte man einen 2D Seismographen aufbauen, ohne den Pythagroas zu verwenden, kann dies mit der Annahme, das die Feder sehr lang sind erfolgen. Da sich bei langen Federn die Auslenkungen verkleiner...!!Noch nicht fertig! - -\section{Systemgleichung} -Da das Kalman-Filter zum Schätzen des nächsten Zustand verwendet wird, wird eine Gleichung, welche das System beschreibt. Das Kalman-Filter benötigt eine Beschreibung der Systemdynamik. Im Fall unseres Seismographen, kann die Differentialgleichung zweiter Ordnung einer gedämpften Schwingung am harmonischen Oszillator verwendet werden. Diese lautet: -\begin{equation} -m\ddot x + 2k \dot x + Dx = f -\end{equation} -mit den Konstanten $m$ = Masse, $k$ = Dämpfungskonstante und $D$ = Federkonstante. -Um diese nun in die Systemmatrix umzuwandeln, wird aus der Differentialgleichung zweiter Ordnung durch eine Substitution eine DGL erster Ordnung: - - -\begin{equation} -{x_1}=x, \qquad -{x_2}=\dot x, \qquad -{x_3}=\ddot x\qquad \mid \quad \text {Substitution} -\end{equation} - - -\begin{equation} -m{x_3}+ 2k{x_2} + D{x_1} = f\qquad \mid \quad \text {DGL 1. Ordnung} -\end{equation} - -\begin{equation} -{x_3}=-\frac{D}{m} {x_1} -\frac{2k}{m} {x_2} + \frac{f} {m} \qquad \mid \quad \text {nach} \quad{x_3} -\end{equation} -auch als Matrix-Vektor-Gleichung schreiben. -Hierbei beschreibt die Matrix $A$ die gesamte Systemdynamik in der Form, wie sie ein Kalman-Filter benötigt. - -Um die lineare Differentialgleichung in das Kalman-Filter zu implementieren, muss dieses als Vektor-Gleichung umgewandelt werden. Dafür wird die Gleichung in die Zustände aufgeteilt. Die für uns relevanten Zustände sind die Position der Masse, die Geschwindigkeit der Masse und äussere Beschleunigung des ganzen System. Dabei muss unterschieden werden. um welche Beschleunigung es sich handelt. Das System beinhaltet sowohl eine Beschleunigung der Masse bzw. Feder (innere Beschleunigung), als auch eine Beschleunigung der ganzen Apparatur (äussere Beschleunigung). In unserem Fall wird die äusseren Beschleunigung gesucht, da diese der Erdbeben Anregung gleich kommt. - - -\begin{equation} -\frac{d}{dt} \left(\begin{array}{c} {x_1} \\ {x_2} \end{array}\right) = \left( - \begin{array}{ccc} -0 & 1& 0 \\ -- \frac{D}{m} &-\frac{2k}{m} & \frac{1} {m}\\ -\end{array}\right) \left(\begin{array}{c} {x_1} \\ {x_2} \\ {x_3} \end{array}\right). -\end{equation} - -Durch die Rücksubstituion ergibt sich: -\begin{equation} -\frac{d}{dt} \left(\begin{array}{c} x(t) \\ v(t) \end{array}\right) = \left( - \begin{array}{ccc} -0 & 1& 0 \\ -- \frac{D}{m} &-\frac{2k}{m} & \frac{1} {m}\\ -\end{array}\right) \left(\begin{array}{c} x(t)\\ v(t)\\ f(t) \end{array}\right). -\end{equation} - - -Da die Kraft unbekannt ist, wird die letzte Zeile später mit Nullen bestückt, denn genau diese Werte wollen wir. - -\section{Kalman Filter} -Um den Kalman Filter zu starten, müssen gewisse Bedingungen definiert werden. In diesem Abschnitt werden die einzelnen Parameter/Matrizen erläutert und Erklärt, wofür sie nützlich sind. - +\section{Filter-Matrizen} +Da wir nun ein Werkzeug besitzen, dass die Beschleunigung, welche auf das Gehäuse wirkt, ermitteln kann, wird dieses nun Schritt für Schritt erklärt. +Um den Kalman Filter zu starten, müssen gewisse Bedingungen definiert werden. +In diesem Abschnitt werden die einzelnen Parameter und Matrizen erklärt und erläutert, wofür sie nützlich sind. \subsection{Anfangsbedingungen} \subsubsection*{Anfangszustand $x$} -Das Filter benötigt eine Anfangsbedingung. In unserem Fall ist es die Ruhelage, die Masse bewegt sich nicht. Zudem erföhrt die Apparatur keine äussere Kraft. - -\begin{equation} -{x_0 }= \left( \begin{array}{c} 0\\ 0\\ 0\end{array}\right) -\end{equation} +Das Filter benötigt eine Anfangsbedingung. +In unserem Fall ist es die Ruhelage, die Masse bewegt sich nicht. +Zudem erfährt die Apparatur keine äussere Kraft. +\[ {x_0 }= \left( \begin{array}{c} {s_0}\\ {v_0}\\{f_0}\end{array}\right) = \left( \begin{array}{c} 0\\ 0\\ 0\end{array}\right) \] \subsubsection*{Anfangsfehler / Kovarianzmatrix $P$} -Da auch der Anfangszustand fehlerhaft sein kann, wird für den Filter einen Anfangsfehler eingeführt. Auf der Diagonalen werden die Varianzen eingesetzt, in den restlichen Felder stehen die Kovarianzen. -In unserem Fall ist der Anfangszustand gut bekannt. Wir gehen davon aus, dass das System in Ruhe und in Abwesenheit eines Erdbeben startet, somit kann die Matrix mit Nullen bestückt werden. Somit ergibt sich für die Kovarianzmatrix +Da auch der Anfangszustand fehlerhaft sein kann, wird für das Filter ein Anfangsfehler verwendet. +Auf der Diagonalen werden die Varianzen eingesetzt, in den restlichen Felder stehen die Kovarianzen. +Zur Erinnerung: Die Varianz ist ein Mass für die Streuung eines Wertes, die Kovarianz hingegen beschreibt die Abhängigkeit der Streuungen zweier Werte. + +Kovarianz: Cov(x, y) und Varianz: Var(x) = Cov(x, x) -\begin{equation} +In unserem Fall ist der Anfangszustand gut bekannt. +Wir gehen davon aus, dass das System in Ruhe und in Abwesenheit eines Erdbeben startet, somit kann die Matrix mit Nullen bestückt werden. +Als Initialwert für die Kovarianzmatrix ergibt sich +\[ {P_0 }= \left( \begin{array}{ccc} @@ -153,112 +120,174 @@ In unserem Fall ist der Anfangszustand gut bekannt. Wir gehen davon aus, dass da 0 & 0 &0 \\ \end{array} \right). -\end{equation} -Diese Matrix beschreibt die Unsicherheit des geschätzten Zustandes und wird sowohl für die Vorhersage als auch die Korrektur benötigt. Sie wird nach jeder Schätzung aktualisiert.. Für einen gut bekannten Zustandsvektor können kleine Werte eingesetzt werden, für ungenaue Anfangsbedingungen sollten grosse Werte (1 Million) verwendet werden. Grosse Werte ermöglichen dem Filter sich schnell einzupendeln. - + \] +Diese Matrix beschreibt die Unsicherheit des geschätzten Zustandes und wird sowohl für die Vorhersage als auch die Korrektur benötigt. +Sie wird nach jeder Schätzung aktualisiert. +Für einen gut bekannten Zustandsvektor können kleine Werte eingesetzt werden, für ungenaue Anfangsbedingungen sollten grosse Werte verwendet werden. +Grosse Werte ermöglichen dem Filter sich schnell einzupendeln. \subsubsection*{Dynamikmatrix $A$} -Die Dynamikmatrix bildet den Kern des Filters. Diese wurde weiter oben Bereits beschrieben. Dabei wollen wird die äussere Kraft des Systems ermitteln. -Da nichts über die äussere Kraft bekannt ist, müssen wir annehmen das deren Ableitung 0 ist. -Die System Vektor-Gleichung lautet daher: - - -\begin{equation} +Das Kalman-Filter benötigt für die Vorhersage des nächsten Zustandes eine Beschreibung der Systemdynamik. +Die Dynamikmatrix bildet den Kern des Filters. Diese wurde weiter oben bereits beschrieben. +Dabei wollen wird die äussere Kraft des Systems ermitteln. +Da nichts über die äussere Kraft bekannt ist, müssen wir annehmen das deren Ableitung 0 ist. +Die System-Matrix lautet daher: +\[ A = \left( \begin{array}{ccc} 0 & 1& 0 \\ - \frac{D}{m} &-\frac{2k}{m} & \frac{1} {m}\\ 0 & 0& 0\\ \end{array}\right) -\end{equation} + \] +Dabei soll der Kalman-Filter in diskreten Zeitschritten $\Delta t$ arbeiten. +Die Übergangs-Matrix erhalten wir aus der Systemdynamikmatrix mittels Exponentialfunktion: +\[\Phi = \exp(A\Delta t). \] +Die Matrix $\Phi$ beschreibt die Übergänge zwischen zeitlich aufeinanderfolgenden Zuständen $x_{k-1}$ und $x_{k}$ \subsubsection*{Prozessrauschkovarianzmatrix $Q$} -Die Prozessrauschmatrix teilt dem Filter mit, wie sich der Systemzustand verändert. Kalman-Filter berücksichtigen Unsicherheiten wie Messfehler und -rauschen. Bei unserem Modell könnte das beispielsweise ein Windstoss an die Masse sein. Für uns wäre dies: -\begin{equation} +Die Prozessrauschmatrix teilt dem Filter mit, wie sich der Prozess verändert. +Kalman-Filter berücksichtigen Unsicherheiten wie Messfehler und -rauschen. +In der Matrix $Q$ geht es jedoch um die Unsicherheit, die der Prozess mit sich bringt. +Bei unserem Modell könnte das beispielsweise ein Windstoss an die Masse sein oder auch die Ungenauigkeiten im Modell, wie die Annahme das dich die Kraft nicht ändert. +Für uns wäre dies: +\[ Q = \left( \begin{array}{ccc} -{\sigma_x }^2& 0& 0 \\ +{\sigma_s }^2& 0& 0 \\ 0 & {\sigma_v }^2& 0\\ 0 & 0& {\sigma_f }^2\\ \end{array}\right) -\end{equation} - -Die Standabweichungen müssten Statistisch ermittelt werden, da der Fehler nicht vom Sensor kommt und somit nicht vom Hersteller gegeben ist. Das Bedeutet wiederum dass $Q$ die Unsicherheit des Prozesses beschreibt, und die Messung. + \] +Die Standabweichungen müssten statistisch ermittelt werden, da der Fehler nicht vom Sensor kommt und somit nicht vom Hersteller gegeben ist. +Das Bedeutet wiederum dass $Q$ die Unsicherheit des Prozesses beschreibt und nicht die der Messung. \subsubsection*{Messmatrix $H$} -Die Messmatrix gibt an, welcher Parameter gemessen werden soll. In unserem Fall ist es nur die Position der Massen. - -\[ H = (1, 0, 0) \] - +Die Messmatrix gibt an, welche Parameter gemessen werden. +$H$ ist die Gleichung die für die Vorhersage der Messung. +In unserem Falle ist es die Position der Massen. +\[ +H = (1, 0, 0) +\] \subsubsection*{Messrauschkovarianz $R$} -Die Messrauschkovarianzmatrix beinhaltet, wie der Name es schon sagt, das Rauschen der Positionssensoren. In unserem Fall wird nur die Position der Masse gemessen. Da wir keine anderen Sensoren haben ist dies lediglich: -\begin{equation} -R= ({\sigma_x}^2). -\end{equation} -Diese Messrauchen wird meistens vom Sensorhersteller angegeben. Für unsere Theoretische Apparatur wird hier ein kleiner Fehler eingesetzt. - -\subsection{Fiter Algorithmus} -Nachdem alle Parameter aufgestellt sind, wird der Filter initialisiert und wird den Zustand der Feder vorherzusagen, die Messung zu präzisieren und laufend zu aktualisieren. Das Filter berechnet aufgrund der aktuellen Schätzung eine Vorhersage. Diese wird, sobald verfügbar, mit der Messung verglichen. Aus dieser Differenz und den Unsicherheiten des Prozesses ($Q$) und der Messung ($R$) wird der wahrscheinlichste, neue Zustand geschätzt. - +Die Messrauschkovarianzmatrix beinhaltet, wie der Name schon sagt, das Rauschen der Messung. +In unserem Fall wird nur die Position der Masse gemessen. Da wir keine anderen Sensoren haben ist $R$ lediglich: +\[ +R= ({\sigma_\mathrm{sensor}}^2). + \] +Diese Messrauchen wird meistens vom Sensorhersteller angegeben. +Für unsere theoretische Apparatur wird hier ein kleiner Fehler eingesetzt da heutige Sensoren sehr genau messen können. + +\subsection{Fiter-Agorithmus} +Nachdem alle Parameter aufgestellt sind, wird das Filter initialisiert. +Zuerst wird der nächste Zustand der Masse vorhergesagt, danach wird die Messung präzisiert und laufend aktualisiert. +Das Filter berechnet aufgrund der aktuellen Schätzung eine Vorhersage. +Diese wird, sobald verfügbar, mit der Messung verglichen. +Aus dieser Differenz und den Unsicherheiten des Prozesses ($Q$) und der Messung ($R$) wird der wahrscheinlichste, neue Zustand geschätzt. +Dabei muss genau auf den Index geachtet werden. Nach dem Artikel~\cite{erdbeben:wikipedia} ist die Indexierung so genormt: +Der Zeitschritt wird mit $k$ definiert, $k-1$ ist somit ein Zeitschritt vor $k$. +Auf der linken Seite von | wird der aktuelle Zustand verlangt, bzw. ausgegeben, auf der rechten Seiten den bisherigen Zustand. +Dies bedeutet, dass die Notation $x_{n|m}$ die Schätzung von $x$ zum Zeitpunkt $n$ bis und mit zur Zeitpunkt $m \leq \ n$ präsentiert. \subsubsection*{Vorhersage} -Im Filterschritt Vorhersage wird der nächste Zustand anhand des Anfangszustand und der Systemmatrix berechnet. Dies funktioniert ganz Trivial mit dem Rechenschritt: -\begin{equation} -{x_{t+1}}=A\cdot{x_t}. -\end{equation} - - -Die Kovarianz $P_{pred}$ wird ebenfalls neu berechnet, da die Unsicherheit im Vorhersage grösser wird als im Aktuellen. Da wir ein mehrdimensionales System haben, kommt noch die Messunsicherheit $Q$ dazu, so dass die Unsicherheit des Anfangsfehlers $P$ immer grösser wird. Dies funktioniert durch multiplizieren der Systemmatrix, deren Ableitung und mit dem aktualisierten Anfangsfehler. Dazu wird noch die Messunsicherheit addiert, somit entsteht die Gleichung - -\begin{equation} -{P_{pred}}=APA^T+Q. -\end{equation} - -wird dieser Vorgang wiederholt, schaut der Filter wie genau die letzte Anpassung von $P$ zur Messung stimmt. Ist der Unterschied klein, wird die Kovarianz $P$ kleiner, ist der Unterschied gross, wird auch die Kovarianz grösser. Das Filter passt sich selber an und korrigiert sich bei grosser Abweichung. +Im Filterschritt Vorhersage wird der nächste Zustand anhand des Anfangszustand und der Systemmatrix berechnet. +Dies funktioniert mit dem Rechenschritt: +\[ +{x_{k|k-1}}=\Phi{x_{k-1|k-1}}= \exp(A\Delta t){x_{k-1|k-1}}. +\] +Die Kovarianz $P_{k|k-1}$ wird ebenfalls neu berechnet. Zudem kommt noch die Prozessunsicherheit $Q$ dazu, so dass die Unsicherheit des Anfangsfehlers $P$ laufend verändert. +Dies funktioniert durch multiplizieren der Systemmatrix mit dem aktualisierten Anfangsfehler. +Dazu wird noch die Prozessunsicherheit addiert, somit entsteht die Gleichung +\[ +{P_{k|k-1}}=\Phi {P_{k-1|k-1}} {\Phi _{k}}^T + {Q_{k-1}}. +\] +Es vergeht genau $\Delta t$ Zeit, und dieser Vorgang wird wiederholt. +Das hochgestellte T bezeichnet die transponierte Matrix. +Dabei wird in den späteren Schritten überprüft, wie genau die letzte Anpassung von $P$ zur Messung stimmt. +Ist der Unterschied klein, wird die Kovarianz $P$ kleiner, ist der Unterschied gross, wird auch die Kovarianz grösser. +Das Filter passt sich selber an und korrigiert sich bei grosser Abweichung. \subsubsection*{Messen} -Der Sensor wurde noch nicht benutz, doch genau der liefert Werte für den Filter. Die aktuellen Messwerte $z$ werden die Innovation $w$ mit dem Zustandsvektor $x$ und der Messmatrix $H$ zusammengerechnet. -Hier bei wird lediglich die Messung mit dem Fehler behaftet, und die Messmatrix $H$ -\begin{equation} -w=Z-(H\cdot x) -\end{equation} +Der Sensor wurde noch nicht benutz, doch genau der liefert Werte für das Filter. +Die aktuellen Messwerte $z$ werden die Innovation $w$ mit dem Zustandsvektor $x$ und der Messmatrix $H$ zusammengerechnet. +Hier bei wird lediglich die Messung mit dem Fehler behaftet, und die Messmatrix $H$ mit der Vorhersage multipliziert. +\[ +{w_{k}}={z_{k}}-{H}{x_{k|k-1}}. +\] Die Innovation ist der Teil der Messung, die nicht durch die Systemdynamik erklärt werden kann. -Innovation = Messung - Vorhersage. Dies ist Intuitiv logisch, eine Innovation von 0 bedeutet, dass die Messung nichts Neues hervorbrachte. +Die Hilfsgröße Innovation beschreibt, wie genau die Vorhersage den aktuellen Messwert mittels der Systemmatrix $\Phi$ beschreiben kann. +Für eine schlechte Vorhersage wird die dazugehörige Innovation gross, für eine genaue Vorhersage dagegen klein sein. +Entsprechende Korrekturen müssen dann gross bzw. nur gering ausfallen. +Innovation = Messung - Vorhersage. Dies leuchtet ein, eine Innovation von 0 bedeutet, dass die Messung nichts Neues hervorbrachte. Im nächsten Schritt wir analysiert, mit welcher Kovarianz weiter gerechnet wird. - -\subsubsection*{Korrigieren} -Udpdate -\section{Anfügen der Schwingung} - -Ein Erdbeben breitet sich im Boden wellenartig aus und bringt Objekte, wie zum Beispiel ein Gebäude, in Schwingung. -Diese Schwingungen pflanzen sich im Gebäude mit gleicher Amplitude, Geschwindigkeit und Beschleunigung in horizontaler und vertikaler Bewegung fort. -Wir möchten herauszufinden, wie gross die Massenbeschleunigung infolge eines Erdbeben ist. -Mit Hilfe von fiktiven Sensoren, die eine Ortsveränderung des Gebäude messen, können wir mit Anwendung von Matrizen und dem Kalman-Filter die Beschleunigung berechnen. - -\begin{equation} -\int_a^b x^2\, dx -= -\left[ \frac13 x^3 \right]_a^b -= -\frac{b^3-a^3}3. -\label{erdbeben:equation1} -\end{equation} - -\section{Erreger-Schwingung} -Wir möchten mit einer gedämpften harmonischen Schwingung ein einfaches Erdbeben simulieren, die im Kalman Filter eingespeist wird. -Die Gleichung lautet - -\begin{equation} -x(t)=Ae^{t/2}sin(t). -\end{equation} - -Mit dieser Schwingung können wir ein einachsiger Seismograph simulieren, der eine Ortsverschiebung auf der x-Achse durchführt. -Die Dämpfung der Schwingung ist relevant, da das System beim Schwingungsvorgang durch die Federkonstante und der Reibung, Energie verliert. - -Die Ergebnisse dieser Schwingung setzen wir in die Messmatrix ein und können den Kalman-Filter starten. - - - +Hierbei wird die Unsicherheit $P$, die Messmatrix $H$ und die Messunsicherheit $R$ miteinander verrechnet. +\[ +{S_{k}}={H}{P_{k|k-1}}{H}^T+{R_{k}} +\] + +\subsubsection*{Aktualisieren} +Im nächsten Schritt kommt nun die Wahrscheinlichkeit dazu. +\[{K_{k}}= {P_{k|k-1}} {H^T}{S_{k}^{-1}}\] +Dieser Vorgang wird Kalman-Gain genannt. +Das Kalman-Gain gibt dem Zustand die Gewichtung, bzw. wie die Vorhersage auf den Zustand passt. +Vereinfacht gesagt: Es wird das das Verhältnis zwischen der Unsicherheit der Vorhersage $P_k$ zu der zugehörigen Messunsicherheit $R_k$ gebildet. +In unserem Fall wird werden die Elemente der Kalman-Matrix vorweg berechnet, da das Kalman-Gain ohne Messungen auskommt. + +Anhand der Informationen aus dem Kalman-Gain $K$ wird das System aktualisiert. +\[ +{x_{k|k}}={x_{k|k-1}}+{K_{k}}{w_{k}} +\] +Dabei wird der Unterschied zwischen dem erwarteten, errechneten, Zustand und dem gemessenen Zustand berechnet. + +Dazu kommt eine neue Kovarianz für den nächste Vorhersageschritt: +\[ +{P_{k|k}}=(I-{K_{k}}{H}){P_{k|k-1}} +\] +Der ganze Algorithmus und beginnt wieder mit der Vorhersage +\[ +{x_{k|k-1}}=\Phi{x_{k-1|k-1}}= \exp(A\Delta t){x_{k|k-1}}. +\] + +\subsection{Zusammenfassung } +Zusammenfassend kann das Kalman-Filter in offizieller Typus dargestellt werden. +Dabei beginnt das Filter mit dem Anfangszustand für $k=0$ + +1. Nächster Zustand vorhersagen +\[ +{x_{k|k-1}}=\Phi{x_{k-1|k-1}}= \exp(A\Delta t){x_{k-1|k-1}}. +\] + +2. Nächste Fehlerkovarianz vorhersagen +\[ +{P_{k|k-1}}=\Phi {P_{k-1|k-1}} {\Phi _{k}}^T + {Q_{k-1}}. +\] + +3. Zustand wird gemessen +\[ +{w_{k}}={z_{k}}-{H}{x_{k|k-1}}. +\] + +4. Innovation (= Messung - Vorhersage) +\[ +{S_{k}}={H}{P_{k|k-1}}{H}^T+{R_{k}} +\] + +5. Das Kalman Filter anwenden +\[ +{K_{k}}= {P_{k|k-1}} {H^T}{S_{k}^{-1}} +\] + +6. Schätzung aktualisieren +\[ +{x_{k|k}}={x_{k|k-1}}+{K_{k}}{w_{k}} +\] + +7. Fehlerkovarianz aktualisieren +\[ +{P_{k|k}}=(I-{K_{k}}{H}){P_{k|k-1}} +\] + +8. Die Outputs von $k$ werden die Inputs für ${k-1}$ und werden wieder im Schritt 1 verwendet diff --git a/buch/papers/ifs/images/farn-eps-converted-to.pdf b/buch/papers/ifs/images/farn-eps-converted-to.pdf Binary files differnew file mode 100644 index 0000000..e2c6ddc --- /dev/null +++ b/buch/papers/ifs/images/farn-eps-converted-to.pdf diff --git a/buch/papers/ifs/images/farncolor-eps-converted-to.pdf b/buch/papers/ifs/images/farncolor-eps-converted-to.pdf Binary files differnew file mode 100644 index 0000000..fd81802 --- /dev/null +++ b/buch/papers/ifs/images/farncolor-eps-converted-to.pdf diff --git a/buch/papers/ifs/images/farncolor2-eps-converted-to.pdf b/buch/papers/ifs/images/farncolor2-eps-converted-to.pdf Binary files differnew file mode 100644 index 0000000..b50843a --- /dev/null +++ b/buch/papers/ifs/images/farncolor2-eps-converted-to.pdf diff --git a/buch/papers/ifs/images/farnnotweight-eps-converted-to.pdf b/buch/papers/ifs/images/farnnotweight-eps-converted-to.pdf Binary files differnew file mode 100644 index 0000000..35bff32 --- /dev/null +++ b/buch/papers/ifs/images/farnnotweight-eps-converted-to.pdf diff --git a/buch/papers/ifs/images/farnrightwight-eps-converted-to.pdf b/buch/papers/ifs/images/farnrightwight-eps-converted-to.pdf Binary files differnew file mode 100644 index 0000000..3652e8f --- /dev/null +++ b/buch/papers/ifs/images/farnrightwight-eps-converted-to.pdf diff --git a/buch/papers/ifs/images/koch0-eps-converted-to.pdf b/buch/papers/ifs/images/koch0-eps-converted-to.pdf Binary files differindex 078c399..ea028b9 100644 --- a/buch/papers/ifs/images/koch0-eps-converted-to.pdf +++ b/buch/papers/ifs/images/koch0-eps-converted-to.pdf diff --git a/buch/papers/ifs/images/koch1-eps-converted-to.pdf b/buch/papers/ifs/images/koch1-eps-converted-to.pdf Binary files differindex 81dcf18..c6a7f50 100644 --- a/buch/papers/ifs/images/koch1-eps-converted-to.pdf +++ b/buch/papers/ifs/images/koch1-eps-converted-to.pdf diff --git a/buch/papers/ifs/images/koch2-eps-converted-to.pdf b/buch/papers/ifs/images/koch2-eps-converted-to.pdf Binary files differindex b7c7de7..f24673c 100644 --- a/buch/papers/ifs/images/koch2-eps-converted-to.pdf +++ b/buch/papers/ifs/images/koch2-eps-converted-to.pdf diff --git a/buch/papers/ifs/images/koch8-eps-converted-to.pdf b/buch/papers/ifs/images/koch8-eps-converted-to.pdf Binary files differindex 0bafd03..f8c17c8 100644 --- a/buch/papers/ifs/images/koch8-eps-converted-to.pdf +++ b/buch/papers/ifs/images/koch8-eps-converted-to.pdf diff --git a/buch/papers/multiplikation/Makefile b/buch/papers/multiplikation/Makefile index 8f04c2c..8f04c2c 100644..100755 --- a/buch/papers/multiplikation/Makefile +++ b/buch/papers/multiplikation/Makefile diff --git a/buch/papers/multiplikation/Makefile.inc b/buch/papers/multiplikation/Makefile.inc index b78d67e..074020f 100644..100755 --- a/buch/papers/multiplikation/Makefile.inc +++ b/buch/papers/multiplikation/Makefile.inc @@ -7,8 +7,7 @@ dependencies-multiplikation = \ papers/multiplikation/packages.tex \ papers/multiplikation/main.tex \ papers/multiplikation/references.bib \ - papers/multiplikation/teil0.tex \ - papers/multiplikation/teil1.tex \ - papers/multiplikation/teil2.tex \ - papers/multiplikation/teil3.tex + papers/multiplikation/einlteung.tex \ + papers/multiplikation/loesungsmethoden.tex \ + papers/multiplikation/problemstellung.tex diff --git a/buch/papers/multiplikation/code/Figure_1.png b/buch/papers/multiplikation/code/Figure_1.png Binary files differnew file mode 100755 index 0000000..9def15a --- /dev/null +++ b/buch/papers/multiplikation/code/Figure_1.png diff --git a/buch/papers/multiplikation/code/MM b/buch/papers/multiplikation/code/MM Binary files differnew file mode 100755 index 0000000..f07985f --- /dev/null +++ b/buch/papers/multiplikation/code/MM diff --git a/buch/papers/multiplikation/code/MM.c b/buch/papers/multiplikation/code/MM.c new file mode 100755 index 0000000..04c4dab --- /dev/null +++ b/buch/papers/multiplikation/code/MM.c @@ -0,0 +1,465 @@ +#include <stdio.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <time.h>
+#include <omp.h>
+#include "c_matrix.h"
+#include <gsl/gsl_cblas.h>
+#include <string.h>
+
+void MM(int *A, int *B, int *C, int n);
+void openMP_MM(int *A, int *B, int *C, int n);
+void winograd(int *A, int *B, int *C, int n);
+int winograd_inner(int *a, int *b, int n);
+void run_algo(void (*algo)(), char alog_name[], int print);
+void run_algo_cblas(int print);
+void MM_dc(int *A, int *B, int *C, int n);
+void strassen(int *A, int *B, int *C, int n);
+void printMatrix(int *C, int n);
+void printMatrix_double(double *C, int n);
+void split(int *in, int *out, int n, int col, int row);
+void join(int *in, int *out, int n, int col, int row);
+void add(int *A, int *B, int *C, int n);
+void sub(int *A, int *B, int *C, int n);
+void multiply(int *A, int *B, int *C, int n);
+
+int main() {
+ // omp_set_dynamic(0);
+ // omp_set_num_threads(4);
+// run_algo(openMP_MM, "openMP_MM",0);
+ run_algo(MM_dc, "MM_dc",0);
+ run_algo(strassen, "strassen",0);
+
+ run_algo(MM, "MM", 0);
+ // run_algo(winograd, "winograd", 0);
+ run_algo_cblas(0);
+
+ return 0;
+}
+
+void MM(int *A, int *B, int *C, int n) {
+ for (int i = 0; i < n; ++i) {
+ for (int j = 0; j < n; ++j) {
+ int sum = 0;
+ for (int k = 0; k < n; ++k) {
+ sum += (*((A + i * n) + k)) * (*((B + k * n) + j));
+ }
+ *((C + i * n) + j) = sum;
+ }
+ }
+}
+
+int winograd_inner(int *a, int *b, int n){
+ int ab = 0;
+ if(n%2==0)
+ {
+ int xi = 0;
+ int etha = 0;
+ for(int i = 0; i<n/2;++i)
+ {
+ xi += a[2*i]*a[2*i+1];
+ etha += b[2*i]*b[2*i+1];
+ ab += (a[2*i]+b[2*i+1])*(a[2*i+1]+b[2*i]);
+ }
+ ab = ab-etha-xi;
+ }
+ return ab;
+ }
+
+ void winograd(int *A, int *B, int *C, int n) {
+
+ int xi_array[n];
+ int etha_array[n];
+ int xi = 0;
+ int etha = 0;
+ int ab = 0;
+
+ for (int i = 0; i < n; ++i) {
+ xi = 0;
+ etha = 0;
+ for(int k = 0;k<n/2;++k)
+ {
+ xi += (*((A + i * n) + 2*k))*(*((A + i * n) + (2*k+1)));
+ etha += (*((B + 2*k * n) + i))*(*((B + (2*k+1) * n) + i));
+ }
+ xi_array[i] = xi;
+ etha_array[i] = etha;
+ }
+
+ for (int i = 0; i < n; ++i) {
+ for (int j = 0; j < n; ++j) {
+ ab = 0;
+ for(int k = 0;k<n/2;++k)
+ {
+ ab += ((*((A + i * n) + 2*k))+(*((B + (2*k+1) * n) + j)))*((*((A + i * n) + (2*k+1)))+(*((B + 2*k * n) + j)));
+ }
+ *((C + i * n) + j) = ab-etha_array[j]-xi_array[i];
+ }
+ }
+
+
+
+
+ // for (int i = 0; i < n; ++i) {
+ // int *a = (int*) malloc(n * sizeof(int));
+ // for(int k = 0; k<n; ++k)
+ // {
+ // a[k] = (*((A + i * n) + k));
+ // }
+ //
+ // for (int j = 0; j < n; ++j) {
+ // int *b = (int*) malloc(n * sizeof(int));
+ // for(int k = 0; k<n; ++k)
+ // {
+ // b[k] =(*((B + k * n) + j));
+ // }
+ // *((C + i * n) + j) = winograd_inner(a,b,n);
+ // }
+ // }
+ }
+
+
+void openMP_MM(int *A, int *B, int *C, int n) {
+
+ #pragma omp parallel for
+ for (int i = 0; i < n; ++i) {
+ for (int j = 0; j < n; ++j) {
+ int sum = 0;
+ for (int k = 0; k < n; ++k) {
+ sum += (*((A + i * n) + k)) * (*((B + k * n) + j));
+ }
+ *((C + i * n) + j) = sum;
+ }
+ }
+}
+
+void MM_dc(int *A, int *B, int *C, int n) {
+ if (n <= 2) {
+ MM((int*) A, (int*) B, (int*) C, n);
+ } else {
+ int *A11 = (int*) malloc(n / 2 * n / 2 * sizeof(int));
+ int *A12 = (int*) malloc(n / 2 * n / 2 * sizeof(int));
+ int *A21 = (int*) malloc(n / 2 * n / 2 * sizeof(int));
+ int *A22 = (int*) malloc(n / 2 * n / 2 * sizeof(int));
+ int *B11 = (int*) malloc(n / 2 * n / 2 * sizeof(int));
+ int *B12 = (int*) malloc(n / 2 * n / 2 * sizeof(int));
+ int *B21 = (int*) malloc(n / 2 * n / 2 * sizeof(int));
+ int *B22 = (int*) malloc(n / 2 * n / 2 * sizeof(int));
+
+ split((int*) A, (int*) A11, n / 2, 0, 0);
+ split((int*) A, (int*) A12, n / 2, 0, n / 2);
+ split((int*) A, (int*) A21, n / 2, n / 2, 0);
+ split((int*) A, (int*) A22, n / 2, n / 2, n / 2);
+ split((int*) B, (int*) B11, n / 2, 0, 0);
+ split((int*) B, (int*) B12, n / 2, 0, n / 2);
+ split((int*) B, (int*) B21, n / 2, n / 2, 0);
+ split((int*) B, (int*) B22, n / 2, n / 2, n / 2);
+
+ int *tmp1 = (int*) malloc(n / 2 * n / 2 * sizeof(int));
+ int *tmp2 = (int*) malloc(n / 2 * n / 2 * sizeof(int));
+ int *tmp3 = (int*) malloc(n / 2 * n / 2 * sizeof(int));
+ int *tmp4 = (int*) malloc(n / 2 * n / 2 * sizeof(int));
+ int *tmp5 = (int*) malloc(n / 2 * n / 2 * sizeof(int));
+ int *tmp6 = (int*) malloc(n / 2 * n / 2 * sizeof(int));
+ int *tmp7 = (int*) malloc(n / 2 * n / 2 * sizeof(int));
+ int *tmp8 = (int*) malloc(n / 2 * n / 2 * sizeof(int));
+
+ MM_dc((int*) A11, (int*) B11, (int*) tmp1, n / 2);
+ MM_dc((int*) A12, (int*) B21, (int*) tmp2, n / 2);
+ MM_dc((int*) A11, (int*) B12, (int*) tmp3, n / 2);
+ MM_dc((int*) A12, (int*) B22, (int*) tmp4, n / 2);
+ MM_dc((int*) A21, (int*) B11, (int*) tmp5, n / 2);
+ MM_dc((int*) A22, (int*) B21, (int*) tmp6, n / 2);
+ MM_dc((int*) A21, (int*) B12, (int*) tmp7, n / 2);
+ MM_dc((int*) A22, (int*) B22, (int*) tmp8, n / 2);
+
+ free(A11);
+ free(A12);
+ free(A21);
+ free(A22);
+ free(B11);
+ free(B12);
+ free(B21);
+ free(B22);
+
+ int *C11 = (int*) malloc(n / 2 * n / 2 * sizeof(int));
+ int *C12 = (int*) malloc(n / 2 * n / 2 * sizeof(int));
+ int *C21 = (int*) malloc(n / 2 * n / 2 * sizeof(int));
+ int *C22 = (int*) malloc(n / 2 * n / 2 * sizeof(int));
+
+ add((int*) tmp1, (int*) tmp2, (int*) C11, n / 2);
+ add((int*) tmp3, (int*) tmp4, (int*) C12, n / 2);
+ add((int*) tmp5, (int*) tmp6, (int*) C21, n / 2);
+ add((int*) tmp7, (int*) tmp8, (int*) C22, n / 2);
+
+ free(tmp1);
+ free(tmp2);
+ free(tmp3);
+ free(tmp4);
+ free(tmp5);
+ free(tmp6);
+ free(tmp7);
+ free(tmp8);
+
+ join((int*) C11, (int*) C, n / 2, 0, 0);
+ join((int*) C12, (int*) C, n / 2, 0, n / 2);
+ join((int*) C21, (int*) C, n / 2, n / 2, 0);
+ join((int*) C22, (int*) C, n / 2, n / 2, n / 2);
+
+ free(C11);
+ free(C12);
+ free(C21);
+ free(C22);
+
+ }
+}
+
+void strassen(int *A, int *B, int *C, int n) {
+ if (n <= 2) {
+
+ int P, Q, R, S, T, U, V;
+ P = ((*((A + 0 * n) + 0)) + (*((A + 1 * n) + 1)))
+ * ((*((B + 0 * n) + 0)) + (*((B + 1 * n) + 1)));
+ Q = ((*((A + 1 * n) + 0)) + (*((A + 1 * n) + 1)))
+ * ((*((B + 0 * n) + 0)));
+ R = ((*((A + 0 * n) + 0)))
+ * ((*((B + 0 * n) + 1)) - (*((B + 1 * n) + 1)));
+ S = ((*((A + 1 * n) + 1)))
+ * ((*((B + 1 * n) + 0)) - (*((B + 0 * n) + 0)));
+ T = ((*((A + 0 * n) + 0)) + (*((A + 0 * n) + 1)))
+ * ((*((B + 1 * n) + 1)));
+ U = ((*((A + 1 * n) + 0)) - (*((A + 0 * n) + 0)))
+ * ((*((B + 0 * n) + 0)) + (*((B + 0 * n) + 1)));
+ V = ((*((A + 0 * n) + 1)) - (*((A + 1 * n) + 1)))
+ * ((*((B + 1 * n) + 0)) + (*((B + 1 * n) + 1)));
+ (*((C + 0 * n) + 0)) = P + S - T + V;
+ (*((C + 0 * n) + 1)) = R + T;
+ (*((C + 1 * n) + 0)) = Q + S;
+ (*((C + 1 * n) + 1)) = P + R - Q + U;
+
+ } else {
+ int *A11 = (int*) malloc(n / 2 * n / 2 * sizeof(int));
+ int *A12 = (int*) malloc(n / 2 * n / 2 * sizeof(int));
+ int *A21 = (int*) malloc(n / 2 * n / 2 * sizeof(int));
+ int *A22 = (int*) malloc(n / 2 * n / 2 * sizeof(int));
+ int *B11 = (int*) malloc(n / 2 * n / 2 * sizeof(int));
+ int *B12 = (int*) malloc(n / 2 * n / 2 * sizeof(int));
+ int *B21 = (int*) malloc(n / 2 * n / 2 * sizeof(int));
+ int *B22 = (int*) malloc(n / 2 * n / 2 * sizeof(int));
+
+ split((int*) A, (int*) A11, n / 2, 0, 0);
+ split((int*) A, (int*) A12, n / 2, 0, n / 2);
+ split((int*) A, (int*) A21, n / 2, n / 2, 0);
+ split((int*) A, (int*) A22, n / 2, n / 2, n / 2);
+ split((int*) B, (int*) B11, n / 2, 0, 0);
+ split((int*) B, (int*) B12, n / 2, 0, n / 2);
+ split((int*) B, (int*) B21, n / 2, n / 2, 0);
+ split((int*) B, (int*) B22, n / 2, n / 2, n / 2);
+
+ int *P = (int*) malloc(n / 2 * n / 2 * sizeof(int));
+ int *Q = (int*) malloc(n / 2 * n / 2 * sizeof(int));
+ int *R = (int*) malloc(n / 2 * n / 2 * sizeof(int));
+ int *S = (int*) malloc(n / 2 * n / 2 * sizeof(int));
+ int *T = (int*) malloc(n / 2 * n / 2 * sizeof(int));
+ int *U = (int*) malloc(n / 2 * n / 2 * sizeof(int));
+ int *V = (int*) malloc(n / 2 * n / 2 * sizeof(int));
+
+ int *addA = (int*) malloc(n / 2 * n / 2 * sizeof(int));
+ int *addB = (int*) malloc(n / 2 * n / 2 * sizeof(int));
+
+ add((int*) A11, (int*) A22, (int*) addA, n / 2);
+ add((int*) B11, (int*) B22, (int*) addB, n / 2);
+ strassen((int*) addA, (int*) addB, (int*) P, n / 2);
+
+ add((int*) A21, (int*) A22, (int*) addA, n / 2);
+ strassen((int*) addA, (int*) B11, (int*) Q, n / 2);
+
+ sub((int*) B12, (int*) B22, (int*) addB, n / 2);
+ strassen((int*) A11, (int*) addB, (int*) R, n / 2);
+
+ sub((int*) B21, (int*) B11, (int*) addB, n / 2);
+ strassen((int*) A22, (int*) addB, (int*) S, n / 2);
+
+ add((int*) A11, (int*) A12, (int*) addA, n / 2);
+ strassen((int*) addA, (int*) B22, (int*) T, n / 2);
+
+ sub((int*) A21, (int*) A11, (int*) addA, n / 2);
+ add((int*) B11, (int*) B12, (int*) addB, n / 2);
+ strassen((int*) addA, (int*) addB, (int*) U, n / 2);
+
+ sub((int*) A12, (int*) A22, (int*) addA, n / 2);
+ add((int*) B21, (int*) B22, (int*) addB, n / 2);
+ strassen((int*) addA, (int*) addB, (int*) V, n / 2);
+
+ free(A11);
+ free(A12);
+ free(A21);
+ free(A22);
+ free(B11);
+ free(B12);
+ free(B21);
+ free(B22);
+ free(addA);
+ free(addB);
+
+ int *C11 = (int*) malloc(n / 2 * n / 2 * sizeof(int));
+ int *C12 = (int*) malloc(n / 2 * n / 2 * sizeof(int));
+ int *C21 = (int*) malloc(n / 2 * n / 2 * sizeof(int));
+ int *C22 = (int*) malloc(n / 2 * n / 2 * sizeof(int));
+
+ int *resAdd1 = (int*) malloc(n / 2 * n / 2 * sizeof(int));
+ int *resAdd2 = (int*) malloc(n / 2 * n / 2 * sizeof(int));
+
+ add((int*) R, (int*) T, (int*) C12, n / 2);
+ add((int*) Q, (int*) S, (int*) C21, n / 2);
+
+ add((int*) P, (int*) S, (int*) resAdd1, n / 2);
+ add((int*) resAdd1, (int*) V, (int*) resAdd2, n / 2);
+ sub((int*) resAdd2, (int*) T, (int*) C11, n / 2);
+
+ add((int*) P, (int*) R, (int*) resAdd1, n / 2);
+ add((int*) resAdd1, (int*) U, (int*) resAdd2, n / 2);
+ sub((int*) resAdd2, (int*) Q, (int*) C22, n / 2);
+
+ free(P);
+ free(Q);
+ free(R);
+ free(S);
+ free(T);
+ free(U);
+ free(V);
+ free(resAdd1);
+ free(resAdd2);
+
+ join((int*) C11, (int*) C, n / 2, 0, 0);
+ join((int*) C12, (int*) C, n / 2, 0, n / 2);
+ join((int*) C21, (int*) C, n / 2, n / 2, 0);
+ join((int*) C22, (int*) C, n / 2, n / 2, n / 2);
+
+ free(C11);
+ free(C12);
+ free(C21);
+ free(C22);
+ }
+}
+
+void add(int *A, int *B, int *C, int n) {
+ for (int i = 0; i < n; i++) {
+ for (int j = 0; j < n; j++) {
+ *((C + i * n) + j) = *((A + i * n) + j) + *((B + i * n) + j);
+ }
+ }
+}
+
+void sub(int *A, int *B, int *C, int n) {
+ for (int i = 0; i < n; i++) {
+ for (int j = 0; j < n; j++) {
+ *((C + i * n) + j) = *((A + i * n) + j) - *((B + i * n) + j);
+ }
+ }
+}
+
+void multiply(int *A, int *B, int *C, int n) {
+ int mul;
+
+ for (int i = 0; i < n; ++i) {
+ for (int j = 0; j < n; ++j) {
+ mul = (*((A + i * n) + j)) * (*((B + i * n) + j));
+ *((C + i * n) + j) = mul;
+ }
+ }
+}
+
+void split(int *in, int *out, int n, int col, int row) {
+ for (int i1 = 0, i2 = col; i1 < n; i1++, i2++)
+ for (int j1 = 0, j2 = row; j1 < n; j1++, j2++) {
+ *((out + i1 * n) + j1) = *((in + i2 * n * 2) + j2);
+
+ }
+}
+
+void join(int *in, int *out, int n, int col, int row) {
+ for (int i1 = 0, i2 = col; i1 < n; i1++, i2++)
+ for (int j1 = 0, j2 = row; j1 < n; j1++, j2++)
+ *((out + i2 * n * 2) + j2) = *((in + i1 * n) + j1);
+}
+
+void printMatrix(int *C, int n) {
+ for (int i = 0; i < n; ++i) {
+ for (int j = 0; j < n; ++j) {
+ printf("%d ", *((C + i * n) + j));
+ }
+ printf("\n");
+ }
+}
+
+void printMatrix_double(double *C, int n) {
+ for (int i = 0; i < n; ++i) {
+ for (int j = 0; j < n; ++j) {
+ printf("%.0f ", *((C + i * n) + j));
+ }
+ printf("\n");
+ }
+}
+
+void run_algo(void (*algo)(), char alog_name[], int print)
+{
+ FILE *fptr;
+
+ char fileName[40] = "meas/";
+ strcat(fileName, alog_name);
+ strcat(fileName, ".txt");
+ fptr = fopen(fileName, "w");
+
+
+ for(int i=0; i<n_arrays; ++i)
+ {
+ for(int j = 0; j<1; ++j)
+ {
+ int *C = (int*) malloc(n[i] * n[i] * sizeof(int));
+ double dtime = omp_get_wtime();
+ algo(Ap[i], Bp[i], (int*) C, n[i]);
+ dtime = omp_get_wtime() - dtime;
+ // printf("The %s program took %f seconds to execute \n", alog_name, dtime);
+ fprintf(fptr, "%f,%d\n", dtime, n[i]);
+
+ if(print==1)
+ {
+ printMatrix((int*)C, n[i]);
+ }
+ free(C);
+ }
+ }
+ fclose(fptr);
+
+}
+
+void run_algo_cblas(int print)
+{
+
+ FILE *fptr;
+
+ fptr = fopen("meas/blas.txt", "w");
+ for(int i=0; i<n_arrays; ++i)
+ {
+ for(int j = 0; j<1; ++j)
+ {
+ double *dC = (double*) malloc(n[i] * n[i] * sizeof(double));
+ double dtime = omp_get_wtime();
+ cblas_dgemm(CblasRowMajor, CblasNoTrans, CblasNoTrans, n[i], n[i], n[i], 1.0, dAp[i], n[i],
+ dBp[i], n[i], 0.0, dC, n[i]);
+ dtime = omp_get_wtime() - dtime;
+ // printf("The cblas program took %f seconds to execute \n", dtime);
+ fprintf(fptr, "%f,%d\n",dtime, n[i]);
+
+ if(print==1)
+ {
+ printMatrix_double( (double*)dC, n[i]);
+ }
+
+ free(dC);
+ }
+ }
+ fclose(fptr);
+
+}
diff --git a/buch/papers/multiplikation/code/MM.py b/buch/papers/multiplikation/code/MM.py new file mode 100644 index 0000000..626b82d --- /dev/null +++ b/buch/papers/multiplikation/code/MM.py @@ -0,0 +1,311 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +Created on Fri Mar 19 07:31:29 2021 + +@author: nunigan +""" +import numpy as np +import time +import matplotlib.pyplot as plt +from scipy.optimize import curve_fit +import tikzplotlib +def MM(A, B): + n = np.shape(A)[0] + C = np.zeros((n, n)) + for i in range(n): + for j in range(n): + C[i, j] = 0 + for k in range(n): + C[i, j] += A[i, k]*B[k, j] + return C + + +def MM_dc(A, B): + n = np.shape(A)[0] + if(n <= 2): + C = np.zeros((n, n)) + C[0, 0] = A[0, 0]*B[0, 0]+A[0, 1]*B[1, 0] + C[0, 1] = A[0, 0]*B[0, 1]+A[0, 1]*B[1, 1] + C[1, 0] = A[1, 0]*B[0, 0]+A[1, 1]*B[1, 0] + C[1, 1] = A[1, 0]*B[0, 1]+A[1, 1]*B[1, 1] + return C + else: + A11, A12, A21, A22 = A[:n//2, :n//2], A[:n//2, n//2:], A[n//2:, :n//2], A[n//2:, n//2:] + B11, B12, B21, B22 = B[:n//2, :n//2], B[:n//2, n//2:], B[n//2:, :n//2], B[n//2:, n//2:] + C11 = MM_dc(A11, B11) + MM_dc(A12, B21) + C12 = MM_dc(A11, B12) + MM_dc(A12, B22) + C21 = MM_dc(A21, B11) + MM_dc(A22, B21) + C22 = MM_dc(A21, B12) + MM_dc(A22, B22) + C = np.vstack((np.hstack((C11, C12)), np.hstack((C21, C22)))) + return C + + +def strassen(A, B): + n = np.shape(A)[0] + if(n <= 2): + C = np.zeros((n, n)) + P = (A[0, 0]+A[1, 1])*(B[0, 0]+B[1, 1]) + Q = (A[1, 0]+A[1, 1])*B[0, 0] + R = A[0, 0]*(B[0, 1]-B[1, 1]) + S = A[1, 1]*(B[1, 0]-B[0, 0]) + T = (A[0, 0]+A[0, 1])*B[1, 1] + U = (A[1, 0]-A[0, 0])*(B[0, 0]+B[0, 1]) + V = (A[0, 1]-A[1, 1])*(B[1, 0]+B[1, 1]) + C[0, 0] = P+S-T+V + C[0, 1] = R+T + C[1, 0] = Q+S + C[1, 1] = P+R-Q+U + return C + else: + m = n//2 + A11, A12, A21, A22 = A[:m, :m], A[:m, m:], A[m:, :m], A[m:, m:] + B11, B12, B21, B22 = B[:m, :m], B[:m, m:], B[m:, :m], B[m:, m:] + P = strassen((A11+A22),(B11+B22)) + Q = strassen((A21+A22),B11) + R = strassen(A11,(B12-B22)) + S = strassen(A22,(B21-B11)) + T = strassen((A11+A12),B22) + U = strassen((A21-A11),(B11+B12)) + V = strassen((A12-A22),(B21+B22)) + + C11 = P+S-T+V + C12 = R+T + C21 = Q+S + C22 = P+R-Q+U + + C = np.vstack((np.hstack((C11, C12)), np.hstack((C21, C22)))) + return C + +def winograd_inner(a, b): + n = np.shape(a)[0] + if n%2 == 0: + xi = np.sum(a[::2]*a[1::2]) + etha = np.sum(b[::2]*b[1::2]) + # print("xi = {}, etha = {}".format(xi, etha)) + ab = np.sum((a[::2]+b[1::2])*(a[1::2]+b[::2]))-xi-etha + else: + xi = np.sum(a[0:-1:2]*a[1::2]) + etha = np.sum(b[0:-1:2]*b[1::2]) + ab = np.sum((a[0:-1:2]+b[1::2])*(a[1::2]+b[0:-1:2]))-xi-etha+a[-1]*b[-1] + return ab + +def winograd(A, B): + m,n = np.shape(A) + n2,p = np.shape(B) + C = np.zeros((m,p)) + for i in range(np.shape(A)[0]): + for j in range(np.shape(B)[1]): + C[i,j] = winograd_inner(A[i,:], B[:,j]) + return C + +def winograd2(A, B): + m,n = np.shape(A) + n2,p = np.shape(B) + C = np.zeros((m,p)) + xi = np.zeros((m)) + eta = np.zeros((p)) + ab = 0 + for i in range(m): + for j in range(n//2): + xi[i] += A[i,2*j]*A[i,2*j+1] + + for i in range(p): + for j in range(n//2): + eta[i] += B[2*j,i]*B[2*j+1,i] + + if n%2==0: + for i in range(m): + for j in range(p): + ab = 0 + for k in range(n//2): + ab += (A[i,2*k]+B[2*k+1,j])*(A[i,2*k+1]+B[2*k,j]) + C[i,j] = ab-eta[j]-xi[i] + else: + for i in range(m): + for j in range(p): + ab = 0 + for k in range(n//2): + ab += (A[i,2*k]+B[2*k+1,j])*(A[i,2*k+1]+B[2*k,j]) + C[i,j] = ab-eta[j]-xi[i]+A[i,-1]*B[-1,j] + + return C + +def test_perfomance(n): + t_mm = [] + t_mm_dc = [] + t_mm_strassen = [] + t_wino = [] + t_np = [] + + for i in n: + A = np.random.randn(i, i) + B = np.random.randn(i, i) + # A = np.random.randint(-100, 100,(i, i)) + # B = np.random.randint(-100, 100,(i, i)) + + start = time.time() + C3 = strassen(A, B) + t_mm_strassen.append(time.time() - start) + + start = time.time() + C1 = MM(A, B) + t_mm.append(time.time() - start) + + start = time.time() + C2 = MM_dc(A, B) + t_mm_dc.append(time.time() - start) + + start = time.time() + C4 = winograd2(A, B) + t_wino.append(time.time() - start) + + start = time.time() + C = A@B + t_np.append(time.time() - start) + + plt.figure(figsize=(13,8)) + plt.rcParams['font.family'] = 'STIXGeneral' + plt.rc('axes', labelsize=23) + plt.rc('xtick', labelsize=23) + plt.rc('ytick', labelsize=23) + plt.plot(n, t_mm, label='Standard', lw=5) + plt.plot(n, t_mm_dc, label='Divide and conquer', lw=5) + plt.plot(n, t_mm_strassen, label='Strassen', lw=5) + plt.plot(n, t_wino, label='Winograd', lw=5) + plt.plot(n, t_np, label='NumPy A@B', lw=5) + plt.legend() + plt.xlabel("n") + plt.ylabel("time (s)") + plt.grid(True) + plt.tight_layout() + # plt.yscale('log') + plt.legend(fontsize=19) + plt.savefig('meas_' + str(max(n))+ '.pdf') + arr = np.array([n, t_mm, t_mm_dc, t_mm_strassen, t_wino, t_np]) + np.savetxt('meas_' + str(max(n))+ '.txt',arr) + return arr + + +def plot(num): + arr = np.loadtxt('meas_{}.txt'.format(num)) + n, t_mm, t_mm_dc, t_mm_strassen, t_wino, t_np = arr + plt.figure(figsize=(13,8)) + plt.rcParams['font.family'] = 'STIXGeneral' + plt.rc('axes', labelsize=23) + plt.rc('xtick', labelsize=23) + plt.rc('ytick', labelsize=23) + plt.plot(n, t_mm, label='3 For Loops', lw=5) + plt.plot(n, t_mm_dc, label='Divide and Conquer', lw=5) + plt.plot(n, t_mm_strassen, label='Strassen', lw=5) + # plt.plot(n, t_wino, label='Winograd', lw=5) + plt.plot(n, t_np, label='NumPy A@B', lw=5) + plt.legend() + plt.xlabel("n") + plt.ylabel("time (s)") + plt.grid(True) + plt.tight_layout() + # plt.yscale('log') + plt.legend(fontsize=19) + plt.savefig('meas_' + str(num)+ '.pdf') + return arr + +def plot_c_res(ave, num): + MM = np.loadtxt("meas/MM.txt", delimiter=',') + # winograd = np.loadtxt("meas/winograd.txt", delimiter=',') + blas = np.loadtxt("meas/blas.txt", delimiter=',') + MM_dc = np.loadtxt("meas/MM_dc.txt", delimiter=',') + strassen = np.loadtxt("meas/strassen.txt", delimiter=',') + + MM_t = MM[:,0] + MM_n = MM[:,1] + MM_t = np.mean(MM_t.reshape(-1,ave),axis=1) + MM_n = np.mean(MM_n.reshape(-1,ave),axis=1) + + MM_dc_t = MM_dc[:,0] + MM_dc_n = MM_dc[:,1] + MM_dc_t = np.mean(MM_dc_t.reshape(-1,ave),axis=1) + MM_dc_n = np.mean(MM_dc_n.reshape(-1,ave),axis=1) + + strassen_t = strassen[:,0] + strassen_n = strassen[:,1] + strassen_t = np.mean(strassen_t.reshape(-1,ave),axis=1) + strassen_n = np.mean(strassen_n.reshape(-1,ave),axis=1) + + # winograd_t = winograd[:,0] + # winograd_n = winograd[:,1] + # winograd_t = np.mean(winograd_t.reshape(-1,ave),axis=1) + # winograd_n = np.mean(winograd_n.reshape(-1,ave),axis=1) + + blas_t = blas[:,0] + blas_n = blas[:,1] + blas_t = np.mean(blas_t.reshape(-1,ave),axis=1) + blas_n = np.mean(blas_n.reshape(-1,ave),axis=1) + + def func(x, a,b): + return b*x**a + + # popt, pcov = curve_fit(func, blas_n, blas_t) + # popt1, pcov2 = curve_fit(func, blas_n, winograd_t) + # popt2, pcov2 = curve_fit(func, blas_n, MM_t) + + plt.figure(figsize=(13,8)) + plt.rcParams['font.family'] = 'STIXGeneral' + plt.rc('axes', labelsize=23) + plt.rc('xtick', labelsize=23) + plt.rc('ytick', labelsize=23) + plt.plot(MM_n, MM_t, label='3 For Loops', lw=5) + # plt.plot(winograd_n, winograd_t, label='Winograd MM', lw=5) + plt.plot(blas_n, blas_t, label='Blas', lw=5) + plt.plot(strassen_n, strassen_t, label='Strassen', lw=5) + plt.plot(MM_dc_n, MM_dc_t, label='Divide and Conquer', lw=5) + plt.xlabel("n") + plt.ylabel("time (s)") + plt.grid(True) + plt.tight_layout() + plt.legend(fontsize=19) + plt.savefig('c_meas_' + str(num)+ '.pdf') + + # plt.plot(blas_n, func(blas_n, *popt), 'r-', label='fit blas: a=%5.5f, b=%5.10f' % tuple(popt)) + # plt.plot(blas_n, func(blas_n, *popt1), 'r-', label='fit winograd: a=%5.5f, b=%5.10f' % tuple(popt1)) + # plt.plot(blas_n, func(blas_n, *popt2), 'r-', label='fit MM: a=%5.5f, b=%5.10f' % tuple(popt2)) + + plt.legend() + + +# test%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +if __name__ == '__main__': + plot_c_res(1, 4096) + + + # plot(8) + # n = np.logspace(1,10,10,base=2,dtype=(np.int)) + # n = np.arange(1,50,2) + A = np.random.randint(-10, 10, (5,3)) + B = np.random.randint(-10, 10, (3,5)) + + C = winograd2(A, B) + C_test = A@B + print(C) + print(C_test) + # print(np.equal(C, C_test)) + + # t_np = test_perfomance(n) + # C = strassen(A, B) + # C_test = A@B + + + # plot_c_res() + # def func(x, a): + # return x**a + + # popt, pcov = curve_fit(func, n, t_np, bounds=(2, 3)) + + + # plt.figure() + # plt.plot(n, t_np, 'b-', label='data') + # plt.plot(n, func(n, *popt), 'r-', label='fit: a=%5.3f' % tuple(popt)) + # plt.xlabel('x') + # plt.ylabel('y') + # plt.legend() +
\ No newline at end of file diff --git a/buch/papers/multiplikation/code/__pycache__/MM.cpython-38.pyc b/buch/papers/multiplikation/code/__pycache__/MM.cpython-38.pyc Binary files differnew file mode 100644 index 0000000..7768772 --- /dev/null +++ b/buch/papers/multiplikation/code/__pycache__/MM.cpython-38.pyc diff --git a/buch/papers/multiplikation/code/c_matrix.h b/buch/papers/multiplikation/code/c_matrix.h new file mode 100644 index 0000000..13df55d --- /dev/null +++ b/buch/papers/multiplikation/code/c_matrix.h @@ -0,0 +1,101 @@ +/* Seminar Matrizen, autogenerated File, Michael Schmid, 30/05/2021, 22:00:57 */ + +#include <stdint.h> +const int A0[][2] = + { + {-15,68}, + {49,86} + }; +const int B0[][2] = + { + {33,73}, + {38,-76} + }; +const double dB0[][2] = + { + {33,73}, + {38,-76} + }; +const double dA0[][2] = + { + {-15,68}, + {49,86} + }; +const int A1[][4] = + { + {75,-38,-32,-65}, + {37,74,-31,29}, + {15,-62,-20,-20}, + {-31,-35,-89,47} + }; +const int B1[][4] = + { + {71,90,78,-98}, + {4,63,12,-47}, + {11,-44,75,-69}, + {95,-15,64,23} + }; +const double dB1[][4] = + { + {71,90,78,-98}, + {4,63,12,-47}, + {11,-44,75,-69}, + {95,-15,64,23} + }; +const double dA1[][4] = + { + {75,-38,-32,-65}, + {37,74,-31,29}, + {15,-62,-20,-20}, + {-31,-35,-89,47} + }; +const int A2[][8] = + { + {80,42,3,-16,6,55,87,16}, + {-99,-14,21,-1,-94,-56,91,10}, + {-47,-55,-59,62,12,-53,87,-65}, + {-60,94,-67,23,-62,33,-63,-72}, + {12,-75,16,21,22,-37,1,16}, + {-100,-99,82,-66,2,64,-13,44}, + {59,-100,-90,8,36,-24,18,88}, + {73,-58,75,-100,-19,-29,85,-19} + }; +const int B2[][8] = + { + {-61,88,69,49,-53,47,73,45}, + {16,14,-88,-11,-67,-73,-20,43}, + {-60,-63,26,32,-29,18,-44,-69}, + {1,21,21,38,7,-100,-61,-76}, + {-90,95,-99,88,49,-80,27,-36}, + {24,-12,-47,-7,29,15,52,37}, + {-98,-76,29,76,-41,-75,97,79}, + {62,-90,-35,-14,-30,-42,-95,52} + }; +const double dB2[][8] = + { + {-61,88,69,49,-53,47,73,45}, + {16,14,-88,-11,-67,-73,-20,43}, + {-60,-63,26,32,-29,18,-44,-69}, + {1,21,21,38,7,-100,-61,-76}, + {-90,95,-99,88,49,-80,27,-36}, + {24,-12,-47,-7,29,15,52,37}, + {-98,-76,29,76,-41,-75,97,79}, + {62,-90,-35,-14,-30,-42,-95,52} + }; +const double dA2[][8] = + { + {80,42,3,-16,6,55,87,16}, + {-99,-14,21,-1,-94,-56,91,10}, + {-47,-55,-59,62,12,-53,87,-65}, + {-60,94,-67,23,-62,33,-63,-72}, + {12,-75,16,21,22,-37,1,16}, + {-100,-99,82,-66,2,64,-13,44}, + {59,-100,-90,8,36,-24,18,88}, + {73,-58,75,-100,-19,-29,85,-19} + }; +const int *Ap[3] = {(int*) A0,(int*) A1,(int*) A2}; +const int *Bp[3] = {(int*) B0,(int*) B1,(int*) B2}; +const double *dAp[3] = {(double*) dA0,(double*) dA1,(double*) dA2}; +const double *dBp[3] = {(double*) dB0,(double*) dB1,(double*) dB2}; +int n[3] = {2,4,8}; +int n_arrays = 3; diff --git a/buch/papers/multiplikation/code/c_meas_1024.pdf b/buch/papers/multiplikation/code/c_meas_1024.pdf Binary files differnew file mode 100644 index 0000000..95b68b5 --- /dev/null +++ b/buch/papers/multiplikation/code/c_meas_1024.pdf diff --git a/buch/papers/multiplikation/code/c_meas_128.pdf b/buch/papers/multiplikation/code/c_meas_128.pdf Binary files differnew file mode 100644 index 0000000..56b9200 --- /dev/null +++ b/buch/papers/multiplikation/code/c_meas_128.pdf diff --git a/buch/papers/multiplikation/code/c_meas_16.pdf b/buch/papers/multiplikation/code/c_meas_16.pdf Binary files differnew file mode 100644 index 0000000..2edc82d --- /dev/null +++ b/buch/papers/multiplikation/code/c_meas_16.pdf diff --git a/buch/papers/multiplikation/code/c_meas_2048.pdf b/buch/papers/multiplikation/code/c_meas_2048.pdf Binary files differnew file mode 100644 index 0000000..caba698 --- /dev/null +++ b/buch/papers/multiplikation/code/c_meas_2048.pdf diff --git a/buch/papers/multiplikation/code/c_meas_256.pdf b/buch/papers/multiplikation/code/c_meas_256.pdf Binary files differnew file mode 100644 index 0000000..383ae86 --- /dev/null +++ b/buch/papers/multiplikation/code/c_meas_256.pdf diff --git a/buch/papers/multiplikation/code/c_meas_32.pdf b/buch/papers/multiplikation/code/c_meas_32.pdf Binary files differnew file mode 100644 index 0000000..180fd22 --- /dev/null +++ b/buch/papers/multiplikation/code/c_meas_32.pdf diff --git a/buch/papers/multiplikation/code/c_meas_4096.pdf b/buch/papers/multiplikation/code/c_meas_4096.pdf Binary files differnew file mode 100644 index 0000000..547d794 --- /dev/null +++ b/buch/papers/multiplikation/code/c_meas_4096.pdf diff --git a/buch/papers/multiplikation/code/c_meas_512.pdf b/buch/papers/multiplikation/code/c_meas_512.pdf Binary files differnew file mode 100644 index 0000000..5e8894e --- /dev/null +++ b/buch/papers/multiplikation/code/c_meas_512.pdf diff --git a/buch/papers/multiplikation/code/c_meas_64.pdf b/buch/papers/multiplikation/code/c_meas_64.pdf Binary files differnew file mode 100644 index 0000000..8ff905c --- /dev/null +++ b/buch/papers/multiplikation/code/c_meas_64.pdf diff --git a/buch/papers/multiplikation/code/c_meas_8.pdf b/buch/papers/multiplikation/code/c_meas_8.pdf Binary files differnew file mode 100644 index 0000000..9682aca --- /dev/null +++ b/buch/papers/multiplikation/code/c_meas_8.pdf diff --git a/buch/papers/multiplikation/code/helper_class.py b/buch/papers/multiplikation/code/helper_class.py new file mode 100755 index 0000000..485fa76 --- /dev/null +++ b/buch/papers/multiplikation/code/helper_class.py @@ -0,0 +1,105 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +Created on Fri Mar 12 09:02:48 2021 + +@author: nunigan +""" + +from datetime import datetime +import numpy as np + +class Helper(): + def __init__(self): + pass + + def write_c_matrix(self, n_array): + + with open('c_matrix.h', 'w') as file: + file.writelines('/* Seminar Matrizen, autogenerated File, Michael Schmid, {} */ \n \n'.format(datetime.now().strftime("%d/%m/%Y, %H:%M:%S"))) + + file.writelines('#include <stdint.h> \n') + + + + for k, n in enumerate(n_array): + A = np.random.randint(-100,100,(n,n)) + B = np.random.randint(-100,100,(n,n)) + file.writelines('const int A{}[][{}] = \n'.format(k, n)) + file.writelines(' {\n') + for i in range(n): + file.writelines(' {') + for j in range(n): + if j == n-1: + file.writelines('{}'.format(A[i,j])) + else: + file.writelines('{},'.format(A[i,j])) + if i == n-1: + file.writelines('}\n') + else: + file.writelines('},\n') + + file.writelines(' };\n') + + file.writelines('const int B{}[][{}] = \n'.format(k,n)) + file.writelines(' {\n') + for i in range(n): + file.writelines(' {') + for j in range(n): + if j == n-1: + file.writelines('{}'.format(B[i,j])) + else: + file.writelines('{},'.format(B[i,j])) + if i == n-1: + file.writelines('}\n') + else: + file.writelines('},\n') + + file.writelines(' };\n') + + file.writelines('const double dB{}[][{}] = \n'.format(k,n)) + file.writelines(' {\n') + for i in range(n): + file.writelines(' {') + for j in range(n): + if j == n-1: + file.writelines('{}'.format(B[i,j])) + else: + file.writelines('{},'.format(B[i,j])) + if i == n-1: + file.writelines('}\n') + else: + file.writelines('},\n') + + file.writelines(' };\n') + + file.writelines('const double dA{}[][{}] = \n'.format(k,n)) + file.writelines(' {\n') + for i in range(n): + file.writelines(' {') + for j in range(n): + if j == n-1: + file.writelines('{}'.format(A[i,j])) + else: + file.writelines('{},'.format(A[i,j])) + if i == n-1: + file.writelines('}\n') + else: + file.writelines('},\n') + + file.writelines(' };\n') + + file.writelines('const int *Ap[{}] = {{{}}}; \n'.format(len(n_array),",".join(['(int*) A'+str(element) for element in np.arange(len(n_array))]))) + file.writelines('const int *Bp[{}] = {{{}}}; \n'.format(len(n_array),",".join(['(int*) B'+str(element) for element in np.arange(len(n_array))]))) + file.writelines('const double *dAp[{}] = {{{}}}; \n'.format(len(n_array),",".join(['(double*) dA'+str(element) for element in np.arange(len(n_array))]))) + file.writelines('const double *dBp[{}] = {{{}}}; \n'.format(len(n_array),",".join(['(double*) dB'+str(element) for element in np.arange(len(n_array))]))) + file.writelines('int n[{}] = {{{}}}; \n'.format(len(n_array),",".join([str(element) for element in n_array]))) + file.writelines('int n_arrays = {};\n'.format(len(n_array))) + +# test%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +if __name__ == '__main__': + + helper = Helper() + # n = np.arange(2,10) + n = np.logspace(1,3,3,base=2,dtype=(np.int)) + C = helper.write_c_matrix(n) diff --git a/buch/papers/multiplikation/code/meas/MM.txt b/buch/papers/multiplikation/code/meas/MM.txt new file mode 100644 index 0000000..1a0cd5d --- /dev/null +++ b/buch/papers/multiplikation/code/meas/MM.txt @@ -0,0 +1,12 @@ +0.000000,2 +0.000000,4 +0.000002,8 +0.000011,16 +0.000080,32 +0.000653,64 +0.005397,128 +0.045147,256 +0.487710,512 +3.964180,1024 +128.863544,2048 +996.370209,4096 diff --git a/buch/papers/multiplikation/code/meas/MM_dc.txt b/buch/papers/multiplikation/code/meas/MM_dc.txt new file mode 100644 index 0000000..0d5580a --- /dev/null +++ b/buch/papers/multiplikation/code/meas/MM_dc.txt @@ -0,0 +1,12 @@ +0.000006,2 +0.000007,4 +0.000035,8 +0.000228,16 +0.001310,32 +0.007204,64 +0.034338,128 +0.267511,256 +2.131212,512 +17.177403,1024 +146.112874,2048 +1156.777565,4096 diff --git a/buch/papers/multiplikation/code/meas/blas.txt b/buch/papers/multiplikation/code/meas/blas.txt new file mode 100644 index 0000000..6b7cd0b --- /dev/null +++ b/buch/papers/multiplikation/code/meas/blas.txt @@ -0,0 +1,12 @@ +0.000001,2 +0.000000,4 +0.000001,8 +0.000003,16 +0.000021,32 +0.000164,64 +0.001240,128 +0.009657,256 +0.072523,512 +0.735149,1024 +6.895747,2048 +56.812183,4096 diff --git a/buch/papers/multiplikation/code/meas/strassen.txt b/buch/papers/multiplikation/code/meas/strassen.txt new file mode 100644 index 0000000..89cf41a --- /dev/null +++ b/buch/papers/multiplikation/code/meas/strassen.txt @@ -0,0 +1,12 @@ +0.000000,2 +0.000003,4 +0.000010,8 +0.000086,16 +0.000476,32 +0.003366,64 +0.025547,128 +0.184593,256 +1.248713,512 +9.007700,1024 +61.079879,2048 +424.493037,4096 diff --git a/buch/papers/multiplikation/code/meas/test/4096/MM.txt b/buch/papers/multiplikation/code/meas/test/4096/MM.txt new file mode 100644 index 0000000..25e40e1 --- /dev/null +++ b/buch/papers/multiplikation/code/meas/test/4096/MM.txt @@ -0,0 +1,12 @@ +0.000000,2 +0.000000,4 +0.000002,8 +0.000011,16 +0.000100,32 +0.000712,64 +0.005498,128 +0.046711,256 +0.489233,512 +4.006544,1024 +124.427496,2048 +993.405615,4096 diff --git a/buch/papers/multiplikation/code/meas/test/4096/strassen.txt b/buch/papers/multiplikation/code/meas/test/4096/strassen.txt new file mode 100644 index 0000000..eb2a496 --- /dev/null +++ b/buch/papers/multiplikation/code/meas/test/4096/strassen.txt @@ -0,0 +1,12 @@ +0.000007,2 +0.000007,4 +0.000029,8 +0.000199,16 +0.001414,32 +0.007583,64 +0.028096,128 +0.171662,256 +1.198323,512 +8.421896,1024 +58.803644,2048 +415.115401,4096 diff --git a/buch/papers/multiplikation/code/meas/test/MM.txt b/buch/papers/multiplikation/code/meas/test/MM.txt new file mode 100644 index 0000000..e0754ab --- /dev/null +++ b/buch/papers/multiplikation/code/meas/test/MM.txt @@ -0,0 +1,14900 @@ +0.000004,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000001,8 +0.000002,8 +0.000001,8 +0.000002,8 +0.000001,8 +0.000001,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000001,8 +0.000002,8 +0.000002,8 +0.000001,8 +0.000002,8 +0.000001,8 +0.000002,8 +0.000001,8 +0.000002,8 +0.000002,8 +0.000001,8 +0.000002,8 +0.000001,8 +0.000002,8 +0.000001,8 +0.000002,8 +0.000002,8 +0.000001,8 +0.000001,8 +0.000002,8 +0.000002,8 +0.000001,8 +0.000001,8 +0.000002,8 +0.000001,8 +0.000001,8 +0.000002,8 +0.000001,8 +0.000001,8 +0.000001,8 +0.000002,8 +0.000002,8 +0.000001,8 +0.000001,8 +0.000002,8 +0.000002,8 +0.000001,8 +0.000002,8 +0.000002,8 +0.000001,8 +0.000002,8 +0.000001,8 +0.000002,8 +0.000001,8 +0.000001,8 +0.000002,8 +0.000002,8 +0.000001,8 +0.000002,8 +0.000001,8 +0.000002,8 +0.000001,8 +0.000002,8 +0.000001,8 +0.000002,8 +0.000002,8 +0.000001,8 +0.000001,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000001,8 +0.000002,8 +0.000001,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000001,8 +0.000001,8 +0.000002,8 +0.000001,8 +0.000002,8 +0.000001,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000001,8 +0.000001,8 +0.000002,8 +0.000002,8 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000006,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000013,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000008,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000016,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000011,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000025,16 +0.000011,16 +0.000020,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000016,18 +0.000015,18 +0.000014,18 +0.000015,18 +0.000015,18 +0.000014,18 +0.000015,18 +0.000014,18 +0.000015,18 +0.000014,18 +0.000015,18 +0.000014,18 +0.000014,18 +0.000015,18 +0.000014,18 +0.000014,18 +0.000015,18 +0.000014,18 +0.000015,18 +0.000014,18 +0.000014,18 +0.000014,18 +0.000014,18 +0.000014,18 +0.000015,18 +0.000015,18 +0.000014,18 +0.000015,18 +0.000015,18 +0.000014,18 +0.000015,18 +0.000014,18 +0.000015,18 +0.000015,18 +0.000014,18 +0.000014,18 +0.000015,18 +0.000014,18 +0.000015,18 +0.000014,18 +0.000014,18 +0.000014,18 +0.000015,18 +0.000014,18 +0.000015,18 +0.000014,18 +0.000014,18 +0.000015,18 +0.000015,18 +0.000014,18 +0.000014,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000014,18 +0.000014,18 +0.000014,18 +0.000014,18 +0.000014,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000014,18 +0.000015,18 +0.000014,18 +0.000015,18 +0.000014,18 +0.000014,18 +0.000014,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000014,18 +0.000015,18 +0.000015,18 +0.000014,18 +0.000015,18 +0.000015,18 +0.000014,18 +0.000014,18 +0.000015,18 +0.000014,18 +0.000014,18 +0.000014,18 +0.000015,18 +0.000014,18 +0.000014,18 +0.000014,18 +0.000015,18 +0.000015,18 +0.000014,18 +0.000014,18 +0.000015,18 +0.000014,18 +0.000015,18 +0.000014,18 +0.000015,18 +0.000014,18 +0.000015,18 +0.000014,18 +0.000021,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000030,20 +0.000029,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000030,20 +0.000030,20 +0.000029,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000048,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000027,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000033,22 +0.000040,22 +0.000045,22 +0.000046,22 +0.000041,22 +0.000040,22 +0.000040,22 +0.000040,22 +0.000042,22 +0.000040,22 +0.000043,22 +0.000030,22 +0.000036,22 +0.000026,22 +0.000037,22 +0.000049,22 +0.000036,22 +0.000046,22 +0.000047,22 +0.000049,22 +0.000037,22 +0.000035,22 +0.000037,22 +0.000050,22 +0.000055,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000036,22 +0.000036,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000036,22 +0.000046,22 +0.000062,22 +0.000047,22 +0.000036,22 +0.000047,22 +0.000041,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000050,24 +0.000053,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000055,24 +0.000058,26 +0.000055,26 +0.000077,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000052,26 +0.000043,26 +0.000043,26 +0.000066,26 +0.000061,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000054,28 +0.000054,28 +0.000053,28 +0.000053,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000065,28 +0.000066,28 +0.000058,28 +0.000097,28 +0.000084,28 +0.000073,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000053,28 +0.000054,28 +0.000054,28 +0.000073,28 +0.000054,28 +0.000053,28 +0.000054,28 +0.000054,28 +0.000053,28 +0.000073,28 +0.000054,28 +0.000064,28 +0.000063,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000073,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000082,28 +0.000063,28 +0.000083,28 +0.000063,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000069,30 +0.000066,30 +0.000066,30 +0.000074,30 +0.000103,30 +0.000108,30 +0.000107,30 +0.000112,30 +0.000111,30 +0.000087,30 +0.000105,30 +0.000076,30 +0.000066,30 +0.000107,30 +0.000119,30 +0.000105,30 +0.000117,30 +0.000077,30 +0.000077,30 +0.000069,30 +0.000069,30 +0.000069,30 +0.000069,30 +0.000079,30 +0.000069,30 +0.000069,30 +0.000069,30 +0.000069,30 +0.000069,30 +0.000069,30 +0.000069,30 +0.000069,30 +0.000077,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000096,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000085,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000089,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000079,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000102,32 +0.000091,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000090,32 +0.000119,32 +0.000129,32 +0.000134,32 +0.000095,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000100,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000102,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000100,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000100,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000114,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000098,34 +0.000096,34 +0.000106,34 +0.000124,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000134,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000131,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000119,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000154,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000116,36 +0.000153,36 +0.000133,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000123,36 +0.000142,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000150,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000143,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000143,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000143,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000145,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000161,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000180,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000143,38 +0.000168,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000168,40 +0.000164,40 +0.000165,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000166,40 +0.000164,40 +0.000268,40 +0.000164,40 +0.000164,40 +0.000165,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000188,40 +0.000183,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000174,40 +0.000293,40 +0.000184,40 +0.000164,40 +0.000164,40 +0.000170,40 +0.000234,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000195,40 +0.000174,40 +0.000164,40 +0.000214,40 +0.000234,40 +0.000203,40 +0.000164,40 +0.000183,40 +0.000183,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000186,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000190,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000200,42 +0.000198,42 +0.000215,42 +0.000258,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000231,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000201,42 +0.000252,42 +0.000189,42 +0.000189,42 +0.000347,42 +0.000296,42 +0.000208,42 +0.000194,42 +0.000195,42 +0.000213,42 +0.000215,42 +0.000323,42 +0.000235,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000199,42 +0.000220,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000199,42 +0.000240,42 +0.000189,42 +0.000222,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000209,42 +0.000199,42 +0.000194,42 +0.000194,42 +0.000194,42 +0.000194,42 +0.000194,42 +0.000194,42 +0.000194,42 +0.000194,42 +0.000194,42 +0.000202,42 +0.000223,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000222,44 +0.000216,44 +0.000217,44 +0.000216,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000216,44 +0.000217,44 +0.000288,44 +0.000228,44 +0.000216,44 +0.000217,44 +0.000254,44 +0.000216,44 +0.000216,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000216,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000216,44 +0.000216,44 +0.000268,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000216,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000256,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000254,44 +0.000255,44 +0.000217,44 +0.000216,44 +0.000216,44 +0.000216,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000216,44 +0.000240,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000216,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000216,44 +0.000217,44 +0.000245,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000216,44 +0.000217,44 +0.000217,44 +0.000216,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000250,46 +0.000246,46 +0.000246,46 +0.000249,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000257,46 +0.000275,46 +0.000303,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000285,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000250,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000252,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000253,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000253,46 +0.000257,46 +0.000277,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000285,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000250,46 +0.000286,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000279,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000279,48 +0.000280,48 +0.000286,48 +0.000280,48 +0.000280,48 +0.000279,48 +0.000279,48 +0.000279,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000279,48 +0.000284,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000279,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000279,48 +0.000280,48 +0.000280,48 +0.000279,48 +0.000284,48 +0.000280,48 +0.000280,48 +0.000290,48 +0.000311,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000318,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000281,48 +0.000279,48 +0.000280,48 +0.000279,48 +0.000280,48 +0.000280,48 +0.000279,48 +0.000280,48 +0.000279,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000283,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000281,48 +0.000321,48 +0.000280,48 +0.000332,48 +0.000316,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000279,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000334,48 +0.000343,48 +0.000319,50 +0.000338,50 +0.000315,50 +0.000431,50 +0.000315,50 +0.000335,50 +0.000315,50 +0.000446,50 +0.000315,50 +0.000315,50 +0.000351,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000359,50 +0.000315,50 +0.000343,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000355,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000352,50 +0.000315,50 +0.000315,50 +0.000325,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000326,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000354,50 +0.000339,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000343,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000334,50 +0.000376,50 +0.000317,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000319,50 +0.000315,50 +0.000359,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000354,52 +0.000353,52 +0.000362,52 +0.000353,52 +0.000354,52 +0.000356,52 +0.000392,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000354,52 +0.000353,52 +0.000354,52 +0.000354,52 +0.000358,52 +0.000353,52 +0.000354,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000354,52 +0.000353,52 +0.000354,52 +0.000355,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000354,52 +0.000357,52 +0.000353,52 +0.000354,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000354,52 +0.000353,52 +0.000354,52 +0.000362,52 +0.000356,52 +0.000354,52 +0.000353,52 +0.000392,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000358,52 +0.000353,52 +0.000353,52 +0.000354,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000354,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000355,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000358,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000355,52 +0.000409,54 +0.000395,54 +0.000395,54 +0.000405,54 +0.000423,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000400,54 +0.000394,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000396,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000394,54 +0.000395,54 +0.000395,54 +0.000396,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000394,54 +0.000395,54 +0.000395,54 +0.000398,54 +0.000395,54 +0.000403,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000434,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000397,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000399,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000421,54 +0.000395,54 +0.000395,54 +0.000473,54 +0.000404,54 +0.000419,54 +0.000415,54 +0.000419,54 +0.000408,54 +0.000443,54 +0.000419,54 +0.000395,54 +0.000419,54 +0.000434,54 +0.000409,54 +0.000467,54 +0.000462,54 +0.000429,54 +0.000395,54 +0.000440,54 +0.000415,54 +0.000395,54 +0.000497,54 +0.000415,54 +0.000395,54 +0.000436,54 +0.000395,54 +0.000395,54 +0.000431,54 +0.000395,54 +0.000444,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000469,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000463,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000448,56 +0.000439,56 +0.000439,56 +0.000523,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000472,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000535,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000461,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000450,56 +0.000439,56 +0.000468,56 +0.000478,56 +0.000439,56 +0.000439,56 +0.000440,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000441,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000461,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000457,56 +0.000451,56 +0.000451,56 +0.000448,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000470,56 +0.000439,56 +0.000439,56 +0.000537,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000512,58 +0.000500,58 +0.000497,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000529,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000491,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000511,58 +0.000496,58 +0.000487,58 +0.000487,58 +0.000526,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000492,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000489,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000489,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000491,58 +0.000487,58 +0.000495,58 +0.000487,58 +0.000487,58 +0.000526,58 +0.000487,58 +0.000487,58 +0.000489,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000521,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000545,58 +0.000521,58 +0.000511,58 +0.000557,58 +0.000544,58 +0.000531,58 +0.000500,58 +0.000498,58 +0.000539,58 +0.000521,58 +0.000517,58 +0.000549,58 +0.000508,58 +0.000576,60 +0.000609,60 +0.000601,60 +0.000538,60 +0.000538,60 +0.000582,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000543,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000540,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000542,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000546,60 +0.000538,60 +0.000579,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000569,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000570,60 +0.000567,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000542,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000546,60 +0.000538,60 +0.000541,60 +0.000577,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000543,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000540,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000542,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000548,60 +0.000609,60 +0.000538,60 +0.000570,60 +0.000538,60 +0.000558,60 +0.000558,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000542,60 +0.000538,60 +0.000597,62 +0.000593,62 +0.000593,62 +0.000595,62 +0.000593,62 +0.000594,62 +0.000593,62 +0.000592,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000597,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000633,62 +0.000595,62 +0.000601,62 +0.000593,62 +0.000632,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000598,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000595,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000594,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000597,62 +0.000593,62 +0.000601,62 +0.000593,62 +0.000632,62 +0.000593,62 +0.000595,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000597,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000606,62 +0.000668,62 +0.000617,62 +0.000617,62 +0.000637,62 +0.000607,62 +0.000634,62 +0.000625,62 +0.000608,62 +0.000667,62 +0.000634,62 +0.000653,62 +0.000683,62 +0.000625,62 +0.000593,62 +0.000593,62 +0.000635,62 +0.000593,62 +0.000593,62 +0.000633,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000613,62 +0.000677,62 +0.000746,62 +0.000613,62 +0.000749,62 +0.000623,62 +0.000612,62 +0.000593,62 +0.000632,62 +0.000593,62 +0.000612,62 +0.000658,64 +0.000681,64 +0.000651,64 +0.000697,64 +0.000650,64 +0.000650,64 +0.000671,64 +0.000650,64 +0.000650,64 +0.000680,64 +0.000650,64 +0.000650,64 +0.000651,64 +0.000650,64 +0.000651,64 +0.000673,64 +0.000732,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000654,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000659,64 +0.000653,64 +0.000690,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000655,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000652,64 +0.000651,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000654,64 +0.000650,64 +0.000670,64 +0.000670,64 +0.000650,64 +0.000709,64 +0.000663,64 +0.000689,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000655,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000652,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000654,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000652,64 +0.000658,64 +0.000650,64 +0.000689,64 +0.000650,64 +0.000650,64 +0.000655,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000652,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000654,64 +0.000650,64 +0.000650,64 +0.000651,64 +0.000651,64 +0.000650,64 +0.000725,66 +0.000713,66 +0.000722,66 +0.000713,66 +0.000752,66 +0.000713,66 +0.000718,66 +0.000713,66 +0.000713,66 +0.000713,66 +0.000713,66 +0.000713,66 +0.000759,66 +0.000713,66 +0.000713,66 +0.000713,66 +0.000713,66 +0.000717,66 +0.000713,66 +0.000812,66 +0.000736,66 +0.000740,66 +0.000776,66 +0.000755,66 +0.000738,66 +0.000766,66 +0.000775,66 +0.000797,66 +0.000776,66 +0.000829,66 +0.000722,66 +0.000713,66 +0.000713,66 +0.000736,66 +0.000713,66 +0.000713,66 +0.000713,66 +0.000713,66 +0.000713,66 +0.000859,66 +0.000825,66 +0.000713,66 +0.000713,66 +0.000733,66 +0.000757,66 +0.000713,66 +0.000733,66 +0.000765,66 +0.000772,66 +0.000894,66 +0.000713,66 +0.000713,66 +0.000752,66 +0.000731,66 +0.000754,66 +0.000723,66 +0.000713,66 +0.000734,66 +0.000713,66 +0.000713,66 +0.000749,66 +0.000793,66 +0.000713,66 +0.000713,66 +0.000713,66 +0.000840,66 +0.000768,66 +0.000752,66 +0.000756,66 +0.000713,66 +0.000724,66 +0.000781,66 +0.000713,66 +0.000713,66 +0.000713,66 +0.000713,66 +0.000736,66 +0.000713,66 +0.000713,66 +0.000713,66 +0.000713,66 +0.000713,66 +0.000736,66 +0.000713,66 +0.000713,66 +0.000713,66 +0.000713,66 +0.000744,66 +0.000713,66 +0.000713,66 +0.000713,66 +0.000713,66 +0.000712,66 +0.000745,66 +0.000713,66 +0.000752,66 +0.000713,66 +0.000713,66 +0.000719,66 +0.000713,66 +0.000789,68 +0.000778,68 +0.000778,68 +0.000778,68 +0.000785,68 +0.000778,68 +0.000778,68 +0.000778,68 +0.000778,68 +0.000783,68 +0.000778,68 +0.000778,68 +0.000778,68 +0.000778,68 +0.000780,68 +0.000787,68 +0.000817,68 +0.000778,68 +0.000778,68 +0.000783,68 +0.000778,68 +0.000778,68 +0.000778,68 +0.000778,68 +0.000780,68 +0.000779,68 +0.000778,68 +0.000778,68 +0.000778,68 +0.000780,68 +0.000779,68 +0.000778,68 +0.000778,68 +0.000778,68 +0.000782,68 +0.000778,68 +0.000787,68 +0.000778,68 +0.000817,68 +0.000781,68 +0.000778,68 +0.000778,68 +0.000778,68 +0.000778,68 +0.000783,68 +0.000778,68 +0.000778,68 +0.000778,68 +0.000778,68 +0.000778,68 +0.000780,68 +0.000778,68 +0.000845,68 +0.000822,68 +0.000813,68 +0.000832,68 +0.000826,68 +0.000902,68 +0.000890,68 +0.000835,68 +0.000799,68 +0.000868,68 +0.000778,68 +0.000778,68 +0.000816,68 +0.000778,68 +0.000779,68 +0.000778,68 +0.000778,68 +0.000813,68 +0.000798,68 +0.000778,68 +0.000778,68 +0.000798,68 +0.000820,68 +0.000778,68 +0.000779,68 +0.000778,68 +0.000787,68 +0.000841,68 +0.000778,68 +0.000778,68 +0.000778,68 +0.000778,68 +0.000783,68 +0.000778,68 +0.000778,68 +0.000778,68 +0.000778,68 +0.000778,68 +0.000780,68 +0.000846,68 +0.000778,68 +0.000778,68 +0.000778,68 +0.000786,68 +0.000779,68 +0.000778,68 +0.000779,68 +0.000790,68 +0.000864,70 +0.000887,70 +0.000848,70 +0.000895,70 +0.000856,70 +0.000848,70 +0.000848,70 +0.000848,70 +0.000848,70 +0.000850,70 +0.000848,70 +0.000848,70 +0.000848,70 +0.000848,70 +0.000849,70 +0.000848,70 +0.000848,70 +0.000848,70 +0.000863,70 +0.000848,70 +0.000887,70 +0.000848,70 +0.000848,70 +0.000852,70 +0.000848,70 +0.000848,70 +0.000848,70 +0.000848,70 +0.000854,70 +0.000848,70 +0.000848,70 +0.000848,70 +0.000850,70 +0.000848,70 +0.000848,70 +0.000848,70 +0.000848,70 +0.000852,70 +0.000857,70 +0.000848,70 +0.000887,70 +0.000848,70 +0.000850,70 +0.000848,70 +0.000848,70 +0.000848,70 +0.000848,70 +0.000896,70 +0.000848,70 +0.000848,70 +0.000848,70 +0.000850,70 +0.000848,70 +0.000848,70 +0.000848,70 +0.000848,70 +0.000852,70 +0.000848,70 +0.000857,70 +0.000887,70 +0.000848,70 +0.000851,70 +0.001152,70 +0.000848,70 +0.000848,70 +0.000880,70 +0.001018,70 +0.000848,70 +0.001016,70 +0.000885,70 +0.000848,70 +0.000935,70 +0.000894,70 +0.000883,70 +0.000921,70 +0.000926,70 +0.000922,70 +0.001052,70 +0.000956,70 +0.000883,70 +0.001083,70 +0.000970,70 +0.001244,70 +0.000980,70 +0.000928,70 +0.000927,70 +0.000914,70 +0.000951,70 +0.000948,70 +0.000969,70 +0.000974,70 +0.000970,70 +0.001081,70 +0.001080,70 +0.000962,70 +0.000948,70 +0.000948,70 +0.000946,70 +0.000934,70 +0.000946,70 +0.001066,72 +0.001042,72 +0.001018,72 +0.001084,72 +0.001068,72 +0.001038,72 +0.001056,72 +0.001073,72 +0.001119,72 +0.001100,72 +0.001092,72 +0.001032,72 +0.001029,72 +0.001016,72 +0.001057,72 +0.001057,72 +0.001057,72 +0.001068,72 +0.001039,72 +0.001038,72 +0.001066,72 +0.001032,72 +0.001037,72 +0.001037,72 +0.001135,72 +0.001046,72 +0.001085,72 +0.001089,72 +0.001054,72 +0.001079,72 +0.001024,72 +0.001033,72 +0.001036,72 +0.001050,72 +0.000921,72 +0.001033,72 +0.001062,72 +0.000960,72 +0.000921,72 +0.001050,72 +0.001081,72 +0.001111,72 +0.001031,72 +0.001009,72 +0.001014,72 +0.000946,72 +0.001031,72 +0.000950,72 +0.001043,72 +0.000921,72 +0.000921,72 +0.001055,72 +0.000958,72 +0.001054,72 +0.001056,72 +0.000921,72 +0.000980,72 +0.001135,72 +0.001088,72 +0.001116,72 +0.000955,72 +0.000921,72 +0.001174,72 +0.000941,72 +0.000967,72 +0.001058,72 +0.000921,72 +0.000921,72 +0.000947,72 +0.001054,72 +0.000941,72 +0.001007,72 +0.001018,72 +0.001027,72 +0.000987,72 +0.001003,72 +0.001095,72 +0.000942,72 +0.001094,72 +0.000921,72 +0.000971,72 +0.000921,72 +0.000921,72 +0.000942,72 +0.000965,72 +0.000921,72 +0.000921,72 +0.000921,72 +0.000921,72 +0.000966,72 +0.000941,72 +0.000921,72 +0.000941,72 +0.000996,72 +0.000921,72 +0.000921,72 +0.000921,72 +0.000967,72 +0.000921,72 +0.000921,72 +0.001012,74 +0.001031,74 +0.000999,74 +0.001078,74 +0.000998,74 +0.001047,74 +0.000999,74 +0.000999,74 +0.000999,74 +0.001067,74 +0.001024,74 +0.000998,74 +0.000999,74 +0.001002,74 +0.000998,74 +0.000998,74 +0.000998,74 +0.001007,74 +0.000998,74 +0.000998,74 +0.000998,74 +0.001001,74 +0.000998,74 +0.000999,74 +0.001053,74 +0.001033,74 +0.001023,74 +0.000999,74 +0.000998,74 +0.001003,74 +0.000999,74 +0.000999,74 +0.000998,74 +0.001000,74 +0.000999,74 +0.000998,74 +0.000998,74 +0.001005,74 +0.000999,74 +0.000998,74 +0.000998,74 +0.001000,74 +0.001022,74 +0.001024,74 +0.000999,74 +0.001007,74 +0.000999,74 +0.000999,74 +0.000998,74 +0.001000,74 +0.000998,74 +0.000998,74 +0.000999,74 +0.001000,74 +0.000999,74 +0.000999,74 +0.000999,74 +0.001002,74 +0.001021,74 +0.000998,74 +0.001023,74 +0.001002,74 +0.000998,74 +0.000998,74 +0.000998,74 +0.001005,74 +0.000999,74 +0.000999,74 +0.000998,74 +0.001000,74 +0.000998,74 +0.000999,74 +0.001075,74 +0.001077,74 +0.001043,74 +0.001087,74 +0.001126,74 +0.001090,74 +0.001029,74 +0.001098,74 +0.001032,74 +0.000999,74 +0.000998,74 +0.001048,74 +0.001004,74 +0.000999,74 +0.000999,74 +0.000999,74 +0.001006,74 +0.000999,74 +0.000999,74 +0.001023,74 +0.001028,74 +0.000999,74 +0.000998,74 +0.000999,74 +0.001007,74 +0.000998,74 +0.000998,74 +0.000998,74 +0.001095,76 +0.001081,76 +0.001153,76 +0.001081,76 +0.001095,76 +0.001081,76 +0.001081,76 +0.001111,76 +0.001116,76 +0.001082,76 +0.001080,76 +0.001091,76 +0.001080,76 +0.001081,76 +0.001081,76 +0.001083,76 +0.001081,76 +0.001081,76 +0.001082,76 +0.001277,76 +0.001102,76 +0.001101,76 +0.001132,76 +0.001106,76 +0.001081,76 +0.001105,76 +0.001081,76 +0.001081,76 +0.001081,76 +0.001104,76 +0.001081,76 +0.001080,76 +0.001081,76 +0.001109,76 +0.001081,76 +0.001081,76 +0.001109,76 +0.001103,76 +0.001105,76 +0.001081,76 +0.001089,76 +0.001081,76 +0.001081,76 +0.001080,76 +0.001082,76 +0.001081,76 +0.001081,76 +0.001102,76 +0.001081,76 +0.001081,76 +0.001081,76 +0.001085,76 +0.001080,76 +0.001103,76 +0.001104,76 +0.001107,76 +0.001081,76 +0.001081,76 +0.001089,76 +0.001174,76 +0.001081,76 +0.001081,76 +0.001330,76 +0.001080,76 +0.001081,76 +0.001148,76 +0.001121,76 +0.001161,76 +0.001117,76 +0.001203,76 +0.001255,76 +0.001144,76 +0.001592,76 +0.002119,76 +0.002177,76 +0.001425,76 +0.001322,76 +0.001309,76 +0.001290,76 +0.001266,76 +0.001303,76 +0.001343,76 +0.001229,76 +0.001141,76 +0.001222,76 +0.001349,76 +0.001260,76 +0.001221,76 +0.001172,76 +0.001276,76 +0.001166,76 +0.001110,76 +0.001237,76 +0.001164,76 +0.001207,76 +0.001205,76 +0.001145,76 +0.001226,76 +0.001109,76 +0.001230,76 +0.001250,78 +0.001198,78 +0.001318,78 +0.001202,78 +0.001205,78 +0.001384,78 +0.001220,78 +0.001353,78 +0.001168,78 +0.001194,78 +0.001167,78 +0.001167,78 +0.001167,78 +0.001215,78 +0.001167,78 +0.001167,78 +0.001201,78 +0.001167,78 +0.001167,78 +0.001239,78 +0.001190,78 +0.001191,78 +0.001168,78 +0.001204,78 +0.001167,78 +0.001167,78 +0.001198,78 +0.001167,78 +0.001177,78 +0.001198,78 +0.001167,78 +0.001167,78 +0.001167,78 +0.001221,78 +0.001190,78 +0.001194,78 +0.001362,78 +0.001167,78 +0.001167,78 +0.001210,78 +0.001167,78 +0.001167,78 +0.001167,78 +0.001204,78 +0.001167,78 +0.001167,78 +0.001283,78 +0.001278,78 +0.001323,78 +0.001268,78 +0.001204,78 +0.001262,78 +0.001289,78 +0.001167,78 +0.001167,78 +0.001167,78 +0.001202,78 +0.001309,78 +0.001167,78 +0.001206,78 +0.001167,78 +0.001167,78 +0.001423,78 +0.001194,78 +0.001167,78 +0.001167,78 +0.001211,78 +0.001168,78 +0.001168,78 +0.001192,78 +0.001251,78 +0.001167,78 +0.001332,78 +0.001199,78 +0.001190,78 +0.001189,78 +0.001204,78 +0.001191,78 +0.001167,78 +0.001212,78 +0.001167,78 +0.001167,78 +0.001207,78 +0.001167,78 +0.001167,78 +0.001167,78 +0.001201,78 +0.001167,78 +0.001167,78 +0.001239,78 +0.001167,78 +0.001192,78 +0.001184,78 +0.001186,78 +0.001168,78 +0.001167,78 +0.001173,78 +0.001168,78 +0.001167,78 +0.001169,78 +0.001268,80 +0.001257,80 +0.001261,80 +0.001279,80 +0.001282,80 +0.001257,80 +0.001261,80 +0.001257,80 +0.001257,80 +0.001263,80 +0.001257,80 +0.001257,80 +0.001259,80 +0.001257,80 +0.001287,80 +0.001268,80 +0.001257,80 +0.001297,80 +0.001284,80 +0.001257,80 +0.001257,80 +0.001259,80 +0.001257,80 +0.001257,80 +0.001256,80 +0.001263,80 +0.001257,80 +0.001257,80 +0.001259,80 +0.001353,80 +0.001333,80 +0.001366,80 +0.001305,80 +0.001357,80 +0.001332,80 +0.001365,80 +0.001257,80 +0.001291,80 +0.001257,80 +0.001257,80 +0.001282,80 +0.001257,80 +0.001278,80 +0.001294,80 +0.001280,80 +0.001257,80 +0.001286,80 +0.001257,80 +0.001257,80 +0.001280,80 +0.001257,80 +0.001330,80 +0.001257,80 +0.001302,80 +0.001257,80 +0.001257,80 +0.001283,80 +0.001281,80 +0.001257,80 +0.001261,80 +0.001257,80 +0.001257,80 +0.001297,80 +0.001306,80 +0.001257,80 +0.001300,80 +0.001267,80 +0.001257,80 +0.001323,80 +0.001278,80 +0.001280,80 +0.001281,80 +0.001257,80 +0.001257,80 +0.001274,80 +0.001266,80 +0.001257,80 +0.001257,80 +0.001259,80 +0.001257,80 +0.001257,80 +0.001260,80 +0.001278,80 +0.001353,80 +0.001274,80 +0.001259,80 +0.001257,80 +0.001263,80 +0.001257,80 +0.001257,80 +0.001259,80 +0.001257,80 +0.001257,80 +0.001261,80 +0.001434,80 +0.001276,80 +0.001527,80 +0.001383,80 +0.001498,80 +0.001345,80 +0.001604,82 +0.001498,82 +0.001578,82 +0.001498,82 +0.001565,82 +0.001591,82 +0.001523,82 +0.001503,82 +0.001502,82 +0.001531,82 +0.001463,82 +0.001638,82 +0.001432,82 +0.001530,82 +0.001492,82 +0.001578,82 +0.001501,82 +0.001977,82 +0.001577,82 +0.001540,82 +0.001526,82 +0.001540,82 +0.001564,82 +0.001492,82 +0.001627,82 +0.001528,82 +0.001529,82 +0.001539,82 +0.001479,82 +0.001453,82 +0.001450,82 +0.001442,82 +0.001445,82 +0.001457,82 +0.001457,82 +0.001469,82 +0.001572,82 +0.001430,82 +0.001776,82 +0.001605,82 +0.001509,82 +0.001503,82 +0.001509,82 +0.001536,82 +0.001509,82 +0.001493,82 +0.001517,82 +0.001511,82 +0.001508,82 +0.001513,82 +0.001536,82 +0.001484,82 +0.001468,82 +0.001473,82 +0.001476,82 +0.001487,82 +0.001474,82 +0.001489,82 +0.001553,82 +0.001523,82 +0.001489,82 +0.001544,82 +0.001542,82 +0.001464,82 +0.001463,82 +0.001469,82 +0.001482,82 +0.001511,82 +0.001423,82 +0.001497,82 +0.001488,82 +0.001635,82 +0.001456,82 +0.001527,82 +0.001452,82 +0.001566,82 +0.001485,82 +0.001559,82 +0.001428,82 +0.001697,82 +0.001431,82 +0.001431,82 +0.001410,82 +0.001421,82 +0.001736,82 +0.001462,82 +0.001439,82 +0.001382,82 +0.001366,82 +0.001766,82 +0.001578,82 +0.001466,82 +0.001366,82 +0.001556,82 +0.001485,82 +0.001559,82 +0.001420,82 +0.001509,82 +0.001448,82 +0.001433,82 +0.001505,84 +0.001708,84 +0.001583,84 +0.001532,84 +0.001867,84 +0.001624,84 +0.001513,84 +0.001615,84 +0.001491,84 +0.001673,84 +0.001537,84 +0.001602,84 +0.001517,84 +0.001776,84 +0.001573,84 +0.001652,84 +0.001731,84 +0.001606,84 +0.001568,84 +0.001583,84 +0.001534,84 +0.001584,84 +0.001581,84 +0.001996,84 +0.001828,84 +0.001970,84 +0.001907,84 +0.001872,84 +0.001870,84 +0.001966,84 +0.001880,84 +0.001653,84 +0.001818,84 +0.001933,84 +0.001632,84 +0.001582,84 +0.001560,84 +0.001675,84 +0.001603,84 +0.001697,84 +0.001657,84 +0.001648,84 +0.001725,84 +0.001654,84 +0.001623,84 +0.001516,84 +0.001491,84 +0.001517,84 +0.001491,84 +0.001679,84 +0.001637,84 +0.001610,84 +0.001630,84 +0.001572,84 +0.001564,84 +0.001569,84 +0.001545,84 +0.001588,84 +0.001658,84 +0.001571,84 +0.001573,84 +0.001709,84 +0.001576,84 +0.001554,84 +0.001481,84 +0.001796,84 +0.001491,84 +0.001621,84 +0.001545,84 +0.001453,84 +0.001494,84 +0.001452,84 +0.001563,84 +0.001522,84 +0.001584,84 +0.001637,84 +0.001725,84 +0.001619,84 +0.001604,84 +0.001670,84 +0.001588,84 +0.001708,84 +0.001615,84 +0.001452,84 +0.001606,84 +0.001490,84 +0.001604,84 +0.001579,84 +0.001527,84 +0.001452,84 +0.001499,84 +0.001452,84 +0.001465,84 +0.001486,84 +0.001555,84 +0.001452,84 +0.001526,84 +0.001675,84 +0.001599,84 +0.001499,84 +0.001638,86 +0.001737,86 +0.001600,86 +0.001737,86 +0.001559,86 +0.001559,86 +0.001749,86 +0.001691,86 +0.001658,86 +0.001558,86 +0.001590,86 +0.001558,86 +0.001559,86 +0.001587,86 +0.001558,86 +0.001680,86 +0.001558,86 +0.001579,86 +0.001627,86 +0.001597,86 +0.001789,86 +0.001558,86 +0.001558,86 +0.001584,86 +0.001559,86 +0.001583,86 +0.001558,86 +0.001703,86 +0.001776,86 +0.001597,86 +0.001583,86 +0.001558,86 +0.001559,86 +0.001690,86 +0.001600,86 +0.001592,86 +0.001559,86 +0.001559,86 +0.001683,86 +0.001761,86 +0.001623,86 +0.001558,86 +0.001558,86 +0.001584,86 +0.001558,86 +0.001581,86 +0.001796,86 +0.001659,86 +0.001857,86 +0.001810,86 +0.001826,86 +0.001671,86 +0.001702,86 +0.001696,86 +0.001702,86 +0.001628,86 +0.001734,86 +0.001704,86 +0.001711,86 +0.001851,86 +0.001669,86 +0.001721,86 +0.001756,86 +0.001707,86 +0.001834,86 +0.001838,86 +0.001635,86 +0.001871,86 +0.001859,86 +0.001666,86 +0.001666,86 +0.001657,86 +0.001668,86 +0.001654,86 +0.001675,86 +0.001891,86 +0.001799,86 +0.001804,86 +0.001750,86 +0.001787,86 +0.001738,86 +0.001770,86 +0.001625,86 +0.001771,86 +0.001757,86 +0.001690,86 +0.001711,86 +0.001751,86 +0.001820,86 +0.001612,86 +0.001733,86 +0.001706,86 +0.001678,86 +0.001699,86 +0.001700,86 +0.001734,86 +0.001750,86 +0.001779,86 +0.001700,86 +0.001779,86 +0.001813,88 +0.001813,88 +0.001888,88 +0.001836,88 +0.001887,88 +0.001911,88 +0.001892,88 +0.001787,88 +0.001867,88 +0.001848,88 +0.001905,88 +0.001843,88 +0.001897,88 +0.002130,88 +0.004302,88 +0.001848,88 +0.001766,88 +0.001722,88 +0.001804,88 +0.001802,88 +0.001815,88 +0.001818,88 +0.001847,88 +0.001865,88 +0.001767,88 +0.001776,88 +0.001751,88 +0.001773,88 +0.001744,88 +0.001782,88 +0.001919,88 +0.002034,88 +0.001918,88 +0.001979,88 +0.001885,88 +0.001895,88 +0.001865,88 +0.001859,88 +0.001773,88 +0.001917,88 +0.001851,88 +0.001844,88 +0.001803,88 +0.001832,88 +0.001774,88 +0.001863,88 +0.001940,88 +0.001916,88 +0.001999,88 +0.001922,88 +0.001866,88 +0.001984,88 +0.001864,88 +0.001809,88 +0.001784,88 +0.001841,88 +0.001970,88 +0.001865,88 +0.001875,88 +0.001867,88 +0.001998,88 +0.001879,88 +0.001818,88 +0.001863,88 +0.001943,88 +0.002102,88 +0.001872,88 +0.001922,88 +0.001922,88 +0.001738,88 +0.001803,88 +0.001777,88 +0.001788,88 +0.002044,88 +0.002014,88 +0.001786,88 +0.001942,88 +0.001800,88 +0.001764,88 +0.001819,88 +0.001800,88 +0.001826,88 +0.001763,88 +0.001832,88 +0.001832,88 +0.001867,88 +0.001826,88 +0.001783,88 +0.001833,88 +0.001755,88 +0.001767,88 +0.001849,88 +0.001800,88 +0.001838,88 +0.002000,88 +0.001914,88 +0.001889,88 +0.001822,88 +0.001900,88 +0.001868,88 +0.002045,90 +0.002083,90 +0.001996,90 +0.002012,90 +0.001956,90 +0.001960,90 +0.001994,90 +0.001975,90 +0.002229,90 +0.001996,90 +0.001926,90 +0.002033,90 +0.001940,90 +0.001917,90 +0.001934,90 +0.001913,90 +0.001920,90 +0.001983,90 +0.001978,90 +0.002018,90 +0.001928,90 +0.001949,90 +0.001948,90 +0.001969,90 +0.002095,90 +0.001965,90 +0.002043,90 +0.001930,90 +0.001987,90 +0.001946,90 +0.001935,90 +0.001928,90 +0.001970,90 +0.001996,90 +0.001952,90 +0.002076,90 +0.002171,90 +0.002512,90 +0.002524,90 +0.002317,90 +0.002413,90 +0.002428,90 +0.002173,90 +0.002052,90 +0.002012,90 +0.001995,90 +0.001990,90 +0.002001,90 +0.001979,90 +0.001961,90 +0.002068,90 +0.001985,90 +0.001988,90 +0.002031,90 +0.002024,90 +0.002012,90 +0.001985,90 +0.001977,90 +0.002043,90 +0.002001,90 +0.002052,90 +0.002040,90 +0.002011,90 +0.002026,90 +0.001964,90 +0.002007,90 +0.001987,90 +0.001951,90 +0.001966,90 +0.002065,90 +0.001977,90 +0.001908,90 +0.001914,90 +0.002070,90 +0.002188,90 +0.002242,90 +0.002210,90 +0.002093,90 +0.002013,90 +0.001985,90 +0.001969,90 +0.001980,90 +0.001984,90 +0.001978,90 +0.001962,90 +0.001997,90 +0.001951,90 +0.001964,90 +0.001948,90 +0.001950,90 +0.001944,90 +0.002016,90 +0.001914,90 +0.001957,90 +0.001954,90 +0.001952,90 +0.001933,90 +0.001929,90 +0.001929,90 +0.001955,90 +0.002176,92 +0.002076,92 +0.002074,92 +0.002073,92 +0.002086,92 +0.002072,92 +0.002070,92 +0.002071,92 +0.002150,92 +0.002102,92 +0.002085,92 +0.002072,92 +0.002090,92 +0.002103,92 +0.002081,92 +0.002080,92 +0.002178,92 +0.002117,92 +0.002096,92 +0.002074,92 +0.002081,92 +0.002049,92 +0.001983,92 +0.001978,92 +0.001988,92 +0.002048,92 +0.002083,92 +0.001966,92 +0.001939,92 +0.001905,92 +0.001938,92 +0.001905,92 +0.001998,92 +0.001988,92 +0.001990,92 +0.001956,92 +0.001944,92 +0.001905,92 +0.001940,92 +0.001905,92 +0.001931,92 +0.002051,92 +0.001932,92 +0.001916,92 +0.001945,92 +0.001934,92 +0.001905,92 +0.001934,92 +0.001905,92 +0.001959,92 +0.001905,92 +0.001956,92 +0.002195,92 +0.002039,92 +0.002183,92 +0.001987,92 +0.002163,92 +0.002143,92 +0.002184,92 +0.002212,92 +0.002241,92 +0.002146,92 +0.002183,92 +0.002171,92 +0.002169,92 +0.002408,92 +0.002204,92 +0.002163,92 +0.002097,92 +0.002111,92 +0.002057,92 +0.002114,92 +0.002097,92 +0.002273,92 +0.002191,92 +0.002150,92 +0.002058,92 +0.002047,92 +0.002057,92 +0.002034,92 +0.001942,92 +0.002168,92 +0.002163,92 +0.003191,92 +0.002162,92 +0.002106,92 +0.002028,92 +0.002057,92 +0.002162,92 +0.002098,92 +0.002227,92 +0.002239,92 +0.002172,92 +0.002044,92 +0.002031,92 +0.002021,92 +0.002299,92 +0.002519,92 +0.002628,92 +0.002104,92 +0.002270,94 +0.002232,94 +0.002239,94 +0.002805,94 +0.002718,94 +0.002506,94 +0.002880,94 +0.002652,94 +0.002438,94 +0.002516,94 +0.002958,94 +0.002180,94 +0.002139,94 +0.002145,94 +0.002162,94 +0.002192,94 +0.002308,94 +0.002193,94 +0.003367,94 +0.002772,94 +0.002902,94 +0.002238,94 +0.002120,94 +0.002267,94 +0.002291,94 +0.002955,94 +0.002548,94 +0.002764,94 +0.002785,94 +0.002638,94 +0.002414,94 +0.002271,94 +0.002242,94 +0.002232,94 +0.002199,94 +0.002193,94 +0.002248,94 +0.002287,94 +0.002269,94 +0.002258,94 +0.002242,94 +0.002174,94 +0.002188,94 +0.002180,94 +0.002209,94 +0.002219,94 +0.002284,94 +0.002228,94 +0.002259,94 +0.002227,94 +0.002286,94 +0.002191,94 +0.002205,94 +0.002281,94 +0.002241,94 +0.002187,94 +0.002224,94 +0.002170,94 +0.002151,94 +0.002234,94 +0.002278,94 +0.002294,94 +0.002267,94 +0.002179,94 +0.002405,94 +0.002226,94 +0.002247,94 +0.002268,94 +0.002221,94 +0.002960,94 +0.003003,94 +0.002788,94 +0.002929,94 +0.002821,94 +0.003428,94 +0.002702,94 +0.002226,94 +0.002220,94 +0.002311,94 +0.002193,94 +0.002503,94 +0.002530,94 +0.002313,94 +0.002327,94 +0.002228,94 +0.002315,94 +0.002801,94 +0.003093,94 +0.002355,94 +0.002123,94 +0.002102,94 +0.002036,94 +0.002268,94 +0.002291,94 +0.002212,94 +0.002548,94 +0.002096,94 +0.002070,94 +0.002223,94 +0.003631,94 +0.003131,96 +0.002345,96 +0.002444,96 +0.002200,96 +0.002164,96 +0.002201,96 +0.002165,96 +0.002459,96 +0.002256,96 +0.002386,96 +0.002270,96 +0.002165,96 +0.002200,96 +0.002165,96 +0.002303,96 +0.002474,96 +0.002570,96 +0.002492,96 +0.002222,96 +0.002253,96 +0.002445,96 +0.002405,96 +0.002374,96 +0.002388,96 +0.002320,96 +0.002348,96 +0.002412,96 +0.002335,96 +0.002826,96 +0.002458,96 +0.002369,96 +0.002287,96 +0.002271,96 +0.002221,96 +0.002232,96 +0.002600,96 +0.002674,96 +0.002477,96 +0.002204,96 +0.002200,96 +0.002249,96 +0.002207,96 +0.002188,96 +0.003085,96 +0.002353,96 +0.002224,96 +0.002199,96 +0.002165,96 +0.002200,96 +0.002524,96 +0.002687,96 +0.002478,96 +0.002204,96 +0.002224,96 +0.002204,96 +0.002476,96 +0.002659,96 +0.002713,96 +0.002460,96 +0.002290,96 +0.002394,96 +0.002247,96 +0.002490,96 +0.002873,96 +0.002604,96 +0.002406,96 +0.002254,96 +0.002250,96 +0.002389,96 +0.002253,96 +0.002941,96 +0.002625,96 +0.002418,96 +0.002181,96 +0.002247,96 +0.002221,96 +0.002249,96 +0.002854,96 +0.002349,96 +0.002397,96 +0.002164,96 +0.002199,96 +0.002287,96 +0.002282,96 +0.002452,96 +0.002915,96 +0.002363,96 +0.002283,96 +0.002221,96 +0.002247,96 +0.002222,96 +0.002580,96 +0.002344,96 +0.002385,96 +0.002205,96 +0.002164,96 +0.002200,96 +0.002164,96 +0.002477,96 +0.002228,96 +0.002862,98 +0.002740,98 +0.002681,98 +0.002558,98 +0.003056,98 +0.003342,98 +0.002864,98 +0.003272,98 +0.003514,98 +0.002586,98 +0.002846,98 +0.003309,98 +0.002700,98 +0.002704,98 +0.002443,98 +0.002605,98 +0.003502,98 +0.003117,98 +0.002557,98 +0.002528,98 +0.002538,98 +0.002366,98 +0.002391,98 +0.003854,98 +0.003106,98 +0.002539,98 +0.002463,98 +0.002305,98 +0.003020,98 +0.002789,98 +0.002425,98 +0.002469,98 +0.002396,98 +0.002366,98 +0.002765,98 +0.002778,98 +0.002635,98 +0.002610,98 +0.002480,98 +0.002392,98 +0.002396,98 +0.002714,98 +0.002756,98 +0.002841,98 +0.004154,98 +0.002943,98 +0.002630,98 +0.002467,98 +0.003615,98 +0.003165,98 +0.002790,98 +0.002379,98 +0.003336,98 +0.002897,98 +0.003019,98 +0.002448,98 +0.002841,98 +0.002532,98 +0.002560,98 +0.002856,98 +0.003478,98 +0.003149,98 +0.002553,98 +0.002413,98 +0.002631,98 +0.003139,98 +0.002597,98 +0.002427,98 +0.002502,98 +0.002393,98 +0.002618,98 +0.002441,98 +0.002753,98 +0.003863,98 +0.003689,98 +0.002348,98 +0.002846,98 +0.002731,98 +0.002495,98 +0.002508,98 +0.002396,98 +0.002401,98 +0.002703,98 +0.002545,98 +0.002685,98 +0.002514,98 +0.002346,98 +0.002623,98 +0.002410,98 +0.002921,98 +0.003268,98 +0.002623,98 +0.002346,98 +0.002697,98 +0.002615,98 +0.002521,98 +0.003498,98 +0.003344,98 +0.003301,98 +0.002581,98 +0.002742,100 +0.002698,100 +0.003454,100 +0.002797,100 +0.002585,100 +0.002507,100 +0.002585,100 +0.002588,100 +0.003374,100 +0.002645,100 +0.002527,100 +0.002447,100 +0.002799,100 +0.002665,100 +0.003417,100 +0.002694,100 +0.002484,100 +0.002548,100 +0.002658,100 +0.002574,100 +0.003506,100 +0.002723,100 +0.002596,100 +0.002688,100 +0.002624,100 +0.002649,100 +0.003460,100 +0.002747,100 +0.002662,100 +0.002631,100 +0.002617,100 +0.002584,100 +0.002649,100 +0.002590,100 +0.002796,100 +0.002484,100 +0.002778,100 +0.002643,100 +0.002649,100 +0.002754,100 +0.002555,100 +0.002564,100 +0.002531,100 +0.004300,100 +0.002859,100 +0.002562,100 +0.002571,100 +0.002561,100 +0.002549,100 +0.002654,100 +0.002806,100 +0.002635,100 +0.002647,100 +0.002842,100 +0.002732,100 +0.002691,100 +0.004549,100 +0.003644,100 +0.003237,100 +0.003062,100 +0.003510,100 +0.002940,100 +0.002762,100 +0.002677,100 +0.002640,100 +0.002693,100 +0.002635,100 +0.002778,100 +0.004505,100 +0.002998,100 +0.003058,100 +0.002824,100 +0.002817,100 +0.002728,100 +0.002627,100 +0.002649,100 +0.002588,100 +0.003822,100 +0.003904,100 +0.003254,100 +0.003074,100 +0.003190,100 +0.003889,100 +0.003142,100 +0.002844,100 +0.002776,100 +0.002816,100 +0.003645,100 +0.003645,100 +0.002665,100 +0.002592,100 +0.002575,100 +0.002658,100 +0.003486,100 +0.002725,100 +0.002622,100 +0.002620,100 +0.002645,100 +0.002613,100 +0.002580,100 +0.002724,102 +0.003303,102 +0.003048,102 +0.002780,102 +0.002951,102 +0.004601,102 +0.003367,102 +0.003190,102 +0.003475,102 +0.003924,102 +0.003630,102 +0.002814,102 +0.002834,102 +0.002798,102 +0.002829,102 +0.003342,102 +0.003120,102 +0.002870,102 +0.002729,102 +0.002820,102 +0.003945,102 +0.003139,102 +0.003297,102 +0.002713,102 +0.002807,102 +0.002903,102 +0.003155,102 +0.003056,102 +0.002928,102 +0.002823,102 +0.002892,102 +0.003179,102 +0.002805,102 +0.002963,102 +0.003007,102 +0.002791,102 +0.002833,102 +0.003276,102 +0.003000,102 +0.002734,102 +0.002885,102 +0.002941,102 +0.003071,102 +0.003235,102 +0.003131,102 +0.002980,102 +0.003010,102 +0.002969,102 +0.002932,102 +0.003002,102 +0.002888,102 +0.002757,102 +0.002811,102 +0.002874,102 +0.002963,102 +0.002898,102 +0.002741,102 +0.002809,102 +0.002712,102 +0.003060,102 +0.003273,102 +0.003245,102 +0.003031,102 +0.002997,102 +0.003172,102 +0.002861,102 +0.002823,102 +0.002939,102 +0.002998,102 +0.002820,102 +0.002794,102 +0.003012,102 +0.002913,102 +0.002679,102 +0.002762,102 +0.002738,102 +0.002825,102 +0.002687,102 +0.002860,102 +0.002803,102 +0.002834,102 +0.002665,102 +0.002883,102 +0.002636,102 +0.002978,102 +0.002732,102 +0.002656,102 +0.002633,102 +0.002697,102 +0.002831,102 +0.002744,102 +0.002656,102 +0.002900,102 +0.002691,102 +0.002800,102 +0.002862,102 +0.003009,102 +0.002916,102 +0.002882,102 +0.002770,102 +0.003104,104 +0.004950,104 +0.005103,104 +0.004573,104 +0.004026,104 +0.003457,104 +0.003062,104 +0.003048,104 +0.002974,104 +0.003241,104 +0.003673,104 +0.002939,104 +0.002939,104 +0.002946,104 +0.003087,104 +0.003103,104 +0.003060,104 +0.003008,104 +0.003019,104 +0.003130,104 +0.003015,104 +0.003053,104 +0.002991,104 +0.003000,104 +0.003002,104 +0.002993,104 +0.003105,104 +0.003042,104 +0.003033,104 +0.003031,104 +0.003215,104 +0.002948,104 +0.002988,104 +0.003126,104 +0.003376,104 +0.003281,104 +0.003323,104 +0.003151,104 +0.003025,104 +0.002992,104 +0.002998,104 +0.003124,104 +0.003087,104 +0.003148,104 +0.003070,104 +0.003095,104 +0.003224,104 +0.003072,104 +0.002990,104 +0.003106,104 +0.003007,104 +0.003000,104 +0.003089,104 +0.002909,104 +0.002937,104 +0.003134,104 +0.003013,104 +0.003071,104 +0.003501,104 +0.003272,104 +0.002931,104 +0.002971,104 +0.003224,104 +0.003673,104 +0.004977,104 +0.005140,104 +0.004520,104 +0.003520,104 +0.003634,104 +0.003674,104 +0.003072,104 +0.004450,104 +0.005067,104 +0.003972,104 +0.003040,104 +0.004208,104 +0.003163,104 +0.003146,104 +0.003114,104 +0.003184,104 +0.004320,104 +0.004138,104 +0.003283,104 +0.003101,104 +0.003353,104 +0.003452,104 +0.003375,104 +0.003198,104 +0.002984,104 +0.002996,104 +0.003103,104 +0.003065,104 +0.002990,104 +0.003533,104 +0.002977,104 +0.003177,104 +0.003234,104 +0.003008,104 +0.002749,104 +0.002798,104 +0.003047,106 +0.003276,106 +0.003251,106 +0.002976,106 +0.002943,106 +0.002945,106 +0.003244,106 +0.003172,106 +0.003055,106 +0.002941,106 +0.002908,106 +0.003125,106 +0.003282,106 +0.003298,106 +0.002979,106 +0.002907,106 +0.002947,106 +0.003287,106 +0.003200,106 +0.003031,106 +0.002942,106 +0.002940,106 +0.003263,106 +0.003190,106 +0.003135,106 +0.003207,106 +0.003102,106 +0.003048,106 +0.003238,106 +0.004084,106 +0.003262,106 +0.002951,106 +0.003074,106 +0.003253,106 +0.003276,106 +0.002987,106 +0.002948,106 +0.002943,106 +0.003273,106 +0.003223,106 +0.003069,106 +0.002946,106 +0.002907,106 +0.003239,106 +0.003170,106 +0.003175,106 +0.002966,106 +0.002907,106 +0.002944,106 +0.003637,106 +0.003381,106 +0.003021,106 +0.002907,106 +0.002945,106 +0.003403,106 +0.003164,106 +0.003231,106 +0.003006,106 +0.003251,106 +0.003278,106 +0.003057,106 +0.003331,106 +0.003197,106 +0.003204,106 +0.003135,106 +0.003388,106 +0.003199,106 +0.003293,106 +0.003074,106 +0.003239,106 +0.003718,106 +0.003302,106 +0.003199,106 +0.003224,106 +0.003473,106 +0.004491,106 +0.003305,106 +0.002990,106 +0.003136,106 +0.003739,106 +0.003203,106 +0.003375,106 +0.003028,106 +0.003151,106 +0.003945,106 +0.003031,106 +0.003347,106 +0.003095,106 +0.003152,106 +0.003090,106 +0.003259,106 +0.003189,106 +0.002980,106 +0.002939,106 +0.002946,106 +0.003175,106 +0.003065,106 +0.003058,106 +0.002943,106 +0.002907,106 +0.003187,108 +0.003114,108 +0.003144,108 +0.003167,108 +0.003105,108 +0.003137,108 +0.003077,108 +0.003091,108 +0.003151,108 +0.003082,108 +0.003082,108 +0.003137,108 +0.003076,108 +0.003128,108 +0.003080,108 +0.003082,108 +0.003117,108 +0.003076,108 +0.003171,108 +0.003267,108 +0.003295,108 +0.003273,108 +0.003076,108 +0.003203,108 +0.003136,108 +0.003176,108 +0.003111,108 +0.003154,108 +0.003122,108 +0.003130,108 +0.003084,108 +0.003076,108 +0.003118,108 +0.003448,108 +0.003253,108 +0.003176,108 +0.003076,108 +0.003272,108 +0.003213,108 +0.003440,108 +0.003461,108 +0.003272,108 +0.003390,108 +0.003595,108 +0.003716,108 +0.003763,108 +0.003569,108 +0.003491,108 +0.004074,108 +0.004008,108 +0.003675,108 +0.003863,108 +0.004063,108 +0.004119,108 +0.003293,108 +0.003363,108 +0.003859,108 +0.004069,108 +0.003520,108 +0.003406,108 +0.003918,108 +0.003379,108 +0.003471,108 +0.003419,108 +0.003413,108 +0.003456,108 +0.003645,108 +0.003479,108 +0.003432,108 +0.003446,108 +0.003743,108 +0.003456,108 +0.003485,108 +0.003335,108 +0.003717,108 +0.003818,108 +0.004702,108 +0.003204,108 +0.003619,108 +0.004511,108 +0.003444,108 +0.003417,108 +0.003457,108 +0.003391,108 +0.004317,108 +0.003866,108 +0.003940,108 +0.004001,108 +0.004094,108 +0.003464,108 +0.003306,108 +0.003358,108 +0.004539,108 +0.003901,108 +0.003670,108 +0.003260,108 +0.003190,108 +0.003597,108 +0.003501,108 +0.003408,108 +0.003429,110 +0.003429,110 +0.003797,110 +0.004116,110 +0.004120,110 +0.003768,110 +0.004135,110 +0.003665,110 +0.003478,110 +0.003370,110 +0.003650,110 +0.003790,110 +0.003530,110 +0.003283,110 +0.003287,110 +0.003979,110 +0.003637,110 +0.003364,110 +0.003284,110 +0.003276,110 +0.003956,110 +0.003654,110 +0.003303,110 +0.003277,110 +0.003401,110 +0.003906,110 +0.003552,110 +0.003310,110 +0.003291,110 +0.003906,110 +0.003494,110 +0.004124,110 +0.004018,110 +0.003607,110 +0.004405,110 +0.003534,110 +0.003367,110 +0.003302,110 +0.004091,110 +0.003674,110 +0.003433,110 +0.003281,110 +0.003282,110 +0.004209,110 +0.004076,110 +0.003343,110 +0.003248,110 +0.003524,110 +0.004683,110 +0.003419,110 +0.003310,110 +0.003274,110 +0.003638,110 +0.004112,110 +0.003305,110 +0.003293,110 +0.003420,110 +0.004203,110 +0.003878,110 +0.003977,110 +0.003768,110 +0.004266,110 +0.003622,110 +0.003306,110 +0.003291,110 +0.003711,110 +0.004202,110 +0.003488,110 +0.003287,110 +0.003288,110 +0.004122,110 +0.003463,110 +0.003373,110 +0.003309,110 +0.003280,110 +0.003765,110 +0.003592,110 +0.003307,110 +0.003268,110 +0.003380,110 +0.003534,110 +0.003634,110 +0.003308,110 +0.003291,110 +0.003403,110 +0.003537,110 +0.003463,110 +0.004221,110 +0.003886,110 +0.003534,110 +0.003454,110 +0.003349,110 +0.003297,110 +0.003337,110 +0.003307,110 +0.003330,110 +0.003333,110 +0.003292,110 +0.003253,110 +0.003314,110 +0.003456,112 +0.003488,112 +0.003424,112 +0.003424,112 +0.003485,112 +0.003424,112 +0.003509,112 +0.003465,112 +0.003487,112 +0.003426,112 +0.003655,112 +0.003506,112 +0.003448,112 +0.003691,112 +0.003444,112 +0.003525,112 +0.004253,112 +0.004014,112 +0.003595,112 +0.003568,112 +0.003467,112 +0.003682,112 +0.003663,112 +0.003452,112 +0.003849,112 +0.003829,112 +0.003802,112 +0.004047,112 +0.003946,112 +0.003842,112 +0.003872,112 +0.003809,112 +0.003732,112 +0.003750,112 +0.003766,112 +0.003737,112 +0.003740,112 +0.003876,112 +0.003732,112 +0.003700,112 +0.004181,112 +0.004431,112 +0.004791,112 +0.004435,112 +0.004282,112 +0.004833,112 +0.003635,112 +0.003641,112 +0.004416,112 +0.004212,112 +0.003849,112 +0.003800,112 +0.004405,112 +0.004508,112 +0.003790,112 +0.003760,112 +0.004236,112 +0.004309,112 +0.004036,112 +0.004067,112 +0.004138,112 +0.004338,112 +0.003998,112 +0.003950,112 +0.004470,112 +0.004087,112 +0.003750,112 +0.003674,112 +0.004195,112 +0.003909,112 +0.003730,112 +0.003789,112 +0.003871,112 +0.004001,112 +0.003885,112 +0.003800,112 +0.003805,112 +0.003705,112 +0.003966,112 +0.003826,112 +0.003758,112 +0.004308,112 +0.004099,112 +0.003878,112 +0.003669,112 +0.004048,112 +0.003747,112 +0.004013,112 +0.003836,112 +0.004167,112 +0.004281,112 +0.003775,112 +0.003679,112 +0.003618,112 +0.004103,112 +0.004505,112 +0.003802,112 +0.003920,112 +0.004098,112 +0.003758,112 +0.004096,114 +0.004092,114 +0.004524,114 +0.003986,114 +0.004240,114 +0.004373,114 +0.004719,114 +0.004651,114 +0.004453,114 +0.004648,114 +0.004415,114 +0.004713,114 +0.004440,114 +0.004585,114 +0.004241,114 +0.003937,114 +0.003874,114 +0.004223,114 +0.004237,114 +0.004248,114 +0.003954,114 +0.004599,114 +0.003933,114 +0.004173,114 +0.003968,114 +0.004382,114 +0.004115,114 +0.004127,114 +0.004023,114 +0.004088,114 +0.004349,114 +0.004448,114 +0.004103,114 +0.004327,114 +0.004140,114 +0.004051,114 +0.004106,114 +0.004270,114 +0.004178,114 +0.004092,114 +0.004039,114 +0.003899,114 +0.004260,114 +0.004283,114 +0.004056,114 +0.004069,114 +0.004379,114 +0.004036,114 +0.004061,114 +0.004247,114 +0.003940,114 +0.004357,114 +0.004266,114 +0.004872,114 +0.004120,114 +0.004111,114 +0.004133,114 +0.004764,114 +0.004693,114 +0.004351,114 +0.004444,114 +0.004386,114 +0.004131,114 +0.004052,114 +0.003993,114 +0.004490,114 +0.004194,114 +0.004035,114 +0.004154,114 +0.004109,114 +0.004098,114 +0.004010,114 +0.004149,114 +0.004626,114 +0.004505,114 +0.003911,114 +0.004349,114 +0.004280,114 +0.004227,114 +0.003865,114 +0.004203,114 +0.004726,114 +0.004246,114 +0.004057,114 +0.004151,114 +0.004506,114 +0.004091,114 +0.004129,114 +0.003975,114 +0.004005,114 +0.004205,114 +0.004115,114 +0.004046,114 +0.004115,114 +0.004059,114 +0.003898,114 +0.003900,114 +0.004033,114 +0.003874,114 +0.003878,114 +0.004165,116 +0.004023,116 +0.003963,116 +0.003937,116 +0.003927,116 +0.003950,116 +0.004177,116 +0.003951,116 +0.003834,116 +0.003977,116 +0.003862,116 +0.003893,116 +0.003824,116 +0.003883,116 +0.004006,116 +0.004065,116 +0.003836,116 +0.003913,116 +0.003836,116 +0.003851,116 +0.003851,116 +0.003833,116 +0.003878,116 +0.003807,116 +0.003856,116 +0.003801,116 +0.003897,116 +0.003805,116 +0.003903,116 +0.003825,116 +0.003925,116 +0.003808,116 +0.003824,116 +0.003827,116 +0.003812,116 +0.003879,116 +0.003935,116 +0.003904,116 +0.003808,116 +0.003932,116 +0.003906,116 +0.004212,116 +0.003857,116 +0.004047,116 +0.003861,116 +0.003930,116 +0.003859,116 +0.003830,116 +0.003823,116 +0.003885,116 +0.003844,116 +0.003812,116 +0.003804,116 +0.003832,116 +0.003877,116 +0.003803,116 +0.003807,116 +0.003801,116 +0.003831,116 +0.003943,116 +0.003805,116 +0.003826,116 +0.003802,116 +0.003859,116 +0.003803,116 +0.003913,116 +0.003920,116 +0.004088,116 +0.003964,116 +0.003828,116 +0.003826,116 +0.003879,116 +0.003828,116 +0.003809,116 +0.003812,116 +0.003832,116 +0.003845,116 +0.003829,116 +0.003806,116 +0.003802,116 +0.003875,116 +0.003803,116 +0.003804,116 +0.003800,116 +0.003830,116 +0.003849,116 +0.003802,116 +0.003805,116 +0.003802,116 +0.003875,116 +0.003802,116 +0.003932,116 +0.003888,116 +0.004108,116 +0.003871,116 +0.003825,116 +0.003979,116 +0.003924,116 +0.003832,116 +0.003967,116 +0.004099,118 +0.004075,118 +0.004074,118 +0.004004,118 +0.004010,118 +0.004033,118 +0.004051,118 +0.004004,118 +0.004004,118 +0.004007,118 +0.004094,118 +0.004050,118 +0.004003,118 +0.004006,118 +0.004077,118 +0.004006,118 +0.004087,118 +0.004210,118 +0.004358,118 +0.004105,118 +0.004024,118 +0.004011,118 +0.004085,118 +0.004140,118 +0.004008,118 +0.004016,118 +0.004140,118 +0.004010,118 +0.004005,118 +0.004004,118 +0.004075,118 +0.004006,118 +0.004006,118 +0.004004,118 +0.004124,118 +0.004004,118 +0.004149,118 +0.004055,118 +0.004022,118 +0.004042,118 +0.004037,118 +0.004253,118 +0.004472,118 +0.004140,118 +0.004036,118 +0.004067,118 +0.004177,118 +0.004095,118 +0.004128,118 +0.004145,118 +0.004078,118 +0.004070,118 +0.004007,118 +0.004009,118 +0.004034,118 +0.004069,118 +0.004007,118 +0.004009,118 +0.004007,118 +0.004071,118 +0.004006,118 +0.004003,118 +0.004006,118 +0.004093,118 +0.004039,118 +0.004071,118 +0.004192,118 +0.004376,118 +0.004032,118 +0.004024,118 +0.004029,118 +0.004094,118 +0.004011,118 +0.004007,118 +0.004009,118 +0.004075,118 +0.004004,118 +0.004006,118 +0.004004,118 +0.004078,118 +0.004024,118 +0.004006,118 +0.004003,118 +0.004033,118 +0.004112,118 +0.004038,118 +0.004023,118 +0.004035,118 +0.004048,118 +0.004004,118 +0.004159,118 +0.004318,118 +0.004226,118 +0.004037,118 +0.004078,118 +0.004100,118 +0.004078,118 +0.004041,118 +0.004005,118 +0.004013,118 +0.004287,120 +0.004207,120 +0.004205,120 +0.004205,120 +0.004275,120 +0.004208,120 +0.004204,120 +0.004206,120 +0.004272,120 +0.004207,120 +0.004204,120 +0.004236,120 +0.004244,120 +0.004211,120 +0.004343,120 +0.004570,120 +0.004448,120 +0.004240,120 +0.004242,120 +0.004260,120 +0.004269,120 +0.004209,120 +0.004207,120 +0.004272,120 +0.004207,120 +0.004203,120 +0.004206,120 +0.004277,120 +0.004204,120 +0.004205,120 +0.004203,120 +0.004275,120 +0.004203,120 +0.004205,120 +0.004223,120 +0.004274,120 +0.004203,120 +0.004205,120 +0.004403,120 +0.004593,120 +0.004256,120 +0.004269,120 +0.004335,120 +0.004336,120 +0.004315,120 +0.004269,120 +0.004230,120 +0.004365,120 +0.004229,120 +0.004224,120 +0.004224,120 +0.004274,120 +0.004204,120 +0.004206,120 +0.004233,120 +0.004246,120 +0.004391,120 +0.004207,120 +0.004236,120 +0.004243,120 +0.004206,120 +0.004343,120 +0.004532,120 +0.004434,120 +0.004247,120 +0.004307,120 +0.004299,120 +0.004225,120 +0.004233,120 +0.004225,120 +0.004294,120 +0.004319,120 +0.004244,120 +0.004232,120 +0.004317,120 +0.004256,120 +0.004245,120 +0.004250,120 +0.004315,120 +0.004206,120 +0.004204,120 +0.004205,120 +0.004273,120 +0.004206,120 +0.004238,120 +0.004449,120 +0.004641,120 +0.004204,120 +0.004205,120 +0.004224,120 +0.004247,120 +0.004204,120 +0.004205,120 +0.004233,120 +0.004265,120 +0.004204,120 +0.004205,120 +0.004231,120 +0.004290,120 +0.004203,120 +0.004448,122 +0.004493,122 +0.004564,122 +0.004424,122 +0.004419,122 +0.004477,122 +0.004420,122 +0.004419,122 +0.004614,122 +0.004852,122 +0.004420,122 +0.004643,122 +0.004469,122 +0.004523,122 +0.004598,122 +0.004456,122 +0.004554,122 +0.004446,122 +0.004423,122 +0.004419,122 +0.004492,122 +0.004420,122 +0.004420,122 +0.004452,122 +0.004460,122 +0.004424,122 +0.004421,122 +0.004471,122 +0.004488,122 +0.004445,122 +0.004588,122 +0.004816,122 +0.004674,122 +0.004440,122 +0.004448,122 +0.004523,122 +0.004466,122 +0.004424,122 +0.004470,122 +0.004481,122 +0.004423,122 +0.004464,122 +0.004488,122 +0.004422,122 +0.004427,122 +0.004422,122 +0.004530,122 +0.004423,122 +0.004420,122 +0.004422,122 +0.004537,122 +0.004419,122 +0.004470,122 +0.004943,122 +0.004728,122 +0.004450,122 +0.004420,122 +0.004705,122 +0.004813,122 +0.004763,122 +0.004560,122 +0.004446,122 +0.004525,122 +0.004445,122 +0.004512,122 +0.004572,122 +0.004654,122 +0.004420,122 +0.004476,122 +0.004561,122 +0.004623,122 +0.004454,122 +0.004489,122 +0.004460,122 +0.004494,122 +0.004738,122 +0.004682,122 +0.004465,122 +0.004475,122 +0.004489,122 +0.004479,122 +0.004420,122 +0.004420,122 +0.004477,122 +0.004420,122 +0.004442,122 +0.004431,122 +0.004486,122 +0.004441,122 +0.004464,122 +0.004468,122 +0.004420,122 +0.004422,122 +0.004419,122 +0.004512,122 +0.004420,122 +0.004425,122 +0.004646,122 +0.004711,122 +0.004576,122 +0.004711,124 +0.004750,124 +0.004739,124 +0.004677,124 +0.004678,124 +0.004712,124 +0.004638,124 +0.004635,124 +0.004690,124 +0.004638,124 +0.004636,124 +0.004637,124 +0.004684,124 +0.004695,124 +0.004646,124 +0.004648,124 +0.004681,124 +0.004635,124 +0.004683,124 +0.004996,124 +0.004826,124 +0.004724,124 +0.004688,124 +0.004707,124 +0.004640,124 +0.004642,124 +0.004685,124 +0.004681,124 +0.004666,124 +0.004638,124 +0.004685,124 +0.004640,124 +0.004692,124 +0.004689,124 +0.004635,124 +0.004641,124 +0.004636,124 +0.004689,124 +0.004661,124 +0.004636,124 +0.004882,124 +0.004919,124 +0.004701,124 +0.004638,124 +0.004705,124 +0.004638,124 +0.004636,124 +0.004647,124 +0.004680,124 +0.004636,124 +0.005736,124 +0.004788,124 +0.004636,124 +0.004643,124 +0.004678,124 +0.004667,124 +0.004638,124 +0.004635,124 +0.004687,124 +0.004641,124 +0.004636,124 +0.004925,124 +0.005010,124 +0.004684,124 +0.004679,124 +0.004749,124 +0.004758,124 +0.004657,124 +0.004758,124 +0.004704,124 +0.004636,124 +0.004638,124 +0.004706,124 +0.004639,124 +0.004636,124 +0.004667,124 +0.004699,124 +0.004636,124 +0.004670,124 +0.004706,124 +0.004659,124 +0.004635,124 +0.004787,124 +0.005047,124 +0.004857,124 +0.004656,124 +0.004749,124 +0.004659,124 +0.004636,124 +0.004662,124 +0.004766,124 +0.004687,124 +0.004664,124 +0.004730,124 +0.004661,124 +0.004636,124 +0.004642,124 +0.004704,124 +0.004640,124 +0.004638,124 +0.004915,126 +0.004906,126 +0.004864,126 +0.004917,126 +0.005215,126 +0.005071,126 +0.004884,126 +0.005222,126 +0.004990,126 +0.005259,126 +0.005390,126 +0.005463,126 +0.005577,126 +0.005841,126 +0.005507,126 +0.005470,126 +0.005750,126 +0.007375,126 +0.006174,126 +0.006265,126 +0.005507,126 +0.005868,126 +0.009030,126 +0.007537,126 +0.007350,126 +0.005591,126 +0.005574,126 +0.007123,126 +0.005460,126 +0.005456,126 +0.007157,126 +0.005286,126 +0.005380,126 +0.006827,126 +0.005305,126 +0.005246,126 +0.006802,126 +0.005030,126 +0.008349,126 +0.008952,126 +0.004990,126 +0.004984,126 +0.004962,126 +0.004979,126 +0.005130,126 +0.004950,126 +0.005002,126 +0.004897,126 +0.004938,126 +0.004991,126 +0.004948,126 +0.005013,126 +0.004889,126 +0.004946,126 +0.004927,126 +0.004868,126 +0.006621,126 +0.008387,126 +0.004923,126 +0.004954,126 +0.004954,126 +0.004868,126 +0.005026,126 +0.004867,126 +0.004864,126 +0.004906,126 +0.004905,126 +0.004864,126 +0.004866,126 +0.004947,126 +0.004884,126 +0.004866,126 +0.004942,126 +0.004866,126 +0.004867,126 +0.005186,126 +0.008795,126 +0.005915,126 +0.004976,126 +0.004869,126 +0.004885,126 +0.004933,126 +0.004925,126 +0.004887,126 +0.004868,126 +0.004964,126 +0.004888,126 +0.004887,126 +0.004947,126 +0.004867,126 +0.004949,126 +0.004907,126 +0.004930,126 +0.004866,126 +0.004866,126 +0.007738,126 +0.007211,126 +0.004975,126 +0.004872,126 +0.004864,126 +0.005386,128 +0.005457,128 +0.005374,128 +0.005376,128 +0.005440,128 +0.005372,128 +0.005418,128 +0.005458,128 +0.005413,128 +0.005375,128 +0.005435,128 +0.005372,128 +0.005376,128 +0.007662,128 +0.008165,128 +0.005499,128 +0.005405,128 +0.005429,128 +0.005458,128 +0.005401,128 +0.005376,128 +0.005431,128 +0.005375,128 +0.005376,128 +0.005431,128 +0.005375,128 +0.005376,128 +0.005392,128 +0.005415,128 +0.005377,128 +0.005393,128 +0.008756,128 +0.007322,128 +0.005482,128 +0.005442,128 +0.005407,128 +0.005487,128 +0.005377,128 +0.005396,128 +0.005436,128 +0.005373,128 +0.005375,128 +0.005435,128 +0.005373,128 +0.005418,128 +0.005435,128 +0.005373,128 +0.005376,128 +0.006360,128 +0.009397,128 +0.005654,128 +0.005469,128 +0.005642,128 +0.005554,128 +0.005407,128 +0.005405,128 +0.005435,128 +0.005401,128 +0.005411,128 +0.005434,128 +0.005408,128 +0.005464,128 +0.005396,128 +0.005417,128 +0.005377,128 +0.005395,128 +0.008415,128 +0.007413,128 +0.005487,128 +0.005378,128 +0.005376,128 +0.005459,128 +0.005373,128 +0.005375,128 +0.005466,128 +0.005374,128 +0.005660,128 +0.006978,128 +0.005549,128 +0.005383,128 +0.005587,128 +0.006194,128 +0.005526,128 +0.008246,128 +0.008427,128 +0.005702,128 +0.005406,128 +0.005692,128 +0.005657,128 +0.005604,128 +0.005617,128 +0.005458,128 +0.005567,128 +0.005881,128 +0.005510,128 +0.005733,128 +0.005493,128 +0.005481,128 +0.005583,128 +0.005448,128 +0.007634,130 +0.008371,130 +0.005475,130 +0.005438,130 +0.005381,130 +0.005505,130 +0.005396,130 +0.005344,130 +0.005421,130 +0.005375,130 +0.005337,130 +0.005420,130 +0.005397,130 +0.005339,130 +0.005418,130 +0.005390,130 +0.005344,130 +0.005521,130 +0.007434,130 +0.008883,130 +0.005438,130 +0.005415,130 +0.005448,130 +0.005405,130 +0.005400,130 +0.005437,130 +0.005424,130 +0.005340,130 +0.005439,130 +0.005372,130 +0.005340,130 +0.005378,130 +0.005383,130 +0.005380,130 +0.005378,130 +0.006334,130 +0.009437,130 +0.005541,130 +0.005377,130 +0.005616,130 +0.005437,130 +0.005339,130 +0.005600,130 +0.005439,130 +0.005337,130 +0.005339,130 +0.005459,130 +0.005337,130 +0.005339,130 +0.005439,130 +0.005337,130 +0.005341,130 +0.005442,130 +0.007503,130 +0.008373,130 +0.005348,130 +0.005343,130 +0.005455,130 +0.005339,130 +0.005364,130 +0.005397,130 +0.005379,130 +0.005341,130 +0.005378,130 +0.005380,130 +0.005342,130 +0.005357,130 +0.005421,130 +0.005341,130 +0.005337,130 +0.005517,130 +0.008094,130 +0.007734,130 +0.005471,130 +0.006000,130 +0.006253,130 +0.005450,130 +0.005444,130 +0.005474,130 +0.005337,130 +0.005420,130 +0.005439,130 +0.005398,130 +0.005341,130 +0.005421,130 +0.005338,130 +0.005342,130 +0.005425,130 +0.006189,130 +0.009636,130 +0.005515,130 +0.005400,130 +0.005429,130 +0.005374,130 +0.005482,130 +0.005847,130 +0.005396,130 +0.005360,130 +0.005418,130 +0.005342,130 +0.005615,132 +0.005666,132 +0.005921,132 +0.005611,132 +0.005735,132 +0.005710,132 +0.010125,132 +0.006354,132 +0.005653,132 +0.005672,132 +0.005607,132 +0.005646,132 +0.005715,132 +0.006172,132 +0.006019,132 +0.005687,132 +0.005589,132 +0.005627,132 +0.005667,132 +0.005585,132 +0.005590,132 +0.005691,132 +0.007254,132 +0.009219,132 +0.005691,132 +0.005624,132 +0.005865,132 +0.005591,132 +0.005606,132 +0.005692,132 +0.005588,132 +0.005589,132 +0.005665,132 +0.005587,132 +0.005611,132 +0.005685,132 +0.005606,132 +0.005592,132 +0.005745,132 +0.007300,132 +0.009084,132 +0.005619,132 +0.005597,132 +0.005708,132 +0.005624,132 +0.005675,132 +0.005747,132 +0.005725,132 +0.005683,132 +0.005650,132 +0.005598,132 +0.005613,132 +0.005687,132 +0.005588,132 +0.005605,132 +0.005759,132 +0.007564,132 +0.008772,132 +0.005623,132 +0.005671,132 +0.005660,132 +0.005645,132 +0.005625,132 +0.005628,132 +0.005589,132 +0.005606,132 +0.005635,132 +0.005744,132 +0.005645,132 +0.005590,132 +0.005586,132 +0.005669,132 +0.005738,132 +0.007667,132 +0.008944,132 +0.005686,132 +0.005690,132 +0.006929,132 +0.010806,132 +0.010826,132 +0.010964,132 +0.010989,132 +0.010404,132 +0.008319,132 +0.005731,132 +0.008331,132 +0.008752,132 +0.005674,132 +0.005879,132 +0.005639,132 +0.005672,132 +0.005971,132 +0.005622,132 +0.005645,132 +0.005624,132 +0.005586,132 +0.005622,132 +0.005624,132 +0.005585,132 +0.005644,132 +0.005968,134 +0.006600,134 +0.010243,134 +0.005955,134 +0.006033,134 +0.005905,134 +0.005864,134 +0.005923,134 +0.005841,134 +0.005846,134 +0.005925,134 +0.005844,134 +0.005881,134 +0.005923,134 +0.005842,134 +0.005863,134 +0.005983,134 +0.006247,134 +0.010562,134 +0.006022,134 +0.005924,134 +0.005888,134 +0.005843,134 +0.005924,134 +0.005841,134 +0.005843,134 +0.005926,134 +0.005840,134 +0.005844,134 +0.005922,134 +0.005846,134 +0.005840,134 +0.005944,134 +0.005923,134 +0.009654,134 +0.007257,134 +0.005909,134 +0.005901,134 +0.005865,134 +0.005921,134 +0.005845,134 +0.005841,134 +0.005926,134 +0.005883,134 +0.005865,134 +0.005927,134 +0.005846,134 +0.005843,134 +0.005923,134 +0.005908,134 +0.008324,134 +0.008524,134 +0.005931,134 +0.005912,134 +0.005887,134 +0.006011,134 +0.005851,134 +0.005841,134 +0.005926,134 +0.005842,134 +0.005844,134 +0.005920,134 +0.005845,134 +0.005842,134 +0.005939,134 +0.005904,134 +0.007211,134 +0.009723,134 +0.005917,134 +0.005949,134 +0.005866,134 +0.005883,134 +0.005884,134 +0.005840,134 +0.005925,134 +0.005842,134 +0.005845,134 +0.005928,134 +0.005843,134 +0.005844,134 +0.005949,134 +0.005903,134 +0.005978,134 +0.010587,134 +0.006265,134 +0.005974,134 +0.005847,134 +0.005888,134 +0.005879,134 +0.005845,134 +0.005881,134 +0.005883,134 +0.005842,134 +0.005926,134 +0.005844,134 +0.005844,134 +0.005926,134 +0.005949,134 +0.005843,134 +0.009580,134 +0.007544,136 +0.006259,136 +0.006137,136 +0.006177,136 +0.006148,136 +0.006099,136 +0.006257,136 +0.006103,136 +0.006102,136 +0.006180,136 +0.006124,136 +0.006101,136 +0.006234,136 +0.006189,136 +0.007276,136 +0.010162,136 +0.006208,136 +0.006129,136 +0.006098,136 +0.006184,136 +0.006101,136 +0.006133,136 +0.006182,136 +0.006138,136 +0.006145,136 +0.006140,136 +0.006122,136 +0.006238,136 +0.006165,136 +0.006100,136 +0.009424,136 +0.007949,136 +0.006220,136 +0.006165,136 +0.006179,136 +0.006205,136 +0.006099,136 +0.006204,136 +0.006101,136 +0.006102,136 +0.006177,136 +0.006145,136 +0.006163,136 +0.006159,136 +0.006162,136 +0.006208,136 +0.010491,136 +0.007331,136 +0.006136,136 +0.006138,136 +0.006207,136 +0.006110,136 +0.006183,136 +0.006164,136 +0.006098,136 +0.006185,136 +0.006101,136 +0.006102,136 +0.006207,136 +0.006182,136 +0.006102,136 +0.009914,136 +0.007608,136 +0.006170,136 +0.006119,136 +0.006205,136 +0.006101,136 +0.006102,136 +0.006182,136 +0.006102,136 +0.006121,136 +0.006210,136 +0.006097,136 +0.006181,136 +0.006171,136 +0.006104,136 +0.007201,136 +0.010121,136 +0.006260,136 +0.006129,136 +0.006142,136 +0.006253,136 +0.006098,136 +0.006221,136 +0.006100,136 +0.006102,136 +0.006218,136 +0.006102,136 +0.006113,136 +0.006188,136 +0.006159,136 +0.006146,136 +0.009205,136 +0.008398,136 +0.006163,136 +0.006129,136 +0.006238,136 +0.006110,136 +0.006101,136 +0.006184,136 +0.006475,138 +0.006483,138 +0.006375,138 +0.006380,138 +0.006462,138 +0.006437,138 +0.006422,138 +0.008880,138 +0.009047,138 +0.006436,138 +0.006377,138 +0.006463,138 +0.006380,138 +0.006415,138 +0.006424,138 +0.006379,138 +0.006465,138 +0.006380,138 +0.006375,138 +0.006458,138 +0.006482,138 +0.006478,138 +0.009612,138 +0.008407,138 +0.006416,138 +0.006408,138 +0.006474,138 +0.006380,138 +0.006463,138 +0.006381,138 +0.006463,138 +0.006476,138 +0.006379,138 +0.006420,138 +0.006414,138 +0.006450,138 +0.006463,138 +0.010245,138 +0.007760,138 +0.006435,138 +0.006458,138 +0.006458,138 +0.006388,138 +0.006456,138 +0.006402,138 +0.006378,138 +0.006481,138 +0.006399,138 +0.006458,138 +0.006480,138 +0.006398,138 +0.006459,138 +0.010950,138 +0.006932,138 +0.006438,138 +0.006532,138 +0.006417,138 +0.006415,138 +0.006459,138 +0.006376,138 +0.006423,138 +0.006416,138 +0.006381,138 +0.006499,138 +0.006475,138 +0.006380,138 +0.006794,138 +0.011207,138 +0.006485,138 +0.006396,138 +0.006503,138 +0.006445,138 +0.006410,138 +0.006490,138 +0.006439,138 +0.006463,138 +0.006386,138 +0.006378,138 +0.006462,138 +0.006463,138 +0.006458,138 +0.007488,138 +0.010416,138 +0.006409,138 +0.006401,138 +0.006456,138 +0.006436,138 +0.006480,138 +0.006379,138 +0.006380,138 +0.006474,138 +0.006375,138 +0.006423,138 +0.006417,138 +0.006450,138 +0.006461,138 +0.007113,138 +0.011225,138 +0.006471,138 +0.006478,138 +0.006769,140 +0.006656,140 +0.006753,140 +0.006655,140 +0.006738,140 +0.006691,140 +0.006655,140 +0.006737,140 +0.006713,140 +0.006737,140 +0.006694,140 +0.011793,140 +0.006709,140 +0.006807,140 +0.006790,140 +0.006687,140 +0.006729,140 +0.006655,140 +0.006696,140 +0.006692,140 +0.006655,140 +0.006736,140 +0.006710,140 +0.006765,140 +0.006694,140 +0.010488,140 +0.008057,140 +0.006740,140 +0.006800,140 +0.006695,140 +0.006780,140 +0.006676,140 +0.006678,140 +0.006751,140 +0.006655,140 +0.006747,140 +0.006761,140 +0.006656,140 +0.006732,140 +0.009127,140 +0.009353,140 +0.006724,140 +0.006806,140 +0.006677,140 +0.006760,140 +0.006654,140 +0.006715,140 +0.006734,140 +0.006651,140 +0.006733,140 +0.006684,140 +0.006766,140 +0.006730,140 +0.007838,140 +0.010583,140 +0.006669,140 +0.006790,140 +0.006676,140 +0.006704,140 +0.006691,140 +0.006655,140 +0.006734,140 +0.006676,140 +0.006805,140 +0.006760,140 +0.006711,140 +0.006734,140 +0.006655,140 +0.011768,140 +0.006691,140 +0.006817,140 +0.006717,140 +0.006691,140 +0.006778,140 +0.006655,140 +0.006731,140 +0.006655,140 +0.006719,140 +0.006782,140 +0.006765,140 +0.006796,140 +0.006700,140 +0.010922,140 +0.007698,140 +0.006781,140 +0.006674,140 +0.006694,140 +0.006740,140 +0.006651,140 +0.006738,140 +0.006656,140 +0.006655,140 +0.006736,140 +0.006822,140 +0.006776,140 +0.006673,140 +0.009524,140 +0.008979,140 +0.006754,140 +0.006715,140 +0.007035,142 +0.007048,142 +0.006946,142 +0.007020,142 +0.007048,142 +0.007000,142 +0.007080,142 +0.007065,142 +0.007026,142 +0.006946,142 +0.011171,142 +0.007917,142 +0.007063,142 +0.007218,142 +0.007036,142 +0.006964,142 +0.007092,142 +0.007063,142 +0.008122,142 +0.007109,142 +0.007142,142 +0.007097,142 +0.006951,142 +0.008729,142 +0.010398,142 +0.007144,142 +0.007088,142 +0.006942,142 +0.007028,142 +0.006949,142 +0.007069,142 +0.007492,142 +0.007120,142 +0.007258,142 +0.007069,142 +0.007050,142 +0.006944,142 +0.010432,142 +0.009191,142 +0.007110,142 +0.007057,142 +0.007094,142 +0.006976,142 +0.007043,142 +0.006947,142 +0.006946,142 +0.007023,142 +0.007052,142 +0.007024,142 +0.006946,142 +0.008870,142 +0.010285,142 +0.007081,142 +0.006970,142 +0.007068,142 +0.007010,142 +0.007010,142 +0.007087,142 +0.006966,142 +0.007024,142 +0.006985,142 +0.007014,142 +0.007026,142 +0.006945,142 +0.010603,142 +0.008532,142 +0.007087,142 +0.006987,142 +0.007045,142 +0.006968,142 +0.007052,142 +0.007006,142 +0.006958,142 +0.007029,142 +0.007006,142 +0.007024,142 +0.006943,142 +0.006946,142 +0.012083,142 +0.007096,142 +0.006994,142 +0.006994,142 +0.007034,142 +0.007008,142 +0.007026,142 +0.006946,142 +0.006985,142 +0.006985,142 +0.007024,142 +0.007025,142 +0.006942,142 +0.008762,142 +0.010367,142 +0.007151,142 +0.006977,142 +0.007046,142 +0.006955,142 +0.006988,142 +0.006987,142 +0.006944,142 +0.007327,144 +0.007334,144 +0.007310,144 +0.007232,144 +0.007268,144 +0.012184,144 +0.007532,144 +0.007281,144 +0.007333,144 +0.007233,144 +0.007237,144 +0.007310,144 +0.007274,144 +0.007310,144 +0.007298,144 +0.007331,144 +0.007454,144 +0.007391,144 +0.011581,144 +0.007960,144 +0.007244,144 +0.007270,144 +0.007314,144 +0.007273,144 +0.007328,144 +0.007248,144 +0.007312,144 +0.007335,144 +0.007310,144 +0.007232,144 +0.007269,144 +0.010878,144 +0.008735,144 +0.007287,144 +0.007312,144 +0.007293,144 +0.007232,144 +0.007358,144 +0.007243,144 +0.007335,144 +0.007291,144 +0.007310,144 +0.007231,144 +0.007227,144 +0.010332,144 +0.009383,144 +0.007242,144 +0.007305,144 +0.007304,144 +0.007293,144 +0.007309,144 +0.007232,144 +0.007310,144 +0.007312,144 +0.007339,144 +0.007228,144 +0.007231,144 +0.009600,144 +0.010036,144 +0.007243,144 +0.007316,144 +0.007283,144 +0.007262,144 +0.007314,144 +0.007254,144 +0.007333,144 +0.007283,144 +0.007355,144 +0.007228,144 +0.007274,144 +0.007931,144 +0.012148,144 +0.007279,144 +0.007336,144 +0.007293,144 +0.007232,144 +0.007309,144 +0.007231,144 +0.007310,144 +0.007292,144 +0.007352,144 +0.007228,144 +0.007375,144 +0.009157,144 +0.010462,144 +0.007231,144 +0.007276,144 +0.007271,144 +0.007230,144 +0.007311,144 +0.007231,144 +0.007312,144 +0.007291,144 +0.007270,144 +0.007267,144 +0.007231,144 +0.008402,144 +0.011334,144 +0.007284,144 +0.007240,144 +0.007692,146 +0.007635,146 +0.007671,146 +0.007604,146 +0.007675,146 +0.007674,146 +0.007691,146 +0.007592,146 +0.008196,146 +0.011100,146 +0.009205,146 +0.007645,146 +0.007745,146 +0.007741,146 +0.007693,146 +0.007592,146 +0.007713,146 +0.007721,146 +0.007635,146 +0.007631,146 +0.007589,146 +0.008456,146 +0.011895,146 +0.007599,146 +0.007672,146 +0.007591,146 +0.007850,146 +0.007654,146 +0.007612,146 +0.007675,146 +0.007654,146 +0.007694,146 +0.007590,146 +0.007653,146 +0.011486,146 +0.008898,146 +0.007667,146 +0.007743,146 +0.007588,146 +0.007674,146 +0.007592,146 +0.007675,146 +0.007653,146 +0.007671,146 +0.007592,146 +0.007812,146 +0.008585,146 +0.011660,146 +0.007667,146 +0.007763,146 +0.007664,146 +0.007691,146 +0.007589,146 +0.007630,146 +0.007656,146 +0.007675,146 +0.007671,146 +0.007592,146 +0.007714,146 +0.011731,146 +0.008435,146 +0.007684,146 +0.007714,146 +0.007672,146 +0.007723,146 +0.007733,146 +0.007689,146 +0.007660,146 +0.007674,146 +0.007592,146 +0.007674,146 +0.008910,146 +0.011245,146 +0.007650,146 +0.007695,146 +0.007592,146 +0.007752,146 +0.007666,146 +0.007710,146 +0.007593,146 +0.007711,146 +0.007716,146 +0.007592,146 +0.007674,146 +0.012258,146 +0.007952,146 +0.007695,146 +0.007613,146 +0.007652,146 +0.007758,146 +0.007596,146 +0.007690,146 +0.007652,146 +0.007679,146 +0.007635,146 +0.007674,146 +0.008160,146 +0.012631,146 +0.008593,146 +0.007761,146 +0.007959,148 +0.007968,148 +0.007851,148 +0.007933,148 +0.007973,148 +0.007929,148 +0.008064,148 +0.007951,148 +0.009425,148 +0.011397,148 +0.007870,148 +0.007970,148 +0.007905,148 +0.007930,148 +0.007850,148 +0.007932,148 +0.007918,148 +0.007932,148 +0.007850,148 +0.007933,148 +0.008677,148 +0.012120,148 +0.007928,148 +0.007977,148 +0.007935,148 +0.007924,148 +0.007869,148 +0.007936,148 +0.007914,148 +0.007929,148 +0.007850,148 +0.007940,148 +0.008258,148 +0.012461,148 +0.007890,148 +0.007965,148 +0.007929,148 +0.007910,148 +0.007851,148 +0.007914,148 +0.007934,148 +0.007977,148 +0.007850,148 +0.007929,148 +0.007850,148 +0.012867,148 +0.007892,148 +0.007950,148 +0.007874,148 +0.007932,148 +0.007872,148 +0.007944,148 +0.007951,148 +0.007930,148 +0.007850,148 +0.007911,148 +0.007851,148 +0.012936,148 +0.007927,148 +0.007969,148 +0.007873,148 +0.007961,148 +0.007850,148 +0.007933,148 +0.007970,148 +0.007910,148 +0.007927,148 +0.007972,148 +0.007849,148 +0.012914,148 +0.007896,148 +0.007971,148 +0.007897,148 +0.007961,148 +0.007914,148 +0.007989,148 +0.007942,148 +0.007972,148 +0.007896,148 +0.007957,148 +0.007873,148 +0.012887,148 +0.007898,148 +0.007967,148 +0.007851,148 +0.007972,148 +0.007890,148 +0.007907,148 +0.007930,148 +0.007909,148 +0.007850,148 +0.007909,148 +0.007851,148 +0.012450,148 +0.008353,148 +0.007964,148 +0.007935,148 +0.007967,148 +0.007860,148 +0.008012,148 +0.008326,150 +0.008283,150 +0.008174,150 +0.008234,150 +0.008176,150 +0.013231,150 +0.008333,150 +0.008238,150 +0.008228,150 +0.008234,150 +0.008227,150 +0.008236,150 +0.008307,150 +0.008221,150 +0.008196,150 +0.008215,150 +0.009105,150 +0.013067,150 +0.009257,150 +0.008500,150 +0.008297,150 +0.008421,150 +0.008322,150 +0.008274,150 +0.008333,150 +0.008374,150 +0.008256,150 +0.008175,150 +0.013310,150 +0.008296,150 +0.008247,150 +0.008317,150 +0.008242,150 +0.008293,150 +0.008203,150 +0.008344,150 +0.008177,150 +0.008256,150 +0.008198,150 +0.010603,150 +0.010949,150 +0.008287,150 +0.008198,150 +0.008256,150 +0.008192,150 +0.008240,150 +0.008258,150 +0.008269,150 +0.008235,150 +0.008241,150 +0.008175,150 +0.013210,150 +0.008325,150 +0.008201,150 +0.008306,150 +0.008176,150 +0.008239,150 +0.008211,150 +0.008391,150 +0.008218,150 +0.008248,150 +0.008181,150 +0.009482,150 +0.011948,150 +0.008287,150 +0.008195,150 +0.008310,150 +0.008197,150 +0.008256,150 +0.008283,150 +0.008265,150 +0.008176,150 +0.008239,150 +0.008176,150 +0.012253,150 +0.009329,150 +0.008246,150 +0.008255,150 +0.008195,150 +0.008235,150 +0.008176,150 +0.008328,150 +0.008177,150 +0.008353,150 +0.008176,150 +0.008301,150 +0.013030,150 +0.008253,150 +0.008203,150 +0.008289,150 +0.008261,150 +0.008237,150 +0.008196,150 +0.008282,150 +0.008176,150 +0.008215,150 +0.008199,150 +0.011124,150 +0.010348,150 +0.008221,150 +0.008590,152 +0.008528,152 +0.008581,152 +0.008496,152 +0.008618,152 +0.008500,152 +0.008539,152 +0.008495,152 +0.009897,152 +0.012220,152 +0.008549,152 +0.008580,152 +0.008496,152 +0.008536,152 +0.008536,152 +0.008594,152 +0.008504,152 +0.008537,152 +0.008508,152 +0.008783,152 +0.013258,152 +0.008581,152 +0.008518,152 +0.008561,152 +0.008531,152 +0.008556,152 +0.008678,152 +0.008503,152 +0.008537,152 +0.008538,152 +0.008536,152 +0.013405,152 +0.009086,152 +0.008519,152 +0.008583,152 +0.008531,152 +0.008603,152 +0.008575,152 +0.008543,152 +0.008708,152 +0.008499,152 +0.008728,152 +0.013398,152 +0.008614,152 +0.008541,152 +0.008572,152 +0.008527,152 +0.008578,152 +0.008571,152 +0.008540,152 +0.008496,152 +0.008633,152 +0.008537,152 +0.012668,152 +0.009393,152 +0.008538,152 +0.008580,152 +0.008513,152 +0.008534,152 +0.008556,152 +0.008553,152 +0.008498,152 +0.008536,152 +0.008495,152 +0.011647,152 +0.010350,152 +0.008567,152 +0.008598,152 +0.008497,152 +0.008541,152 +0.008564,152 +0.008630,152 +0.008497,152 +0.008536,152 +0.008499,152 +0.010562,152 +0.011428,152 +0.008526,152 +0.008558,152 +0.008550,152 +0.008571,152 +0.008993,152 +0.009109,152 +0.008602,152 +0.008796,152 +0.008519,152 +0.010517,152 +0.011600,152 +0.008552,152 +0.008619,152 +0.008497,152 +0.008579,152 +0.008496,152 +0.008652,152 +0.008569,152 +0.008620,152 +0.008498,152 +0.009709,152 +0.012485,152 +0.008564,152 +0.009016,154 +0.008902,154 +0.008946,154 +0.008847,154 +0.008991,154 +0.008844,154 +0.008929,154 +0.008883,154 +0.011722,154 +0.011108,154 +0.008916,154 +0.008952,154 +0.008897,154 +0.008927,154 +0.008921,154 +0.008936,154 +0.008879,154 +0.008908,154 +0.008925,154 +0.013578,154 +0.009007,154 +0.008936,154 +0.008911,154 +0.008889,154 +0.008881,154 +0.009014,154 +0.008844,154 +0.008920,154 +0.008842,154 +0.008925,154 +0.013867,154 +0.008872,154 +0.008942,154 +0.008897,154 +0.008921,154 +0.008842,154 +0.008996,154 +0.009369,154 +0.009038,154 +0.008919,154 +0.009989,154 +0.013399,154 +0.008900,154 +0.008974,154 +0.008902,154 +0.008949,154 +0.008947,154 +0.008939,154 +0.009119,154 +0.008847,154 +0.008954,154 +0.013207,154 +0.009464,154 +0.008922,154 +0.008902,154 +0.008945,154 +0.008842,154 +0.009057,154 +0.008846,154 +0.008920,154 +0.008889,154 +0.008921,154 +0.013838,154 +0.008916,154 +0.008943,154 +0.008860,154 +0.008921,154 +0.008842,154 +0.009052,154 +0.008841,154 +0.008921,154 +0.008842,154 +0.010556,154 +0.012137,154 +0.008893,154 +0.009020,154 +0.008856,154 +0.008920,154 +0.008948,154 +0.009503,154 +0.008969,154 +0.008888,154 +0.008961,154 +0.012439,154 +0.010243,154 +0.008968,154 +0.008888,154 +0.008947,154 +0.008843,154 +0.008980,154 +0.008842,154 +0.008925,154 +0.008843,154 +0.008920,154 +0.013791,154 +0.008942,154 +0.008941,154 +0.008903,154 +0.008926,154 +0.008848,154 +0.009499,156 +0.009334,156 +0.009283,156 +0.009266,156 +0.011629,156 +0.011676,156 +0.009271,156 +0.009246,156 +0.009345,156 +0.009240,156 +0.009374,156 +0.009283,156 +0.009286,156 +0.009184,156 +0.009266,156 +0.014065,156 +0.009249,156 +0.009320,156 +0.009289,156 +0.009245,156 +0.009339,156 +0.009187,156 +0.009283,156 +0.009188,156 +0.009263,156 +0.013484,156 +0.009916,156 +0.009344,156 +0.009206,156 +0.009293,156 +0.009184,156 +0.009405,156 +0.009270,156 +0.009185,156 +0.009287,156 +0.011293,156 +0.012023,156 +0.009330,156 +0.009187,156 +0.009264,156 +0.009192,156 +0.009396,156 +0.009184,156 +0.009284,156 +0.009228,156 +0.009224,156 +0.014616,156 +0.009291,156 +0.009270,156 +0.009321,156 +0.009187,156 +0.009374,156 +0.009282,156 +0.009344,156 +0.009185,156 +0.009271,156 +0.013772,156 +0.009505,156 +0.009288,156 +0.009205,156 +0.009265,156 +0.009332,156 +0.009187,156 +0.009263,156 +0.009286,156 +0.009381,156 +0.010971,156 +0.012399,156 +0.009319,156 +0.009214,156 +0.009270,156 +0.009185,156 +0.009331,156 +0.009207,156 +0.009204,156 +0.009225,156 +0.009189,156 +0.014033,156 +0.009291,156 +0.009208,156 +0.009224,156 +0.009228,156 +0.009336,156 +0.009186,156 +0.009225,156 +0.009186,156 +0.009245,156 +0.012972,156 +0.010474,156 +0.009281,156 +0.009432,156 +0.009240,156 +0.009350,156 +0.009186,156 +0.009249,156 +0.009185,156 +0.009224,156 +0.010326,156 +0.013002,156 +0.009279,156 +0.009701,158 +0.009625,158 +0.009621,158 +0.009726,158 +0.009628,158 +0.009543,158 +0.009582,158 +0.010835,158 +0.013186,158 +0.009713,158 +0.009620,158 +0.009625,158 +0.009666,158 +0.009545,158 +0.009610,158 +0.009585,158 +0.009679,158 +0.010873,158 +0.013045,158 +0.009651,158 +0.009623,158 +0.009568,158 +0.009643,158 +0.009545,158 +0.009583,158 +0.009542,158 +0.009586,158 +0.010793,158 +0.013279,158 +0.009682,158 +0.009608,158 +0.009561,158 +0.009687,158 +0.009548,158 +0.009582,158 +0.009545,158 +0.009612,158 +0.010642,158 +0.013318,158 +0.009618,158 +0.009640,158 +0.009560,158 +0.009687,158 +0.009544,158 +0.009582,158 +0.009546,158 +0.009582,158 +0.009657,158 +0.014768,158 +0.009654,158 +0.009671,158 +0.009584,158 +0.009713,158 +0.009808,158 +0.009650,158 +0.009599,158 +0.009547,158 +0.009723,158 +0.009852,158 +0.009656,158 +0.009584,158 +0.009627,158 +0.009685,158 +0.009587,158 +0.009604,158 +0.009544,158 +0.009607,158 +0.009562,158 +0.009986,158 +0.009774,158 +0.009682,158 +0.011187,158 +0.009877,158 +0.009714,158 +0.009629,158 +0.009544,158 +0.009622,158 +0.009546,158 +0.009776,158 +0.009973,158 +0.009588,158 +0.010187,158 +0.009548,158 +0.009694,158 +0.009594,158 +0.009582,158 +0.009623,158 +0.009543,158 +0.009730,158 +0.009879,158 +0.009693,158 +0.009872,158 +0.009792,158 +0.009710,158 +0.009545,158 +0.009621,158 +0.009547,158 +0.009622,158 +0.009627,158 +0.010054,158 +0.010054,160 +0.009929,160 +0.010009,160 +0.009988,160 +0.010043,160 +0.010026,160 +0.009913,160 +0.009992,160 +0.009988,160 +0.010275,160 +0.010065,160 +0.009904,160 +0.010016,160 +0.009985,160 +0.009989,160 +0.009988,160 +0.009997,160 +0.010034,160 +0.010070,160 +0.010303,160 +0.010059,160 +0.009946,160 +0.010008,160 +0.009986,160 +0.009979,160 +0.009984,160 +0.009905,160 +0.009988,160 +0.009993,160 +0.010278,160 +0.010234,160 +0.009945,160 +0.010079,160 +0.009987,160 +0.009990,160 +0.012101,160 +0.010456,160 +0.009979,160 +0.010182,160 +0.010254,160 +0.010008,160 +0.009989,160 +0.009967,160 +0.010090,160 +0.009973,160 +0.010025,160 +0.009985,160 +0.009903,160 +0.010008,160 +0.010262,160 +0.010137,160 +0.010036,160 +0.009937,160 +0.010067,160 +0.010004,160 +0.010024,160 +0.009989,160 +0.009907,160 +0.009991,160 +0.010275,160 +0.010042,160 +0.009989,160 +0.009911,160 +0.010050,160 +0.009907,160 +0.010129,160 +0.010013,160 +0.009909,160 +0.009995,160 +0.010495,160 +0.010028,160 +0.010029,160 +0.009951,160 +0.010063,160 +0.010007,160 +0.009944,160 +0.009986,160 +0.009904,160 +0.010006,160 +0.010279,160 +0.010067,160 +0.010054,160 +0.009934,160 +0.010086,160 +0.009944,160 +0.009944,160 +0.009987,160 +0.009904,160 +0.009985,160 +0.010425,160 +0.009962,160 +0.009988,160 +0.009906,160 +0.010069,160 +0.009944,160 +0.009949,160 +0.009985,160 +0.009904,160 +0.010007,160 +0.010422,160 +0.010407,162 +0.010363,162 +0.010280,162 +0.010447,162 +0.010445,162 +0.010283,162 +0.010360,162 +0.010319,162 +0.010479,162 +0.010749,162 +0.010282,162 +0.010404,162 +0.010358,162 +0.010366,162 +0.010361,162 +0.010360,162 +0.010364,162 +0.010358,162 +0.010496,162 +0.010656,162 +0.010365,162 +0.010284,162 +0.010423,162 +0.010320,162 +0.010323,162 +0.010378,162 +0.010281,162 +0.010360,162 +0.010843,162 +0.010325,162 +0.010400,162 +0.010281,162 +0.010441,162 +0.010361,162 +0.010284,162 +0.010378,162 +0.010372,162 +0.010364,162 +0.010847,162 +0.010389,162 +0.010406,162 +0.010388,162 +0.010346,162 +0.010407,162 +0.010365,162 +0.010317,162 +0.010364,162 +0.010498,162 +0.010612,162 +0.010410,162 +0.010280,162 +0.010466,162 +0.010487,162 +0.010487,162 +0.010363,162 +0.010280,162 +0.010450,162 +0.010746,162 +0.010334,162 +0.010491,162 +0.010358,162 +0.010363,162 +0.010387,162 +0.010300,162 +0.010363,162 +0.010362,162 +0.010541,162 +0.010729,162 +0.010459,162 +0.010328,162 +0.010466,162 +0.010283,162 +0.010364,162 +0.010362,162 +0.010282,162 +0.010362,162 +0.010745,162 +0.010464,162 +0.010403,162 +0.010316,162 +0.010428,162 +0.010365,162 +0.010284,162 +0.010382,162 +0.010364,162 +0.010383,162 +0.010771,162 +0.010351,162 +0.010378,162 +0.010404,162 +0.010364,162 +0.011207,162 +0.010435,162 +0.010319,162 +0.010426,162 +0.010802,162 +0.010531,162 +0.010431,162 +0.010284,162 +0.010522,162 +0.010784,164 +0.010711,164 +0.010748,164 +0.010809,164 +0.010786,164 +0.011112,164 +0.010752,164 +0.010789,164 +0.010813,164 +0.010773,164 +0.010780,164 +0.011292,164 +0.011594,164 +0.011430,164 +0.011138,164 +0.010801,164 +0.010771,164 +0.010786,164 +0.010763,164 +0.010774,164 +0.010746,164 +0.010671,164 +0.010771,164 +0.011398,164 +0.010791,164 +0.010771,164 +0.010810,164 +0.010777,164 +0.010796,164 +0.010822,164 +0.011003,164 +0.010760,164 +0.010943,164 +0.011030,164 +0.010857,164 +0.010801,164 +0.010826,164 +0.010754,164 +0.010670,164 +0.010748,164 +0.010750,164 +0.010836,164 +0.011151,164 +0.010840,164 +0.010732,164 +0.010915,164 +0.010751,164 +0.010709,164 +0.010746,164 +0.010754,164 +0.010714,164 +0.011173,164 +0.010763,164 +0.010850,164 +0.010793,164 +0.010779,164 +0.010792,164 +0.010793,164 +0.010669,164 +0.010780,164 +0.011376,164 +0.010779,164 +0.010790,164 +0.010751,164 +0.010751,164 +0.010753,164 +0.010751,164 +0.010669,164 +0.010745,164 +0.010846,164 +0.012370,164 +0.010926,164 +0.011042,164 +0.010808,164 +0.010782,164 +0.010733,164 +0.010707,164 +0.010750,164 +0.010891,164 +0.011047,164 +0.011147,164 +0.010669,164 +0.010834,164 +0.010770,164 +0.010670,164 +0.010747,164 +0.010746,164 +0.010755,164 +0.011173,164 +0.011209,164 +0.010669,164 +0.011009,164 +0.010817,164 +0.010712,164 +0.010766,164 +0.010734,164 +0.010828,164 +0.011192,164 +0.010784,164 +0.010732,164 +0.011191,166 +0.011185,166 +0.011145,166 +0.011888,166 +0.012399,166 +0.012089,166 +0.011909,166 +0.011759,166 +0.011249,166 +0.011758,166 +0.011934,166 +0.011491,166 +0.011819,166 +0.011546,166 +0.011587,166 +0.011658,166 +0.012568,166 +0.011181,166 +0.011217,166 +0.011118,166 +0.011121,166 +0.011059,166 +0.011164,166 +0.011387,166 +0.011276,166 +0.011226,166 +0.011204,166 +0.011228,166 +0.011131,166 +0.011142,166 +0.011100,166 +0.011137,166 +0.011355,166 +0.011357,166 +0.011142,166 +0.011250,166 +0.011281,166 +0.011159,166 +0.011142,166 +0.011099,166 +0.011100,166 +0.011505,166 +0.011219,166 +0.011137,166 +0.011220,166 +0.011239,166 +0.011102,166 +0.011155,166 +0.011142,166 +0.011062,166 +0.011673,166 +0.011270,166 +0.011083,166 +0.011158,166 +0.011245,166 +0.011062,166 +0.011140,166 +0.011156,166 +0.011061,166 +0.011578,166 +0.011292,166 +0.011134,166 +0.011167,166 +0.011235,166 +0.011059,166 +0.011144,166 +0.011139,166 +0.011159,166 +0.011497,166 +0.011209,166 +0.011156,166 +0.011138,166 +0.011201,166 +0.011061,166 +0.011138,166 +0.011169,166 +0.011059,166 +0.011572,166 +0.011204,166 +0.011161,166 +0.011254,166 +0.011203,166 +0.011098,166 +0.011138,166 +0.011144,166 +0.011083,166 +0.011473,166 +0.011272,166 +0.011144,166 +0.011296,166 +0.011161,166 +0.011103,166 +0.011360,166 +0.011138,166 +0.011134,166 +0.011465,166 +0.011145,166 +0.011102,166 +0.011164,166 +0.011182,166 +0.011523,168 +0.011490,168 +0.011535,168 +0.011532,168 +0.011907,168 +0.011672,168 +0.011655,168 +0.011612,168 +0.011542,168 +0.011551,168 +0.011531,168 +0.011524,168 +0.011651,168 +0.011834,168 +0.011450,168 +0.011632,168 +0.011648,168 +0.011473,168 +0.011532,168 +0.011528,168 +0.011452,168 +0.011698,168 +0.011850,168 +0.011598,168 +0.011687,168 +0.011610,168 +0.011528,168 +0.011452,168 +0.011555,168 +0.011512,168 +0.011784,168 +0.011572,168 +0.011512,168 +0.011580,168 +0.011532,168 +0.011554,168 +0.011490,168 +0.011495,168 +0.011668,168 +0.011871,168 +0.011485,168 +0.011530,168 +0.011591,168 +0.011449,168 +0.011529,168 +0.011532,168 +0.011516,168 +0.011658,168 +0.011794,168 +0.011571,168 +0.011533,168 +0.011528,168 +0.011533,168 +0.011450,168 +0.011528,168 +0.011552,168 +0.011742,168 +0.011668,168 +0.011667,168 +0.011600,168 +0.011559,168 +0.011602,168 +0.011623,168 +0.011590,168 +0.011655,168 +0.012261,168 +0.011516,168 +0.011774,168 +0.011784,168 +0.011491,168 +0.011541,168 +0.011557,168 +0.011546,168 +0.011727,168 +0.011933,168 +0.011591,168 +0.011511,168 +0.011567,168 +0.011619,168 +0.011493,168 +0.011491,168 +0.011567,168 +0.012135,168 +0.011495,168 +0.011536,168 +0.011575,168 +0.011452,168 +0.011510,168 +0.011513,168 +0.011452,168 +0.011755,168 +0.012195,168 +0.011600,168 +0.011611,168 +0.011585,168 +0.011533,168 +0.011453,168 +0.011526,168 +0.011563,168 +0.011778,168 +0.012368,170 +0.011991,170 +0.012023,170 +0.011874,170 +0.011995,170 +0.011975,170 +0.011873,170 +0.012019,170 +0.012605,170 +0.011974,170 +0.012064,170 +0.012011,170 +0.011956,170 +0.011913,170 +0.011915,170 +0.011957,170 +0.012581,170 +0.011992,170 +0.011972,170 +0.012224,170 +0.011968,170 +0.011880,170 +0.011963,170 +0.011961,170 +0.012367,170 +0.012179,170 +0.012012,170 +0.012050,170 +0.011872,170 +0.011946,170 +0.011983,170 +0.011910,170 +0.012138,170 +0.012355,170 +0.012069,170 +0.011953,170 +0.011972,170 +0.011951,170 +0.011969,170 +0.011873,170 +0.011954,170 +0.012545,170 +0.011952,170 +0.012034,170 +0.011974,170 +0.011952,170 +0.011891,170 +0.011952,170 +0.011949,170 +0.012361,170 +0.012149,170 +0.012212,170 +0.012514,170 +0.012752,170 +0.012681,170 +0.012633,170 +0.012701,170 +0.012961,170 +0.012976,170 +0.013305,170 +0.013122,170 +0.013128,170 +0.013197,170 +0.013457,170 +0.012856,170 +0.014079,170 +0.012390,170 +0.012251,170 +0.012068,170 +0.011998,170 +0.012010,170 +0.011881,170 +0.012047,170 +0.013430,170 +0.012022,170 +0.012064,170 +0.012012,170 +0.011969,170 +0.011879,170 +0.011970,170 +0.012012,170 +0.013293,170 +0.012159,170 +0.012003,170 +0.012090,170 +0.011921,170 +0.011919,170 +0.011975,170 +0.011976,170 +0.013089,170 +0.013243,170 +0.012087,170 +0.012064,170 +0.012142,170 +0.011978,170 +0.012004,170 +0.011963,170 +0.011878,170 +0.013426,170 +0.011999,170 +0.012542,172 +0.012343,172 +0.012399,172 +0.012399,172 +0.012399,172 +0.012335,172 +0.013855,172 +0.012485,172 +0.012488,172 +0.012322,172 +0.012376,172 +0.012417,172 +0.012376,172 +0.012359,172 +0.013822,172 +0.012456,172 +0.012528,172 +0.012299,172 +0.012400,172 +0.012376,172 +0.012380,172 +0.012348,172 +0.013919,172 +0.012396,172 +0.012518,172 +0.012300,172 +0.012436,172 +0.012373,172 +0.012377,172 +0.012768,172 +0.013555,172 +0.012493,172 +0.012480,172 +0.012365,172 +0.012372,172 +0.012416,172 +0.012470,172 +0.012911,172 +0.013230,172 +0.012400,172 +0.012480,172 +0.012401,172 +0.012358,172 +0.012374,172 +0.012399,172 +0.012936,172 +0.013161,172 +0.012432,172 +0.012491,172 +0.012339,172 +0.012351,172 +0.012387,172 +0.012380,172 +0.012970,172 +0.013251,172 +0.012388,172 +0.012437,172 +0.012403,172 +0.012297,172 +0.012398,172 +0.012422,172 +0.012949,172 +0.013123,172 +0.012379,172 +0.012475,172 +0.012376,172 +0.012297,172 +0.012430,172 +0.012380,172 +0.013706,172 +0.013553,172 +0.012487,172 +0.012477,172 +0.012439,172 +0.012298,172 +0.012377,172 +0.012376,172 +0.013300,172 +0.012890,172 +0.012415,172 +0.012543,172 +0.012378,172 +0.012305,172 +0.012375,172 +0.012374,172 +0.013355,172 +0.012861,172 +0.012377,172 +0.012459,172 +0.012386,172 +0.012342,172 +0.012377,172 +0.012387,172 +0.013479,172 +0.012737,172 +0.012374,172 +0.012439,172 +0.012419,172 +0.012339,172 +0.012335,172 +0.012924,174 +0.014114,174 +0.013398,174 +0.012870,174 +0.012829,174 +0.012810,174 +0.012898,174 +0.012773,174 +0.012770,174 +0.014461,174 +0.012943,174 +0.012952,174 +0.012893,174 +0.012770,174 +0.012819,174 +0.012815,174 +0.013198,174 +0.013806,174 +0.012834,174 +0.012930,174 +0.012905,174 +0.013421,174 +0.012810,174 +0.012833,174 +0.014129,174 +0.013014,174 +0.012818,174 +0.012832,174 +0.012812,174 +0.012827,174 +0.012774,174 +0.012827,174 +0.014350,174 +0.012876,174 +0.012939,174 +0.012771,174 +0.012778,174 +0.012826,174 +0.012832,174 +0.012847,174 +0.014217,174 +0.012893,174 +0.012886,174 +0.012816,174 +0.012773,174 +0.012781,174 +0.012813,174 +0.014284,174 +0.013887,174 +0.013176,174 +0.012836,174 +0.012812,174 +0.012850,174 +0.012854,174 +0.012751,174 +0.014305,174 +0.012886,174 +0.012893,174 +0.012796,174 +0.012766,174 +0.012814,174 +0.012808,174 +0.012820,174 +0.014250,174 +0.012876,174 +0.012902,174 +0.012811,174 +0.012777,174 +0.012769,174 +0.012870,174 +0.013717,174 +0.013426,174 +0.012750,174 +0.012822,174 +0.012850,174 +0.012808,174 +0.012984,174 +0.012814,174 +0.013902,174 +0.012985,174 +0.012943,174 +0.012767,174 +0.012812,174 +0.012810,174 +0.012809,174 +0.012775,174 +0.014276,174 +0.012971,174 +0.012871,174 +0.012878,174 +0.012763,174 +0.012850,174 +0.012817,174 +0.012812,174 +0.014245,174 +0.012864,174 +0.013058,174 +0.012952,174 +0.012890,174 +0.012775,174 +0.013229,176 +0.014257,176 +0.013616,176 +0.013359,176 +0.013247,176 +0.013200,176 +0.013245,176 +0.013236,176 +0.013294,176 +0.014650,176 +0.013181,176 +0.013312,176 +0.013240,176 +0.013241,176 +0.013264,176 +0.013196,176 +0.014077,176 +0.013740,176 +0.013320,176 +0.013239,176 +0.013155,176 +0.013252,176 +0.013269,176 +0.013234,176 +0.015676,176 +0.013342,176 +0.013354,176 +0.013246,176 +0.013241,176 +0.013235,176 +0.013202,176 +0.014308,176 +0.013464,176 +0.013379,176 +0.013273,176 +0.013302,176 +0.013184,176 +0.013255,176 +0.013260,176 +0.014662,176 +0.013348,176 +0.013158,176 +0.013240,176 +0.013244,176 +0.013241,176 +0.013302,176 +0.014299,176 +0.013475,176 +0.013319,176 +0.013235,176 +0.013244,176 +0.013223,176 +0.013300,176 +0.013448,176 +0.014596,176 +0.013353,176 +0.013236,176 +0.013191,176 +0.013241,176 +0.013890,176 +0.013450,176 +0.014640,176 +0.013330,176 +0.013404,176 +0.013243,176 +0.013239,176 +0.013238,176 +0.013216,176 +0.013558,176 +0.014477,176 +0.013404,176 +0.013368,176 +0.013281,176 +0.013190,176 +0.013259,176 +0.013234,176 +0.014619,176 +0.013257,176 +0.013273,176 +0.013255,176 +0.013242,176 +0.013230,176 +0.013262,176 +0.013705,176 +0.014162,176 +0.013396,176 +0.013258,176 +0.013253,176 +0.013167,176 +0.013313,176 +0.013258,176 +0.014743,176 +0.013368,176 +0.013229,176 +0.013240,176 +0.013265,176 +0.013312,176 +0.013221,176 +0.014368,176 +0.014610,176 +0.014034,178 +0.013804,178 +0.013749,178 +0.013730,178 +0.013697,178 +0.013688,178 +0.015298,178 +0.013925,178 +0.013806,178 +0.013768,178 +0.013693,178 +0.013685,178 +0.013730,178 +0.015227,178 +0.013905,178 +0.013775,178 +0.013737,178 +0.013648,178 +0.013803,178 +0.013741,178 +0.015209,178 +0.013851,178 +0.013757,178 +0.013646,178 +0.013730,178 +0.013816,178 +0.013727,178 +0.014983,178 +0.013994,178 +0.013671,178 +0.013728,178 +0.013737,178 +0.013749,178 +0.013727,178 +0.014320,178 +0.014624,178 +0.013803,178 +0.013733,178 +0.013728,178 +0.013793,178 +0.013732,178 +0.013658,178 +0.015135,178 +0.013893,178 +0.013753,178 +0.013730,178 +0.013949,178 +0.014305,178 +0.013707,178 +0.015145,178 +0.013894,178 +0.013792,178 +0.013752,178 +0.013750,178 +0.013733,178 +0.013735,178 +0.015082,178 +0.013848,178 +0.013724,178 +0.013745,178 +0.013650,178 +0.013775,178 +0.013733,178 +0.014791,178 +0.014185,178 +0.013790,178 +0.013675,178 +0.013743,178 +0.013723,178 +0.013748,178 +0.013917,178 +0.016409,178 +0.013868,178 +0.013665,178 +0.013760,178 +0.013723,178 +0.013813,178 +0.013727,178 +0.015177,178 +0.013749,178 +0.013743,178 +0.013724,178 +0.013724,178 +0.013728,178 +0.013685,178 +0.015080,178 +0.013865,178 +0.013746,178 +0.013721,178 +0.013739,178 +0.013731,178 +0.013676,178 +0.015119,178 +0.013960,178 +0.013744,178 +0.013728,178 +0.013740,178 +0.013644,178 +0.013724,178 +0.014658,178 +0.014728,180 +0.014195,180 +0.014154,180 +0.014114,180 +0.014113,180 +0.014158,180 +0.015102,180 +0.014781,180 +0.014233,180 +0.014154,180 +0.014149,180 +0.014076,180 +0.014217,180 +0.014995,180 +0.014969,180 +0.014297,180 +0.014176,180 +0.014168,180 +0.014086,180 +0.014151,180 +0.014921,180 +0.014900,180 +0.014164,180 +0.014154,180 +0.014149,180 +0.014153,180 +0.014112,180 +0.014883,180 +0.014967,180 +0.014175,180 +0.014164,180 +0.014196,180 +0.014109,180 +0.014114,180 +0.014899,180 +0.015049,180 +0.014223,180 +0.014156,180 +0.014178,180 +0.014150,180 +0.014075,180 +0.015177,180 +0.015930,180 +0.014194,180 +0.014163,180 +0.014190,180 +0.014157,180 +0.014110,180 +0.014913,180 +0.014957,180 +0.014214,180 +0.014177,180 +0.014151,180 +0.014155,180 +0.014152,180 +0.014882,180 +0.014835,180 +0.014170,180 +0.014159,180 +0.014152,180 +0.014232,180 +0.014157,180 +0.015053,180 +0.014741,180 +0.014195,180 +0.014153,180 +0.014174,180 +0.014151,180 +0.014157,180 +0.015240,180 +0.014557,180 +0.014173,180 +0.014154,180 +0.014157,180 +0.014151,180 +0.014394,180 +0.015120,180 +0.014651,180 +0.014242,180 +0.014196,180 +0.014211,180 +0.014216,180 +0.014153,180 +0.015174,180 +0.014765,180 +0.014133,180 +0.014154,180 +0.014189,180 +0.014172,180 +0.014150,180 +0.015249,180 +0.014679,180 +0.014261,180 +0.014184,180 +0.014153,180 +0.014189,180 +0.014164,180 +0.015344,180 +0.014498,180 +0.014108,180 +0.014750,182 +0.014647,182 +0.014627,182 +0.014627,182 +0.016130,182 +0.014691,182 +0.014653,182 +0.014672,182 +0.014551,182 +0.014638,182 +0.014671,182 +0.017304,182 +0.014720,182 +0.014631,182 +0.014627,182 +0.014625,182 +0.014627,182 +0.015040,182 +0.015694,182 +0.014651,182 +0.014626,182 +0.014629,182 +0.014627,182 +0.014628,182 +0.015926,182 +0.014910,182 +0.014648,182 +0.014550,182 +0.014717,182 +0.014645,182 +0.014633,182 +0.016201,182 +0.014751,182 +0.014878,182 +0.014713,182 +0.014713,182 +0.014655,182 +0.014610,182 +0.016184,182 +0.014636,182 +0.014632,182 +0.014627,182 +0.014632,182 +0.014793,182 +0.015369,182 +0.015352,182 +0.014551,182 +0.014627,182 +0.014633,182 +0.014628,182 +0.014625,182 +0.016009,182 +0.014969,182 +0.014744,182 +0.014692,182 +0.014556,182 +0.014629,182 +0.014630,182 +0.016128,182 +0.015961,182 +0.014838,182 +0.014701,182 +0.014754,182 +0.014700,182 +0.014594,182 +0.016209,182 +0.014634,182 +0.014625,182 +0.014630,182 +0.014634,182 +0.014626,182 +0.015189,182 +0.015702,182 +0.014674,182 +0.014607,182 +0.014588,182 +0.014629,182 +0.014722,182 +0.016583,182 +0.015458,182 +0.014648,182 +0.014629,182 +0.014654,182 +0.014622,182 +0.014551,182 +0.016172,182 +0.014692,182 +0.014670,182 +0.014647,182 +0.014626,182 +0.014631,182 +0.014628,182 +0.016231,182 +0.014702,182 +0.014695,182 +0.014647,182 +0.014689,182 +0.014630,182 +0.015389,182 +0.015426,182 +0.015261,184 +0.015180,184 +0.015138,184 +0.015059,184 +0.015058,184 +0.016465,184 +0.015138,184 +0.015098,184 +0.015097,184 +0.015119,184 +0.015141,184 +0.015094,184 +0.016480,184 +0.015096,184 +0.015165,184 +0.015160,184 +0.015066,184 +0.015055,184 +0.016511,184 +0.015245,184 +0.015117,184 +0.015112,184 +0.015097,184 +0.015093,184 +0.015099,184 +0.016688,184 +0.015242,184 +0.015145,184 +0.015171,184 +0.015055,184 +0.015094,184 +0.015913,184 +0.016243,184 +0.016548,184 +0.016859,184 +0.016615,184 +0.016799,184 +0.017313,184 +0.016958,184 +0.016048,184 +0.016098,184 +0.015850,184 +0.015472,184 +0.015232,184 +0.015827,184 +0.015177,184 +0.015074,184 +0.016331,184 +0.017115,184 +0.016935,184 +0.016747,184 +0.016620,184 +0.016549,184 +0.016444,184 +0.016073,184 +0.016638,184 +0.016661,184 +0.017202,184 +0.016771,184 +0.016886,184 +0.016380,184 +0.016665,184 +0.016209,184 +0.016098,184 +0.015419,184 +0.015109,184 +0.015642,184 +0.017083,184 +0.016561,184 +0.015799,184 +0.015359,184 +0.015220,184 +0.015253,184 +0.016316,184 +0.017189,184 +0.016395,184 +0.016625,184 +0.016639,184 +0.016613,184 +0.016478,184 +0.016285,184 +0.016545,184 +0.016739,184 +0.017193,184 +0.018658,184 +0.016758,184 +0.016925,184 +0.016327,184 +0.015753,184 +0.016161,184 +0.017930,184 +0.016808,184 +0.016986,184 +0.016812,184 +0.018616,184 +0.017193,184 +0.017303,184 +0.019176,184 +0.018340,184 +0.019973,184 +0.020155,186 +0.020461,186 +0.018463,186 +0.019075,186 +0.024476,186 +0.022738,186 +0.020556,186 +0.019866,186 +0.017708,186 +0.018356,186 +0.017593,186 +0.018223,186 +0.019948,186 +0.020820,186 +0.022140,186 +0.017918,186 +0.019225,186 +0.019098,186 +0.019009,186 +0.022953,186 +0.017083,186 +0.018396,186 +0.017968,186 +0.017585,186 +0.016829,186 +0.016879,186 +0.016319,186 +0.016866,186 +0.018337,186 +0.018310,186 +0.023732,186 +0.018696,186 +0.019207,186 +0.019455,186 +0.018706,186 +0.017146,186 +0.016986,186 +0.017028,186 +0.019344,186 +0.019544,186 +0.017739,186 +0.017609,186 +0.017587,186 +0.017680,186 +0.017810,186 +0.017584,186 +0.017399,186 +0.018720,186 +0.017195,186 +0.017573,186 +0.017484,186 +0.018048,186 +0.021768,186 +0.016621,186 +0.017351,186 +0.016885,186 +0.016948,186 +0.017927,186 +0.017122,186 +0.017224,186 +0.017469,186 +0.017162,186 +0.017409,186 +0.017101,186 +0.017373,186 +0.016490,186 +0.017339,186 +0.017151,186 +0.017822,186 +0.017549,186 +0.017109,186 +0.016668,186 +0.016529,186 +0.016398,186 +0.017232,186 +0.019138,186 +0.017349,186 +0.016798,186 +0.016739,186 +0.017289,186 +0.016649,186 +0.017188,186 +0.016960,186 +0.016722,186 +0.017282,186 +0.016667,186 +0.016988,186 +0.016480,186 +0.016038,186 +0.015908,186 +0.015761,186 +0.015867,186 +0.019385,186 +0.017620,186 +0.018975,186 +0.017683,186 +0.016649,186 +0.017682,186 +0.017443,186 +0.017369,186 +0.017585,188 +0.017031,188 +0.016650,188 +0.016580,188 +0.016551,188 +0.016911,188 +0.017369,188 +0.017895,188 +0.020415,188 +0.021828,188 +0.020295,188 +0.020074,188 +0.020325,188 +0.018933,188 +0.016831,188 +0.016935,188 +0.016587,188 +0.016250,188 +0.016128,188 +0.016203,188 +0.016281,188 +0.016457,188 +0.016501,188 +0.016292,188 +0.016134,188 +0.017463,188 +0.016336,188 +0.016530,188 +0.016388,188 +0.016234,188 +0.016892,188 +0.021228,188 +0.018101,188 +0.018236,188 +0.019020,188 +0.022148,188 +0.028301,188 +0.030740,188 +0.028133,188 +0.030402,188 +0.030221,188 +0.021442,188 +0.026085,188 +0.021689,188 +0.021782,188 +0.019309,188 +0.018858,188 +0.016389,188 +0.016632,188 +0.019297,188 +0.017420,188 +0.018507,188 +0.016734,188 +0.017010,188 +0.017164,188 +0.017296,188 +0.019475,188 +0.018051,188 +0.016476,188 +0.018042,188 +0.016878,188 +0.016812,188 +0.018170,188 +0.017259,188 +0.016538,188 +0.016762,188 +0.017282,188 +0.017397,188 +0.022841,188 +0.018055,188 +0.016597,188 +0.016511,188 +0.016567,188 +0.016492,188 +0.018150,188 +0.017119,188 +0.016564,188 +0.017333,188 +0.016671,188 +0.016647,188 +0.016544,188 +0.016785,188 +0.016593,188 +0.017043,188 +0.016483,188 +0.016506,188 +0.020677,188 +0.016481,188 +0.016269,188 +0.016441,188 +0.016390,188 +0.016472,188 +0.020768,188 +0.016408,188 +0.016359,188 +0.016669,188 +0.016571,188 +0.017968,188 +0.019100,188 +0.016422,188 +0.019606,190 +0.018196,190 +0.017098,190 +0.017581,190 +0.017235,190 +0.016891,190 +0.017145,190 +0.017270,190 +0.017056,190 +0.021680,190 +0.020330,190 +0.019509,190 +0.017363,190 +0.017317,190 +0.017935,190 +0.017530,190 +0.017335,190 +0.018212,190 +0.017494,190 +0.017188,190 +0.017696,190 +0.016806,190 +0.016855,190 +0.017064,190 +0.017031,190 +0.017257,190 +0.017479,190 +0.016840,190 +0.016886,190 +0.017175,190 +0.016892,190 +0.016751,190 +0.017574,190 +0.016842,190 +0.016957,190 +0.017035,190 +0.016909,190 +0.017014,190 +0.017247,190 +0.016834,190 +0.016835,190 +0.017247,190 +0.017006,190 +0.017128,190 +0.018882,190 +0.018347,190 +0.017874,190 +0.017716,190 +0.016836,190 +0.017167,190 +0.016848,190 +0.016718,190 +0.016687,190 +0.016791,190 +0.016808,190 +0.017179,190 +0.016809,190 +0.016723,190 +0.016876,190 +0.017000,190 +0.016726,190 +0.017112,190 +0.016764,190 +0.016678,190 +0.016707,190 +0.016774,190 +0.016693,190 +0.017114,190 +0.016812,190 +0.016817,190 +0.016675,190 +0.016843,190 +0.016779,190 +0.017179,190 +0.016748,190 +0.016754,190 +0.017375,190 +0.017169,190 +0.018405,190 +0.018924,190 +0.018512,190 +0.018088,190 +0.017260,190 +0.017003,190 +0.016994,190 +0.018513,190 +0.017271,190 +0.017029,190 +0.017007,190 +0.016876,190 +0.016957,190 +0.019317,190 +0.019256,190 +0.018045,190 +0.017711,190 +0.017179,190 +0.021522,190 +0.019157,190 +0.022006,190 +0.022502,190 +0.024940,192 +0.020805,192 +0.018494,192 +0.018604,192 +0.018872,192 +0.020463,192 +0.019122,192 +0.018341,192 +0.018278,192 +0.018342,192 +0.021521,192 +0.021664,192 +0.023983,192 +0.022446,192 +0.020787,192 +0.020216,192 +0.021117,192 +0.021752,192 +0.020148,192 +0.020033,192 +0.019823,192 +0.019258,192 +0.018466,192 +0.018968,192 +0.019993,192 +0.024043,192 +0.020247,192 +0.020460,192 +0.022285,192 +0.032353,192 +0.020860,192 +0.019693,192 +0.019178,192 +0.019545,192 +0.019595,192 +0.022936,192 +0.019735,192 +0.020366,192 +0.020715,192 +0.020817,192 +0.019938,192 +0.019200,192 +0.019328,192 +0.019081,192 +0.019019,192 +0.024591,192 +0.020063,192 +0.023090,192 +0.020689,192 +0.025426,192 +0.024649,192 +0.022197,192 +0.023562,192 +0.025272,192 +0.021982,192 +0.019063,192 +0.020815,192 +0.018930,192 +0.019309,192 +0.021683,192 +0.018894,192 +0.018693,192 +0.018402,192 +0.018643,192 +0.018803,192 +0.018865,192 +0.018530,192 +0.018566,192 +0.018457,192 +0.019478,192 +0.019840,192 +0.019749,192 +0.021034,192 +0.020868,192 +0.023697,192 +0.019251,192 +0.019106,192 +0.021241,192 +0.019936,192 +0.020166,192 +0.019412,192 +0.019460,192 +0.019504,192 +0.019592,192 +0.019792,192 +0.019798,192 +0.019799,192 +0.019798,192 +0.021687,192 +0.020310,192 +0.020672,192 +0.020906,192 +0.020747,192 +0.020806,192 +0.020942,192 +0.022014,192 +0.020865,192 +0.020481,192 +0.021178,192 +0.020042,192 +0.019345,194 +0.020383,194 +0.034984,194 +0.031715,194 +0.019095,194 +0.019188,194 +0.019084,194 +0.019325,194 +0.018859,194 +0.019776,194 +0.018427,194 +0.018625,194 +0.018061,194 +0.018269,194 +0.018030,194 +0.018468,194 +0.017982,194 +0.018246,194 +0.018547,194 +0.019330,194 +0.019578,194 +0.019471,194 +0.020268,194 +0.019597,194 +0.019489,194 +0.019100,194 +0.019014,194 +0.019099,194 +0.018724,194 +0.018987,194 +0.018608,194 +0.018548,194 +0.018599,194 +0.018297,194 +0.018905,194 +0.018515,194 +0.018691,194 +0.018296,194 +0.018482,194 +0.018275,194 +0.018193,194 +0.017980,194 +0.018071,194 +0.018040,194 +0.017936,194 +0.019145,194 +0.019417,194 +0.019837,194 +0.020615,194 +0.020887,194 +0.019485,194 +0.018711,194 +0.018365,194 +0.019080,194 +0.018409,194 +0.018458,194 +0.018273,194 +0.017884,194 +0.017895,194 +0.018663,194 +0.019215,194 +0.019486,194 +0.019641,194 +0.019856,194 +0.019866,194 +0.019767,194 +0.020457,194 +0.019443,194 +0.019975,194 +0.019074,194 +0.018775,194 +0.019472,194 +0.020400,194 +0.020998,194 +0.020603,194 +0.020092,194 +0.019683,194 +0.020105,194 +0.018864,194 +0.018451,194 +0.017971,194 +0.018226,194 +0.017998,194 +0.017893,194 +0.018022,194 +0.017815,194 +0.017903,194 +0.018246,194 +0.019260,194 +0.019605,194 +0.019167,194 +0.019089,194 +0.019311,194 +0.019635,194 +0.019365,194 +0.019919,194 +0.020112,194 +0.019885,194 +0.019468,194 +0.019149,194 +0.020764,196 +0.021087,196 +0.020729,196 +0.023838,196 +0.024036,196 +0.019970,196 +0.019897,196 +0.020047,196 +0.019956,196 +0.019867,196 +0.019909,196 +0.021403,196 +0.021023,196 +0.021649,196 +0.020910,196 +0.020714,196 +0.021551,196 +0.021570,196 +0.021105,196 +0.019902,196 +0.019433,196 +0.021446,196 +0.021803,196 +0.020211,196 +0.019600,196 +0.018518,196 +0.019530,196 +0.020621,196 +0.021180,196 +0.020092,196 +0.019216,196 +0.019500,196 +0.021280,196 +0.021502,196 +0.020392,196 +0.020218,196 +0.019788,196 +0.019832,196 +0.019178,196 +0.019315,196 +0.018625,196 +0.018539,196 +0.019664,196 +0.019096,196 +0.019631,196 +0.019488,196 +0.019109,196 +0.019395,196 +0.019174,196 +0.019152,196 +0.018386,196 +0.018477,196 +0.018987,196 +0.018399,196 +0.019330,196 +0.019047,196 +0.018537,196 +0.018668,196 +0.018769,196 +0.018420,196 +0.018592,196 +0.018385,196 +0.018368,196 +0.018968,196 +0.018484,196 +0.018433,196 +0.018916,196 +0.018328,196 +0.018830,196 +0.018451,196 +0.018356,196 +0.018438,196 +0.018313,196 +0.018338,196 +0.018935,196 +0.018504,196 +0.018554,196 +0.018682,196 +0.018337,196 +0.018847,196 +0.019009,196 +0.018384,196 +0.019396,196 +0.018847,196 +0.018546,196 +0.018771,196 +0.018494,196 +0.018434,196 +0.018456,196 +0.018361,196 +0.019148,196 +0.021199,196 +0.019170,196 +0.018582,196 +0.018312,196 +0.018855,196 +0.023224,196 +0.019320,196 +0.023507,196 +0.021675,196 +0.020363,198 +0.021072,198 +0.020478,198 +0.019864,198 +0.022227,198 +0.020976,198 +0.019821,198 +0.019979,198 +0.019839,198 +0.021022,198 +0.020894,198 +0.019946,198 +0.020093,198 +0.024282,198 +0.022166,198 +0.020987,198 +0.021312,198 +0.020292,198 +0.019523,198 +0.019733,198 +0.019085,198 +0.019108,198 +0.018861,198 +0.020641,198 +0.022971,198 +0.023156,198 +0.022558,198 +0.023455,198 +0.021469,198 +0.020916,198 +0.021697,198 +0.021540,198 +0.021498,198 +0.022028,198 +0.023256,198 +0.021457,198 +0.021465,198 +0.020630,198 +0.021839,198 +0.020525,198 +0.020847,198 +0.020563,198 +0.020045,198 +0.020640,198 +0.020792,198 +0.020395,198 +0.019915,198 +0.019510,198 +0.019546,198 +0.018955,198 +0.019296,198 +0.018956,198 +0.018959,198 +0.019419,198 +0.021557,198 +0.024834,198 +0.020640,198 +0.019464,198 +0.019883,198 +0.020924,198 +0.020797,198 +0.019979,198 +0.020777,198 +0.020949,198 +0.020096,198 +0.020566,198 +0.020725,198 +0.020589,198 +0.020503,198 +0.021146,198 +0.020854,198 +0.020709,198 +0.020673,198 +0.021265,198 +0.020957,198 +0.020087,198 +0.020293,198 +0.020254,198 +0.020485,198 +0.020327,198 +0.019938,198 +0.019418,198 +0.020064,198 +0.019959,198 +0.020235,198 +0.019863,198 +0.019784,198 +0.019847,198 +0.019759,198 +0.019440,198 +0.019175,198 +0.019037,198 +0.019055,198 +0.019500,198 +0.018947,198 +0.018935,198 +0.018942,198 +0.019043,198 +0.019386,198 +0.018894,198 +0.019847,200 +0.019664,200 +0.019531,200 +0.019984,200 +0.019496,200 +0.019535,200 +0.019523,200 +0.019396,200 +0.019900,200 +0.019467,200 +0.019590,200 +0.019588,200 +0.019606,200 +0.019987,200 +0.020046,200 +0.019704,200 +0.019461,200 +0.020299,200 +0.020112,200 +0.019736,200 +0.019486,200 +0.019468,200 +0.019677,200 +0.019764,200 +0.020011,200 +0.019543,200 +0.019450,200 +0.019493,200 +0.019740,200 +0.019989,200 +0.019563,200 +0.019551,200 +0.019500,200 +0.019565,200 +0.020163,200 +0.019851,200 +0.019784,200 +0.019433,200 +0.019716,200 +0.020197,200 +0.019575,200 +0.019520,200 +0.019471,200 +0.019425,200 +0.020289,200 +0.019476,200 +0.019521,200 +0.019553,200 +0.019613,200 +0.020180,200 +0.019593,200 +0.019575,200 +0.019641,200 +0.019589,200 +0.020003,200 +0.019793,200 +0.019558,200 +0.019446,200 +0.019542,200 +0.019870,200 +0.019855,200 +0.020083,200 +0.019634,200 +0.019726,200 +0.020650,200 +0.019880,200 +0.019689,200 +0.020130,200 +0.019559,200 +0.019814,200 +0.019751,200 +0.019683,200 +0.019536,200 +0.019511,200 +0.019739,200 +0.019761,200 +0.019844,200 +0.019614,200 +0.019510,200 +0.019615,200 +0.019933,200 +0.019595,200 +0.019627,200 +0.019514,200 +0.019771,200 +0.019989,200 +0.019759,200 +0.019605,200 +0.019446,200 +0.019555,200 +0.020018,200 +0.019672,200 +0.019454,200 +0.019554,200 +0.019475,200 +0.019982,200 +0.019757,200 +0.019448,200 +0.019456,200 +0.019556,200 +0.020752,202 +0.020315,202 +0.020130,202 +0.020352,202 +0.020185,202 +0.020527,202 +0.020467,202 +0.020032,202 +0.020118,202 +0.020047,202 +0.020468,202 +0.020382,202 +0.020043,202 +0.020195,202 +0.020701,202 +0.022772,202 +0.020800,202 +0.020752,202 +0.020241,202 +0.020193,202 +0.020553,202 +0.021345,202 +0.021025,202 +0.021084,202 +0.021334,202 +0.021501,202 +0.021238,202 +0.020361,202 +0.020826,202 +0.020559,202 +0.021365,202 +0.021705,202 +0.021215,202 +0.020839,202 +0.021010,202 +0.024230,202 +0.020649,202 +0.020775,202 +0.020427,202 +0.021548,202 +0.020331,202 +0.020407,202 +0.020270,202 +0.020106,202 +0.020695,202 +0.022353,202 +0.020113,202 +0.020133,202 +0.020351,202 +0.020511,202 +0.020268,202 +0.020175,202 +0.020279,202 +0.020470,202 +0.020585,202 +0.020178,202 +0.020050,202 +0.021290,202 +0.020567,202 +0.020655,202 +0.020220,202 +0.020202,202 +0.020527,202 +0.022670,202 +0.021468,202 +0.020876,202 +0.022385,202 +0.032710,202 +0.039798,202 +0.023425,202 +0.021605,202 +0.023522,202 +0.021182,202 +0.020169,202 +0.020112,202 +0.020041,202 +0.021666,202 +0.020232,202 +0.020173,202 +0.021271,202 +0.022316,202 +0.022846,202 +0.021547,202 +0.023117,202 +0.022271,202 +0.023128,202 +0.024963,202 +0.022957,202 +0.025744,202 +0.023609,202 +0.021734,202 +0.021805,202 +0.021457,202 +0.021720,202 +0.024516,202 +0.022754,202 +0.023032,202 +0.021576,202 +0.022953,202 +0.020970,202 +0.021015,204 +0.020775,204 +0.020687,204 +0.025122,204 +0.020993,204 +0.020820,204 +0.020792,204 +0.020859,204 +0.030238,204 +0.025164,204 +0.026316,204 +0.023593,204 +0.025047,204 +0.023127,204 +0.022618,204 +0.022424,204 +0.022037,204 +0.022084,204 +0.021993,204 +0.022581,204 +0.021904,204 +0.021925,204 +0.022160,204 +0.022226,204 +0.022588,204 +0.028373,204 +0.022144,204 +0.023337,204 +0.023259,204 +0.022549,204 +0.023086,204 +0.023397,204 +0.022853,204 +0.028375,204 +0.023074,204 +0.022656,204 +0.022478,204 +0.022516,204 +0.025986,204 +0.020992,204 +0.020852,204 +0.020867,204 +0.025466,204 +0.021012,204 +0.020711,204 +0.020913,204 +0.021363,204 +0.027080,204 +0.022212,204 +0.021433,204 +0.020768,204 +0.025439,204 +0.021289,204 +0.023418,204 +0.026657,204 +0.022670,204 +0.023941,204 +0.023481,204 +0.025152,204 +0.022343,204 +0.023359,204 +0.023745,204 +0.023200,204 +0.022828,204 +0.023002,204 +0.022384,204 +0.022177,204 +0.022080,204 +0.021990,204 +0.022732,204 +0.022659,204 +0.023318,204 +0.022884,204 +0.022393,204 +0.023143,204 +0.023760,204 +0.024075,204 +0.022287,204 +0.022691,204 +0.021653,204 +0.021537,204 +0.020961,204 +0.022480,204 +0.020901,204 +0.022064,204 +0.024598,204 +0.028897,204 +0.024398,204 +0.022677,204 +0.022657,204 +0.022089,204 +0.021633,204 +0.022691,204 +0.024345,204 +0.022917,204 +0.024167,204 +0.022165,204 +0.022049,204 +0.022787,204 +0.024235,204 +0.023591,206 +0.021978,206 +0.021865,206 +0.021844,206 +0.022636,206 +0.022349,206 +0.021367,206 +0.021330,206 +0.022050,206 +0.021592,206 +0.021232,206 +0.021594,206 +0.022438,206 +0.022745,206 +0.022449,206 +0.021736,206 +0.021858,206 +0.022040,206 +0.021889,206 +0.021391,206 +0.021359,206 +0.021393,206 +0.021920,206 +0.021935,206 +0.022188,206 +0.021793,206 +0.021650,206 +0.022413,206 +0.021509,206 +0.021635,206 +0.022036,206 +0.023080,206 +0.021413,206 +0.021489,206 +0.021287,206 +0.021372,206 +0.022243,206 +0.022011,206 +0.021568,206 +0.022526,206 +0.022047,206 +0.021898,206 +0.021383,206 +0.021404,206 +0.021395,206 +0.021860,206 +0.021563,206 +0.021460,206 +0.021246,206 +0.021360,206 +0.022058,206 +0.021339,206 +0.022831,206 +0.021602,206 +0.021552,206 +0.021860,206 +0.021494,206 +0.021493,206 +0.021341,206 +0.022150,206 +0.023089,206 +0.023404,206 +0.023811,206 +0.023137,206 +0.023687,206 +0.023525,206 +0.022122,206 +0.021608,206 +0.022198,206 +0.021359,206 +0.022185,206 +0.021756,206 +0.021619,206 +0.021804,206 +0.021404,206 +0.021511,206 +0.021431,206 +0.022140,206 +0.021525,206 +0.021277,206 +0.021323,206 +0.021513,206 +0.022128,206 +0.021489,206 +0.023350,206 +0.021501,206 +0.022080,206 +0.021529,206 +0.021403,206 +0.021514,206 +0.021426,206 +0.022244,206 +0.021401,206 +0.021319,206 +0.022172,206 +0.022706,206 +0.022246,206 +0.021965,206 +0.021504,206 +0.022424,206 +0.023821,208 +0.023756,208 +0.022642,208 +0.025208,208 +0.023727,208 +0.022863,208 +0.022806,208 +0.022508,208 +0.022684,208 +0.022997,208 +0.023056,208 +0.023113,208 +0.022604,208 +0.023785,208 +0.029033,208 +0.024733,208 +0.024317,208 +0.024554,208 +0.024225,208 +0.025887,208 +0.024642,208 +0.025190,208 +0.024142,208 +0.024546,208 +0.022975,208 +0.023746,208 +0.023763,208 +0.026540,208 +0.024444,208 +0.023780,208 +0.023109,208 +0.022683,208 +0.022263,208 +0.021896,208 +0.022531,208 +0.025044,208 +0.023229,208 +0.022732,208 +0.023278,208 +0.022880,208 +0.024107,208 +0.024268,208 +0.024868,208 +0.025449,208 +0.024925,208 +0.024397,208 +0.025436,208 +0.025071,208 +0.025322,208 +0.024356,208 +0.026775,208 +0.024093,208 +0.026201,208 +0.025142,208 +0.027131,208 +0.024924,208 +0.025702,208 +0.027040,208 +0.024313,208 +0.024575,208 +0.024335,208 +0.024293,208 +0.023861,208 +0.023234,208 +0.022936,208 +0.022000,208 +0.022155,208 +0.023588,208 +0.024183,208 +0.022588,208 +0.021907,208 +0.022326,208 +0.022018,208 +0.021848,208 +0.021839,208 +0.022088,208 +0.022409,208 +0.021985,208 +0.021948,208 +0.021927,208 +0.022259,208 +0.021915,208 +0.022055,208 +0.021779,208 +0.021774,208 +0.022601,208 +0.022210,208 +0.021924,208 +0.022733,208 +0.023556,208 +0.025291,208 +0.024384,208 +0.024610,208 +0.028181,208 +0.024314,208 +0.024542,208 +0.024557,208 +0.023488,208 +0.023457,208 +0.023533,208 +0.024409,210 +0.024628,210 +0.023856,210 +0.023852,210 +0.023106,210 +0.023128,210 +0.023243,210 +0.023334,210 +0.022987,210 +0.022623,210 +0.022790,210 +0.022955,210 +0.022740,210 +0.022705,210 +0.022813,210 +0.022882,210 +0.023087,210 +0.022539,210 +0.022487,210 +0.023094,210 +0.022589,210 +0.022518,210 +0.022693,210 +0.022863,210 +0.022825,210 +0.022861,210 +0.022547,210 +0.022669,210 +0.022950,210 +0.022901,210 +0.023057,210 +0.022649,210 +0.023103,210 +0.022778,210 +0.022605,210 +0.023652,210 +0.024703,210 +0.025658,210 +0.024492,210 +0.023719,210 +0.024246,210 +0.024166,210 +0.024462,210 +0.023157,210 +0.023018,210 +0.024428,210 +0.026391,210 +0.024282,210 +0.023907,210 +0.025583,210 +0.023684,210 +0.023131,210 +0.022876,210 +0.024564,210 +0.022791,210 +0.022825,210 +0.022587,210 +0.024037,210 +0.023186,210 +0.022641,210 +0.022504,210 +0.022791,210 +0.024149,210 +0.022694,210 +0.022492,210 +0.022470,210 +0.024329,210 +0.023516,210 +0.022771,210 +0.022512,210 +0.023819,210 +0.023292,210 +0.022586,210 +0.022538,210 +0.022760,210 +0.023383,210 +0.023399,210 +0.022960,210 +0.022517,210 +0.023320,210 +0.022742,210 +0.022517,210 +0.022731,210 +0.022745,210 +0.023166,210 +0.023166,210 +0.022732,210 +0.023988,210 +0.024082,210 +0.024657,210 +0.024366,210 +0.027884,210 +0.024597,210 +0.025377,210 +0.023830,210 +0.023895,210 +0.024427,210 +0.023678,210 +0.025564,210 +0.024984,210 +0.028780,212 +0.029890,212 +0.027592,212 +0.026942,212 +0.030883,212 +0.027178,212 +0.028512,212 +0.039651,212 +0.028242,212 +0.028991,212 +0.026668,212 +0.027360,212 +0.026401,212 +0.029501,212 +0.026908,212 +0.027813,212 +0.027291,212 +0.026234,212 +0.027539,212 +0.028791,212 +0.027450,212 +0.025350,212 +0.023689,212 +0.023496,212 +0.023258,212 +0.023522,212 +0.024155,212 +0.024813,212 +0.026071,212 +0.027582,212 +0.025773,212 +0.024817,212 +0.023433,212 +0.023553,212 +0.023926,212 +0.024485,212 +0.024293,212 +0.024646,212 +0.029259,212 +0.025543,212 +0.024065,212 +0.024499,212 +0.030856,212 +0.027562,212 +0.024638,212 +0.023682,212 +0.023831,212 +0.023276,212 +0.023219,212 +0.023363,212 +0.023826,212 +0.023578,212 +0.023316,212 +0.023402,212 +0.023999,212 +0.023216,212 +0.023572,212 +0.023125,212 +0.023700,212 +0.025048,212 +0.024970,212 +0.024854,212 +0.024401,212 +0.025642,212 +0.025771,212 +0.025708,212 +0.024839,212 +0.025416,212 +0.023692,212 +0.023449,212 +0.024185,212 +0.024160,212 +0.023241,212 +0.025328,212 +0.023427,212 +0.024180,212 +0.023727,212 +0.023739,212 +0.023470,212 +0.023785,212 +0.023785,212 +0.026845,212 +0.026689,212 +0.032715,212 +0.027248,212 +0.026124,212 +0.025759,212 +0.025625,212 +0.024113,212 +0.023480,212 +0.023333,212 +0.023605,212 +0.023243,212 +0.023336,212 +0.023319,212 +0.023747,212 +0.023551,212 +0.023361,212 +0.024556,212 +0.024892,212 +0.026700,214 +0.025213,214 +0.026438,214 +0.025136,214 +0.026425,214 +0.025937,214 +0.025493,214 +0.024801,214 +0.024645,214 +0.025036,214 +0.024143,214 +0.024138,214 +0.024073,214 +0.023911,214 +0.024143,214 +0.024270,214 +0.024084,214 +0.024074,214 +0.023962,214 +0.024107,214 +0.024537,214 +0.024517,214 +0.024748,214 +0.024388,214 +0.024160,214 +0.024152,214 +0.023880,214 +0.024127,214 +0.024769,214 +0.024106,214 +0.023967,214 +0.024425,214 +0.025422,214 +0.024347,214 +0.024800,214 +0.023930,214 +0.024677,214 +0.023916,214 +0.024202,214 +0.023872,214 +0.024607,214 +0.023927,214 +0.023970,214 +0.024261,214 +0.025395,214 +0.024604,214 +0.024098,214 +0.024544,214 +0.024544,214 +0.024166,214 +0.023802,214 +0.023982,214 +0.024028,214 +0.024306,214 +0.024041,214 +0.024064,214 +0.024016,214 +0.024493,214 +0.024140,214 +0.023797,214 +0.023974,214 +0.024329,214 +0.023998,214 +0.023922,214 +0.023908,214 +0.024607,214 +0.023883,214 +0.024193,214 +0.024173,214 +0.024611,214 +0.023901,214 +0.023930,214 +0.023932,214 +0.024221,214 +0.024181,214 +0.023771,214 +0.024193,214 +0.023987,214 +0.024391,214 +0.023819,214 +0.023993,214 +0.023855,214 +0.024511,214 +0.023991,214 +0.023807,214 +0.024126,214 +0.024321,214 +0.024102,214 +0.023873,214 +0.023921,214 +0.024535,214 +0.024155,214 +0.023932,214 +0.024392,214 +0.024515,214 +0.023947,214 +0.024139,214 +0.023944,214 +0.027535,214 +0.025248,214 +0.025484,216 +0.025123,216 +0.030448,216 +0.025789,216 +0.024894,216 +0.025904,216 +0.026197,216 +0.024432,216 +0.024402,216 +0.024708,216 +0.026282,216 +0.024615,216 +0.024535,216 +0.024753,216 +0.026081,216 +0.024561,216 +0.024475,216 +0.024744,216 +0.025945,216 +0.024761,216 +0.024542,216 +0.024724,216 +0.025159,216 +0.024840,216 +0.024601,216 +0.024741,216 +0.025042,216 +0.024965,216 +0.024499,216 +0.024812,216 +0.024926,216 +0.024801,216 +0.024435,216 +0.024676,216 +0.024981,216 +0.025004,216 +0.024671,216 +0.024859,216 +0.025062,216 +0.024994,216 +0.024513,216 +0.024685,216 +0.024627,216 +0.025029,216 +0.024553,216 +0.024694,216 +0.024752,216 +0.024954,216 +0.024574,216 +0.024582,216 +0.024523,216 +0.025109,216 +0.024530,216 +0.024503,216 +0.024665,216 +0.024862,216 +0.024782,216 +0.024510,216 +0.024871,216 +0.024840,216 +0.024585,216 +0.024626,216 +0.024589,216 +0.025097,216 +0.024512,216 +0.024515,216 +0.024539,216 +0.025020,216 +0.024724,216 +0.025950,216 +0.025361,216 +0.024966,216 +0.024595,216 +0.024620,216 +0.024548,216 +0.024962,216 +0.024853,216 +0.024712,216 +0.025908,216 +0.024977,216 +0.024504,216 +0.024641,216 +0.024624,216 +0.024878,216 +0.024699,216 +0.024645,216 +0.024614,216 +0.024994,216 +0.024638,216 +0.024640,216 +0.024676,216 +0.024891,216 +0.024802,216 +0.024641,216 +0.024596,216 +0.025361,216 +0.024752,216 +0.024759,216 +0.024553,216 +0.025133,216 +0.026054,218 +0.025362,218 +0.025420,218 +0.025677,218 +0.025630,218 +0.025347,218 +0.025488,218 +0.025886,218 +0.025560,218 +0.025564,218 +0.025548,218 +0.025869,218 +0.025400,218 +0.025229,218 +0.025425,218 +0.025760,218 +0.025523,218 +0.025417,218 +0.025613,218 +0.025950,218 +0.025742,218 +0.026214,218 +0.025615,218 +0.025978,218 +0.025597,218 +0.025436,218 +0.025336,218 +0.025929,218 +0.025384,218 +0.025450,218 +0.025279,218 +0.025758,218 +0.026162,218 +0.026038,218 +0.025452,218 +0.025823,218 +0.025876,218 +0.025534,218 +0.025492,218 +0.025908,218 +0.025268,218 +0.025463,218 +0.025701,218 +0.025900,218 +0.025401,218 +0.025399,218 +0.025506,218 +0.026239,218 +0.025726,218 +0.025523,218 +0.025512,218 +0.025693,218 +0.025337,218 +0.025391,218 +0.025715,218 +0.025980,218 +0.025722,218 +0.025406,218 +0.025888,218 +0.025402,218 +0.025444,218 +0.025225,218 +0.025808,218 +0.025480,218 +0.025621,218 +0.025296,218 +0.025849,218 +0.025335,218 +0.025513,218 +0.025507,218 +0.025734,218 +0.025532,218 +0.025320,218 +0.025351,218 +0.026005,218 +0.025512,218 +0.025464,218 +0.025527,218 +0.025952,218 +0.025491,218 +0.025561,218 +0.025331,218 +0.026120,218 +0.025413,218 +0.025770,218 +0.025433,218 +0.026001,218 +0.025613,218 +0.030177,218 +0.025411,218 +0.025951,218 +0.025443,218 +0.025476,218 +0.025370,218 +0.025936,218 +0.025675,218 +0.025550,218 +0.025630,218 +0.025618,218 +0.025579,218 +0.026034,220 +0.026495,220 +0.026471,220 +0.026135,220 +0.026024,220 +0.026502,220 +0.026192,220 +0.026208,220 +0.025793,220 +0.026485,220 +0.026102,220 +0.026000,220 +0.025925,220 +0.026730,220 +0.026285,220 +0.026114,220 +0.026022,220 +0.026625,220 +0.026283,220 +0.025947,220 +0.026193,220 +0.026647,220 +0.026127,220 +0.026263,220 +0.026584,220 +0.026220,220 +0.026227,220 +0.025974,220 +0.026622,220 +0.026000,220 +0.026058,220 +0.025875,220 +0.026576,220 +0.026332,220 +0.026333,220 +0.026040,220 +0.026581,220 +0.026081,220 +0.025933,220 +0.025890,220 +0.026702,220 +0.026128,220 +0.026023,220 +0.026261,220 +0.026445,220 +0.026108,220 +0.025919,220 +0.026601,220 +0.026105,220 +0.026200,220 +0.025909,220 +0.026559,220 +0.026029,220 +0.026357,220 +0.025926,220 +0.026565,220 +0.026243,220 +0.026013,220 +0.026061,220 +0.026618,220 +0.026076,220 +0.026005,220 +0.026074,220 +0.026654,220 +0.027963,220 +0.026178,220 +0.026506,220 +0.026037,220 +0.026183,220 +0.025942,220 +0.026730,220 +0.026153,220 +0.026348,220 +0.025951,220 +0.026421,220 +0.026054,220 +0.026047,220 +0.025945,220 +0.026649,220 +0.026028,220 +0.026105,220 +0.025931,220 +0.026659,220 +0.026037,220 +0.025900,220 +0.026170,220 +0.026410,220 +0.027071,220 +0.029181,220 +0.029791,220 +0.032931,220 +0.029965,220 +0.028955,220 +0.028804,220 +0.028369,220 +0.033877,220 +0.035271,220 +0.029037,220 +0.030304,220 +0.028764,220 +0.032144,222 +0.030095,222 +0.029826,222 +0.030025,222 +0.030439,222 +0.029537,222 +0.030335,222 +0.030394,222 +0.031119,222 +0.030428,222 +0.029719,222 +0.030357,222 +0.030121,222 +0.030463,222 +0.030936,222 +0.029935,222 +0.030507,222 +0.030769,222 +0.030753,222 +0.031559,222 +0.030556,222 +0.028491,222 +0.038898,222 +0.031032,222 +0.032999,222 +0.030822,222 +0.031671,222 +0.027785,222 +0.028481,222 +0.029536,222 +0.028762,222 +0.029051,222 +0.028534,222 +0.028510,222 +0.028585,222 +0.028222,222 +0.027511,222 +0.026921,222 +0.027167,222 +0.028879,222 +0.029678,222 +0.029246,222 +0.028604,222 +0.027927,222 +0.027112,222 +0.026937,222 +0.027582,222 +0.027922,222 +0.028084,222 +0.027279,222 +0.032112,222 +0.028924,222 +0.028764,222 +0.028468,222 +0.028902,222 +0.029415,222 +0.028632,222 +0.028597,222 +0.028101,222 +0.027938,222 +0.027737,222 +0.027592,222 +0.027508,222 +0.026710,222 +0.027587,222 +0.027275,222 +0.026938,222 +0.026820,222 +0.027447,222 +0.026860,222 +0.027257,222 +0.027210,222 +0.027288,222 +0.026897,222 +0.026723,222 +0.027392,222 +0.027271,222 +0.026700,222 +0.027218,222 +0.027228,222 +0.026802,222 +0.026738,222 +0.026919,222 +0.027479,222 +0.026767,222 +0.027356,222 +0.028218,222 +0.027190,222 +0.026627,222 +0.026783,222 +0.029107,222 +0.027437,222 +0.027101,222 +0.027245,222 +0.027957,222 +0.027147,222 +0.026625,222 +0.027619,222 +0.026972,222 +0.026861,222 +0.030481,224 +0.031907,224 +0.030276,224 +0.030199,224 +0.030781,224 +0.030660,224 +0.029803,224 +0.029641,224 +0.030029,224 +0.030143,224 +0.030204,224 +0.029160,224 +0.028092,224 +0.027552,224 +0.028139,224 +0.027974,224 +0.027323,224 +0.027517,224 +0.028085,224 +0.030571,224 +0.030403,224 +0.029997,224 +0.028308,224 +0.027460,224 +0.028766,224 +0.029718,224 +0.028819,224 +0.029245,224 +0.031629,224 +0.032029,224 +0.030914,224 +0.030517,224 +0.030474,224 +0.030768,224 +0.031882,224 +0.031387,224 +0.030420,224 +0.031337,224 +0.030044,224 +0.034327,224 +0.030854,224 +0.030328,224 +0.033406,224 +0.031817,224 +0.030631,224 +0.032101,224 +0.033730,224 +0.029826,224 +0.031530,224 +0.031753,224 +0.033048,224 +0.032152,224 +0.030505,224 +0.029881,224 +0.031639,224 +0.029774,224 +0.028924,224 +0.028632,224 +0.027792,224 +0.029400,224 +0.030336,224 +0.030603,224 +0.028470,224 +0.028010,224 +0.027968,224 +0.027848,224 +0.034007,224 +0.034008,224 +0.032426,224 +0.031746,224 +0.038141,224 +0.032608,224 +0.031625,224 +0.034657,224 +0.038820,224 +0.033090,224 +0.033139,224 +0.031559,224 +0.032271,224 +0.030568,224 +0.032382,224 +0.030899,224 +0.030876,224 +0.031431,224 +0.032091,224 +0.030831,224 +0.033164,224 +0.031260,224 +0.032525,224 +0.030558,224 +0.031484,224 +0.032766,224 +0.040871,224 +0.034256,224 +0.029736,224 +0.030002,224 +0.030190,224 +0.031873,224 +0.035653,224 +0.030355,224 +0.038359,226 +0.032737,226 +0.032086,226 +0.031910,226 +0.033470,226 +0.035968,226 +0.035538,226 +0.031602,226 +0.031934,226 +0.033544,226 +0.031603,226 +0.032140,226 +0.030537,226 +0.029187,226 +0.033465,226 +0.032267,226 +0.028616,226 +0.029906,226 +0.030404,226 +0.031123,226 +0.030498,226 +0.029185,226 +0.029922,226 +0.029873,226 +0.029993,226 +0.029503,226 +0.029013,226 +0.029772,226 +0.029598,226 +0.029569,226 +0.029438,226 +0.029786,226 +0.029251,226 +0.029219,226 +0.029285,226 +0.028921,226 +0.029585,226 +0.029455,226 +0.030155,226 +0.037745,226 +0.048594,226 +0.035934,226 +0.029589,226 +0.030131,226 +0.031797,226 +0.032539,226 +0.037528,226 +0.030358,226 +0.030639,226 +0.033117,226 +0.030044,226 +0.032242,226 +0.055458,226 +0.031261,226 +0.030087,226 +0.030046,226 +0.030232,226 +0.029933,226 +0.033404,226 +0.031345,226 +0.029815,226 +0.034788,226 +0.030248,226 +0.031458,226 +0.030393,226 +0.029576,226 +0.034623,226 +0.031584,226 +0.030099,226 +0.032214,226 +0.038271,226 +0.053570,226 +0.032201,226 +0.037901,226 +0.032488,226 +0.040133,226 +0.047461,226 +0.054163,226 +0.034901,226 +0.029900,226 +0.029762,226 +0.033021,226 +0.033003,226 +0.038823,226 +0.037308,226 +0.032131,226 +0.034172,226 +0.033802,226 +0.030919,226 +0.031852,226 +0.033025,226 +0.031556,226 +0.032073,226 +0.033406,226 +0.033584,226 +0.032928,226 +0.038199,226 +0.033780,226 +0.038584,226 +0.055719,226 +0.058413,228 +0.035285,228 +0.035209,228 +0.037280,228 +0.033502,228 +0.032071,228 +0.035548,228 +0.034351,228 +0.036300,228 +0.033368,228 +0.032850,228 +0.034856,228 +0.031111,228 +0.031256,228 +0.032246,228 +0.032399,228 +0.030678,228 +0.032127,228 +0.034021,228 +0.033264,228 +0.035448,228 +0.033460,228 +0.032239,228 +0.034237,228 +0.033503,228 +0.035946,228 +0.038068,228 +0.037110,228 +0.032372,228 +0.034622,228 +0.043915,228 +0.038023,228 +0.032146,228 +0.033678,228 +0.035175,228 +0.039960,228 +0.038647,228 +0.032987,228 +0.034119,228 +0.031473,228 +0.034447,228 +0.037187,228 +0.034195,228 +0.053888,228 +0.057387,228 +0.041434,228 +0.035605,228 +0.037209,228 +0.038886,228 +0.038520,228 +0.037813,228 +0.038613,228 +0.037488,228 +0.035828,228 +0.055271,228 +0.044974,228 +0.036878,228 +0.033910,228 +0.040586,228 +0.034270,228 +0.035660,228 +0.037039,228 +0.035461,228 +0.033405,228 +0.034598,228 +0.033075,228 +0.031569,228 +0.029700,228 +0.028999,228 +0.028899,228 +0.030214,228 +0.029377,228 +0.029040,228 +0.028972,228 +0.030507,228 +0.030097,228 +0.029211,228 +0.031429,228 +0.031037,228 +0.030696,228 +0.032641,228 +0.030338,228 +0.030568,228 +0.035138,228 +0.033369,228 +0.033579,228 +0.032370,228 +0.033078,228 +0.033028,228 +0.036455,228 +0.031926,228 +0.037841,228 +0.043416,228 +0.034424,228 +0.035560,228 +0.035623,228 +0.033878,228 +0.034861,228 +0.040343,228 +0.031714,228 +0.031521,230 +0.032262,230 +0.031759,230 +0.031238,230 +0.040024,230 +0.030795,230 +0.030423,230 +0.037331,230 +0.034220,230 +0.038911,230 +0.033386,230 +0.030560,230 +0.032715,230 +0.032480,230 +0.032481,230 +0.032610,230 +0.031889,230 +0.029772,230 +0.031411,230 +0.036283,230 +0.035074,230 +0.031736,230 +0.032945,230 +0.033298,230 +0.035190,230 +0.035525,230 +0.033094,230 +0.030818,230 +0.030266,230 +0.030043,230 +0.033915,230 +0.033520,230 +0.043449,230 +0.031992,230 +0.032614,230 +0.030324,230 +0.029697,230 +0.031615,230 +0.029970,230 +0.029960,230 +0.030578,230 +0.030815,230 +0.029851,230 +0.029909,230 +0.031756,230 +0.030288,230 +0.029887,230 +0.031984,230 +0.030395,230 +0.030012,230 +0.031443,230 +0.030140,230 +0.029813,230 +0.029760,230 +0.030528,230 +0.031063,230 +0.030089,230 +0.030302,230 +0.031332,230 +0.030670,230 +0.030580,230 +0.030771,230 +0.029953,230 +0.029818,230 +0.030290,230 +0.029702,230 +0.029878,230 +0.030488,230 +0.029758,230 +0.029761,230 +0.030089,230 +0.029880,230 +0.029779,230 +0.029914,230 +0.030102,230 +0.030568,230 +0.029937,230 +0.040401,230 +0.031918,230 +0.033614,230 +0.033388,230 +0.031643,230 +0.033828,230 +0.033263,230 +0.032154,230 +0.037540,230 +0.031902,230 +0.031859,230 +0.031949,230 +0.032026,230 +0.033004,230 +0.033935,230 +0.032172,230 +0.030865,230 +0.034507,230 +0.031688,230 +0.030815,230 +0.031229,230 +0.032014,230 +0.031126,230 +0.032550,232 +0.031897,232 +0.031908,232 +0.035073,232 +0.038418,232 +0.041864,232 +0.035232,232 +0.033638,232 +0.037859,232 +0.036304,232 +0.041679,232 +0.037868,232 +0.035952,232 +0.034724,232 +0.035198,232 +0.037757,232 +0.048921,232 +0.045694,232 +0.034858,232 +0.034677,232 +0.037713,232 +0.035391,232 +0.034319,232 +0.035481,232 +0.031987,232 +0.032051,232 +0.036022,232 +0.032238,232 +0.032866,232 +0.036448,232 +0.037238,232 +0.036668,232 +0.034088,232 +0.036922,232 +0.035981,232 +0.035254,232 +0.040008,232 +0.036387,232 +0.036067,232 +0.035025,232 +0.040029,232 +0.035266,232 +0.035036,232 +0.033987,232 +0.033387,232 +0.033578,232 +0.035668,232 +0.033234,232 +0.032961,232 +0.044879,232 +0.034288,232 +0.036545,232 +0.037218,232 +0.060757,232 +0.052725,232 +0.059088,232 +0.046550,232 +0.035530,232 +0.037320,232 +0.035810,232 +0.037426,232 +0.038875,232 +0.039483,232 +0.036936,232 +0.039523,232 +0.035185,232 +0.036760,232 +0.039975,232 +0.033352,232 +0.034196,232 +0.038098,232 +0.035772,232 +0.034154,232 +0.046065,232 +0.036488,232 +0.036674,232 +0.032738,232 +0.040295,232 +0.034094,232 +0.032441,232 +0.034736,232 +0.039548,232 +0.043287,232 +0.035976,232 +0.034000,232 +0.039252,232 +0.036005,232 +0.035834,232 +0.038083,232 +0.042782,232 +0.034514,232 +0.036371,232 +0.037417,232 +0.036355,232 +0.035273,232 +0.034276,232 +0.034102,232 +0.034029,232 +0.032980,232 +0.033573,232 +0.038926,234 +0.040618,234 +0.040820,234 +0.037968,234 +0.038272,234 +0.042271,234 +0.049123,234 +0.034518,234 +0.038881,234 +0.036649,234 +0.034415,234 +0.036345,234 +0.042409,234 +0.046327,234 +0.040199,234 +0.035942,234 +0.033875,234 +0.034114,234 +0.032950,234 +0.034286,234 +0.033797,234 +0.033200,234 +0.034005,234 +0.034584,234 +0.033112,234 +0.035728,234 +0.034922,234 +0.034962,234 +0.033979,234 +0.037586,234 +0.032872,234 +0.032678,234 +0.032931,234 +0.031773,234 +0.031569,234 +0.032165,234 +0.031644,234 +0.031421,234 +0.031764,234 +0.032788,234 +0.031787,234 +0.032033,234 +0.032698,234 +0.034101,234 +0.032329,234 +0.031548,234 +0.031429,234 +0.031976,234 +0.031711,234 +0.031761,234 +0.031984,234 +0.032145,234 +0.032423,234 +0.031948,234 +0.032846,234 +0.032110,234 +0.031985,234 +0.032124,234 +0.032101,234 +0.032569,234 +0.031868,234 +0.031619,234 +0.031396,234 +0.031854,234 +0.031510,234 +0.031874,234 +0.032488,234 +0.031960,234 +0.032351,234 +0.032967,234 +0.031426,234 +0.031421,234 +0.032175,234 +0.032020,234 +0.031694,234 +0.031361,234 +0.032057,234 +0.031503,234 +0.031530,234 +0.031835,234 +0.031568,234 +0.032580,234 +0.033096,234 +0.031693,234 +0.031557,234 +0.031821,234 +0.031663,234 +0.031552,234 +0.031997,234 +0.031551,234 +0.032328,234 +0.038241,234 +0.033073,234 +0.034025,234 +0.041936,234 +0.034898,234 +0.034670,234 +0.033454,234 +0.032831,234 +0.032554,234 +0.034014,236 +0.042267,236 +0.033598,236 +0.037150,236 +0.037716,236 +0.042123,236 +0.035850,236 +0.033674,236 +0.034933,236 +0.046021,236 +0.036961,236 +0.034046,236 +0.034640,236 +0.038851,236 +0.038601,236 +0.037612,236 +0.038283,236 +0.050662,236 +0.042437,236 +0.035757,236 +0.042565,236 +0.042066,236 +0.036041,236 +0.045430,236 +0.046189,236 +0.035335,236 +0.035933,236 +0.037539,236 +0.035753,236 +0.038120,236 +0.038759,236 +0.035861,236 +0.037570,236 +0.037263,236 +0.037237,236 +0.034930,236 +0.036549,236 +0.038395,236 +0.035150,236 +0.034880,236 +0.056546,236 +0.065572,236 +0.064669,236 +0.043473,236 +0.038197,236 +0.036195,236 +0.037004,236 +0.037704,236 +0.039867,236 +0.034735,236 +0.035096,236 +0.036566,236 +0.036038,236 +0.035488,236 +0.036002,236 +0.034937,236 +0.037259,236 +0.037143,236 +0.038535,236 +0.037414,236 +0.037420,236 +0.035069,236 +0.044932,236 +0.042434,236 +0.038816,236 +0.037132,236 +0.039159,236 +0.043116,236 +0.053508,236 +0.036529,236 +0.042496,236 +0.041511,236 +0.042414,236 +0.036079,236 +0.035603,236 +0.038234,236 +0.036367,236 +0.035904,236 +0.043415,236 +0.038683,236 +0.049272,236 +0.037985,236 +0.040943,236 +0.036566,236 +0.036520,236 +0.036361,236 +0.040316,236 +0.038872,236 +0.046996,236 +0.038305,236 +0.037079,236 +0.037051,236 +0.036403,236 +0.052353,236 +0.065731,236 +0.038483,236 +0.039731,236 +0.040667,236 +0.039422,236 +0.036323,236 +0.039984,238 +0.039154,238 +0.038000,238 +0.040795,238 +0.040740,238 +0.037750,238 +0.039052,238 +0.037504,238 +0.039023,238 +0.039670,238 +0.039332,238 +0.038281,238 +0.037550,238 +0.039648,238 +0.042368,238 +0.040971,238 +0.046427,238 +0.041052,238 +0.038373,238 +0.040200,238 +0.043690,238 +0.037832,238 +0.038493,238 +0.038403,238 +0.037142,238 +0.034706,238 +0.033901,238 +0.040440,238 +0.035300,238 +0.041074,238 +0.037595,238 +0.035440,238 +0.037362,238 +0.035476,238 +0.035796,238 +0.037895,238 +0.038695,238 +0.037677,238 +0.041286,238 +0.037201,238 +0.033769,238 +0.036268,238 +0.035800,238 +0.036867,238 +0.035524,238 +0.036707,238 +0.033865,238 +0.034250,238 +0.033525,238 +0.034638,238 +0.034202,238 +0.034417,238 +0.036239,238 +0.035166,238 +0.033821,238 +0.033657,238 +0.033593,238 +0.034345,238 +0.033903,238 +0.033662,238 +0.034174,238 +0.034770,238 +0.033359,238 +0.033261,238 +0.033956,238 +0.033516,238 +0.034037,238 +0.033512,238 +0.035305,238 +0.043315,238 +0.036623,238 +0.036925,238 +0.035807,238 +0.035129,238 +0.035297,238 +0.035685,238 +0.034809,238 +0.062845,238 +0.063883,238 +0.037364,238 +0.034707,238 +0.036881,238 +0.036212,238 +0.034828,238 +0.039247,238 +0.037213,238 +0.035516,238 +0.039169,238 +0.034531,238 +0.034429,238 +0.058864,238 +0.034223,238 +0.036844,238 +0.034868,238 +0.039806,238 +0.039903,238 +0.036842,238 +0.045442,238 +0.061311,238 +0.068015,238 +0.061888,240 +0.037788,240 +0.038708,240 +0.040065,240 +0.037985,240 +0.038610,240 +0.038260,240 +0.035348,240 +0.043080,240 +0.065015,240 +0.065295,240 +0.047075,240 +0.039273,240 +0.039100,240 +0.041221,240 +0.036884,240 +0.037328,240 +0.038838,240 +0.035996,240 +0.035691,240 +0.038985,240 +0.040828,240 +0.063071,240 +0.040215,240 +0.040135,240 +0.044682,240 +0.058434,240 +0.035911,240 +0.035433,240 +0.036398,240 +0.038814,240 +0.039300,240 +0.040816,240 +0.039196,240 +0.039069,240 +0.036121,240 +0.037252,240 +0.040057,240 +0.037747,240 +0.049648,240 +0.044225,240 +0.037219,240 +0.043359,240 +0.039678,240 +0.044457,240 +0.043541,240 +0.037499,240 +0.036685,240 +0.035518,240 +0.036836,240 +0.036822,240 +0.038609,240 +0.042677,240 +0.042368,240 +0.041357,240 +0.036577,240 +0.037395,240 +0.044514,240 +0.041369,240 +0.040472,240 +0.043148,240 +0.035156,240 +0.036309,240 +0.037413,240 +0.041998,240 +0.039106,240 +0.037416,240 +0.049919,240 +0.058601,240 +0.063010,240 +0.039447,240 +0.041990,240 +0.036290,240 +0.035762,240 +0.036162,240 +0.036034,240 +0.038136,240 +0.035628,240 +0.037692,240 +0.037752,240 +0.041216,240 +0.043586,240 +0.036112,240 +0.038512,240 +0.037177,240 +0.035050,240 +0.034959,240 +0.035005,240 +0.034586,240 +0.040625,240 +0.036259,240 +0.035390,240 +0.047543,240 +0.046283,240 +0.035670,240 +0.037121,240 +0.036174,240 +0.036019,240 +0.035681,240 +0.035161,240 +0.037298,242 +0.036379,242 +0.037063,242 +0.039403,242 +0.035977,242 +0.035764,242 +0.038621,242 +0.040435,242 +0.040444,242 +0.046900,242 +0.044130,242 +0.043335,242 +0.041598,242 +0.043373,242 +0.051978,242 +0.047757,242 +0.043976,242 +0.044748,242 +0.044415,242 +0.045642,242 +0.043595,242 +0.040760,242 +0.037238,242 +0.037202,242 +0.039095,242 +0.037753,242 +0.044098,242 +0.043148,242 +0.037186,242 +0.037201,242 +0.037794,242 +0.037017,242 +0.046732,242 +0.042538,242 +0.040082,242 +0.037564,242 +0.036788,242 +0.039120,242 +0.037258,242 +0.039025,242 +0.038419,242 +0.037153,242 +0.039335,242 +0.036763,242 +0.037089,242 +0.038095,242 +0.036415,242 +0.035928,242 +0.037595,242 +0.035858,242 +0.035469,242 +0.035986,242 +0.035906,242 +0.036469,242 +0.036442,242 +0.036042,242 +0.036749,242 +0.036919,242 +0.036366,242 +0.042866,242 +0.036113,242 +0.037040,242 +0.039419,242 +0.037763,242 +0.036457,242 +0.035895,242 +0.036282,242 +0.037048,242 +0.035670,242 +0.036967,242 +0.036571,242 +0.035999,242 +0.038157,242 +0.036348,242 +0.036195,242 +0.037875,242 +0.038158,242 +0.037128,242 +0.037198,242 +0.036315,242 +0.039334,242 +0.040416,242 +0.040462,242 +0.040766,242 +0.036621,242 +0.041799,242 +0.041783,242 +0.041681,242 +0.039947,242 +0.045828,242 +0.051787,242 +0.055497,242 +0.062481,242 +0.054816,242 +0.051234,242 +0.053183,242 +0.049677,242 +0.043943,242 +0.049858,242 +0.048604,242 +0.042604,244 +0.037067,244 +0.037008,244 +0.038071,244 +0.037895,244 +0.037857,244 +0.039293,244 +0.038633,244 +0.038398,244 +0.037568,244 +0.043805,244 +0.037950,244 +0.037571,244 +0.038194,244 +0.040907,244 +0.049489,244 +0.045770,244 +0.041992,244 +0.049068,244 +0.042707,244 +0.038987,244 +0.040554,244 +0.045714,244 +0.046163,244 +0.045404,244 +0.039588,244 +0.038019,244 +0.039299,244 +0.044092,244 +0.039754,244 +0.037165,244 +0.037098,244 +0.039174,244 +0.043341,244 +0.038992,244 +0.037748,244 +0.047128,244 +0.046255,244 +0.042033,244 +0.043816,244 +0.040439,244 +0.046624,244 +0.047540,244 +0.054191,244 +0.051626,244 +0.045808,244 +0.042352,244 +0.045372,244 +0.038918,244 +0.038240,244 +0.038005,244 +0.037630,244 +0.042605,244 +0.039113,244 +0.038081,244 +0.040873,244 +0.039740,244 +0.039959,244 +0.043360,244 +0.041199,244 +0.039120,244 +0.037091,244 +0.042271,244 +0.042701,244 +0.045315,244 +0.049741,244 +0.039499,244 +0.039563,244 +0.057227,244 +0.044174,244 +0.044178,244 +0.040710,244 +0.040150,244 +0.041164,244 +0.039595,244 +0.038822,244 +0.037958,244 +0.045212,244 +0.041920,244 +0.041130,244 +0.042547,244 +0.046054,244 +0.041133,244 +0.037234,244 +0.038638,244 +0.042100,244 +0.040171,244 +0.041663,244 +0.040491,244 +0.043518,244 +0.044038,244 +0.038680,244 +0.042164,244 +0.061726,244 +0.074289,244 +0.042699,244 +0.042803,244 +0.049122,244 +0.070119,244 +0.049622,244 +0.038539,246 +0.038196,246 +0.039307,246 +0.037428,246 +0.038324,246 +0.052023,246 +0.039487,246 +0.037586,246 +0.039020,246 +0.039549,246 +0.037492,246 +0.040484,246 +0.039250,246 +0.046656,246 +0.038669,246 +0.039248,246 +0.040040,246 +0.037132,246 +0.038674,246 +0.038312,246 +0.037191,246 +0.039565,246 +0.060067,246 +0.053942,246 +0.044020,246 +0.055706,246 +0.040239,246 +0.041632,246 +0.046325,246 +0.046631,246 +0.050694,246 +0.042951,246 +0.042646,246 +0.042530,246 +0.048909,246 +0.040221,246 +0.044465,246 +0.048841,246 +0.049324,246 +0.043825,246 +0.042679,246 +0.042340,246 +0.042111,246 +0.045769,246 +0.054803,246 +0.048428,246 +0.043964,246 +0.052360,246 +0.041956,246 +0.042329,246 +0.043834,246 +0.047139,246 +0.060399,246 +0.052413,246 +0.042464,246 +0.042927,246 +0.049934,246 +0.041210,246 +0.043826,246 +0.045054,246 +0.048279,246 +0.041517,246 +0.039144,246 +0.053363,246 +0.039289,246 +0.040568,246 +0.039130,246 +0.041380,246 +0.039996,246 +0.038805,246 +0.039796,246 +0.037353,246 +0.048057,246 +0.042571,246 +0.041057,246 +0.042104,246 +0.043330,246 +0.049639,246 +0.041997,246 +0.040691,246 +0.042721,246 +0.048252,246 +0.039384,246 +0.038983,246 +0.040735,246 +0.039003,246 +0.038468,246 +0.043975,246 +0.039244,246 +0.039227,246 +0.038976,246 +0.038386,246 +0.042636,246 +0.038402,246 +0.038908,246 +0.038447,246 +0.038969,246 +0.043644,246 +0.038643,246 +0.039654,246 +0.040417,248 +0.039043,248 +0.044185,248 +0.040981,248 +0.041167,248 +0.039010,248 +0.046503,248 +0.039729,248 +0.038554,248 +0.044928,248 +0.038168,248 +0.041322,248 +0.041021,248 +0.037554,248 +0.045301,248 +0.039310,248 +0.044383,248 +0.038072,248 +0.037636,248 +0.045089,248 +0.037994,248 +0.045009,248 +0.037771,248 +0.037889,248 +0.044825,248 +0.038956,248 +0.046335,248 +0.038490,248 +0.039092,248 +0.044719,248 +0.038244,248 +0.038259,248 +0.040093,248 +0.059074,248 +0.069364,248 +0.072384,248 +0.070536,248 +0.070802,248 +0.043605,248 +0.043621,248 +0.048433,248 +0.050848,248 +0.045514,248 +0.043148,248 +0.051421,248 +0.042470,248 +0.041860,248 +0.044064,248 +0.042480,248 +0.039761,248 +0.042519,248 +0.046595,248 +0.043080,248 +0.041553,248 +0.040925,248 +0.039039,248 +0.041334,248 +0.041843,248 +0.043456,248 +0.052848,248 +0.054206,248 +0.043880,248 +0.039692,248 +0.049379,248 +0.044408,248 +0.044133,248 +0.042658,248 +0.040781,248 +0.039622,248 +0.040741,248 +0.040740,248 +0.040613,248 +0.042183,248 +0.047676,248 +0.045665,248 +0.040499,248 +0.039285,248 +0.040557,248 +0.040458,248 +0.039474,248 +0.041121,248 +0.041969,248 +0.048307,248 +0.043854,248 +0.046862,248 +0.039862,248 +0.044932,248 +0.040158,248 +0.044907,248 +0.039039,248 +0.038666,248 +0.040718,248 +0.039401,248 +0.041912,248 +0.039699,248 +0.038408,248 +0.039801,248 +0.037801,248 +0.038018,248 +0.041077,248 +0.041118,250 +0.041625,250 +0.042281,250 +0.041250,250 +0.047224,250 +0.052398,250 +0.042484,250 +0.041450,250 +0.044243,250 +0.043093,250 +0.043305,250 +0.044385,250 +0.040806,250 +0.042173,250 +0.043244,250 +0.043859,250 +0.041508,250 +0.040480,250 +0.041561,250 +0.052677,250 +0.049975,250 +0.043095,250 +0.042289,250 +0.040271,250 +0.042032,250 +0.041356,250 +0.040589,250 +0.042898,250 +0.040365,250 +0.042170,250 +0.041341,250 +0.047620,250 +0.040095,250 +0.042915,250 +0.042191,250 +0.040765,250 +0.041442,250 +0.040396,250 +0.038723,250 +0.039274,250 +0.038511,250 +0.039335,250 +0.039447,250 +0.038701,250 +0.041427,250 +0.039387,250 +0.041807,250 +0.039079,250 +0.038644,250 +0.039729,250 +0.038817,250 +0.039518,250 +0.039032,250 +0.038899,250 +0.041545,250 +0.040623,250 +0.038601,250 +0.039554,250 +0.038782,250 +0.038914,250 +0.038213,250 +0.038458,250 +0.038830,250 +0.038276,250 +0.038921,250 +0.038286,250 +0.038049,250 +0.039573,250 +0.038401,250 +0.038713,250 +0.038589,250 +0.038117,250 +0.038831,250 +0.038402,250 +0.038166,250 +0.038875,250 +0.038836,250 +0.039089,250 +0.038327,250 +0.038419,250 +0.039411,250 +0.042661,250 +0.041217,250 +0.039954,250 +0.040938,250 +0.040428,250 +0.040414,250 +0.046576,250 +0.040224,250 +0.041112,250 +0.045884,250 +0.039604,250 +0.040516,250 +0.039564,250 +0.040219,250 +0.040064,250 +0.039664,250 +0.047404,250 +0.040092,250 +0.047241,250 +0.041014,252 +0.041330,252 +0.044109,252 +0.041699,252 +0.041691,252 +0.043507,252 +0.049178,252 +0.039971,252 +0.039065,252 +0.047117,252 +0.039674,252 +0.048511,252 +0.040083,252 +0.040037,252 +0.039856,252 +0.040304,252 +0.043659,252 +0.040051,252 +0.039996,252 +0.039877,252 +0.041357,252 +0.041120,252 +0.040048,252 +0.040099,252 +0.039636,252 +0.039485,252 +0.040500,252 +0.039753,252 +0.040429,252 +0.039844,252 +0.039803,252 +0.040322,252 +0.041272,252 +0.040620,252 +0.039722,252 +0.039304,252 +0.040193,252 +0.039097,252 +0.039661,252 +0.039098,252 +0.038839,252 +0.040025,252 +0.039618,252 +0.040018,252 +0.039926,252 +0.039517,252 +0.040126,252 +0.040258,252 +0.040113,252 +0.040086,252 +0.039453,252 +0.041034,252 +0.039821,252 +0.040005,252 +0.039831,252 +0.039674,252 +0.040629,252 +0.041473,252 +0.039830,252 +0.040176,252 +0.039588,252 +0.040798,252 +0.039369,252 +0.039816,252 +0.040228,252 +0.039705,252 +0.040574,252 +0.039849,252 +0.043661,252 +0.039510,252 +0.039278,252 +0.040141,252 +0.039366,252 +0.039836,252 +0.039810,252 +0.039245,252 +0.040290,252 +0.039499,252 +0.039695,252 +0.040437,252 +0.040627,252 +0.040927,252 +0.041921,252 +0.040642,252 +0.039550,252 +0.039489,252 +0.040235,252 +0.039898,252 +0.039762,252 +0.040119,252 +0.040233,252 +0.040398,252 +0.039181,252 +0.043033,252 +0.044545,252 +0.044985,252 +0.047034,252 +0.044280,252 +0.054477,252 +0.050319,252 +0.057066,254 +0.045915,254 +0.053807,254 +0.045821,254 +0.046224,254 +0.053504,254 +0.046008,254 +0.042736,254 +0.042936,254 +0.042031,254 +0.049899,254 +0.045839,254 +0.043794,254 +0.045294,254 +0.042477,254 +0.042991,254 +0.042728,254 +0.050819,254 +0.042482,254 +0.048271,254 +0.040985,254 +0.040710,254 +0.047932,254 +0.040411,254 +0.048790,254 +0.040995,254 +0.048399,254 +0.041008,254 +0.046948,254 +0.043205,254 +0.041398,254 +0.049819,254 +0.064929,254 +0.056505,254 +0.043840,254 +0.045254,254 +0.046367,254 +0.048988,254 +0.048867,254 +0.047641,254 +0.046717,254 +0.041652,254 +0.040698,254 +0.041314,254 +0.041291,254 +0.041492,254 +0.041668,254 +0.041032,254 +0.043226,254 +0.040972,254 +0.041882,254 +0.042040,254 +0.041288,254 +0.043481,254 +0.041075,254 +0.042863,254 +0.042624,254 +0.041805,254 +0.045990,254 +0.042427,254 +0.047742,254 +0.042355,254 +0.045689,254 +0.046819,254 +0.047558,254 +0.045499,254 +0.044920,254 +0.042057,254 +0.041470,254 +0.042317,254 +0.041304,254 +0.042961,254 +0.041028,254 +0.042244,254 +0.041813,254 +0.043338,254 +0.043398,254 +0.041723,254 +0.042069,254 +0.042506,254 +0.040893,254 +0.041919,254 +0.041103,254 +0.041800,254 +0.041996,254 +0.041740,254 +0.042997,254 +0.040920,254 +0.041795,254 +0.041676,254 +0.041098,254 +0.041497,254 +0.041171,254 +0.042121,254 +0.041001,254 +0.041654,254 +0.045172,254 +0.040708,254 +0.041422,254 +0.040343,254 +0.046370,256 +0.045655,256 +0.048878,256 +0.045398,256 +0.045694,256 +0.046966,256 +0.045426,256 +0.045866,256 +0.045093,256 +0.046127,256 +0.045129,256 +0.046048,256 +0.045077,256 +0.048681,256 +0.045522,256 +0.052923,256 +0.048435,256 +0.046260,256 +0.045517,256 +0.046115,256 +0.046228,256 +0.045122,256 +0.046320,256 +0.046687,256 +0.046604,256 +0.045214,256 +0.046405,256 +0.045484,256 +0.046130,256 +0.045156,256 +0.046180,256 +0.045839,256 +0.045490,256 +0.046040,256 +0.045252,256 +0.046244,256 +0.045412,256 +0.046311,256 +0.045113,256 +0.049488,256 +0.045643,256 +0.046900,256 +0.046661,256 +0.045409,256 +0.046062,256 +0.045338,256 +0.045944,256 +0.045376,256 +0.046158,256 +0.045406,256 +0.046151,256 +0.045319,256 +0.045680,256 +0.045820,256 +0.045328,256 +0.045860,256 +0.045192,256 +0.046020,256 +0.045257,256 +0.046302,256 +0.045438,256 +0.058704,256 +0.047125,256 +0.050324,256 +0.045177,256 +0.046064,256 +0.045252,256 +0.045498,256 +0.045675,256 +0.045127,256 +0.046056,256 +0.045348,256 +0.046808,256 +0.045555,256 +0.045877,256 +0.045550,256 +0.046480,256 +0.045690,256 +0.045546,256 +0.045840,256 +0.045534,256 +0.052565,256 +0.045433,256 +0.046270,256 +0.045094,256 +0.045598,256 +0.045110,256 +0.045658,256 +0.045319,256 +0.045527,256 +0.045396,256 +0.045103,256 +0.045891,256 +0.045382,256 +0.046379,256 +0.045006,256 +0.045845,256 +0.045230,256 +0.045804,256 +0.045221,256 +0.043128,258 +0.043097,258 +0.042982,258 +0.043606,258 +0.042851,258 +0.044028,258 +0.042502,258 +0.043378,258 +0.043095,258 +0.042678,258 +0.043282,258 +0.042649,258 +0.043546,258 +0.042667,258 +0.042888,258 +0.043258,258 +0.042892,258 +0.043451,258 +0.042961,258 +0.043597,258 +0.042769,258 +0.043045,258 +0.043404,258 +0.042599,258 +0.044687,258 +0.042961,258 +0.046317,258 +0.042790,258 +0.043971,258 +0.043444,258 +0.042786,258 +0.044754,258 +0.042692,258 +0.044956,258 +0.042697,258 +0.045201,258 +0.043495,258 +0.043298,258 +0.047522,258 +0.047937,258 +0.047038,258 +0.042625,258 +0.045165,258 +0.042676,258 +0.045141,258 +0.043566,258 +0.046159,258 +0.049445,258 +0.051943,258 +0.048570,258 +0.050922,258 +0.077064,258 +0.054108,258 +0.075734,258 +0.049988,258 +0.055326,258 +0.054183,258 +0.052520,258 +0.050749,258 +0.049838,258 +0.050774,258 +0.048713,258 +0.046663,258 +0.051461,258 +0.050249,258 +0.050005,258 +0.056744,258 +0.050853,258 +0.048940,258 +0.049486,258 +0.049413,258 +0.048170,258 +0.043561,258 +0.043528,258 +0.046977,258 +0.047641,258 +0.045539,258 +0.046903,258 +0.049043,258 +0.051012,258 +0.050541,258 +0.051858,258 +0.050450,258 +0.043314,258 +0.045638,258 +0.051711,258 +0.048072,258 +0.049489,258 +0.049104,258 +0.046936,258 +0.045119,258 +0.044753,258 +0.044203,258 +0.044305,258 +0.046464,258 +0.047061,258 +0.045169,258 +0.045110,258 +0.047880,258 +0.046840,258 +0.050664,260 +0.047291,260 +0.050600,260 +0.045224,260 +0.044480,260 +0.046777,260 +0.047652,260 +0.048565,260 +0.048601,260 +0.047835,260 +0.054151,260 +0.043818,260 +0.051183,260 +0.044731,260 +0.052353,260 +0.044937,260 +0.045090,260 +0.044738,260 +0.044539,260 +0.044189,260 +0.044068,260 +0.044165,260 +0.044131,260 +0.044706,260 +0.043923,260 +0.044485,260 +0.044039,260 +0.044352,260 +0.043917,260 +0.044257,260 +0.044521,260 +0.044229,260 +0.044743,260 +0.044407,260 +0.045388,260 +0.046720,260 +0.046403,260 +0.044388,260 +0.047111,260 +0.048361,260 +0.049818,260 +0.050172,260 +0.049104,260 +0.051559,260 +0.049807,260 +0.053649,260 +0.051756,260 +0.051425,260 +0.049529,260 +0.050346,260 +0.049346,260 +0.048547,260 +0.048216,260 +0.049552,260 +0.049367,260 +0.046374,260 +0.048519,260 +0.047924,260 +0.052343,260 +0.054300,260 +0.046514,260 +0.047875,260 +0.047481,260 +0.048849,260 +0.046673,260 +0.046245,260 +0.044684,260 +0.048325,260 +0.048049,260 +0.050329,260 +0.047061,260 +0.048243,260 +0.050512,260 +0.052190,260 +0.048308,260 +0.049647,260 +0.047268,260 +0.048502,260 +0.044475,260 +0.045791,260 +0.044151,260 +0.045445,260 +0.049574,260 +0.048230,260 +0.049027,260 +0.054493,260 +0.053909,260 +0.050246,260 +0.050147,260 +0.047211,260 +0.047581,260 +0.044123,260 +0.049601,260 +0.049980,260 +0.058061,260 +0.060819,260 +0.065946,260 +0.056675,260 +0.071167,260 +0.054238,260 +0.068391,262 +0.054044,262 +0.063854,262 +0.055572,262 +0.055039,262 +0.053090,262 +0.059861,262 +0.075603,262 +0.060356,262 +0.053670,262 +0.053980,262 +0.057140,262 +0.060211,262 +0.057499,262 +0.052951,262 +0.051282,262 +0.051657,262 +0.048438,262 +0.050060,262 +0.050079,262 +0.056088,262 +0.050441,262 +0.054786,262 +0.054944,262 +0.061158,262 +0.063592,262 +0.049756,262 +0.049989,262 +0.047498,262 +0.048026,262 +0.048181,262 +0.051458,262 +0.053053,262 +0.052789,262 +0.054084,262 +0.058270,262 +0.048062,262 +0.056312,262 +0.048521,262 +0.061651,262 +0.056249,262 +0.055687,262 +0.052286,262 +0.055558,262 +0.053551,262 +0.052897,262 +0.055583,262 +0.052118,262 +0.055595,262 +0.052332,262 +0.052024,262 +0.050782,262 +0.050073,262 +0.047154,262 +0.050550,262 +0.046832,262 +0.051025,262 +0.051053,262 +0.054520,262 +0.051870,262 +0.050002,262 +0.046938,262 +0.049972,262 +0.046934,262 +0.049755,262 +0.049122,262 +0.054521,262 +0.053756,262 +0.052077,262 +0.049274,262 +0.049231,262 +0.047972,262 +0.048660,262 +0.049238,262 +0.053002,262 +0.050456,262 +0.051622,262 +0.050363,262 +0.050675,262 +0.057281,262 +0.056032,262 +0.057048,262 +0.051817,262 +0.049484,262 +0.048476,262 +0.048065,262 +0.057571,262 +0.053732,262 +0.050675,262 +0.048509,262 +0.049214,262 +0.047276,262 +0.053407,262 +0.056771,262 +0.063283,262 +0.055163,262 +0.054900,262 +0.054134,262 +0.054612,262 +0.053658,262 +0.056285,264 +0.052211,264 +0.050864,264 +0.049217,264 +0.050019,264 +0.050148,264 +0.050645,264 +0.050201,264 +0.049772,264 +0.049309,264 +0.047067,264 +0.049003,264 +0.047070,264 +0.047391,264 +0.046381,264 +0.047166,264 +0.048396,264 +0.047551,264 +0.046881,264 +0.047159,264 +0.047023,264 +0.047268,264 +0.046398,264 +0.046534,264 +0.046563,264 +0.046307,264 +0.047036,264 +0.046239,264 +0.046973,264 +0.046144,264 +0.047086,264 +0.046353,264 +0.047711,264 +0.046246,264 +0.047048,264 +0.046189,264 +0.048609,264 +0.046199,264 +0.046267,264 +0.047407,264 +0.046089,264 +0.047786,264 +0.046747,264 +0.046999,264 +0.046237,264 +0.046987,264 +0.046402,264 +0.048332,264 +0.047240,264 +0.047567,264 +0.047951,264 +0.048270,264 +0.046454,264 +0.048006,264 +0.046843,264 +0.046841,264 +0.047899,264 +0.046480,264 +0.048260,264 +0.046080,264 +0.048094,264 +0.046167,264 +0.048128,264 +0.051792,264 +0.050430,264 +0.049137,264 +0.048897,264 +0.048034,264 +0.047286,264 +0.046188,264 +0.046870,264 +0.046286,264 +0.046630,264 +0.046781,264 +0.046262,264 +0.049960,264 +0.051342,264 +0.049265,264 +0.046303,264 +0.047130,264 +0.046226,264 +0.047704,264 +0.046374,264 +0.046911,264 +0.046082,264 +0.047771,264 +0.046475,264 +0.049328,264 +0.046435,264 +0.046622,264 +0.046266,264 +0.046550,264 +0.048710,264 +0.049719,264 +0.048527,264 +0.048581,264 +0.050060,264 +0.049059,264 +0.047369,264 +0.046636,264 +0.051725,266 +0.051314,266 +0.053410,266 +0.055430,266 +0.054625,266 +0.053391,266 +0.051943,266 +0.051466,266 +0.050024,266 +0.050617,266 +0.049899,266 +0.050297,266 +0.050409,266 +0.050722,266 +0.050274,266 +0.050730,266 +0.054686,266 +0.053915,266 +0.051247,266 +0.051398,266 +0.050113,266 +0.050549,266 +0.054031,266 +0.051283,266 +0.049816,266 +0.050561,266 +0.050195,266 +0.050661,266 +0.049893,266 +0.050586,266 +0.050073,266 +0.050903,266 +0.050330,266 +0.050627,266 +0.049771,266 +0.050922,266 +0.051920,266 +0.053144,266 +0.053605,266 +0.053413,266 +0.052102,266 +0.052975,266 +0.052856,266 +0.054334,266 +0.053598,266 +0.052921,266 +0.052794,266 +0.052685,266 +0.052804,266 +0.051450,266 +0.051631,266 +0.050223,266 +0.050900,266 +0.058479,266 +0.056501,266 +0.055018,266 +0.054116,266 +0.052089,266 +0.052082,266 +0.050745,266 +0.051203,266 +0.050035,266 +0.050797,266 +0.050062,266 +0.051296,266 +0.052480,266 +0.050936,266 +0.057681,266 +0.058276,266 +0.055856,266 +0.053685,266 +0.053777,266 +0.053911,266 +0.052941,266 +0.051741,266 +0.050494,266 +0.055502,266 +0.059932,266 +0.054018,266 +0.052270,266 +0.050435,266 +0.077285,266 +0.054011,266 +0.050785,266 +0.054649,266 +0.052420,266 +0.052819,266 +0.054659,266 +0.054409,266 +0.054260,266 +0.053533,266 +0.053754,266 +0.052733,266 +0.052416,266 +0.051040,266 +0.052033,266 +0.052009,266 +0.052529,266 +0.052487,266 +0.052117,266 +0.052258,268 +0.053511,268 +0.064842,268 +0.059756,268 +0.059964,268 +0.056388,268 +0.060106,268 +0.053551,268 +0.053074,268 +0.052905,268 +0.059101,268 +0.052455,268 +0.053274,268 +0.054025,268 +0.062822,268 +0.056024,268 +0.055818,268 +0.053038,268 +0.052923,268 +0.052858,268 +0.052785,268 +0.052192,268 +0.050187,268 +0.050496,268 +0.052006,268 +0.052511,268 +0.050390,268 +0.050760,268 +0.050301,268 +0.050783,268 +0.050071,268 +0.050577,268 +0.050098,268 +0.050878,268 +0.050046,268 +0.050771,268 +0.050167,268 +0.051274,268 +0.051997,268 +0.051412,268 +0.050190,268 +0.050241,268 +0.051350,268 +0.052092,268 +0.050312,268 +0.050354,268 +0.050081,268 +0.050403,268 +0.050523,268 +0.052009,268 +0.050330,268 +0.050170,268 +0.050514,268 +0.050418,268 +0.050490,268 +0.050214,268 +0.050398,268 +0.050309,268 +0.050384,268 +0.050148,268 +0.050418,268 +0.050590,268 +0.054156,268 +0.053955,268 +0.054889,268 +0.061761,268 +0.066656,268 +0.053520,268 +0.051113,268 +0.050269,268 +0.050530,268 +0.051181,268 +0.050927,268 +0.050556,268 +0.050343,268 +0.050250,268 +0.050333,268 +0.050440,268 +0.050843,268 +0.050310,268 +0.050533,268 +0.050466,268 +0.050440,268 +0.050083,268 +0.050723,268 +0.050275,268 +0.050505,268 +0.050215,268 +0.050782,268 +0.050139,268 +0.050525,268 +0.050406,268 +0.050330,268 +0.050213,268 +0.050382,268 +0.051692,268 +0.051835,268 +0.051324,268 +0.052542,268 +0.050617,268 +0.053960,270 +0.054397,270 +0.053719,270 +0.054373,270 +0.053741,270 +0.054123,270 +0.054112,270 +0.054448,270 +0.053833,270 +0.054301,270 +0.054003,270 +0.054069,270 +0.054124,270 +0.053797,270 +0.054256,270 +0.054018,270 +0.054296,270 +0.053865,270 +0.055765,270 +0.053850,270 +0.054618,270 +0.053893,270 +0.055188,270 +0.058444,270 +0.057940,270 +0.056482,270 +0.058558,270 +0.056220,270 +0.055996,270 +0.058367,270 +0.056417,270 +0.058341,270 +0.062754,270 +0.056253,270 +0.061714,270 +0.057928,270 +0.056349,270 +0.058408,270 +0.058224,270 +0.057903,270 +0.057873,270 +0.059330,270 +0.060017,270 +0.058020,270 +0.057583,270 +0.056950,270 +0.056838,270 +0.057761,270 +0.057302,270 +0.057690,270 +0.059148,270 +0.057890,270 +0.057142,270 +0.057580,270 +0.057715,270 +0.058074,270 +0.057601,270 +0.058007,270 +0.057046,270 +0.056160,270 +0.056786,270 +0.065296,270 +0.060188,270 +0.070213,270 +0.060761,270 +0.060641,270 +0.056608,270 +0.054322,270 +0.056702,270 +0.068307,270 +0.061488,270 +0.059540,270 +0.059322,270 +0.062787,270 +0.056925,270 +0.062799,270 +0.058443,270 +0.057363,270 +0.057748,270 +0.060106,270 +0.064343,270 +0.061347,270 +0.062039,270 +0.063974,270 +0.064517,270 +0.060165,270 +0.062633,270 +0.059059,270 +0.056930,270 +0.054548,270 +0.061077,270 +0.053595,270 +0.059761,270 +0.053469,270 +0.059381,270 +0.059112,270 +0.053274,270 +0.059535,270 +0.053350,270 +0.058998,270 +0.051533,272 +0.056155,272 +0.056381,272 +0.050555,272 +0.056389,272 +0.050467,272 +0.056186,272 +0.050446,272 +0.056900,272 +0.052880,272 +0.056857,272 +0.050859,272 +0.056792,272 +0.050541,272 +0.056909,272 +0.054983,272 +0.051940,272 +0.056142,272 +0.050491,272 +0.057792,272 +0.058770,272 +0.056321,272 +0.057960,272 +0.056229,272 +0.058982,272 +0.056232,272 +0.056269,272 +0.056030,272 +0.057696,272 +0.054746,272 +0.053061,272 +0.051260,272 +0.051097,272 +0.050458,272 +0.050925,272 +0.051690,272 +0.051156,272 +0.051179,272 +0.052154,272 +0.050605,272 +0.051061,272 +0.050549,272 +0.051130,272 +0.051958,272 +0.053018,272 +0.053542,272 +0.051333,272 +0.054512,272 +0.055631,272 +0.056081,272 +0.056137,272 +0.056946,272 +0.055434,272 +0.060452,272 +0.052961,272 +0.055519,272 +0.055727,272 +0.056935,272 +0.052991,272 +0.050753,272 +0.051385,272 +0.050604,272 +0.052218,272 +0.052902,272 +0.053580,272 +0.051193,272 +0.052471,272 +0.050534,272 +0.052734,272 +0.050638,272 +0.052118,272 +0.050569,272 +0.052254,272 +0.050403,272 +0.052877,272 +0.050546,272 +0.051199,272 +0.050424,272 +0.051033,272 +0.050499,272 +0.050719,272 +0.050657,272 +0.051270,272 +0.050571,272 +0.051184,272 +0.050471,272 +0.051083,272 +0.050534,272 +0.051226,272 +0.050497,272 +0.050930,272 +0.050515,272 +0.050652,272 +0.050458,272 +0.050849,272 +0.050960,272 +0.050717,272 +0.050660,272 +0.050604,272 +0.050627,272 +0.055355,274 +0.055286,274 +0.055058,274 +0.077759,274 +0.062612,274 +0.084260,274 +0.104903,274 +0.106103,274 +0.077543,274 +0.085944,274 +0.080646,274 +0.056136,274 +0.056251,274 +0.056378,274 +0.056039,274 +0.056316,274 +0.056571,274 +0.068323,274 +0.065931,274 +0.059785,274 +0.058998,274 +0.056701,274 +0.061016,274 +0.062724,274 +0.056139,274 +0.057446,274 +0.057002,274 +0.059934,274 +0.060444,274 +0.060331,274 +0.070187,274 +0.102343,274 +0.101983,274 +0.085944,274 +0.057725,274 +0.060507,274 +0.078247,274 +0.073117,274 +0.066163,274 +0.060576,274 +0.059118,274 +0.064332,274 +0.068698,274 +0.063827,274 +0.068858,274 +0.062736,274 +0.068263,274 +0.061657,274 +0.059037,274 +0.062543,274 +0.062379,274 +0.065076,274 +0.061394,274 +0.065859,274 +0.059628,274 +0.060438,274 +0.058751,274 +0.060736,274 +0.056983,274 +0.059483,274 +0.058811,274 +0.060062,274 +0.059005,274 +0.058105,274 +0.059569,274 +0.061596,274 +0.067420,274 +0.065639,274 +0.065058,274 +0.064804,274 +0.064150,274 +0.061249,274 +0.060533,274 +0.060707,274 +0.060454,274 +0.063287,274 +0.059066,274 +0.058902,274 +0.062817,274 +0.057138,274 +0.058739,274 +0.056870,274 +0.060131,274 +0.058255,274 +0.057846,274 +0.056016,274 +0.059232,274 +0.059195,274 +0.058514,274 +0.066063,274 +0.068293,274 +0.066232,274 +0.064580,274 +0.059091,274 +0.060501,274 +0.060111,274 +0.060989,274 +0.059421,274 +0.065569,274 +0.061068,274 +0.060733,276 +0.055370,276 +0.077650,276 +0.057427,276 +0.057217,276 +0.057550,276 +0.057177,276 +0.056801,276 +0.062281,276 +0.056746,276 +0.061197,276 +0.057997,276 +0.058909,276 +0.058194,276 +0.059997,276 +0.058988,276 +0.058429,276 +0.064624,276 +0.057617,276 +0.060444,276 +0.060571,276 +0.058261,276 +0.060075,276 +0.059849,276 +0.060039,276 +0.057928,276 +0.058232,276 +0.060680,276 +0.062127,276 +0.060752,276 +0.062138,276 +0.058386,276 +0.058208,276 +0.057690,276 +0.055231,276 +0.055463,276 +0.056137,276 +0.066303,276 +0.060803,276 +0.061295,276 +0.060621,276 +0.061494,276 +0.065527,276 +0.065753,276 +0.069152,276 +0.060415,276 +0.060932,276 +0.060823,276 +0.060634,276 +0.068160,276 +0.071643,276 +0.067290,276 +0.066832,276 +0.066297,276 +0.069288,276 +0.066156,276 +0.061526,276 +0.059984,276 +0.065361,276 +0.059491,276 +0.056447,276 +0.059148,276 +0.059728,276 +0.057638,276 +0.060436,276 +0.074956,276 +0.064729,276 +0.071866,276 +0.078464,276 +0.065329,276 +0.082083,276 +0.060430,276 +0.061510,276 +0.069063,276 +0.064846,276 +0.058104,276 +0.056249,276 +0.059217,276 +0.063967,276 +0.062880,276 +0.055427,276 +0.061798,276 +0.057072,276 +0.065297,276 +0.064682,276 +0.062539,276 +0.060433,276 +0.061693,276 +0.064777,276 +0.062460,276 +0.061834,276 +0.057039,276 +0.063286,276 +0.058734,276 +0.062493,276 +0.061756,276 +0.059587,276 +0.058489,276 +0.058649,276 +0.055728,276 +0.058655,278 +0.058376,278 +0.057495,278 +0.058710,278 +0.058263,278 +0.066848,278 +0.065266,278 +0.058434,278 +0.066578,278 +0.066915,278 +0.069207,278 +0.070718,278 +0.063471,278 +0.061312,278 +0.059197,278 +0.059363,278 +0.058063,278 +0.058907,278 +0.060127,278 +0.058821,278 +0.058679,278 +0.058371,278 +0.060246,278 +0.062742,278 +0.058916,278 +0.059371,278 +0.059822,278 +0.060244,278 +0.062157,278 +0.063462,278 +0.066566,278 +0.068093,278 +0.071604,278 +0.073728,278 +0.069347,278 +0.070758,278 +0.070580,278 +0.062849,278 +0.065264,278 +0.058941,278 +0.058012,278 +0.063789,278 +0.066193,278 +0.072972,278 +0.069772,278 +0.065957,278 +0.070013,278 +0.067595,278 +0.073879,278 +0.063638,278 +0.067512,278 +0.068782,278 +0.070986,278 +0.076221,278 +0.074177,278 +0.066303,278 +0.062857,278 +0.063683,278 +0.061570,278 +0.062001,278 +0.060927,278 +0.062514,278 +0.059205,278 +0.058478,278 +0.059849,278 +0.063694,278 +0.065171,278 +0.072492,278 +0.065300,278 +0.064288,278 +0.064443,278 +0.063192,278 +0.060911,278 +0.063925,278 +0.059304,278 +0.059943,278 +0.059610,278 +0.057801,278 +0.059888,278 +0.058579,278 +0.059326,278 +0.059327,278 +0.058302,278 +0.063137,278 +0.061572,278 +0.060818,278 +0.059413,278 +0.057830,278 +0.063835,278 +0.057556,278 +0.064423,278 +0.063405,278 +0.058073,278 +0.072706,278 +0.068393,278 +0.068173,278 +0.067488,278 +0.064341,278 +0.065489,278 +0.061618,278 +0.063219,280 +0.060395,280 +0.061169,280 +0.060930,280 +0.057626,280 +0.055814,280 +0.056872,280 +0.056238,280 +0.057810,280 +0.056633,280 +0.056554,280 +0.057295,280 +0.056093,280 +0.056544,280 +0.056032,280 +0.056596,280 +0.056284,280 +0.055857,280 +0.056353,280 +0.055744,280 +0.056309,280 +0.055758,280 +0.056570,280 +0.056137,280 +0.056888,280 +0.056344,280 +0.055935,280 +0.056404,280 +0.055796,280 +0.056614,280 +0.055893,280 +0.056381,280 +0.056788,280 +0.056024,280 +0.056255,280 +0.056147,280 +0.056318,280 +0.055886,280 +0.056246,280 +0.055850,280 +0.056286,280 +0.056400,280 +0.055959,280 +0.056493,280 +0.055887,280 +0.056421,280 +0.056425,280 +0.069027,280 +0.063965,280 +0.062629,280 +0.063214,280 +0.066614,280 +0.061499,280 +0.061985,280 +0.063162,280 +0.065707,280 +0.060343,280 +0.060719,280 +0.063382,280 +0.060085,280 +0.063920,280 +0.062268,280 +0.060334,280 +0.057546,280 +0.066008,280 +0.056917,280 +0.059449,280 +0.061266,280 +0.061639,280 +0.061490,280 +0.061053,280 +0.062394,280 +0.061806,280 +0.066203,280 +0.065063,280 +0.068803,280 +0.073897,280 +0.071415,280 +0.061651,280 +0.062140,280 +0.068908,280 +0.069307,280 +0.067386,280 +0.062752,280 +0.069230,280 +0.070114,280 +0.064809,280 +0.060479,280 +0.061138,280 +0.063538,280 +0.061519,280 +0.058772,280 +0.059980,280 +0.061173,280 +0.061562,280 +0.058449,280 +0.059663,280 +0.071151,280 +0.060882,280 +0.066724,280 +0.072016,282 +0.074860,282 +0.070270,282 +0.073070,282 +0.069344,282 +0.076691,282 +0.086220,282 +0.078314,282 +0.068736,282 +0.066885,282 +0.068434,282 +0.066834,282 +0.066249,282 +0.072824,282 +0.075319,282 +0.071495,282 +0.069390,282 +0.068081,282 +0.067893,282 +0.068946,282 +0.067668,282 +0.068085,282 +0.067531,282 +0.069401,282 +0.076482,282 +0.074109,282 +0.068777,282 +0.070797,282 +0.071662,282 +0.070121,282 +0.097231,282 +0.079167,282 +0.069282,282 +0.069333,282 +0.073691,282 +0.068289,282 +0.072362,282 +0.068569,282 +0.068555,282 +0.069764,282 +0.072091,282 +0.065155,282 +0.064922,282 +0.070280,282 +0.064525,282 +0.066633,282 +0.062893,282 +0.064499,282 +0.062042,282 +0.061602,282 +0.061429,282 +0.061333,282 +0.061341,282 +0.060931,282 +0.061759,282 +0.061270,282 +0.060762,282 +0.061671,282 +0.060706,282 +0.061936,282 +0.065297,282 +0.061463,282 +0.062186,282 +0.061000,282 +0.061329,282 +0.061405,282 +0.062654,282 +0.064562,282 +0.064346,282 +0.064517,282 +0.062018,282 +0.062551,282 +0.063137,282 +0.061378,282 +0.061309,282 +0.061441,282 +0.062240,282 +0.063585,282 +0.070333,282 +0.064389,282 +0.062171,282 +0.065352,282 +0.066117,282 +0.067361,282 +0.064329,282 +0.061419,282 +0.061788,282 +0.061899,282 +0.060952,282 +0.062098,282 +0.064113,282 +0.064734,282 +0.065608,282 +0.062708,282 +0.062502,282 +0.061444,282 +0.062500,282 +0.063233,282 +0.062965,282 +0.062939,282 +0.061046,284 +0.060496,284 +0.060836,284 +0.062635,284 +0.061098,284 +0.062422,284 +0.060454,284 +0.061306,284 +0.060970,284 +0.059322,284 +0.060996,284 +0.059282,284 +0.062343,284 +0.061150,284 +0.059339,284 +0.062270,284 +0.059404,284 +0.060982,284 +0.061201,284 +0.059487,284 +0.061295,284 +0.059402,284 +0.061040,284 +0.061154,284 +0.059433,284 +0.061046,284 +0.059347,284 +0.061015,284 +0.062313,284 +0.060296,284 +0.061069,284 +0.059390,284 +0.061376,284 +0.061045,284 +0.059254,284 +0.061072,284 +0.059390,284 +0.061039,284 +0.060863,284 +0.060137,284 +0.061132,284 +0.059248,284 +0.061549,284 +0.061096,284 +0.059492,284 +0.062208,284 +0.059378,284 +0.064014,284 +0.061461,284 +0.059358,284 +0.062296,284 +0.074642,284 +0.071049,284 +0.066325,284 +0.069245,284 +0.068743,284 +0.070516,284 +0.071255,284 +0.067085,284 +0.065974,284 +0.066825,284 +0.067573,284 +0.068968,284 +0.064459,284 +0.061483,284 +0.075049,284 +0.065255,284 +0.077691,284 +0.090725,284 +0.067188,284 +0.065421,284 +0.070782,284 +0.066749,284 +0.067901,284 +0.065804,284 +0.064306,284 +0.061525,284 +0.060358,284 +0.062015,284 +0.060604,284 +0.060064,284 +0.061275,284 +0.059862,284 +0.061431,284 +0.062032,284 +0.061327,284 +0.061746,284 +0.059494,284 +0.060965,284 +0.060872,284 +0.059400,284 +0.062127,284 +0.059301,284 +0.061337,284 +0.061756,284 +0.059648,284 +0.060987,284 +0.059261,284 +0.061118,284 +0.061140,284 +0.063425,286 +0.064737,286 +0.064355,286 +0.063657,286 +0.064667,286 +0.063042,286 +0.064707,286 +0.065789,286 +0.063100,286 +0.065326,286 +0.066364,286 +0.063675,286 +0.064873,286 +0.064375,286 +0.063434,286 +0.063620,286 +0.063581,286 +0.064280,286 +0.063903,286 +0.063200,286 +0.063643,286 +0.063740,286 +0.063307,286 +0.063884,286 +0.063368,286 +0.063508,286 +0.063826,286 +0.063174,286 +0.063968,286 +0.064779,286 +0.063249,286 +0.065129,286 +0.065503,286 +0.066801,286 +0.065673,286 +0.066431,286 +0.066196,286 +0.065085,286 +0.064430,286 +0.064809,286 +0.063816,286 +0.063359,286 +0.063642,286 +0.063762,286 +0.063233,286 +0.063836,286 +0.063836,286 +0.063249,286 +0.064058,286 +0.063400,286 +0.063894,286 +0.063750,286 +0.063127,286 +0.063740,286 +0.064056,286 +0.063366,286 +0.063874,286 +0.063578,286 +0.063819,286 +0.063598,286 +0.063287,286 +0.063787,286 +0.063828,286 +0.063347,286 +0.064371,286 +0.063440,286 +0.063083,286 +0.063631,286 +0.063373,286 +0.063355,286 +0.063701,286 +0.063124,286 +0.063970,286 +0.063441,286 +0.062995,286 +0.063621,286 +0.063674,286 +0.065323,286 +0.064494,286 +0.067087,286 +0.064575,286 +0.064647,286 +0.063564,286 +0.064806,286 +0.064180,286 +0.063215,286 +0.063833,286 +0.063644,286 +0.063111,286 +0.063867,286 +0.063236,286 +0.063614,286 +0.063930,286 +0.062981,286 +0.063888,286 +0.063725,286 +0.063463,286 +0.063839,286 +0.063619,286 +0.063223,286 +0.064376,288 +0.063707,288 +0.064364,288 +0.064462,288 +0.066459,288 +0.064684,288 +0.065017,288 +0.063947,288 +0.064447,288 +0.064137,288 +0.063646,288 +0.065175,288 +0.070360,288 +0.071598,288 +0.071383,288 +0.070829,288 +0.069477,288 +0.069394,288 +0.068970,288 +0.069672,288 +0.069716,288 +0.071996,288 +0.074610,288 +0.068118,288 +0.065774,288 +0.069773,288 +0.074340,288 +0.070091,288 +0.070158,288 +0.068244,288 +0.067423,288 +0.068650,288 +0.069801,288 +0.070965,288 +0.071539,288 +0.071692,288 +0.070481,288 +0.078654,288 +0.072991,288 +0.067273,288 +0.064580,288 +0.065642,288 +0.067566,288 +0.066009,288 +0.066068,288 +0.068610,288 +0.069114,288 +0.068622,288 +0.065788,288 +0.064485,288 +0.065000,288 +0.066887,288 +0.074228,288 +0.069965,288 +0.077213,288 +0.066733,288 +0.071594,288 +0.069941,288 +0.064325,288 +0.070085,288 +0.065749,288 +0.065430,288 +0.083415,288 +0.071016,288 +0.076565,288 +0.072772,288 +0.069500,288 +0.069351,288 +0.066924,288 +0.066275,288 +0.064787,288 +0.066885,288 +0.064586,288 +0.064665,288 +0.067937,288 +0.069406,288 +0.079028,288 +0.082235,288 +0.071772,288 +0.065477,288 +0.068255,288 +0.070726,288 +0.070777,288 +0.070487,288 +0.066012,288 +0.067938,288 +0.068077,288 +0.073226,288 +0.066543,288 +0.066800,288 +0.065631,288 +0.085718,288 +0.089092,288 +0.087413,288 +0.070510,288 +0.066891,288 +0.066570,288 +0.064278,288 +0.064291,288 +0.066164,288 +0.066856,290 +0.066542,290 +0.066700,290 +0.066331,290 +0.066329,290 +0.066563,290 +0.066186,290 +0.066713,290 +0.066740,290 +0.066146,290 +0.066181,290 +0.066832,290 +0.066045,290 +0.066206,290 +0.066781,290 +0.066178,290 +0.066023,290 +0.066379,290 +0.074327,290 +0.067359,290 +0.066890,290 +0.066038,290 +0.066210,290 +0.066857,290 +0.065996,290 +0.066408,290 +0.066721,290 +0.066083,290 +0.066572,290 +0.066601,290 +0.065704,290 +0.066854,290 +0.066663,290 +0.065723,290 +0.066815,290 +0.066464,290 +0.065716,290 +0.066601,290 +0.066705,290 +0.065860,290 +0.066663,290 +0.066405,290 +0.065973,290 +0.066908,290 +0.066657,290 +0.065943,290 +0.066938,290 +0.066389,290 +0.065999,290 +0.066745,290 +0.066303,290 +0.066258,290 +0.067397,290 +0.066411,290 +0.066299,290 +0.066642,290 +0.066156,290 +0.074817,290 +0.070316,290 +0.068684,290 +0.066628,290 +0.067040,290 +0.066562,290 +0.066173,290 +0.067013,290 +0.066810,290 +0.065973,290 +0.066960,290 +0.066530,290 +0.066101,290 +0.066809,290 +0.066522,290 +0.066021,290 +0.066746,290 +0.066434,290 +0.066097,290 +0.066708,290 +0.066651,290 +0.066335,290 +0.066961,290 +0.066217,290 +0.066568,290 +0.066737,290 +0.065997,290 +0.067041,290 +0.067766,290 +0.065829,290 +0.066719,290 +0.066944,290 +0.065817,290 +0.066878,290 +0.066380,290 +0.066074,290 +0.067010,290 +0.067114,290 +0.065857,290 +0.066773,290 +0.066490,290 +0.065858,290 +0.066554,290 +0.066309,292 +0.065868,292 +0.066050,292 +0.066186,292 +0.067014,292 +0.070358,292 +0.066037,292 +0.066376,292 +0.066464,292 +0.065910,292 +0.067182,292 +0.066370,292 +0.066138,292 +0.066665,292 +0.072453,292 +0.065768,292 +0.065263,292 +0.067144,292 +0.065889,292 +0.065232,292 +0.065898,292 +0.065375,292 +0.065452,292 +0.065864,292 +0.065250,292 +0.065853,292 +0.065723,292 +0.064962,292 +0.066235,292 +0.065645,292 +0.065551,292 +0.066315,292 +0.066393,292 +0.066390,292 +0.066038,292 +0.065460,292 +0.066657,292 +0.066426,292 +0.065633,292 +0.067215,292 +0.066436,292 +0.065902,292 +0.065923,292 +0.066517,292 +0.065837,292 +0.065519,292 +0.066377,292 +0.065731,292 +0.065825,292 +0.066306,292 +0.065418,292 +0.065969,292 +0.066479,292 +0.065072,292 +0.066340,292 +0.065952,292 +0.065452,292 +0.066103,292 +0.066080,292 +0.065526,292 +0.066222,292 +0.065902,292 +0.065540,292 +0.066321,292 +0.065830,292 +0.065732,292 +0.067067,292 +0.066852,292 +0.065767,292 +0.066326,292 +0.066414,292 +0.065622,292 +0.066265,292 +0.066090,292 +0.065993,292 +0.066376,292 +0.065403,292 +0.066079,292 +0.066214,292 +0.065233,292 +0.066158,292 +0.066097,292 +0.065168,292 +0.066237,292 +0.065953,292 +0.065484,292 +0.066720,292 +0.072731,292 +0.076935,292 +0.080018,292 +0.082379,292 +0.080917,292 +0.074605,292 +0.068439,292 +0.069450,292 +0.068890,292 +0.068080,292 +0.068419,292 +0.068819,292 +0.069171,292 +0.076822,294 +0.076086,294 +0.078940,294 +0.074760,294 +0.074426,294 +0.073137,294 +0.072081,294 +0.070823,294 +0.072792,294 +0.072130,294 +0.072409,294 +0.072391,294 +0.072992,294 +0.079275,294 +0.086944,294 +0.083957,294 +0.076999,294 +0.076847,294 +0.078900,294 +0.071525,294 +0.071786,294 +0.072034,294 +0.072026,294 +0.074384,294 +0.074108,294 +0.071156,294 +0.070194,294 +0.070710,294 +0.070922,294 +0.070716,294 +0.070229,294 +0.070987,294 +0.070825,294 +0.069836,294 +0.071088,294 +0.070921,294 +0.070434,294 +0.070411,294 +0.071038,294 +0.070787,294 +0.070330,294 +0.071036,294 +0.070979,294 +0.070156,294 +0.070996,294 +0.070858,294 +0.070398,294 +0.070803,294 +0.071150,294 +0.070646,294 +0.071168,294 +0.071539,294 +0.070709,294 +0.069758,294 +0.071038,294 +0.071165,294 +0.070349,294 +0.073770,294 +0.070953,294 +0.072926,294 +0.069917,294 +0.071281,294 +0.071955,294 +0.071535,294 +0.077098,294 +0.074606,294 +0.074303,294 +0.071320,294 +0.070532,294 +0.070896,294 +0.070341,294 +0.069827,294 +0.070714,294 +0.070326,294 +0.072954,294 +0.074486,294 +0.073188,294 +0.070619,294 +0.070657,294 +0.070815,294 +0.071126,294 +0.074661,294 +0.073268,294 +0.076067,294 +0.083637,294 +0.074073,294 +0.082686,294 +0.077119,294 +0.075453,294 +0.076002,294 +0.071392,294 +0.072592,294 +0.074008,294 +0.069877,294 +0.071344,294 +0.070870,294 +0.071150,294 +0.071804,294 +0.071079,294 +0.071553,294 +0.066974,296 +0.068582,296 +0.068594,296 +0.067236,296 +0.068186,296 +0.068300,296 +0.066251,296 +0.068456,296 +0.068182,296 +0.067526,296 +0.068491,296 +0.069412,296 +0.066596,296 +0.068758,296 +0.068368,296 +0.066651,296 +0.068386,296 +0.068434,296 +0.066997,296 +0.068163,296 +0.068334,296 +0.067285,296 +0.071464,296 +0.072527,296 +0.069374,296 +0.066762,296 +0.069384,296 +0.068125,296 +0.066689,296 +0.072023,296 +0.074263,296 +0.066657,296 +0.068572,296 +0.068314,296 +0.066261,296 +0.068553,296 +0.067026,296 +0.066611,296 +0.067615,296 +0.067246,296 +0.066506,296 +0.067668,296 +0.067284,296 +0.066467,296 +0.067471,296 +0.067280,296 +0.067456,296 +0.068320,296 +0.068635,296 +0.066139,296 +0.068106,296 +0.068149,296 +0.066075,296 +0.068784,296 +0.068268,296 +0.066233,296 +0.069456,296 +0.067947,296 +0.066422,296 +0.067812,296 +0.068153,296 +0.066867,296 +0.067462,296 +0.068132,296 +0.067164,296 +0.067326,296 +0.068220,296 +0.067258,296 +0.067231,296 +0.068053,296 +0.068183,296 +0.067775,296 +0.068161,296 +0.067675,296 +0.067005,296 +0.068616,296 +0.067729,296 +0.066907,296 +0.068243,296 +0.067927,296 +0.066670,296 +0.068298,296 +0.067857,296 +0.067380,296 +0.068326,296 +0.068842,296 +0.067039,296 +0.068302,296 +0.068213,296 +0.066634,296 +0.068386,296 +0.067673,296 +0.066894,296 +0.068327,296 +0.066926,296 +0.066740,296 +0.067472,296 +0.066996,296 +0.066620,296 +0.067563,296 +0.074082,298 +0.072820,298 +0.073513,298 +0.073754,298 +0.074084,298 +0.073198,298 +0.073715,298 +0.073480,298 +0.073005,298 +0.073204,298 +0.073714,298 +0.073746,298 +0.072662,298 +0.073693,298 +0.073421,298 +0.073221,298 +0.072732,298 +0.073666,298 +0.073410,298 +0.072768,298 +0.073171,298 +0.073607,298 +0.072946,298 +0.072686,298 +0.073423,298 +0.073634,298 +0.074629,298 +0.072765,298 +0.073651,298 +0.073395,298 +0.072872,298 +0.073192,298 +0.073592,298 +0.073454,298 +0.072587,298 +0.073284,298 +0.073709,298 +0.073488,298 +0.072771,298 +0.073605,298 +0.073534,298 +0.073027,298 +0.073515,298 +0.073689,298 +0.073708,298 +0.072601,298 +0.073632,298 +0.073809,298 +0.073004,298 +0.073058,298 +0.073719,298 +0.073876,298 +0.073224,298 +0.073554,298 +0.073837,298 +0.073483,298 +0.073045,298 +0.073656,298 +0.073569,298 +0.073026,298 +0.075732,298 +0.079497,298 +0.077026,298 +0.076725,298 +0.075296,298 +0.074288,298 +0.075321,298 +0.077556,298 +0.077182,298 +0.080477,298 +0.079437,298 +0.079661,298 +0.079812,298 +0.075677,298 +0.074235,298 +0.073422,298 +0.073126,298 +0.072768,298 +0.073769,298 +0.074062,298 +0.073833,298 +0.074786,298 +0.074297,298 +0.073377,298 +0.072905,298 +0.076307,298 +0.078593,298 +0.074184,298 +0.073057,298 +0.073524,298 +0.073492,298 +0.073582,298 +0.072937,298 +0.073603,298 +0.073564,298 +0.072902,298 +0.073522,298 +0.079887,298 +0.083117,298 +0.075722,298 diff --git a/buch/papers/multiplikation/code/meas/test/blas.txt b/buch/papers/multiplikation/code/meas/test/blas.txt new file mode 100644 index 0000000..7b0a9d1 --- /dev/null +++ b/buch/papers/multiplikation/code/meas/test/blas.txt @@ -0,0 +1,14900 @@ +0.000001,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000001,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000001,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000010,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000010,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000010,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000010,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000010,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000002,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000003,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000013,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000005,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000006,18 +0.000007,18 +0.000007,18 +0.000007,18 +0.000006,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000013,18 +0.000004,18 +0.000013,18 +0.000004,18 +0.000013,18 +0.000004,18 +0.000013,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000013,18 +0.000004,18 +0.000013,18 +0.000004,18 +0.000014,18 +0.000004,18 +0.000014,18 +0.000004,18 +0.000014,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000007,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000008,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000011,22 +0.000012,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000016,22 +0.000007,22 +0.000016,22 +0.000007,22 +0.000016,22 +0.000016,22 +0.000016,22 +0.000007,22 +0.000016,22 +0.000016,22 +0.000016,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000016,22 +0.000007,22 +0.000016,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000010,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000010,24 +0.000018,24 +0.000018,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000013,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000020,26 +0.000011,26 +0.000020,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000020,26 +0.000020,26 +0.000021,26 +0.000031,26 +0.000011,26 +0.000019,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000020,26 +0.000020,26 +0.000020,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000015,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000022,28 +0.000022,28 +0.000021,28 +0.000022,28 +0.000021,28 +0.000023,28 +0.000022,28 +0.000023,28 +0.000022,28 +0.000025,28 +0.000025,28 +0.000025,28 +0.000025,28 +0.000025,28 +0.000024,28 +0.000024,28 +0.000025,28 +0.000035,28 +0.000048,28 +0.000055,28 +0.000045,28 +0.000025,28 +0.000025,28 +0.000025,28 +0.000026,28 +0.000025,28 +0.000025,28 +0.000025,28 +0.000025,28 +0.000025,28 +0.000025,28 +0.000025,28 +0.000023,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000020,28 +0.000025,28 +0.000025,28 +0.000025,28 +0.000024,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000025,28 +0.000032,30 +0.000031,30 +0.000030,30 +0.000031,30 +0.000030,30 +0.000030,30 +0.000073,30 +0.000030,30 +0.000030,30 +0.000031,30 +0.000017,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000019,30 +0.000030,30 +0.000030,30 +0.000030,30 +0.000030,30 +0.000030,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000026,30 +0.000029,30 +0.000040,30 +0.000041,30 +0.000041,30 +0.000040,30 +0.000038,30 +0.000042,30 +0.000023,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000027,30 +0.000030,30 +0.000030,30 +0.000040,30 +0.000040,30 +0.000031,30 +0.000028,30 +0.000028,30 +0.000024,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000021,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000021,32 +0.000025,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000028,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000029,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000028,32 +0.000039,32 +0.000043,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000022,32 +0.000028,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000040,32 +0.000038,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000043,32 +0.000047,32 +0.000031,32 +0.000047,34 +0.000039,34 +0.000035,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000027,34 +0.000050,34 +0.000023,34 +0.000023,34 +0.000023,34 +0.000023,34 +0.000023,34 +0.000033,34 +0.000023,34 +0.000042,36 +0.000028,36 +0.000037,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000037,36 +0.000036,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000043,36 +0.000050,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000037,36 +0.000036,36 +0.000037,36 +0.000059,36 +0.000049,36 +0.000027,36 +0.000037,36 +0.000057,36 +0.000048,36 +0.000046,36 +0.000047,36 +0.000027,36 +0.000046,36 +0.000027,36 +0.000027,36 +0.000035,38 +0.000036,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000051,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000042,38 +0.000041,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000051,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000044,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000086,40 +0.000090,40 +0.000051,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000058,40 +0.000062,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000053,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000059,42 +0.000077,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000068,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000068,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000064,42 +0.000058,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000058,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000078,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000078,44 +0.000095,44 +0.000073,44 +0.000096,44 +0.000097,44 +0.000085,44 +0.000064,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000065,44 +0.000064,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000075,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000068,46 +0.000062,46 +0.000078,46 +0.000083,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000061,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000085,46 +0.000072,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000081,46 +0.000133,46 +0.000080,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000061,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000061,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000061,46 +0.000061,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000061,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000097,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000061,46 +0.000062,46 +0.000062,46 +0.000061,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000061,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000061,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000073,48 +0.000069,48 +0.000108,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000090,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000089,48 +0.000069,48 +0.000069,48 +0.000095,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000088,48 +0.000079,48 +0.000099,48 +0.000141,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000091,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000085,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000078,50 +0.000077,50 +0.000092,50 +0.000138,50 +0.000097,50 +0.000151,50 +0.000117,50 +0.000077,50 +0.000077,50 +0.000078,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000098,50 +0.000077,50 +0.000077,50 +0.000078,50 +0.000099,50 +0.000077,50 +0.000078,50 +0.000078,50 +0.000078,50 +0.000117,50 +0.000077,50 +0.000077,50 +0.000078,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000078,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000078,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000078,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000078,50 +0.000077,50 +0.000077,50 +0.000078,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000078,50 +0.000077,50 +0.000077,50 +0.000078,50 +0.000077,50 +0.000150,50 +0.000111,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000078,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000100,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000089,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000131,52 +0.000106,52 +0.000147,52 +0.000130,52 +0.000105,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000123,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000106,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000110,52 +0.000128,52 +0.000153,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000110,52 +0.000095,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000099,54 +0.000116,54 +0.000161,54 +0.000169,54 +0.000144,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000153,54 +0.000096,54 +0.000096,54 +0.000115,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000114,54 +0.000115,54 +0.000170,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000106,54 +0.000196,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000131,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000139,54 +0.000096,54 +0.000130,54 +0.000096,54 +0.000096,54 +0.000120,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000110,56 +0.000125,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000133,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000136,56 +0.000159,56 +0.000159,56 +0.000143,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000126,56 +0.000106,56 +0.000106,56 +0.000125,56 +0.000106,56 +0.000130,56 +0.000135,56 +0.000183,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000172,56 +0.000149,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000119,56 +0.000115,56 +0.000123,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000129,58 +0.000127,58 +0.000117,58 +0.000117,58 +0.000156,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000136,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000136,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000152,58 +0.000138,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000134,58 +0.000153,60 +0.000178,60 +0.000226,60 +0.000188,60 +0.000128,60 +0.000128,60 +0.000128,60 +0.000148,60 +0.000128,60 +0.000128,60 +0.000149,60 +0.000142,60 +0.000132,60 +0.000132,60 +0.000157,60 +0.000190,60 +0.000132,60 +0.000132,60 +0.000132,60 +0.000132,60 +0.000132,60 +0.000132,60 +0.000132,60 +0.000132,60 +0.000132,60 +0.000153,60 +0.000132,60 +0.000161,60 +0.000132,60 +0.000132,60 +0.000132,60 +0.000142,60 +0.000180,60 +0.000141,60 +0.000128,60 +0.000128,60 +0.000128,60 +0.000128,60 +0.000128,60 +0.000128,60 +0.000128,60 +0.000128,60 +0.000128,60 +0.000212,60 +0.000390,60 +0.000275,60 +0.000261,60 +0.000269,60 +0.000234,60 +0.000272,60 +0.000241,60 +0.000238,60 +0.000326,60 +0.000245,60 +0.000182,60 +0.000150,60 +0.000167,60 +0.000153,60 +0.000138,60 +0.000128,60 +0.000159,60 +0.000249,60 +0.000157,60 +0.000128,60 +0.000164,60 +0.000165,60 +0.000128,60 +0.000128,60 +0.000230,60 +0.000176,60 +0.000244,60 +0.000238,60 +0.000162,60 +0.000128,60 +0.000128,60 +0.000170,60 +0.000148,60 +0.000129,60 +0.000142,60 +0.000128,60 +0.000128,60 +0.000128,60 +0.000180,60 +0.000212,60 +0.000189,60 +0.000191,60 +0.000161,60 +0.000143,60 +0.000166,60 +0.000135,60 +0.000135,60 +0.000135,60 +0.000135,60 +0.000135,60 +0.000135,60 +0.000135,60 +0.000142,60 +0.000169,60 +0.000128,60 +0.000128,60 +0.000144,62 +0.000141,62 +0.000141,62 +0.000188,62 +0.000215,62 +0.000213,62 +0.000141,62 +0.000141,62 +0.000141,62 +0.000161,62 +0.000141,62 +0.000161,62 +0.000141,62 +0.000141,62 +0.000141,62 +0.000141,62 +0.000141,62 +0.000141,62 +0.000141,62 +0.000141,62 +0.000141,62 +0.000141,62 +0.000141,62 +0.000167,62 +0.000145,62 +0.000184,62 +0.000145,62 +0.000223,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000165,62 +0.000165,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000178,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000165,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000178,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000150,62 +0.000141,62 +0.000141,62 +0.000141,62 +0.000141,62 +0.000141,62 +0.000141,62 +0.000156,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000198,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000248,64 +0.000255,64 +0.000163,64 +0.000154,64 +0.000154,64 +0.000174,64 +0.000154,64 +0.000174,64 +0.000153,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000190,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000195,64 +0.000192,64 +0.000154,64 +0.000164,64 +0.000216,64 +0.000164,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000168,64 +0.000173,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000173,64 +0.000173,64 +0.000154,64 +0.000154,64 +0.000173,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000173,64 +0.000189,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000173,64 +0.000174,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000172,66 +0.000169,66 +0.000169,66 +0.000194,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000240,66 +0.000283,66 +0.000188,66 +0.000169,66 +0.000169,66 +0.000188,66 +0.000169,66 +0.000189,66 +0.000169,66 +0.000196,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000179,66 +0.000227,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000191,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000179,66 +0.000198,66 +0.000169,66 +0.000169,66 +0.000189,66 +0.000207,66 +0.000169,66 +0.000169,66 +0.000188,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000191,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000186,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000198,68 +0.000307,68 +0.000251,68 +0.000183,68 +0.000183,68 +0.000209,68 +0.000223,68 +0.000345,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000303,68 +0.000331,68 +0.000331,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000255,68 +0.000283,68 +0.000183,68 +0.000201,68 +0.000203,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000215,68 +0.000223,68 +0.000183,68 +0.000203,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000203,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000355,68 +0.000196,68 +0.000183,68 +0.000221,68 +0.000183,68 +0.000256,68 +0.000184,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000246,68 +0.000312,68 +0.000193,68 +0.000183,68 +0.000183,68 +0.000203,68 +0.000203,68 +0.000218,70 +0.000355,70 +0.000199,70 +0.000199,70 +0.000199,70 +0.000199,70 +0.000237,70 +0.000342,70 +0.000334,70 +0.000339,70 +0.000351,70 +0.000373,70 +0.000355,70 +0.000281,70 +0.000363,70 +0.000341,70 +0.000323,70 +0.000200,70 +0.000199,70 +0.000199,70 +0.000199,70 +0.000199,70 +0.000233,70 +0.000348,70 +0.000199,70 +0.000242,70 +0.000199,70 +0.000199,70 +0.000238,70 +0.000199,70 +0.000210,70 +0.000208,70 +0.000199,70 +0.000199,70 +0.000219,70 +0.000199,70 +0.000378,70 +0.000199,70 +0.000199,70 +0.000199,70 +0.000326,70 +0.000209,70 +0.000199,70 +0.000239,70 +0.000199,70 +0.000199,70 +0.000199,70 +0.000200,70 +0.000199,70 +0.000199,70 +0.000199,70 +0.000199,70 +0.000199,70 +0.000199,70 +0.000199,70 +0.000199,70 +0.000199,70 +0.000199,70 +0.000199,70 +0.000341,70 +0.000229,70 +0.000199,70 +0.000291,70 +0.000325,70 +0.000303,70 +0.000199,70 +0.000214,70 +0.000210,70 +0.000210,70 +0.000210,70 +0.000210,70 +0.000214,70 +0.000205,70 +0.000205,70 +0.000210,70 +0.000199,70 +0.000375,70 +0.000347,70 +0.000410,70 +0.000361,70 +0.000362,70 +0.000371,70 +0.000203,70 +0.000199,70 +0.000199,70 +0.000199,70 +0.000382,70 +0.000200,70 +0.000210,70 +0.000345,70 +0.000490,70 +0.000247,70 +0.000255,70 +0.000199,70 +0.000199,70 +0.000359,70 +0.000230,70 +0.000281,70 +0.000210,70 +0.000251,70 +0.000311,72 +0.000259,72 +0.000226,72 +0.000215,72 +0.000235,72 +0.000215,72 +0.000235,72 +0.000367,72 +0.000451,72 +0.000215,72 +0.000215,72 +0.000215,72 +0.000215,72 +0.000215,72 +0.000215,72 +0.000215,72 +0.000215,72 +0.000215,72 +0.000250,72 +0.000215,72 +0.000215,72 +0.000393,72 +0.000215,72 +0.000215,72 +0.000293,72 +0.000309,72 +0.000215,72 +0.000304,72 +0.000325,72 +0.000221,72 +0.000221,72 +0.000221,72 +0.000374,72 +0.000227,72 +0.000215,72 +0.000215,72 +0.000215,72 +0.000244,72 +0.000356,72 +0.000545,72 +0.000385,72 +0.000391,72 +0.000216,72 +0.000215,72 +0.000215,72 +0.000215,72 +0.000420,72 +0.000388,72 +0.000393,72 +0.000223,72 +0.000215,72 +0.000233,72 +0.000270,72 +0.000348,72 +0.000215,72 +0.000215,72 +0.000215,72 +0.000215,72 +0.000215,72 +0.000254,72 +0.000220,72 +0.000390,72 +0.000215,72 +0.000215,72 +0.000257,72 +0.000308,72 +0.000215,72 +0.000235,72 +0.000301,72 +0.000279,72 +0.000215,72 +0.000215,72 +0.000215,72 +0.000215,72 +0.000215,72 +0.000215,72 +0.000215,72 +0.000215,72 +0.000215,72 +0.000215,72 +0.000215,72 +0.000230,72 +0.000351,72 +0.000215,72 +0.000257,72 +0.000314,72 +0.000254,72 +0.000215,72 +0.000215,72 +0.000281,72 +0.000317,72 +0.000390,72 +0.000292,72 +0.000227,72 +0.000234,72 +0.000221,72 +0.000247,72 +0.000250,72 +0.000227,72 +0.000215,72 +0.000344,74 +0.000473,74 +0.000451,74 +0.000574,74 +0.000248,74 +0.000357,74 +0.000234,74 +0.000233,74 +0.000233,74 +0.000350,74 +0.000234,74 +0.000233,74 +0.000312,74 +0.000311,74 +0.000233,74 +0.000233,74 +0.000314,74 +0.000265,74 +0.000233,74 +0.000234,74 +0.000346,74 +0.000273,74 +0.000234,74 +0.000287,74 +0.000351,74 +0.000234,74 +0.000293,74 +0.000363,74 +0.000233,74 +0.000233,74 +0.000239,74 +0.000348,74 +0.000234,74 +0.000234,74 +0.000302,74 +0.000282,74 +0.000234,74 +0.000234,74 +0.000338,74 +0.000243,74 +0.000233,74 +0.000260,74 +0.000344,74 +0.000234,74 +0.000233,74 +0.000238,74 +0.000346,74 +0.000233,74 +0.000233,74 +0.000299,74 +0.000465,74 +0.000260,74 +0.000274,74 +0.000246,74 +0.000246,74 +0.000287,74 +0.000351,74 +0.000233,74 +0.000233,74 +0.000233,74 +0.000460,74 +0.000435,74 +0.000513,74 +0.000318,74 +0.000234,74 +0.000354,74 +0.000234,74 +0.000233,74 +0.000299,74 +0.000326,74 +0.000233,74 +0.000233,74 +0.000316,74 +0.000256,74 +0.000233,74 +0.000234,74 +0.000351,74 +0.000234,74 +0.000233,74 +0.000234,74 +0.000376,74 +0.000233,74 +0.000253,74 +0.000364,74 +0.000276,74 +0.000234,74 +0.000234,74 +0.000362,74 +0.000234,74 +0.000233,74 +0.000238,74 +0.000346,74 +0.000233,74 +0.000233,74 +0.000313,74 +0.000270,74 +0.000233,74 +0.000269,74 +0.000347,74 +0.000233,74 +0.000260,76 +0.000270,76 +0.000352,76 +0.000252,76 +0.000251,76 +0.000368,76 +0.000251,76 +0.000286,76 +0.000487,76 +0.000252,76 +0.000315,76 +0.000396,76 +0.000262,76 +0.000251,76 +0.000269,76 +0.000351,76 +0.000251,76 +0.000251,76 +0.000444,76 +0.000423,76 +0.000509,76 +0.000443,76 +0.000575,76 +0.000445,76 +0.000520,76 +0.000373,76 +0.000252,76 +0.000372,76 +0.000251,76 +0.000251,76 +0.000279,76 +0.000341,76 +0.000251,76 +0.000312,76 +0.000423,76 +0.000252,76 +0.000251,76 +0.000366,76 +0.000252,76 +0.000251,76 +0.000256,76 +0.000356,76 +0.000252,76 +0.000251,76 +0.000361,76 +0.000251,76 +0.000251,76 +0.000316,76 +0.000334,76 +0.000252,76 +0.000251,76 +0.000362,76 +0.000252,76 +0.000251,76 +0.000268,76 +0.000343,76 +0.000252,76 +0.000251,76 +0.000360,76 +0.000346,76 +0.000320,76 +0.000341,76 +0.000279,76 +0.000296,76 +0.000336,76 +0.000273,76 +0.000251,76 +0.000251,76 +0.000470,76 +0.000439,76 +0.000464,76 +0.000459,76 +0.000586,76 +0.000261,76 +0.000258,76 +0.000345,76 +0.000258,76 +0.000258,76 +0.000283,76 +0.000318,76 +0.000258,76 +0.000258,76 +0.000258,76 +0.000258,76 +0.000258,76 +0.000295,76 +0.000420,76 +0.000291,76 +0.000251,76 +0.000284,76 +0.000251,76 +0.000251,76 +0.000276,76 +0.000405,76 +0.000251,76 +0.000251,76 +0.000251,76 +0.000251,76 +0.000251,76 +0.000287,76 +0.000432,78 +0.000271,78 +0.000271,78 +0.000406,78 +0.000271,78 +0.000271,78 +0.000271,78 +0.000271,78 +0.000271,78 +0.000271,78 +0.000420,78 +0.000271,78 +0.000313,78 +0.000500,78 +0.000325,78 +0.000278,78 +0.000298,78 +0.000308,78 +0.000271,78 +0.000427,78 +0.000271,78 +0.000271,78 +0.000271,78 +0.000382,78 +0.000539,78 +0.000500,78 +0.000324,78 +0.000271,78 +0.000271,78 +0.000271,78 +0.000271,78 +0.000271,78 +0.000271,78 +0.000271,78 +0.000400,78 +0.000311,78 +0.000305,78 +0.000360,78 +0.000283,78 +0.000292,78 +0.000281,78 +0.000313,78 +0.000316,78 +0.000280,78 +0.000294,78 +0.000292,78 +0.000295,78 +0.000284,78 +0.000282,78 +0.000271,78 +0.000320,78 +0.000271,78 +0.000347,78 +0.000315,78 +0.000271,78 +0.000271,78 +0.000308,78 +0.000271,78 +0.000271,78 +0.000271,78 +0.000271,78 +0.000271,78 +0.000271,78 +0.000271,78 +0.000306,78 +0.000271,78 +0.000271,78 +0.000341,78 +0.000384,78 +0.000271,78 +0.000291,78 +0.000291,78 +0.000271,78 +0.000271,78 +0.000271,78 +0.000271,78 +0.000271,78 +0.000271,78 +0.000391,78 +0.000474,78 +0.000490,78 +0.000437,78 +0.000272,78 +0.000271,78 +0.000271,78 +0.000282,78 +0.000271,78 +0.000271,78 +0.000271,78 +0.000271,78 +0.000309,78 +0.000272,78 +0.000271,78 +0.000271,78 +0.000271,78 +0.000271,78 +0.000271,78 +0.000310,78 +0.000271,78 +0.000315,78 +0.000293,80 +0.000310,80 +0.000290,80 +0.000290,80 +0.000323,80 +0.000290,80 +0.000291,80 +0.000290,80 +0.000291,80 +0.000290,80 +0.000290,80 +0.000291,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000330,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000474,80 +0.000291,80 +0.000310,80 +0.000311,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000328,80 +0.000290,80 +0.000290,80 +0.000450,80 +0.000537,80 +0.000440,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000332,80 +0.000291,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000330,80 +0.000290,80 +0.000313,80 +0.000290,80 +0.000314,80 +0.000290,80 +0.000290,80 +0.000291,80 +0.000291,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000301,80 +0.000333,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000310,80 +0.000454,80 +0.000291,80 +0.000448,80 +0.000310,80 +0.000335,80 +0.000291,80 +0.000290,80 +0.000291,80 +0.000291,80 +0.000337,80 +0.000592,80 +0.000518,80 +0.000362,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000317,80 +0.000291,80 +0.000290,80 +0.000290,80 +0.000291,80 +0.000291,80 +0.000290,80 +0.000324,82 +0.000313,82 +0.000313,82 +0.000473,82 +0.000313,82 +0.000366,82 +0.000313,82 +0.000352,82 +0.000313,82 +0.000313,82 +0.000313,82 +0.000313,82 +0.000469,82 +0.000313,82 +0.000313,82 +0.000313,82 +0.000313,82 +0.000353,82 +0.000464,82 +0.000313,82 +0.000313,82 +0.000313,82 +0.000313,82 +0.000313,82 +0.000313,82 +0.000313,82 +0.000472,82 +0.000333,82 +0.000323,82 +0.000526,82 +0.000313,82 +0.000312,82 +0.000312,82 +0.000476,82 +0.000555,82 +0.000576,82 +0.000616,82 +0.000313,82 +0.000356,82 +0.000313,82 +0.000386,82 +0.000313,82 +0.000313,82 +0.000313,82 +0.000393,82 +0.000392,82 +0.000313,82 +0.000313,82 +0.000313,82 +0.000343,82 +0.000332,82 +0.000336,82 +0.000313,82 +0.000503,82 +0.000313,82 +0.000313,82 +0.000313,82 +0.000313,82 +0.000313,82 +0.000313,82 +0.000313,82 +0.000352,82 +0.000313,82 +0.000313,82 +0.000313,82 +0.000468,82 +0.000313,82 +0.000313,82 +0.000424,82 +0.000313,82 +0.000314,82 +0.000421,82 +0.000461,82 +0.000313,82 +0.000332,82 +0.000354,82 +0.000313,82 +0.000313,82 +0.000313,82 +0.000484,82 +0.000571,82 +0.000426,82 +0.000313,82 +0.000353,82 +0.000476,82 +0.000312,82 +0.000367,82 +0.000362,82 +0.000312,82 +0.000312,82 +0.000312,82 +0.000312,82 +0.000353,82 +0.000410,82 +0.000312,82 +0.000348,82 +0.000314,82 +0.000352,82 +0.000454,82 +0.000326,82 +0.000377,84 +0.000335,84 +0.000336,84 +0.000340,84 +0.000470,84 +0.000336,84 +0.000376,84 +0.000335,84 +0.000336,84 +0.000492,84 +0.000336,84 +0.000336,84 +0.000336,84 +0.000336,84 +0.000359,84 +0.000449,84 +0.000375,84 +0.000438,84 +0.000415,84 +0.000430,84 +0.000406,84 +0.000336,84 +0.000335,84 +0.000336,84 +0.000343,84 +0.000608,84 +0.000601,84 +0.000591,84 +0.000681,84 +0.000572,84 +0.000592,84 +0.000335,84 +0.000335,84 +0.000335,84 +0.000389,84 +0.000549,84 +0.000385,84 +0.000390,84 +0.000335,84 +0.000375,84 +0.000360,84 +0.000399,84 +0.000399,84 +0.000348,84 +0.000383,84 +0.000377,84 +0.000349,84 +0.000488,84 +0.000384,84 +0.000335,84 +0.000442,84 +0.000337,84 +0.000336,84 +0.000336,84 +0.000336,84 +0.000451,84 +0.000413,84 +0.000463,84 +0.000488,84 +0.000388,84 +0.000385,84 +0.000336,84 +0.000335,84 +0.000624,84 +0.000716,84 +0.000602,84 +0.000619,84 +0.000336,84 +0.000479,84 +0.000336,84 +0.000336,84 +0.000335,84 +0.000336,84 +0.000445,84 +0.000424,84 +0.000336,84 +0.000446,84 +0.000336,84 +0.000373,84 +0.000336,84 +0.000356,84 +0.000335,84 +0.000372,84 +0.000336,84 +0.000522,84 +0.000336,84 +0.000341,84 +0.000438,84 +0.000336,84 +0.000444,84 +0.000336,84 +0.000336,84 +0.000336,84 +0.000335,84 +0.000375,84 +0.000489,84 +0.000336,84 +0.000335,84 +0.000359,84 +0.000494,84 +0.000477,86 +0.000420,86 +0.000358,86 +0.000358,86 +0.000406,86 +0.000458,86 +0.000697,86 +0.000648,86 +0.000407,86 +0.000369,86 +0.000358,86 +0.000499,86 +0.000358,86 +0.000526,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000395,86 +0.000379,86 +0.000358,86 +0.000434,86 +0.000358,86 +0.000358,86 +0.000489,86 +0.000388,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000387,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000532,86 +0.000368,86 +0.000378,86 +0.000379,86 +0.000393,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000472,86 +0.000666,86 +0.000555,86 +0.000358,86 +0.000358,86 +0.000391,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000393,86 +0.000407,86 +0.000358,86 +0.000392,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000384,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000401,86 +0.000502,86 +0.000358,86 +0.000434,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000610,86 +0.000596,86 +0.000358,86 +0.000444,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000393,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000452,88 +0.000402,88 +0.000382,88 +0.000416,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000381,88 +0.000412,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000434,88 +0.000480,88 +0.000382,88 +0.000421,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000426,88 +0.000730,88 +0.000542,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000417,88 +0.000382,88 +0.000416,88 +0.000382,88 +0.000402,88 +0.000382,88 +0.000415,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000431,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000381,88 +0.000382,88 +0.000382,88 +0.000381,88 +0.000382,88 +0.000456,88 +0.000544,88 +0.000403,88 +0.000414,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000381,88 +0.000442,88 +0.000729,88 +0.000707,88 +0.000537,88 +0.000382,88 +0.000382,88 +0.000381,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000628,88 +0.000746,88 +0.000518,88 +0.000409,88 +0.000569,88 +0.000488,88 +0.000509,88 +0.000535,88 +0.000407,88 +0.000392,88 +0.000466,88 +0.000425,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000458,90 +0.000408,90 +0.000408,90 +0.000590,90 +0.000408,90 +0.000488,90 +0.000408,90 +0.000428,90 +0.000408,90 +0.000447,90 +0.000408,90 +0.000447,90 +0.000510,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000450,90 +0.000408,90 +0.000409,90 +0.000408,90 +0.000408,90 +0.000448,90 +0.000428,90 +0.000408,90 +0.000444,90 +0.000446,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000446,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000582,90 +0.000417,90 +0.000428,90 +0.000428,90 +0.000408,90 +0.000440,90 +0.000408,90 +0.000408,90 +0.000438,90 +0.000569,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000444,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000442,90 +0.000418,90 +0.000420,90 +0.000475,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000446,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000534,90 +0.000467,90 +0.000427,90 +0.000429,90 +0.000440,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000418,90 +0.000500,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000441,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000445,92 +0.000435,92 +0.000466,92 +0.000452,92 +0.000476,92 +0.000467,92 +0.000435,92 +0.000435,92 +0.000434,92 +0.000434,92 +0.000434,92 +0.000434,92 +0.000470,92 +0.000444,92 +0.000435,92 +0.000434,92 +0.000435,92 +0.000463,92 +0.000532,92 +0.000593,92 +0.000465,92 +0.000486,92 +0.000435,92 +0.000435,92 +0.000435,92 +0.000435,92 +0.000484,92 +0.000526,92 +0.000434,92 +0.000434,92 +0.000457,92 +0.000434,92 +0.000434,92 +0.000434,92 +0.000434,92 +0.000434,92 +0.000435,92 +0.000435,92 +0.000434,92 +0.000537,92 +0.000475,92 +0.000434,92 +0.000503,92 +0.000435,92 +0.000435,92 +0.000434,92 +0.000434,92 +0.000465,92 +0.000434,92 +0.000434,92 +0.000434,92 +0.000434,92 +0.000434,92 +0.000434,92 +0.000434,92 +0.000434,92 +0.000579,92 +0.000434,92 +0.000474,92 +0.000434,92 +0.000435,92 +0.000434,92 +0.000434,92 +0.000435,92 +0.000537,92 +0.000470,92 +0.000434,92 +0.000434,92 +0.000434,92 +0.000434,92 +0.000434,92 +0.000434,92 +0.000454,92 +0.000434,92 +0.000470,92 +0.000434,92 +0.000468,92 +0.000478,92 +0.000435,92 +0.000466,92 +0.000434,92 +0.000454,92 +0.000434,92 +0.000473,92 +0.000446,92 +0.000451,92 +0.000434,92 +0.000434,92 +0.000434,92 +0.000434,92 +0.000434,92 +0.000434,92 +0.000482,92 +0.000619,92 +0.000445,92 +0.000463,92 +0.000434,92 +0.000434,92 +0.000434,92 +0.000434,92 +0.000484,94 +0.000565,94 +0.000493,94 +0.000463,94 +0.000463,94 +0.000463,94 +0.000463,94 +0.000463,94 +0.000463,94 +0.000507,94 +0.000740,94 +0.000755,94 +0.000503,94 +0.000684,94 +0.000541,94 +0.000739,94 +0.000463,94 +0.000472,94 +0.000596,94 +0.000465,94 +0.000463,94 +0.000463,94 +0.000463,94 +0.000496,94 +0.000463,94 +0.000580,94 +0.000588,94 +0.000511,94 +0.000507,94 +0.000462,94 +0.000482,94 +0.000495,94 +0.000502,94 +0.000566,94 +0.000463,94 +0.000478,94 +0.000475,94 +0.000477,94 +0.000462,94 +0.000487,94 +0.000463,94 +0.000462,94 +0.000462,94 +0.000463,94 +0.000530,94 +0.000508,94 +0.000463,94 +0.000538,94 +0.000463,94 +0.000463,94 +0.000463,94 +0.000463,94 +0.000463,94 +0.000463,94 +0.000463,94 +0.000463,94 +0.000496,94 +0.000475,94 +0.000478,94 +0.000526,94 +0.000581,94 +0.000483,94 +0.000487,94 +0.000462,94 +0.000494,94 +0.000463,94 +0.000463,94 +0.000565,94 +0.000606,94 +0.000495,94 +0.000463,94 +0.000563,94 +0.000500,94 +0.000657,94 +0.000624,94 +0.000506,94 +0.000488,94 +0.000515,94 +0.000580,94 +0.000657,94 +0.000534,94 +0.000529,94 +0.000533,94 +0.000540,94 +0.000562,94 +0.000494,94 +0.000537,94 +0.000565,94 +0.000878,94 +0.000931,94 +0.000894,94 +0.000959,94 +0.000763,94 +0.000537,94 +0.000584,94 +0.000978,94 +0.001019,94 +0.001073,94 +0.000778,94 +0.000477,94 +0.000535,96 +0.000582,96 +0.000641,96 +0.000605,96 +0.000597,96 +0.000584,96 +0.000516,96 +0.000534,96 +0.000892,96 +0.000842,96 +0.000522,96 +0.000502,96 +0.000502,96 +0.000609,96 +0.000636,96 +0.000555,96 +0.000502,96 +0.000502,96 +0.000502,96 +0.000502,96 +0.000514,96 +0.000489,96 +0.000504,96 +0.000564,96 +0.000502,96 +0.000707,96 +0.000916,96 +0.000739,96 +0.000601,96 +0.000697,96 +0.000612,96 +0.000552,96 +0.000490,96 +0.000489,96 +0.000489,96 +0.000489,96 +0.000530,96 +0.000490,96 +0.000490,96 +0.000490,96 +0.000490,96 +0.000490,96 +0.000489,96 +0.000560,96 +0.000598,96 +0.000510,96 +0.000529,96 +0.000489,96 +0.000490,96 +0.000490,96 +0.000498,96 +0.000504,96 +0.000568,96 +0.000502,96 +0.000509,96 +0.000977,96 +0.000834,96 +0.000513,96 +0.000615,96 +0.000572,96 +0.000549,96 +0.000577,96 +0.000508,96 +0.000490,96 +0.000490,96 +0.000527,96 +0.000489,96 +0.000498,96 +0.000502,96 +0.000510,96 +0.000490,96 +0.000489,96 +0.000490,96 +0.000549,96 +0.000661,96 +0.000490,96 +0.000534,96 +0.000490,96 +0.000490,96 +0.000490,96 +0.000498,96 +0.000546,96 +0.000549,96 +0.000550,96 +0.000503,96 +0.000772,96 +0.000877,96 +0.000647,96 +0.000529,96 +0.001050,96 +0.000608,96 +0.000727,96 +0.000565,96 +0.000638,96 +0.000607,96 +0.000500,96 +0.000668,96 +0.000520,96 +0.000490,96 +0.000490,96 +0.000576,98 +0.000523,98 +0.000704,98 +0.000562,98 +0.000563,98 +0.000523,98 +0.000523,98 +0.000564,98 +0.000581,98 +0.000601,98 +0.000634,98 +0.000532,98 +0.000543,98 +0.000626,98 +0.000597,98 +0.000598,98 +0.000631,98 +0.000684,98 +0.000586,98 +0.000643,98 +0.000603,98 +0.000523,98 +0.000523,98 +0.000523,98 +0.000523,98 +0.000523,98 +0.000523,98 +0.000523,98 +0.000555,98 +0.000523,98 +0.000523,98 +0.000663,98 +0.000564,98 +0.000582,98 +0.000538,98 +0.000563,98 +0.000523,98 +0.000563,98 +0.000601,98 +0.000588,98 +0.000581,98 +0.000543,98 +0.000586,98 +0.000556,98 +0.000582,98 +0.000523,98 +0.000523,98 +0.000523,98 +0.000725,98 +0.000686,98 +0.000551,98 +0.000551,98 +0.000562,98 +0.000550,98 +0.000536,98 +0.000536,98 +0.000567,98 +0.000523,98 +0.000523,98 +0.000523,98 +0.000533,98 +0.000722,98 +0.000543,98 +0.000594,98 +0.000523,98 +0.000523,98 +0.000523,98 +0.000562,98 +0.000543,98 +0.000605,98 +0.000593,98 +0.000553,98 +0.000562,98 +0.000701,98 +0.000523,98 +0.000763,98 +0.000631,98 +0.000759,98 +0.000582,98 +0.000523,98 +0.000523,98 +0.000523,98 +0.000523,98 +0.000523,98 +0.000565,98 +0.000523,98 +0.000523,98 +0.000523,98 +0.000523,98 +0.000523,98 +0.000702,98 +0.000568,98 +0.000563,98 +0.000523,98 +0.000523,98 +0.000552,98 +0.000552,98 +0.000722,98 +0.000579,98 +0.000602,98 +0.000600,100 +0.000567,100 +0.000610,100 +0.000552,100 +0.000695,100 +0.000765,100 +0.000756,100 +0.000605,100 +0.000552,100 +0.000552,100 +0.000552,100 +0.000591,100 +0.000552,100 +0.000552,100 +0.000552,100 +0.000552,100 +0.000552,100 +0.000552,100 +0.000663,100 +0.000571,100 +0.000591,100 +0.000552,100 +0.000552,100 +0.000592,100 +0.000620,100 +0.000613,100 +0.000572,100 +0.000716,100 +0.000567,100 +0.000675,100 +0.000552,100 +0.000552,100 +0.000766,100 +0.000738,100 +0.000699,100 +0.000611,100 +0.000552,100 +0.000552,100 +0.000598,100 +0.000552,100 +0.000552,100 +0.000552,100 +0.000552,100 +0.000552,100 +0.000552,100 +0.000643,100 +0.000704,100 +0.000612,100 +0.000552,100 +0.000552,100 +0.000552,100 +0.000591,100 +0.000704,100 +0.000632,100 +0.000552,100 +0.000711,100 +0.000567,100 +0.000650,100 +0.000635,100 +0.000670,100 +0.001211,100 +0.000648,100 +0.000753,100 +0.000768,100 +0.000696,100 +0.000578,100 +0.000625,100 +0.000567,100 +0.000567,100 +0.000603,100 +0.000567,100 +0.000627,100 +0.000567,100 +0.000593,100 +0.000567,100 +0.000567,100 +0.000594,100 +0.000573,100 +0.000749,100 +0.000572,100 +0.000587,100 +0.000678,100 +0.000579,100 +0.000580,100 +0.000552,100 +0.000642,100 +0.000743,100 +0.000706,100 +0.000611,100 +0.000592,100 +0.000553,100 +0.000552,100 +0.000552,100 +0.000553,100 +0.000552,100 +0.000553,100 +0.000595,100 +0.000553,100 +0.000553,100 +0.000752,100 +0.000619,102 +0.000624,102 +0.000599,102 +0.000604,102 +0.000623,102 +0.000663,102 +0.000725,102 +0.000620,102 +0.000668,102 +0.000805,102 +0.000604,102 +0.000584,102 +0.000627,102 +0.000769,102 +0.000735,102 +0.000616,102 +0.000610,102 +0.000584,102 +0.000584,102 +0.000584,102 +0.000584,102 +0.000622,102 +0.000584,102 +0.000584,102 +0.000584,102 +0.000741,102 +0.000642,102 +0.000647,102 +0.000604,102 +0.000584,102 +0.000623,102 +0.000662,102 +0.000776,102 +0.000644,102 +0.000625,102 +0.000584,102 +0.000585,102 +0.000584,102 +0.000584,102 +0.000739,102 +0.000766,102 +0.000677,102 +0.000624,102 +0.000585,102 +0.000584,102 +0.000584,102 +0.000620,102 +0.000585,102 +0.000584,102 +0.000584,102 +0.000584,102 +0.000606,102 +0.000776,102 +0.000668,102 +0.000584,102 +0.000584,102 +0.000584,102 +0.000624,102 +0.000783,102 +0.000739,102 +0.000584,102 +0.000584,102 +0.000584,102 +0.000584,102 +0.000584,102 +0.000584,102 +0.000660,102 +0.000688,102 +0.000643,102 +0.000584,102 +0.000584,102 +0.000584,102 +0.000618,102 +0.000584,102 +0.000584,102 +0.000584,102 +0.000584,102 +0.000584,102 +0.000674,102 +0.000626,102 +0.000731,102 +0.000665,102 +0.000584,102 +0.000623,102 +0.000663,102 +0.000700,102 +0.000696,102 +0.000584,102 +0.000584,102 +0.000585,102 +0.000595,102 +0.000630,102 +0.000584,102 +0.000623,102 +0.000604,102 +0.000623,102 +0.000585,102 +0.000584,102 +0.000627,102 +0.000584,102 +0.000631,104 +0.000617,104 +0.000617,104 +0.000617,104 +0.000663,104 +0.000839,104 +0.000650,104 +0.000641,104 +0.000617,104 +0.000617,104 +0.000691,104 +0.000753,104 +0.000980,104 +0.000890,104 +0.000617,104 +0.000650,104 +0.000626,104 +0.000617,104 +0.001098,104 +0.000670,104 +0.000933,104 +0.000782,104 +0.000709,104 +0.000728,104 +0.000733,104 +0.000617,104 +0.000644,104 +0.000617,104 +0.000784,104 +0.000660,104 +0.000646,104 +0.000617,104 +0.000648,104 +0.000784,104 +0.000789,104 +0.000865,104 +0.000654,104 +0.000633,104 +0.000655,104 +0.000617,104 +0.000618,104 +0.000638,104 +0.000656,104 +0.000617,104 +0.000698,104 +0.000617,104 +0.000617,104 +0.000617,104 +0.000617,104 +0.000617,104 +0.000653,104 +0.000617,104 +0.000617,104 +0.000808,104 +0.000636,104 +0.000657,104 +0.000654,104 +0.000617,104 +0.000794,104 +0.000804,104 +0.000651,104 +0.000640,104 +0.000643,104 +0.000617,104 +0.000617,104 +0.000617,104 +0.000617,104 +0.000656,104 +0.000681,104 +0.000656,104 +0.000617,104 +0.000617,104 +0.000617,104 +0.000617,104 +0.000617,104 +0.000642,104 +0.000617,104 +0.000617,104 +0.000680,104 +0.000785,104 +0.000661,104 +0.000648,104 +0.000617,104 +0.000656,104 +0.000754,104 +0.000617,104 +0.000617,104 +0.000644,104 +0.000617,104 +0.000633,104 +0.000617,104 +0.000617,104 +0.000617,104 +0.000685,104 +0.000637,104 +0.000656,104 +0.000617,104 +0.000617,104 +0.000617,104 +0.000630,104 +0.000679,106 +0.000652,106 +0.000652,106 +0.000651,106 +0.000836,106 +0.000702,106 +0.000674,106 +0.000691,106 +0.000803,106 +0.000652,106 +0.000652,106 +0.000696,106 +0.000652,106 +0.000652,106 +0.000652,106 +0.000652,106 +0.000652,106 +0.000681,106 +0.000691,106 +0.000671,106 +0.000690,106 +0.000651,106 +0.000653,106 +0.000679,106 +0.000652,106 +0.000652,106 +0.000652,106 +0.000652,106 +0.000652,106 +0.000744,106 +0.000651,106 +0.000652,106 +0.000651,106 +0.000652,106 +0.000652,106 +0.000656,106 +0.000654,106 +0.000652,106 +0.000651,106 +0.000652,106 +0.000652,106 +0.000654,106 +0.000652,106 +0.000691,106 +0.000652,106 +0.000691,106 +0.000651,106 +0.000656,106 +0.000652,106 +0.000651,106 +0.000652,106 +0.000652,106 +0.000652,106 +0.000654,106 +0.000711,106 +0.000652,106 +0.000652,106 +0.000652,106 +0.000652,106 +0.000656,106 +0.000652,106 +0.000652,106 +0.000652,106 +0.000652,106 +0.000656,106 +0.000654,106 +0.000652,106 +0.000652,106 +0.001086,106 +0.000704,106 +0.000987,106 +0.000778,106 +0.000766,106 +0.000692,106 +0.000831,106 +0.000699,106 +0.000692,106 +0.000752,106 +0.000652,106 +0.000651,106 +0.000652,106 +0.000652,106 +0.000685,106 +0.000652,106 +0.000652,106 +0.000652,106 +0.000652,106 +0.000652,106 +0.000690,106 +0.000652,106 +0.000652,106 +0.000651,106 +0.000691,106 +0.000652,106 +0.000696,106 +0.000652,106 +0.000652,106 +0.000651,106 +0.000652,106 +0.000652,106 +0.000730,108 +0.000690,108 +0.000752,108 +0.000689,108 +0.000689,108 +0.000726,108 +0.000690,108 +0.000689,108 +0.000690,108 +0.000690,108 +0.000769,108 +0.000729,108 +0.000690,108 +0.000690,108 +0.000690,108 +0.000690,108 +0.000728,108 +0.000711,108 +0.000728,108 +0.000689,108 +0.000689,108 +0.000689,108 +0.000694,108 +0.000689,108 +0.000689,108 +0.000689,108 +0.000753,108 +0.000709,108 +0.000715,108 +0.000690,108 +0.000690,108 +0.000690,108 +0.000690,108 +0.000690,108 +0.000696,108 +0.000690,108 +0.000690,108 +0.000690,108 +0.000690,108 +0.000700,108 +0.000721,108 +0.000728,108 +0.000689,108 +0.000689,108 +0.000689,108 +0.000694,108 +0.000689,108 +0.000689,108 +0.000689,108 +0.000689,108 +0.000752,108 +0.000692,108 +0.000690,108 +0.000690,108 +0.000689,108 +0.000690,108 +0.000689,108 +0.000694,108 +0.000690,108 +0.000690,108 +0.000690,108 +0.000690,108 +0.000689,108 +0.000731,108 +0.000690,108 +0.000729,108 +0.000690,108 +0.000690,108 +0.000694,108 +0.000689,108 +0.000689,108 +0.000690,108 +0.000689,108 +0.000690,108 +0.000711,108 +0.000689,108 +0.000689,108 +0.000689,108 +0.000689,108 +0.000689,108 +0.000693,108 +0.000689,108 +0.000689,108 +0.000689,108 +0.000689,108 +0.000689,108 +0.000691,108 +0.000721,108 +0.000698,108 +0.000728,108 +0.000689,108 +0.000694,108 +0.000689,108 +0.000689,108 +0.000689,108 +0.000689,108 +0.000689,108 +0.000691,108 +0.000689,108 +0.000689,108 +0.000739,110 +0.000726,110 +0.000726,110 +0.000731,110 +0.000726,110 +0.000785,110 +0.000726,110 +0.000726,110 +0.000729,110 +0.000727,110 +0.000726,110 +0.000765,110 +0.000726,110 +0.000767,110 +0.000882,110 +0.000767,110 +0.000752,110 +0.000763,110 +0.000796,110 +0.000783,110 +0.000819,110 +0.000881,110 +0.000726,110 +0.000726,110 +0.000764,110 +0.000726,110 +0.000726,110 +0.000726,110 +0.000761,110 +0.000780,110 +0.000726,110 +0.000748,110 +0.000757,110 +0.000757,110 +0.000772,110 +0.000726,110 +0.000726,110 +0.000726,110 +0.000726,110 +0.000726,110 +0.000764,110 +0.000726,110 +0.000726,110 +0.000726,110 +0.000726,110 +0.000772,110 +0.000726,110 +0.000726,110 +0.000726,110 +0.000729,110 +0.000788,110 +0.000890,110 +0.000726,110 +0.000726,110 +0.000726,110 +0.000769,110 +0.000754,110 +0.000767,110 +0.000726,110 +0.000726,110 +0.000726,110 +0.000749,110 +0.000726,110 +0.000728,110 +0.000737,110 +0.000922,110 +0.000800,110 +0.000726,110 +0.000726,110 +0.000726,110 +0.000726,110 +0.000726,110 +0.000749,110 +0.000726,110 +0.000726,110 +0.000726,110 +0.000726,110 +0.000766,110 +0.000746,110 +0.000765,110 +0.000726,110 +0.000726,110 +0.000726,110 +0.000763,110 +0.000729,110 +0.000726,110 +0.000726,110 +0.000726,110 +0.000765,110 +0.000726,110 +0.000726,110 +0.000726,110 +0.000726,110 +0.000726,110 +0.000749,110 +0.000726,110 +0.000726,110 +0.000726,110 +0.000726,110 +0.000751,110 +0.000817,112 +0.000763,112 +0.000803,112 +0.000764,112 +0.000766,112 +0.000763,112 +0.000764,112 +0.000763,112 +0.000763,112 +0.000809,112 +0.000763,112 +0.000763,112 +0.000763,112 +0.000763,112 +0.000763,112 +0.000765,112 +0.000763,112 +0.000763,112 +0.000763,112 +0.000763,112 +0.000768,112 +0.000763,112 +0.000802,112 +0.000802,112 +0.000763,112 +0.000766,112 +0.000763,112 +0.000763,112 +0.000763,112 +0.000763,112 +0.000767,112 +0.000763,112 +0.000763,112 +0.000763,112 +0.000763,112 +0.000767,112 +0.000763,112 +0.000763,112 +0.000763,112 +0.000763,112 +0.000763,112 +0.000767,112 +0.000763,112 +0.000802,112 +0.000763,112 +0.000895,112 +0.000818,112 +0.000801,112 +0.000821,112 +0.000797,112 +0.000868,112 +0.000816,112 +0.000763,112 +0.000783,112 +0.000763,112 +0.000763,112 +0.000786,112 +0.000764,112 +0.000763,112 +0.000763,112 +0.000763,112 +0.000788,112 +0.000764,112 +0.000763,112 +0.000802,112 +0.000763,112 +0.000825,112 +0.000763,112 +0.000763,112 +0.000763,112 +0.000763,112 +0.000857,112 +0.000764,112 +0.000764,112 +0.000763,112 +0.000763,112 +0.000788,112 +0.000764,112 +0.000763,112 +0.000763,112 +0.000763,112 +0.000801,112 +0.000822,112 +0.000946,112 +0.000824,112 +0.000814,112 +0.000841,112 +0.000804,112 +0.000763,112 +0.000763,112 +0.000763,112 +0.000800,112 +0.000763,112 +0.000763,112 +0.000837,112 +0.000916,112 +0.000820,112 +0.000763,112 +0.000763,112 +0.000763,112 +0.000827,114 +0.000849,114 +0.000812,114 +0.000811,114 +0.000812,114 +0.000811,114 +0.000885,114 +0.000831,114 +0.000851,114 +0.000812,114 +0.000812,114 +0.000850,114 +0.000812,114 +0.000812,114 +0.000812,114 +0.000812,114 +0.000836,114 +0.000812,114 +0.000812,114 +0.000812,114 +0.000812,114 +0.000847,114 +0.000811,114 +0.000811,114 +0.000811,114 +0.000811,114 +0.000874,114 +0.000811,114 +0.000851,114 +0.000812,114 +0.000839,114 +0.000811,114 +0.000812,114 +0.000811,114 +0.000811,114 +0.000834,114 +0.000812,114 +0.000811,114 +0.000811,114 +0.000862,114 +0.000836,114 +0.000812,114 +0.000812,114 +0.000812,114 +0.000812,114 +0.000839,114 +0.000812,114 +0.000851,114 +0.000851,114 +0.000812,114 +0.000837,114 +0.000811,114 +0.000811,114 +0.000811,114 +0.000811,114 +0.000839,114 +0.000812,114 +0.000811,114 +0.000811,114 +0.000811,114 +0.000816,114 +0.000812,114 +0.000812,114 +0.000811,114 +0.000864,114 +0.000812,114 +0.000812,114 +0.000850,114 +0.000812,114 +0.000858,114 +0.000978,114 +0.000837,114 +0.000856,114 +0.000860,114 +0.000867,114 +0.000872,114 +0.000832,114 +0.000812,114 +0.000812,114 +0.000847,114 +0.000811,114 +0.000811,114 +0.000811,114 +0.000835,114 +0.000811,114 +0.000812,114 +0.000811,114 +0.000851,114 +0.000876,114 +0.000811,114 +0.000811,114 +0.000811,114 +0.000811,114 +0.000845,114 +0.000814,114 +0.000811,114 +0.000811,114 +0.000811,114 +0.000816,114 +0.000811,114 +0.000870,116 +0.000850,116 +0.000850,116 +0.000932,116 +0.000851,116 +0.000850,116 +0.000850,116 +0.000925,116 +0.000890,116 +0.000850,116 +0.000850,116 +0.000850,116 +0.000852,116 +0.000850,116 +0.000850,116 +0.000850,116 +0.000850,116 +0.000854,116 +0.000850,116 +0.000850,116 +0.000850,116 +0.000931,116 +0.000851,116 +0.000851,116 +0.000850,116 +0.000850,116 +0.000920,116 +0.000850,116 +0.000889,116 +0.000850,116 +0.000850,116 +0.000873,116 +0.000851,116 +0.000850,116 +0.000851,116 +0.000855,116 +0.000851,116 +0.000850,116 +0.000850,116 +0.000850,116 +0.000853,116 +0.000850,116 +0.000850,116 +0.000850,116 +0.000850,116 +0.000855,116 +0.000890,116 +0.000889,116 +0.000850,116 +0.000852,116 +0.000850,116 +0.000850,116 +0.000850,116 +0.000850,116 +0.000854,116 +0.000850,116 +0.000850,116 +0.000850,116 +0.000850,116 +0.000852,116 +0.000850,116 +0.000850,116 +0.000850,116 +0.000855,116 +0.000850,116 +0.000890,116 +0.000850,116 +0.000889,116 +0.000853,116 +0.000850,116 +0.000850,116 +0.000850,116 +0.000850,116 +0.000856,116 +0.000851,116 +0.000850,116 +0.000865,116 +0.000855,116 +0.000851,116 +0.000850,116 +0.000851,116 +0.000850,116 +0.000857,116 +0.000850,116 +0.000870,116 +0.000875,116 +0.000889,116 +0.000852,116 +0.000897,116 +0.000883,116 +0.000907,116 +0.000925,116 +0.000870,116 +0.000907,116 +0.000859,116 +0.000850,116 +0.000873,116 +0.000850,116 +0.000850,116 +0.000850,116 +0.000932,118 +0.000889,118 +0.000890,118 +0.000928,118 +0.000889,118 +0.000951,118 +0.000889,118 +0.000889,118 +0.000889,118 +0.000925,118 +0.000889,118 +0.000889,118 +0.000889,118 +0.000889,118 +0.000891,118 +0.000889,118 +0.000889,118 +0.000889,118 +0.000919,118 +0.000971,118 +0.000889,118 +0.000889,118 +0.000950,118 +0.000928,118 +0.000889,118 +0.000889,118 +0.000889,118 +0.000894,118 +0.000889,118 +0.000890,118 +0.000889,118 +0.000891,118 +0.000889,118 +0.000889,118 +0.000889,118 +0.000889,118 +0.000894,118 +0.000889,118 +0.000890,118 +0.000889,118 +0.000951,118 +0.000889,118 +0.000929,118 +0.000889,118 +0.000889,118 +0.000893,118 +0.000889,118 +0.000913,118 +0.000889,118 +0.000897,118 +0.000889,118 +0.000889,118 +0.000889,118 +0.000889,118 +0.000897,118 +0.000889,118 +0.000889,118 +0.000889,118 +0.000895,118 +0.000928,118 +0.000889,118 +0.000928,118 +0.000895,118 +0.000889,118 +0.000889,118 +0.000889,118 +0.000889,118 +0.000895,118 +0.000889,118 +0.000889,118 +0.000906,118 +0.000898,118 +0.000889,118 +0.000889,118 +0.000889,118 +0.000889,118 +0.000900,118 +0.000889,118 +0.000928,118 +0.000928,118 +0.000891,118 +0.000889,118 +0.000889,118 +0.000889,118 +0.000889,118 +0.000893,118 +0.000889,118 +0.000888,118 +0.000889,118 +0.000891,118 +0.000889,118 +0.000889,118 +0.000889,118 +0.000889,118 +0.000894,118 +0.000889,118 +0.000933,118 +0.000889,118 +0.000930,118 +0.000889,118 +0.000995,120 +0.000992,120 +0.001008,120 +0.000973,120 +0.000965,120 +0.001004,120 +0.000957,120 +0.000935,120 +0.000935,120 +0.000935,120 +0.000935,120 +0.000964,120 +0.000935,120 +0.000937,120 +0.000974,120 +0.001011,120 +0.000935,120 +0.000937,120 +0.000935,120 +0.000958,120 +0.000935,120 +0.000936,120 +0.000935,120 +0.000940,120 +0.000936,120 +0.000935,120 +0.000935,120 +0.000935,120 +0.000973,120 +0.001014,120 +0.000936,120 +0.000975,120 +0.000969,120 +0.000974,120 +0.000936,120 +0.000935,120 +0.000969,120 +0.000935,120 +0.000935,120 +0.000935,120 +0.000940,120 +0.000935,120 +0.000935,120 +0.000935,120 +0.000958,120 +0.000935,120 +0.000935,120 +0.000965,120 +0.000935,120 +0.001004,120 +0.000975,120 +0.000935,120 +0.000935,120 +0.000997,120 +0.000935,120 +0.000935,120 +0.000935,120 +0.000941,120 +0.000935,120 +0.000937,120 +0.000935,120 +0.000937,120 +0.000935,120 +0.000937,120 +0.000935,120 +0.000935,120 +0.000937,120 +0.000974,120 +0.000974,120 +0.000935,120 +0.000940,120 +0.000935,120 +0.000935,120 +0.000935,120 +0.000937,120 +0.000935,120 +0.000935,120 +0.000935,120 +0.000940,120 +0.000935,120 +0.000935,120 +0.000935,120 +0.000934,120 +0.000937,120 +0.000974,120 +0.000935,120 +0.000974,120 +0.000940,120 +0.000935,120 +0.000961,120 +0.000936,120 +0.000941,120 +0.000938,120 +0.000935,120 +0.000938,120 +0.000941,120 +0.000936,120 +0.000936,120 +0.000995,120 +0.000941,120 +0.001005,122 +0.000983,122 +0.001022,122 +0.001049,122 +0.000983,122 +0.000983,122 +0.001040,122 +0.001136,122 +0.001051,122 +0.001031,122 +0.001070,122 +0.001012,122 +0.000983,122 +0.000983,122 +0.000983,122 +0.001006,122 +0.000983,122 +0.000984,122 +0.001022,122 +0.001019,122 +0.001012,122 +0.000983,122 +0.000983,122 +0.001006,122 +0.000983,122 +0.000983,122 +0.000983,122 +0.000988,122 +0.000983,122 +0.000983,122 +0.000983,122 +0.001006,122 +0.001090,122 +0.001003,122 +0.000983,122 +0.001051,122 +0.001022,122 +0.000983,122 +0.000983,122 +0.000985,122 +0.000983,122 +0.000983,122 +0.000983,122 +0.000985,122 +0.000983,122 +0.000983,122 +0.000983,122 +0.000988,122 +0.000983,122 +0.000983,122 +0.000983,122 +0.000985,122 +0.001027,122 +0.001022,122 +0.000983,122 +0.000987,122 +0.000983,122 +0.000983,122 +0.000983,122 +0.000985,122 +0.000983,122 +0.000983,122 +0.000983,122 +0.000987,122 +0.000983,122 +0.000983,122 +0.000983,122 +0.000985,122 +0.000983,122 +0.001022,122 +0.001022,122 +0.000988,122 +0.000983,122 +0.000983,122 +0.000983,122 +0.000983,122 +0.000990,122 +0.000983,122 +0.000983,122 +0.000983,122 +0.001009,122 +0.000983,122 +0.000983,122 +0.000983,122 +0.000986,122 +0.001022,122 +0.000983,122 +0.001022,122 +0.000989,122 +0.000983,122 +0.000983,122 +0.000983,122 +0.000985,122 +0.000983,122 +0.000983,122 +0.000983,122 +0.000985,122 +0.000983,122 +0.000983,122 +0.000983,122 +0.001059,124 +0.001033,124 +0.001073,124 +0.001073,124 +0.001036,124 +0.001033,124 +0.001033,124 +0.001158,124 +0.001078,124 +0.001099,124 +0.001071,124 +0.001124,124 +0.001057,124 +0.001033,124 +0.001033,124 +0.001057,124 +0.001034,124 +0.001034,124 +0.001072,124 +0.001098,124 +0.001034,124 +0.001034,124 +0.001057,124 +0.001034,124 +0.001034,124 +0.001034,124 +0.001038,124 +0.001034,124 +0.001034,124 +0.001034,124 +0.001068,124 +0.001092,124 +0.001033,124 +0.001033,124 +0.001109,124 +0.001073,124 +0.001033,124 +0.001033,124 +0.001036,124 +0.001033,124 +0.001033,124 +0.001033,124 +0.001038,124 +0.001033,124 +0.001033,124 +0.001036,124 +0.001034,124 +0.001033,124 +0.001033,124 +0.001038,124 +0.001072,124 +0.001072,124 +0.001034,124 +0.001036,124 +0.001034,124 +0.001034,124 +0.001034,124 +0.001038,124 +0.001034,124 +0.001034,124 +0.001034,124 +0.001036,124 +0.001033,124 +0.001034,124 +0.001034,124 +0.001038,124 +0.001073,124 +0.001073,124 +0.001036,124 +0.001034,124 +0.001034,124 +0.001034,124 +0.001061,124 +0.001033,124 +0.001033,124 +0.001033,124 +0.001036,124 +0.001033,124 +0.001033,124 +0.001033,124 +0.001059,124 +0.001033,124 +0.001073,124 +0.001072,124 +0.001067,124 +0.001033,124 +0.001033,124 +0.001033,124 +0.001038,124 +0.001033,124 +0.001033,124 +0.001036,124 +0.001033,124 +0.001033,124 +0.001033,124 +0.001038,124 +0.001033,124 +0.001033,124 +0.001073,124 +0.001075,124 +0.001105,126 +0.001084,126 +0.001175,126 +0.001258,126 +0.001130,126 +0.001150,126 +0.001208,126 +0.001215,126 +0.001107,126 +0.001083,126 +0.001121,126 +0.001168,126 +0.001122,126 +0.001185,126 +0.001123,126 +0.001111,126 +0.001149,126 +0.001120,126 +0.001168,126 +0.001139,126 +0.001147,126 +0.001169,126 +0.001084,126 +0.001149,126 +0.001201,126 +0.001249,126 +0.001189,126 +0.001217,126 +0.001123,126 +0.001168,126 +0.001228,126 +0.001204,126 +0.001151,126 +0.001149,126 +0.001206,126 +0.001173,126 +0.001381,126 +0.001185,126 +0.001208,126 +0.001172,126 +0.001250,126 +0.001249,126 +0.001187,126 +0.001148,126 +0.001207,126 +0.001239,126 +0.001200,126 +0.001223,126 +0.001148,126 +0.001199,126 +0.001234,126 +0.001242,126 +0.001171,126 +0.001173,126 +0.001230,126 +0.001272,126 +0.001191,126 +0.001209,126 +0.001169,126 +0.001210,126 +0.001245,126 +0.001253,126 +0.001148,126 +0.001197,126 +0.001235,126 +0.001149,126 +0.001150,126 +0.001207,126 +0.001209,126 +0.001245,126 +0.001266,126 +0.001189,126 +0.001210,126 +0.001300,126 +0.001375,126 +0.001252,126 +0.001221,126 +0.001355,126 +0.001453,126 +0.001288,126 +0.001281,126 +0.001253,126 +0.001228,126 +0.001283,126 +0.001296,126 +0.001215,126 +0.001245,126 +0.001442,126 +0.001202,126 +0.001205,126 +0.001170,126 +0.001228,126 +0.001194,126 +0.001167,126 +0.001169,126 +0.001238,126 +0.001135,126 +0.001112,126 +0.001131,126 +0.001218,126 +0.001382,128 +0.001331,128 +0.001270,128 +0.001313,128 +0.001256,128 +0.001326,128 +0.001293,128 +0.001140,128 +0.001395,128 +0.001199,128 +0.001249,128 +0.001276,128 +0.001238,128 +0.001316,128 +0.001350,128 +0.001339,128 +0.001203,128 +0.001262,128 +0.001302,128 +0.001210,128 +0.001162,128 +0.001297,128 +0.001271,128 +0.001223,128 +0.001257,128 +0.001159,128 +0.001138,128 +0.001228,128 +0.001189,128 +0.001330,128 +0.001185,128 +0.001196,128 +0.001140,128 +0.001139,128 +0.001293,128 +0.001178,128 +0.001178,128 +0.001178,128 +0.001139,128 +0.001138,128 +0.001139,128 +0.001262,128 +0.001179,128 +0.001139,128 +0.001172,128 +0.001140,128 +0.001139,128 +0.001139,128 +0.001178,128 +0.001179,128 +0.001158,128 +0.001211,128 +0.001139,128 +0.001139,128 +0.001139,128 +0.001175,128 +0.001139,128 +0.001140,128 +0.001161,128 +0.001139,128 +0.001139,128 +0.001138,128 +0.001183,128 +0.001139,128 +0.001178,128 +0.001173,128 +0.001139,128 +0.001240,128 +0.001419,128 +0.001814,128 +0.001751,128 +0.001291,128 +0.001630,128 +0.001826,128 +0.001257,128 +0.001138,128 +0.001217,128 +0.001177,128 +0.001138,128 +0.001137,128 +0.001177,128 +0.001278,128 +0.001591,128 +0.001900,128 +0.001170,128 +0.001295,128 +0.001161,128 +0.001207,128 +0.001140,128 +0.001270,128 +0.001356,128 +0.001140,128 +0.001186,128 +0.001140,128 +0.001188,128 +0.001189,128 +0.001161,128 +0.001139,128 +0.001160,128 +0.001239,128 +0.001271,130 +0.001282,130 +0.001341,130 +0.001218,130 +0.001237,130 +0.001244,130 +0.001288,130 +0.001208,130 +0.001301,130 +0.001274,130 +0.001237,130 +0.001239,130 +0.001224,130 +0.001258,130 +0.001198,130 +0.001244,130 +0.001263,130 +0.001237,130 +0.001243,130 +0.001323,130 +0.001227,130 +0.001264,130 +0.001210,130 +0.001232,130 +0.001414,130 +0.001217,130 +0.001218,130 +0.001241,130 +0.001198,130 +0.001239,130 +0.001235,130 +0.001243,130 +0.001323,130 +0.001197,130 +0.001231,130 +0.001198,130 +0.001264,130 +0.001457,130 +0.001198,130 +0.001198,130 +0.001387,130 +0.001198,130 +0.001232,130 +0.001277,130 +0.001321,130 +0.001276,130 +0.001322,130 +0.001198,130 +0.001198,130 +0.001263,130 +0.001405,130 +0.001230,130 +0.001230,130 +0.001298,130 +0.001347,130 +0.001305,130 +0.001444,130 +0.001218,130 +0.001217,130 +0.001365,130 +0.001294,130 +0.001370,130 +0.001236,130 +0.001350,130 +0.001473,130 +0.001258,130 +0.001375,130 +0.001332,130 +0.001422,130 +0.001261,130 +0.001310,130 +0.001338,130 +0.001298,130 +0.001352,130 +0.001393,130 +0.001251,130 +0.001344,130 +0.001407,130 +0.001295,130 +0.001275,130 +0.001400,130 +0.001198,130 +0.001439,130 +0.001305,130 +0.001198,130 +0.001288,130 +0.001342,130 +0.001197,130 +0.001290,130 +0.001473,130 +0.001198,130 +0.001307,130 +0.001305,130 +0.001238,130 +0.001395,130 +0.001226,130 +0.001198,130 +0.001313,130 +0.001309,130 +0.001307,130 +0.001281,132 +0.001541,132 +0.001270,132 +0.001248,132 +0.001384,132 +0.001249,132 +0.001442,132 +0.001331,132 +0.001250,132 +0.001361,132 +0.001277,132 +0.001374,132 +0.001268,132 +0.001442,132 +0.001249,132 +0.001249,132 +0.001248,132 +0.001292,132 +0.001249,132 +0.001328,132 +0.001322,132 +0.001249,132 +0.001248,132 +0.001282,132 +0.001376,132 +0.001268,132 +0.001433,132 +0.001352,132 +0.001316,132 +0.001407,132 +0.001313,132 +0.001351,132 +0.001462,132 +0.001270,132 +0.001269,132 +0.001285,132 +0.001357,132 +0.001288,132 +0.001282,132 +0.001390,132 +0.001249,132 +0.001288,132 +0.001248,132 +0.001332,132 +0.001302,132 +0.001329,132 +0.001249,132 +0.001287,132 +0.001249,132 +0.001353,132 +0.001323,132 +0.001249,132 +0.001250,132 +0.001285,132 +0.001249,132 +0.001249,132 +0.001282,132 +0.001268,132 +0.001332,132 +0.001249,132 +0.001284,132 +0.001248,132 +0.001249,132 +0.001282,132 +0.001249,132 +0.001250,132 +0.001276,132 +0.001249,132 +0.001249,132 +0.001272,132 +0.001268,132 +0.001288,132 +0.001274,132 +0.001249,132 +0.001249,132 +0.001271,132 +0.001249,132 +0.001248,132 +0.001249,132 +0.001254,132 +0.001248,132 +0.001249,132 +0.001272,132 +0.001249,132 +0.001268,132 +0.001338,132 +0.001249,132 +0.001248,132 +0.001272,132 +0.001249,132 +0.001249,132 +0.001254,132 +0.001249,132 +0.001249,132 +0.001251,132 +0.001249,132 +0.001249,132 +0.001268,132 +0.001313,132 +0.001249,132 +0.001338,134 +0.001311,134 +0.001308,134 +0.001308,134 +0.001524,134 +0.001376,134 +0.001356,134 +0.001469,134 +0.001308,134 +0.001395,134 +0.001349,134 +0.001330,134 +0.001510,134 +0.001382,134 +0.001308,134 +0.001352,134 +0.001347,134 +0.001410,134 +0.001334,134 +0.001391,134 +0.001308,134 +0.001364,134 +0.001347,134 +0.001308,134 +0.001433,134 +0.001308,134 +0.001411,134 +0.001380,134 +0.001308,134 +0.001411,134 +0.001345,134 +0.001361,134 +0.001307,134 +0.001344,134 +0.001372,134 +0.001346,134 +0.001334,134 +0.001307,134 +0.001413,134 +0.001371,134 +0.001308,134 +0.001404,134 +0.001348,134 +0.001328,134 +0.001308,134 +0.001344,134 +0.001359,134 +0.001355,134 +0.001334,134 +0.001307,134 +0.001307,134 +0.001416,134 +0.001328,134 +0.001409,134 +0.001343,134 +0.001365,134 +0.001308,134 +0.001346,134 +0.001327,134 +0.001388,134 +0.001335,134 +0.001308,134 +0.001308,134 +0.001449,134 +0.001348,134 +0.001340,134 +0.001449,134 +0.001307,134 +0.001322,134 +0.001437,134 +0.001322,134 +0.001406,134 +0.001347,134 +0.001307,134 +0.001464,134 +0.001407,134 +0.001348,134 +0.001368,134 +0.001487,134 +0.001438,134 +0.001416,134 +0.001460,134 +0.001642,134 +0.001396,134 +0.001350,134 +0.001414,134 +0.001494,134 +0.001531,134 +0.001366,134 +0.001430,134 +0.001381,134 +0.001490,134 +0.001450,134 +0.001369,134 +0.001503,134 +0.001601,134 +0.001517,134 +0.001411,134 +0.001652,134 +0.001479,134 +0.001538,136 +0.001451,136 +0.001496,136 +0.001529,136 +0.001574,136 +0.001464,136 +0.001494,136 +0.001499,136 +0.001571,136 +0.001559,136 +0.001518,136 +0.001445,136 +0.001431,136 +0.001540,136 +0.001456,136 +0.001468,136 +0.001405,136 +0.001430,136 +0.001429,136 +0.001392,136 +0.001369,136 +0.001417,136 +0.001369,136 +0.001514,136 +0.001561,136 +0.001406,136 +0.001490,136 +0.001528,136 +0.001512,136 +0.001735,136 +0.001451,136 +0.001446,136 +0.001588,136 +0.001405,136 +0.001478,136 +0.001445,136 +0.001426,136 +0.001501,136 +0.001555,136 +0.001631,136 +0.001559,136 +0.001444,136 +0.001439,136 +0.001472,136 +0.001405,136 +0.002002,136 +0.001684,136 +0.001495,136 +0.001602,136 +0.001464,136 +0.001550,136 +0.001497,136 +0.001465,136 +0.001462,136 +0.001777,136 +0.002520,136 +0.002108,136 +0.001403,136 +0.001556,136 +0.001532,136 +0.001485,136 +0.001530,136 +0.001473,136 +0.001464,136 +0.001452,136 +0.001369,136 +0.002016,136 +0.001433,136 +0.001533,136 +0.001503,136 +0.001523,136 +0.001506,136 +0.001492,136 +0.001368,136 +0.001444,136 +0.001471,136 +0.001368,136 +0.001980,136 +0.001405,136 +0.001533,136 +0.001496,136 +0.001527,136 +0.001513,136 +0.001481,136 +0.001369,136 +0.001475,136 +0.001472,136 +0.001369,136 +0.002042,136 +0.001405,136 +0.001531,136 +0.001522,136 +0.001476,136 +0.001575,136 +0.001431,136 +0.001369,136 +0.001482,136 +0.001431,136 +0.001368,136 +0.002021,136 +0.001514,138 +0.001650,138 +0.001551,138 +0.001637,138 +0.001606,138 +0.001429,138 +0.001473,138 +0.001531,138 +0.001468,138 +0.001802,138 +0.001543,138 +0.001567,138 +0.001600,138 +0.001570,138 +0.001761,138 +0.001498,138 +0.001508,138 +0.001505,138 +0.001777,138 +0.002262,138 +0.001464,138 +0.001616,138 +0.001670,138 +0.001590,138 +0.001705,138 +0.001457,138 +0.001458,138 +0.001426,138 +0.001721,138 +0.001468,138 +0.001848,138 +0.001652,138 +0.001651,138 +0.001635,138 +0.001545,138 +0.001519,138 +0.001486,138 +0.001428,138 +0.001640,138 +0.001514,138 +0.001677,138 +0.001697,138 +0.001626,138 +0.001468,138 +0.001502,138 +0.001592,138 +0.001525,138 +0.001428,138 +0.001428,138 +0.001586,138 +0.001448,138 +0.001775,138 +0.001582,138 +0.001572,138 +0.001489,138 +0.001526,138 +0.001542,138 +0.001500,138 +0.001429,138 +0.001462,138 +0.001708,138 +0.001428,138 +0.001802,138 +0.001744,138 +0.001468,138 +0.001454,138 +0.001551,138 +0.001566,138 +0.001428,138 +0.001448,138 +0.001684,138 +0.001488,138 +0.001535,138 +0.001780,138 +0.001649,138 +0.001484,138 +0.001455,138 +0.001677,138 +0.001542,138 +0.001429,138 +0.001722,138 +0.001618,138 +0.001505,138 +0.001809,138 +0.001637,138 +0.001648,138 +0.001510,138 +0.001488,138 +0.001589,138 +0.001429,138 +0.001472,138 +0.001452,138 +0.001738,138 +0.001428,138 +0.001784,138 +0.001685,138 +0.001426,138 +0.001426,138 +0.001519,138 +0.001512,138 +0.001563,140 +0.001492,140 +0.001726,140 +0.001577,140 +0.001791,140 +0.001657,140 +0.001654,140 +0.001508,140 +0.001534,140 +0.001586,140 +0.001572,140 +0.001492,140 +0.001492,140 +0.001694,140 +0.001491,140 +0.001866,140 +0.001774,140 +0.001491,140 +0.001550,140 +0.001545,140 +0.001579,140 +0.001511,140 +0.001491,140 +0.001779,140 +0.001515,140 +0.001853,140 +0.001671,140 +0.001677,140 +0.001491,140 +0.001491,140 +0.001635,140 +0.001491,140 +0.001491,140 +0.001702,140 +0.001624,140 +0.001690,140 +0.001754,140 +0.001662,140 +0.001551,140 +0.001553,140 +0.001698,140 +0.001552,140 +0.001530,140 +0.001492,140 +0.001767,140 +0.001529,140 +0.001832,140 +0.001804,140 +0.001491,140 +0.001536,140 +0.001573,140 +0.001594,140 +0.001522,140 +0.001492,140 +0.001757,140 +0.001588,140 +0.001795,140 +0.001798,140 +0.001491,140 +0.001553,140 +0.001522,140 +0.001627,140 +0.001520,140 +0.001492,140 +0.001721,140 +0.001573,140 +0.001679,140 +0.001630,140 +0.001491,140 +0.001491,140 +0.001515,140 +0.001663,140 +0.001605,140 +0.001488,140 +0.001488,140 +0.001664,140 +0.001777,140 +0.001624,140 +0.001492,140 +0.001653,140 +0.001681,140 +0.001615,140 +0.001893,140 +0.001503,140 +0.001758,140 +0.001751,140 +0.001726,140 +0.001625,140 +0.001786,140 +0.001747,140 +0.001649,140 +0.001676,140 +0.001830,140 +0.001711,140 +0.001648,140 +0.001767,140 +0.001934,140 +0.002862,140 +0.002059,140 +0.001580,140 +0.001746,142 +0.001996,142 +0.001840,142 +0.001968,142 +0.002185,142 +0.002980,142 +0.001803,142 +0.001790,142 +0.001804,142 +0.001690,142 +0.001770,142 +0.001839,142 +0.001808,142 +0.002382,142 +0.002844,142 +0.001718,142 +0.001732,142 +0.001741,142 +0.001729,142 +0.001723,142 +0.001685,142 +0.001658,142 +0.002594,142 +0.002747,142 +0.001830,142 +0.001847,142 +0.001883,142 +0.001670,142 +0.001867,142 +0.001723,142 +0.002894,142 +0.002569,142 +0.001765,142 +0.001787,142 +0.001901,142 +0.001879,142 +0.002013,142 +0.001895,142 +0.001922,142 +0.002034,142 +0.001923,142 +0.001942,142 +0.001998,142 +0.002005,142 +0.002019,142 +0.001986,142 +0.001897,142 +0.001892,142 +0.001736,142 +0.001796,142 +0.001669,142 +0.001709,142 +0.001752,142 +0.001864,142 +0.001761,142 +0.002032,142 +0.001679,142 +0.001722,142 +0.001687,142 +0.001759,142 +0.001791,142 +0.001981,142 +0.002008,142 +0.002015,142 +0.002084,142 +0.002184,142 +0.002038,142 +0.002001,142 +0.002046,142 +0.002055,142 +0.002038,142 +0.001952,142 +0.001788,142 +0.002505,142 +0.001885,142 +0.001688,142 +0.001738,142 +0.001726,142 +0.001853,142 +0.001762,142 +0.001856,142 +0.001809,142 +0.002486,142 +0.001766,142 +0.001758,142 +0.001725,142 +0.001789,142 +0.001824,142 +0.001703,142 +0.001824,142 +0.001721,142 +0.002387,142 +0.001682,142 +0.001762,142 +0.001794,142 +0.001795,142 +0.001745,142 +0.001700,142 +0.001879,142 +0.001720,142 +0.001862,144 +0.001783,144 +0.001818,144 +0.001788,144 +0.001835,144 +0.001743,144 +0.001714,144 +0.001984,144 +0.001873,144 +0.002296,144 +0.001929,144 +0.001804,144 +0.001860,144 +0.001873,144 +0.002026,144 +0.001922,144 +0.001990,144 +0.001850,144 +0.001841,144 +0.001818,144 +0.001828,144 +0.001869,144 +0.001881,144 +0.001881,144 +0.001819,144 +0.001855,144 +0.001772,144 +0.001820,144 +0.001894,144 +0.001840,144 +0.001848,144 +0.001992,144 +0.001875,144 +0.001749,144 +0.001878,144 +0.001840,144 +0.001868,144 +0.001814,144 +0.001870,144 +0.001820,144 +0.001867,144 +0.001851,144 +0.001843,144 +0.001905,144 +0.001859,144 +0.001851,144 +0.001825,144 +0.001843,144 +0.001842,144 +0.001934,144 +0.001805,144 +0.001837,144 +0.001922,144 +0.001871,144 +0.001777,144 +0.001845,144 +0.001885,144 +0.001735,144 +0.001769,144 +0.001764,144 +0.001813,144 +0.001879,144 +0.001738,144 +0.001768,144 +0.001809,144 +0.001720,144 +0.001778,144 +0.001797,144 +0.001730,144 +0.001760,144 +0.001766,144 +0.001806,144 +0.001822,144 +0.001879,144 +0.001857,144 +0.001858,144 +0.001913,144 +0.002014,144 +0.001948,144 +0.001844,144 +0.001948,144 +0.001865,144 +0.001881,144 +0.001819,144 +0.001908,144 +0.001920,144 +0.002060,144 +0.001885,144 +0.002011,144 +0.001915,144 +0.001939,144 +0.001870,144 +0.001824,144 +0.001755,144 +0.001816,144 +0.001959,144 +0.001760,144 +0.001881,144 +0.001774,144 +0.001748,144 +0.001905,146 +0.001885,146 +0.001791,146 +0.001961,146 +0.001898,146 +0.001862,146 +0.001960,146 +0.001887,146 +0.001832,146 +0.001839,146 +0.001875,146 +0.001855,146 +0.001900,146 +0.001870,146 +0.001909,146 +0.001862,146 +0.001840,146 +0.001859,146 +0.001834,146 +0.001819,146 +0.001862,146 +0.002148,146 +0.002027,146 +0.001807,146 +0.001939,146 +0.001817,146 +0.001863,146 +0.001835,146 +0.001857,146 +0.001835,146 +0.001915,146 +0.001869,146 +0.001875,146 +0.001886,146 +0.001841,146 +0.001889,146 +0.001834,146 +0.001888,146 +0.001857,146 +0.001886,146 +0.001835,146 +0.001885,146 +0.001837,146 +0.001852,146 +0.001886,146 +0.001918,146 +0.001821,146 +0.001919,146 +0.001934,146 +0.001846,146 +0.001958,146 +0.001918,146 +0.001878,146 +0.001852,146 +0.001881,146 +0.001852,146 +0.001906,146 +0.001880,146 +0.001850,146 +0.001868,146 +0.001860,146 +0.001854,146 +0.001806,146 +0.001794,146 +0.001779,146 +0.001919,146 +0.001855,146 +0.001830,146 +0.002055,146 +0.001954,146 +0.002077,146 +0.001872,146 +0.001821,146 +0.001880,146 +0.001840,146 +0.001889,146 +0.001818,146 +0.001952,146 +0.001826,146 +0.001766,146 +0.001839,146 +0.001794,146 +0.001780,146 +0.001905,146 +0.002034,146 +0.001896,146 +0.001952,146 +0.001833,146 +0.001926,146 +0.002057,146 +0.001924,146 +0.001887,146 +0.001996,146 +0.001829,146 +0.001916,146 +0.001874,146 +0.001916,146 +0.001858,146 +0.001760,146 +0.001866,146 +0.001911,148 +0.001937,148 +0.001896,148 +0.001991,148 +0.001954,148 +0.001922,148 +0.001847,148 +0.001874,148 +0.001895,148 +0.001870,148 +0.001988,148 +0.002018,148 +0.001926,148 +0.001982,148 +0.001928,148 +0.001948,148 +0.001908,148 +0.001924,148 +0.001959,148 +0.001879,148 +0.001966,148 +0.002189,148 +0.001985,148 +0.001938,148 +0.001946,148 +0.001902,148 +0.002000,148 +0.001996,148 +0.001961,148 +0.002127,148 +0.002068,148 +0.001933,148 +0.001979,148 +0.001960,148 +0.002116,148 +0.001997,148 +0.001877,148 +0.002011,148 +0.001897,148 +0.001895,148 +0.001912,148 +0.001844,148 +0.001869,148 +0.001946,148 +0.002006,148 +0.001886,148 +0.001975,148 +0.001852,148 +0.001875,148 +0.001893,148 +0.001875,148 +0.001826,148 +0.001950,148 +0.001973,148 +0.001922,148 +0.001887,148 +0.001872,148 +0.001906,148 +0.001862,148 +0.001892,148 +0.001886,148 +0.002109,148 +0.002104,148 +0.002171,148 +0.002114,148 +0.002102,148 +0.002161,148 +0.002132,148 +0.001975,148 +0.001950,148 +0.001905,148 +0.001915,148 +0.002150,148 +0.001955,148 +0.001946,148 +0.001897,148 +0.001895,148 +0.001987,148 +0.001925,148 +0.001853,148 +0.001973,148 +0.001946,148 +0.001916,148 +0.001968,148 +0.001909,148 +0.001935,148 +0.002010,148 +0.002004,148 +0.001991,148 +0.002028,148 +0.001887,148 +0.001935,148 +0.001936,148 +0.001911,148 +0.001951,148 +0.002074,148 +0.001929,148 +0.001922,148 +0.001936,148 +0.001940,148 +0.002027,150 +0.002057,150 +0.001981,150 +0.002110,150 +0.002039,150 +0.002057,150 +0.002001,150 +0.002028,150 +0.002001,150 +0.002032,150 +0.001992,150 +0.002110,150 +0.001971,150 +0.002019,150 +0.001990,150 +0.002015,150 +0.001988,150 +0.002021,150 +0.001989,150 +0.002062,150 +0.002077,150 +0.001940,150 +0.001878,150 +0.002521,150 +0.002403,150 +0.002418,150 +0.002415,150 +0.002567,150 +0.002108,150 +0.002078,150 +0.002005,150 +0.001971,150 +0.002000,150 +0.001971,150 +0.001997,150 +0.002000,150 +0.002029,150 +0.002118,150 +0.002058,150 +0.002057,150 +0.002034,150 +0.002066,150 +0.002027,150 +0.002163,150 +0.002074,150 +0.002055,150 +0.002094,150 +0.002064,150 +0.002016,150 +0.002077,150 +0.002030,150 +0.002068,150 +0.002005,150 +0.002058,150 +0.002059,150 +0.002117,150 +0.001977,150 +0.001992,150 +0.001878,150 +0.002084,150 +0.001979,150 +0.001900,150 +0.001888,150 +0.002066,150 +0.001897,150 +0.001901,150 +0.001878,150 +0.002055,150 +0.002006,150 +0.001984,150 +0.001986,150 +0.001984,150 +0.002203,150 +0.002178,150 +0.002021,150 +0.001956,150 +0.002305,150 +0.002120,150 +0.002166,150 +0.002037,150 +0.001950,150 +0.002068,150 +0.002040,150 +0.002059,150 +0.002266,150 +0.002048,150 +0.002175,150 +0.002061,150 +0.002094,150 +0.002019,150 +0.002019,150 +0.001992,150 +0.002071,150 +0.001998,150 +0.002128,150 +0.001998,150 +0.002015,150 +0.001990,150 +0.002015,150 +0.001970,150 +0.002200,152 +0.002076,152 +0.002105,152 +0.002039,152 +0.002095,152 +0.002090,152 +0.002091,152 +0.002069,152 +0.002131,152 +0.002110,152 +0.002183,152 +0.002061,152 +0.002054,152 +0.002089,152 +0.002094,152 +0.002085,152 +0.002159,152 +0.002121,152 +0.002076,152 +0.002097,152 +0.002164,152 +0.002036,152 +0.002078,152 +0.002105,152 +0.002139,152 +0.002058,152 +0.002102,152 +0.002118,152 +0.002106,152 +0.002109,152 +0.002084,152 +0.002113,152 +0.002190,152 +0.002055,152 +0.002096,152 +0.002005,152 +0.002036,152 +0.002107,152 +0.002181,152 +0.002116,152 +0.002285,152 +0.002039,152 +0.002262,152 +0.002090,152 +0.002231,152 +0.002144,152 +0.002184,152 +0.002273,152 +0.002246,152 +0.002231,152 +0.002192,152 +0.002114,152 +0.002050,152 +0.002106,152 +0.002111,152 +0.002076,152 +0.002286,152 +0.002248,152 +0.002134,152 +0.002184,152 +0.002176,152 +0.002189,152 +0.002162,152 +0.002302,152 +0.002142,152 +0.002109,152 +0.002065,152 +0.002287,152 +0.002049,152 +0.002108,152 +0.002177,152 +0.002280,152 +0.002104,152 +0.002209,152 +0.002108,152 +0.002147,152 +0.002118,152 +0.002184,152 +0.002196,152 +0.002164,152 +0.002194,152 +0.002148,152 +0.002143,152 +0.002141,152 +0.002147,152 +0.002101,152 +0.002256,152 +0.002117,152 +0.002181,152 +0.002088,152 +0.002180,152 +0.002101,152 +0.002134,152 +0.002111,152 +0.002216,152 +0.002035,152 +0.002099,152 +0.002077,152 +0.002105,152 +0.002024,152 +0.002205,154 +0.002190,154 +0.002186,154 +0.002065,154 +0.002048,154 +0.002059,154 +0.002026,154 +0.002009,154 +0.001975,154 +0.002009,154 +0.002163,154 +0.002015,154 +0.002106,154 +0.002094,154 +0.001976,154 +0.002104,154 +0.002224,154 +0.002124,154 +0.002059,154 +0.002012,154 +0.002226,154 +0.001976,154 +0.001998,154 +0.001976,154 +0.001989,154 +0.001985,154 +0.002102,154 +0.001976,154 +0.002004,154 +0.001975,154 +0.001980,154 +0.001975,154 +0.001976,154 +0.001998,154 +0.001995,154 +0.002019,154 +0.002007,154 +0.002143,154 +0.001982,154 +0.001975,154 +0.001977,154 +0.001975,154 +0.002017,154 +0.002015,154 +0.001980,154 +0.001975,154 +0.001978,154 +0.001976,154 +0.001975,154 +0.001980,154 +0.001976,154 +0.002051,154 +0.002339,154 +0.002092,154 +0.002002,154 +0.002347,154 +0.002136,154 +0.001975,154 +0.002238,154 +0.002441,154 +0.002197,154 +0.002141,154 +0.002148,154 +0.002398,154 +0.002253,154 +0.002308,154 +0.002461,154 +0.002718,154 +0.002731,154 +0.002189,154 +0.002179,154 +0.002139,154 +0.002173,154 +0.002120,154 +0.002183,154 +0.002250,154 +0.002336,154 +0.002298,154 +0.002206,154 +0.002207,154 +0.002210,154 +0.002277,154 +0.002222,154 +0.002231,154 +0.002267,154 +0.002106,154 +0.002195,154 +0.002223,154 +0.002300,154 +0.002120,154 +0.002334,154 +0.002182,154 +0.002288,154 +0.002189,154 +0.002181,154 +0.002210,154 +0.002194,154 +0.002154,154 +0.002150,154 +0.002142,154 +0.002376,156 +0.002262,156 +0.002311,156 +0.002263,156 +0.002213,156 +0.002254,156 +0.002220,156 +0.002106,156 +0.002391,156 +0.002241,156 +0.002224,156 +0.002339,156 +0.002249,156 +0.002301,156 +0.002222,156 +0.002229,156 +0.002243,156 +0.002346,156 +0.002434,156 +0.002223,156 +0.002353,156 +0.002201,156 +0.002275,156 +0.002206,156 +0.002239,156 +0.002356,156 +0.002366,156 +0.002641,156 +0.002381,156 +0.002473,156 +0.002343,156 +0.002298,156 +0.002497,156 +0.002293,156 +0.002359,156 +0.002295,156 +0.002125,156 +0.002263,156 +0.002106,156 +0.002339,156 +0.002133,156 +0.002147,156 +0.002106,156 +0.002135,156 +0.002081,156 +0.002091,156 +0.002085,156 +0.002130,156 +0.002126,156 +0.002204,156 +0.002221,156 +0.002126,156 +0.002280,156 +0.002198,156 +0.002085,156 +0.002255,156 +0.002091,156 +0.002327,156 +0.002051,156 +0.002094,156 +0.002051,156 +0.002077,156 +0.002052,156 +0.002180,156 +0.002051,156 +0.002089,156 +0.002052,156 +0.002074,156 +0.002052,156 +0.002077,156 +0.002051,156 +0.002152,156 +0.002051,156 +0.002076,156 +0.002104,156 +0.002080,156 +0.002051,156 +0.002227,156 +0.002463,156 +0.002595,156 +0.002532,156 +0.003101,156 +0.002759,156 +0.002161,156 +0.002417,156 +0.002332,156 +0.002852,156 +0.002693,156 +0.002307,156 +0.002412,156 +0.002374,156 +0.002192,156 +0.002388,156 +0.002278,156 +0.003178,156 +0.002101,156 +0.002126,156 +0.002054,156 +0.002092,156 +0.002539,156 +0.002303,158 +0.002466,158 +0.002339,158 +0.002641,158 +0.002272,158 +0.002744,158 +0.003238,158 +0.002335,158 +0.002136,158 +0.002323,158 +0.002201,158 +0.002193,158 +0.002135,158 +0.002461,158 +0.002361,158 +0.002260,158 +0.003240,158 +0.002305,158 +0.002172,158 +0.002209,158 +0.002263,158 +0.002313,158 +0.002137,158 +0.002317,158 +0.002133,158 +0.002175,158 +0.002191,158 +0.002377,158 +0.002175,158 +0.002267,158 +0.002179,158 +0.002133,158 +0.002176,158 +0.002133,158 +0.002209,158 +0.002266,158 +0.002210,158 +0.002161,158 +0.002142,158 +0.002178,158 +0.002133,158 +0.002160,158 +0.002271,158 +0.002217,158 +0.002173,158 +0.002162,158 +0.002133,158 +0.002167,158 +0.002149,158 +0.002142,158 +0.002248,158 +0.002133,158 +0.002205,158 +0.002133,158 +0.002195,158 +0.002154,158 +0.002170,158 +0.002215,158 +0.002360,158 +0.002375,158 +0.002395,158 +0.002297,158 +0.002173,158 +0.002307,158 +0.002133,158 +0.002237,158 +0.002158,158 +0.002175,158 +0.002201,158 +0.002134,158 +0.002160,158 +0.002134,158 +0.002178,158 +0.002211,158 +0.002206,158 +0.002133,158 +0.002575,158 +0.002161,158 +0.002392,158 +0.002265,158 +0.002695,158 +0.002399,158 +0.002348,158 +0.002369,158 +0.002395,158 +0.002360,158 +0.002311,158 +0.002464,158 +0.002301,158 +0.002392,158 +0.002272,158 +0.002316,158 +0.002278,158 +0.002309,158 +0.002581,158 +0.002331,158 +0.002421,158 +0.002307,158 +0.002320,158 +0.002327,158 +0.002463,160 +0.002505,160 +0.002359,160 +0.002524,160 +0.002461,160 +0.002479,160 +0.002418,160 +0.002422,160 +0.002452,160 +0.002601,160 +0.002474,160 +0.002475,160 +0.002478,160 +0.002396,160 +0.002523,160 +0.002472,160 +0.002613,160 +0.002480,160 +0.002518,160 +0.002428,160 +0.002499,160 +0.002458,160 +0.002499,160 +0.002613,160 +0.002459,160 +0.002426,160 +0.002437,160 +0.002506,160 +0.002578,160 +0.002446,160 +0.002623,160 +0.002540,160 +0.002366,160 +0.002348,160 +0.002400,160 +0.002920,160 +0.004547,160 +0.004423,160 +0.003569,160 +0.003106,160 +0.003154,160 +0.003011,160 +0.003072,160 +0.002556,160 +0.002439,160 +0.002655,160 +0.002619,160 +0.002688,160 +0.002485,160 +0.002435,160 +0.002441,160 +0.002513,160 +0.002632,160 +0.002688,160 +0.003292,160 +0.002384,160 +0.002356,160 +0.002372,160 +0.002708,160 +0.002480,160 +0.002963,160 +0.002525,160 +0.002414,160 +0.002482,160 +0.002506,160 +0.003104,160 +0.002652,160 +0.002795,160 +0.002947,160 +0.002402,160 +0.003490,160 +0.004557,160 +0.004375,160 +0.002576,160 +0.002360,160 +0.002570,160 +0.002459,160 +0.002533,160 +0.002415,160 +0.002338,160 +0.002298,160 +0.002332,160 +0.002609,160 +0.002467,160 +0.002602,160 +0.002552,160 +0.002393,160 +0.002369,160 +0.002540,160 +0.002677,160 +0.002618,160 +0.002612,160 +0.002328,160 +0.002444,160 +0.002353,160 +0.002467,160 +0.002377,160 +0.002676,160 +0.002682,160 +0.002423,160 +0.002458,162 +0.002465,162 +0.002565,162 +0.002438,162 +0.002644,162 +0.002481,162 +0.002587,162 +0.002390,162 +0.002430,162 +0.002528,162 +0.002642,162 +0.002521,162 +0.002361,162 +0.002344,162 +0.002378,162 +0.002534,162 +0.002318,162 +0.003067,162 +0.002505,162 +0.002380,162 +0.002328,162 +0.002320,162 +0.002513,162 +0.002474,162 +0.002453,162 +0.002954,162 +0.002338,162 +0.002295,162 +0.002423,162 +0.002627,162 +0.002587,162 +0.002435,162 +0.002342,162 +0.002335,162 +0.002330,162 +0.002354,162 +0.002589,162 +0.002554,162 +0.002455,162 +0.002357,162 +0.002449,162 +0.002420,162 +0.002573,162 +0.002431,162 +0.002588,162 +0.002398,162 +0.002329,162 +0.002333,162 +0.002294,162 +0.002598,162 +0.002323,162 +0.002690,162 +0.002464,162 +0.002294,162 +0.002771,162 +0.002616,162 +0.002931,162 +0.003634,162 +0.002846,162 +0.002458,162 +0.002573,162 +0.002642,162 +0.002514,162 +0.003737,162 +0.003512,162 +0.003035,162 +0.003066,162 +0.002736,162 +0.002737,162 +0.002603,162 +0.002509,162 +0.002611,162 +0.002552,162 +0.002661,162 +0.002711,162 +0.002889,162 +0.003110,162 +0.002515,162 +0.002469,162 +0.002588,162 +0.002489,162 +0.002732,162 +0.002544,162 +0.002478,162 +0.002470,162 +0.002426,162 +0.002709,162 +0.002556,162 +0.003016,162 +0.002833,162 +0.002612,162 +0.002586,162 +0.003024,162 +0.003874,162 +0.003492,162 +0.002413,162 +0.002456,162 +0.002437,162 +0.002531,162 +0.002685,162 +0.002841,164 +0.002593,164 +0.002665,164 +0.002604,164 +0.002649,164 +0.002738,164 +0.003488,164 +0.002777,164 +0.002709,164 +0.002529,164 +0.002603,164 +0.002617,164 +0.003292,164 +0.002670,164 +0.002666,164 +0.002505,164 +0.002738,164 +0.002864,164 +0.003250,164 +0.002514,164 +0.002488,164 +0.002493,164 +0.002708,164 +0.002615,164 +0.002986,164 +0.002846,164 +0.002503,164 +0.002438,164 +0.002594,164 +0.002479,164 +0.002857,164 +0.002583,164 +0.002393,164 +0.002433,164 +0.002428,164 +0.002610,164 +0.002759,164 +0.002656,164 +0.002452,164 +0.002440,164 +0.002392,164 +0.002609,164 +0.002540,164 +0.002820,164 +0.002591,164 +0.002432,164 +0.002392,164 +0.002440,164 +0.002621,164 +0.002605,164 +0.002709,164 +0.002562,164 +0.002392,164 +0.002479,164 +0.002531,164 +0.002717,164 +0.002825,164 +0.002509,164 +0.002443,164 +0.002438,164 +0.002413,164 +0.002588,164 +0.002580,164 +0.002837,164 +0.002538,164 +0.002570,164 +0.002403,164 +0.002497,164 +0.002969,164 +0.004485,164 +0.003401,164 +0.002712,164 +0.002849,164 +0.002621,164 +0.003173,164 +0.002910,164 +0.002450,164 +0.002395,164 +0.002477,164 +0.002771,164 +0.002645,164 +0.003699,164 +0.003640,164 +0.002623,164 +0.002579,164 +0.002465,164 +0.002700,164 +0.003043,164 +0.002441,164 +0.002434,164 +0.002557,164 +0.002601,164 +0.002718,164 +0.002494,164 +0.002504,164 +0.002392,164 +0.002434,164 +0.002742,164 +0.002516,164 +0.002553,164 +0.002738,166 +0.002476,166 +0.002514,166 +0.002703,166 +0.002657,166 +0.002698,166 +0.003604,166 +0.002634,166 +0.002706,166 +0.002551,166 +0.002656,166 +0.002929,166 +0.002677,166 +0.002507,166 +0.002471,166 +0.002623,166 +0.002824,166 +0.002874,166 +0.002632,166 +0.002579,166 +0.002471,166 +0.002507,166 +0.002705,166 +0.002622,166 +0.002675,166 +0.002678,166 +0.002513,166 +0.002505,166 +0.002617,166 +0.002702,166 +0.002998,166 +0.002612,166 +0.002503,166 +0.002504,166 +0.002470,166 +0.002719,166 +0.002926,166 +0.002678,166 +0.002527,166 +0.002514,166 +0.002471,166 +0.002740,166 +0.002619,166 +0.002670,166 +0.002584,166 +0.002524,166 +0.002471,166 +0.002555,166 +0.002610,166 +0.002841,166 +0.002664,166 +0.002538,166 +0.002503,166 +0.002506,166 +0.002670,166 +0.002847,166 +0.002579,166 +0.002567,166 +0.002508,166 +0.002510,166 +0.002541,166 +0.002613,166 +0.002932,166 +0.002606,166 +0.002507,166 +0.002521,166 +0.002587,166 +0.002757,166 +0.002953,166 +0.002857,166 +0.002527,166 +0.002512,166 +0.002471,166 +0.002696,166 +0.002884,166 +0.002576,166 +0.002886,166 +0.002597,166 +0.002490,166 +0.002935,166 +0.003359,166 +0.003268,166 +0.002690,166 +0.002614,166 +0.002847,166 +0.002813,166 +0.002894,166 +0.002733,166 +0.002573,166 +0.002665,166 +0.002583,166 +0.002776,166 +0.002903,166 +0.002703,166 +0.002711,166 +0.002610,166 +0.002714,166 +0.002732,166 +0.002941,166 +0.002962,166 +0.002736,168 +0.002825,168 +0.002639,168 +0.002875,168 +0.002828,168 +0.002788,168 +0.002643,168 +0.002624,168 +0.002544,168 +0.002716,168 +0.002653,168 +0.002544,168 +0.002551,168 +0.002544,168 +0.002881,168 +0.002690,168 +0.002870,168 +0.002913,168 +0.002768,168 +0.002799,168 +0.002712,168 +0.002900,168 +0.002896,168 +0.002720,168 +0.002800,168 +0.002811,168 +0.002858,168 +0.002821,168 +0.002969,168 +0.002816,168 +0.002808,168 +0.002847,168 +0.002900,168 +0.002948,168 +0.002776,168 +0.002771,168 +0.003002,168 +0.003304,168 +0.002708,168 +0.002777,168 +0.002802,168 +0.002781,168 +0.002704,168 +0.002751,168 +0.002722,168 +0.003114,168 +0.002848,168 +0.002933,168 +0.002750,168 +0.002655,168 +0.002786,168 +0.002758,168 +0.002819,168 +0.002703,168 +0.002546,168 +0.002857,168 +0.002661,168 +0.003118,168 +0.002598,168 +0.002592,168 +0.002546,168 +0.002840,168 +0.002623,168 +0.002816,168 +0.002566,168 +0.002572,168 +0.002546,168 +0.002573,168 +0.002557,168 +0.002585,168 +0.002585,168 +0.002764,168 +0.002634,168 +0.002619,168 +0.002578,168 +0.002627,168 +0.002832,168 +0.002795,168 +0.002843,168 +0.002642,168 +0.002729,168 +0.002546,168 +0.002848,168 +0.002600,168 +0.002840,168 +0.002853,168 +0.002670,168 +0.002753,168 +0.003022,168 +0.002839,168 +0.002700,168 +0.002935,168 +0.002957,168 +0.002801,168 +0.002843,168 +0.002698,168 +0.002752,168 +0.002640,168 +0.002613,168 +0.002647,168 +0.003061,170 +0.002651,170 +0.002658,170 +0.002652,170 +0.002647,170 +0.002654,170 +0.002785,170 +0.002689,170 +0.002653,170 +0.002655,170 +0.002646,170 +0.002654,170 +0.002727,170 +0.002850,170 +0.002827,170 +0.002848,170 +0.002685,170 +0.002646,170 +0.002706,170 +0.002687,170 +0.002646,170 +0.002678,170 +0.002681,170 +0.002695,170 +0.002732,170 +0.002667,170 +0.002646,170 +0.002651,170 +0.002661,170 +0.002646,170 +0.002715,170 +0.002683,170 +0.002646,170 +0.002788,170 +0.002699,170 +0.002647,170 +0.002671,170 +0.002750,170 +0.002646,170 +0.002657,170 +0.003080,170 +0.002791,170 +0.002717,170 +0.003166,170 +0.002987,170 +0.002883,170 +0.002937,170 +0.002889,170 +0.002878,170 +0.002980,170 +0.003034,170 +0.003052,170 +0.002931,170 +0.002900,170 +0.003430,170 +0.004351,170 +0.003347,170 +0.002914,170 +0.002895,170 +0.002961,170 +0.003166,170 +0.002951,170 +0.002805,170 +0.002811,170 +0.002858,170 +0.002897,170 +0.003924,170 +0.003026,170 +0.003066,170 +0.003075,170 +0.003396,170 +0.002965,170 +0.002926,170 +0.002870,170 +0.002842,170 +0.002817,170 +0.002862,170 +0.002790,170 +0.002856,170 +0.002864,170 +0.002897,170 +0.002913,170 +0.002899,170 +0.002927,170 +0.002776,170 +0.002737,170 +0.002863,170 +0.003196,170 +0.003169,170 +0.003174,170 +0.002972,170 +0.002853,170 +0.002820,170 +0.002859,170 +0.003361,170 +0.003052,170 +0.002939,170 +0.002847,170 +0.002919,170 +0.003103,170 +0.003902,172 +0.003090,172 +0.003185,172 +0.003100,172 +0.003481,172 +0.003511,172 +0.002919,172 +0.002885,172 +0.002846,172 +0.002990,172 +0.003973,172 +0.003140,172 +0.003148,172 +0.003481,172 +0.004020,172 +0.003712,172 +0.003309,172 +0.004044,172 +0.003654,172 +0.003374,172 +0.003559,172 +0.003092,172 +0.003741,172 +0.003325,172 +0.003688,172 +0.003125,172 +0.002883,172 +0.002962,172 +0.003089,172 +0.003673,172 +0.003146,172 +0.002918,172 +0.002874,172 +0.003277,172 +0.003582,172 +0.003203,172 +0.002840,172 +0.002826,172 +0.002969,172 +0.002873,172 +0.003742,172 +0.002978,172 +0.002747,172 +0.002790,172 +0.002956,172 +0.003446,172 +0.003046,172 +0.003076,172 +0.002815,172 +0.002822,172 +0.003267,172 +0.003442,172 +0.003169,172 +0.002880,172 +0.003011,172 +0.002947,172 +0.003491,172 +0.003078,172 +0.003057,172 +0.002833,172 +0.002914,172 +0.003242,172 +0.003967,172 +0.003268,172 +0.003196,172 +0.003737,172 +0.003576,172 +0.003445,172 +0.003383,172 +0.003298,172 +0.003517,172 +0.003472,172 +0.003764,172 +0.003244,172 +0.003295,172 +0.003393,172 +0.004356,172 +0.002991,172 +0.003097,172 +0.002999,172 +0.003230,172 +0.003457,172 +0.003304,172 +0.003088,172 +0.003121,172 +0.003199,172 +0.003288,172 +0.003158,172 +0.003051,172 +0.003034,172 +0.003097,172 +0.003490,172 +0.003527,172 +0.003157,172 +0.003086,172 +0.003062,172 +0.003758,172 +0.003198,172 +0.003024,172 +0.003026,172 +0.003241,174 +0.003326,174 +0.003523,174 +0.003166,174 +0.003049,174 +0.002951,174 +0.003015,174 +0.003492,174 +0.003125,174 +0.003071,174 +0.002934,174 +0.003152,174 +0.003262,174 +0.003171,174 +0.002934,174 +0.002902,174 +0.002950,174 +0.003223,174 +0.003100,174 +0.003020,174 +0.002920,174 +0.002898,174 +0.003007,174 +0.003383,174 +0.003026,174 +0.002891,174 +0.002854,174 +0.002931,174 +0.003208,174 +0.003114,174 +0.003021,174 +0.002915,174 +0.002917,174 +0.003070,174 +0.003445,174 +0.003060,174 +0.002881,174 +0.002894,174 +0.002915,174 +0.003362,174 +0.003250,174 +0.003025,174 +0.003080,174 +0.002871,174 +0.003250,174 +0.003490,174 +0.003080,174 +0.002888,174 +0.002854,174 +0.003048,174 +0.003322,174 +0.003161,174 +0.002920,174 +0.002912,174 +0.002892,174 +0.003085,174 +0.003400,174 +0.003015,174 +0.002890,174 +0.002886,174 +0.003020,174 +0.003468,174 +0.003093,174 +0.002877,174 +0.002899,174 +0.002854,174 +0.003218,174 +0.002946,174 +0.003106,174 +0.002854,174 +0.002877,174 +0.002981,174 +0.003005,174 +0.003079,174 +0.003046,174 +0.003034,174 +0.002933,174 +0.003010,174 +0.003004,174 +0.002890,174 +0.002854,174 +0.002896,174 +0.002927,174 +0.003026,174 +0.002854,174 +0.002879,174 +0.002907,174 +0.002924,174 +0.002894,174 +0.002987,174 +0.002896,174 +0.002855,174 +0.002856,174 +0.002856,174 +0.002995,174 +0.002946,174 +0.004948,174 +0.002848,174 +0.002884,174 +0.002914,174 +0.003203,176 +0.003099,176 +0.002981,176 +0.003032,176 +0.002989,176 +0.003070,176 +0.003019,176 +0.003216,176 +0.003142,176 +0.002963,176 +0.003031,176 +0.003067,176 +0.002967,176 +0.002943,176 +0.002967,176 +0.002990,176 +0.003060,176 +0.002943,176 +0.002949,176 +0.002953,176 +0.002950,176 +0.002994,176 +0.003031,176 +0.002969,176 +0.002945,176 +0.002943,176 +0.002947,176 +0.003173,176 +0.002968,176 +0.002944,176 +0.002946,176 +0.002950,176 +0.002985,176 +0.003058,176 +0.002969,176 +0.002945,176 +0.002946,176 +0.002943,176 +0.002997,176 +0.003061,176 +0.003302,176 +0.003073,176 +0.003229,176 +0.003052,176 +0.003085,176 +0.002981,176 +0.002943,176 +0.002989,176 +0.002990,176 +0.003089,176 +0.002975,176 +0.002985,176 +0.002972,176 +0.002969,176 +0.002983,176 +0.003100,176 +0.002970,176 +0.002974,176 +0.002973,176 +0.002974,176 +0.003029,176 +0.003057,176 +0.002944,176 +0.002946,176 +0.002946,176 +0.002983,176 +0.003064,176 +0.002967,176 +0.002949,176 +0.002943,176 +0.002946,176 +0.003116,176 +0.003328,176 +0.003176,176 +0.003190,176 +0.003030,176 +0.003068,176 +0.003127,176 +0.002944,176 +0.002978,176 +0.002968,176 +0.002979,176 +0.002988,176 +0.003028,176 +0.002983,176 +0.002976,176 +0.002943,176 +0.003021,176 +0.003105,176 +0.002970,176 +0.003105,176 +0.002968,176 +0.002970,176 +0.003030,176 +0.003230,176 +0.002944,176 +0.002966,176 +0.002977,176 +0.002982,176 +0.003142,176 +0.003227,178 +0.003164,178 +0.003159,178 +0.003164,178 +0.003305,178 +0.003147,178 +0.003396,178 +0.003352,178 +0.003144,178 +0.003265,178 +0.003232,178 +0.003124,178 +0.003167,178 +0.003149,178 +0.003172,178 +0.003259,178 +0.003167,178 +0.003154,178 +0.003137,178 +0.003170,178 +0.003277,178 +0.003146,178 +0.003123,178 +0.003121,178 +0.003156,178 +0.003296,178 +0.003127,178 +0.003123,178 +0.003121,178 +0.003126,178 +0.003172,178 +0.003277,178 +0.003134,178 +0.003121,178 +0.003148,178 +0.003178,178 +0.003252,178 +0.003293,178 +0.003244,178 +0.003292,178 +0.003203,178 +0.003303,178 +0.003163,178 +0.003120,178 +0.003144,178 +0.003205,178 +0.003268,178 +0.003182,178 +0.003121,178 +0.003144,178 +0.003146,178 +0.003319,178 +0.003147,178 +0.003180,178 +0.003282,178 +0.003147,178 +0.003277,178 +0.003407,178 +0.003121,178 +0.003155,178 +0.003144,178 +0.003228,178 +0.003333,178 +0.003121,178 +0.003161,178 +0.003155,178 +0.003195,178 +0.003336,178 +0.003121,178 +0.003438,178 +0.003315,178 +0.003203,178 +0.003288,178 +0.003128,178 +0.003120,178 +0.003143,178 +0.003150,178 +0.003320,178 +0.003161,178 +0.003120,178 +0.003125,178 +0.003127,178 +0.003172,178 +0.003242,178 +0.003126,178 +0.003123,178 +0.003132,178 +0.003182,178 +0.003343,178 +0.003130,178 +0.003122,178 +0.003124,178 +0.003168,178 +0.003281,178 +0.003143,178 +0.003134,178 +0.003125,178 +0.003134,178 +0.003321,178 +0.003504,178 +0.003532,180 +0.003527,180 +0.003495,180 +0.004005,180 +0.003884,180 +0.003513,180 +0.003805,180 +0.004142,180 +0.003700,180 +0.003624,180 +0.003559,180 +0.003563,180 +0.004337,180 +0.003487,180 +0.003685,180 +0.003598,180 +0.003867,180 +0.003445,180 +0.003491,180 +0.003522,180 +0.003481,180 +0.003945,180 +0.003953,180 +0.004146,180 +0.004174,180 +0.004212,180 +0.004009,180 +0.003485,180 +0.003538,180 +0.003646,180 +0.003549,180 +0.003461,180 +0.003395,180 +0.003463,180 +0.003542,180 +0.003426,180 +0.003518,180 +0.003413,180 +0.003602,180 +0.003509,180 +0.003408,180 +0.003412,180 +0.003377,180 +0.003336,180 +0.003671,180 +0.003293,180 +0.003453,180 +0.003358,180 +0.003344,180 +0.003603,180 +0.003481,180 +0.003429,180 +0.003489,180 +0.003376,180 +0.003597,180 +0.003199,180 +0.006071,180 +0.004131,180 +0.003369,180 +0.003196,180 +0.003210,180 +0.003194,180 +0.003199,180 +0.003336,180 +0.003196,180 +0.003194,180 +0.003187,180 +0.003171,180 +0.003301,180 +0.003201,180 +0.003163,180 +0.003162,180 +0.003171,180 +0.003267,180 +0.003166,180 +0.003167,180 +0.003166,180 +0.003159,180 +0.003270,180 +0.003200,180 +0.003164,180 +0.003162,180 +0.003159,180 +0.003192,180 +0.003267,180 +0.003193,180 +0.005630,180 +0.004376,180 +0.003275,180 +0.003530,180 +0.003186,180 +0.003178,180 +0.003557,180 +0.003336,180 +0.003194,180 +0.003186,180 +0.003168,180 +0.003224,180 +0.003370,180 +0.003219,180 +0.003419,182 +0.003360,182 +0.003445,182 +0.003421,182 +0.003299,182 +0.003305,182 +0.003301,182 +0.003343,182 +0.003424,182 +0.003325,182 +0.003298,182 +0.003322,182 +0.003373,182 +0.003489,182 +0.003304,182 +0.005269,182 +0.005044,182 +0.003425,182 +0.003322,182 +0.003903,182 +0.003365,182 +0.003537,182 +0.003340,182 +0.003298,182 +0.003336,182 +0.003341,182 +0.003955,182 +0.003324,182 +0.003321,182 +0.003531,182 +0.003343,182 +0.003573,182 +0.003330,182 +0.003325,182 +0.003301,182 +0.003342,182 +0.003532,182 +0.003298,182 +0.003303,182 +0.003549,182 +0.003413,182 +0.003438,182 +0.003696,182 +0.003524,182 +0.003702,182 +0.003760,182 +0.003347,182 +0.003355,182 +0.003342,182 +0.003384,182 +0.003610,182 +0.003367,182 +0.003298,182 +0.003330,182 +0.003324,182 +0.003480,182 +0.003303,182 +0.003301,182 +0.003298,182 +0.003307,182 +0.003458,182 +0.003303,182 +0.003301,182 +0.003303,182 +0.003298,182 +0.003439,182 +0.003310,182 +0.003300,182 +0.003303,182 +0.003300,182 +0.003435,182 +0.003303,182 +0.003391,182 +0.003518,182 +0.003521,182 +0.003498,182 +0.003325,182 +0.003298,182 +0.003301,182 +0.003323,182 +0.003512,182 +0.003333,182 +0.003322,182 +0.003591,182 +0.003476,182 +0.004173,182 +0.003645,182 +0.003635,182 +0.003644,182 +0.003882,182 +0.003617,182 +0.003687,182 +0.003340,182 +0.003958,182 +0.003804,182 +0.003327,182 +0.003628,182 +0.003332,182 +0.003860,182 +0.003440,182 +0.003478,184 +0.003872,184 +0.003574,184 +0.003834,184 +0.003615,184 +0.003471,184 +0.003375,184 +0.003846,184 +0.003612,184 +0.003411,184 +0.003410,184 +0.003546,184 +0.003638,184 +0.003450,184 +0.003373,184 +0.003526,184 +0.003471,184 +0.003868,184 +0.003409,184 +0.003431,184 +0.003712,184 +0.003757,184 +0.003919,184 +0.003743,184 +0.003877,184 +0.004446,184 +0.003781,184 +0.003494,184 +0.003574,184 +0.003515,184 +0.003843,184 +0.003487,184 +0.003726,184 +0.003475,184 +0.003640,184 +0.003964,184 +0.003477,184 +0.003568,184 +0.003411,184 +0.003638,184 +0.003699,184 +0.003571,184 +0.003672,184 +0.003516,184 +0.004054,184 +0.003407,184 +0.003674,184 +0.003867,184 +0.003679,184 +0.003599,184 +0.003693,184 +0.003736,184 +0.003553,184 +0.003677,184 +0.003643,184 +0.003409,184 +0.003831,184 +0.003547,184 +0.003797,184 +0.003437,184 +0.003663,184 +0.003375,184 +0.003873,184 +0.003873,184 +0.003577,184 +0.003461,184 +0.003798,184 +0.003677,184 +0.003596,184 +0.003566,184 +0.003559,184 +0.003469,184 +0.003993,184 +0.003479,184 +0.003687,184 +0.003701,184 +0.003874,184 +0.003523,184 +0.003456,184 +0.003757,184 +0.003408,184 +0.003917,184 +0.003623,184 +0.003624,184 +0.003523,184 +0.003855,184 +0.003613,184 +0.003494,184 +0.003663,184 +0.003490,184 +0.003807,184 +0.003417,184 +0.003416,184 +0.003683,184 +0.003648,184 +0.003582,184 +0.003410,184 +0.003647,184 +0.003441,184 +0.003741,184 +0.003845,186 +0.003610,186 +0.003840,186 +0.003755,186 +0.003996,186 +0.003626,186 +0.003662,186 +0.003616,186 +0.003837,186 +0.003807,186 +0.003575,186 +0.003698,186 +0.003855,186 +0.004090,186 +0.003746,186 +0.003654,186 +0.003662,186 +0.003753,186 +0.003679,186 +0.003729,186 +0.003555,186 +0.004084,186 +0.003842,186 +0.004042,186 +0.003867,186 +0.003646,186 +0.004074,186 +0.003782,186 +0.003805,186 +0.003689,186 +0.004057,186 +0.003623,186 +0.003747,186 +0.003948,186 +0.003816,186 +0.003689,186 +0.003701,186 +0.004021,186 +0.003745,186 +0.004078,186 +0.003749,186 +0.003831,186 +0.003884,186 +0.003938,186 +0.003788,186 +0.003805,186 +0.003843,186 +0.003815,186 +0.004775,186 +0.003963,186 +0.003874,186 +0.003864,186 +0.003969,186 +0.003972,186 +0.003923,186 +0.003896,186 +0.003969,186 +0.003879,186 +0.003893,186 +0.003916,186 +0.004147,186 +0.003865,186 +0.004189,186 +0.004018,186 +0.003830,186 +0.004140,186 +0.003803,186 +0.003855,186 +0.003847,186 +0.003834,186 +0.003831,186 +0.003836,186 +0.003793,186 +0.003835,186 +0.003768,186 +0.003816,186 +0.003799,186 +0.003921,186 +0.003870,186 +0.004070,186 +0.003696,186 +0.003704,186 +0.003752,186 +0.003701,186 +0.003696,186 +0.003698,186 +0.003802,186 +0.003829,186 +0.003843,186 +0.003912,186 +0.003834,186 +0.003880,186 +0.003977,186 +0.003990,186 +0.003975,186 +0.004196,186 +0.003918,186 +0.003972,186 +0.003786,186 +0.003989,186 +0.004024,188 +0.003897,188 +0.004031,188 +0.004214,188 +0.004064,188 +0.004241,188 +0.004052,188 +0.004212,188 +0.003884,188 +0.003797,188 +0.003846,188 +0.004174,188 +0.003773,188 +0.003844,188 +0.003915,188 +0.003933,188 +0.003868,188 +0.004128,188 +0.003906,188 +0.003799,188 +0.004139,188 +0.003761,188 +0.003768,188 +0.003649,188 +0.004111,188 +0.003630,188 +0.003623,188 +0.003623,188 +0.004186,188 +0.003697,188 +0.003625,188 +0.003631,188 +0.003623,188 +0.003940,188 +0.003590,188 +0.003624,188 +0.003612,188 +0.004065,188 +0.003658,188 +0.003619,188 +0.004117,188 +0.003771,188 +0.003812,188 +0.004109,188 +0.004308,188 +0.004025,188 +0.004218,188 +0.004310,188 +0.004067,188 +0.004055,188 +0.004184,188 +0.003942,188 +0.003944,188 +0.003933,188 +0.004197,188 +0.003830,188 +0.003792,188 +0.003786,188 +0.003824,188 +0.003799,188 +0.004284,188 +0.004693,188 +0.004667,188 +0.004699,188 +0.004437,188 +0.004234,188 +0.004512,188 +0.004764,188 +0.003925,188 +0.003896,188 +0.003828,188 +0.003627,188 +0.003622,188 +0.004032,188 +0.003930,188 +0.003808,188 +0.003687,188 +0.003625,188 +0.004004,188 +0.004522,188 +0.003834,188 +0.003986,188 +0.003676,188 +0.004082,188 +0.003910,188 +0.003707,188 +0.004000,188 +0.003937,188 +0.003630,188 +0.003981,188 +0.004197,188 +0.004261,188 +0.004293,188 +0.003882,188 +0.003632,188 +0.003609,188 +0.003895,188 +0.003628,188 +0.003638,188 +0.003625,188 +0.004031,190 +0.003732,190 +0.003713,190 +0.004069,190 +0.003967,190 +0.003814,190 +0.003748,190 +0.003742,190 +0.003794,190 +0.003921,190 +0.003743,190 +0.003948,190 +0.003822,190 +0.003917,190 +0.004039,190 +0.003837,190 +0.003886,190 +0.004334,190 +0.004670,190 +0.003918,190 +0.003767,190 +0.003926,190 +0.004045,190 +0.003812,190 +0.003883,190 +0.004148,190 +0.003789,190 +0.003733,190 +0.003982,190 +0.003831,190 +0.004218,190 +0.003887,190 +0.004065,190 +0.003829,190 +0.004073,190 +0.003854,190 +0.003864,190 +0.004040,190 +0.003908,190 +0.003708,190 +0.003750,190 +0.003847,190 +0.003919,190 +0.004953,190 +0.003872,190 +0.003915,190 +0.003805,190 +0.003935,190 +0.003760,190 +0.003736,190 +0.003736,190 +0.003952,190 +0.003751,190 +0.003966,190 +0.003744,190 +0.004105,190 +0.004057,190 +0.003848,190 +0.004103,190 +0.004007,190 +0.003991,190 +0.003958,190 +0.003858,190 +0.003898,190 +0.004309,190 +0.003779,190 +0.004400,190 +0.003842,190 +0.004690,190 +0.004212,190 +0.003952,190 +0.003825,190 +0.004132,190 +0.003949,190 +0.003970,190 +0.003901,190 +0.004336,190 +0.004022,190 +0.004203,190 +0.004286,190 +0.004137,190 +0.003975,190 +0.004159,190 +0.004018,190 +0.004249,190 +0.003971,190 +0.004063,190 +0.004069,190 +0.004161,190 +0.004036,190 +0.004065,190 +0.004090,190 +0.004051,190 +0.005002,190 +0.004184,190 +0.004001,190 +0.004155,190 +0.004062,190 +0.004114,190 +0.003998,190 +0.004504,192 +0.004226,192 +0.004231,192 +0.004154,192 +0.004391,192 +0.004256,192 +0.004164,192 +0.004621,192 +0.004542,192 +0.004177,192 +0.004269,192 +0.004290,192 +0.004861,192 +0.004628,192 +0.004849,192 +0.004740,192 +0.005128,192 +0.004511,192 +0.004285,192 +0.004344,192 +0.004368,192 +0.004324,192 +0.004270,192 +0.004247,192 +0.004214,192 +0.004177,192 +0.004196,192 +0.004271,192 +0.004291,192 +0.004231,192 +0.004307,192 +0.004301,192 +0.004323,192 +0.004325,192 +0.004395,192 +0.004233,192 +0.004210,192 +0.004187,192 +0.004353,192 +0.004866,192 +0.004385,192 +0.004047,192 +0.004525,192 +0.003945,192 +0.004156,192 +0.004179,192 +0.004386,192 +0.003930,192 +0.004117,192 +0.004327,192 +0.004368,192 +0.004014,192 +0.003910,192 +0.003904,192 +0.004190,192 +0.003906,192 +0.003925,192 +0.004126,192 +0.004216,192 +0.003886,192 +0.004132,192 +0.003998,192 +0.004251,192 +0.004098,192 +0.004112,192 +0.004504,192 +0.004272,192 +0.003909,192 +0.004141,192 +0.003941,192 +0.004337,192 +0.003940,192 +0.004117,192 +0.003910,192 +0.004424,192 +0.003919,192 +0.003898,192 +0.003902,192 +0.004022,192 +0.004072,192 +0.004431,192 +0.003967,192 +0.003941,192 +0.004591,192 +0.003937,192 +0.003917,192 +0.004209,192 +0.004130,192 +0.004293,192 +0.004051,192 +0.003910,192 +0.004307,192 +0.004201,192 +0.004005,192 +0.003908,192 +0.004203,192 +0.003900,192 +0.003901,192 +0.003943,192 +0.004501,192 +0.004094,194 +0.003974,194 +0.003975,194 +0.004121,194 +0.003976,194 +0.003980,194 +0.004015,194 +0.004034,194 +0.003976,194 +0.003973,194 +0.004004,194 +0.004086,194 +0.004075,194 +0.004420,194 +0.004343,194 +0.004312,194 +0.004001,194 +0.004387,194 +0.004344,194 +0.004544,194 +0.004207,194 +0.004339,194 +0.004008,194 +0.004578,194 +0.004317,194 +0.004009,194 +0.004012,194 +0.004546,194 +0.004054,194 +0.004310,194 +0.004004,194 +0.004506,194 +0.004113,194 +0.004008,194 +0.004088,194 +0.004520,194 +0.004227,194 +0.004167,194 +0.004084,194 +0.004735,194 +0.004056,194 +0.004024,194 +0.004008,194 +0.004922,194 +0.004059,194 +0.004162,194 +0.004479,194 +0.004472,194 +0.004063,194 +0.004017,194 +0.004182,194 +0.004476,194 +0.004032,194 +0.004005,194 +0.004184,194 +0.004252,194 +0.004021,194 +0.004021,194 +0.004307,194 +0.004103,194 +0.004144,194 +0.004259,194 +0.004192,194 +0.004050,194 +0.003998,194 +0.004037,194 +0.004022,194 +0.004178,194 +0.003980,194 +0.003993,194 +0.003995,194 +0.004106,194 +0.004053,194 +0.003975,194 +0.003972,194 +0.004192,194 +0.003993,194 +0.004004,194 +0.003973,194 +0.004068,194 +0.003973,194 +0.003975,194 +0.003972,194 +0.004128,194 +0.003974,194 +0.004098,194 +0.004575,194 +0.004296,194 +0.004130,194 +0.004183,194 +0.004120,194 +0.004470,194 +0.004030,194 +0.004261,194 +0.004005,194 +0.004232,194 +0.004353,194 +0.004020,194 +0.004014,194 +0.004370,194 +0.004545,196 +0.004109,196 +0.004114,196 +0.004780,196 +0.004173,196 +0.004120,196 +0.004174,196 +0.004525,196 +0.004153,196 +0.004320,196 +0.004240,196 +0.004641,196 +0.004273,196 +0.004153,196 +0.004230,196 +0.005091,196 +0.004129,196 +0.004116,196 +0.004529,196 +0.004654,196 +0.004161,196 +0.004103,196 +0.004477,196 +0.004167,196 +0.004105,196 +0.004087,196 +0.004363,196 +0.004107,196 +0.004086,196 +0.004084,196 +0.004302,196 +0.004159,196 +0.004212,196 +0.004335,196 +0.004361,196 +0.004112,196 +0.004103,196 +0.004086,196 +0.004496,196 +0.004112,196 +0.004112,196 +0.004083,196 +0.004287,196 +0.004234,196 +0.004107,196 +0.004129,196 +0.004353,196 +0.004115,196 +0.004112,196 +0.004107,196 +0.004223,196 +0.004106,196 +0.004081,196 +0.004080,196 +0.004291,196 +0.004178,196 +0.004245,196 +0.004458,196 +0.004203,196 +0.004119,196 +0.004101,196 +0.004108,196 +0.004204,196 +0.004112,196 +0.004143,196 +0.004096,196 +0.004264,196 +0.004084,196 +0.004080,196 +0.004083,196 +0.004164,196 +0.004152,196 +0.004085,196 +0.004126,196 +0.004152,196 +0.004085,196 +0.004088,196 +0.004084,196 +0.004290,196 +0.004087,196 +0.004122,196 +0.004348,196 +0.004431,196 +0.004117,196 +0.004116,196 +0.004105,196 +0.004325,196 +0.004107,196 +0.004109,196 +0.004101,196 +0.004195,196 +0.004197,196 +0.004107,196 +0.004083,196 +0.004143,196 +0.004084,196 +0.004081,196 +0.004082,196 +0.004170,196 +0.004112,196 +0.004318,198 +0.004213,198 +0.004337,198 +0.004214,198 +0.004221,198 +0.004428,198 +0.004661,198 +0.004246,198 +0.004222,198 +0.004220,198 +0.004276,198 +0.004216,198 +0.004216,198 +0.004216,198 +0.004276,198 +0.004217,198 +0.004213,198 +0.004215,198 +0.004296,198 +0.004217,198 +0.004212,198 +0.004212,198 +0.004280,198 +0.004213,198 +0.004212,198 +0.004426,198 +0.004250,198 +0.004213,198 +0.004275,198 +0.004559,198 +0.004351,198 +0.004217,198 +0.004215,198 +0.004253,198 +0.004269,198 +0.004281,198 +0.004236,198 +0.004277,198 +0.004218,198 +0.004223,198 +0.004214,198 +0.004282,198 +0.004261,198 +0.004236,198 +0.004212,198 +0.004287,198 +0.004214,198 +0.004212,198 +0.004216,198 +0.004355,198 +0.004310,198 +0.004226,198 +0.004401,198 +0.004622,198 +0.004228,198 +0.004243,198 +0.004255,198 +0.004280,198 +0.004212,198 +0.004213,198 +0.004215,198 +0.004380,198 +0.004283,198 +0.004212,198 +0.004255,198 +0.004258,198 +0.004219,198 +0.004212,198 +0.004250,198 +0.004269,198 +0.004219,198 +0.004212,198 +0.004329,198 +0.004275,198 +0.004237,198 +0.004275,198 +0.004463,198 +0.004471,198 +0.004213,198 +0.004217,198 +0.004276,198 +0.004217,198 +0.004242,198 +0.004213,198 +0.004380,198 +0.004281,198 +0.004233,198 +0.004236,198 +0.004297,198 +0.004251,198 +0.004215,198 +0.004216,198 +0.004283,198 +0.004217,198 +0.004213,198 +0.004256,198 +0.004317,198 +0.004218,198 +0.004213,198 +0.004384,198 +0.004875,200 +0.004366,200 +0.004361,200 +0.004399,200 +0.004415,200 +0.004386,200 +0.004407,200 +0.004432,200 +0.004415,200 +0.004395,200 +0.004359,200 +0.004429,200 +0.004360,200 +0.004360,200 +0.004363,200 +0.004422,200 +0.004364,200 +0.004360,200 +0.004365,200 +0.004492,200 +0.004363,200 +0.004359,200 +0.004645,200 +0.004694,200 +0.004384,200 +0.004401,200 +0.004458,200 +0.004390,200 +0.004361,200 +0.004362,200 +0.004420,200 +0.004363,200 +0.004360,200 +0.004362,200 +0.004421,200 +0.004365,200 +0.004360,200 +0.004395,200 +0.004394,200 +0.004364,200 +0.004419,200 +0.004473,200 +0.004394,200 +0.004363,200 +0.004360,200 +0.004659,200 +0.004696,200 +0.004363,200 +0.004363,200 +0.004435,200 +0.004360,200 +0.004365,200 +0.004362,200 +0.004423,200 +0.004365,200 +0.004360,200 +0.004391,200 +0.004401,200 +0.004360,200 +0.004360,200 +0.004427,200 +0.004361,200 +0.004364,200 +0.004360,200 +0.004512,200 +0.004462,200 +0.004412,200 +0.004441,200 +0.004719,200 +0.004610,200 +0.004381,200 +0.004391,200 +0.004394,200 +0.004364,200 +0.004359,200 +0.004427,200 +0.004363,200 +0.004368,200 +0.004362,200 +0.004423,200 +0.004364,200 +0.004360,200 +0.004360,200 +0.004427,200 +0.004361,200 +0.004359,200 +0.004365,200 +0.004485,200 +0.004360,200 +0.004359,200 +0.004434,200 +0.004607,200 +0.004493,200 +0.004360,200 +0.004424,200 +0.004388,200 +0.004379,200 +0.004362,200 +0.004463,200 +0.004364,200 +0.004613,202 +0.004510,202 +0.004569,202 +0.004569,202 +0.004556,202 +0.004572,202 +0.004568,202 +0.004506,202 +0.004510,202 +0.004647,202 +0.004511,202 +0.004512,202 +0.004506,202 +0.004837,202 +0.004759,202 +0.004527,202 +0.004569,202 +0.004513,202 +0.004506,202 +0.004507,202 +0.004567,202 +0.004573,202 +0.004506,202 +0.004505,202 +0.004572,202 +0.004508,202 +0.004508,202 +0.004534,202 +0.004607,202 +0.004505,202 +0.004505,202 +0.004670,202 +0.004512,202 +0.004506,202 +0.004507,202 +0.004731,202 +0.004904,202 +0.004541,202 +0.004570,202 +0.004554,202 +0.004550,202 +0.004508,202 +0.004588,202 +0.004510,202 +0.004506,202 +0.004534,202 +0.004548,202 +0.004505,202 +0.004509,202 +0.004566,202 +0.004510,202 +0.004506,202 +0.004505,202 +0.004651,202 +0.004515,202 +0.004506,202 +0.004507,202 +0.004745,202 +0.004779,202 +0.004541,202 +0.005156,202 +0.004703,202 +0.004594,202 +0.004549,202 +0.004622,202 +0.004536,202 +0.004507,202 +0.004540,202 +0.004541,202 +0.004506,202 +0.004577,202 +0.004567,202 +0.004510,202 +0.004508,202 +0.004508,202 +0.004650,202 +0.004569,202 +0.004506,202 +0.004534,202 +0.004766,202 +0.004821,202 +0.004531,202 +0.004595,202 +0.004530,202 +0.004506,202 +0.004537,202 +0.004541,202 +0.004552,202 +0.004505,202 +0.004571,202 +0.004506,202 +0.004541,202 +0.004512,202 +0.004737,202 +0.004575,202 +0.005103,202 +0.004676,202 +0.004671,202 +0.004511,202 +0.004506,202 +0.005009,204 +0.004842,204 +0.004876,204 +0.004731,204 +0.004710,204 +0.004678,204 +0.004683,204 +0.004779,204 +0.004634,204 +0.004630,204 +0.004762,204 +0.004729,204 +0.004662,204 +0.004660,204 +0.004727,204 +0.004658,204 +0.004705,204 +0.004630,204 +0.004776,204 +0.004630,204 +0.004630,204 +0.004693,204 +0.004734,204 +0.004899,204 +0.004656,204 +0.004711,204 +0.004653,204 +0.004658,204 +0.004669,204 +0.004662,204 +0.004720,204 +0.004629,204 +0.004696,204 +0.004633,204 +0.004635,204 +0.004657,204 +0.004666,204 +0.004630,204 +0.004630,204 +0.004703,204 +0.004710,204 +0.004629,204 +0.004632,204 +0.004732,204 +0.004913,204 +0.004954,204 +0.004754,204 +0.004660,204 +0.004650,204 +0.004663,204 +0.004727,204 +0.004678,204 +0.004629,204 +0.004697,204 +0.004631,204 +0.004630,204 +0.004633,204 +0.004696,204 +0.004629,204 +0.004630,204 +0.004660,204 +0.004747,204 +0.004632,204 +0.004634,204 +0.004871,204 +0.004808,204 +0.004954,204 +0.004905,204 +0.004718,204 +0.004630,204 +0.004633,204 +0.004883,204 +0.004657,204 +0.004652,204 +0.004680,204 +0.004664,204 +0.004670,204 +0.004635,204 +0.004735,204 +0.004636,204 +0.004629,204 +0.004642,204 +0.004760,204 +0.004714,204 +0.004629,204 +0.004696,204 +0.004633,204 +0.004911,204 +0.004861,204 +0.004721,204 +0.004634,204 +0.004653,204 +0.004802,204 +0.004630,204 +0.004630,204 +0.004633,204 +0.004692,204 +0.004636,204 +0.004629,204 +0.004660,204 +0.004924,206 +0.004774,206 +0.004782,206 +0.004954,206 +0.004774,206 +0.004768,206 +0.004833,206 +0.004776,206 +0.005023,206 +0.005055,206 +0.004881,206 +0.004827,206 +0.004799,206 +0.004937,206 +0.004790,206 +0.004772,206 +0.004799,206 +0.004842,206 +0.004774,206 +0.004841,206 +0.004854,206 +0.004783,206 +0.004769,206 +0.004809,206 +0.004883,206 +0.004772,206 +0.004780,206 +0.004834,206 +0.004769,206 +0.005048,206 +0.005067,206 +0.004833,206 +0.004809,206 +0.004795,206 +0.004867,206 +0.004885,206 +0.004772,206 +0.004829,206 +0.004773,206 +0.004769,206 +0.004774,206 +0.004830,206 +0.004772,206 +0.004769,206 +0.004840,206 +0.004875,206 +0.004769,206 +0.004771,206 +0.004831,206 +0.004773,206 +0.005113,206 +0.007995,206 +0.008452,206 +0.008079,206 +0.004899,206 +0.004804,206 +0.004890,206 +0.004867,206 +0.004817,206 +0.004849,206 +0.004793,206 +0.004769,206 +0.004773,206 +0.004853,206 +0.004848,206 +0.004771,206 +0.004855,206 +0.004816,206 +0.004872,206 +0.005138,206 +0.004869,206 +0.004817,206 +0.004909,206 +0.004867,206 +0.004769,206 +0.004772,206 +0.004822,206 +0.004817,206 +0.004771,206 +0.004769,206 +0.004853,206 +0.004775,206 +0.004769,206 +0.004810,206 +0.004889,206 +0.004830,206 +0.004773,206 +0.004847,206 +0.004771,206 +0.004953,206 +0.005091,206 +0.004828,206 +0.004772,206 +0.004789,206 +0.004878,206 +0.004794,206 +0.004769,206 +0.004853,206 +0.004769,206 +0.004771,206 +0.005036,208 +0.005039,208 +0.004925,208 +0.004919,208 +0.005021,208 +0.005021,208 +0.004919,208 +0.004978,208 +0.004968,208 +0.004918,208 +0.005219,208 +0.005136,208 +0.004977,208 +0.005095,208 +0.005023,208 +0.004945,208 +0.004943,208 +0.005017,208 +0.004997,208 +0.004923,208 +0.004930,208 +0.005022,208 +0.004922,208 +0.004961,208 +0.004998,208 +0.004979,208 +0.004918,208 +0.004960,208 +0.004986,208 +0.004919,208 +0.005191,208 +0.005119,208 +0.004947,208 +0.004944,208 +0.004981,208 +0.004919,208 +0.005006,208 +0.004949,208 +0.004951,208 +0.004922,208 +0.004920,208 +0.004983,208 +0.004919,208 +0.004918,208 +0.004981,208 +0.005008,208 +0.004927,208 +0.004949,208 +0.004953,208 +0.004924,208 +0.005130,208 +0.005277,208 +0.004958,208 +0.004919,208 +0.005014,208 +0.004946,208 +0.004918,208 +0.004952,208 +0.004955,208 +0.004919,208 +0.004920,208 +0.004986,208 +0.004918,208 +0.004918,208 +0.004971,208 +0.004995,208 +0.004938,208 +0.005102,208 +0.005016,208 +0.004951,208 +0.005049,208 +0.005315,208 +0.004940,208 +0.004971,208 +0.005001,208 +0.004947,208 +0.004945,208 +0.004969,208 +0.005006,208 +0.004923,208 +0.004919,208 +0.004984,208 +0.004922,208 +0.004919,208 +0.004948,208 +0.005040,208 +0.005027,208 +0.004921,208 +0.004980,208 +0.004925,208 +0.004918,208 +0.005315,208 +0.005033,208 +0.004925,208 +0.004946,208 +0.004956,208 +0.004919,208 +0.004922,208 +0.004980,208 +0.004922,208 +0.005214,210 +0.005162,210 +0.005099,210 +0.005105,210 +0.005186,210 +0.005162,210 +0.005276,210 +0.005236,210 +0.005176,210 +0.005095,210 +0.005244,210 +0.005476,210 +0.005100,210 +0.005196,210 +0.005180,210 +0.005102,210 +0.005095,210 +0.005179,210 +0.005141,210 +0.005170,210 +0.005148,210 +0.005152,210 +0.005102,210 +0.005099,210 +0.005162,210 +0.005164,210 +0.005137,210 +0.005179,210 +0.005100,210 +0.005098,210 +0.005395,210 +0.005238,210 +0.005161,210 +0.005177,210 +0.005125,210 +0.005229,210 +0.005146,210 +0.005129,210 +0.005099,210 +0.005098,210 +0.005160,210 +0.005096,210 +0.005100,210 +0.005157,210 +0.005181,210 +0.005095,210 +0.005163,210 +0.005100,210 +0.005097,210 +0.005175,210 +0.005415,210 +0.005359,210 +0.005202,210 +0.005224,210 +0.005125,210 +0.005177,210 +0.005315,210 +0.005119,210 +0.005096,210 +0.005162,210 +0.005102,210 +0.005095,210 +0.005125,210 +0.005134,210 +0.005175,210 +0.005097,210 +0.005196,210 +0.005098,210 +0.005097,210 +0.005353,210 +0.005342,210 +0.005119,210 +0.005177,210 +0.005102,210 +0.005146,210 +0.005160,210 +0.005101,210 +0.005107,210 +0.005126,210 +0.005128,210 +0.005100,210 +0.005098,210 +0.005166,210 +0.005230,210 +0.005131,210 +0.005158,210 +0.005099,210 +0.005097,210 +0.005200,210 +0.005421,210 +0.005113,210 +0.005148,210 +0.005129,210 +0.005099,210 +0.005100,210 +0.005155,210 +0.005172,210 +0.005104,210 +0.005160,210 +0.005100,210 +0.005338,212 +0.005299,212 +0.005295,212 +0.005210,212 +0.005338,212 +0.005213,212 +0.005208,212 +0.005261,212 +0.005489,212 +0.005501,212 +0.005398,212 +0.005309,212 +0.005229,212 +0.005254,212 +0.005347,212 +0.005216,212 +0.005218,212 +0.005280,212 +0.005212,212 +0.005255,212 +0.005271,212 +0.005316,212 +0.005210,212 +0.005294,212 +0.005210,212 +0.005210,212 +0.005296,212 +0.005481,212 +0.005432,212 +0.005325,212 +0.005243,212 +0.005295,212 +0.005212,212 +0.005296,212 +0.005209,212 +0.005213,212 +0.005270,212 +0.005212,212 +0.005210,212 +0.005275,212 +0.005297,212 +0.005215,212 +0.005271,212 +0.005213,212 +0.005209,212 +0.005241,212 +0.005435,212 +0.005482,212 +0.005306,212 +0.005241,212 +0.005210,212 +0.005216,212 +0.005293,212 +0.005209,212 +0.005214,212 +0.005270,212 +0.005212,212 +0.005214,212 +0.005270,212 +0.005257,212 +0.005216,212 +0.005388,212 +0.005245,212 +0.005221,212 +0.005250,212 +0.005424,212 +0.005478,212 +0.005264,212 +0.005265,212 +0.005257,212 +0.005250,212 +0.005272,212 +0.005208,212 +0.005213,212 +0.005271,212 +0.005214,212 +0.005270,212 +0.005321,212 +0.005319,212 +0.005250,212 +0.005280,212 +0.005211,212 +0.005216,212 +0.005238,212 +0.005358,212 +0.005522,212 +0.005261,212 +0.005268,212 +0.005213,212 +0.005252,212 +0.005271,212 +0.005213,212 +0.005221,212 +0.005293,212 +0.005210,212 +0.005214,212 +0.005291,212 +0.005254,212 +0.005251,212 +0.005415,212 +0.005511,214 +0.005377,214 +0.005431,214 +0.005497,214 +0.005634,214 +0.005582,214 +0.005380,214 +0.005369,214 +0.005434,214 +0.005454,214 +0.005416,214 +0.005450,214 +0.005415,214 +0.005371,214 +0.005402,214 +0.005410,214 +0.005471,214 +0.005407,214 +0.005401,214 +0.005369,214 +0.005376,214 +0.005434,214 +0.005608,214 +0.005504,214 +0.005458,214 +0.005459,214 +0.005456,214 +0.005460,214 +0.005475,214 +0.005412,214 +0.005440,214 +0.005371,214 +0.005371,214 +0.005431,214 +0.005435,214 +0.005369,214 +0.005473,214 +0.005393,214 +0.005372,214 +0.005430,214 +0.005473,214 +0.005797,214 +0.005643,214 +0.005410,214 +0.005420,214 +0.005513,214 +0.005400,214 +0.005405,214 +0.005477,214 +0.005369,214 +0.005369,214 +0.005436,214 +0.005374,214 +0.005494,214 +0.005534,214 +0.005442,214 +0.005402,214 +0.005645,214 +0.005529,214 +0.005776,214 +0.005501,214 +0.005429,214 +0.005412,214 +0.005443,214 +0.005445,214 +0.005392,214 +0.005399,214 +0.005408,214 +0.005370,214 +0.005399,214 +0.005412,214 +0.005515,214 +0.005474,214 +0.005406,214 +0.005369,214 +0.005374,214 +0.005431,214 +0.005568,214 +0.005725,214 +0.005470,214 +0.005413,214 +0.005427,214 +0.005471,214 +0.005412,214 +0.005399,214 +0.005446,214 +0.005378,214 +0.005411,214 +0.005457,214 +0.005401,214 +0.005452,214 +0.005452,214 +0.005376,214 +0.005369,214 +0.005473,214 +0.005397,214 +0.005785,214 +0.005732,214 +0.005391,214 +0.005625,214 +0.006151,216 +0.005788,216 +0.006171,216 +0.006296,216 +0.006094,216 +0.006567,216 +0.008187,216 +0.006341,216 +0.006257,216 +0.006222,216 +0.006249,216 +0.006635,216 +0.007265,216 +0.006322,216 +0.006406,216 +0.006345,216 +0.006161,216 +0.006079,216 +0.007007,216 +0.006613,216 +0.006141,216 +0.006247,216 +0.006074,216 +0.007351,216 +0.005990,216 +0.006103,216 +0.007244,216 +0.007006,216 +0.008089,216 +0.006477,216 +0.007051,216 +0.007433,216 +0.007063,216 +0.006501,216 +0.006232,216 +0.006415,216 +0.006916,216 +0.007117,216 +0.007403,216 +0.006350,216 +0.007760,216 +0.006184,216 +0.005968,216 +0.007188,216 +0.006074,216 +0.007077,216 +0.005790,216 +0.006115,216 +0.008246,216 +0.007490,216 +0.007457,216 +0.005645,216 +0.006889,216 +0.006281,216 +0.006042,216 +0.006582,216 +0.006166,216 +0.006802,216 +0.006558,216 +0.006041,216 +0.006568,216 +0.006179,216 +0.006179,216 +0.006787,216 +0.007046,216 +0.008044,216 +0.006161,216 +0.006380,216 +0.006220,216 +0.005972,216 +0.007988,216 +0.006318,216 +0.007219,216 +0.007577,216 +0.007820,216 +0.006773,216 +0.006201,216 +0.006750,216 +0.006430,216 +0.006074,216 +0.006347,216 +0.005806,216 +0.006344,216 +0.006285,216 +0.006094,216 +0.006686,216 +0.005977,216 +0.005836,216 +0.006300,216 +0.007047,216 +0.006276,216 +0.006208,216 +0.005685,216 +0.006487,216 +0.006019,216 +0.005781,216 +0.007648,216 +0.005997,216 +0.007177,216 +0.006766,216 +0.006210,218 +0.007256,218 +0.005898,218 +0.006264,218 +0.009736,218 +0.005934,218 +0.006642,218 +0.005758,218 +0.006376,218 +0.006204,218 +0.005705,218 +0.006358,218 +0.005827,218 +0.005790,218 +0.006412,218 +0.005781,218 +0.006085,218 +0.006048,218 +0.005698,218 +0.006003,218 +0.006033,218 +0.005719,218 +0.005811,218 +0.005729,218 +0.005720,218 +0.005784,218 +0.005733,218 +0.005670,218 +0.005820,218 +0.005687,218 +0.005769,218 +0.005788,218 +0.005663,218 +0.005668,218 +0.005807,218 +0.005668,218 +0.005742,218 +0.006086,218 +0.005812,218 +0.005815,218 +0.005765,218 +0.005701,218 +0.005771,218 +0.005702,218 +0.005669,218 +0.005714,218 +0.005747,218 +0.005663,218 +0.005804,218 +0.005729,218 +0.005664,218 +0.005859,218 +0.005708,218 +0.005690,218 +0.005978,218 +0.006048,218 +0.005702,218 +0.005724,218 +0.005713,218 +0.005784,218 +0.006000,218 +0.005901,218 +0.005784,218 +0.006205,218 +0.005706,218 +0.005842,218 +0.005730,218 +0.005667,218 +0.005869,218 +0.005789,218 +0.005679,218 +0.005993,218 +0.006072,218 +0.005793,218 +0.005816,218 +0.006076,218 +0.005689,218 +0.005872,218 +0.006006,218 +0.005817,218 +0.005734,218 +0.005828,218 +0.005804,218 +0.005768,218 +0.005742,218 +0.005726,218 +0.005716,218 +0.005692,218 +0.005666,218 +0.006121,218 +0.005762,218 +0.005669,218 +0.005726,218 +0.005705,218 +0.005708,218 +0.005705,218 +0.005665,218 +0.005668,218 +0.005781,218 +0.005691,218 +0.006165,220 +0.005818,220 +0.005839,220 +0.005879,220 +0.005838,220 +0.005813,220 +0.006274,220 +0.005964,220 +0.005843,220 +0.005911,220 +0.005859,220 +0.005875,220 +0.005888,220 +0.005807,220 +0.005817,220 +0.005982,220 +0.005889,220 +0.006092,220 +0.005858,220 +0.005828,220 +0.005898,220 +0.005814,220 +0.005815,220 +0.006025,220 +0.005997,220 +0.005881,220 +0.005914,220 +0.005823,220 +0.005818,220 +0.005881,220 +0.005815,220 +0.005816,220 +0.005895,220 +0.005814,220 +0.005960,220 +0.005851,220 +0.005817,220 +0.005895,220 +0.005836,220 +0.005965,220 +0.006084,220 +0.005981,220 +0.005879,220 +0.005960,220 +0.005945,220 +0.005819,220 +0.005910,220 +0.005815,220 +0.006064,220 +0.005851,220 +0.005837,220 +0.006360,220 +0.005851,220 +0.005961,220 +0.006022,220 +0.005815,220 +0.005884,220 +0.006152,220 +0.006042,220 +0.005933,220 +0.005918,220 +0.005819,220 +0.005834,220 +0.005856,220 +0.005812,220 +0.005853,220 +0.005851,220 +0.005817,220 +0.005985,220 +0.005819,220 +0.005813,220 +0.005885,220 +0.005815,220 +0.005817,220 +0.006085,220 +0.006280,220 +0.005859,220 +0.005925,220 +0.005816,220 +0.005828,220 +0.005856,220 +0.005813,220 +0.005826,220 +0.005852,220 +0.005817,220 +0.005921,220 +0.005824,220 +0.005839,220 +0.005873,220 +0.005821,220 +0.005856,220 +0.006110,220 +0.006147,220 +0.005837,220 +0.005921,220 +0.005834,220 +0.005838,220 +0.005865,220 +0.005813,220 +0.005827,220 +0.006199,222 +0.006047,222 +0.006113,222 +0.005991,222 +0.005998,222 +0.006044,222 +0.005992,222 +0.005992,222 +0.006332,222 +0.006240,222 +0.006050,222 +0.006050,222 +0.006035,222 +0.006060,222 +0.006039,222 +0.006035,222 +0.006087,222 +0.005991,222 +0.006057,222 +0.006044,222 +0.005994,222 +0.006002,222 +0.006035,222 +0.006061,222 +0.006153,222 +0.006487,222 +0.006039,222 +0.006085,222 +0.006020,222 +0.006097,222 +0.006120,222 +0.006067,222 +0.006035,222 +0.006069,222 +0.005991,222 +0.006187,222 +0.005994,222 +0.005995,222 +0.006040,222 +0.005995,222 +0.005993,222 +0.006250,222 +0.006297,222 +0.006125,222 +0.006036,222 +0.006073,222 +0.006072,222 +0.005997,222 +0.005991,222 +0.006043,222 +0.005993,222 +0.006054,222 +0.006039,222 +0.005995,222 +0.006002,222 +0.006036,222 +0.005991,222 +0.006044,222 +0.006302,222 +0.006241,222 +0.006090,222 +0.006012,222 +0.006042,222 +0.006062,222 +0.005993,222 +0.006003,222 +0.006059,222 +0.005991,222 +0.006520,222 +0.005994,222 +0.006099,222 +0.006051,222 +0.006056,222 +0.006015,222 +0.006136,222 +0.006390,222 +0.006093,222 +0.006011,222 +0.006018,222 +0.006080,222 +0.006039,222 +0.006015,222 +0.006043,222 +0.005996,222 +0.006123,222 +0.006034,222 +0.005996,222 +0.006089,222 +0.005991,222 +0.005995,222 +0.006039,222 +0.006226,222 +0.006255,222 +0.006094,222 +0.006012,222 +0.006004,222 +0.006030,222 +0.005996,222 +0.006041,222 +0.005995,222 +0.006544,224 +0.006214,224 +0.006159,224 +0.006201,224 +0.006209,224 +0.006269,224 +0.006196,224 +0.006284,224 +0.006576,224 +0.006228,224 +0.006259,224 +0.006181,224 +0.006204,224 +0.006160,224 +0.006206,224 +0.006182,224 +0.006215,224 +0.006209,224 +0.006159,224 +0.006160,224 +0.006209,224 +0.006219,224 +0.006184,224 +0.006200,224 +0.006813,224 +0.006231,224 +0.006438,224 +0.006208,224 +0.006394,224 +0.006190,224 +0.006206,224 +0.006190,224 +0.006220,224 +0.006259,224 +0.006164,224 +0.006159,224 +0.006209,224 +0.006155,224 +0.006170,224 +0.006197,224 +0.006456,224 +0.006614,224 +0.006198,224 +0.006202,224 +0.006229,224 +0.006181,224 +0.006217,224 +0.006183,224 +0.006216,224 +0.006229,224 +0.006287,224 +0.006185,224 +0.006209,224 +0.006493,224 +0.006197,224 +0.006170,224 +0.006525,224 +0.006446,224 +0.006177,224 +0.006217,224 +0.006214,224 +0.006162,224 +0.006206,224 +0.006165,224 +0.006261,224 +0.006237,224 +0.006162,224 +0.006220,224 +0.006216,224 +0.006155,224 +0.006170,224 +0.006198,224 +0.006455,224 +0.006439,224 +0.006188,224 +0.006182,224 +0.006247,224 +0.006160,224 +0.006166,224 +0.006200,224 +0.006179,224 +0.006269,224 +0.006159,224 +0.006158,224 +0.006210,224 +0.006179,224 +0.006262,224 +0.006195,224 +0.006400,224 +0.006445,224 +0.006241,224 +0.006192,224 +0.006266,224 +0.006244,224 +0.006168,224 +0.006225,224 +0.006156,224 +0.006312,224 +0.006159,224 +0.006161,224 +0.006549,226 +0.006319,226 +0.006334,226 +0.006360,226 +0.006602,226 +0.006872,226 +0.006318,226 +0.006371,226 +0.006378,226 +0.006344,226 +0.006397,226 +0.006370,226 +0.006379,226 +0.006397,226 +0.006319,226 +0.006400,226 +0.006359,226 +0.006319,226 +0.006389,226 +0.006320,226 +0.006569,226 +0.006630,226 +0.006340,226 +0.006420,226 +0.006365,226 +0.006322,226 +0.006366,226 +0.006323,226 +0.006906,226 +0.006387,226 +0.006637,226 +0.006371,226 +0.006345,226 +0.006332,226 +0.006357,226 +0.006324,226 +0.006945,226 +0.006377,226 +0.006349,226 +0.006376,226 +0.006559,226 +0.006351,226 +0.006320,226 +0.006376,226 +0.006434,226 +0.006335,226 +0.006330,226 +0.006359,226 +0.006322,226 +0.006369,226 +0.006323,226 +0.006419,226 +0.006789,226 +0.006450,226 +0.006401,226 +0.006351,226 +0.006318,226 +0.006375,226 +0.006323,226 +0.006379,226 +0.006371,226 +0.006317,226 +0.006370,226 +0.006323,226 +0.006361,226 +0.006372,226 +0.006318,226 +0.006571,226 +0.006741,226 +0.006366,226 +0.006431,226 +0.006340,226 +0.006364,226 +0.006402,226 +0.006318,226 +0.006461,226 +0.006320,226 +0.006319,226 +0.006371,226 +0.006320,226 +0.006330,226 +0.006366,226 +0.006392,226 +0.006721,226 +0.006562,226 +0.006344,226 +0.006403,226 +0.006320,226 +0.006370,226 +0.006322,226 +0.006342,226 +0.006452,226 +0.006320,226 +0.006332,226 +0.006359,226 +0.006359,226 +0.006367,226 +0.006324,226 +0.006318,226 +0.006649,226 +0.007106,228 +0.006580,228 +0.006485,228 +0.006484,228 +0.006534,228 +0.006483,228 +0.006636,228 +0.006547,228 +0.006541,228 +0.006579,228 +0.006543,228 +0.006496,228 +0.006526,228 +0.006482,228 +0.006787,228 +0.006789,228 +0.006515,228 +0.006587,228 +0.006502,228 +0.006544,228 +0.006491,228 +0.006656,228 +0.006526,228 +0.006488,228 +0.006556,228 +0.006483,228 +0.006483,228 +0.006536,228 +0.006488,228 +0.006665,228 +0.006857,228 +0.006545,228 +0.006555,228 +0.006531,228 +0.006544,228 +0.006483,228 +0.006527,228 +0.006643,228 +0.006481,228 +0.006529,228 +0.006496,228 +0.006636,228 +0.006586,228 +0.006502,228 +0.006495,228 +0.007019,228 +0.006552,228 +0.006599,228 +0.006554,228 +0.006495,228 +0.006529,228 +0.006485,228 +0.006610,228 +0.006486,228 +0.006483,228 +0.006535,228 +0.006484,228 +0.006531,228 +0.006488,228 +0.006585,228 +0.006792,228 +0.006762,228 +0.006576,228 +0.006481,228 +0.006486,228 +0.006535,228 +0.006481,228 +0.006615,228 +0.006484,228 +0.006499,228 +0.006538,228 +0.006495,228 +0.006501,228 +0.006530,228 +0.006481,228 +0.006686,228 +0.006840,228 +0.006519,228 +0.006612,228 +0.006503,228 +0.006565,228 +0.006530,228 +0.006877,228 +0.006551,228 +0.006489,228 +0.006533,228 +0.006620,228 +0.006507,228 +0.006530,228 +0.006486,228 +0.006534,228 +0.006951,228 +0.006530,228 +0.006585,228 +0.006482,228 +0.006564,228 +0.006488,228 +0.006579,228 +0.006645,228 +0.006481,228 +0.006906,230 +0.006664,230 +0.006654,230 +0.006708,230 +0.006732,230 +0.007061,230 +0.007030,230 +0.007347,230 +0.007360,230 +0.007459,230 +0.007354,230 +0.007573,230 +0.007686,230 +0.007985,230 +0.007109,230 +0.007216,230 +0.007353,230 +0.008097,230 +0.009631,230 +0.007771,230 +0.009133,230 +0.007343,230 +0.008509,230 +0.007966,230 +0.007210,230 +0.008854,230 +0.008231,230 +0.007544,230 +0.008028,230 +0.007625,230 +0.007927,230 +0.008986,230 +0.008489,230 +0.009163,230 +0.011969,230 +0.011834,230 +0.008479,230 +0.007426,230 +0.007346,230 +0.008399,230 +0.008797,230 +0.007532,230 +0.007414,230 +0.006996,230 +0.007756,230 +0.006975,230 +0.007077,230 +0.007386,230 +0.007467,230 +0.007776,230 +0.007609,230 +0.007568,230 +0.007361,230 +0.007952,230 +0.007071,230 +0.008761,230 +0.007205,230 +0.008618,230 +0.007297,230 +0.007950,230 +0.007024,230 +0.008121,230 +0.007081,230 +0.007821,230 +0.007059,230 +0.006998,230 +0.007775,230 +0.007005,230 +0.008090,230 +0.007026,230 +0.007915,230 +0.007400,230 +0.007968,230 +0.007076,230 +0.006918,230 +0.007954,230 +0.006799,230 +0.008414,230 +0.006951,230 +0.008150,230 +0.007105,230 +0.008124,230 +0.006950,230 +0.006990,230 +0.008277,230 +0.006900,230 +0.007570,230 +0.007040,230 +0.007710,230 +0.007099,230 +0.006936,230 +0.007400,230 +0.006832,230 +0.006759,230 +0.006929,230 +0.006787,230 +0.006863,230 +0.006921,230 +0.007279,230 +0.008303,230 +0.007663,232 +0.008658,232 +0.006971,232 +0.007331,232 +0.007265,232 +0.007715,232 +0.008007,232 +0.007884,232 +0.007827,232 +0.008317,232 +0.007851,232 +0.008945,232 +0.008069,232 +0.008027,232 +0.008219,232 +0.010375,232 +0.009157,232 +0.007510,232 +0.008506,232 +0.007659,232 +0.007794,232 +0.008050,232 +0.007744,232 +0.008130,232 +0.008074,232 +0.009084,232 +0.007656,232 +0.007832,232 +0.007544,232 +0.007925,232 +0.007558,232 +0.008052,232 +0.007596,232 +0.007857,232 +0.007764,232 +0.008353,232 +0.007662,232 +0.007970,232 +0.007488,232 +0.007856,232 +0.007517,232 +0.007807,232 +0.007618,232 +0.007640,232 +0.007767,232 +0.007442,232 +0.008778,232 +0.008466,232 +0.009341,232 +0.007269,232 +0.007878,232 +0.007136,232 +0.007985,232 +0.007516,232 +0.008181,232 +0.007519,232 +0.007891,232 +0.007465,232 +0.008925,232 +0.007472,232 +0.007641,232 +0.008206,232 +0.007339,232 +0.008165,232 +0.007036,232 +0.008310,232 +0.007241,232 +0.007607,232 +0.007111,232 +0.007456,232 +0.007123,232 +0.007018,232 +0.007113,232 +0.006921,232 +0.007212,232 +0.007295,232 +0.006936,232 +0.006939,232 +0.007001,232 +0.006917,232 +0.006998,232 +0.006892,232 +0.006963,232 +0.006877,232 +0.006901,232 +0.006871,232 +0.006835,232 +0.006900,232 +0.006971,232 +0.007192,232 +0.006898,232 +0.006905,232 +0.006866,232 +0.006936,232 +0.007135,232 +0.006877,232 +0.006894,232 +0.006838,232 +0.006897,232 +0.006900,232 +0.007237,234 +0.007229,234 +0.007226,234 +0.007570,234 +0.007112,234 +0.007043,234 +0.007135,234 +0.007101,234 +0.007239,234 +0.007078,234 +0.007109,234 +0.007069,234 +0.007125,234 +0.007131,234 +0.007047,234 +0.007088,234 +0.007028,234 +0.007460,234 +0.007143,234 +0.007030,234 +0.007112,234 +0.007027,234 +0.007208,234 +0.007024,234 +0.007050,234 +0.007111,234 +0.007026,234 +0.007117,234 +0.007020,234 +0.007249,234 +0.007210,234 +0.007394,234 +0.007278,234 +0.007165,234 +0.007221,234 +0.007963,234 +0.009203,234 +0.008000,234 +0.007206,234 +0.007376,234 +0.007202,234 +0.007165,234 +0.007109,234 +0.007178,234 +0.007352,234 +0.007577,234 +0.007112,234 +0.007174,234 +0.007093,234 +0.007694,234 +0.007190,234 +0.007050,234 +0.007141,234 +0.007084,234 +0.007142,234 +0.007064,234 +0.007727,234 +0.007223,234 +0.007325,234 +0.007454,234 +0.007197,234 +0.007191,234 +0.007104,234 +0.007222,234 +0.007170,234 +0.007125,234 +0.007088,234 +0.007044,234 +0.007124,234 +0.007086,234 +0.007128,234 +0.007025,234 +0.007278,234 +0.007411,234 +0.007062,234 +0.007125,234 +0.007030,234 +0.007122,234 +0.007101,234 +0.007102,234 +0.007911,234 +0.007742,234 +0.008329,234 +0.010380,234 +0.008026,234 +0.008500,234 +0.008256,234 +0.008138,234 +0.008184,234 +0.008851,234 +0.008628,234 +0.009289,234 +0.008313,234 +0.007911,234 +0.007843,234 +0.008029,234 +0.007784,234 +0.007991,234 +0.008368,234 +0.008967,234 +0.008834,236 +0.008266,236 +0.008228,236 +0.008136,236 +0.007759,236 +0.007821,236 +0.007737,236 +0.008175,236 +0.007579,236 +0.007759,236 +0.007853,236 +0.008212,236 +0.007521,236 +0.007879,236 +0.007829,236 +0.008431,236 +0.007612,236 +0.007583,236 +0.007709,236 +0.007579,236 +0.007473,236 +0.007549,236 +0.007520,236 +0.007821,236 +0.007461,236 +0.007356,236 +0.007291,236 +0.007332,236 +0.007349,236 +0.007236,236 +0.007218,236 +0.007238,236 +0.007243,236 +0.007231,236 +0.007609,236 +0.007350,236 +0.007396,236 +0.007753,236 +0.007261,236 +0.007650,236 +0.007419,236 +0.007379,236 +0.007389,236 +0.007298,236 +0.007704,236 +0.007321,236 +0.007505,236 +0.007313,236 +0.007608,236 +0.007351,236 +0.007657,236 +0.007536,236 +0.007321,236 +0.008096,236 +0.007385,236 +0.007427,236 +0.007215,236 +0.007849,236 +0.007234,236 +0.007367,236 +0.007348,236 +0.007299,236 +0.007194,236 +0.007443,236 +0.007902,236 +0.007590,236 +0.007554,236 +0.007431,236 +0.007748,236 +0.007674,236 +0.007683,236 +0.007500,236 +0.007520,236 +0.007672,236 +0.007701,236 +0.007689,236 +0.007781,236 +0.007872,236 +0.007630,236 +0.007828,236 +0.007667,236 +0.008095,236 +0.008005,236 +0.007886,236 +0.011243,236 +0.008679,236 +0.007297,236 +0.007512,236 +0.007207,236 +0.007647,236 +0.007748,236 +0.007369,236 +0.007605,236 +0.007382,236 +0.008036,236 +0.007378,236 +0.007765,236 +0.007261,236 +0.008214,236 +0.007343,236 +0.008624,238 +0.007429,238 +0.008038,238 +0.007670,238 +0.007491,238 +0.007370,238 +0.007469,238 +0.007570,238 +0.007449,238 +0.007586,238 +0.007496,238 +0.007464,238 +0.007847,238 +0.007520,238 +0.007370,238 +0.007655,238 +0.007782,238 +0.007511,238 +0.007451,238 +0.007444,238 +0.007455,238 +0.007374,238 +0.007449,238 +0.007378,238 +0.007449,238 +0.007370,238 +0.007508,238 +0.007370,238 +0.007410,238 +0.007805,238 +0.007561,238 +0.007425,238 +0.007431,238 +0.007451,238 +0.007467,238 +0.007449,238 +0.007414,238 +0.007432,238 +0.007401,238 +0.007409,238 +0.007371,238 +0.007368,238 +0.007521,238 +0.007874,238 +0.007490,238 +0.007442,238 +0.007476,238 +0.007785,238 +0.007454,238 +0.007751,238 +0.007405,238 +0.007598,238 +0.007370,238 +0.007409,238 +0.007369,238 +0.007427,238 +0.008021,238 +0.007421,238 +0.007365,238 +0.007567,238 +0.008946,238 +0.008478,238 +0.010571,238 +0.009349,238 +0.011127,238 +0.009461,238 +0.008439,238 +0.008230,238 +0.008482,238 +0.009090,238 +0.008313,238 +0.008916,238 +0.009600,238 +0.009170,238 +0.008555,238 +0.008817,238 +0.008428,238 +0.008248,238 +0.008378,238 +0.008190,238 +0.008983,238 +0.010074,238 +0.009864,238 +0.009125,238 +0.008735,238 +0.007859,238 +0.007874,238 +0.007669,238 +0.007687,238 +0.007573,238 +0.008210,238 +0.008295,238 +0.008358,238 +0.007898,238 +0.008410,238 +0.007990,238 +0.007957,238 +0.008097,238 +0.008056,238 +0.007972,238 +0.008653,240 +0.008411,240 +0.009443,240 +0.010387,240 +0.009186,240 +0.009200,240 +0.008355,240 +0.008307,240 +0.008691,240 +0.009048,240 +0.009448,240 +0.008462,240 +0.010544,240 +0.009193,240 +0.010076,240 +0.008931,240 +0.008495,240 +0.008309,240 +0.008280,240 +0.008282,240 +0.008086,240 +0.008305,240 +0.008257,240 +0.008537,240 +0.007775,240 +0.008803,240 +0.008156,240 +0.008703,240 +0.007829,240 +0.009971,240 +0.010236,240 +0.011200,240 +0.008115,240 +0.009301,240 +0.007973,240 +0.008482,240 +0.007937,240 +0.008784,240 +0.013206,240 +0.008126,240 +0.008587,240 +0.008093,240 +0.008492,240 +0.007942,240 +0.008638,240 +0.007867,240 +0.008002,240 +0.007985,240 +0.008097,240 +0.008768,240 +0.008668,240 +0.007959,240 +0.008045,240 +0.007915,240 +0.007964,240 +0.009017,240 +0.010591,240 +0.010042,240 +0.011167,240 +0.010816,240 +0.008555,240 +0.010858,240 +0.009223,240 +0.010121,240 +0.008837,240 +0.008203,240 +0.008618,240 +0.008413,240 +0.008477,240 +0.008723,240 +0.008598,240 +0.008431,240 +0.008652,240 +0.008653,240 +0.008365,240 +0.008711,240 +0.008385,240 +0.008926,240 +0.008361,240 +0.008319,240 +0.008091,240 +0.008054,240 +0.008121,240 +0.008434,240 +0.010000,240 +0.011078,240 +0.009180,240 +0.008554,240 +0.008533,240 +0.008538,240 +0.008345,240 +0.008361,240 +0.009772,240 +0.009039,240 +0.008347,240 +0.010383,240 +0.011302,240 +0.009205,240 +0.012062,240 +0.009639,240 +0.010181,242 +0.009269,242 +0.009006,242 +0.009717,242 +0.008504,242 +0.010585,242 +0.008997,242 +0.011064,242 +0.010893,242 +0.009848,242 +0.010563,242 +0.009299,242 +0.010176,242 +0.009776,242 +0.013347,242 +0.009719,242 +0.009009,242 +0.009491,242 +0.009756,242 +0.008917,242 +0.009300,242 +0.008440,242 +0.009133,242 +0.008241,242 +0.008374,242 +0.008364,242 +0.008505,242 +0.008798,242 +0.008924,242 +0.009366,242 +0.009250,242 +0.008463,242 +0.008386,242 +0.009386,242 +0.008959,242 +0.008696,242 +0.008675,242 +0.009764,242 +0.008470,242 +0.008959,242 +0.008126,242 +0.008964,242 +0.007957,242 +0.008368,242 +0.007936,242 +0.008271,242 +0.007890,242 +0.008236,242 +0.008135,242 +0.008964,242 +0.007986,242 +0.008580,242 +0.008036,242 +0.008817,242 +0.007993,242 +0.008811,242 +0.008000,242 +0.008834,242 +0.007999,242 +0.008670,242 +0.008321,242 +0.008742,242 +0.008018,242 +0.008544,242 +0.007957,242 +0.008447,242 +0.008035,242 +0.008698,242 +0.007998,242 +0.009916,242 +0.008943,242 +0.008820,242 +0.008849,242 +0.008685,242 +0.009261,242 +0.010206,242 +0.009261,242 +0.008096,242 +0.008463,242 +0.007979,242 +0.008195,242 +0.007949,242 +0.008773,242 +0.008035,242 +0.009100,242 +0.008042,242 +0.008596,242 +0.008102,242 +0.008360,242 +0.008007,242 +0.008242,242 +0.007991,242 +0.008185,242 +0.007931,242 +0.008300,242 +0.007946,242 +0.009118,242 +0.008265,242 +0.008771,242 +0.008246,242 +0.008730,244 +0.008402,244 +0.009118,244 +0.008417,244 +0.009298,244 +0.008481,244 +0.009313,244 +0.008668,244 +0.008875,244 +0.008600,244 +0.008772,244 +0.009428,244 +0.008755,244 +0.009235,244 +0.009010,244 +0.010082,244 +0.008771,244 +0.010093,244 +0.008906,244 +0.009613,244 +0.009461,244 +0.009210,244 +0.010194,244 +0.009208,244 +0.011270,244 +0.009555,244 +0.009779,244 +0.010409,244 +0.009468,244 +0.009655,244 +0.008584,244 +0.008506,244 +0.008732,244 +0.008071,244 +0.008374,244 +0.008024,244 +0.008208,244 +0.008216,244 +0.008539,244 +0.008170,244 +0.008311,244 +0.009333,244 +0.010456,244 +0.009038,244 +0.009488,244 +0.008646,244 +0.008772,244 +0.008282,244 +0.008996,244 +0.013515,244 +0.011108,244 +0.009122,244 +0.009141,244 +0.010592,244 +0.012973,244 +0.010900,244 +0.008776,244 +0.008599,244 +0.008271,244 +0.008535,244 +0.008380,244 +0.008547,244 +0.008541,244 +0.009122,244 +0.009425,244 +0.009985,244 +0.008869,244 +0.009671,244 +0.008826,244 +0.009167,244 +0.009475,244 +0.010463,244 +0.008845,244 +0.009068,244 +0.009923,244 +0.008686,244 +0.009351,244 +0.008841,244 +0.009443,244 +0.009230,244 +0.009117,244 +0.009444,244 +0.008598,244 +0.011855,244 +0.013583,244 +0.009072,244 +0.009092,244 +0.009185,244 +0.014677,244 +0.011672,244 +0.009429,244 +0.008713,244 +0.008714,244 +0.009273,244 +0.010116,244 +0.009393,244 +0.010491,244 +0.008408,244 +0.009318,244 +0.008508,244 +0.009858,246 +0.009395,246 +0.008938,246 +0.011050,246 +0.008977,246 +0.009164,246 +0.009213,246 +0.009397,246 +0.009276,246 +0.009221,246 +0.009539,246 +0.008873,246 +0.009992,246 +0.009103,246 +0.009691,246 +0.010062,246 +0.009052,246 +0.009601,246 +0.009269,246 +0.009436,246 +0.008698,246 +0.008780,246 +0.008658,246 +0.008635,246 +0.009383,246 +0.008811,246 +0.009192,246 +0.008760,246 +0.009154,246 +0.008547,246 +0.009660,246 +0.010609,246 +0.009080,246 +0.009131,246 +0.009144,246 +0.009341,246 +0.013315,246 +0.009230,246 +0.009309,246 +0.009871,246 +0.008865,246 +0.008572,246 +0.010704,246 +0.008672,246 +0.009686,246 +0.011265,246 +0.009018,246 +0.009531,246 +0.008655,246 +0.010740,246 +0.008935,246 +0.008863,246 +0.008870,246 +0.009304,246 +0.009020,246 +0.008978,246 +0.009087,246 +0.008751,246 +0.009580,246 +0.008960,246 +0.009217,246 +0.008830,246 +0.009173,246 +0.008646,246 +0.009105,246 +0.009314,246 +0.008384,246 +0.009238,246 +0.008834,246 +0.009322,246 +0.008750,246 +0.009035,246 +0.008676,246 +0.009955,246 +0.008648,246 +0.009108,246 +0.008685,246 +0.008831,246 +0.009185,246 +0.009365,246 +0.009642,246 +0.008500,246 +0.009377,246 +0.008589,246 +0.008932,246 +0.008653,246 +0.008815,246 +0.008795,246 +0.009015,246 +0.008711,246 +0.009558,246 +0.009287,246 +0.008655,246 +0.008782,246 +0.008563,246 +0.010632,246 +0.008627,246 +0.009575,246 +0.008599,246 +0.009215,246 +0.009130,248 +0.009244,248 +0.009282,248 +0.008789,248 +0.009308,248 +0.008727,248 +0.009762,248 +0.008719,248 +0.008883,248 +0.008873,248 +0.008978,248 +0.008867,248 +0.010259,248 +0.009395,248 +0.008633,248 +0.009338,248 +0.008758,248 +0.009328,248 +0.009498,248 +0.008909,248 +0.009063,248 +0.009817,248 +0.009740,248 +0.009207,248 +0.009438,248 +0.012479,248 +0.010154,248 +0.009249,248 +0.009299,248 +0.010087,248 +0.009723,248 +0.009695,248 +0.010362,248 +0.010546,248 +0.010629,248 +0.010528,248 +0.015329,248 +0.012274,248 +0.011152,248 +0.009396,248 +0.009280,248 +0.009034,248 +0.012744,248 +0.015582,248 +0.015658,248 +0.015078,248 +0.010024,248 +0.009239,248 +0.009943,248 +0.009773,248 +0.014537,248 +0.017530,248 +0.015920,248 +0.011957,248 +0.009105,248 +0.009083,248 +0.009202,248 +0.009940,248 +0.010099,248 +0.009476,248 +0.009598,248 +0.010707,248 +0.009195,248 +0.009424,248 +0.008605,248 +0.009276,248 +0.008892,248 +0.009204,248 +0.008877,248 +0.009213,248 +0.011625,248 +0.009214,248 +0.009382,248 +0.009043,248 +0.009214,248 +0.008909,248 +0.010248,248 +0.009246,248 +0.009236,248 +0.009438,248 +0.008784,248 +0.011077,248 +0.010114,248 +0.009304,248 +0.009221,248 +0.008766,248 +0.009307,248 +0.008864,248 +0.009873,248 +0.008852,248 +0.009311,248 +0.008867,248 +0.009239,248 +0.009388,248 +0.009156,248 +0.009197,248 +0.008510,248 +0.009130,248 +0.008669,248 +0.009244,248 +0.009025,250 +0.009350,250 +0.008872,250 +0.009456,250 +0.009317,250 +0.008936,250 +0.009422,250 +0.008982,250 +0.009744,250 +0.008988,250 +0.009696,250 +0.009359,250 +0.009167,250 +0.012349,250 +0.009517,250 +0.009812,250 +0.009119,250 +0.009061,250 +0.009260,250 +0.009456,250 +0.009952,250 +0.008818,250 +0.009474,250 +0.008798,250 +0.009091,250 +0.009133,250 +0.009540,250 +0.009433,250 +0.009249,250 +0.010214,250 +0.008713,250 +0.010148,250 +0.008962,250 +0.009849,250 +0.009456,250 +0.009602,250 +0.009677,250 +0.008792,250 +0.009677,250 +0.008841,250 +0.009685,250 +0.009485,250 +0.008924,250 +0.009592,250 +0.008825,250 +0.009603,250 +0.009132,250 +0.009784,250 +0.009045,250 +0.009499,250 +0.009518,250 +0.009109,250 +0.009879,250 +0.008919,250 +0.009706,250 +0.008915,250 +0.009780,250 +0.009812,250 +0.009038,250 +0.009642,250 +0.009030,250 +0.009746,250 +0.008882,250 +0.009732,250 +0.009126,250 +0.009544,250 +0.009785,250 +0.009096,250 +0.009853,250 +0.008885,250 +0.009660,250 +0.009002,250 +0.009631,250 +0.009679,250 +0.008955,250 +0.009704,250 +0.008887,250 +0.013027,250 +0.010948,250 +0.008987,250 +0.009630,250 +0.008881,250 +0.009727,250 +0.009298,250 +0.009833,250 +0.009567,250 +0.009455,250 +0.010065,250 +0.009454,250 +0.010091,250 +0.009412,250 +0.009077,250 +0.009636,250 +0.009303,250 +0.009526,250 +0.008877,250 +0.009605,250 +0.009191,250 +0.010011,250 +0.009709,250 +0.010231,252 +0.012990,252 +0.009854,252 +0.010859,252 +0.014675,252 +0.015726,252 +0.012810,252 +0.014456,252 +0.009736,252 +0.010464,252 +0.010532,252 +0.012710,252 +0.010361,252 +0.009999,252 +0.009827,252 +0.013812,252 +0.010463,252 +0.010301,252 +0.009966,252 +0.009810,252 +0.009776,252 +0.009550,252 +0.009727,252 +0.009798,252 +0.009014,252 +0.011330,252 +0.010802,252 +0.009600,252 +0.010121,252 +0.011557,252 +0.009966,252 +0.010390,252 +0.009430,252 +0.009848,252 +0.010062,252 +0.012363,252 +0.012036,252 +0.009869,252 +0.009844,252 +0.010969,252 +0.011726,252 +0.011246,252 +0.011567,252 +0.009282,252 +0.010693,252 +0.010142,252 +0.009920,252 +0.012229,252 +0.010075,252 +0.009732,252 +0.010298,252 +0.009082,252 +0.010190,252 +0.009417,252 +0.009715,252 +0.015873,252 +0.016372,252 +0.016583,252 +0.015830,252 +0.016000,252 +0.011421,252 +0.010158,252 +0.010739,252 +0.009456,252 +0.012964,252 +0.012191,252 +0.012941,252 +0.011451,252 +0.011859,252 +0.013485,252 +0.011426,252 +0.011688,252 +0.016568,252 +0.016182,252 +0.016828,252 +0.016195,252 +0.016573,252 +0.016100,252 +0.010000,252 +0.009507,252 +0.010536,252 +0.010492,252 +0.009154,252 +0.013518,252 +0.010619,252 +0.012216,252 +0.010740,252 +0.009764,252 +0.009365,252 +0.009776,252 +0.010528,252 +0.009679,252 +0.009761,252 +0.009547,252 +0.010305,252 +0.012599,252 +0.011673,252 +0.009893,252 +0.010159,252 +0.009324,252 +0.010555,254 +0.009937,254 +0.010597,254 +0.010326,254 +0.009800,254 +0.010106,254 +0.009499,254 +0.010620,254 +0.010066,254 +0.009924,254 +0.011003,254 +0.009747,254 +0.009786,254 +0.009392,254 +0.010399,254 +0.011080,254 +0.009258,254 +0.010474,254 +0.009610,254 +0.010054,254 +0.011508,254 +0.009480,254 +0.009833,254 +0.009961,254 +0.009436,254 +0.012692,254 +0.009641,254 +0.010464,254 +0.011081,254 +0.009649,254 +0.010144,254 +0.010091,254 +0.009405,254 +0.009991,254 +0.010172,254 +0.010449,254 +0.010108,254 +0.010207,254 +0.010032,254 +0.009369,254 +0.010225,254 +0.009678,254 +0.016870,254 +0.016472,254 +0.010452,254 +0.011093,254 +0.010473,254 +0.009599,254 +0.014770,254 +0.016677,254 +0.017813,254 +0.017380,254 +0.016409,254 +0.017041,254 +0.016572,254 +0.016370,254 +0.016605,254 +0.016964,254 +0.017444,254 +0.017205,254 +0.016628,254 +0.013205,254 +0.010322,254 +0.009270,254 +0.009769,254 +0.009492,254 +0.009941,254 +0.010107,254 +0.010101,254 +0.010084,254 +0.010374,254 +0.012121,254 +0.012037,254 +0.009778,254 +0.010571,254 +0.009853,254 +0.009496,254 +0.009743,254 +0.009096,254 +0.009745,254 +0.009021,254 +0.010155,254 +0.010309,254 +0.009889,254 +0.011350,254 +0.010828,254 +0.010240,254 +0.009932,254 +0.009917,254 +0.010543,254 +0.010089,254 +0.013366,254 +0.016995,254 +0.017477,254 +0.016690,254 +0.016894,254 +0.018866,254 +0.014139,254 +0.010406,254 +0.009661,254 +0.009779,256 +0.010680,256 +0.010421,256 +0.010054,256 +0.010939,256 +0.009451,256 +0.013862,256 +0.010243,256 +0.009519,256 +0.010374,256 +0.009982,256 +0.010124,256 +0.011400,256 +0.010499,256 +0.009763,256 +0.010973,256 +0.009887,256 +0.010968,256 +0.011389,256 +0.013785,256 +0.009945,256 +0.010088,256 +0.010515,256 +0.010346,256 +0.010209,256 +0.009981,256 +0.010826,256 +0.009649,256 +0.011957,256 +0.010635,256 +0.009541,256 +0.010679,256 +0.010541,256 +0.009604,256 +0.010616,256 +0.009487,256 +0.010491,256 +0.010836,256 +0.013541,256 +0.017591,256 +0.014169,256 +0.012726,256 +0.013956,256 +0.011220,256 +0.010190,256 +0.011644,256 +0.010571,256 +0.010247,256 +0.010495,256 +0.010289,256 +0.010695,256 +0.010168,256 +0.009805,256 +0.011205,256 +0.010342,256 +0.010553,256 +0.010728,256 +0.009985,256 +0.010386,256 +0.010392,256 +0.010682,256 +0.011283,256 +0.011353,256 +0.010878,256 +0.015319,256 +0.015399,256 +0.010297,256 +0.010587,256 +0.017157,256 +0.017762,256 +0.017091,256 +0.017641,256 +0.013289,256 +0.011448,256 +0.011872,256 +0.011224,256 +0.010420,256 +0.011012,256 +0.011475,256 +0.015462,256 +0.012049,256 +0.011826,256 +0.011497,256 +0.011092,256 +0.011921,256 +0.011552,256 +0.011640,256 +0.010822,256 +0.011117,256 +0.010751,256 +0.010827,256 +0.010403,256 +0.009689,256 +0.011013,256 +0.012598,256 +0.009945,256 +0.010082,256 +0.014993,256 +0.009717,256 +0.009882,256 +0.010107,258 +0.009770,258 +0.009796,258 +0.009472,258 +0.009749,258 +0.009416,258 +0.010430,258 +0.009918,258 +0.009482,258 +0.009579,258 +0.009374,258 +0.009683,258 +0.009468,258 +0.009405,258 +0.009450,258 +0.009404,258 +0.009560,258 +0.009866,258 +0.009767,258 +0.009467,258 +0.009433,258 +0.009574,258 +0.009596,258 +0.009561,258 +0.009546,258 +0.009753,258 +0.009619,258 +0.009744,258 +0.010196,258 +0.010095,258 +0.010383,258 +0.010210,258 +0.010262,258 +0.010389,258 +0.010256,258 +0.009983,258 +0.009761,258 +0.009582,258 +0.010053,258 +0.009413,258 +0.009532,258 +0.009446,258 +0.009426,258 +0.009423,258 +0.009346,258 +0.009422,258 +0.009347,258 +0.009394,258 +0.009674,258 +0.009704,258 +0.009396,258 +0.009351,258 +0.009391,258 +0.009346,258 +0.009475,258 +0.009598,258 +0.010080,258 +0.010452,258 +0.010871,258 +0.010423,258 +0.010513,258 +0.010116,258 +0.010210,258 +0.009958,258 +0.009968,258 +0.010047,258 +0.010058,258 +0.010037,258 +0.010153,258 +0.011575,258 +0.012614,258 +0.010947,258 +0.009669,258 +0.009714,258 +0.009688,258 +0.010026,258 +0.009516,258 +0.009797,258 +0.009955,258 +0.010176,258 +0.009922,258 +0.010324,258 +0.010263,258 +0.009942,258 +0.010075,258 +0.010010,258 +0.010313,258 +0.010602,258 +0.010260,258 +0.010234,258 +0.010394,258 +0.010284,258 +0.013337,258 +0.010676,258 +0.010417,258 +0.010114,258 +0.010350,258 +0.012891,258 +0.013548,258 +0.010766,258 +0.011532,260 +0.010968,260 +0.010756,260 +0.010761,260 +0.010170,260 +0.010459,260 +0.013812,260 +0.011390,260 +0.009759,260 +0.010005,260 +0.009683,260 +0.009912,260 +0.009788,260 +0.009833,260 +0.012760,260 +0.019698,260 +0.018735,260 +0.018137,260 +0.018051,260 +0.018126,260 +0.016454,260 +0.010452,260 +0.009917,260 +0.009712,260 +0.010646,260 +0.010046,260 +0.010721,260 +0.010848,260 +0.010831,260 +0.011017,260 +0.010318,260 +0.010154,260 +0.009890,260 +0.009848,260 +0.010152,260 +0.009949,260 +0.009642,260 +0.009848,260 +0.010376,260 +0.010758,260 +0.011059,260 +0.010853,260 +0.012435,260 +0.010276,260 +0.010300,260 +0.012000,260 +0.013294,260 +0.012111,260 +0.011801,260 +0.010755,260 +0.011994,260 +0.011919,260 +0.010789,260 +0.012048,260 +0.011977,260 +0.012300,260 +0.012509,260 +0.012142,260 +0.010451,260 +0.010635,260 +0.010448,260 +0.010917,260 +0.010891,260 +0.010783,260 +0.010708,260 +0.010749,260 +0.010585,260 +0.010855,260 +0.011117,260 +0.010729,260 +0.010794,260 +0.010692,260 +0.010542,260 +0.010503,260 +0.010549,260 +0.010460,260 +0.010503,260 +0.010593,260 +0.010516,260 +0.010728,260 +0.010585,260 +0.010632,260 +0.010700,260 +0.013832,260 +0.011336,260 +0.010597,260 +0.010557,260 +0.010810,260 +0.011117,260 +0.011006,260 +0.011358,260 +0.010412,260 +0.010276,260 +0.011562,260 +0.012203,260 +0.015970,260 +0.009911,260 +0.011294,260 +0.011579,260 +0.012378,260 +0.011885,262 +0.011688,262 +0.012098,262 +0.017249,262 +0.012328,262 +0.017765,262 +0.022648,262 +0.018523,262 +0.011370,262 +0.012250,262 +0.011140,262 +0.010837,262 +0.010156,262 +0.010665,262 +0.010573,262 +0.012050,262 +0.011725,262 +0.011434,262 +0.011467,262 +0.011308,262 +0.012422,262 +0.010747,262 +0.011455,262 +0.012212,262 +0.010871,262 +0.011883,262 +0.011414,262 +0.011060,262 +0.011012,262 +0.011690,262 +0.013613,262 +0.010994,262 +0.011202,262 +0.013261,262 +0.012546,262 +0.013007,262 +0.011315,262 +0.011240,262 +0.010581,262 +0.012079,262 +0.011860,262 +0.011337,262 +0.011544,262 +0.013034,262 +0.011081,262 +0.010664,262 +0.010906,262 +0.012053,262 +0.010731,262 +0.014121,262 +0.011711,262 +0.013684,262 +0.012036,262 +0.012383,262 +0.011715,262 +0.010776,262 +0.011244,262 +0.011810,262 +0.010253,262 +0.010740,262 +0.010743,262 +0.011492,262 +0.011037,262 +0.011238,262 +0.010825,262 +0.011052,262 +0.011090,262 +0.010108,262 +0.011135,262 +0.011111,262 +0.011944,262 +0.011301,262 +0.011062,262 +0.010266,262 +0.012399,262 +0.011177,262 +0.009959,262 +0.010554,262 +0.010458,262 +0.010451,262 +0.010572,262 +0.010284,262 +0.011125,262 +0.011215,262 +0.010490,262 +0.011294,262 +0.010950,262 +0.010181,262 +0.010554,262 +0.010798,262 +0.010588,262 +0.010938,262 +0.011195,262 +0.010304,262 +0.016095,262 +0.013226,262 +0.010853,262 +0.010454,262 +0.010427,262 +0.010101,262 +0.010794,264 +0.011579,264 +0.011372,264 +0.013671,264 +0.012693,264 +0.012298,264 +0.011387,264 +0.010932,264 +0.012185,264 +0.012093,264 +0.010862,264 +0.013355,264 +0.013758,264 +0.012014,264 +0.010772,264 +0.013846,264 +0.010442,264 +0.010146,264 +0.010189,264 +0.010453,264 +0.010165,264 +0.010202,264 +0.010154,264 +0.010184,264 +0.016234,264 +0.010232,264 +0.010653,264 +0.010957,264 +0.010317,264 +0.010160,264 +0.010207,264 +0.010154,264 +0.010074,264 +0.015739,264 +0.010218,264 +0.010167,264 +0.010198,264 +0.010039,264 +0.011495,264 +0.010973,264 +0.010209,264 +0.010213,264 +0.010392,264 +0.010206,264 +0.010219,264 +0.010150,264 +0.010204,264 +0.010077,264 +0.010029,264 +0.010081,264 +0.010087,264 +0.010062,264 +0.010284,264 +0.010231,264 +0.010156,264 +0.010122,264 +0.010094,264 +0.010179,264 +0.009974,264 +0.010217,264 +0.010331,264 +0.010127,264 +0.010511,264 +0.010212,264 +0.010175,264 +0.010099,264 +0.010354,264 +0.010094,264 +0.010020,264 +0.010053,264 +0.010128,264 +0.010016,264 +0.010424,264 +0.010017,264 +0.010142,264 +0.010322,264 +0.009975,264 +0.011610,264 +0.010608,264 +0.010153,264 +0.010441,264 +0.010130,264 +0.010610,264 +0.010203,264 +0.010101,264 +0.010052,264 +0.010070,264 +0.010221,264 +0.010127,264 +0.010209,264 +0.010113,264 +0.010248,264 +0.010656,264 +0.010227,264 +0.010537,264 +0.010463,264 +0.010206,264 +0.009976,264 +0.010978,264 +0.012841,264 +0.011457,266 +0.011325,266 +0.012660,266 +0.011298,266 +0.010768,266 +0.011054,266 +0.010783,266 +0.010563,266 +0.010470,266 +0.010377,266 +0.010594,266 +0.010372,266 +0.010286,266 +0.010322,266 +0.010281,266 +0.010319,266 +0.010380,266 +0.010277,266 +0.010316,266 +0.010538,266 +0.010632,266 +0.010314,266 +0.010246,266 +0.010298,266 +0.010313,266 +0.010222,266 +0.010392,266 +0.010303,266 +0.010258,266 +0.011083,266 +0.011373,266 +0.011394,266 +0.011423,266 +0.011494,266 +0.011362,266 +0.011225,266 +0.011327,266 +0.011162,266 +0.011533,266 +0.012106,266 +0.011551,266 +0.011496,266 +0.012078,266 +0.010990,266 +0.011217,266 +0.011571,266 +0.011147,266 +0.010625,266 +0.011689,266 +0.012289,266 +0.011349,266 +0.012935,266 +0.012327,266 +0.011804,266 +0.011409,266 +0.011983,266 +0.011368,266 +0.011151,266 +0.011225,266 +0.010653,266 +0.010704,266 +0.011275,266 +0.011230,266 +0.011698,266 +0.013166,266 +0.015349,266 +0.018412,266 +0.017065,266 +0.013121,266 +0.011527,266 +0.010822,266 +0.011982,266 +0.011018,266 +0.010638,266 +0.011363,266 +0.012734,266 +0.010482,266 +0.010728,266 +0.010993,266 +0.011482,266 +0.011666,266 +0.011318,266 +0.011667,266 +0.011474,266 +0.012265,266 +0.012166,266 +0.011736,266 +0.012148,266 +0.012070,266 +0.011598,266 +0.013895,266 +0.012129,266 +0.014653,266 +0.012137,266 +0.014748,266 +0.015828,266 +0.013458,266 +0.014819,266 +0.012846,266 +0.016506,266 +0.012439,268 +0.011157,268 +0.012181,268 +0.012792,268 +0.018302,268 +0.012486,268 +0.011053,268 +0.011819,268 +0.012515,268 +0.014427,268 +0.018408,268 +0.021454,268 +0.012570,268 +0.011423,268 +0.011239,268 +0.011432,268 +0.011399,268 +0.011265,268 +0.012256,268 +0.011688,268 +0.011787,268 +0.011798,268 +0.011951,268 +0.011667,268 +0.011537,268 +0.012007,268 +0.010827,268 +0.011254,268 +0.011534,268 +0.011232,268 +0.010853,268 +0.011462,268 +0.011062,268 +0.010949,268 +0.011541,268 +0.011058,268 +0.011035,268 +0.011518,268 +0.011622,268 +0.010679,268 +0.011386,268 +0.012035,268 +0.014004,268 +0.011193,268 +0.012148,268 +0.011543,268 +0.012519,268 +0.011213,268 +0.014361,268 +0.013364,268 +0.013924,268 +0.012259,268 +0.013628,268 +0.012660,268 +0.012574,268 +0.012317,268 +0.012326,268 +0.011779,268 +0.012059,268 +0.011431,268 +0.011946,268 +0.013517,268 +0.015301,268 +0.014987,268 +0.012013,268 +0.012194,268 +0.011377,268 +0.011686,268 +0.011386,268 +0.012465,268 +0.015420,268 +0.020418,268 +0.015497,268 +0.012483,268 +0.011771,268 +0.013726,268 +0.012621,268 +0.012090,268 +0.010986,268 +0.012368,268 +0.011458,268 +0.011811,268 +0.011334,268 +0.017564,268 +0.014490,268 +0.016207,268 +0.013307,268 +0.012526,268 +0.011412,268 +0.012655,268 +0.011794,268 +0.011151,268 +0.012182,268 +0.012015,268 +0.011588,268 +0.011319,268 +0.011843,268 +0.011518,268 +0.013115,268 +0.011957,268 +0.013827,270 +0.011480,270 +0.011624,270 +0.011960,270 +0.013117,270 +0.013719,270 +0.012665,270 +0.014312,270 +0.018070,270 +0.012840,270 +0.013579,270 +0.013749,270 +0.011697,270 +0.011351,270 +0.012223,270 +0.017580,270 +0.011414,270 +0.011318,270 +0.011599,270 +0.011700,270 +0.012627,270 +0.011451,270 +0.011609,270 +0.011333,270 +0.011392,270 +0.010944,270 +0.010892,270 +0.011558,270 +0.011820,270 +0.011908,270 +0.011294,270 +0.011460,270 +0.013014,270 +0.014360,270 +0.011905,270 +0.011698,270 +0.011326,270 +0.011469,270 +0.011072,270 +0.011061,270 +0.012363,270 +0.011825,270 +0.012339,270 +0.011823,270 +0.014907,270 +0.011328,270 +0.011481,270 +0.011953,270 +0.014402,270 +0.014933,270 +0.011434,270 +0.011730,270 +0.011142,270 +0.011680,270 +0.011440,270 +0.011634,270 +0.011048,270 +0.012270,270 +0.011313,270 +0.011724,270 +0.011649,270 +0.014341,270 +0.017158,270 +0.013464,270 +0.011567,270 +0.011611,270 +0.011913,270 +0.013445,270 +0.011918,270 +0.015169,270 +0.014472,270 +0.011883,270 +0.012696,270 +0.012013,270 +0.011942,270 +0.011916,270 +0.011145,270 +0.013960,270 +0.012014,270 +0.011429,270 +0.011623,270 +0.013834,270 +0.011994,270 +0.011362,270 +0.010976,270 +0.011128,270 +0.010985,270 +0.011327,270 +0.011608,270 +0.013648,270 +0.011881,270 +0.011458,270 +0.011348,270 +0.011615,270 +0.012125,270 +0.011188,270 +0.013129,270 +0.011223,270 +0.011644,270 +0.011201,270 +0.011853,272 +0.012187,272 +0.012305,272 +0.013455,272 +0.012277,272 +0.012017,272 +0.015585,272 +0.012174,272 +0.011242,272 +0.011910,272 +0.011257,272 +0.011207,272 +0.011918,272 +0.011065,272 +0.011464,272 +0.012213,272 +0.011118,272 +0.011124,272 +0.011316,272 +0.011282,272 +0.011464,272 +0.011202,272 +0.011479,272 +0.011615,272 +0.011943,272 +0.011892,272 +0.011300,272 +0.013015,272 +0.011799,272 +0.012453,272 +0.011830,272 +0.015279,272 +0.013138,272 +0.011969,272 +0.012412,272 +0.013635,272 +0.011874,272 +0.012776,272 +0.012803,272 +0.012065,272 +0.012143,272 +0.011485,272 +0.011841,272 +0.012257,272 +0.012161,272 +0.011664,272 +0.012727,272 +0.012390,272 +0.011519,272 +0.012903,272 +0.012968,272 +0.011564,272 +0.011474,272 +0.012503,272 +0.013555,272 +0.011861,272 +0.017892,272 +0.012202,272 +0.011796,272 +0.011900,272 +0.011608,272 +0.011639,272 +0.012110,272 +0.011517,272 +0.011523,272 +0.011379,272 +0.011210,272 +0.011205,272 +0.011195,272 +0.011060,272 +0.011284,272 +0.011000,272 +0.011011,272 +0.011319,272 +0.010966,272 +0.011012,272 +0.011026,272 +0.010966,272 +0.010985,272 +0.011140,272 +0.010966,272 +0.011092,272 +0.011223,272 +0.010995,272 +0.011014,272 +0.010989,272 +0.010997,272 +0.010986,272 +0.011621,272 +0.010976,272 +0.011770,272 +0.011894,272 +0.012049,272 +0.012264,272 +0.012022,272 +0.011747,272 +0.012237,272 +0.012840,272 +0.012496,272 +0.018836,272 +0.012484,274 +0.011528,274 +0.011521,274 +0.011412,274 +0.011490,274 +0.011426,274 +0.011435,274 +0.017460,274 +0.011924,274 +0.011255,274 +0.011323,274 +0.011351,274 +0.011352,274 +0.011390,274 +0.011604,274 +0.014364,274 +0.014529,274 +0.011399,274 +0.011264,274 +0.011219,274 +0.011388,274 +0.011373,274 +0.011226,274 +0.011304,274 +0.017376,274 +0.011361,274 +0.011385,274 +0.011204,274 +0.011264,274 +0.011887,274 +0.011308,274 +0.011339,274 +0.017406,274 +0.013205,274 +0.012187,274 +0.011445,274 +0.011474,274 +0.011793,274 +0.011532,274 +0.011725,274 +0.017909,274 +0.011546,274 +0.012766,274 +0.011466,274 +0.011593,274 +0.011637,274 +0.011641,274 +0.013013,274 +0.018135,274 +0.013629,274 +0.011539,274 +0.012274,274 +0.012491,274 +0.011918,274 +0.012186,274 +0.011985,274 +0.017766,274 +0.011750,274 +0.011517,274 +0.011799,274 +0.011707,274 +0.011869,274 +0.012377,274 +0.012414,274 +0.011907,274 +0.012177,274 +0.011493,274 +0.011761,274 +0.012167,274 +0.012437,274 +0.011576,274 +0.011602,274 +0.012961,274 +0.011365,274 +0.011398,274 +0.011277,274 +0.011328,274 +0.011243,274 +0.011415,274 +0.011370,274 +0.011262,274 +0.013047,274 +0.011328,274 +0.011282,274 +0.011300,274 +0.011189,274 +0.011350,274 +0.011451,274 +0.011256,274 +0.011985,274 +0.012333,274 +0.011306,274 +0.011182,274 +0.011293,274 +0.011283,274 +0.011312,274 +0.011405,274 +0.011258,274 +0.012624,274 +0.011732,274 +0.011626,276 +0.011830,276 +0.011472,276 +0.011444,276 +0.012230,276 +0.011908,276 +0.011449,276 +0.013251,276 +0.011545,276 +0.011906,276 +0.011556,276 +0.011654,276 +0.011653,276 +0.011543,276 +0.011620,276 +0.014764,276 +0.012550,276 +0.011524,276 +0.011551,276 +0.011626,276 +0.011757,276 +0.012318,276 +0.011735,276 +0.012132,276 +0.012866,276 +0.011526,276 +0.011551,276 +0.011645,276 +0.011461,276 +0.011700,276 +0.011646,276 +0.011464,276 +0.013195,276 +0.011691,276 +0.011567,276 +0.011444,276 +0.011548,276 +0.011577,276 +0.011507,276 +0.011613,276 +0.011945,276 +0.013265,276 +0.011492,276 +0.011523,276 +0.011529,276 +0.011488,276 +0.011626,276 +0.011577,276 +0.011430,276 +0.013222,276 +0.011690,276 +0.011585,276 +0.011442,276 +0.011534,276 +0.011572,276 +0.011527,276 +0.011698,276 +0.011460,276 +0.013457,276 +0.011480,276 +0.011521,276 +0.011593,276 +0.011477,276 +0.011625,276 +0.011618,276 +0.011504,276 +0.013268,276 +0.011676,276 +0.011595,276 +0.011449,276 +0.011510,276 +0.011694,276 +0.011560,276 +0.011675,276 +0.011486,276 +0.013421,276 +0.011482,276 +0.011500,276 +0.011549,276 +0.011423,276 +0.011618,276 +0.011554,276 +0.011484,276 +0.013115,276 +0.011791,276 +0.011593,276 +0.011446,276 +0.011472,276 +0.011623,276 +0.011769,276 +0.011809,276 +0.011456,276 +0.013300,276 +0.011511,276 +0.011486,276 +0.011532,276 +0.011444,276 +0.011601,276 +0.011573,276 +0.011466,276 +0.014016,278 +0.012821,278 +0.011816,278 +0.011791,278 +0.011814,278 +0.011808,278 +0.011876,278 +0.011704,278 +0.012423,278 +0.013013,278 +0.011796,278 +0.011863,278 +0.011816,278 +0.012011,278 +0.011901,278 +0.011876,278 +0.011801,278 +0.013614,278 +0.012472,278 +0.011975,278 +0.011879,278 +0.011779,278 +0.011925,278 +0.011799,278 +0.011921,278 +0.013394,278 +0.012003,278 +0.011716,278 +0.011783,278 +0.011709,278 +0.011817,278 +0.011915,278 +0.011706,278 +0.012678,278 +0.012789,278 +0.011801,278 +0.011737,278 +0.011810,278 +0.011883,278 +0.011786,278 +0.011824,278 +0.011753,278 +0.013593,278 +0.011803,278 +0.011789,278 +0.011834,278 +0.011888,278 +0.011825,278 +0.011847,278 +0.011877,278 +0.013396,278 +0.011984,278 +0.011737,278 +0.011921,278 +0.011703,278 +0.011848,278 +0.012008,278 +0.012461,278 +0.013065,278 +0.015012,278 +0.011799,278 +0.011843,278 +0.011725,278 +0.011822,278 +0.011867,278 +0.011685,278 +0.012549,278 +0.017619,278 +0.012041,278 +0.011872,278 +0.011734,278 +0.011846,278 +0.011907,278 +0.011726,278 +0.013490,278 +0.016518,278 +0.012111,278 +0.011972,278 +0.011709,278 +0.011893,278 +0.011847,278 +0.011849,278 +0.013321,278 +0.017125,278 +0.011849,278 +0.012183,278 +0.011838,278 +0.011931,278 +0.011931,278 +0.011880,278 +0.016327,278 +0.013564,278 +0.011901,278 +0.011785,278 +0.012227,278 +0.012016,278 +0.015415,278 +0.012437,278 +0.018601,278 +0.011967,278 +0.012358,280 +0.012528,280 +0.012497,280 +0.012089,280 +0.012103,280 +0.013682,280 +0.016582,280 +0.011985,280 +0.012008,280 +0.012124,280 +0.012076,280 +0.012043,280 +0.012039,280 +0.015314,280 +0.015128,280 +0.011979,280 +0.012000,280 +0.012176,280 +0.012002,280 +0.012048,280 +0.011957,280 +0.017007,280 +0.013269,280 +0.011976,280 +0.012094,280 +0.012067,280 +0.012082,280 +0.012120,280 +0.011987,280 +0.018353,280 +0.012012,280 +0.012067,280 +0.011959,280 +0.012076,280 +0.012149,280 +0.011906,280 +0.012002,280 +0.018332,280 +0.012014,280 +0.012062,280 +0.011926,280 +0.012084,280 +0.012065,280 +0.012078,280 +0.011952,280 +0.018367,280 +0.012072,280 +0.011984,280 +0.012042,280 +0.012131,280 +0.012037,280 +0.012020,280 +0.011885,280 +0.018517,280 +0.012033,280 +0.011994,280 +0.012136,280 +0.012023,280 +0.012108,280 +0.012008,280 +0.012312,280 +0.019490,280 +0.012129,280 +0.012053,280 +0.012023,280 +0.012058,280 +0.011982,280 +0.012002,280 +0.015990,280 +0.014953,280 +0.012328,280 +0.012194,280 +0.012157,280 +0.012081,280 +0.012064,280 +0.011945,280 +0.018334,280 +0.012104,280 +0.011964,280 +0.012029,280 +0.012046,280 +0.012069,280 +0.012067,280 +0.012037,280 +0.018357,280 +0.011993,280 +0.012012,280 +0.012035,280 +0.012176,280 +0.011944,280 +0.011945,280 +0.012023,280 +0.018378,280 +0.012070,280 +0.011964,280 +0.012046,280 +0.012120,280 +0.011925,280 +0.011982,280 +0.012008,280 +0.018777,282 +0.012455,282 +0.012229,282 +0.012423,282 +0.012639,282 +0.012323,282 +0.012197,282 +0.017554,282 +0.013383,282 +0.012235,282 +0.012296,282 +0.012469,282 +0.012245,282 +0.012271,282 +0.012269,282 +0.018619,282 +0.012279,282 +0.012240,282 +0.012295,282 +0.012357,282 +0.012275,282 +0.012292,282 +0.012448,282 +0.018508,282 +0.012233,282 +0.012294,282 +0.012277,282 +0.012265,282 +0.012279,282 +0.012284,282 +0.016910,282 +0.014048,282 +0.012333,282 +0.012298,282 +0.012427,282 +0.012202,282 +0.012237,282 +0.012336,282 +0.019885,282 +0.012457,282 +0.012339,282 +0.012278,282 +0.012321,282 +0.012412,282 +0.012197,282 +0.015114,282 +0.016011,282 +0.012308,282 +0.012356,282 +0.012507,282 +0.012255,282 +0.012235,282 +0.012698,282 +0.019801,282 +0.013296,282 +0.013066,282 +0.012764,282 +0.012640,282 +0.012618,282 +0.012736,282 +0.016990,282 +0.014150,282 +0.012346,282 +0.012283,282 +0.012471,282 +0.012238,282 +0.012256,282 +0.012278,282 +0.018771,282 +0.012374,282 +0.012408,282 +0.012287,282 +0.012941,282 +0.012385,282 +0.012293,282 +0.014701,282 +0.016269,282 +0.012355,282 +0.012353,282 +0.012427,282 +0.012444,282 +0.012636,282 +0.013100,282 +0.020059,282 +0.013754,282 +0.015306,282 +0.013966,282 +0.013118,282 +0.013573,282 +0.013209,282 +0.013211,282 +0.013682,282 +0.013451,282 +0.013830,282 +0.016563,282 +0.014275,282 +0.013191,282 +0.014931,282 +0.013361,282 +0.013060,282 +0.013946,284 +0.013994,284 +0.013735,284 +0.013689,284 +0.015005,284 +0.013579,284 +0.013733,284 +0.013731,284 +0.014022,284 +0.013994,284 +0.013784,284 +0.013775,284 +0.013650,284 +0.013812,284 +0.013409,284 +0.013660,284 +0.013485,284 +0.013261,284 +0.012729,284 +0.013414,284 +0.012799,284 +0.012514,284 +0.012703,284 +0.012598,284 +0.012822,284 +0.012455,284 +0.012624,284 +0.012976,284 +0.012607,284 +0.012557,284 +0.012518,284 +0.012584,284 +0.012541,284 +0.013689,284 +0.013699,284 +0.013100,284 +0.013475,284 +0.012920,284 +0.013383,284 +0.014202,284 +0.014666,284 +0.014012,284 +0.013489,284 +0.013736,284 +0.013426,284 +0.013414,284 +0.013479,284 +0.013610,284 +0.013781,284 +0.013853,284 +0.014394,284 +0.013401,284 +0.013368,284 +0.013851,284 +0.013561,284 +0.013997,284 +0.013764,284 +0.015446,284 +0.013561,284 +0.013659,284 +0.013920,284 +0.013185,284 +0.013524,284 +0.013365,284 +0.015054,284 +0.014309,284 +0.013730,284 +0.013936,284 +0.013663,284 +0.013726,284 +0.013492,284 +0.014247,284 +0.013913,284 +0.013512,284 +0.013265,284 +0.013152,284 +0.012955,284 +0.012899,284 +0.012563,284 +0.012663,284 +0.012529,284 +0.012587,284 +0.012622,284 +0.012544,284 +0.012493,284 +0.012484,284 +0.012470,284 +0.012798,284 +0.012542,284 +0.012523,284 +0.012628,284 +0.012525,284 +0.012440,284 +0.012487,284 +0.012466,284 +0.012660,284 +0.012507,284 +0.012504,284 +0.012633,284 +0.012492,284 +0.012885,286 +0.012740,286 +0.012743,286 +0.012959,286 +0.012753,286 +0.012818,286 +0.012940,286 +0.012742,286 +0.012681,286 +0.012706,286 +0.012818,286 +0.013008,286 +0.012674,286 +0.012738,286 +0.013173,286 +0.012881,286 +0.012797,286 +0.013203,286 +0.013836,286 +0.013470,286 +0.013405,286 +0.013145,286 +0.013560,286 +0.013173,286 +0.012748,286 +0.012981,286 +0.013443,286 +0.013051,286 +0.012730,286 +0.012914,286 +0.012685,286 +0.012631,286 +0.012703,286 +0.012712,286 +0.013049,286 +0.012640,286 +0.012690,286 +0.012926,286 +0.012703,286 +0.012614,286 +0.012685,286 +0.012711,286 +0.013000,286 +0.012728,286 +0.012750,286 +0.012863,286 +0.012725,286 +0.012820,286 +0.012615,286 +0.012768,286 +0.012977,286 +0.012775,286 +0.012779,286 +0.012877,286 +0.012749,286 +0.012727,286 +0.012663,286 +0.012842,286 +0.012997,286 +0.012824,286 +0.012818,286 +0.012674,286 +0.012758,286 +0.012853,286 +0.012863,286 +0.012864,286 +0.012988,286 +0.012823,286 +0.012866,286 +0.012704,286 +0.012687,286 +0.012745,286 +0.012806,286 +0.013069,286 +0.012840,286 +0.012767,286 +0.012968,286 +0.012784,286 +0.012612,286 +0.012711,286 +0.012723,286 +0.013276,286 +0.012728,286 +0.012752,286 +0.012881,286 +0.012702,286 +0.012743,286 +0.012612,286 +0.012753,286 +0.013214,286 +0.012757,286 +0.012776,286 +0.012821,286 +0.012775,286 +0.012750,286 +0.012712,286 +0.012857,286 +0.013142,286 +0.012788,286 +0.012879,286 +0.013201,288 +0.012976,288 +0.013002,288 +0.012988,288 +0.013214,288 +0.013187,288 +0.013072,288 +0.013409,288 +0.013022,288 +0.012897,288 +0.013063,288 +0.012993,288 +0.013472,288 +0.013100,288 +0.012897,288 +0.013178,288 +0.013025,288 +0.013024,288 +0.013205,288 +0.013200,288 +0.013378,288 +0.013053,288 +0.013097,288 +0.014063,288 +0.013531,288 +0.013111,288 +0.012972,288 +0.013326,288 +0.013193,288 +0.013007,288 +0.013126,288 +0.013079,288 +0.013020,288 +0.013074,288 +0.013201,288 +0.013680,288 +0.013155,288 +0.013164,288 +0.013608,288 +0.013087,288 +0.013348,288 +0.013029,288 +0.013178,288 +0.013346,288 +0.013070,288 +0.013138,288 +0.013156,288 +0.013135,288 +0.013054,288 +0.013051,288 +0.013585,288 +0.014019,288 +0.013054,288 +0.013111,288 +0.013063,288 +0.013061,288 +0.013035,288 +0.013075,288 +0.013358,288 +0.013098,288 +0.013045,288 +0.013083,288 +0.012938,288 +0.012982,288 +0.013000,288 +0.013198,288 +0.013349,288 +0.013032,288 +0.013157,288 +0.013035,288 +0.013016,288 +0.012915,288 +0.013047,288 +0.013452,288 +0.013033,288 +0.012995,288 +0.012971,288 +0.013044,288 +0.013024,288 +0.012997,288 +0.013056,288 +0.013446,288 +0.013038,288 +0.013153,288 +0.013140,288 +0.012877,288 +0.012974,288 +0.013012,288 +0.013184,288 +0.013406,288 +0.012904,288 +0.013190,288 +0.013045,288 +0.013018,288 +0.012908,288 +0.012955,288 +0.013446,288 +0.013057,288 +0.013114,288 +0.012941,288 +0.013481,290 +0.013334,290 +0.013320,290 +0.013323,290 +0.013687,290 +0.013270,290 +0.013456,290 +0.013301,290 +0.013286,290 +0.013170,290 +0.013281,290 +0.013732,290 +0.013544,290 +0.013473,290 +0.014077,290 +0.013593,290 +0.013379,290 +0.013369,290 +0.013526,290 +0.013858,290 +0.013238,290 +0.013551,290 +0.013339,290 +0.013329,290 +0.013351,290 +0.013180,290 +0.013894,290 +0.013400,290 +0.013488,290 +0.013460,290 +0.013149,290 +0.013432,290 +0.014937,290 +0.013927,290 +0.013685,290 +0.013380,290 +0.013409,290 +0.013391,290 +0.013376,290 +0.013751,290 +0.013292,290 +0.013819,290 +0.013339,290 +0.013473,290 +0.013314,290 +0.013291,290 +0.013173,290 +0.013790,290 +0.013684,290 +0.013551,290 +0.013448,290 +0.013325,290 +0.013243,290 +0.013352,290 +0.013321,290 +0.013306,290 +0.013955,290 +0.013242,290 +0.013509,290 +0.013295,290 +0.013302,290 +0.013305,290 +0.013144,290 +0.013688,290 +0.013629,290 +0.013456,290 +0.013424,290 +0.013146,290 +0.013349,290 +0.013292,290 +0.013466,290 +0.013820,290 +0.013269,290 +0.013694,290 +0.013465,290 +0.013425,290 +0.013293,290 +0.013317,290 +0.013721,290 +0.013529,290 +0.013479,290 +0.013367,290 +0.013148,290 +0.013268,290 +0.013541,290 +0.013400,290 +0.013686,290 +0.013212,290 +0.013478,290 +0.013329,290 +0.013299,290 +0.013286,290 +0.013170,290 +0.013637,290 +0.013704,290 +0.013489,290 +0.013450,290 +0.013332,290 +0.013141,290 +0.013324,290 +0.014173,292 +0.013964,292 +0.013706,292 +0.013608,292 +0.013528,292 +0.013538,292 +0.013556,292 +0.013539,292 +0.014056,292 +0.013518,292 +0.013774,292 +0.013569,292 +0.013601,292 +0.013535,292 +0.013463,292 +0.013851,292 +0.013804,292 +0.013714,292 +0.013679,292 +0.013573,292 +0.013422,292 +0.013563,292 +0.013673,292 +0.013962,292 +0.013572,292 +0.013598,292 +0.013531,292 +0.013587,292 +0.013540,292 +0.013535,292 +0.013977,292 +0.013441,292 +0.013751,292 +0.013548,292 +0.013621,292 +0.013551,292 +0.013401,292 +0.013880,292 +0.013904,292 +0.013742,292 +0.013665,292 +0.013593,292 +0.013414,292 +0.013546,292 +0.013682,292 +0.014659,292 +0.014596,292 +0.014658,292 +0.013872,292 +0.014497,292 +0.014095,292 +0.014564,292 +0.014594,292 +0.015230,292 +0.014673,292 +0.014149,292 +0.014151,292 +0.014572,292 +0.014287,292 +0.014656,292 +0.014418,292 +0.014275,292 +0.013836,292 +0.013588,292 +0.013943,292 +0.014227,292 +0.014491,292 +0.014003,292 +0.013849,292 +0.013481,292 +0.014047,292 +0.013839,292 +0.013693,292 +0.014099,292 +0.015242,292 +0.014441,292 +0.014667,292 +0.015529,292 +0.016512,292 +0.016460,292 +0.015420,292 +0.016760,292 +0.014867,292 +0.014562,292 +0.014597,292 +0.014859,292 +0.014662,292 +0.014812,292 +0.015283,292 +0.015188,292 +0.014670,292 +0.014191,292 +0.014242,292 +0.014280,292 +0.014270,292 +0.014309,292 +0.013729,292 +0.013819,292 +0.014126,292 +0.013795,292 +0.014795,294 +0.014027,294 +0.013913,294 +0.013824,294 +0.015135,294 +0.016026,294 +0.015641,294 +0.015718,294 +0.015860,294 +0.015509,294 +0.015591,294 +0.014985,294 +0.015005,294 +0.016038,294 +0.016855,294 +0.016140,294 +0.015329,294 +0.015619,294 +0.015057,294 +0.014654,294 +0.015085,294 +0.015368,294 +0.015454,294 +0.015917,294 +0.015275,294 +0.015016,294 +0.015117,294 +0.015881,294 +0.017002,294 +0.016115,294 +0.016410,294 +0.015987,294 +0.014855,294 +0.015974,294 +0.014814,294 +0.015446,294 +0.015848,294 +0.015758,294 +0.014875,294 +0.014658,294 +0.014860,294 +0.015297,294 +0.016768,294 +0.015180,294 +0.014770,294 +0.015168,294 +0.015061,294 +0.015951,294 +0.017409,294 +0.017436,294 +0.017312,294 +0.015754,294 +0.016206,294 +0.016827,294 +0.016502,294 +0.016044,294 +0.015842,294 +0.018897,294 +0.019509,294 +0.018065,294 +0.019213,294 +0.015811,294 +0.015241,294 +0.014296,294 +0.015615,294 +0.017037,294 +0.017171,294 +0.015242,294 +0.015142,294 +0.015733,294 +0.016041,294 +0.015273,294 +0.015189,294 +0.015082,294 +0.015422,294 +0.016060,294 +0.016130,294 +0.016446,294 +0.017918,294 +0.016325,294 +0.016780,294 +0.015085,294 +0.014598,294 +0.015548,294 +0.018661,294 +0.018239,294 +0.015832,294 +0.015122,294 +0.018574,294 +0.017859,294 +0.016707,294 +0.014995,294 +0.015211,294 +0.014929,294 +0.015035,294 +0.014774,294 +0.014655,294 +0.015027,294 +0.015038,294 +0.015198,294 +0.014681,296 +0.014288,296 +0.015142,296 +0.015681,296 +0.015230,296 +0.015222,296 +0.015204,296 +0.015051,296 +0.015135,296 +0.015832,296 +0.016320,296 +0.015317,296 +0.015174,296 +0.014283,296 +0.016614,296 +0.016972,296 +0.014858,296 +0.014459,296 +0.014602,296 +0.014277,296 +0.015539,296 +0.015612,296 +0.016112,296 +0.015737,296 +0.015104,296 +0.014696,296 +0.015561,296 +0.015715,296 +0.015489,296 +0.015198,296 +0.015239,296 +0.015045,296 +0.015285,296 +0.015164,296 +0.014412,296 +0.014795,296 +0.014220,296 +0.014082,296 +0.013997,296 +0.014116,296 +0.014535,296 +0.014673,296 +0.015166,296 +0.015054,296 +0.014801,296 +0.016423,296 +0.019121,296 +0.016707,296 +0.017321,296 +0.015645,296 +0.015656,296 +0.014643,296 +0.014348,296 +0.014928,296 +0.015420,296 +0.015165,296 +0.015154,296 +0.014837,296 +0.015405,296 +0.015458,296 +0.023828,296 +0.024815,296 +0.016970,296 +0.017982,296 +0.015732,296 +0.016239,296 +0.015299,296 +0.014810,296 +0.014520,296 +0.014830,296 +0.015901,296 +0.015074,296 +0.015274,296 +0.016604,296 +0.015285,296 +0.014779,296 +0.015344,296 +0.015064,296 +0.014944,296 +0.016107,296 +0.015013,296 +0.014853,296 +0.014481,296 +0.015386,296 +0.014975,296 +0.015724,296 +0.014866,296 +0.015657,296 +0.014461,296 +0.014291,296 +0.014056,296 +0.014826,296 +0.014428,296 +0.015374,296 +0.014666,296 +0.015026,296 +0.014345,296 +0.014619,296 +0.015102,296 +0.014787,296 +0.015666,298 +0.014854,298 +0.015187,298 +0.015992,298 +0.016170,298 +0.015382,298 +0.016049,298 +0.015758,298 +0.016153,298 +0.015938,298 +0.016403,298 +0.016760,298 +0.016727,298 +0.017336,298 +0.015007,298 +0.015812,298 +0.016600,298 +0.017088,298 +0.021346,298 +0.016721,298 +0.018078,298 +0.016002,298 +0.015634,298 +0.016869,298 +0.015550,298 +0.015720,298 +0.015011,298 +0.015664,298 +0.015481,298 +0.015510,298 +0.018328,298 +0.020421,298 +0.015091,298 +0.014703,298 +0.014954,298 +0.014855,298 +0.016252,298 +0.017516,298 +0.018290,298 +0.017556,298 +0.016717,298 +0.019328,298 +0.018002,298 +0.017207,298 +0.017260,298 +0.016040,298 +0.015982,298 +0.015778,298 +0.016230,298 +0.017668,298 +0.016499,298 +0.017272,298 +0.015800,298 +0.015261,298 +0.015103,298 +0.015956,298 +0.016004,298 +0.016785,298 +0.016497,298 +0.015962,298 +0.015830,298 +0.017555,298 +0.016003,298 +0.016073,298 +0.016233,298 +0.016343,298 +0.015528,298 +0.017081,298 +0.015666,298 +0.015200,298 +0.015575,298 +0.014971,298 +0.015492,298 +0.016195,298 +0.016266,298 +0.015414,298 +0.015653,298 +0.015342,298 +0.015384,298 +0.015154,298 +0.017177,298 +0.016570,298 +0.017330,298 +0.016724,298 +0.018397,298 +0.021554,298 +0.025023,298 +0.016175,298 +0.017001,298 +0.016864,298 +0.016334,298 +0.016042,298 +0.015923,298 +0.017484,298 +0.016283,298 +0.014971,298 +0.015364,298 +0.016135,298 +0.016538,298 +0.015348,298 diff --git a/buch/papers/multiplikation/code/meas/test/winograd.txt b/buch/papers/multiplikation/code/meas/test/winograd.txt new file mode 100644 index 0000000..d01fefd --- /dev/null +++ b/buch/papers/multiplikation/code/meas/test/winograd.txt @@ -0,0 +1,14900 @@ +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000010,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000010,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000010,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000011,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000010,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000012,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000011,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000012,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000011,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000014,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000011,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000015,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000011,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000011,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000011,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000013,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000012,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000013,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000005,10 +0.000005,10 +0.000005,10 +0.000014,10 +0.000004,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000015,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000014,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000008,14 +0.000008,14 +0.000018,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000017,14 +0.000012,14 +0.000013,14 +0.000009,14 +0.000011,14 +0.000014,14 +0.000010,14 +0.000008,14 +0.000008,14 +0.000014,14 +0.000013,14 +0.000010,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000015,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000012,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000009,14 +0.000010,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000017,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000022,16 +0.000011,16 +0.000011,16 +0.000020,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000021,16 +0.000011,16 +0.000011,16 +0.000020,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000016,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000027,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000026,20 +0.000028,20 +0.000031,20 +0.000031,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000031,20 +0.000052,20 +0.000021,20 +0.000021,20 +0.000030,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000028,20 +0.000025,20 +0.000032,20 +0.000036,20 +0.000031,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000031,20 +0.000021,20 +0.000030,20 +0.000031,20 +0.000048,22 +0.000038,22 +0.000028,22 +0.000037,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000035,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000035,22 +0.000037,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000029,22 +0.000042,22 +0.000042,22 +0.000036,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000036,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000052,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000047,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000048,24 +0.000070,24 +0.000045,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000046,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000043,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000044,26 +0.000043,26 +0.000052,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000057,26 +0.000045,26 +0.000044,26 +0.000044,26 +0.000052,26 +0.000043,26 +0.000043,26 +0.000084,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000061,26 +0.000062,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000053,26 +0.000053,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000067,26 +0.000073,26 +0.000044,26 +0.000072,26 +0.000074,26 +0.000053,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000061,26 +0.000057,26 +0.000053,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000065,26 +0.000091,26 +0.000047,26 +0.000044,26 +0.000044,26 +0.000048,26 +0.000044,26 +0.000044,26 +0.000049,26 +0.000048,26 +0.000053,26 +0.000043,26 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000084,28 +0.000084,28 +0.000098,28 +0.000063,28 +0.000054,28 +0.000054,28 +0.000064,28 +0.000084,28 +0.000064,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000081,28 +0.000063,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000053,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000053,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000064,28 +0.000074,28 +0.000085,28 +0.000095,28 +0.000063,28 +0.000054,28 +0.000064,28 +0.000073,28 +0.000085,28 +0.000064,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000053,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000053,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000062,28 +0.000092,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000067,30 +0.000065,30 +0.000065,30 +0.000065,30 +0.000065,30 +0.000065,30 +0.000066,30 +0.000066,30 +0.000065,30 +0.000098,30 +0.000065,30 +0.000065,30 +0.000065,30 +0.000066,30 +0.000065,30 +0.000066,30 +0.000066,30 +0.000065,30 +0.000065,30 +0.000065,30 +0.000104,30 +0.000077,30 +0.000127,30 +0.000075,30 +0.000065,30 +0.000066,30 +0.000095,30 +0.000086,30 +0.000065,30 +0.000065,30 +0.000065,30 +0.000065,30 +0.000076,30 +0.000087,30 +0.000140,30 +0.000075,30 +0.000066,30 +0.000085,30 +0.000106,30 +0.000076,30 +0.000066,30 +0.000065,30 +0.000066,30 +0.000101,30 +0.000065,30 +0.000065,30 +0.000066,30 +0.000065,30 +0.000065,30 +0.000065,30 +0.000065,30 +0.000065,30 +0.000066,30 +0.000065,30 +0.000066,30 +0.000066,30 +0.000065,30 +0.000065,30 +0.000065,30 +0.000065,30 +0.000074,30 +0.000067,30 +0.000067,30 +0.000067,30 +0.000067,30 +0.000067,30 +0.000067,30 +0.000067,30 +0.000067,30 +0.000067,30 +0.000067,30 +0.000067,30 +0.000067,30 +0.000067,30 +0.000067,30 +0.000098,30 +0.000108,30 +0.000075,30 +0.000065,30 +0.000085,30 +0.000106,30 +0.000076,30 +0.000066,30 +0.000065,30 +0.000065,30 +0.000065,30 +0.000065,30 +0.000066,30 +0.000066,30 +0.000065,30 +0.000065,30 +0.000066,30 +0.000065,30 +0.000065,30 +0.000076,30 +0.000081,30 +0.000103,30 +0.000096,30 +0.000069,30 +0.000091,30 +0.000080,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000090,32 +0.000089,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000110,32 +0.000138,32 +0.000099,32 +0.000079,32 +0.000099,32 +0.000120,32 +0.000089,32 +0.000079,32 +0.000119,32 +0.000121,32 +0.000081,32 +0.000085,32 +0.000086,32 +0.000093,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000114,32 +0.000110,32 +0.000155,32 +0.000089,32 +0.000079,32 +0.000090,32 +0.000120,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000109,32 +0.000112,32 +0.000132,32 +0.000079,32 +0.000079,32 +0.000121,32 +0.000089,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000105,32 +0.000089,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000103,32 +0.000089,32 +0.000096,34 +0.000094,34 +0.000094,34 +0.000125,34 +0.000139,34 +0.000115,34 +0.000114,34 +0.000136,34 +0.000104,34 +0.000094,34 +0.000104,34 +0.000119,34 +0.000094,34 +0.000094,34 +0.000094,34 +0.000094,34 +0.000094,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000126,34 +0.000168,34 +0.000104,34 +0.000115,34 +0.000136,34 +0.000105,34 +0.000095,34 +0.000139,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000106,34 +0.000159,34 +0.000134,34 +0.000095,34 +0.000125,34 +0.000116,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000131,34 +0.000095,34 +0.000095,34 +0.000125,34 +0.000165,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000125,34 +0.000143,34 +0.000149,34 +0.000095,34 +0.000115,34 +0.000136,34 +0.000104,34 +0.000095,34 +0.000105,34 +0.000133,34 +0.000152,34 +0.000095,34 +0.000105,34 +0.000135,34 +0.000094,34 +0.000094,34 +0.000094,34 +0.000094,34 +0.000094,34 +0.000094,34 +0.000095,34 +0.000112,36 +0.000123,36 +0.000175,36 +0.000120,36 +0.000146,36 +0.000125,36 +0.000115,36 +0.000115,36 +0.000131,36 +0.000124,36 +0.000124,36 +0.000124,36 +0.000124,36 +0.000140,36 +0.000129,36 +0.000124,36 +0.000159,36 +0.000135,36 +0.000115,36 +0.000115,36 +0.000115,36 +0.000115,36 +0.000115,36 +0.000115,36 +0.000115,36 +0.000115,36 +0.000115,36 +0.000115,36 +0.000114,36 +0.000115,36 +0.000115,36 +0.000115,36 +0.000115,36 +0.000115,36 +0.000115,36 +0.000115,36 +0.000115,36 +0.000150,36 +0.000122,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000133,36 +0.000151,36 +0.000163,36 +0.000153,36 +0.000152,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000145,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000152,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000123,36 +0.000148,36 +0.000127,36 +0.000123,36 +0.000163,36 +0.000121,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000132,36 +0.000111,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000133,38 +0.000131,38 +0.000131,38 +0.000173,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000141,38 +0.000189,38 +0.000178,38 +0.000140,38 +0.000182,38 +0.000141,38 +0.000131,38 +0.000138,38 +0.000181,38 +0.000175,38 +0.000181,38 +0.000162,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000146,38 +0.000174,38 +0.000230,38 +0.000194,38 +0.000195,38 +0.000222,38 +0.000131,38 +0.000134,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000132,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000132,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000132,38 +0.000131,38 +0.000175,38 +0.000197,38 +0.000144,38 +0.000176,38 +0.000175,38 +0.000134,38 +0.000135,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000182,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000152,38 +0.000131,38 +0.000141,38 +0.000189,38 +0.000179,38 +0.000172,38 +0.000171,38 +0.000131,38 +0.000169,38 +0.000131,38 +0.000141,38 +0.000140,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000177,38 +0.000163,38 +0.000161,38 +0.000182,38 +0.000131,38 +0.000131,38 +0.000149,38 +0.000209,40 +0.000172,40 +0.000213,40 +0.000152,40 +0.000152,40 +0.000152,40 +0.000152,40 +0.000152,40 +0.000152,40 +0.000152,40 +0.000152,40 +0.000192,40 +0.000152,40 +0.000152,40 +0.000152,40 +0.000152,40 +0.000152,40 +0.000153,40 +0.000217,40 +0.000162,40 +0.000203,40 +0.000209,40 +0.000152,40 +0.000152,40 +0.000152,40 +0.000174,40 +0.000152,40 +0.000152,40 +0.000163,40 +0.000179,40 +0.000210,40 +0.000172,40 +0.000225,40 +0.000160,40 +0.000200,40 +0.000195,40 +0.000184,40 +0.000167,40 +0.000154,40 +0.000174,40 +0.000181,40 +0.000166,40 +0.000162,40 +0.000153,40 +0.000165,40 +0.000165,40 +0.000153,40 +0.000164,40 +0.000157,40 +0.000157,40 +0.000157,40 +0.000157,40 +0.000157,40 +0.000163,40 +0.000153,40 +0.000153,40 +0.000153,40 +0.000164,40 +0.000195,40 +0.000158,40 +0.000153,40 +0.000185,40 +0.000165,40 +0.000153,40 +0.000153,40 +0.000163,40 +0.000165,40 +0.000152,40 +0.000153,40 +0.000153,40 +0.000153,40 +0.000169,40 +0.000272,40 +0.000177,40 +0.000195,40 +0.000196,40 +0.000162,40 +0.000210,40 +0.000177,40 +0.000166,40 +0.000176,40 +0.000258,40 +0.000241,40 +0.000176,40 +0.000166,40 +0.000156,40 +0.000156,40 +0.000156,40 +0.000156,40 +0.000156,40 +0.000156,40 +0.000156,40 +0.000156,40 +0.000184,40 +0.000184,40 +0.000198,40 +0.000158,40 +0.000158,40 +0.000158,40 +0.000158,40 +0.000184,42 +0.000182,42 +0.000182,42 +0.000182,42 +0.000238,42 +0.000302,42 +0.000215,42 +0.000192,42 +0.000182,42 +0.000182,42 +0.000182,42 +0.000182,42 +0.000182,42 +0.000182,42 +0.000206,42 +0.000199,42 +0.000188,42 +0.000203,42 +0.000182,42 +0.000182,42 +0.000182,42 +0.000182,42 +0.000182,42 +0.000182,42 +0.000206,42 +0.000309,42 +0.000182,42 +0.000222,42 +0.000182,42 +0.000219,42 +0.000280,42 +0.000212,42 +0.000225,42 +0.000187,42 +0.000187,42 +0.000187,42 +0.000191,42 +0.000187,42 +0.000187,42 +0.000305,42 +0.000270,42 +0.000180,42 +0.000204,42 +0.000298,42 +0.000289,42 +0.000190,42 +0.000180,42 +0.000180,42 +0.000180,42 +0.000180,42 +0.000180,42 +0.000180,42 +0.000201,42 +0.000314,42 +0.000307,42 +0.000314,42 +0.000338,42 +0.000333,42 +0.000327,42 +0.000317,42 +0.000329,42 +0.000328,42 +0.000363,42 +0.000331,42 +0.000323,42 +0.000311,42 +0.000269,42 +0.000233,42 +0.000212,42 +0.000217,42 +0.000272,42 +0.000322,42 +0.000341,42 +0.000225,42 +0.000195,42 +0.000182,42 +0.000182,42 +0.000207,42 +0.000273,42 +0.000187,42 +0.000187,42 +0.000187,42 +0.000187,42 +0.000193,42 +0.000182,42 +0.000182,42 +0.000182,42 +0.000215,42 +0.000220,42 +0.000202,42 +0.000191,42 +0.000208,42 +0.000180,42 +0.000180,42 +0.000180,42 +0.000180,42 +0.000180,42 +0.000180,42 +0.000180,42 +0.000180,42 +0.000209,44 +0.000207,44 +0.000207,44 +0.000285,44 +0.000239,44 +0.000239,44 +0.000247,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000253,44 +0.000235,44 +0.000246,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000221,44 +0.000212,44 +0.000212,44 +0.000263,44 +0.000250,44 +0.000227,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000226,44 +0.000207,44 +0.000207,44 +0.000257,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000246,44 +0.000249,44 +0.000217,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000244,44 +0.000239,44 +0.000207,44 +0.000207,44 +0.000231,44 +0.000240,44 +0.000247,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000273,44 +0.000237,44 +0.000216,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000224,44 +0.000245,44 +0.000262,44 +0.000227,44 +0.000207,44 +0.000207,44 +0.000212,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000226,44 +0.000271,44 +0.000272,44 +0.000212,44 +0.000217,44 +0.000212,44 +0.000212,44 +0.000212,44 +0.000212,44 +0.000212,44 +0.000245,44 +0.000227,44 +0.000207,44 +0.000207,44 +0.000210,44 +0.000249,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000237,46 +0.000261,46 +0.000249,46 +0.000236,46 +0.000236,46 +0.000255,46 +0.000240,46 +0.000281,46 +0.000263,46 +0.000236,46 +0.000236,46 +0.000236,46 +0.000236,46 +0.000236,46 +0.000235,46 +0.000236,46 +0.000274,46 +0.000241,46 +0.000274,46 +0.000230,46 +0.000229,46 +0.000230,46 +0.000259,46 +0.000357,46 +0.000296,46 +0.000256,46 +0.000236,46 +0.000236,46 +0.000236,46 +0.000255,46 +0.000236,46 +0.000236,46 +0.000236,46 +0.000255,46 +0.000248,46 +0.000269,46 +0.000253,46 +0.000229,46 +0.000324,46 +0.000286,46 +0.000245,46 +0.000240,46 +0.000282,46 +0.000265,46 +0.000230,46 +0.000230,46 +0.000230,46 +0.000230,46 +0.000283,46 +0.000302,46 +0.000239,46 +0.000230,46 +0.000230,46 +0.000230,46 +0.000229,46 +0.000230,46 +0.000229,46 +0.000230,46 +0.000229,46 +0.000230,46 +0.000229,46 +0.000230,46 +0.000230,46 +0.000230,46 +0.000229,46 +0.000230,46 +0.000280,46 +0.000230,46 +0.000230,46 +0.000229,46 +0.000229,46 +0.000322,46 +0.000386,46 +0.000279,46 +0.000242,46 +0.000242,46 +0.000242,46 +0.000267,46 +0.000236,46 +0.000236,46 +0.000235,46 +0.000236,46 +0.000260,46 +0.000236,46 +0.000236,46 +0.000236,46 +0.000236,46 +0.000236,46 +0.000236,46 +0.000236,46 +0.000236,46 +0.000236,46 +0.000236,46 +0.000235,46 +0.000236,46 +0.000236,46 +0.000236,46 +0.000242,46 +0.000265,46 +0.000372,46 +0.000339,48 +0.000281,48 +0.000438,48 +0.000286,48 +0.000281,48 +0.000260,48 +0.000276,48 +0.000333,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000293,48 +0.000363,48 +0.000319,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000299,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000371,48 +0.000476,48 +0.000272,48 +0.000263,48 +0.000304,48 +0.000263,48 +0.000309,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000300,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000352,48 +0.000466,48 +0.000337,48 +0.000263,48 +0.000263,48 +0.000263,48 +0.000378,48 +0.000471,48 +0.000335,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000358,48 +0.000337,48 +0.000293,48 +0.000260,48 +0.000274,48 +0.000271,48 +0.000274,48 +0.000271,48 +0.000273,48 +0.000271,48 +0.000282,48 +0.000283,48 +0.000260,48 +0.000260,48 +0.000285,48 +0.000260,48 +0.000284,48 +0.000260,48 +0.000272,48 +0.000272,48 +0.000260,48 +0.000331,48 +0.000461,48 +0.000328,48 +0.000291,48 +0.000325,48 +0.000402,48 +0.000333,48 +0.000284,48 +0.000300,50 +0.000316,50 +0.000297,50 +0.000297,50 +0.000297,50 +0.000533,50 +0.000402,50 +0.000340,50 +0.000294,50 +0.000294,50 +0.000294,50 +0.000294,50 +0.000294,50 +0.000294,50 +0.000294,50 +0.000400,50 +0.000294,50 +0.000294,50 +0.000294,50 +0.000301,50 +0.000506,50 +0.000445,50 +0.000294,50 +0.000309,50 +0.000424,50 +0.000302,50 +0.000304,50 +0.000304,50 +0.000310,50 +0.000294,50 +0.000294,50 +0.000344,50 +0.000294,50 +0.000294,50 +0.000294,50 +0.000294,50 +0.000294,50 +0.000294,50 +0.000294,50 +0.000294,50 +0.000294,50 +0.000294,50 +0.000294,50 +0.000355,50 +0.000308,50 +0.000333,50 +0.000294,50 +0.000333,50 +0.000465,50 +0.000440,50 +0.000349,50 +0.000508,50 +0.000297,50 +0.000297,50 +0.000297,50 +0.000297,50 +0.000341,50 +0.000294,50 +0.000294,50 +0.000294,50 +0.000294,50 +0.000294,50 +0.000313,50 +0.000294,50 +0.000294,50 +0.000294,50 +0.000374,50 +0.000299,50 +0.000294,50 +0.000344,50 +0.000294,50 +0.000300,50 +0.000294,50 +0.000294,50 +0.000294,50 +0.000294,50 +0.000572,50 +0.000427,50 +0.000297,50 +0.000297,50 +0.000297,50 +0.000332,50 +0.000297,50 +0.000297,50 +0.000297,50 +0.000297,50 +0.000297,50 +0.000297,50 +0.000297,50 +0.000297,50 +0.000297,50 +0.000461,50 +0.000454,50 +0.000376,50 +0.000313,50 +0.000294,50 +0.000294,50 +0.000294,50 +0.000354,50 +0.000294,50 +0.000588,52 +0.000370,52 +0.000333,52 +0.000333,52 +0.000378,52 +0.000330,52 +0.000330,52 +0.000330,52 +0.000330,52 +0.000330,52 +0.000330,52 +0.000330,52 +0.000330,52 +0.000330,52 +0.000330,52 +0.000330,52 +0.000415,52 +0.000330,52 +0.000330,52 +0.000330,52 +0.000655,52 +0.000353,52 +0.000591,52 +0.000396,52 +0.000367,52 +0.000341,52 +0.000375,52 +0.000330,52 +0.000330,52 +0.000378,52 +0.000591,52 +0.000334,52 +0.000333,52 +0.000333,52 +0.000333,52 +0.000333,52 +0.000333,52 +0.000375,52 +0.000330,52 +0.000369,52 +0.000330,52 +0.000330,52 +0.000336,52 +0.000493,52 +0.000479,52 +0.000333,52 +0.000333,52 +0.000333,52 +0.000378,52 +0.000330,52 +0.000330,52 +0.000330,52 +0.000330,52 +0.000330,52 +0.000494,52 +0.000468,52 +0.000330,52 +0.000330,52 +0.000330,52 +0.000376,52 +0.000408,52 +0.000376,52 +0.000330,52 +0.000330,52 +0.000330,52 +0.000575,52 +0.000368,52 +0.000330,52 +0.000340,52 +0.000405,52 +0.000378,52 +0.000339,52 +0.000330,52 +0.000330,52 +0.000330,52 +0.000330,52 +0.000600,52 +0.000340,52 +0.000330,52 +0.000330,52 +0.000345,52 +0.000349,52 +0.000330,52 +0.000330,52 +0.000330,52 +0.000390,52 +0.000330,52 +0.000330,52 +0.000330,52 +0.000382,52 +0.000589,52 +0.000369,52 +0.000330,52 +0.000330,52 +0.000330,52 +0.000329,52 +0.000330,52 +0.000330,52 +0.000330,52 +0.000330,52 +0.000372,54 +0.000369,54 +0.000369,54 +0.000579,54 +0.000500,54 +0.000471,54 +0.000378,54 +0.000369,54 +0.000379,54 +0.000378,54 +0.000443,54 +0.000369,54 +0.000410,54 +0.000515,54 +0.000437,54 +0.000546,54 +0.000378,54 +0.000377,54 +0.000369,54 +0.000380,54 +0.000588,54 +0.000405,54 +0.000368,54 +0.000369,54 +0.000369,54 +0.000369,54 +0.000369,54 +0.000431,54 +0.000369,54 +0.000369,54 +0.000369,54 +0.000410,54 +0.000413,54 +0.000369,54 +0.000369,54 +0.000651,54 +0.000382,54 +0.000373,54 +0.000373,54 +0.000373,54 +0.000373,54 +0.000373,54 +0.000416,54 +0.000369,54 +0.000369,54 +0.000369,54 +0.000400,54 +0.000459,54 +0.000369,54 +0.000369,54 +0.000381,54 +0.000378,54 +0.000402,54 +0.000379,54 +0.000411,54 +0.000527,54 +0.000369,54 +0.000379,54 +0.000408,54 +0.000369,54 +0.000369,54 +0.000369,54 +0.000404,54 +0.000369,54 +0.000409,54 +0.000369,54 +0.000369,54 +0.000389,54 +0.000369,54 +0.000459,54 +0.000376,54 +0.000438,54 +0.000442,54 +0.000378,54 +0.000369,54 +0.000369,54 +0.000541,54 +0.000588,54 +0.000392,54 +0.000389,54 +0.000389,54 +0.000403,54 +0.000378,54 +0.000378,54 +0.000378,54 +0.000379,54 +0.000378,54 +0.000378,54 +0.000434,54 +0.000369,54 +0.000369,54 +0.000369,54 +0.000406,54 +0.000368,54 +0.000369,54 +0.000369,54 +0.000454,54 +0.000443,54 +0.000395,54 +0.000369,54 +0.000412,56 +0.000410,56 +0.000452,56 +0.000410,56 +0.000411,56 +0.000410,56 +0.000411,56 +0.000411,56 +0.000410,56 +0.000411,56 +0.000451,56 +0.000455,56 +0.000490,56 +0.000466,56 +0.000411,56 +0.000410,56 +0.000411,56 +0.000411,56 +0.000410,56 +0.000410,56 +0.000411,56 +0.000447,56 +0.000410,56 +0.000410,56 +0.000411,56 +0.000411,56 +0.000411,56 +0.000430,56 +0.000486,56 +0.000467,56 +0.000448,56 +0.000411,56 +0.000410,56 +0.000498,56 +0.000450,56 +0.000491,56 +0.000471,56 +0.000411,56 +0.000410,56 +0.000443,56 +0.000410,56 +0.000410,56 +0.000411,56 +0.000411,56 +0.000410,56 +0.000410,56 +0.000411,56 +0.000410,56 +0.000412,56 +0.000528,56 +0.000454,56 +0.000411,56 +0.000451,56 +0.000411,56 +0.000410,56 +0.000410,56 +0.000517,56 +0.000489,56 +0.000410,56 +0.000410,56 +0.000498,56 +0.000450,56 +0.000410,56 +0.000410,56 +0.000411,56 +0.000431,56 +0.000437,56 +0.000479,56 +0.000411,56 +0.000411,56 +0.000430,56 +0.000442,56 +0.000662,56 +0.000483,56 +0.000445,56 +0.000454,56 +0.000410,56 +0.000410,56 +0.000410,56 +0.000410,56 +0.000597,56 +0.000603,56 +0.000460,56 +0.000458,56 +0.000709,56 +0.000501,56 +0.000462,56 +0.000453,56 +0.000433,56 +0.000421,56 +0.000421,56 +0.000421,56 +0.000449,56 +0.000411,56 +0.000411,56 +0.000679,56 +0.000441,56 +0.000421,56 +0.000421,56 +0.000421,56 +0.000469,58 +0.000832,58 +0.000624,58 +0.000507,58 +0.000506,58 +0.000455,58 +0.000455,58 +0.000538,58 +0.000739,58 +0.000536,58 +0.000467,58 +0.000467,58 +0.000468,58 +0.000487,58 +0.000554,58 +0.000495,58 +0.000467,58 +0.000467,58 +0.000559,58 +0.000508,58 +0.000480,58 +0.000480,58 +0.000582,58 +0.000483,58 +0.000480,58 +0.000480,58 +0.000480,58 +0.000480,58 +0.000506,58 +0.000477,58 +0.000467,58 +0.000467,58 +0.000499,58 +0.000455,58 +0.000697,58 +0.000636,58 +0.000502,58 +0.000472,58 +0.000514,58 +0.000506,58 +0.000566,58 +0.000465,58 +0.000455,58 +0.000515,58 +0.000707,58 +0.000478,58 +0.000487,58 +0.000519,58 +0.000490,58 +0.000467,58 +0.000467,58 +0.000522,58 +0.000483,58 +0.000467,58 +0.000488,58 +0.000477,58 +0.000467,58 +0.000467,58 +0.000467,58 +0.000478,58 +0.000642,58 +0.000498,58 +0.000483,58 +0.000472,58 +0.000467,58 +0.000467,58 +0.000467,58 +0.000502,58 +0.000533,58 +0.000473,58 +0.000467,58 +0.000480,58 +0.000455,58 +0.000498,58 +0.000544,58 +0.000455,58 +0.000632,58 +0.000488,58 +0.000500,58 +0.000507,58 +0.000468,58 +0.000486,58 +0.000499,58 +0.000455,58 +0.000480,58 +0.000493,58 +0.000467,58 +0.000530,58 +0.000557,58 +0.000495,58 +0.000518,58 +0.000539,58 +0.000572,58 +0.000487,58 +0.000467,58 +0.000495,58 +0.000467,58 +0.000498,58 +0.000613,58 +0.000513,58 +0.000605,60 +0.000517,60 +0.000526,60 +0.000540,60 +0.000503,60 +0.000504,60 +0.000648,60 +0.000701,60 +0.000610,60 +0.000554,60 +0.000532,60 +0.000517,60 +0.000645,60 +0.000517,60 +0.000516,60 +0.000517,60 +0.000531,60 +0.000638,60 +0.000557,60 +0.000517,60 +0.000517,60 +0.000517,60 +0.000517,60 +0.000517,60 +0.000563,60 +0.000653,60 +0.000517,60 +0.000517,60 +0.000565,60 +0.000560,60 +0.000555,60 +0.000548,60 +0.000517,60 +0.000525,60 +0.000650,60 +0.000613,60 +0.000596,60 +0.000517,60 +0.000547,60 +0.000614,60 +0.000526,60 +0.000517,60 +0.000556,60 +0.000551,60 +0.000517,60 +0.000517,60 +0.000670,60 +0.000537,60 +0.000517,60 +0.000531,60 +0.000517,60 +0.000517,60 +0.000613,60 +0.000547,60 +0.000517,60 +0.000585,60 +0.000543,60 +0.000517,60 +0.000517,60 +0.000552,60 +0.000550,60 +0.000553,60 +0.000528,60 +0.000559,60 +0.000517,60 +0.000517,60 +0.000684,60 +0.000583,60 +0.000526,60 +0.000517,60 +0.000604,60 +0.000517,60 +0.000517,60 +0.000517,60 +0.000517,60 +0.000588,60 +0.000538,60 +0.000610,60 +0.000534,60 +0.000622,60 +0.000517,60 +0.000517,60 +0.000596,60 +0.000558,60 +0.000544,60 +0.000564,60 +0.000545,60 +0.000537,60 +0.000517,60 +0.000542,60 +0.000586,60 +0.000582,60 +0.000579,60 +0.000522,60 +0.000517,60 +0.000554,60 +0.000558,60 +0.000604,60 +0.000526,60 +0.000563,60 +0.000599,62 +0.000611,62 +0.000569,62 +0.000601,62 +0.000648,62 +0.000579,62 +0.000605,62 +0.000607,62 +0.000613,62 +0.000570,62 +0.000654,62 +0.000610,62 +0.000637,62 +0.000569,62 +0.000569,62 +0.000596,62 +0.000611,62 +0.000664,62 +0.000569,62 +0.000598,62 +0.000570,62 +0.000575,62 +0.000639,62 +0.000654,62 +0.000661,62 +0.000570,62 +0.000569,62 +0.000671,62 +0.000625,62 +0.000630,62 +0.000595,62 +0.000580,62 +0.000695,62 +0.000584,62 +0.000569,62 +0.000719,62 +0.000616,62 +0.000569,62 +0.000644,62 +0.000610,62 +0.000615,62 +0.000605,62 +0.000626,62 +0.000580,62 +0.000580,62 +0.000659,62 +0.000601,62 +0.000570,62 +0.000675,62 +0.000597,62 +0.000570,62 +0.000735,62 +0.000596,62 +0.000570,62 +0.000569,62 +0.000609,62 +0.000749,62 +0.000793,62 +0.000687,62 +0.000570,62 +0.000785,62 +0.000754,62 +0.000608,62 +0.000626,62 +0.000628,62 +0.000734,62 +0.000564,62 +0.000593,62 +0.000564,62 +0.000598,62 +0.000848,62 +0.000569,62 +0.000602,62 +0.000569,62 +0.000781,62 +0.000628,62 +0.000621,62 +0.000570,62 +0.000569,62 +0.000689,62 +0.000595,62 +0.000598,62 +0.000650,62 +0.000576,62 +0.000569,62 +0.000627,62 +0.000617,62 +0.000649,62 +0.000590,62 +0.000579,62 +0.000569,62 +0.000569,62 +0.000569,62 +0.000587,62 +0.000582,62 +0.000569,62 +0.000570,62 +0.000570,62 +0.000555,62 +0.000779,62 +0.000785,64 +0.000667,64 +0.000626,64 +0.000672,64 +0.000706,64 +0.000632,64 +0.000670,64 +0.000610,64 +0.000609,64 +0.000704,64 +0.000675,64 +0.000625,64 +0.000799,64 +0.000684,64 +0.000636,64 +0.000636,64 +0.000610,64 +0.000610,64 +0.000652,64 +0.000610,64 +0.000609,64 +0.000621,64 +0.000832,64 +0.000626,64 +0.000740,64 +0.000707,64 +0.000636,64 +0.000626,64 +0.000626,64 +0.000677,64 +0.000675,64 +0.000680,64 +0.000849,64 +0.000617,64 +0.000616,64 +0.000617,64 +0.000655,64 +0.000617,64 +0.000894,64 +0.000675,64 +0.000660,64 +0.000877,64 +0.000610,64 +0.000610,64 +0.000610,64 +0.000630,64 +0.000630,64 +0.000610,64 +0.000822,64 +0.000718,64 +0.000626,64 +0.000816,64 +0.000610,64 +0.000732,64 +0.000610,64 +0.000610,64 +0.000610,64 +0.000610,64 +0.000610,64 +0.000610,64 +0.000803,64 +0.000667,64 +0.000646,64 +0.000626,64 +0.000640,64 +0.000626,64 +0.000650,64 +0.000610,64 +0.000610,64 +0.000610,64 +0.000610,64 +0.000610,64 +0.000646,64 +0.000610,64 +0.000610,64 +0.000755,64 +0.000610,64 +0.000610,64 +0.000630,64 +0.000767,64 +0.000610,64 +0.000610,64 +0.000610,64 +0.000610,64 +0.000610,64 +0.000653,64 +0.000610,64 +0.000610,64 +0.000610,64 +0.000650,64 +0.000610,64 +0.000658,64 +0.000610,64 +0.000610,64 +0.000610,64 +0.000610,64 +0.000610,64 +0.000610,64 +0.000643,64 +0.000610,64 +0.000701,66 +0.000736,66 +0.000701,66 +0.000695,66 +0.000757,66 +0.000892,66 +0.000695,66 +0.000695,66 +0.000695,66 +0.000794,66 +0.000719,66 +0.000730,66 +0.000720,66 +0.000768,66 +0.000752,66 +0.000803,66 +0.000695,66 +0.000803,66 +0.000817,66 +0.000695,66 +0.000730,66 +0.000695,66 +0.000695,66 +0.000695,66 +0.000695,66 +0.000730,66 +0.000695,66 +0.000695,66 +0.000714,66 +0.000695,66 +0.000695,66 +0.000733,66 +0.000735,66 +0.000877,66 +0.000695,66 +0.000695,66 +0.000788,66 +0.000696,66 +0.000707,66 +0.000695,66 +0.000695,66 +0.000695,66 +0.000736,66 +0.000695,66 +0.000695,66 +0.000695,66 +0.000696,66 +0.000695,66 +0.000730,66 +0.000830,66 +0.001033,66 +0.000793,66 +0.000776,66 +0.000695,66 +0.000695,66 +0.000695,66 +0.000695,66 +0.000695,66 +0.000734,66 +0.000734,66 +0.000695,66 +0.000705,66 +0.000695,66 +0.000695,66 +0.000723,66 +0.000735,66 +0.000887,66 +0.000839,66 +0.001128,66 +0.000973,66 +0.000763,66 +0.000749,66 +0.000970,66 +0.000838,66 +0.000749,66 +0.000845,66 +0.000848,66 +0.000736,66 +0.001027,66 +0.001168,66 +0.001270,66 +0.000751,66 +0.000812,66 +0.000766,66 +0.000714,66 +0.000796,66 +0.000723,66 +0.000749,66 +0.000777,66 +0.000744,66 +0.000703,66 +0.000795,66 +0.000938,66 +0.000951,66 +0.001383,66 +0.000888,66 +0.000774,66 +0.000845,66 +0.001012,66 +0.000972,66 +0.000907,68 +0.001312,68 +0.001344,68 +0.001450,68 +0.001564,68 +0.001454,68 +0.001484,68 +0.001321,68 +0.001172,68 +0.000795,68 +0.000780,68 +0.000896,68 +0.000932,68 +0.000758,68 +0.000793,68 +0.000760,68 +0.000781,68 +0.000796,68 +0.000750,68 +0.000798,68 +0.000770,68 +0.000750,68 +0.000815,68 +0.000750,68 +0.000768,68 +0.000752,68 +0.000890,68 +0.000791,68 +0.000766,68 +0.000730,68 +0.000794,68 +0.000783,68 +0.000771,68 +0.000731,68 +0.000795,68 +0.000825,68 +0.000740,68 +0.000731,68 +0.000730,68 +0.000730,68 +0.000773,68 +0.000730,68 +0.000749,68 +0.000730,68 +0.000829,68 +0.000801,68 +0.000730,68 +0.000872,68 +0.000770,68 +0.000843,68 +0.000796,68 +0.000978,68 +0.000765,68 +0.000857,68 +0.000780,68 +0.000829,68 +0.000744,68 +0.000778,68 +0.000767,68 +0.000777,68 +0.000798,68 +0.000741,68 +0.000730,68 +0.000799,68 +0.000816,68 +0.000816,68 +0.000731,68 +0.000730,68 +0.000800,68 +0.000808,68 +0.000837,68 +0.000731,68 +0.000770,68 +0.000770,68 +0.000832,68 +0.000751,68 +0.000831,68 +0.000730,68 +0.000792,68 +0.000730,68 +0.000751,68 +0.000774,68 +0.000730,68 +0.000730,68 +0.000730,68 +0.000730,68 +0.000830,68 +0.000773,68 +0.000881,68 +0.000797,68 +0.000875,68 +0.000819,68 +0.000830,68 +0.000844,68 +0.000806,68 +0.000879,68 +0.000793,68 +0.000781,68 +0.000763,68 +0.000952,68 +0.000825,70 +0.000867,70 +0.000921,70 +0.000877,70 +0.000817,70 +0.000908,70 +0.000816,70 +0.000816,70 +0.000816,70 +0.000817,70 +0.000928,70 +0.000842,70 +0.000823,70 +0.000836,70 +0.000795,70 +0.000836,70 +0.000795,70 +0.000834,70 +0.000795,70 +0.000835,70 +0.000830,70 +0.000795,70 +0.000795,70 +0.000795,70 +0.000795,70 +0.000841,70 +0.000815,70 +0.000795,70 +0.000795,70 +0.000889,70 +0.000954,70 +0.000795,70 +0.000795,70 +0.000820,70 +0.000839,70 +0.000795,70 +0.000795,70 +0.000835,70 +0.000795,70 +0.000842,70 +0.000795,70 +0.000795,70 +0.000795,70 +0.000795,70 +0.000818,70 +0.000795,70 +0.000795,70 +0.000796,70 +0.000795,70 +0.000822,70 +0.000835,70 +0.000795,70 +0.000795,70 +0.000795,70 +0.000840,70 +0.000795,70 +0.000795,70 +0.000795,70 +0.000835,70 +0.000804,70 +0.000835,70 +0.000795,70 +0.000795,70 +0.000795,70 +0.000797,70 +0.000795,70 +0.000795,70 +0.000795,70 +0.000795,70 +0.000797,70 +0.000795,70 +0.000835,70 +0.000795,70 +0.000795,70 +0.000842,70 +0.000795,70 +0.000795,70 +0.000795,70 +0.000795,70 +0.000819,70 +0.000835,70 +0.000795,70 +0.000795,70 +0.000795,70 +0.000801,70 +0.000795,70 +0.000819,70 +0.000814,70 +0.000795,70 +0.000797,70 +0.000984,70 +0.000963,70 +0.000832,70 +0.000852,70 +0.000813,70 +0.000854,70 +0.000875,70 +0.000834,70 +0.001028,70 +0.000839,70 +0.000928,72 +0.000914,72 +0.000922,72 +0.000943,72 +0.001004,72 +0.000911,72 +0.000916,72 +0.000949,72 +0.000974,72 +0.001009,72 +0.001021,72 +0.000943,72 +0.000939,72 +0.001050,72 +0.001369,72 +0.000906,72 +0.000931,72 +0.000939,72 +0.001310,72 +0.001418,72 +0.001016,72 +0.000865,72 +0.000924,72 +0.000993,72 +0.000865,72 +0.001087,72 +0.001341,72 +0.000912,72 +0.000969,72 +0.000912,72 +0.000910,72 +0.000887,72 +0.001002,72 +0.000927,72 +0.000911,72 +0.000972,72 +0.001009,72 +0.000945,72 +0.000917,72 +0.000887,72 +0.000948,72 +0.001074,72 +0.000913,72 +0.001173,72 +0.000888,72 +0.001074,72 +0.000951,72 +0.001027,72 +0.000887,72 +0.000908,72 +0.000988,72 +0.000917,72 +0.000887,72 +0.000888,72 +0.000888,72 +0.000912,72 +0.001002,72 +0.000969,72 +0.000928,72 +0.000915,72 +0.001005,72 +0.001022,72 +0.000888,72 +0.000914,72 +0.001134,72 +0.000888,72 +0.000888,72 +0.000908,72 +0.000944,72 +0.001175,72 +0.000911,72 +0.000897,72 +0.000915,72 +0.000887,72 +0.000887,72 +0.000951,72 +0.000912,72 +0.000887,72 +0.000907,72 +0.000887,72 +0.001062,72 +0.000899,72 +0.000865,72 +0.000865,72 +0.000865,72 +0.000925,72 +0.000875,72 +0.000894,72 +0.000865,72 +0.000900,72 +0.000865,72 +0.001257,72 +0.000972,72 +0.000991,72 +0.001001,72 +0.000906,72 +0.000978,72 +0.000865,72 +0.000907,72 +0.000898,72 +0.000985,74 +0.001021,74 +0.000988,74 +0.001000,74 +0.001000,74 +0.001176,74 +0.000992,74 +0.000938,74 +0.000938,74 +0.000938,74 +0.001051,74 +0.000978,74 +0.001045,74 +0.000988,74 +0.001011,74 +0.001138,74 +0.001130,74 +0.001041,74 +0.000939,74 +0.001171,74 +0.001081,74 +0.001145,74 +0.001003,74 +0.000959,74 +0.000938,74 +0.000974,74 +0.001038,74 +0.001237,74 +0.001027,74 +0.001068,74 +0.000938,74 +0.000938,74 +0.000938,74 +0.000975,74 +0.000938,74 +0.000978,74 +0.000965,74 +0.001030,74 +0.000938,74 +0.000938,74 +0.001065,74 +0.001153,74 +0.000963,74 +0.000998,74 +0.000958,74 +0.001040,74 +0.000952,74 +0.000938,74 +0.000999,74 +0.001004,74 +0.000938,74 +0.000938,74 +0.000977,74 +0.001011,74 +0.000938,74 +0.000978,74 +0.001126,74 +0.001096,74 +0.001035,74 +0.000964,74 +0.000978,74 +0.000970,74 +0.001084,74 +0.000958,74 +0.000958,74 +0.001020,74 +0.000938,74 +0.000938,74 +0.000939,74 +0.001004,74 +0.000978,74 +0.000938,74 +0.000938,74 +0.000938,74 +0.000961,74 +0.000938,74 +0.000938,74 +0.000958,74 +0.000963,74 +0.000938,74 +0.001061,74 +0.000938,74 +0.000966,74 +0.000938,74 +0.000938,74 +0.000938,74 +0.000988,74 +0.000938,74 +0.000978,74 +0.000938,74 +0.000961,74 +0.000938,74 +0.000938,74 +0.000938,74 +0.000943,74 +0.000938,74 +0.000938,74 +0.000959,74 +0.000938,74 +0.000963,74 +0.001054,76 +0.001051,76 +0.001090,76 +0.001150,76 +0.001072,76 +0.001172,76 +0.001086,76 +0.001111,76 +0.001071,76 +0.001152,76 +0.001089,76 +0.001051,76 +0.001051,76 +0.001086,76 +0.001061,76 +0.001051,76 +0.001051,76 +0.001075,76 +0.001051,76 +0.001091,76 +0.001112,76 +0.001086,76 +0.001051,76 +0.001071,76 +0.001051,76 +0.001055,76 +0.001051,76 +0.001051,76 +0.001055,76 +0.001051,76 +0.001051,76 +0.001051,76 +0.001053,76 +0.001051,76 +0.001091,76 +0.001051,76 +0.001094,76 +0.001051,76 +0.001051,76 +0.001090,76 +0.001055,76 +0.001052,76 +0.001051,76 +0.001051,76 +0.001118,76 +0.001051,76 +0.001051,76 +0.001183,76 +0.001303,76 +0.001051,76 +0.001112,76 +0.001124,76 +0.001051,76 +0.001051,76 +0.001075,76 +0.001051,76 +0.001553,76 +0.001176,76 +0.001095,76 +0.001416,76 +0.001071,76 +0.001087,76 +0.001051,76 +0.001051,76 +0.001091,76 +0.001083,76 +0.001102,76 +0.001051,76 +0.001092,76 +0.001051,76 +0.001051,76 +0.001071,76 +0.001075,76 +0.001051,76 +0.001216,76 +0.001051,76 +0.001080,76 +0.001051,76 +0.001051,76 +0.001051,76 +0.001114,76 +0.001090,76 +0.001051,76 +0.001053,76 +0.001051,76 +0.001051,76 +0.001051,76 +0.001055,76 +0.001052,76 +0.001094,76 +0.001051,76 +0.001053,76 +0.001051,76 +0.001051,76 +0.001051,76 +0.001115,76 +0.001051,76 +0.001091,76 +0.001053,76 +0.001051,76 +0.001100,78 +0.001097,78 +0.001101,78 +0.001097,78 +0.001097,78 +0.001097,78 +0.001099,78 +0.001097,78 +0.001097,78 +0.001122,78 +0.001097,78 +0.001136,78 +0.001156,78 +0.001120,78 +0.001097,78 +0.001097,78 +0.001125,78 +0.001097,78 +0.001097,78 +0.001097,78 +0.001099,78 +0.001097,78 +0.001097,78 +0.001097,78 +0.001101,78 +0.001097,78 +0.001136,78 +0.001138,78 +0.001097,78 +0.001097,78 +0.001097,78 +0.001101,78 +0.001097,78 +0.001097,78 +0.001097,78 +0.001119,78 +0.001147,78 +0.001097,78 +0.001167,78 +0.001097,78 +0.001097,78 +0.001136,78 +0.001140,78 +0.001097,78 +0.001097,78 +0.001099,78 +0.001097,78 +0.001097,78 +0.001141,78 +0.001167,78 +0.001148,78 +0.001130,78 +0.001170,78 +0.001122,78 +0.001332,78 +0.001157,78 +0.001139,78 +0.001136,78 +0.001097,78 +0.001121,78 +0.001196,78 +0.001097,78 +0.001096,78 +0.001127,78 +0.001097,78 +0.001097,78 +0.001119,78 +0.001097,78 +0.001097,78 +0.001097,78 +0.001160,78 +0.001117,78 +0.001116,78 +0.001097,78 +0.001125,78 +0.001097,78 +0.001097,78 +0.001119,78 +0.001097,78 +0.001097,78 +0.001096,78 +0.001122,78 +0.001097,78 +0.001097,78 +0.001121,78 +0.001136,78 +0.001097,78 +0.001136,78 +0.001128,78 +0.001097,78 +0.001171,78 +0.001097,78 +0.001103,78 +0.001097,78 +0.001117,78 +0.001106,78 +0.001097,78 +0.001097,78 +0.001097,78 +0.001100,78 +0.001264,80 +0.001262,80 +0.001225,80 +0.001223,80 +0.001223,80 +0.001227,80 +0.001223,80 +0.001223,80 +0.001223,80 +0.001225,80 +0.001223,80 +0.001223,80 +0.001227,80 +0.001223,80 +0.001262,80 +0.001283,80 +0.001223,80 +0.001223,80 +0.001227,80 +0.001223,80 +0.001223,80 +0.001223,80 +0.001225,80 +0.001282,80 +0.001223,80 +0.001227,80 +0.001223,80 +0.001712,80 +0.001329,80 +0.001264,80 +0.001255,80 +0.001251,80 +0.001223,80 +0.001599,80 +0.001299,80 +0.001271,80 +0.001335,80 +0.001309,80 +0.001575,80 +0.001408,80 +0.001299,80 +0.001467,80 +0.001480,80 +0.001317,80 +0.001264,80 +0.001394,80 +0.001587,80 +0.001334,80 +0.001425,80 +0.001378,80 +0.001411,80 +0.001429,80 +0.001355,80 +0.001371,80 +0.001385,80 +0.001368,80 +0.001379,80 +0.001418,80 +0.001370,80 +0.001374,80 +0.001350,80 +0.001364,80 +0.001342,80 +0.001407,80 +0.001450,80 +0.001360,80 +0.001466,80 +0.001275,80 +0.001433,80 +0.001438,80 +0.001355,80 +0.001501,80 +0.001334,80 +0.001378,80 +0.001397,80 +0.001461,80 +0.001453,80 +0.001389,80 +0.001323,80 +0.001326,80 +0.001358,80 +0.001449,80 +0.001381,80 +0.001467,80 +0.001347,80 +0.001351,80 +0.001440,80 +0.001414,80 +0.001330,80 +0.001410,80 +0.001383,80 +0.001459,80 +0.001375,80 +0.001542,80 +0.001452,80 +0.001452,80 +0.001384,80 +0.001366,80 +0.001429,80 +0.001353,80 +0.001473,82 +0.001418,82 +0.001347,82 +0.001387,82 +0.001345,82 +0.001437,82 +0.001763,82 +0.001388,82 +0.001389,82 +0.001345,82 +0.001426,82 +0.001455,82 +0.001466,82 +0.001407,82 +0.001468,82 +0.001408,82 +0.001475,82 +0.001458,82 +0.001405,82 +0.001397,82 +0.001423,82 +0.001519,82 +0.001587,82 +0.001440,82 +0.001367,82 +0.001421,82 +0.001491,82 +0.001387,82 +0.002170,82 +0.001483,82 +0.001421,82 +0.001546,82 +0.001426,82 +0.001630,82 +0.001557,82 +0.001396,82 +0.001408,82 +0.001490,82 +0.001365,82 +0.001479,82 +0.001402,82 +0.001574,82 +0.001383,82 +0.001400,82 +0.001366,82 +0.001451,82 +0.001437,82 +0.001522,82 +0.001670,82 +0.001963,82 +0.002133,82 +0.001533,82 +0.001973,82 +0.001660,82 +0.001853,82 +0.001586,82 +0.001375,82 +0.001368,82 +0.001519,82 +0.001350,82 +0.001552,82 +0.001479,82 +0.001522,82 +0.001393,82 +0.001417,82 +0.001377,82 +0.001486,82 +0.001379,82 +0.001348,82 +0.001396,82 +0.001349,82 +0.001388,82 +0.001407,82 +0.001410,82 +0.001679,82 +0.001334,82 +0.001647,82 +0.001530,82 +0.001803,82 +0.001343,82 +0.001370,82 +0.001336,82 +0.001697,82 +0.001429,82 +0.001737,82 +0.001503,82 +0.001345,82 +0.001364,82 +0.001308,82 +0.001612,82 +0.001366,82 +0.001341,82 +0.001347,82 +0.001424,82 +0.001590,82 +0.001366,82 +0.001375,82 +0.001321,82 +0.001353,82 +0.001294,82 +0.001669,84 +0.001526,84 +0.001538,84 +0.001411,84 +0.001462,84 +0.001597,84 +0.001472,84 +0.001640,84 +0.001412,84 +0.001575,84 +0.001458,84 +0.001693,84 +0.001625,84 +0.001592,84 +0.001543,84 +0.001544,84 +0.001556,84 +0.001714,84 +0.001522,84 +0.001623,84 +0.001591,84 +0.001423,84 +0.001478,84 +0.001554,84 +0.001472,84 +0.001471,84 +0.001495,84 +0.001573,84 +0.001593,84 +0.001494,84 +0.001552,84 +0.001578,84 +0.001505,84 +0.001621,84 +0.001543,84 +0.001499,84 +0.001560,84 +0.001557,84 +0.001518,84 +0.001988,84 +0.001971,84 +0.001965,84 +0.001966,84 +0.001569,84 +0.001649,84 +0.001778,84 +0.001657,84 +0.001753,84 +0.001536,84 +0.001505,84 +0.001472,84 +0.001468,84 +0.001448,84 +0.001509,84 +0.001477,84 +0.001544,84 +0.001528,84 +0.001538,84 +0.001554,84 +0.001537,84 +0.001515,84 +0.001594,84 +0.001543,84 +0.001528,84 +0.001484,84 +0.001527,84 +0.001571,84 +0.001508,84 +0.001607,84 +0.001540,84 +0.001538,84 +0.001628,84 +0.001552,84 +0.001569,84 +0.001489,84 +0.001556,84 +0.001618,84 +0.001560,84 +0.001519,84 +0.001590,84 +0.001533,84 +0.001639,84 +0.001880,84 +0.001776,84 +0.001651,84 +0.001795,84 +0.001832,84 +0.001781,84 +0.001668,84 +0.001819,84 +0.001829,84 +0.001789,84 +0.001550,84 +0.001519,84 +0.001526,84 +0.001636,84 +0.001549,84 +0.001489,84 +0.001573,84 +0.001508,84 +0.001689,86 +0.001727,86 +0.001814,86 +0.001746,86 +0.001651,86 +0.001581,86 +0.002784,86 +0.002020,86 +0.001751,86 +0.001838,86 +0.001704,86 +0.001713,86 +0.002233,86 +0.001671,86 +0.001552,86 +0.001590,86 +0.001488,86 +0.001489,86 +0.001621,86 +0.001542,86 +0.001672,86 +0.002154,86 +0.001683,86 +0.001518,86 +0.001719,86 +0.001589,86 +0.001469,86 +0.001469,86 +0.001507,86 +0.001609,86 +0.001761,86 +0.001685,86 +0.001559,86 +0.001546,86 +0.001493,86 +0.001549,86 +0.001502,86 +0.001508,86 +0.001536,86 +0.001624,86 +0.001597,86 +0.001576,86 +0.001566,86 +0.001572,86 +0.001469,86 +0.001510,86 +0.001543,86 +0.001469,86 +0.001513,86 +0.001469,86 +0.001572,86 +0.001678,86 +0.001723,86 +0.001591,86 +0.001565,86 +0.001511,86 +0.001586,86 +0.001469,86 +0.001469,86 +0.001552,86 +0.001868,86 +0.002483,86 +0.002891,86 +0.002797,86 +0.002861,86 +0.002462,86 +0.001964,86 +0.001836,86 +0.001599,86 +0.001622,86 +0.001578,86 +0.001706,86 +0.001705,86 +0.001788,86 +0.001986,86 +0.001600,86 +0.001528,86 +0.001697,86 +0.001970,86 +0.002888,86 +0.002401,86 +0.001572,86 +0.001520,86 +0.001580,86 +0.001508,86 +0.001532,86 +0.001548,86 +0.001624,86 +0.001765,86 +0.001488,86 +0.001627,86 +0.001469,86 +0.001530,86 +0.001525,86 +0.001469,86 +0.001469,86 +0.001512,86 +0.001666,86 +0.001702,86 +0.001659,86 +0.001687,88 +0.001593,88 +0.001635,88 +0.001608,88 +0.001574,88 +0.001612,88 +0.001613,88 +0.001802,88 +0.001868,88 +0.001818,88 +0.001712,88 +0.001593,88 +0.001653,88 +0.001897,88 +0.001593,88 +0.001613,88 +0.001574,88 +0.001771,88 +0.001871,88 +0.001981,88 +0.001962,88 +0.001625,88 +0.001635,88 +0.002564,88 +0.002989,88 +0.002923,88 +0.002775,88 +0.001774,88 +0.001841,88 +0.001674,88 +0.001592,88 +0.001612,88 +0.001573,88 +0.001729,88 +0.001627,88 +0.001949,88 +0.001631,88 +0.001706,88 +0.001599,88 +0.001656,88 +0.001611,88 +0.001573,88 +0.001574,88 +0.001757,88 +0.001927,88 +0.001673,88 +0.001680,88 +0.001703,88 +0.001627,88 +0.001689,88 +0.001610,88 +0.001880,88 +0.001652,88 +0.001959,88 +0.001833,88 +0.001758,88 +0.001791,88 +0.001764,88 +0.001767,88 +0.001668,88 +0.001744,88 +0.001651,88 +0.001574,88 +0.002012,88 +0.001927,88 +0.001750,88 +0.001866,88 +0.001627,88 +0.001799,88 +0.001638,88 +0.001658,88 +0.001789,88 +0.001902,88 +0.001845,88 +0.001852,88 +0.001896,88 +0.001632,88 +0.001619,88 +0.001929,88 +0.002279,88 +0.001912,88 +0.001828,88 +0.001703,88 +0.001683,88 +0.001792,88 +0.001699,88 +0.001671,88 +0.001785,88 +0.001695,88 +0.001674,88 +0.001746,88 +0.001835,88 +0.001816,88 +0.002181,88 +0.002106,88 +0.001822,88 +0.002063,88 +0.001751,88 +0.002060,88 +0.001953,88 +0.002506,90 +0.002729,90 +0.002557,90 +0.002289,90 +0.002198,90 +0.002215,90 +0.002222,90 +0.002952,90 +0.002940,90 +0.002199,90 +0.002351,90 +0.002141,90 +0.001943,90 +0.002165,90 +0.002890,90 +0.002427,90 +0.002257,90 +0.002644,90 +0.002190,90 +0.002735,90 +0.002083,90 +0.002364,90 +0.002731,90 +0.003146,90 +0.002302,90 +0.002487,90 +0.002181,90 +0.002008,90 +0.002087,90 +0.001829,90 +0.001937,90 +0.002182,90 +0.002111,90 +0.002008,90 +0.001927,90 +0.001947,90 +0.002299,90 +0.002398,90 +0.001884,90 +0.001889,90 +0.002031,90 +0.001808,90 +0.001882,90 +0.001899,90 +0.002200,90 +0.002058,90 +0.001909,90 +0.001916,90 +0.001905,90 +0.001876,90 +0.001885,90 +0.001819,90 +0.002004,90 +0.002309,90 +0.002066,90 +0.001904,90 +0.001882,90 +0.001827,90 +0.001815,90 +0.001880,90 +0.001880,90 +0.002356,90 +0.002548,90 +0.001877,90 +0.001901,90 +0.001806,90 +0.001802,90 +0.001874,90 +0.001893,90 +0.002230,90 +0.002034,90 +0.002065,90 +0.001932,90 +0.001997,90 +0.001898,90 +0.002424,90 +0.003206,90 +0.003277,90 +0.003128,90 +0.002408,90 +0.002066,90 +0.002048,90 +0.002269,90 +0.002389,90 +0.002295,90 +0.002206,90 +0.002143,90 +0.002052,90 +0.002010,90 +0.001989,90 +0.002045,90 +0.002232,90 +0.002216,90 +0.002354,90 +0.002202,90 +0.002418,90 +0.002099,90 +0.002110,90 +0.002142,90 +0.002166,90 +0.002204,92 +0.002298,92 +0.002207,92 +0.002173,92 +0.002178,92 +0.002327,92 +0.002337,92 +0.002156,92 +0.002237,92 +0.002421,92 +0.002156,92 +0.002213,92 +0.002182,92 +0.002491,92 +0.002323,92 +0.002225,92 +0.002425,92 +0.002284,92 +0.002338,92 +0.003061,92 +0.003377,92 +0.003534,92 +0.003016,92 +0.002268,92 +0.002223,92 +0.002220,92 +0.002490,92 +0.002097,92 +0.002016,92 +0.002111,92 +0.002131,92 +0.002017,92 +0.001990,92 +0.002122,92 +0.001988,92 +0.001986,92 +0.002012,92 +0.002017,92 +0.001991,92 +0.002005,92 +0.001974,92 +0.002031,92 +0.002031,92 +0.002045,92 +0.002075,92 +0.002085,92 +0.002380,92 +0.002281,92 +0.002188,92 +0.002187,92 +0.002204,92 +0.002148,92 +0.002144,92 +0.002126,92 +0.002146,92 +0.002135,92 +0.002182,92 +0.002274,92 +0.002168,92 +0.002217,92 +0.002235,92 +0.002338,92 +0.002226,92 +0.002195,92 +0.003377,92 +0.003636,92 +0.003556,92 +0.002944,92 +0.002353,92 +0.002290,92 +0.002484,92 +0.002277,92 +0.002147,92 +0.002483,92 +0.002218,92 +0.002122,92 +0.002113,92 +0.002255,92 +0.002275,92 +0.002155,92 +0.002152,92 +0.002163,92 +0.002218,92 +0.002204,92 +0.002177,92 +0.002174,92 +0.002196,92 +0.002190,92 +0.002202,92 +0.002230,92 +0.002163,92 +0.002154,92 +0.002150,92 +0.002293,92 +0.002182,92 +0.002219,92 +0.002143,92 +0.002209,92 +0.002253,92 +0.002173,92 +0.002319,94 +0.002370,94 +0.002364,94 +0.002271,94 +0.002365,94 +0.002355,94 +0.002271,94 +0.003291,94 +0.003712,94 +0.003714,94 +0.003034,94 +0.002388,94 +0.002673,94 +0.002384,94 +0.002423,94 +0.002168,94 +0.002159,94 +0.002336,94 +0.002190,94 +0.002172,94 +0.002268,94 +0.002195,94 +0.002355,94 +0.002301,94 +0.002343,94 +0.002207,94 +0.002375,94 +0.002346,94 +0.002500,94 +0.002342,94 +0.002345,94 +0.002385,94 +0.002242,94 +0.002254,94 +0.002465,94 +0.002337,94 +0.002118,94 +0.002088,94 +0.002141,94 +0.002053,94 +0.002127,94 +0.002154,94 +0.002742,94 +0.002204,94 +0.002145,94 +0.002119,94 +0.002109,94 +0.002133,94 +0.002150,94 +0.002110,94 +0.002025,94 +0.002053,94 +0.002768,94 +0.002178,94 +0.002147,94 +0.002126,94 +0.002086,94 +0.002378,94 +0.002387,94 +0.002090,94 +0.002102,94 +0.002120,94 +0.002158,94 +0.002133,94 +0.002197,94 +0.002690,94 +0.002092,94 +0.002132,94 +0.002095,94 +0.002105,94 +0.002079,94 +0.002148,94 +0.002127,94 +0.002543,94 +0.002073,94 +0.002065,94 +0.002016,94 +0.002084,94 +0.002091,94 +0.001971,94 +0.002219,94 +0.002043,94 +0.002093,94 +0.002011,94 +0.002007,94 +0.001957,94 +0.001953,94 +0.001918,94 +0.002061,94 +0.002174,94 +0.001999,94 +0.001918,94 +0.002002,94 +0.001957,94 +0.001952,94 +0.001918,94 +0.001996,94 +0.002121,94 +0.002045,94 +0.001991,94 +0.002271,96 +0.002186,96 +0.002124,96 +0.002056,96 +0.002083,96 +0.002061,96 +0.002075,96 +0.002041,96 +0.002082,96 +0.002100,96 +0.002065,96 +0.002071,96 +0.002041,96 +0.002045,96 +0.002042,96 +0.002046,96 +0.002042,96 +0.002122,96 +0.002041,96 +0.002087,96 +0.002101,96 +0.002043,96 +0.002041,96 +0.002043,96 +0.002041,96 +0.002128,96 +0.002041,96 +0.002063,96 +0.002041,96 +0.002045,96 +0.002372,96 +0.002088,96 +0.002136,96 +0.002389,96 +0.002162,96 +0.002095,96 +0.002505,96 +0.002663,96 +0.002072,96 +0.002533,96 +0.002530,96 +0.002976,96 +0.003597,96 +0.002478,96 +0.002308,96 +0.002326,96 +0.002289,96 +0.002277,96 +0.002227,96 +0.002305,96 +0.002198,96 +0.002152,96 +0.002522,96 +0.002326,96 +0.002328,96 +0.002126,96 +0.002330,96 +0.002453,96 +0.002437,96 +0.002298,96 +0.002287,96 +0.002595,96 +0.002550,96 +0.002598,96 +0.002488,96 +0.002446,96 +0.002734,96 +0.002717,96 +0.002524,96 +0.002335,96 +0.002321,96 +0.002189,96 +0.002176,96 +0.002150,96 +0.002250,96 +0.002277,96 +0.002221,96 +0.002236,96 +0.002231,96 +0.002248,96 +0.002288,96 +0.002260,96 +0.002340,96 +0.002302,96 +0.002257,96 +0.002349,96 +0.002321,96 +0.002243,96 +0.002259,96 +0.002285,96 +0.002158,96 +0.002152,96 +0.002160,96 +0.002265,96 +0.002317,96 +0.002278,96 +0.002304,96 +0.002213,96 +0.002157,96 +0.002183,96 +0.002445,98 +0.002454,98 +0.002461,98 +0.002463,98 +0.002556,98 +0.002383,98 +0.002484,98 +0.002539,98 +0.002351,98 +0.002377,98 +0.002374,98 +0.002373,98 +0.002304,98 +0.002409,98 +0.002439,98 +0.002416,98 +0.002296,98 +0.002313,98 +0.002352,98 +0.002399,98 +0.002295,98 +0.002355,98 +0.002379,98 +0.002352,98 +0.002363,98 +0.002364,98 +0.002298,98 +0.002357,98 +0.002371,98 +0.002279,98 +0.002246,98 +0.002735,98 +0.002591,98 +0.002416,98 +0.002642,98 +0.002502,98 +0.002411,98 +0.002420,98 +0.002512,98 +0.002377,98 +0.002522,98 +0.002426,98 +0.002718,98 +0.002724,98 +0.002641,98 +0.002545,98 +0.002366,98 +0.002431,98 +0.002570,98 +0.002433,98 +0.002428,98 +0.002452,98 +0.002455,98 +0.002421,98 +0.002828,98 +0.002920,98 +0.003138,98 +0.003385,98 +0.003285,98 +0.002902,98 +0.003023,98 +0.002947,98 +0.002916,98 +0.002957,98 +0.002793,98 +0.003201,98 +0.002843,98 +0.002986,98 +0.002336,98 +0.003146,98 +0.002695,98 +0.002431,98 +0.002494,98 +0.002348,98 +0.002304,98 +0.002355,98 +0.002373,98 +0.002362,98 +0.002358,98 +0.002454,98 +0.002325,98 +0.002288,98 +0.002278,98 +0.002257,98 +0.002223,98 +0.002179,98 +0.002391,98 +0.002197,98 +0.002214,98 +0.002179,98 +0.002314,98 +0.002227,98 +0.002189,98 +0.002274,98 +0.002424,98 +0.002317,98 +0.002325,98 +0.002287,98 +0.002440,98 +0.002235,98 +0.002631,100 +0.003587,100 +0.003203,100 +0.002856,100 +0.002599,100 +0.002795,100 +0.003222,100 +0.002630,100 +0.002563,100 +0.002547,100 +0.002723,100 +0.002813,100 +0.002615,100 +0.002694,100 +0.002470,100 +0.002390,100 +0.002378,100 +0.002357,100 +0.002366,100 +0.002859,100 +0.002374,100 +0.002423,100 +0.002399,100 +0.002359,100 +0.002351,100 +0.002440,100 +0.002509,100 +0.002368,100 +0.002309,100 +0.002358,100 +0.002390,100 +0.002361,100 +0.002445,100 +0.002447,100 +0.002343,100 +0.002413,100 +0.002403,100 +0.002494,100 +0.002308,100 +0.002389,100 +0.002390,100 +0.002425,100 +0.002337,100 +0.002404,100 +0.002424,100 +0.002375,100 +0.002355,100 +0.003358,100 +0.004333,100 +0.004395,100 +0.002452,100 +0.002391,100 +0.002436,100 +0.002365,100 +0.002428,100 +0.002455,100 +0.002320,100 +0.002347,100 +0.002438,100 +0.002372,100 +0.002368,100 +0.002329,100 +0.002793,100 +0.002615,100 +0.002933,100 +0.003123,100 +0.002914,100 +0.002838,100 +0.003154,100 +0.002967,100 +0.003166,100 +0.003947,100 +0.003279,100 +0.003344,100 +0.002560,100 +0.002644,100 +0.003361,100 +0.002568,100 +0.002543,100 +0.002499,100 +0.002502,100 +0.002419,100 +0.002838,100 +0.004438,100 +0.004333,100 +0.003139,100 +0.002395,100 +0.002680,100 +0.002382,100 +0.002357,100 +0.002347,100 +0.002398,100 +0.002343,100 +0.002342,100 +0.002576,100 +0.002307,100 +0.002332,100 +0.002468,100 +0.002346,100 +0.002337,100 +0.002496,102 +0.002542,102 +0.002490,102 +0.002453,102 +0.002558,102 +0.002461,102 +0.002476,102 +0.002542,102 +0.002453,102 +0.002459,102 +0.002561,102 +0.002531,102 +0.002735,102 +0.002487,102 +0.002580,102 +0.002558,102 +0.002536,102 +0.002528,102 +0.002747,102 +0.002652,102 +0.002880,102 +0.002657,102 +0.002634,102 +0.002690,102 +0.002908,102 +0.002496,102 +0.002894,102 +0.002579,102 +0.002784,102 +0.002583,102 +0.002614,102 +0.002550,102 +0.002555,102 +0.002724,102 +0.002518,102 +0.002594,102 +0.002585,102 +0.002763,102 +0.002479,102 +0.002635,102 +0.002453,102 +0.002732,102 +0.002579,102 +0.002501,102 +0.002537,102 +0.002552,102 +0.002534,102 +0.002491,102 +0.002521,102 +0.002630,102 +0.002478,102 +0.002453,102 +0.002599,102 +0.002474,102 +0.002485,102 +0.002490,102 +0.002544,102 +0.002462,102 +0.002457,102 +0.002535,102 +0.002597,102 +0.002591,102 +0.002620,102 +0.002619,102 +0.002475,102 +0.002493,102 +0.002487,102 +0.002495,102 +0.002473,102 +0.002588,102 +0.002487,102 +0.002486,102 +0.002559,102 +0.002453,102 +0.002496,102 +0.002492,102 +0.002496,102 +0.002455,102 +0.002453,102 +0.002457,102 +0.002455,102 +0.002454,102 +0.002496,102 +0.002492,102 +0.002455,102 +0.002457,102 +0.002452,102 +0.002455,102 +0.002617,102 +0.002530,102 +0.002455,102 +0.002492,102 +0.002455,102 +0.002458,102 +0.002453,102 +0.002455,102 +0.002530,102 +0.002486,102 +0.002476,102 +0.002453,102 +0.002644,104 +0.002914,104 +0.002769,104 +0.002818,104 +0.003162,104 +0.002768,104 +0.002623,104 +0.002629,104 +0.002696,104 +0.002602,104 +0.002633,104 +0.002769,104 +0.002594,104 +0.002641,104 +0.002669,104 +0.002631,104 +0.002635,104 +0.002638,104 +0.002594,104 +0.002596,104 +0.002593,104 +0.002675,104 +0.002601,104 +0.002594,104 +0.002599,104 +0.002614,104 +0.002682,104 +0.002697,104 +0.002606,104 +0.002593,104 +0.002598,104 +0.002596,104 +0.002827,104 +0.002739,104 +0.002733,104 +0.002605,104 +0.002660,104 +0.002610,104 +0.002770,104 +0.002754,104 +0.002903,104 +0.002616,104 +0.002653,104 +0.002636,104 +0.002594,104 +0.002617,104 +0.002683,104 +0.002593,104 +0.002621,104 +0.002694,104 +0.002593,104 +0.002931,104 +0.002687,104 +0.002611,104 +0.002615,104 +0.002731,104 +0.002594,104 +0.002599,104 +0.002743,104 +0.002827,104 +0.002593,104 +0.002853,104 +0.002641,104 +0.002677,104 +0.002846,104 +0.002660,104 +0.002593,104 +0.002880,104 +0.002618,104 +0.002593,104 +0.002888,104 +0.002700,104 +0.002593,104 +0.002697,104 +0.002763,104 +0.002742,104 +0.002744,104 +0.002944,104 +0.002612,104 +0.002875,104 +0.002688,104 +0.002594,104 +0.002825,104 +0.002811,104 +0.002790,104 +0.002676,104 +0.002923,104 +0.002650,104 +0.002593,104 +0.002882,104 +0.002773,104 +0.002749,104 +0.002754,104 +0.002698,104 +0.002613,104 +0.002846,104 +0.002832,104 +0.002777,104 +0.002671,104 +0.002618,104 +0.002861,106 +0.002804,106 +0.002767,106 +0.002771,106 +0.002765,106 +0.002768,106 +0.002816,106 +0.003076,106 +0.002747,106 +0.002774,106 +0.002827,106 +0.002822,106 +0.002887,106 +0.003106,106 +0.002937,106 +0.002827,106 +0.002802,106 +0.002752,106 +0.002786,106 +0.002772,106 +0.002751,106 +0.002766,106 +0.002749,106 +0.002751,106 +0.002757,106 +0.002778,106 +0.002750,106 +0.002749,106 +0.002746,106 +0.002751,106 +0.002749,106 +0.002808,106 +0.002755,106 +0.002766,106 +0.002747,106 +0.002748,106 +0.002812,106 +0.003042,106 +0.002754,106 +0.002816,106 +0.002796,106 +0.002796,106 +0.002974,106 +0.002886,106 +0.002746,106 +0.002830,106 +0.002770,106 +0.002814,106 +0.002845,106 +0.002852,106 +0.002921,106 +0.002764,106 +0.002799,106 +0.002937,106 +0.002828,106 +0.002919,106 +0.002782,106 +0.002887,106 +0.002747,106 +0.002781,106 +0.002797,106 +0.002784,106 +0.002768,106 +0.002771,106 +0.002777,106 +0.002746,106 +0.002824,106 +0.002789,106 +0.002930,106 +0.003093,106 +0.002806,106 +0.002859,106 +0.002835,106 +0.002773,106 +0.003069,106 +0.002904,106 +0.002781,106 +0.002778,106 +0.003197,106 +0.002853,106 +0.002909,106 +0.002748,106 +0.003053,106 +0.003029,106 +0.002944,106 +0.003028,106 +0.002922,106 +0.002943,106 +0.002805,106 +0.002842,106 +0.003043,106 +0.002790,106 +0.002891,106 +0.003061,106 +0.002766,106 +0.002845,106 +0.003088,106 +0.002893,106 +0.002975,106 +0.002841,106 +0.003258,108 +0.003219,108 +0.003353,108 +0.003234,108 +0.003371,108 +0.003265,108 +0.003275,108 +0.003025,108 +0.003320,108 +0.003132,108 +0.003040,108 +0.003275,108 +0.003107,108 +0.003192,108 +0.002982,108 +0.002944,108 +0.003102,108 +0.003042,108 +0.003119,108 +0.003389,108 +0.002972,108 +0.002947,108 +0.002959,108 +0.002946,108 +0.003023,108 +0.003080,108 +0.002959,108 +0.003009,108 +0.002963,108 +0.002908,108 +0.003800,108 +0.002959,108 +0.002980,108 +0.002962,108 +0.002907,108 +0.003076,108 +0.003053,108 +0.003043,108 +0.002974,108 +0.002942,108 +0.002948,108 +0.003255,108 +0.003202,108 +0.002996,108 +0.002961,108 +0.002941,108 +0.003798,108 +0.003248,108 +0.003472,108 +0.003765,108 +0.003114,108 +0.003797,108 +0.003137,108 +0.002941,108 +0.003015,108 +0.002948,108 +0.003830,108 +0.003539,108 +0.003319,108 +0.003370,108 +0.003390,108 +0.003863,108 +0.003414,108 +0.003166,108 +0.003177,108 +0.002997,108 +0.004755,108 +0.003511,108 +0.003067,108 +0.003015,108 +0.003014,108 +0.004106,108 +0.003278,108 +0.002963,108 +0.003018,108 +0.003021,108 +0.003756,108 +0.003218,108 +0.004016,108 +0.003551,108 +0.003735,108 +0.003652,108 +0.002973,108 +0.003049,108 +0.003021,108 +0.003233,108 +0.003566,108 +0.003014,108 +0.002982,108 +0.003015,108 +0.002909,108 +0.003506,108 +0.003099,108 +0.003016,108 +0.002987,108 +0.003012,108 +0.003344,108 +0.003108,108 +0.003036,108 +0.002986,108 +0.003121,110 +0.003308,110 +0.003645,110 +0.003130,110 +0.003139,110 +0.003119,110 +0.003193,110 +0.003599,110 +0.003218,110 +0.003943,110 +0.003833,110 +0.004163,110 +0.003342,110 +0.003072,110 +0.003193,110 +0.003109,110 +0.003806,110 +0.003317,110 +0.003172,110 +0.003261,110 +0.003104,110 +0.004003,110 +0.003298,110 +0.003116,110 +0.003148,110 +0.003104,110 +0.003832,110 +0.003439,110 +0.003874,110 +0.003440,110 +0.005118,110 +0.004115,110 +0.003377,110 +0.003371,110 +0.003585,110 +0.004081,110 +0.003263,110 +0.003363,110 +0.005218,110 +0.004327,110 +0.003541,110 +0.003458,110 +0.003406,110 +0.003481,110 +0.004168,110 +0.003612,110 +0.004007,110 +0.003247,110 +0.003406,110 +0.003569,110 +0.003616,110 +0.003771,110 +0.003692,110 +0.003914,110 +0.004257,110 +0.003764,110 +0.003408,110 +0.003849,110 +0.004592,110 +0.003795,110 +0.003294,110 +0.004595,110 +0.005149,110 +0.004321,110 +0.003406,110 +0.004178,110 +0.005475,110 +0.005511,110 +0.003782,110 +0.003560,110 +0.004343,110 +0.003608,110 +0.003263,110 +0.004953,110 +0.004977,110 +0.006301,110 +0.005646,110 +0.004369,110 +0.004527,110 +0.005416,110 +0.004751,110 +0.003676,110 +0.003736,110 +0.003644,110 +0.005144,110 +0.004847,110 +0.005405,110 +0.003992,110 +0.003676,110 +0.004584,110 +0.003187,110 +0.003931,110 +0.004963,110 +0.004742,110 +0.004872,110 +0.003628,110 +0.003541,110 +0.003228,110 +0.003850,110 +0.005009,110 +0.005836,112 +0.006242,112 +0.006106,112 +0.003673,112 +0.003781,112 +0.003425,112 +0.003692,112 +0.004829,112 +0.003334,112 +0.004316,112 +0.004068,112 +0.006432,112 +0.004738,112 +0.003701,112 +0.003584,112 +0.003472,112 +0.003439,112 +0.004773,112 +0.004372,112 +0.004500,112 +0.003843,112 +0.003317,112 +0.004180,112 +0.003587,112 +0.004891,112 +0.003355,112 +0.004367,112 +0.005543,112 +0.004212,112 +0.003753,112 +0.005279,112 +0.006208,112 +0.006200,112 +0.005718,112 +0.004388,112 +0.003853,112 +0.004592,112 +0.005675,112 +0.005520,112 +0.004401,112 +0.004859,112 +0.006026,112 +0.005075,112 +0.004250,112 +0.004091,112 +0.003717,112 +0.003554,112 +0.003785,112 +0.003421,112 +0.003694,112 +0.003385,112 +0.003369,112 +0.003600,112 +0.003460,112 +0.003418,112 +0.005473,112 +0.006749,112 +0.004214,112 +0.003674,112 +0.004082,112 +0.003621,112 +0.003577,112 +0.003567,112 +0.003612,112 +0.004367,112 +0.003855,112 +0.004755,112 +0.004980,112 +0.004530,112 +0.004115,112 +0.004447,112 +0.003744,112 +0.003871,112 +0.003347,112 +0.003526,112 +0.004476,112 +0.005915,112 +0.006213,112 +0.005642,112 +0.003939,112 +0.004915,112 +0.003862,112 +0.003666,112 +0.005661,112 +0.004728,112 +0.004609,112 +0.004075,112 +0.003584,112 +0.003461,112 +0.003718,112 +0.003806,112 +0.004843,112 +0.003594,112 +0.003614,112 +0.003549,112 +0.004039,112 +0.003723,112 +0.003414,112 +0.003796,112 +0.003973,112 +0.004787,114 +0.004136,114 +0.003698,114 +0.003936,114 +0.004186,114 +0.003469,114 +0.003586,114 +0.003563,114 +0.004120,114 +0.003981,114 +0.003613,114 +0.003603,114 +0.004202,114 +0.003610,114 +0.003615,114 +0.003970,114 +0.003713,114 +0.004594,114 +0.003967,114 +0.003705,114 +0.003533,114 +0.005343,114 +0.003616,114 +0.003937,114 +0.003666,114 +0.004701,114 +0.004117,114 +0.003791,114 +0.003927,114 +0.004133,114 +0.003919,114 +0.003650,114 +0.003989,114 +0.005745,114 +0.004907,114 +0.004419,114 +0.006310,114 +0.004878,114 +0.005730,114 +0.004555,114 +0.004293,114 +0.004167,114 +0.003760,114 +0.003707,114 +0.004708,114 +0.004830,114 +0.004394,114 +0.004506,114 +0.004576,114 +0.003709,114 +0.003710,114 +0.003735,114 +0.003963,114 +0.003603,114 +0.003639,114 +0.003622,114 +0.003918,114 +0.003500,114 +0.003536,114 +0.003496,114 +0.003747,114 +0.004614,114 +0.003626,114 +0.003560,114 +0.004132,114 +0.003929,114 +0.003513,114 +0.003639,114 +0.003501,114 +0.004693,114 +0.003638,114 +0.003510,114 +0.003523,114 +0.005249,114 +0.003929,114 +0.003533,114 +0.003540,114 +0.003679,114 +0.004028,114 +0.003837,114 +0.004211,114 +0.004641,114 +0.003909,114 +0.003980,114 +0.003944,114 +0.003978,114 +0.003950,114 +0.003711,114 +0.004290,114 +0.004783,114 +0.003931,114 +0.003651,114 +0.003681,114 +0.003937,114 +0.004409,114 +0.004043,114 +0.004928,114 +0.004647,114 +0.004604,114 +0.004061,114 +0.003837,116 +0.003813,116 +0.003887,116 +0.004217,116 +0.003743,116 +0.003736,116 +0.004412,116 +0.003754,116 +0.003727,116 +0.003773,116 +0.004102,116 +0.004182,116 +0.003631,116 +0.003809,116 +0.003794,116 +0.004108,116 +0.003639,116 +0.003756,116 +0.003689,116 +0.004026,116 +0.003754,116 +0.003671,116 +0.003682,116 +0.003978,116 +0.003798,116 +0.003636,116 +0.003711,116 +0.004586,116 +0.004441,116 +0.004037,116 +0.003830,116 +0.003782,116 +0.004104,116 +0.003632,116 +0.003748,116 +0.003665,116 +0.004122,116 +0.003719,116 +0.003682,116 +0.003697,116 +0.003930,116 +0.003940,116 +0.003639,116 +0.003774,116 +0.003674,116 +0.004208,116 +0.003627,116 +0.003687,116 +0.003675,116 +0.004086,116 +0.003825,116 +0.003594,116 +0.003723,116 +0.004457,116 +0.004397,116 +0.003899,116 +0.003694,116 +0.003790,116 +0.004091,116 +0.003629,116 +0.004212,116 +0.003711,116 +0.004105,116 +0.003695,116 +0.003939,116 +0.003718,116 +0.004045,116 +0.004201,116 +0.003629,116 +0.003789,116 +0.003828,116 +0.004067,116 +0.003635,116 +0.003762,116 +0.003638,116 +0.004158,116 +0.003709,116 +0.003672,116 +0.003669,116 +0.003834,116 +0.003983,116 +0.004511,116 +0.003747,116 +0.003918,116 +0.003984,116 +0.003632,116 +0.003687,116 +0.003700,116 +0.004324,116 +0.003912,116 +0.004117,116 +0.004163,116 +0.004294,116 +0.003923,116 +0.003681,116 +0.003711,116 +0.004289,116 +0.004412,116 +0.003677,116 +0.003650,116 +0.004346,118 +0.003991,118 +0.003824,118 +0.003865,118 +0.003964,118 +0.004073,118 +0.004120,118 +0.003890,118 +0.003943,118 +0.004015,118 +0.003822,118 +0.003899,118 +0.003838,118 +0.004025,118 +0.003836,118 +0.003853,118 +0.003892,118 +0.003903,118 +0.003821,118 +0.003811,118 +0.003981,118 +0.003875,118 +0.003817,118 +0.003806,118 +0.003877,118 +0.003795,118 +0.003856,118 +0.003790,118 +0.003831,118 +0.003843,118 +0.004057,118 +0.004039,118 +0.003847,118 +0.003866,118 +0.003882,118 +0.003810,118 +0.003817,118 +0.003938,118 +0.003862,118 +0.003835,118 +0.003787,118 +0.003868,118 +0.003877,118 +0.003898,118 +0.003814,118 +0.003827,118 +0.003906,118 +0.003855,118 +0.003836,118 +0.003836,118 +0.003881,118 +0.003875,118 +0.003795,118 +0.003789,118 +0.003846,118 +0.003810,118 +0.004143,118 +0.004031,118 +0.003871,118 +0.003842,118 +0.003850,118 +0.003794,118 +0.003790,118 +0.003881,118 +0.003891,118 +0.003850,118 +0.003791,118 +0.003886,118 +0.004017,118 +0.003790,118 +0.003787,118 +0.003825,118 +0.003930,118 +0.003822,118 +0.003789,118 +0.003793,118 +0.003874,118 +0.003793,118 +0.003789,118 +0.003789,118 +0.003855,118 +0.003809,118 +0.004019,118 +0.004125,118 +0.003866,118 +0.003863,118 +0.003847,118 +0.003883,118 +0.003818,118 +0.003886,118 +0.003990,118 +0.003835,118 +0.003814,118 +0.003876,118 +0.003837,118 +0.003814,118 +0.003791,118 +0.003847,118 +0.003900,118 +0.003798,118 +0.004000,120 +0.004003,120 +0.004077,120 +0.003994,120 +0.003974,120 +0.003978,120 +0.004037,120 +0.003980,120 +0.004235,120 +0.004179,120 +0.004089,120 +0.003979,120 +0.003974,120 +0.004010,120 +0.004069,120 +0.003998,120 +0.003995,120 +0.003976,120 +0.004063,120 +0.004007,120 +0.004009,120 +0.003985,120 +0.004014,120 +0.004230,120 +0.003977,120 +0.003984,120 +0.004036,120 +0.004071,120 +0.003974,120 +0.004011,120 +0.004010,120 +0.004069,120 +0.003974,120 +0.004183,120 +0.004231,120 +0.004194,120 +0.003994,120 +0.004074,120 +0.004010,120 +0.004118,120 +0.004167,120 +0.004004,120 +0.003977,120 +0.004067,120 +0.003977,120 +0.003979,120 +0.003978,120 +0.004116,120 +0.004197,120 +0.003985,120 +0.003974,120 +0.004189,120 +0.004266,120 +0.004054,120 +0.004065,120 +0.004118,120 +0.004036,120 +0.004116,120 +0.004106,120 +0.004314,120 +0.003997,120 +0.004074,120 +0.004018,120 +0.004176,120 +0.004099,120 +0.004020,120 +0.004015,120 +0.004070,120 +0.004088,120 +0.004059,120 +0.003995,120 +0.004057,120 +0.004145,120 +0.004015,120 +0.003982,120 +0.004031,120 +0.004070,120 +0.004034,120 +0.003996,120 +0.003981,120 +0.004161,120 +0.004040,120 +0.004191,120 +0.004170,120 +0.004290,120 +0.004079,120 +0.004132,120 +0.004137,120 +0.004106,120 +0.004235,120 +0.004068,120 +0.004007,120 +0.004126,120 +0.004024,120 +0.004011,120 +0.003998,120 +0.004253,120 +0.004004,120 +0.003992,120 +0.003978,120 +0.004298,122 +0.004239,122 +0.004193,122 +0.004273,122 +0.004511,122 +0.004250,122 +0.004320,122 +0.004322,122 +0.004460,122 +0.004300,122 +0.004190,122 +0.004215,122 +0.004357,122 +0.004246,122 +0.004205,122 +0.004235,122 +0.004389,122 +0.004201,122 +0.004194,122 +0.004306,122 +0.004595,122 +0.004326,122 +0.004256,122 +0.004449,122 +0.004713,122 +0.004423,122 +0.004446,122 +0.006128,122 +0.004411,122 +0.004457,122 +0.004512,122 +0.004526,122 +0.004402,122 +0.004343,122 +0.004366,122 +0.004230,122 +0.004355,122 +0.004229,122 +0.004364,122 +0.004227,122 +0.004440,122 +0.004216,122 +0.004329,122 +0.004527,122 +0.004341,122 +0.004345,122 +0.004381,122 +0.004347,122 +0.004344,122 +0.004340,122 +0.004348,122 +0.004345,122 +0.004357,122 +0.004451,122 +0.004466,122 +0.004447,122 +0.004343,122 +0.004389,122 +0.004335,122 +0.004316,122 +0.004315,122 +0.004398,122 +0.004329,122 +0.004331,122 +0.004306,122 +0.004485,122 +0.004364,122 +0.004366,122 +0.004397,122 +0.004434,122 +0.004343,122 +0.004308,122 +0.004346,122 +0.004389,122 +0.004326,122 +0.004366,122 +0.004459,122 +0.004491,122 +0.004347,122 +0.004341,122 +0.004427,122 +0.004351,122 +0.004329,122 +0.004334,122 +0.004406,122 +0.004350,122 +0.004357,122 +0.004361,122 +0.004495,122 +0.004339,122 +0.004342,122 +0.004354,122 +0.004483,122 +0.004325,122 +0.004302,122 +0.004377,122 +0.004309,122 +0.004324,122 +0.004372,122 +0.004457,122 +0.004703,124 +0.004598,124 +0.004443,124 +0.004476,124 +0.004466,124 +0.004408,124 +0.004476,124 +0.004529,124 +0.004481,124 +0.004412,124 +0.004553,124 +0.004512,124 +0.004408,124 +0.004450,124 +0.004573,124 +0.004461,124 +0.007765,124 +0.005173,124 +0.004744,124 +0.004438,124 +0.004704,124 +0.004726,124 +0.004482,124 +0.004423,124 +0.004644,124 +0.004437,124 +0.004417,124 +0.004424,124 +0.004531,124 +0.004459,124 +0.004431,124 +0.004436,124 +0.004615,124 +0.004449,124 +0.004406,124 +0.004666,124 +0.004435,124 +0.004412,124 +0.004413,124 +0.004490,124 +0.004397,124 +0.004397,124 +0.004487,124 +0.004666,124 +0.004561,124 +0.004433,124 +0.004493,124 +0.004520,124 +0.004441,124 +0.004409,124 +0.004517,124 +0.004419,124 +0.004487,124 +0.004420,124 +0.004562,124 +0.004588,124 +0.004433,124 +0.004631,124 +0.004484,124 +0.004458,124 +0.004426,124 +0.004541,124 +0.004425,124 +0.004432,124 +0.004439,124 +0.004638,124 +0.004596,124 +0.004526,124 +0.004487,124 +0.004598,124 +0.004609,124 +0.004424,124 +0.004537,124 +0.004436,124 +0.004412,124 +0.004425,124 +0.004503,124 +0.004560,124 +0.004420,124 +0.004558,124 +0.004533,124 +0.004439,124 +0.004428,124 +0.004719,124 +0.004512,124 +0.004412,124 +0.004443,124 +0.004649,124 +0.004616,124 +0.004498,124 +0.004453,124 +0.004595,124 +0.004456,124 +0.004447,124 +0.004518,124 +0.004489,124 +0.004441,124 +0.004410,124 +0.004513,124 +0.004580,124 +0.004662,126 +0.004719,126 +0.004843,126 +0.004653,126 +0.004644,126 +0.004688,126 +0.004709,126 +0.004654,126 +0.004646,126 +0.004866,126 +0.004883,126 +0.004728,126 +0.004737,126 +0.004719,126 +0.004731,126 +0.004628,126 +0.004735,126 +0.004633,126 +0.004650,126 +0.004696,126 +0.004805,126 +0.004666,126 +0.004765,126 +0.004727,126 +0.004697,126 +0.004747,126 +0.004852,126 +0.004697,126 +0.004709,126 +0.004681,126 +0.004790,126 +0.004838,126 +0.004740,126 +0.004898,126 +0.004784,126 +0.004648,126 +0.004651,126 +0.004750,126 +0.004659,126 +0.004632,126 +0.004671,126 +0.004750,126 +0.004914,126 +0.004887,126 +0.004847,126 +0.004825,126 +0.004675,126 +0.004664,126 +0.004737,126 +0.004657,126 +0.004647,126 +0.004924,126 +0.004950,126 +0.004737,126 +0.004776,126 +0.004728,126 +0.004695,126 +0.004665,126 +0.004781,126 +0.004666,126 +0.004647,126 +0.004690,126 +0.004912,126 +0.004696,126 +0.004686,126 +0.004803,126 +0.004740,126 +0.004676,126 +0.004654,126 +0.004776,126 +0.004657,126 +0.004629,126 +0.004816,126 +0.005045,126 +0.004844,126 +0.004628,126 +0.004776,126 +0.004704,126 +0.004647,126 +0.004736,126 +0.004655,126 +0.004628,126 +0.004640,126 +0.004790,126 +0.004961,126 +0.004783,126 +0.004804,126 +0.004800,126 +0.004720,126 +0.004644,126 +0.004755,126 +0.004661,126 +0.004621,126 +0.004692,126 +0.005043,126 +0.004882,126 +0.004638,126 +0.004839,126 +0.004672,126 +0.004690,126 +0.005225,128 +0.005116,128 +0.005117,128 +0.005175,128 +0.005454,128 +0.005123,128 +0.005107,128 +0.005244,128 +0.005112,128 +0.005123,128 +0.005198,128 +0.005114,128 +0.005077,128 +0.005257,128 +0.005528,128 +0.005315,128 +0.005355,128 +0.005147,128 +0.005106,128 +0.005195,128 +0.005178,128 +0.005105,128 +0.005101,128 +0.005230,128 +0.005409,128 +0.005327,128 +0.005247,128 +0.005288,128 +0.005124,128 +0.005236,128 +0.005127,128 +0.005086,128 +0.005232,128 +0.005578,128 +0.005388,128 +0.005298,128 +0.005190,128 +0.005099,128 +0.005194,128 +0.005261,128 +0.005117,128 +0.005080,128 +0.005250,128 +0.005435,128 +0.005136,128 +0.005334,128 +0.005132,128 +0.005104,128 +0.005230,128 +0.005121,128 +0.005105,128 +0.005130,128 +0.005415,128 +0.005546,128 +0.005168,128 +0.005223,128 +0.005133,128 +0.005122,128 +0.005209,128 +0.005182,128 +0.005085,128 +0.005205,128 +0.005457,128 +0.005141,128 +0.005219,128 +0.005170,128 +0.005112,128 +0.005161,128 +0.005167,128 +0.005112,128 +0.005090,128 +0.005313,128 +0.005500,128 +0.005229,128 +0.005250,128 +0.005178,128 +0.005094,128 +0.005220,128 +0.005137,128 +0.005098,128 +0.005203,128 +0.005323,128 +0.005221,128 +0.005148,128 +0.005209,128 +0.005150,128 +0.005138,128 +0.005215,128 +0.005138,128 +0.005098,128 +0.005285,128 +0.005508,128 +0.005329,128 +0.005309,128 +0.005242,128 +0.005208,128 +0.005242,128 +0.005098,128 +0.005136,128 +0.005154,128 +0.005345,130 +0.005109,130 +0.005101,130 +0.005213,130 +0.005168,130 +0.005101,130 +0.005221,130 +0.005093,130 +0.005125,130 +0.005204,130 +0.005441,130 +0.005309,130 +0.005259,130 +0.005137,130 +0.005116,130 +0.005168,130 +0.005155,130 +0.005108,130 +0.005112,130 +0.005368,130 +0.005092,130 +0.005176,130 +0.005233,130 +0.005154,130 +0.005104,130 +0.005250,130 +0.005092,130 +0.005104,130 +0.005175,130 +0.005286,130 +0.005459,130 +0.005212,130 +0.005176,130 +0.005118,130 +0.005108,130 +0.005281,130 +0.005082,130 +0.005103,130 +0.005340,130 +0.005336,130 +0.005093,130 +0.005294,130 +0.005209,130 +0.005164,130 +0.005152,130 +0.005189,130 +0.005329,130 +0.005140,130 +0.005263,130 +0.005501,130 +0.005242,130 +0.005252,130 +0.005155,130 +0.005076,130 +0.005336,130 +0.005101,130 +0.005096,130 +0.005204,130 +0.005323,130 +0.005099,130 +0.005217,130 +0.005142,130 +0.005118,130 +0.005215,130 +0.005208,130 +0.005089,130 +0.005125,130 +0.005244,130 +0.005430,130 +0.005506,130 +0.005299,130 +0.005211,130 +0.005093,130 +0.005205,130 +0.005145,130 +0.005165,130 +0.005192,130 +0.005181,130 +0.005061,130 +0.005089,130 +0.005094,130 +0.005067,130 +0.005056,130 +0.005117,130 +0.005075,130 +0.005056,130 +0.005119,130 +0.005140,130 +0.005332,130 +0.005271,130 +0.005136,130 +0.005077,130 +0.005105,130 +0.005112,130 +0.005063,130 +0.005056,130 +0.005156,130 +0.005151,130 +0.005054,130 +0.005122,130 +0.005310,132 +0.005291,132 +0.005352,132 +0.005298,132 +0.005291,132 +0.005321,132 +0.005322,132 +0.005535,132 +0.005626,132 +0.005791,132 +0.005476,132 +0.005464,132 +0.005361,132 +0.005298,132 +0.005315,132 +0.005324,132 +0.005383,132 +0.005287,132 +0.005357,132 +0.005293,132 +0.005288,132 +0.005351,132 +0.005338,132 +0.005285,132 +0.005348,132 +0.005316,132 +0.005635,132 +0.005557,132 +0.005343,132 +0.005305,132 +0.005344,132 +0.005322,132 +0.005313,132 +0.005343,132 +0.005423,132 +0.005314,132 +0.005394,132 +0.005388,132 +0.005292,132 +0.005315,132 +0.005354,132 +0.005294,132 +0.005286,132 +0.005360,132 +0.005639,132 +0.005569,132 +0.006009,132 +0.005312,132 +0.005299,132 +0.005374,132 +0.005315,132 +0.005288,132 +0.005413,132 +0.005389,132 +0.005398,132 +0.005396,132 +0.005329,132 +0.005370,132 +0.005364,132 +0.005331,132 +0.005289,132 +0.005350,132 +0.005295,132 +0.005458,132 +0.005831,132 +0.005349,132 +0.005310,132 +0.005362,132 +0.005319,132 +0.005291,132 +0.005315,132 +0.005331,132 +0.005644,132 +0.005542,132 +0.005394,132 +0.005322,132 +0.005315,132 +0.005354,132 +0.005291,132 +0.005286,132 +0.005589,132 +0.005461,132 +0.005522,132 +0.005612,132 +0.005323,132 +0.005350,132 +0.005379,132 +0.005328,132 +0.005358,132 +0.005373,132 +0.005383,132 +0.005312,132 +0.005371,132 +0.005300,132 +0.005297,132 +0.005343,132 +0.005318,132 +0.005354,132 +0.005344,132 +0.005297,132 +0.005727,134 +0.006001,134 +0.005604,134 +0.005544,134 +0.005591,134 +0.005575,134 +0.005543,134 +0.005602,134 +0.005628,134 +0.005538,134 +0.005601,134 +0.005582,134 +0.005604,134 +0.005593,134 +0.005555,134 +0.005542,134 +0.005612,134 +0.005551,134 +0.005696,134 +0.005928,134 +0.005598,134 +0.005536,134 +0.005602,134 +0.005548,134 +0.005540,134 +0.005598,134 +0.005626,134 +0.005551,134 +0.005602,134 +0.005581,134 +0.005547,134 +0.005591,134 +0.005553,134 +0.005532,134 +0.005735,134 +0.006111,134 +0.006117,134 +0.006362,134 +0.006082,134 +0.006000,134 +0.006281,134 +0.006361,134 +0.006285,134 +0.006281,134 +0.005964,134 +0.006317,134 +0.005929,134 +0.006001,134 +0.006070,134 +0.006045,134 +0.006063,134 +0.006067,134 +0.006021,134 +0.006119,134 +0.006383,134 +0.006022,134 +0.006130,134 +0.006054,134 +0.006025,134 +0.006338,134 +0.006325,134 +0.006297,134 +0.006315,134 +0.005940,134 +0.006068,134 +0.006203,134 +0.006115,134 +0.006111,134 +0.006095,134 +0.006063,134 +0.006335,134 +0.006279,134 +0.006346,134 +0.006127,134 +0.006091,134 +0.006185,134 +0.006060,134 +0.005912,134 +0.006329,134 +0.006379,134 +0.006502,134 +0.006095,134 +0.005933,134 +0.006228,134 +0.005815,134 +0.005759,134 +0.005961,134 +0.005614,134 +0.005607,134 +0.005765,134 +0.005981,134 +0.005591,134 +0.005644,134 +0.005614,134 +0.005600,134 +0.005722,134 +0.005538,134 +0.005589,134 +0.005558,134 +0.005544,134 +0.005834,136 +0.005784,136 +0.005778,136 +0.006098,136 +0.006070,136 +0.005775,136 +0.005948,136 +0.006690,136 +0.005806,136 +0.006403,136 +0.006005,136 +0.006340,136 +0.006973,136 +0.006158,136 +0.006490,136 +0.006354,136 +0.005946,136 +0.006281,136 +0.006280,136 +0.006033,136 +0.006958,136 +0.005882,136 +0.006158,136 +0.006321,136 +0.005967,136 +0.006395,136 +0.006145,136 +0.005931,136 +0.006476,136 +0.006284,136 +0.006077,136 +0.006248,136 +0.006011,136 +0.006106,136 +0.006188,136 +0.005986,136 +0.006076,136 +0.006000,136 +0.005937,136 +0.005843,136 +0.005895,136 +0.005877,136 +0.005874,136 +0.005772,136 +0.005883,136 +0.005784,136 +0.005777,136 +0.005908,136 +0.005777,136 +0.005814,136 +0.005822,136 +0.005816,136 +0.005897,136 +0.006165,136 +0.005819,136 +0.005870,136 +0.005808,136 +0.005839,136 +0.005863,136 +0.005844,136 +0.005773,136 +0.005864,136 +0.005783,136 +0.005776,136 +0.005863,136 +0.005780,136 +0.005784,136 +0.005877,136 +0.005782,136 +0.005913,136 +0.006143,136 +0.005873,136 +0.005858,136 +0.005805,136 +0.005825,136 +0.005900,136 +0.005794,136 +0.005851,136 +0.005868,136 +0.005780,136 +0.005806,136 +0.005853,136 +0.005777,136 +0.005772,136 +0.005847,136 +0.005780,136 +0.005777,136 +0.006138,136 +0.005983,136 +0.005805,136 +0.005818,136 +0.005781,136 +0.005883,136 +0.005782,136 +0.005879,136 +0.005866,136 +0.005825,136 +0.005798,136 +0.005845,136 +0.005789,136 +0.006144,138 +0.006206,138 +0.006050,138 +0.006082,138 +0.006384,138 +0.006272,138 +0.006127,138 +0.006058,138 +0.006054,138 +0.006137,138 +0.006182,138 +0.006050,138 +0.006651,138 +0.006438,138 +0.006146,138 +0.006533,138 +0.006085,138 +0.006288,138 +0.006086,138 +0.006083,138 +0.006998,138 +0.006314,138 +0.006406,138 +0.006107,138 +0.006110,138 +0.006393,138 +0.006200,138 +0.006092,138 +0.006353,138 +0.006054,138 +0.006401,138 +0.006207,138 +0.006265,138 +0.006150,138 +0.006073,138 +0.006086,138 +0.006353,138 +0.006384,138 +0.006190,138 +0.006075,138 +0.006109,138 +0.006160,138 +0.006171,138 +0.006062,138 +0.006181,138 +0.006079,138 +0.006195,138 +0.006082,138 +0.006056,138 +0.006119,138 +0.006057,138 +0.006043,138 +0.006311,138 +0.006433,138 +0.006132,138 +0.006261,138 +0.006091,138 +0.006167,138 +0.006054,138 +0.006126,138 +0.006143,138 +0.006052,138 +0.006045,138 +0.006127,138 +0.006047,138 +0.006085,138 +0.006126,138 +0.006050,138 +0.006128,138 +0.006386,138 +0.006225,138 +0.006126,138 +0.006080,138 +0.006061,138 +0.006171,138 +0.006165,138 +0.006168,138 +0.006123,138 +0.006081,138 +0.006128,138 +0.006048,138 +0.006047,138 +0.006126,138 +0.006076,138 +0.006082,138 +0.006268,138 +0.006333,138 +0.006179,138 +0.006075,138 +0.006054,138 +0.006144,138 +0.006149,138 +0.006059,138 +0.006157,138 +0.006082,138 +0.006094,138 +0.006091,138 +0.006047,138 +0.006129,138 +0.006050,138 +0.006337,140 +0.006400,140 +0.006574,140 +0.006676,140 +0.006315,140 +0.006319,140 +0.006404,140 +0.006336,140 +0.006425,140 +0.006379,140 +0.006310,140 +0.006384,140 +0.006309,140 +0.006344,140 +0.006387,140 +0.006314,140 +0.006349,140 +0.006525,140 +0.006626,140 +0.006451,140 +0.006317,140 +0.006307,140 +0.006405,140 +0.006402,140 +0.006386,140 +0.006310,140 +0.006303,140 +0.006385,140 +0.006305,140 +0.006345,140 +0.006347,140 +0.006308,140 +0.006397,140 +0.006469,140 +0.006585,140 +0.006423,140 +0.006313,140 +0.006412,140 +0.006308,140 +0.006395,140 +0.006382,140 +0.006307,140 +0.006343,140 +0.006368,140 +0.006309,140 +0.006386,140 +0.006307,140 +0.006304,140 +0.006382,140 +0.006535,140 +0.006571,140 +0.006345,140 +0.006319,140 +0.006407,140 +0.006317,140 +0.006471,140 +0.006446,140 +0.006339,140 +0.006411,140 +0.006311,140 +0.006303,140 +0.006465,140 +0.006307,140 +0.006342,140 +0.006347,140 +0.006552,140 +0.006571,140 +0.006321,140 +0.006361,140 +0.006429,140 +0.006384,140 +0.006402,140 +0.006311,140 +0.006303,140 +0.006386,140 +0.006306,140 +0.006354,140 +0.006357,140 +0.006309,140 +0.006384,140 +0.006307,140 +0.006558,140 +0.006513,140 +0.006311,140 +0.006354,140 +0.006346,140 +0.006407,140 +0.006385,140 +0.006308,140 +0.006305,140 +0.006381,140 +0.006309,140 +0.006383,140 +0.006312,140 +0.006313,140 +0.006383,140 +0.006480,140 +0.006622,140 +0.006399,140 +0.006320,140 +0.006685,142 +0.006591,142 +0.006702,142 +0.006625,142 +0.006589,142 +0.006665,142 +0.006586,142 +0.006584,142 +0.006666,142 +0.006587,142 +0.006679,142 +0.006590,142 +0.006811,142 +0.006806,142 +0.006596,142 +0.006669,142 +0.006599,142 +0.006663,142 +0.006728,142 +0.006585,142 +0.007004,142 +0.007236,142 +0.007073,142 +0.007474,142 +0.006630,142 +0.006928,142 +0.006732,142 +0.007071,142 +0.006601,142 +0.006587,142 +0.006673,142 +0.006685,142 +0.006709,142 +0.006656,142 +0.006584,142 +0.006663,142 +0.006588,142 +0.006665,142 +0.006650,142 +0.006594,142 +0.006675,142 +0.006671,142 +0.007029,142 +0.006622,142 +0.006624,142 +0.006750,142 +0.007873,142 +0.006733,142 +0.006849,142 +0.006880,142 +0.006839,142 +0.006767,142 +0.006828,142 +0.006757,142 +0.006806,142 +0.006630,142 +0.006778,142 +0.007067,142 +0.006704,142 +0.006746,142 +0.006644,142 +0.006692,142 +0.006747,142 +0.006707,142 +0.006716,142 +0.006660,142 +0.006632,142 +0.006743,142 +0.007173,142 +0.006932,142 +0.006678,142 +0.006988,142 +0.006903,142 +0.006596,142 +0.006914,142 +0.006590,142 +0.007036,142 +0.006830,142 +0.006713,142 +0.006756,142 +0.006656,142 +0.006650,142 +0.006702,142 +0.006673,142 +0.006853,142 +0.006643,142 +0.006941,142 +0.006973,142 +0.006675,142 +0.006820,142 +0.006726,142 +0.006739,142 +0.006694,142 +0.006696,142 +0.006955,142 +0.006669,142 +0.006780,142 +0.006669,142 +0.006774,142 +0.006784,142 +0.006946,144 +0.007180,144 +0.007175,144 +0.006981,144 +0.007011,144 +0.006981,144 +0.007058,144 +0.006979,144 +0.007020,144 +0.006891,144 +0.006974,144 +0.007013,144 +0.007064,144 +0.007010,144 +0.006935,144 +0.007171,144 +0.007264,144 +0.006881,144 +0.007101,144 +0.007048,144 +0.007135,144 +0.006928,144 +0.006969,144 +0.006954,144 +0.006935,144 +0.007018,144 +0.007033,144 +0.007058,144 +0.006911,144 +0.006959,144 +0.007164,144 +0.007034,144 +0.007004,144 +0.006925,144 +0.007048,144 +0.006911,144 +0.006925,144 +0.006982,144 +0.007009,144 +0.006980,144 +0.007044,144 +0.006942,144 +0.007042,144 +0.007044,144 +0.007140,144 +0.007128,144 +0.006992,144 +0.006979,144 +0.006992,144 +0.007026,144 +0.006894,144 +0.006992,144 +0.006908,144 +0.006913,144 +0.007092,144 +0.006903,144 +0.007016,144 +0.006961,144 +0.007095,144 +0.007097,144 +0.007115,144 +0.007031,144 +0.006934,144 +0.007039,144 +0.006954,144 +0.007028,144 +0.006887,144 +0.006999,144 +0.007085,144 +0.006888,144 +0.007021,144 +0.006992,144 +0.007038,144 +0.007296,144 +0.007040,144 +0.007109,144 +0.006944,144 +0.007045,144 +0.006961,144 +0.006940,144 +0.006953,144 +0.006940,144 +0.007063,144 +0.006913,144 +0.007011,144 +0.006932,144 +0.006881,144 +0.007184,144 +0.007128,144 +0.007072,144 +0.006937,144 +0.007065,144 +0.006980,144 +0.006957,144 +0.007054,144 +0.006988,144 +0.007102,144 +0.006926,144 +0.006940,144 +0.007007,144 +0.007310,146 +0.007503,146 +0.007518,146 +0.007639,146 +0.007285,146 +0.007494,146 +0.007291,146 +0.007312,146 +0.007408,146 +0.007292,146 +0.007390,146 +0.007326,146 +0.007384,146 +0.007387,146 +0.007313,146 +0.007532,146 +0.007562,146 +0.007357,146 +0.007306,146 +0.007373,146 +0.007276,146 +0.007394,146 +0.007270,146 +0.007294,146 +0.007332,146 +0.007257,146 +0.007375,146 +0.007292,146 +0.007418,146 +0.007439,146 +0.007513,146 +0.007323,146 +0.007384,146 +0.007416,146 +0.007336,146 +0.007373,146 +0.007230,146 +0.007855,146 +0.007391,146 +0.007525,146 +0.007321,146 +0.007766,146 +0.007705,146 +0.008125,146 +0.007839,146 +0.008005,146 +0.008066,146 +0.007611,146 +0.007603,146 +0.007924,146 +0.007917,146 +0.008697,146 +0.007902,146 +0.008156,146 +0.007777,146 +0.007991,146 +0.007792,146 +0.007690,146 +0.008070,146 +0.007532,146 +0.007425,146 +0.007711,146 +0.007342,146 +0.007745,146 +0.007388,146 +0.007762,146 +0.007380,146 +0.007572,146 +0.008872,146 +0.007442,146 +0.007244,146 +0.007486,146 +0.007478,146 +0.007317,146 +0.007404,146 +0.007255,146 +0.007393,146 +0.007261,146 +0.007373,146 +0.007560,146 +0.007425,146 +0.008690,146 +0.007781,146 +0.007627,146 +0.007529,146 +0.007442,146 +0.007458,146 +0.007404,146 +0.007270,146 +0.007425,146 +0.007276,146 +0.007546,146 +0.007440,146 +0.007283,146 +0.007965,146 +0.008321,146 +0.007419,146 +0.007291,146 +0.007481,146 +0.007402,146 +0.007778,148 +0.007615,148 +0.007758,148 +0.007670,148 +0.007914,148 +0.007726,148 +0.007688,148 +0.008380,148 +0.008756,148 +0.007832,148 +0.007708,148 +0.007808,148 +0.007701,148 +0.007684,148 +0.007601,148 +0.007729,148 +0.007646,148 +0.010019,148 +0.010566,148 +0.008456,148 +0.008756,148 +0.008002,148 +0.007720,148 +0.008182,148 +0.007676,148 +0.007769,148 +0.007617,148 +0.007762,148 +0.007616,148 +0.007896,148 +0.007661,148 +0.008434,148 +0.007774,148 +0.007898,148 +0.007938,148 +0.007794,148 +0.007770,148 +0.007682,148 +0.007740,148 +0.007658,148 +0.007811,148 +0.007639,148 +0.007765,148 +0.008333,148 +0.007766,148 +0.007792,148 +0.008049,148 +0.007656,148 +0.007810,148 +0.007844,148 +0.007735,148 +0.007690,148 +0.007637,148 +0.007724,148 +0.007651,148 +0.007805,148 +0.007719,148 +0.007757,148 +0.007824,148 +0.008019,148 +0.007648,148 +0.007793,148 +0.007652,148 +0.007700,148 +0.007683,148 +0.007605,148 +0.007735,148 +0.007639,148 +0.007750,148 +0.007703,148 +0.007735,148 +0.007821,148 +0.008072,148 +0.007652,148 +0.007801,148 +0.007742,148 +0.007765,148 +0.007639,148 +0.008044,148 +0.008433,148 +0.007989,148 +0.008329,148 +0.008245,148 +0.008221,148 +0.008322,148 +0.008063,148 +0.007857,148 +0.007852,148 +0.007735,148 +0.008152,148 +0.008043,148 +0.008220,148 +0.007921,148 +0.008088,148 +0.008168,148 +0.008056,148 +0.008000,148 +0.008362,148 +0.007909,148 +0.009064,148 +0.008346,150 +0.008128,150 +0.007978,150 +0.007981,150 +0.007997,150 +0.008024,150 +0.008138,150 +0.008056,150 +0.008012,150 +0.008554,150 +0.007982,150 +0.008079,150 +0.008173,150 +0.008247,150 +0.007963,150 +0.007973,150 +0.007973,150 +0.007978,150 +0.007963,150 +0.007982,150 +0.007996,150 +0.008331,150 +0.008317,150 +0.008052,150 +0.008038,150 +0.007984,150 +0.008001,150 +0.008107,150 +0.007991,150 +0.007992,150 +0.008025,150 +0.007979,150 +0.008018,150 +0.008062,150 +0.008459,150 +0.008003,150 +0.008107,150 +0.008063,150 +0.007981,150 +0.007958,150 +0.008063,150 +0.007984,150 +0.008013,150 +0.007974,150 +0.008009,150 +0.008056,150 +0.008926,150 +0.008235,150 +0.008700,150 +0.008811,150 +0.008310,150 +0.008023,150 +0.008036,150 +0.007984,150 +0.008003,150 +0.008007,150 +0.008060,150 +0.007973,150 +0.008231,150 +0.008441,150 +0.008058,150 +0.008011,150 +0.007978,150 +0.008027,150 +0.007937,150 +0.008053,150 +0.007993,150 +0.008003,150 +0.008118,150 +0.008002,150 +0.007976,150 +0.008652,150 +0.008004,150 +0.008149,150 +0.008675,150 +0.008305,150 +0.008023,150 +0.008031,150 +0.007990,150 +0.007980,150 +0.007962,150 +0.008021,150 +0.007980,150 +0.008286,150 +0.008263,150 +0.008098,150 +0.008096,150 +0.008071,150 +0.007968,150 +0.007976,150 +0.007980,150 +0.008035,150 +0.007977,150 +0.008001,150 +0.007974,150 +0.008073,150 +0.008516,150 +0.007981,150 +0.008411,150 +0.008241,150 +0.008650,152 +0.008546,152 +0.008398,152 +0.008301,152 +0.008325,152 +0.008319,152 +0.008371,152 +0.008372,152 +0.008826,152 +0.008335,152 +0.008408,152 +0.008364,152 +0.008326,152 +0.008344,152 +0.008336,152 +0.008302,152 +0.008316,152 +0.008305,152 +0.008350,152 +0.008368,152 +0.008856,152 +0.008355,152 +0.008551,152 +0.008376,152 +0.008291,152 +0.008303,152 +0.008329,152 +0.008321,152 +0.008396,152 +0.008476,152 +0.008333,152 +0.008421,152 +0.009212,152 +0.008451,152 +0.008314,152 +0.008375,152 +0.008240,152 +0.008306,152 +0.008367,152 +0.008485,152 +0.008341,152 +0.008528,152 +0.008268,152 +0.008497,152 +0.008824,152 +0.008429,152 +0.008309,152 +0.008354,152 +0.008250,152 +0.008309,152 +0.008308,152 +0.008352,152 +0.008268,152 +0.008575,152 +0.008266,152 +0.008708,152 +0.008738,152 +0.008758,152 +0.008415,152 +0.008447,152 +0.008256,152 +0.008588,152 +0.008314,152 +0.008504,152 +0.008304,152 +0.008422,152 +0.008275,152 +0.008529,152 +0.008792,152 +0.008401,152 +0.008369,152 +0.008584,152 +0.008314,152 +0.008303,152 +0.008326,152 +0.008382,152 +0.008319,152 +0.008334,152 +0.008260,152 +0.008533,152 +0.008883,152 +0.008571,152 +0.008472,152 +0.008538,152 +0.008479,152 +0.008707,152 +0.008450,152 +0.008625,152 +0.008442,152 +0.008723,152 +0.009167,152 +0.009004,152 +0.009271,152 +0.009005,152 +0.010127,152 +0.010188,152 +0.011063,152 +0.009559,152 +0.009838,152 +0.009961,152 +0.009792,154 +0.009499,154 +0.009653,154 +0.009494,154 +0.009772,154 +0.009646,154 +0.009619,154 +0.009178,154 +0.009863,154 +0.009757,154 +0.009511,154 +0.009677,154 +0.009544,154 +0.009983,154 +0.009500,154 +0.009243,154 +0.009506,154 +0.009279,154 +0.009287,154 +0.009049,154 +0.008765,154 +0.008746,154 +0.008860,154 +0.008931,154 +0.008970,154 +0.008748,154 +0.008955,154 +0.009060,154 +0.009114,154 +0.009070,154 +0.009268,154 +0.009261,154 +0.009288,154 +0.009213,154 +0.009292,154 +0.009037,154 +0.009542,154 +0.009994,154 +0.009146,154 +0.009390,154 +0.009094,154 +0.008783,154 +0.008926,154 +0.008703,154 +0.008679,154 +0.009198,154 +0.008700,154 +0.008618,154 +0.008616,154 +0.008538,154 +0.008603,154 +0.008568,154 +0.008587,154 +0.008565,154 +0.008594,154 +0.008616,154 +0.008779,154 +0.008935,154 +0.008574,154 +0.008673,154 +0.008572,154 +0.008687,154 +0.008556,154 +0.008651,154 +0.008531,154 +0.008601,154 +0.008538,154 +0.008599,154 +0.009100,154 +0.008690,154 +0.008595,154 +0.008651,154 +0.008587,154 +0.008598,154 +0.008538,154 +0.008612,154 +0.008553,154 +0.008637,154 +0.008539,154 +0.008770,154 +0.010257,154 +0.008723,154 +0.008869,154 +0.008579,154 +0.008621,154 +0.008552,154 +0.008607,154 +0.008537,154 +0.008603,154 +0.008534,154 +0.008603,154 +0.008690,154 +0.009026,154 +0.008675,154 +0.009593,154 +0.008742,154 +0.008727,154 +0.008825,154 +0.008665,154 +0.008692,154 +0.008984,156 +0.008931,156 +0.011467,156 +0.011223,156 +0.009128,156 +0.008904,156 +0.008958,156 +0.008882,156 +0.008937,156 +0.009507,156 +0.010447,156 +0.009244,156 +0.009419,156 +0.009403,156 +0.009228,156 +0.009477,156 +0.009392,156 +0.009371,156 +0.009207,156 +0.009178,156 +0.009348,156 +0.009250,156 +0.009315,156 +0.009246,156 +0.009537,156 +0.009041,156 +0.009492,156 +0.009271,156 +0.009272,156 +0.009327,156 +0.009955,156 +0.011658,156 +0.009964,156 +0.011695,156 +0.012714,156 +0.011539,156 +0.010104,156 +0.011475,156 +0.009902,156 +0.009919,156 +0.011891,156 +0.011584,156 +0.010316,156 +0.010424,156 +0.009976,156 +0.011155,156 +0.009782,156 +0.010686,156 +0.013995,156 +0.011084,156 +0.009411,156 +0.010324,156 +0.015872,156 +0.011228,156 +0.009864,156 +0.010520,156 +0.009239,156 +0.010670,156 +0.009977,156 +0.009525,156 +0.009844,156 +0.009151,156 +0.009747,156 +0.009790,156 +0.009815,156 +0.010218,156 +0.010520,156 +0.012190,156 +0.015521,156 +0.009509,156 +0.009140,156 +0.012884,156 +0.009942,156 +0.009681,156 +0.009923,156 +0.009139,156 +0.009531,156 +0.008975,156 +0.009821,156 +0.009291,156 +0.010210,156 +0.009505,156 +0.010075,156 +0.009369,156 +0.008945,156 +0.010025,156 +0.009424,156 +0.009071,156 +0.009673,156 +0.009162,156 +0.009764,156 +0.009041,156 +0.011949,156 +0.009617,156 +0.009074,156 +0.009598,156 +0.009052,156 +0.009570,156 +0.009098,156 +0.010041,156 +0.009708,158 +0.010064,158 +0.009928,158 +0.009806,158 +0.010372,158 +0.009740,158 +0.010422,158 +0.009990,158 +0.012470,158 +0.011446,158 +0.011016,158 +0.013338,158 +0.014195,158 +0.011668,158 +0.011490,158 +0.012130,158 +0.019081,158 +0.015487,158 +0.009681,158 +0.012794,158 +0.010850,158 +0.011093,158 +0.010817,158 +0.011067,158 +0.010525,158 +0.012347,158 +0.013523,158 +0.015113,158 +0.011413,158 +0.011253,158 +0.010759,158 +0.015331,158 +0.016442,158 +0.015369,158 +0.018370,158 +0.018265,158 +0.011872,158 +0.009907,158 +0.011238,158 +0.010150,158 +0.010105,158 +0.010182,158 +0.010156,158 +0.010646,158 +0.010022,158 +0.011163,158 +0.011613,158 +0.012204,158 +0.010184,158 +0.010941,158 +0.009729,158 +0.010241,158 +0.011784,158 +0.012669,158 +0.010926,158 +0.010744,158 +0.009868,158 +0.010450,158 +0.010083,158 +0.009632,158 +0.011187,158 +0.010271,158 +0.010291,158 +0.010722,158 +0.010145,158 +0.010388,158 +0.010175,158 +0.009634,158 +0.010690,158 +0.010194,158 +0.010933,158 +0.010413,158 +0.010111,158 +0.009954,158 +0.009935,158 +0.009513,158 +0.010208,158 +0.009461,158 +0.010033,158 +0.009768,158 +0.009675,158 +0.009992,158 +0.015378,158 +0.009805,158 +0.009962,158 +0.009615,158 +0.009814,158 +0.009782,158 +0.009562,158 +0.009641,158 +0.009396,158 +0.009651,158 +0.009703,158 +0.009545,158 +0.009404,158 +0.009308,158 +0.009399,158 +0.009599,158 +0.009542,158 +0.009624,158 +0.009764,160 +0.009766,160 +0.010419,160 +0.009815,160 +0.009659,160 +0.009766,160 +0.009896,160 +0.009800,160 +0.009621,160 +0.009634,160 +0.009769,160 +0.009709,160 +0.010182,160 +0.010103,160 +0.009729,160 +0.016327,160 +0.018110,160 +0.009952,160 +0.009734,160 +0.009748,160 +0.009848,160 +0.010281,160 +0.009908,160 +0.009824,160 +0.009719,160 +0.009832,160 +0.009633,160 +0.009759,160 +0.009556,160 +0.009787,160 +0.009659,160 +0.010176,160 +0.010140,160 +0.009638,160 +0.010102,160 +0.009776,160 +0.009687,160 +0.009705,160 +0.009597,160 +0.009634,160 +0.009557,160 +0.009941,160 +0.015949,160 +0.018097,160 +0.018372,160 +0.017274,160 +0.017383,160 +0.017845,160 +0.017787,160 +0.017123,160 +0.009852,160 +0.009752,160 +0.009764,160 +0.009808,160 +0.009696,160 +0.009943,160 +0.010198,160 +0.009885,160 +0.009826,160 +0.009636,160 +0.009895,160 +0.009603,160 +0.012460,160 +0.009786,160 +0.009703,160 +0.009974,160 +0.010484,160 +0.009772,160 +0.009750,160 +0.009698,160 +0.009840,160 +0.009727,160 +0.009810,160 +0.009745,160 +0.009768,160 +0.009757,160 +0.012811,160 +0.009725,160 +0.009802,160 +0.009732,160 +0.009781,160 +0.009819,160 +0.009776,160 +0.009768,160 +0.009759,160 +0.009821,160 +0.011373,160 +0.009787,160 +0.009738,160 +0.009744,160 +0.009732,160 +0.009770,160 +0.009758,160 +0.009691,160 +0.009695,160 +0.009737,160 +0.011340,160 +0.009818,160 +0.009742,160 +0.009665,160 +0.010148,162 +0.010251,162 +0.010111,162 +0.010181,162 +0.010023,162 +0.010160,162 +0.011832,162 +0.010147,162 +0.010344,162 +0.009981,162 +0.010106,162 +0.010133,162 +0.010074,162 +0.010133,162 +0.010118,162 +0.010709,162 +0.011354,162 +0.010097,162 +0.010123,162 +0.010064,162 +0.010051,162 +0.010191,162 +0.009993,162 +0.010145,162 +0.010079,162 +0.011254,162 +0.010817,162 +0.010116,162 +0.010152,162 +0.010225,162 +0.010111,162 +0.010227,162 +0.010041,162 +0.010084,162 +0.010101,162 +0.011673,162 +0.010321,162 +0.010229,162 +0.010453,162 +0.010441,162 +0.010382,162 +0.010084,162 +0.010164,162 +0.010015,162 +0.010080,162 +0.011790,162 +0.010053,162 +0.010139,162 +0.010015,162 +0.010101,162 +0.010225,162 +0.009966,162 +0.010188,162 +0.010130,162 +0.010811,162 +0.011149,162 +0.010074,162 +0.010151,162 +0.010192,162 +0.009983,162 +0.010172,162 +0.010086,162 +0.010313,162 +0.010065,162 +0.011288,162 +0.010595,162 +0.010108,162 +0.010117,162 +0.010081,162 +0.010025,162 +0.010051,162 +0.010062,162 +0.009960,162 +0.010127,162 +0.012434,162 +0.010552,162 +0.010108,162 +0.010048,162 +0.010067,162 +0.010161,162 +0.010022,162 +0.010066,162 +0.009953,162 +0.010138,162 +0.011683,162 +0.010006,162 +0.010122,162 +0.010041,162 +0.010038,162 +0.010052,162 +0.009980,162 +0.010051,162 +0.010021,162 +0.010381,162 +0.011370,162 +0.010045,162 +0.010075,162 +0.010103,162 +0.010161,162 +0.010138,162 +0.010413,164 +0.010478,164 +0.010468,164 +0.011700,164 +0.011035,164 +0.010514,164 +0.010441,164 +0.010456,164 +0.010483,164 +0.010397,164 +0.010585,164 +0.010424,164 +0.010495,164 +0.012097,164 +0.010512,164 +0.010464,164 +0.010491,164 +0.010400,164 +0.010487,164 +0.010544,164 +0.010423,164 +0.010437,164 +0.012053,164 +0.010544,164 +0.010522,164 +0.010433,164 +0.010460,164 +0.010495,164 +0.010396,164 +0.010457,164 +0.010480,164 +0.010995,164 +0.011689,164 +0.010565,164 +0.010388,164 +0.010465,164 +0.010401,164 +0.010423,164 +0.010470,164 +0.010378,164 +0.010484,164 +0.012143,164 +0.010831,164 +0.010480,164 +0.010462,164 +0.010407,164 +0.010435,164 +0.010439,164 +0.010430,164 +0.010510,164 +0.011330,164 +0.011362,164 +0.010723,164 +0.010432,164 +0.010464,164 +0.010741,164 +0.010533,164 +0.010585,164 +0.010826,164 +0.010397,164 +0.011904,164 +0.010379,164 +0.010397,164 +0.010446,164 +0.010295,164 +0.010390,164 +0.010363,164 +0.010311,164 +0.010359,164 +0.012203,164 +0.011248,164 +0.010458,164 +0.010732,164 +0.010783,164 +0.010587,164 +0.010392,164 +0.010336,164 +0.010346,164 +0.010453,164 +0.011919,164 +0.010390,164 +0.010326,164 +0.010369,164 +0.010723,164 +0.010331,164 +0.010576,164 +0.010334,164 +0.010446,164 +0.011779,164 +0.010543,164 +0.010437,164 +0.010399,164 +0.010404,164 +0.010340,164 +0.010328,164 +0.010594,164 +0.010360,164 +0.010354,164 +0.012024,164 +0.010405,164 +0.010744,166 +0.010745,166 +0.010723,166 +0.010712,166 +0.010866,166 +0.010727,166 +0.010759,166 +0.012288,166 +0.010952,166 +0.010841,166 +0.010858,166 +0.010729,166 +0.010668,166 +0.010714,166 +0.010732,166 +0.010707,166 +0.012446,166 +0.010702,166 +0.010806,166 +0.010861,166 +0.010752,166 +0.010744,166 +0.010715,166 +0.010670,166 +0.010739,166 +0.011991,166 +0.010997,166 +0.010792,166 +0.010768,166 +0.010704,166 +0.010760,166 +0.010717,166 +0.010701,166 +0.010783,166 +0.011691,166 +0.011293,166 +0.010739,166 +0.010756,166 +0.010708,166 +0.010774,166 +0.010693,166 +0.010799,166 +0.010777,166 +0.010820,166 +0.012218,166 +0.010780,166 +0.010711,166 +0.010703,166 +0.010750,166 +0.010693,166 +0.012657,166 +0.010827,166 +0.011021,166 +0.012073,166 +0.010826,166 +0.010750,166 +0.010721,166 +0.010735,166 +0.010689,166 +0.010798,166 +0.010740,166 +0.010746,166 +0.013313,166 +0.010825,166 +0.010754,166 +0.010796,166 +0.010818,166 +0.010668,166 +0.010738,166 +0.010805,166 +0.010845,166 +0.012153,166 +0.010795,166 +0.010743,166 +0.010758,166 +0.010742,166 +0.010670,166 +0.010774,166 +0.010884,166 +0.010697,166 +0.012186,166 +0.010813,166 +0.010782,166 +0.010716,166 +0.010772,166 +0.010932,166 +0.010732,166 +0.010799,166 +0.010905,166 +0.012334,166 +0.011287,166 +0.010728,166 +0.010781,166 +0.010719,166 +0.010703,166 +0.010891,166 +0.010675,166 +0.010746,166 +0.011915,166 +0.011197,166 +0.011188,168 +0.011176,168 +0.011134,168 +0.011091,168 +0.011122,168 +0.011091,168 +0.011333,168 +0.012676,168 +0.011323,168 +0.011132,168 +0.011158,168 +0.011182,168 +0.011040,168 +0.011103,168 +0.011119,168 +0.011032,168 +0.012494,168 +0.011247,168 +0.011090,168 +0.011127,168 +0.011116,168 +0.011033,168 +0.011132,168 +0.011111,168 +0.011323,168 +0.012560,168 +0.011198,168 +0.011052,168 +0.011112,168 +0.011170,168 +0.011056,168 +0.011182,168 +0.011106,168 +0.011096,168 +0.012608,168 +0.011202,168 +0.011168,168 +0.011096,168 +0.011665,168 +0.011273,168 +0.011239,168 +0.011162,168 +0.011810,168 +0.013018,168 +0.011296,168 +0.013346,168 +0.011301,168 +0.011328,168 +0.011371,168 +0.011118,168 +0.011642,168 +0.013363,168 +0.012294,168 +0.011239,168 +0.011365,168 +0.011286,168 +0.011206,168 +0.011182,168 +0.011193,168 +0.011358,168 +0.012980,168 +0.011323,168 +0.011290,168 +0.011096,168 +0.011324,168 +0.011231,168 +0.011120,168 +0.011345,168 +0.011328,168 +0.013012,168 +0.011295,168 +0.011217,168 +0.011203,168 +0.011287,168 +0.011296,168 +0.011253,168 +0.011104,168 +0.012233,168 +0.012366,168 +0.011131,168 +0.011286,168 +0.011339,168 +0.011209,168 +0.011334,168 +0.011235,168 +0.011186,168 +0.012163,168 +0.011562,168 +0.011245,168 +0.011236,168 +0.011327,168 +0.011180,168 +0.011227,168 +0.011246,168 +0.011389,168 +0.011467,168 +0.011451,168 +0.011252,168 +0.011184,168 +0.011440,168 +0.011803,170 +0.011633,170 +0.011754,170 +0.011733,170 +0.012118,170 +0.011671,170 +0.011704,170 +0.011708,170 +0.011543,170 +0.011757,170 +0.011879,170 +0.012707,170 +0.012234,170 +0.012154,170 +0.012029,170 +0.011819,170 +0.011794,170 +0.011707,170 +0.011739,170 +0.011616,170 +0.011782,170 +0.011894,170 +0.011620,170 +0.011676,170 +0.011737,170 +0.011665,170 +0.013483,170 +0.011864,170 +0.011862,170 +0.011783,170 +0.011887,170 +0.011690,170 +0.011598,170 +0.011614,170 +0.011786,170 +0.011668,170 +0.011574,170 +0.011753,170 +0.012154,170 +0.011741,170 +0.011661,170 +0.011731,170 +0.011587,170 +0.011728,170 +0.011885,170 +0.012014,170 +0.011749,170 +0.012165,170 +0.011731,170 +0.011691,170 +0.011632,170 +0.011787,170 +0.011654,170 +0.011534,170 +0.011671,170 +0.012229,170 +0.011720,170 +0.011710,170 +0.011681,170 +0.011628,170 +0.011850,170 +0.012076,170 +0.012006,170 +0.011998,170 +0.012166,170 +0.011650,170 +0.011619,170 +0.013339,170 +0.011921,170 +0.011944,170 +0.011613,170 +0.012039,170 +0.012333,170 +0.011874,170 +0.011528,170 +0.011718,170 +0.012276,170 +0.011680,170 +0.011720,170 +0.011750,170 +0.011871,170 +0.011891,170 +0.011765,170 +0.011748,170 +0.012251,170 +0.012336,170 +0.011824,170 +0.011639,170 +0.011552,170 +0.012302,170 +0.011869,170 +0.011699,170 +0.011653,170 +0.011691,170 +0.011702,170 +0.011613,170 +0.011693,170 +0.011867,170 +0.011884,170 +0.011810,170 +0.012074,172 +0.011974,172 +0.012033,172 +0.012139,172 +0.012091,172 +0.012195,172 +0.012515,172 +0.012144,172 +0.012095,172 +0.011989,172 +0.012052,172 +0.012197,172 +0.011944,172 +0.012017,172 +0.012634,172 +0.012185,172 +0.012032,172 +0.011984,172 +0.011944,172 +0.011948,172 +0.012013,172 +0.012059,172 +0.012414,172 +0.012556,172 +0.012083,172 +0.012123,172 +0.012035,172 +0.011958,172 +0.012100,172 +0.012146,172 +0.012187,172 +0.012415,172 +0.012021,172 +0.012361,172 +0.012271,172 +0.012159,172 +0.012322,172 +0.012592,172 +0.012602,172 +0.017974,172 +0.012685,172 +0.012590,172 +0.012584,172 +0.013232,172 +0.012474,172 +0.013220,172 +0.012502,172 +0.013119,172 +0.014392,172 +0.013448,172 +0.013295,172 +0.012219,172 +0.013097,172 +0.012303,172 +0.012687,172 +0.012114,172 +0.012033,172 +0.012130,172 +0.012114,172 +0.012187,172 +0.012298,172 +0.012147,172 +0.013105,172 +0.012013,172 +0.012057,172 +0.011979,172 +0.011942,172 +0.011856,172 +0.011861,172 +0.011924,172 +0.012072,172 +0.012259,172 +0.011844,172 +0.011881,172 +0.011843,172 +0.011926,172 +0.011862,172 +0.012586,172 +0.012893,172 +0.012599,172 +0.012343,172 +0.012339,172 +0.012494,172 +0.013816,172 +0.013387,172 +0.012774,172 +0.012310,172 +0.012798,172 +0.012672,172 +0.012516,172 +0.013154,172 +0.013189,172 +0.013596,172 +0.013207,172 +0.012189,172 +0.012599,172 +0.012129,172 +0.011997,172 +0.011920,172 +0.011909,172 +0.012384,174 +0.012414,174 +0.012323,174 +0.012920,174 +0.012416,174 +0.012512,174 +0.012308,174 +0.012340,174 +0.012355,174 +0.012403,174 +0.012300,174 +0.012744,174 +0.012276,174 +0.012355,174 +0.012279,174 +0.012386,174 +0.012333,174 +0.012360,174 +0.012270,174 +0.012730,174 +0.012328,174 +0.012354,174 +0.012453,174 +0.012383,174 +0.012623,174 +0.012689,174 +0.012315,174 +0.012723,174 +0.012302,174 +0.012564,174 +0.012282,174 +0.012302,174 +0.012277,174 +0.012412,174 +0.012272,174 +0.012768,174 +0.012377,174 +0.012371,174 +0.012361,174 +0.013034,174 +0.012987,174 +0.012628,174 +0.013998,174 +0.013698,174 +0.014008,174 +0.013889,174 +0.013980,174 +0.013791,174 +0.013426,174 +0.013223,174 +0.013151,174 +0.013028,174 +0.012541,174 +0.012331,174 +0.012293,174 +0.012333,174 +0.012407,174 +0.012313,174 +0.012564,174 +0.012576,174 +0.012471,174 +0.012335,174 +0.012304,174 +0.012388,174 +0.012524,174 +0.012404,174 +0.012559,174 +0.012668,174 +0.012388,174 +0.012343,174 +0.012292,174 +0.012377,174 +0.012352,174 +0.012424,174 +0.012519,174 +0.012774,174 +0.012341,174 +0.012310,174 +0.012281,174 +0.012314,174 +0.012306,174 +0.012409,174 +0.012421,174 +0.012911,174 +0.012366,174 +0.012398,174 +0.012284,174 +0.012317,174 +0.012333,174 +0.012430,174 +0.012790,174 +0.012808,174 +0.012425,174 +0.012461,174 +0.012323,174 +0.012311,174 +0.012329,174 +0.012341,174 +0.012318,174 +0.012892,174 +0.012960,176 +0.012683,176 +0.012958,176 +0.012756,176 +0.012903,176 +0.015272,176 +0.013608,176 +0.013179,176 +0.012783,176 +0.012762,176 +0.012756,176 +0.013141,176 +0.012996,176 +0.012790,176 +0.013298,176 +0.012712,176 +0.012703,176 +0.012714,176 +0.012706,176 +0.012737,176 +0.012772,176 +0.012755,176 +0.013546,176 +0.013366,176 +0.013516,176 +0.012994,176 +0.012751,176 +0.013049,176 +0.013413,176 +0.012935,176 +0.013297,176 +0.012956,176 +0.012993,176 +0.012823,176 +0.012865,176 +0.012933,176 +0.012857,176 +0.013186,176 +0.013147,176 +0.012913,176 +0.012906,176 +0.012921,176 +0.013084,176 +0.012999,176 +0.012901,176 +0.013274,176 +0.013093,176 +0.013013,176 +0.013214,176 +0.013072,176 +0.013100,176 +0.012980,176 +0.012936,176 +0.013306,176 +0.012931,176 +0.012915,176 +0.012792,176 +0.012953,176 +0.013011,176 +0.012916,176 +0.013064,176 +0.013292,176 +0.013001,176 +0.012893,176 +0.013025,176 +0.015394,176 +0.012886,176 +0.013035,176 +0.013505,176 +0.012926,176 +0.012864,176 +0.012822,176 +0.012955,176 +0.013117,176 +0.013025,176 +0.012799,176 +0.013449,176 +0.012980,176 +0.012970,176 +0.013047,176 +0.013065,176 +0.014701,176 +0.014472,176 +0.013191,176 +0.012983,176 +0.012964,176 +0.012861,176 +0.012866,176 +0.012829,176 +0.012984,176 +0.012747,176 +0.013213,176 +0.012899,176 +0.013713,176 +0.024383,176 +0.023947,176 +0.023787,176 +0.024533,176 +0.020622,176 +0.012850,176 +0.013423,178 +0.013214,178 +0.013369,178 +0.013415,178 +0.013215,178 +0.013210,178 +0.013217,178 +0.013262,178 +0.013397,178 +0.013134,178 +0.013471,178 +0.013426,178 +0.013207,178 +0.013239,178 +0.013152,178 +0.013520,178 +0.013238,178 +0.013340,178 +0.013517,178 +0.013335,178 +0.013132,178 +0.013216,178 +0.013238,178 +0.013494,178 +0.013076,178 +0.013547,178 +0.013249,178 +0.013361,178 +0.013213,178 +0.013097,178 +0.013363,178 +0.013336,178 +0.013284,178 +0.013659,178 +0.013276,178 +0.013364,178 +0.013297,178 +0.013291,178 +0.013249,178 +0.013256,178 +0.013445,178 +0.013561,178 +0.013437,178 +0.013181,178 +0.013125,178 +0.013279,178 +0.013336,178 +0.013215,178 +0.014821,178 +0.013188,178 +0.013328,178 +0.013293,178 +0.013606,178 +0.013379,178 +0.013260,178 +0.014431,178 +0.013638,178 +0.013395,178 +0.013212,178 +0.013191,178 +0.013361,178 +0.013519,178 +0.013701,178 +0.014332,178 +0.013212,178 +0.013294,178 +0.013222,178 +0.013290,178 +0.013266,178 +0.013418,178 +0.014835,178 +0.013408,178 +0.013361,178 +0.013201,178 +0.013219,178 +0.013530,178 +0.013478,178 +0.014482,178 +0.014100,178 +0.013266,178 +0.013233,178 +0.013167,178 +0.013363,178 +0.013241,178 +0.013262,178 +0.014768,178 +0.013224,178 +0.013219,178 +0.013202,178 +0.013827,178 +0.013347,178 +0.013195,178 +0.014322,178 +0.013850,178 +0.013280,178 +0.013235,178 +0.013249,178 +0.013219,178 +0.013212,178 +0.013230,178 +0.015233,180 +0.013626,180 +0.013766,180 +0.013514,180 +0.013690,180 +0.013639,180 +0.013634,180 +0.016223,180 +0.014035,180 +0.013553,180 +0.013603,180 +0.013822,180 +0.013851,180 +0.013732,180 +0.015221,180 +0.013563,180 +0.013429,180 +0.013443,180 +0.013436,180 +0.013512,180 +0.013390,180 +0.014203,180 +0.014348,180 +0.013512,180 +0.013476,180 +0.013443,180 +0.013712,180 +0.013452,180 +0.013452,180 +0.015234,180 +0.013533,180 +0.013496,180 +0.013369,180 +0.013502,180 +0.013443,180 +0.013460,180 +0.014897,180 +0.013679,180 +0.013442,180 +0.013460,180 +0.013442,180 +0.013522,180 +0.013461,180 +0.013933,180 +0.014692,180 +0.013510,180 +0.013534,180 +0.013457,180 +0.013455,180 +0.013410,180 +0.013439,180 +0.015126,180 +0.013476,180 +0.013476,180 +0.013371,180 +0.013891,180 +0.013455,180 +0.013458,180 +0.014949,180 +0.013609,180 +0.013448,180 +0.013444,180 +0.013600,180 +0.013514,180 +0.013525,180 +0.013936,180 +0.014586,180 +0.013585,180 +0.013459,180 +0.013418,180 +0.013584,180 +0.013392,180 +0.013459,180 +0.015049,180 +0.013426,180 +0.013406,180 +0.013403,180 +0.013465,180 +0.013494,180 +0.013467,180 +0.015478,180 +0.014293,180 +0.013425,180 +0.013365,180 +0.013495,180 +0.013476,180 +0.013442,180 +0.013944,180 +0.014480,180 +0.013447,180 +0.013480,180 +0.013425,180 +0.013722,180 +0.013414,180 +0.013474,180 +0.015276,180 +0.013472,180 +0.013435,180 +0.013424,180 +0.013643,180 +0.013902,182 +0.013907,182 +0.015443,182 +0.014029,182 +0.013959,182 +0.013974,182 +0.014015,182 +0.013872,182 +0.013870,182 +0.015263,182 +0.014036,182 +0.013872,182 +0.013946,182 +0.013903,182 +0.014017,182 +0.013900,182 +0.015056,182 +0.017820,182 +0.014901,182 +0.013865,182 +0.013997,182 +0.013866,182 +0.014549,182 +0.019217,182 +0.013981,182 +0.013916,182 +0.013907,182 +0.013986,182 +0.013927,182 +0.013883,182 +0.019150,182 +0.013907,182 +0.013926,182 +0.013915,182 +0.013980,182 +0.013910,182 +0.013977,182 +0.020017,182 +0.014346,182 +0.013972,182 +0.013997,182 +0.013899,182 +0.013899,182 +0.014963,182 +0.018291,182 +0.013958,182 +0.013986,182 +0.013974,182 +0.013918,182 +0.013935,182 +0.016002,182 +0.017890,182 +0.014267,182 +0.014013,182 +0.014023,182 +0.013904,182 +0.013822,182 +0.019177,182 +0.014132,182 +0.013980,182 +0.014011,182 +0.014188,182 +0.013923,182 +0.013921,182 +0.020269,182 +0.014097,182 +0.014227,182 +0.014711,182 +0.014058,182 +0.013927,182 +0.014158,182 +0.019033,182 +0.013974,182 +0.013980,182 +0.013983,182 +0.013825,182 +0.013902,182 +0.016214,182 +0.017030,182 +0.013948,182 +0.013924,182 +0.014053,182 +0.013955,182 +0.013969,182 +0.018330,182 +0.014625,182 +0.013950,182 +0.013899,182 +0.013992,182 +0.013903,182 +0.013896,182 +0.019139,182 +0.014123,182 +0.013892,182 +0.014028,182 +0.013953,182 +0.013911,182 +0.013905,182 +0.019032,182 +0.013962,182 +0.014479,184 +0.014455,184 +0.014369,184 +0.014412,184 +0.014929,184 +0.019210,184 +0.014443,184 +0.014334,184 +0.014386,184 +0.014356,184 +0.014315,184 +0.019437,184 +0.014461,184 +0.014292,184 +0.014367,184 +0.014483,184 +0.014369,184 +0.014329,184 +0.020059,184 +0.014497,184 +0.014341,184 +0.014386,184 +0.014289,184 +0.014306,184 +0.016362,184 +0.017521,184 +0.014389,184 +0.014344,184 +0.014387,184 +0.014368,184 +0.014352,184 +0.019472,184 +0.014474,184 +0.014347,184 +0.015075,184 +0.014360,184 +0.014348,184 +0.014399,184 +0.019423,184 +0.014507,184 +0.014438,184 +0.014416,184 +0.014332,184 +0.015185,184 +0.019410,184 +0.016408,184 +0.015864,184 +0.015536,184 +0.014972,184 +0.015582,184 +0.027270,184 +0.018104,184 +0.015220,184 +0.016124,184 +0.014965,184 +0.014821,184 +0.014793,184 +0.014504,184 +0.014466,184 +0.014458,184 +0.014914,184 +0.014509,184 +0.014484,184 +0.014877,184 +0.014463,184 +0.014389,184 +0.014486,184 +0.014340,184 +0.014570,184 +0.014492,184 +0.014879,184 +0.014335,184 +0.014371,184 +0.014412,184 +0.014258,184 +0.015139,184 +0.014796,184 +0.015086,184 +0.015209,184 +0.014670,184 +0.014514,184 +0.014402,184 +0.014345,184 +0.014389,184 +0.015136,184 +0.014319,184 +0.014330,184 +0.014358,184 +0.014303,184 +0.014298,184 +0.014372,184 +0.014798,184 +0.014356,184 +0.014343,184 +0.014388,184 +0.014325,184 +0.014326,184 +0.014415,184 +0.014743,184 +0.014389,184 +0.015259,186 +0.015109,186 +0.014963,186 +0.015024,186 +0.015551,186 +0.015172,186 +0.015104,186 +0.015000,186 +0.014967,186 +0.014994,186 +0.015068,186 +0.025382,186 +0.029037,186 +0.015744,186 +0.022137,186 +0.015311,186 +0.015295,186 +0.014945,186 +0.014972,186 +0.015185,186 +0.015195,186 +0.014981,186 +0.015459,186 +0.014972,186 +0.014958,186 +0.015054,186 +0.014974,186 +0.014953,186 +0.014940,186 +0.015495,186 +0.015012,186 +0.015054,186 +0.015140,186 +0.015008,186 +0.015085,186 +0.015402,186 +0.015411,186 +0.015059,186 +0.015014,186 +0.015397,186 +0.015012,186 +0.014989,186 +0.015490,186 +0.015117,186 +0.015029,186 +0.015152,186 +0.015804,186 +0.014965,186 +0.015016,186 +0.015574,186 +0.014951,186 +0.014957,186 +0.015062,186 +0.015000,186 +0.015073,186 +0.015221,186 +0.015300,186 +0.014961,186 +0.015027,186 +0.014961,186 +0.014952,186 +0.014975,186 +0.015491,186 +0.015028,186 +0.015032,186 +0.015069,186 +0.014967,186 +0.014969,186 +0.015113,186 +0.015516,186 +0.014974,186 +0.014906,186 +0.015022,186 +0.014984,186 +0.014992,186 +0.015205,186 +0.015358,186 +0.014973,186 +0.015069,186 +0.015046,186 +0.014976,186 +0.015026,186 +0.015461,186 +0.014995,186 +0.014958,186 +0.015029,186 +0.015035,186 +0.014989,186 +0.014946,186 +0.015537,186 +0.018234,186 +0.016711,186 +0.015068,186 +0.015017,186 +0.015000,186 +0.015504,186 +0.014981,186 +0.015016,186 +0.015108,186 +0.015070,186 +0.015702,188 +0.015573,188 +0.016011,188 +0.015475,188 +0.015665,188 +0.015472,188 +0.015559,188 +0.015475,188 +0.015965,188 +0.015482,188 +0.015496,188 +0.015608,188 +0.015600,188 +0.015478,188 +0.015600,188 +0.016119,188 +0.015570,188 +0.015585,188 +0.015472,188 +0.015473,188 +0.015478,188 +0.016057,188 +0.015521,188 +0.015449,188 +0.015591,188 +0.015474,188 +0.015849,188 +0.021293,188 +0.029933,188 +0.029273,188 +0.029209,188 +0.029517,188 +0.029054,188 +0.029225,188 +0.029937,188 +0.029164,188 +0.028743,188 +0.028933,188 +0.029663,188 +0.028790,188 +0.029312,188 +0.029178,188 +0.029934,188 +0.029684,188 +0.029071,188 +0.029666,188 +0.029133,188 +0.029237,188 +0.029800,188 +0.029108,188 +0.029052,188 +0.029270,188 +0.029256,188 +0.029173,188 +0.029406,188 +0.029462,188 +0.029302,188 +0.029582,188 +0.032099,188 +0.029381,188 +0.029352,188 +0.030201,188 +0.025227,188 +0.017845,188 +0.016191,188 +0.016249,188 +0.016641,188 +0.017521,188 +0.016085,188 +0.016326,188 +0.016309,188 +0.016209,188 +0.016283,188 +0.021234,188 +0.015879,188 +0.015915,188 +0.015630,188 +0.015712,188 +0.015935,188 +0.020878,188 +0.016506,188 +0.015879,188 +0.015805,188 +0.015917,188 +0.015749,188 +0.020783,188 +0.015975,188 +0.015752,188 +0.015739,188 +0.015889,188 +0.015739,188 +0.020795,188 +0.015937,188 +0.015899,188 +0.015682,188 +0.017630,188 +0.015786,188 +0.016189,188 +0.015989,188 +0.015832,188 +0.016330,190 +0.016433,190 +0.016326,190 +0.016356,190 +0.016731,190 +0.016684,190 +0.016410,190 +0.016675,190 +0.016609,190 +0.016545,190 +0.016663,190 +0.016281,190 +0.016178,190 +0.016171,190 +0.016348,190 +0.016273,190 +0.016541,190 +0.016366,190 +0.016309,190 +0.016257,190 +0.016565,190 +0.016389,190 +0.016721,190 +0.016352,190 +0.016311,190 +0.016366,190 +0.016356,190 +0.016395,190 +0.016891,190 +0.016458,190 +0.016458,190 +0.016651,190 +0.016730,190 +0.016754,190 +0.017093,190 +0.016874,190 +0.016853,190 +0.017064,190 +0.017028,190 +0.023721,190 +0.018242,190 +0.017103,190 +0.017085,190 +0.016747,190 +0.016366,190 +0.016701,190 +0.016568,190 +0.016367,190 +0.016247,190 +0.016355,190 +0.016363,190 +0.016749,190 +0.016560,190 +0.016463,190 +0.016335,190 +0.016366,190 +0.016223,190 +0.016496,190 +0.016825,190 +0.016327,190 +0.016257,190 +0.016236,190 +0.016298,190 +0.016230,190 +0.016841,190 +0.016357,190 +0.016425,190 +0.016208,190 +0.016314,190 +0.016231,190 +0.016985,190 +0.016357,190 +0.016317,190 +0.016216,190 +0.016243,190 +0.016221,190 +0.016878,190 +0.016325,190 +0.016272,190 +0.016287,190 +0.016271,190 +0.016204,190 +0.017171,190 +0.016317,190 +0.016377,190 +0.016395,190 +0.016442,190 +0.016784,190 +0.017779,190 +0.016077,190 +0.016126,190 +0.016031,190 +0.015989,190 +0.016613,190 +0.016412,190 +0.016562,190 +0.016252,190 +0.016061,190 +0.016037,190 +0.016055,190 +0.017758,192 +0.018130,192 +0.017835,192 +0.017625,192 +0.017569,192 +0.017560,192 +0.018093,192 +0.017590,192 +0.017646,192 +0.017595,192 +0.017589,192 +0.017593,192 +0.018053,192 +0.017857,192 +0.017576,192 +0.018595,192 +0.018000,192 +0.017856,192 +0.017902,192 +0.017668,192 +0.017556,192 +0.017600,192 +0.017589,192 +0.018096,192 +0.017726,192 +0.017848,192 +0.018263,192 +0.018465,192 +0.018469,192 +0.019493,192 +0.019087,192 +0.018881,192 +0.019300,192 +0.018882,192 +0.020475,192 +0.018907,192 +0.018425,192 +0.018675,192 +0.018796,192 +0.019180,192 +0.018455,192 +0.018796,192 +0.019406,192 +0.018863,192 +0.019209,192 +0.019241,192 +0.018335,192 +0.018386,192 +0.018598,192 +0.021133,192 +0.019768,192 +0.019792,192 +0.019381,192 +0.019887,192 +0.019157,192 +0.019405,192 +0.019352,192 +0.018494,192 +0.018213,192 +0.018221,192 +0.018205,192 +0.018568,192 +0.018134,192 +0.017751,192 +0.017784,192 +0.017656,192 +0.018212,192 +0.017853,192 +0.017730,192 +0.017663,192 +0.017586,192 +0.017701,192 +0.017985,192 +0.017648,192 +0.017545,192 +0.017614,192 +0.017532,192 +0.018059,192 +0.017754,192 +0.017547,192 +0.018010,192 +0.017615,192 +0.017596,192 +0.018172,192 +0.017703,192 +0.017613,192 +0.017505,192 +0.017577,192 +0.017640,192 +0.018077,192 +0.017675,192 +0.017876,192 +0.017800,192 +0.017545,192 +0.018172,192 +0.017663,192 +0.017645,192 +0.017551,192 +0.017570,192 +0.017639,192 +0.017723,194 +0.017201,194 +0.017217,194 +0.017284,194 +0.017187,194 +0.017117,194 +0.017673,194 +0.017179,194 +0.017058,194 +0.017121,194 +0.017032,194 +0.017173,194 +0.017470,194 +0.017173,194 +0.017038,194 +0.017035,194 +0.017031,194 +0.017312,194 +0.017448,194 +0.017117,194 +0.017095,194 +0.017161,194 +0.017030,194 +0.017458,194 +0.017410,194 +0.017029,194 +0.017090,194 +0.017150,194 +0.017056,194 +0.017628,194 +0.017249,194 +0.017056,194 +0.017107,194 +0.017040,194 +0.017043,194 +0.017798,194 +0.017358,194 +0.018198,194 +0.018354,194 +0.018124,194 +0.019318,194 +0.019823,194 +0.018403,194 +0.018274,194 +0.017861,194 +0.017662,194 +0.017762,194 +0.017314,194 +0.017294,194 +0.017188,194 +0.017390,194 +0.017211,194 +0.017584,194 +0.017199,194 +0.017207,194 +0.017087,194 +0.017136,194 +0.017488,194 +0.017390,194 +0.017213,194 +0.017064,194 +0.017075,194 +0.017029,194 +0.017756,194 +0.018961,194 +0.017272,194 +0.017127,194 +0.017087,194 +0.017077,194 +0.017945,194 +0.017222,194 +0.017054,194 +0.017034,194 +0.017032,194 +0.017027,194 +0.017971,194 +0.017141,194 +0.017032,194 +0.017031,194 +0.017031,194 +0.017108,194 +0.017596,194 +0.017183,194 +0.017266,194 +0.017126,194 +0.017049,194 +0.017203,194 +0.017470,194 +0.017219,194 +0.017033,194 +0.017059,194 +0.017057,194 +0.017218,194 +0.017503,194 +0.017104,194 +0.017073,194 +0.017095,194 +0.017032,194 +0.017256,194 +0.017648,194 +0.017649,196 +0.017528,196 +0.017527,196 +0.017525,196 +0.017969,196 +0.017686,196 +0.017538,196 +0.017524,196 +0.017531,196 +0.019247,196 +0.020003,196 +0.019093,196 +0.018780,196 +0.018794,196 +0.017793,196 +0.018126,196 +0.017694,196 +0.017561,196 +0.017558,196 +0.017488,196 +0.017509,196 +0.018199,196 +0.017556,196 +0.017535,196 +0.017544,196 +0.017471,196 +0.017794,196 +0.017866,196 +0.017479,196 +0.017464,196 +0.017628,196 +0.017493,196 +0.018101,196 +0.017621,196 +0.017466,196 +0.017535,196 +0.017462,196 +0.017503,196 +0.018121,196 +0.017712,196 +0.017655,196 +0.017517,196 +0.017495,196 +0.017710,196 +0.017903,196 +0.017532,196 +0.017483,196 +0.017467,196 +0.017495,196 +0.018009,196 +0.017698,196 +0.017549,196 +0.017547,196 +0.017500,196 +0.017464,196 +0.018189,196 +0.017632,196 +0.017809,196 +0.017598,196 +0.017607,196 +0.017754,196 +0.017993,196 +0.017522,196 +0.017505,196 +0.017483,196 +0.017663,196 +0.018069,196 +0.017601,196 +0.017471,196 +0.017477,196 +0.017527,196 +0.017463,196 +0.018090,196 +0.017821,196 +0.017606,196 +0.017499,196 +0.017503,196 +0.017560,196 +0.018135,196 +0.017621,196 +0.017612,196 +0.017501,196 +0.017469,196 +0.018569,196 +0.017776,196 +0.017502,196 +0.017464,196 +0.017463,196 +0.017467,196 +0.018028,196 +0.017664,196 +0.018535,196 +0.020325,196 +0.018020,196 +0.018523,196 +0.018185,196 +0.017650,196 +0.017807,196 +0.019012,196 +0.019560,196 +0.021297,198 +0.018879,198 +0.019415,198 +0.018237,198 +0.018151,198 +0.018833,198 +0.018286,198 +0.018125,198 +0.018174,198 +0.018090,198 +0.018107,198 +0.018952,198 +0.018206,198 +0.018143,198 +0.018094,198 +0.018124,198 +0.023542,198 +0.018220,198 +0.018218,198 +0.018148,198 +0.018384,198 +0.022983,198 +0.018703,198 +0.018196,198 +0.018158,198 +0.018113,198 +0.019203,198 +0.022723,198 +0.018422,198 +0.018436,198 +0.018288,198 +0.018514,198 +0.023999,198 +0.018266,198 +0.018654,198 +0.018360,198 +0.018278,198 +0.023968,198 +0.018381,198 +0.018400,198 +0.018328,198 +0.018368,198 +0.024078,198 +0.018356,198 +0.018515,198 +0.018419,198 +0.018498,198 +0.024293,198 +0.020207,198 +0.018954,198 +0.018380,198 +0.018465,198 +0.024021,198 +0.018793,198 +0.018296,198 +0.018294,198 +0.018455,198 +0.021622,198 +0.025022,198 +0.019093,198 +0.018406,198 +0.018466,198 +0.020783,198 +0.022209,198 +0.018543,198 +0.018451,198 +0.018320,198 +0.020868,198 +0.021467,198 +0.018890,198 +0.018451,198 +0.018416,198 +0.018991,198 +0.023501,198 +0.018466,198 +0.018396,198 +0.018622,198 +0.018818,198 +0.019036,198 +0.018999,198 +0.018954,198 +0.018368,198 +0.018850,198 +0.019231,198 +0.018180,198 +0.018262,198 +0.018089,198 +0.018069,198 +0.018296,198 +0.018660,198 +0.018183,198 +0.018072,198 +0.018069,198 +0.018087,198 +0.018824,198 +0.018486,198 +0.018444,198 +0.018565,198 +0.018482,198 +0.018686,198 +0.019614,200 +0.018985,200 +0.018951,200 +0.019013,200 +0.018900,200 +0.019752,200 +0.018977,200 +0.018916,200 +0.019042,200 +0.019185,200 +0.019620,200 +0.019126,200 +0.019041,200 +0.019046,200 +0.019005,200 +0.019648,200 +0.019398,200 +0.018984,200 +0.018921,200 +0.019097,200 +0.019108,200 +0.019361,200 +0.018982,200 +0.018946,200 +0.018984,200 +0.019093,200 +0.019620,200 +0.018948,200 +0.018868,200 +0.018854,200 +0.018931,200 +0.019449,200 +0.019022,200 +0.019014,200 +0.018844,200 +0.018885,200 +0.019446,200 +0.019151,200 +0.019011,200 +0.018906,200 +0.018898,200 +0.018926,200 +0.019673,200 +0.018902,200 +0.018821,200 +0.018833,200 +0.018963,200 +0.019687,200 +0.019112,200 +0.019051,200 +0.018897,200 +0.019042,200 +0.019607,200 +0.019062,200 +0.018903,200 +0.018925,200 +0.018920,200 +0.019317,200 +0.019451,200 +0.018919,200 +0.019014,200 +0.018887,200 +0.019028,200 +0.020660,200 +0.019032,200 +0.018857,200 +0.019030,200 +0.019124,200 +0.022260,200 +0.019522,200 +0.019082,200 +0.019479,200 +0.018689,200 +0.020167,200 +0.018665,200 +0.018714,200 +0.019436,200 +0.018740,200 +0.020238,200 +0.018807,200 +0.018606,200 +0.018601,200 +0.018634,200 +0.019663,200 +0.019381,200 +0.018664,200 +0.018644,200 +0.018625,200 +0.018611,200 +0.020134,200 +0.018772,200 +0.018611,200 +0.018597,200 +0.018606,200 +0.020143,200 +0.018630,200 +0.018587,200 +0.018580,200 +0.018601,200 +0.019625,200 +0.019955,202 +0.019270,202 +0.019276,202 +0.019466,202 +0.020023,202 +0.020513,202 +0.019293,202 +0.019209,202 +0.019191,202 +0.019206,202 +0.020959,202 +0.019258,202 +0.019271,202 +0.019220,202 +0.019201,202 +0.020855,202 +0.019424,202 +0.019376,202 +0.019329,202 +0.019204,202 +0.022095,202 +0.019331,202 +0.019276,202 +0.019260,202 +0.019274,202 +0.020895,202 +0.019298,202 +0.019362,202 +0.019265,202 +0.019339,202 +0.020935,202 +0.019314,202 +0.019344,202 +0.019257,202 +0.019289,202 +0.020819,202 +0.019280,202 +0.019256,202 +0.019269,202 +0.019241,202 +0.020638,202 +0.019632,202 +0.019357,202 +0.019642,202 +0.019539,202 +0.020262,202 +0.020131,202 +0.019248,202 +0.019233,202 +0.019343,202 +0.019285,202 +0.020917,202 +0.019276,202 +0.019215,202 +0.019297,202 +0.019431,202 +0.021968,202 +0.019440,202 +0.019328,202 +0.019243,202 +0.019206,202 +0.019737,202 +0.019363,202 +0.019230,202 +0.019292,202 +0.019199,202 +0.020305,202 +0.019640,202 +0.019347,202 +0.019220,202 +0.019197,202 +0.019628,202 +0.019511,202 +0.019280,202 +0.019240,202 +0.019250,202 +0.019447,202 +0.020550,202 +0.019445,202 +0.019274,202 +0.019406,202 +0.019407,202 +0.019588,202 +0.019275,202 +0.019281,202 +0.019254,202 +0.019371,202 +0.019940,202 +0.019374,202 +0.019312,202 +0.019333,202 +0.019288,202 +0.019764,202 +0.019403,202 +0.019297,202 +0.019224,202 +0.019246,202 +0.019714,202 +0.019373,202 +0.019290,202 +0.020346,204 +0.019918,204 +0.020338,204 +0.019947,204 +0.019849,204 +0.019833,204 +0.020035,204 +0.020295,204 +0.019921,204 +0.019865,204 +0.019769,204 +0.019774,204 +0.020104,204 +0.020178,204 +0.019959,204 +0.019820,204 +0.019834,204 +0.020111,204 +0.020052,204 +0.019878,204 +0.019775,204 +0.019783,204 +0.020072,204 +0.020188,204 +0.019887,204 +0.019811,204 +0.019828,204 +0.020040,204 +0.020067,204 +0.020056,204 +0.019794,204 +0.019855,204 +0.020051,204 +0.020079,204 +0.019893,204 +0.019762,204 +0.019778,204 +0.019882,204 +0.020157,204 +0.019869,204 +0.020606,204 +0.020034,204 +0.020459,204 +0.020252,204 +0.019838,204 +0.019776,204 +0.019760,204 +0.019930,204 +0.020156,204 +0.019840,204 +0.019778,204 +0.019795,204 +0.019914,204 +0.020118,204 +0.019836,204 +0.019809,204 +0.019894,204 +0.019863,204 +0.020166,204 +0.019825,204 +0.019781,204 +0.019731,204 +0.019851,204 +0.020210,204 +0.019788,204 +0.019774,204 +0.019908,204 +0.019780,204 +0.020163,204 +0.019885,204 +0.019818,204 +0.019725,204 +0.019835,204 +0.020265,204 +0.019733,204 +0.019779,204 +0.019784,204 +0.019784,204 +0.020236,204 +0.020084,204 +0.019783,204 +0.019811,204 +0.019831,204 +0.020212,204 +0.019767,204 +0.019805,204 +0.019774,204 +0.019814,204 +0.020358,204 +0.019773,204 +0.019830,204 +0.019771,204 +0.019804,204 +0.020233,204 +0.019854,204 +0.019767,204 +0.019772,204 +0.019890,204 +0.020138,204 +0.019739,204 +0.020474,206 +0.021390,206 +0.020503,206 +0.020879,206 +0.020554,206 +0.020528,206 +0.020522,206 +0.020726,206 +0.020909,206 +0.020593,206 +0.020475,206 +0.020340,206 +0.020749,206 +0.021044,206 +0.020424,206 +0.020461,206 +0.020456,206 +0.020496,206 +0.020875,206 +0.020437,206 +0.020355,206 +0.020425,206 +0.020503,206 +0.020988,206 +0.020476,206 +0.020374,206 +0.020402,206 +0.020521,206 +0.020866,206 +0.020498,206 +0.020491,206 +0.020461,206 +0.020494,206 +0.020731,206 +0.020377,206 +0.020408,206 +0.020478,206 +0.020558,206 +0.020627,206 +0.020435,206 +0.020376,206 +0.020436,206 +0.020589,206 +0.020674,206 +0.020367,206 +0.020386,206 +0.020430,206 +0.020825,206 +0.020477,206 +0.020425,206 +0.020371,206 +0.020455,206 +0.020832,206 +0.020454,206 +0.020433,206 +0.020450,206 +0.020546,206 +0.020845,206 +0.020509,206 +0.020404,206 +0.020361,206 +0.020545,206 +0.020790,206 +0.020547,206 +0.020483,206 +0.020445,206 +0.020497,206 +0.021000,206 +0.020620,206 +0.020432,206 +0.020507,206 +0.020377,206 +0.021019,206 +0.020574,206 +0.020587,206 +0.020427,206 +0.020517,206 +0.021153,206 +0.020512,206 +0.021221,206 +0.020608,206 +0.020599,206 +0.020907,206 +0.020395,206 +0.020442,206 +0.020490,206 +0.020755,206 +0.020848,206 +0.020516,206 +0.020425,206 +0.020515,206 +0.021067,206 +0.020579,206 +0.020578,206 +0.020460,206 +0.020519,206 +0.020952,206 +0.020452,206 +0.020415,206 +0.020555,206 +0.020937,208 +0.021447,208 +0.021110,208 +0.021063,208 +0.021080,208 +0.021059,208 +0.021476,208 +0.021106,208 +0.020988,208 +0.021031,208 +0.021058,208 +0.021473,208 +0.020970,208 +0.020922,208 +0.021063,208 +0.021414,208 +0.021251,208 +0.020921,208 +0.021078,208 +0.020971,208 +0.021575,208 +0.021036,208 +0.021007,208 +0.021015,208 +0.021137,208 +0.021794,208 +0.021007,208 +0.021026,208 +0.021033,208 +0.021063,208 +0.021563,208 +0.021013,208 +0.020908,208 +0.021028,208 +0.021103,208 +0.021375,208 +0.020978,208 +0.021054,208 +0.020989,208 +0.021518,208 +0.020965,208 +0.020957,208 +0.020970,208 +0.020899,208 +0.021561,208 +0.021345,208 +0.020959,208 +0.021026,208 +0.021020,208 +0.021515,208 +0.020916,208 +0.021116,208 +0.021035,208 +0.021011,208 +0.021544,208 +0.020938,208 +0.020971,208 +0.020993,208 +0.021331,208 +0.021146,208 +0.020975,208 +0.021000,208 +0.020880,208 +0.021581,208 +0.020919,208 +0.020933,208 +0.021065,208 +0.021079,208 +0.021627,208 +0.020984,208 +0.021031,208 +0.021143,208 +0.021434,208 +0.021466,208 +0.021069,208 +0.021036,208 +0.020908,208 +0.021261,208 +0.021241,208 +0.020960,208 +0.020993,208 +0.020928,208 +0.021676,208 +0.021072,208 +0.020921,208 +0.021194,208 +0.020953,208 +0.021478,208 +0.020900,208 +0.020952,208 +0.021031,208 +0.020963,208 +0.021564,208 +0.020987,208 +0.021018,208 +0.020997,208 +0.021287,208 +0.021463,208 +0.020961,208 +0.021010,208 +0.021837,210 +0.022359,210 +0.021703,210 +0.021722,210 +0.021748,210 +0.021800,210 +0.022293,210 +0.021726,210 +0.021681,210 +0.021713,210 +0.022189,210 +0.021968,210 +0.021695,210 +0.021828,210 +0.021751,210 +0.022327,210 +0.021710,210 +0.021823,210 +0.021882,210 +0.024530,210 +0.023167,210 +0.021845,210 +0.021955,210 +0.021629,210 +0.022300,210 +0.021750,210 +0.021700,210 +0.021613,210 +0.021707,210 +0.022299,210 +0.021728,210 +0.021733,210 +0.021715,210 +0.022258,210 +0.021667,210 +0.021689,210 +0.021675,210 +0.021617,210 +0.022322,210 +0.021623,210 +0.021723,210 +0.021755,210 +0.021899,210 +0.022125,210 +0.021792,210 +0.021803,210 +0.021650,210 +0.022226,210 +0.021704,210 +0.021738,210 +0.021623,210 +0.021700,210 +0.022291,210 +0.021647,210 +0.021842,210 +0.021684,210 +0.022042,210 +0.021837,210 +0.021654,210 +0.021712,210 +0.021604,210 +0.022472,210 +0.021726,210 +0.021741,210 +0.021754,210 +0.023545,210 +0.022155,210 +0.021975,210 +0.021686,210 +0.021615,210 +0.022360,210 +0.021625,210 +0.022446,210 +0.022446,210 +0.022270,210 +0.022792,210 +0.021866,210 +0.021678,210 +0.021673,210 +0.022255,210 +0.021645,210 +0.021740,210 +0.021689,210 +0.021647,210 +0.022128,210 +0.021689,210 +0.021829,210 +0.021827,210 +0.021905,210 +0.022211,210 +0.021896,210 +0.021644,210 +0.021800,210 +0.022196,210 +0.021754,210 +0.021831,210 +0.021608,210 +0.021701,210 +0.022241,210 +0.021665,210 +0.022333,212 +0.022289,212 +0.022824,212 +0.022219,212 +0.022375,212 +0.022238,212 +0.022223,212 +0.022961,212 +0.022227,212 +0.022258,212 +0.022534,212 +0.022837,212 +0.022326,212 +0.022341,212 +0.022220,212 +0.022228,212 +0.022974,212 +0.022232,212 +0.022573,212 +0.022355,212 +0.022848,212 +0.022325,212 +0.022381,212 +0.022277,212 +0.022785,212 +0.022947,212 +0.022319,212 +0.022236,212 +0.022260,212 +0.022802,212 +0.022282,212 +0.022393,212 +0.022251,212 +0.022384,212 +0.022750,212 +0.022347,212 +0.022354,212 +0.022219,212 +0.022789,212 +0.022340,212 +0.022302,212 +0.022216,212 +0.022453,212 +0.022677,212 +0.022374,212 +0.022228,212 +0.022263,212 +0.022823,212 +0.022218,212 +0.022228,212 +0.022198,212 +0.022395,212 +0.022869,212 +0.022323,212 +0.022361,212 +0.022268,212 +0.022801,212 +0.022334,212 +0.022253,212 +0.022175,212 +0.022361,212 +0.022652,212 +0.022286,212 +0.022231,212 +0.022339,212 +0.023049,212 +0.022210,212 +0.022239,212 +0.022321,212 +0.022345,212 +0.022578,212 +0.022393,212 +0.022224,212 +0.022156,212 +0.022832,212 +0.022247,212 +0.022352,212 +0.022454,212 +0.022399,212 +0.022739,212 +0.022451,212 +0.022183,212 +0.022177,212 +0.022833,212 +0.022297,212 +0.023886,212 +0.022259,212 +0.022521,212 +0.022645,212 +0.022403,212 +0.022249,212 +0.022298,212 +0.022748,212 +0.022594,212 +0.022305,212 +0.022199,212 +0.022525,212 +0.022699,212 +0.022429,212 +0.022883,212 +0.023026,214 +0.023601,214 +0.022894,214 +0.022924,214 +0.022801,214 +0.023424,214 +0.022784,214 +0.022958,214 +0.022937,214 +0.023036,214 +0.023292,214 +0.022977,214 +0.022910,214 +0.022914,214 +0.023308,214 +0.022945,214 +0.022868,214 +0.022820,214 +0.023361,214 +0.022903,214 +0.022967,214 +0.023011,214 +0.022831,214 +0.023594,214 +0.022994,214 +0.022835,214 +0.022873,214 +0.023355,214 +0.023009,214 +0.022910,214 +0.022801,214 +0.023142,214 +0.023126,214 +0.022873,214 +0.022995,214 +0.022831,214 +0.023499,214 +0.022909,214 +0.022804,214 +0.022903,214 +0.023405,214 +0.023121,214 +0.023190,214 +0.023021,214 +0.023059,214 +0.023475,214 +0.022920,214 +0.022871,214 +0.023039,214 +0.023400,214 +0.022957,214 +0.022797,214 +0.022976,214 +0.023346,214 +0.023228,214 +0.022894,214 +0.023023,214 +0.022950,214 +0.023304,214 +0.022880,214 +0.022979,214 +0.022820,214 +0.023251,214 +0.022990,214 +0.022892,214 +0.022999,214 +0.023206,214 +0.023043,214 +0.022884,214 +0.022835,214 +0.022819,214 +0.023492,214 +0.022915,214 +0.022874,214 +0.022853,214 +0.023394,214 +0.022965,214 +0.022915,214 +0.022892,214 +0.023037,214 +0.023072,214 +0.022953,214 +0.022892,214 +0.022866,214 +0.023559,214 +0.022908,214 +0.023742,214 +0.022807,214 +0.023526,214 +0.023016,214 +0.022789,214 +0.023650,214 +0.023282,214 +0.023171,214 +0.022981,214 +0.022893,214 +0.022843,214 +0.023337,214 +0.022931,214 +0.022935,214 +0.023484,216 +0.023960,216 +0.023784,216 +0.023437,216 +0.023560,216 +0.023767,216 +0.023759,216 +0.023548,216 +0.023554,216 +0.023648,216 +0.023907,216 +0.023504,216 +0.023411,216 +0.023361,216 +0.023976,216 +0.023612,216 +0.023527,216 +0.023568,216 +0.024065,216 +0.023642,216 +0.023505,216 +0.023500,216 +0.023761,216 +0.023708,216 +0.023398,216 +0.023390,216 +0.023527,216 +0.023995,216 +0.023649,216 +0.023565,216 +0.023520,216 +0.024105,216 +0.023535,216 +0.023515,216 +0.023435,216 +0.024056,216 +0.023549,216 +0.023436,216 +0.023527,216 +0.023797,216 +0.024015,216 +0.023496,216 +0.023743,216 +0.023574,216 +0.023869,216 +0.023564,216 +0.023412,216 +0.023448,216 +0.024012,216 +0.023638,216 +0.023633,216 +0.023510,216 +0.024206,216 +0.023510,216 +0.023539,216 +0.023430,216 +0.023712,216 +0.023728,216 +0.023420,216 +0.023466,216 +0.023403,216 +0.023832,216 +0.023598,216 +0.023477,216 +0.023488,216 +0.023875,216 +0.023622,216 +0.023453,216 +0.023399,216 +0.024021,216 +0.023578,216 +0.023585,216 +0.023475,216 +0.024381,216 +0.024930,216 +0.023957,216 +0.024402,216 +0.023838,216 +0.024771,216 +0.023503,216 +0.023520,216 +0.023429,216 +0.025026,216 +0.023553,216 +0.023468,216 +0.023556,216 +0.024949,216 +0.023713,216 +0.023406,216 +0.023559,216 +0.024893,216 +0.023608,216 +0.023511,216 +0.023548,216 +0.025018,216 +0.023749,216 +0.023568,216 +0.023493,216 +0.023500,216 +0.025098,216 +0.024321,218 +0.024253,218 +0.024154,218 +0.025959,218 +0.024192,218 +0.024190,218 +0.024139,218 +0.025750,218 +0.024191,218 +0.024242,218 +0.024402,218 +0.030602,218 +0.024774,218 +0.024360,218 +0.024410,218 +0.024888,218 +0.024177,218 +0.024285,218 +0.024374,218 +0.024681,218 +0.024682,218 +0.024262,218 +0.024223,218 +0.024665,218 +0.024532,218 +0.024227,218 +0.024309,218 +0.024826,218 +0.024397,218 +0.024196,218 +0.024256,218 +0.024776,218 +0.024537,218 +0.024244,218 +0.024336,218 +0.024614,218 +0.024646,218 +0.024301,218 +0.024200,218 +0.024366,218 +0.024733,218 +0.024201,218 +0.024230,218 +0.024197,218 +0.024804,218 +0.024310,218 +0.024180,218 +0.024274,218 +0.024824,218 +0.024214,218 +0.024201,218 +0.024154,218 +0.025116,218 +0.024334,218 +0.024319,218 +0.024365,218 +0.024794,218 +0.024186,218 +0.024323,218 +0.024177,218 +0.024657,218 +0.024300,218 +0.024207,218 +0.024112,218 +0.024419,218 +0.024600,218 +0.024227,218 +0.024217,218 +0.024233,218 +0.024734,218 +0.024214,218 +0.025253,218 +0.024190,218 +0.024788,218 +0.024715,218 +0.024626,218 +0.024456,218 +0.024755,218 +0.024196,218 +0.024166,218 +0.024235,218 +0.024681,218 +0.024260,218 +0.024331,218 +0.024221,218 +0.024686,218 +0.024356,218 +0.024330,218 +0.024253,218 +0.024664,218 +0.024319,218 +0.024420,218 +0.025809,218 +0.024817,218 +0.024451,218 +0.024223,218 +0.024401,218 +0.024759,218 +0.024375,218 +0.024219,218 +0.024873,220 +0.025108,220 +0.025061,220 +0.024885,220 +0.024765,220 +0.025074,220 +0.025367,220 +0.024839,220 +0.024765,220 +0.025052,220 +0.025111,220 +0.024817,220 +0.024792,220 +0.025239,220 +0.025257,220 +0.025068,220 +0.024841,220 +0.025115,220 +0.025180,220 +0.024913,220 +0.024890,220 +0.025050,220 +0.025184,220 +0.024911,220 +0.024798,220 +0.025013,220 +0.025192,220 +0.024926,220 +0.024795,220 +0.024976,220 +0.025252,220 +0.024912,220 +0.024793,220 +0.024958,220 +0.025602,220 +0.024894,220 +0.024824,220 +0.024999,220 +0.025398,220 +0.024906,220 +0.024775,220 +0.024963,220 +0.025427,220 +0.024907,220 +0.024832,220 +0.024869,220 +0.025427,220 +0.025238,220 +0.024822,220 +0.024873,220 +0.025321,220 +0.024911,220 +0.024858,220 +0.024902,220 +0.025402,220 +0.024943,220 +0.024956,220 +0.024943,220 +0.025503,220 +0.024872,220 +0.024849,220 +0.024872,220 +0.025515,220 +0.024940,220 +0.024794,220 +0.024854,220 +0.025468,220 +0.025027,220 +0.024804,220 +0.024812,220 +0.025526,220 +0.024885,220 +0.024797,220 +0.024926,220 +0.025620,220 +0.024928,220 +0.024839,220 +0.024926,220 +0.025429,220 +0.025009,220 +0.024797,220 +0.024856,220 +0.025474,220 +0.024913,220 +0.024784,220 +0.024895,220 +0.025441,220 +0.025252,220 +0.024798,220 +0.024784,220 +0.025461,220 +0.024823,220 +0.024757,220 +0.025039,220 +0.026051,220 +0.025156,220 +0.026092,220 +0.024877,220 +0.025423,220 +0.024875,220 +0.025803,222 +0.025612,222 +0.026133,222 +0.025814,222 +0.026533,222 +0.025811,222 +0.026799,222 +0.028307,222 +0.026128,222 +0.026274,222 +0.026490,222 +0.025989,222 +0.025987,222 +0.027747,222 +0.026207,222 +0.025834,222 +0.026027,222 +0.027656,222 +0.025946,222 +0.025867,222 +0.025983,222 +0.027567,222 +0.025950,222 +0.025924,222 +0.025934,222 +0.027547,222 +0.025963,222 +0.025842,222 +0.026992,222 +0.026363,222 +0.025988,222 +0.025937,222 +0.027749,222 +0.025962,222 +0.026520,222 +0.026097,222 +0.027628,222 +0.025700,222 +0.026003,222 +0.025730,222 +0.027521,222 +0.025729,222 +0.026208,222 +0.025815,222 +0.027381,222 +0.025782,222 +0.025681,222 +0.025890,222 +0.027240,222 +0.025703,222 +0.026188,222 +0.028180,222 +0.026576,222 +0.025724,222 +0.025760,222 +0.027488,222 +0.026379,222 +0.026555,222 +0.027810,222 +0.029167,222 +0.026614,222 +0.027743,222 +0.027495,222 +0.029081,222 +0.028671,222 +0.027525,222 +0.026388,222 +0.026126,222 +0.026361,222 +0.026159,222 +0.027152,222 +0.026343,222 +0.026092,222 +0.026325,222 +0.026569,222 +0.026080,222 +0.026654,222 +0.026354,222 +0.026697,222 +0.026229,222 +0.026825,222 +0.027730,222 +0.028674,222 +0.027830,222 +0.028155,222 +0.028284,222 +0.028044,222 +0.026559,222 +0.028011,222 +0.033725,222 +0.027623,222 +0.028418,222 +0.031350,222 +0.028729,222 +0.026083,222 +0.026010,222 +0.032434,222 +0.027779,222 +0.026996,222 +0.028396,222 +0.028949,224 +0.027685,224 +0.026853,224 +0.027342,224 +0.026836,224 +0.026846,224 +0.027353,224 +0.027514,224 +0.035273,224 +0.032047,224 +0.027517,224 +0.026843,224 +0.026461,224 +0.026823,224 +0.026482,224 +0.026429,224 +0.026592,224 +0.026880,224 +0.026321,224 +0.026325,224 +0.026351,224 +0.026876,224 +0.026249,224 +0.026443,224 +0.026446,224 +0.026957,224 +0.026337,224 +0.026385,224 +0.026553,224 +0.026630,224 +0.026286,224 +0.026370,224 +0.026752,224 +0.026410,224 +0.026253,224 +0.026425,224 +0.027212,224 +0.026683,224 +0.026352,224 +0.026306,224 +0.026796,224 +0.026319,224 +0.026409,224 +0.027414,224 +0.027239,224 +0.026580,224 +0.026598,224 +0.026857,224 +0.026380,224 +0.026298,224 +0.026425,224 +0.026794,224 +0.026301,224 +0.026350,224 +0.026489,224 +0.027160,224 +0.026314,224 +0.026349,224 +0.026421,224 +0.026793,224 +0.026374,224 +0.026456,224 +0.026503,224 +0.026953,224 +0.026346,224 +0.026434,224 +0.026791,224 +0.026370,224 +0.026421,224 +0.026372,224 +0.026847,224 +0.026371,224 +0.026353,224 +0.026352,224 +0.026915,224 +0.026435,224 +0.026356,224 +0.026417,224 +0.026870,224 +0.026376,224 +0.026433,224 +0.026624,224 +0.027409,224 +0.026897,224 +0.026468,224 +0.026801,224 +0.026327,224 +0.026391,224 +0.026394,224 +0.026912,224 +0.026554,224 +0.026577,224 +0.026535,224 +0.026772,224 +0.026386,224 +0.026433,224 +0.026597,224 +0.026615,224 +0.026654,224 +0.026921,224 +0.028603,226 +0.027266,226 +0.027135,226 +0.027072,226 +0.027474,226 +0.027131,226 +0.027086,226 +0.027116,226 +0.027478,226 +0.027045,226 +0.027091,226 +0.027592,226 +0.027407,226 +0.027063,226 +0.027063,226 +0.027425,226 +0.027157,226 +0.027344,226 +0.027210,226 +0.027718,226 +0.027114,226 +0.027143,226 +0.027466,226 +0.027005,226 +0.027020,226 +0.026995,226 +0.027437,226 +0.027026,226 +0.026995,226 +0.027142,226 +0.027541,226 +0.026967,226 +0.027073,226 +0.027470,226 +0.026976,226 +0.027179,226 +0.027682,226 +0.027688,226 +0.027113,226 +0.027033,226 +0.027071,226 +0.027531,226 +0.026931,226 +0.027160,226 +0.027355,226 +0.027081,226 +0.026994,226 +0.027038,226 +0.027578,226 +0.027147,226 +0.027222,226 +0.027132,226 +0.027484,226 +0.026990,226 +0.027118,226 +0.027287,226 +0.027333,226 +0.027106,226 +0.027130,226 +0.027430,226 +0.027058,226 +0.026931,226 +0.027072,226 +0.027519,226 +0.027034,226 +0.027094,226 +0.027110,226 +0.027528,226 +0.027124,226 +0.027042,226 +0.027476,226 +0.027152,226 +0.027089,226 +0.027805,226 +0.027947,226 +0.027093,226 +0.027021,226 +0.026933,226 +0.027671,226 +0.027016,226 +0.026995,226 +0.027477,226 +0.027034,226 +0.027993,226 +0.027066,226 +0.027560,226 +0.027294,226 +0.027060,226 +0.027045,226 +0.027400,226 +0.027050,226 +0.026985,226 +0.027514,226 +0.027799,226 +0.027884,226 +0.027555,226 +0.027529,226 +0.026994,226 +0.027625,226 +0.027030,226 +0.028396,228 +0.027789,228 +0.027706,228 +0.028292,228 +0.027713,228 +0.027641,228 +0.027753,228 +0.028166,228 +0.027764,228 +0.027839,228 +0.027917,228 +0.028371,228 +0.027708,228 +0.027819,228 +0.028142,228 +0.027675,228 +0.027806,228 +0.027774,228 +0.028090,228 +0.027691,228 +0.028016,228 +0.028347,228 +0.027715,228 +0.027710,228 +0.027669,228 +0.028135,228 +0.027709,228 +0.027739,228 +0.028289,228 +0.027917,228 +0.027731,228 +0.027709,228 +0.028199,228 +0.027688,228 +0.027750,228 +0.027957,228 +0.028081,228 +0.027754,228 +0.027762,228 +0.028137,228 +0.027730,228 +0.027760,228 +0.027624,228 +0.028232,228 +0.027763,228 +0.027841,228 +0.027998,228 +0.028292,228 +0.027739,228 +0.027804,228 +0.028145,228 +0.027705,228 +0.027735,228 +0.027768,228 +0.028157,228 +0.027802,228 +0.027793,228 +0.028159,228 +0.027800,228 +0.027955,228 +0.027726,228 +0.028202,228 +0.027815,228 +0.027765,228 +0.027927,228 +0.028082,228 +0.027911,228 +0.028507,228 +0.029761,228 +0.029541,228 +0.030357,228 +0.029105,228 +0.030264,228 +0.030174,228 +0.028764,228 +0.028345,228 +0.028749,228 +0.028297,228 +0.031972,228 +0.027970,228 +0.028245,228 +0.027927,228 +0.033471,228 +0.029183,228 +0.030954,228 +0.030335,228 +0.029571,228 +0.029664,228 +0.029525,228 +0.029456,228 +0.029034,228 +0.028302,228 +0.028582,228 +0.027869,228 +0.027958,228 +0.032860,228 +0.054217,228 +0.055905,228 +0.032124,228 +0.030037,228 +0.031212,230 +0.031446,230 +0.029493,230 +0.028981,230 +0.029714,230 +0.029217,230 +0.029330,230 +0.029472,230 +0.028810,230 +0.028966,230 +0.028912,230 +0.029368,230 +0.029060,230 +0.028714,230 +0.029201,230 +0.028925,230 +0.029145,230 +0.029026,230 +0.029022,230 +0.028966,230 +0.028870,230 +0.029391,230 +0.028822,230 +0.029057,230 +0.029450,230 +0.028822,230 +0.029209,230 +0.029746,230 +0.029454,230 +0.028988,230 +0.029127,230 +0.029064,230 +0.029241,230 +0.029435,230 +0.029081,230 +0.031390,230 +0.029498,230 +0.029355,230 +0.029553,230 +0.028982,230 +0.028996,230 +0.028980,230 +0.029188,230 +0.029060,230 +0.028818,230 +0.029422,230 +0.029067,230 +0.028992,230 +0.029280,230 +0.029486,230 +0.029258,230 +0.029168,230 +0.029584,230 +0.029309,230 +0.029174,230 +0.029294,230 +0.028859,230 +0.029155,230 +0.028960,230 +0.029254,230 +0.029074,230 +0.030576,230 +0.030232,230 +0.029177,230 +0.029131,230 +0.030245,230 +0.029385,230 +0.028945,230 +0.028784,230 +0.029233,230 +0.029134,230 +0.029420,230 +0.029514,230 +0.028832,230 +0.028563,230 +0.028667,230 +0.029067,230 +0.028526,230 +0.028438,230 +0.028899,230 +0.029096,230 +0.028589,230 +0.028424,230 +0.029054,230 +0.028619,230 +0.028536,230 +0.028929,230 +0.028593,230 +0.029794,230 +0.038274,230 +0.028631,230 +0.028745,230 +0.028442,230 +0.028873,230 +0.028448,230 +0.028783,230 +0.028461,230 +0.028953,230 +0.028479,230 +0.028411,230 +0.029688,232 +0.029182,232 +0.029007,232 +0.029212,232 +0.030177,232 +0.029792,232 +0.030598,232 +0.033744,232 +0.033655,232 +0.030829,232 +0.032066,232 +0.032223,232 +0.031038,232 +0.030659,232 +0.030033,232 +0.029460,232 +0.029567,232 +0.029924,232 +0.029216,232 +0.029134,232 +0.029829,232 +0.029198,232 +0.029112,232 +0.029550,232 +0.029096,232 +0.029180,232 +0.029056,232 +0.029627,232 +0.029195,232 +0.029088,232 +0.029468,232 +0.029486,232 +0.030023,232 +0.029728,232 +0.029768,232 +0.029106,232 +0.029068,232 +0.029595,232 +0.029140,232 +0.029497,232 +0.029585,232 +0.029460,232 +0.029183,232 +0.029034,232 +0.029641,232 +0.029115,232 +0.029208,232 +0.029817,232 +0.029447,232 +0.029239,232 +0.029114,232 +0.029866,232 +0.029166,232 +0.029146,232 +0.029593,232 +0.029066,232 +0.029145,232 +0.029049,232 +0.029621,232 +0.029042,232 +0.029041,232 +0.029647,232 +0.029164,232 +0.029283,232 +0.029343,232 +0.029674,232 +0.029265,232 +0.029332,232 +0.029687,232 +0.029218,232 +0.029087,232 +0.029494,232 +0.029337,232 +0.029189,232 +0.029091,232 +0.029642,232 +0.029189,232 +0.029207,232 +0.029540,232 +0.029594,232 +0.029035,232 +0.029327,232 +0.032385,232 +0.030660,232 +0.029237,232 +0.029852,232 +0.029299,232 +0.029156,232 +0.029341,232 +0.029562,232 +0.029221,232 +0.029107,232 +0.029742,232 +0.029237,232 +0.029049,232 +0.029655,232 +0.029219,232 +0.029072,232 +0.029165,232 +0.029762,232 +0.030358,234 +0.030127,234 +0.030604,234 +0.030153,234 +0.030130,234 +0.030406,234 +0.030486,234 +0.030233,234 +0.030003,234 +0.030490,234 +0.030202,234 +0.030074,234 +0.030438,234 +0.030215,234 +0.030018,234 +0.031065,234 +0.032074,234 +0.030253,234 +0.030099,234 +0.030677,234 +0.031515,234 +0.031204,234 +0.033240,234 +0.031116,234 +0.030199,234 +0.030712,234 +0.030225,234 +0.030108,234 +0.030597,234 +0.030284,234 +0.030132,234 +0.030359,234 +0.030782,234 +0.030082,234 +0.030109,234 +0.030729,234 +0.030159,234 +0.030105,234 +0.030472,234 +0.030409,234 +0.030108,234 +0.030038,234 +0.030701,234 +0.030097,234 +0.032153,234 +0.032187,234 +0.030610,234 +0.030178,234 +0.030790,234 +0.030180,234 +0.030011,234 +0.030187,234 +0.030570,234 +0.030096,234 +0.030133,234 +0.031568,234 +0.030319,234 +0.030084,234 +0.030822,234 +0.030645,234 +0.030130,234 +0.030539,234 +0.031045,234 +0.030107,234 +0.030286,234 +0.030675,234 +0.030380,234 +0.030718,234 +0.031886,234 +0.032856,234 +0.033020,234 +0.032307,234 +0.031610,234 +0.032002,234 +0.032058,234 +0.031528,234 +0.030505,234 +0.030506,234 +0.030780,234 +0.030169,234 +0.030483,234 +0.030792,234 +0.030206,234 +0.030239,234 +0.031256,234 +0.030443,234 +0.030501,234 +0.030984,234 +0.030521,234 +0.030428,234 +0.030373,234 +0.030966,234 +0.030462,234 +0.030669,234 +0.030869,234 +0.030494,234 +0.030628,234 +0.031014,234 +0.031166,234 +0.033034,234 +0.033777,236 +0.033994,236 +0.033944,236 +0.034148,236 +0.031757,236 +0.030948,236 +0.032556,236 +0.031320,236 +0.031032,236 +0.031013,236 +0.032891,236 +0.032434,236 +0.032233,236 +0.034586,236 +0.033126,236 +0.033744,236 +0.034739,236 +0.031994,236 +0.031318,236 +0.033039,236 +0.031272,236 +0.031136,236 +0.032828,236 +0.031334,236 +0.031468,236 +0.032985,236 +0.031576,236 +0.031285,236 +0.033451,236 +0.035104,236 +0.034135,236 +0.032739,236 +0.032981,236 +0.032480,236 +0.032441,236 +0.032488,236 +0.033266,236 +0.031990,236 +0.031856,236 +0.031373,236 +0.031471,236 +0.031751,236 +0.032149,236 +0.031541,236 +0.031784,236 +0.031390,236 +0.031234,236 +0.031803,236 +0.031537,236 +0.031533,236 +0.032068,236 +0.031771,236 +0.031798,236 +0.031953,236 +0.031569,236 +0.031234,236 +0.031939,236 +0.031545,236 +0.031601,236 +0.031578,236 +0.031932,236 +0.031237,236 +0.031325,236 +0.031721,236 +0.031366,236 +0.031220,236 +0.031750,236 +0.031240,236 +0.032455,236 +0.033766,236 +0.031280,236 +0.030793,236 +0.031328,236 +0.030853,236 +0.030771,236 +0.031968,236 +0.031074,236 +0.030757,236 +0.030916,236 +0.032139,236 +0.032433,236 +0.034592,236 +0.033978,236 +0.032397,236 +0.032334,236 +0.031628,236 +0.031247,236 +0.031339,236 +0.031525,236 +0.032272,236 +0.034320,236 +0.035302,236 +0.033631,236 +0.032443,236 +0.031868,236 +0.036478,236 +0.032029,236 +0.031947,236 +0.030840,236 +0.030834,236 +0.032290,238 +0.031663,238 +0.031577,238 +0.033485,238 +0.033872,238 +0.035361,238 +0.035761,238 +0.032871,238 +0.032131,238 +0.032473,238 +0.031940,238 +0.031745,238 +0.032728,238 +0.032135,238 +0.031720,238 +0.032094,238 +0.033397,238 +0.032657,238 +0.034607,238 +0.034474,238 +0.034204,238 +0.038265,238 +0.033422,238 +0.032119,238 +0.032749,238 +0.032330,238 +0.033634,238 +0.034926,238 +0.036489,238 +0.034506,238 +0.033690,238 +0.032542,238 +0.032052,238 +0.032223,238 +0.033186,238 +0.034131,238 +0.034831,238 +0.034710,238 +0.033838,238 +0.032466,238 +0.032274,238 +0.032050,238 +0.031949,238 +0.032542,238 +0.031693,238 +0.031649,238 +0.032263,238 +0.031716,238 +0.031614,238 +0.032194,238 +0.033197,238 +0.035426,238 +0.035452,238 +0.033799,238 +0.034757,238 +0.033376,238 +0.032357,238 +0.032370,238 +0.033924,238 +0.031932,238 +0.031730,238 +0.033355,238 +0.031602,238 +0.032070,238 +0.033182,238 +0.031728,238 +0.031650,238 +0.033281,238 +0.031678,238 +0.031882,238 +0.034564,238 +0.031760,238 +0.031552,238 +0.033319,238 +0.031600,238 +0.031533,238 +0.032823,238 +0.032028,238 +0.031525,238 +0.031993,238 +0.032756,238 +0.031828,238 +0.031746,238 +0.033238,238 +0.031641,238 +0.031616,238 +0.033137,238 +0.031554,238 +0.031585,238 +0.033085,238 +0.031562,238 +0.031473,238 +0.033401,238 +0.031639,238 +0.031512,238 +0.033092,238 +0.031949,238 +0.031735,238 +0.033181,238 +0.031755,238 +0.032343,240 +0.033862,240 +0.034092,240 +0.032217,240 +0.033336,240 +0.032581,240 +0.032189,240 +0.032208,240 +0.033655,240 +0.032166,240 +0.032460,240 +0.033617,240 +0.032209,240 +0.032333,240 +0.033738,240 +0.032283,240 +0.032250,240 +0.033561,240 +0.033114,240 +0.034166,240 +0.035387,240 +0.034878,240 +0.034778,240 +0.035309,240 +0.032956,240 +0.032670,240 +0.034152,240 +0.032453,240 +0.032523,240 +0.033747,240 +0.032219,240 +0.032256,240 +0.034852,240 +0.032188,240 +0.032216,240 +0.033476,240 +0.032083,240 +0.033007,240 +0.034557,240 +0.032568,240 +0.032249,240 +0.033585,240 +0.032223,240 +0.032403,240 +0.033472,240 +0.032224,240 +0.032070,240 +0.032631,240 +0.032187,240 +0.032076,240 +0.032691,240 +0.032156,240 +0.032070,240 +0.032641,240 +0.032126,240 +0.032065,240 +0.032322,240 +0.032443,240 +0.032428,240 +0.032233,240 +0.032845,240 +0.032217,240 +0.032185,240 +0.032981,240 +0.032174,240 +0.032270,240 +0.032766,240 +0.032613,240 +0.032274,240 +0.032744,240 +0.032155,240 +0.032178,240 +0.032682,240 +0.032216,240 +0.032185,240 +0.032755,240 +0.032373,240 +0.032354,240 +0.032655,240 +0.032702,240 +0.032727,240 +0.033254,240 +0.032606,240 +0.032792,240 +0.033288,240 +0.032707,240 +0.032698,240 +0.032970,240 +0.033131,240 +0.032702,240 +0.032809,240 +0.032904,240 +0.032723,240 +0.032811,240 +0.033252,240 +0.032700,240 +0.032779,240 +0.033331,240 +0.032580,240 +0.032634,240 +0.034677,242 +0.034333,242 +0.035353,242 +0.037132,242 +0.035416,242 +0.035410,242 +0.034834,242 +0.033790,242 +0.034383,242 +0.033788,242 +0.033457,242 +0.034437,242 +0.035468,242 +0.036031,242 +0.038102,242 +0.036129,242 +0.036671,242 +0.038472,242 +0.034601,242 +0.034189,242 +0.036864,242 +0.036533,242 +0.036482,242 +0.037213,242 +0.036504,242 +0.038268,242 +0.036324,242 +0.038244,242 +0.035677,242 +0.035634,242 +0.034792,242 +0.036135,242 +0.036817,242 +0.037817,242 +0.037462,242 +0.036281,242 +0.036753,242 +0.036863,242 +0.035234,242 +0.034721,242 +0.034226,242 +0.034461,242 +0.035540,242 +0.036877,242 +0.036143,242 +0.036095,242 +0.035628,242 +0.034672,242 +0.034271,242 +0.034081,242 +0.034506,242 +0.035000,242 +0.035985,242 +0.035727,242 +0.036704,242 +0.037648,242 +0.035403,242 +0.034006,242 +0.033905,242 +0.034223,242 +0.036224,242 +0.036299,242 +0.038138,242 +0.036845,242 +0.036640,242 +0.036335,242 +0.036843,242 +0.034545,242 +0.033487,242 +0.036115,242 +0.036344,242 +0.036293,242 +0.035307,242 +0.038131,242 +0.045884,242 +0.042915,242 +0.035826,242 +0.036449,242 +0.035700,242 +0.036295,242 +0.039672,242 +0.035614,242 +0.035382,242 +0.034891,242 +0.033864,242 +0.034920,242 +0.035236,242 +0.036033,242 +0.037853,242 +0.036326,242 +0.036606,242 +0.035340,242 +0.038935,242 +0.033753,242 +0.033520,242 +0.038138,242 +0.035472,242 +0.035660,242 +0.035369,242 +0.034935,242 +0.035351,244 +0.035871,244 +0.035230,244 +0.035925,244 +0.038724,244 +0.040129,244 +0.039379,244 +0.038537,244 +0.040497,244 +0.036633,244 +0.035343,244 +0.038747,244 +0.038757,244 +0.045130,244 +0.036858,244 +0.041927,244 +0.039854,244 +0.037641,244 +0.038082,244 +0.043394,244 +0.039307,244 +0.038785,244 +0.037869,244 +0.037780,244 +0.035217,244 +0.034456,244 +0.036203,244 +0.037800,244 +0.040150,244 +0.050008,244 +0.049812,244 +0.041325,244 +0.045832,244 +0.052610,244 +0.052008,244 +0.042045,244 +0.067749,244 +0.072703,244 +0.072166,244 +0.046886,244 +0.038491,244 +0.039296,244 +0.037777,244 +0.049037,244 +0.036943,244 +0.036475,244 +0.036480,244 +0.036279,244 +0.036979,244 +0.035601,244 +0.037431,244 +0.035981,244 +0.035024,244 +0.035396,244 +0.035535,244 +0.035078,244 +0.035980,244 +0.035874,244 +0.035106,244 +0.034888,244 +0.034206,244 +0.034227,244 +0.034895,244 +0.038662,244 +0.034279,244 +0.039300,244 +0.035010,244 +0.034118,244 +0.034979,244 +0.034239,244 +0.034100,244 +0.047447,244 +0.034204,244 +0.034705,244 +0.034445,244 +0.034354,244 +0.034837,244 +0.034082,244 +0.034278,244 +0.034973,244 +0.034284,244 +0.034085,244 +0.034760,244 +0.034259,244 +0.034188,244 +0.034593,244 +0.034133,244 +0.034105,244 +0.034614,244 +0.034142,244 +0.034141,244 +0.034646,244 +0.034292,244 +0.034239,244 +0.034943,244 +0.034119,244 +0.034072,244 +0.034719,244 +0.034357,244 +0.034145,244 +0.035788,246 +0.035212,246 +0.035194,246 +0.035476,246 +0.035298,246 +0.036709,246 +0.035462,246 +0.035223,246 +0.035805,246 +0.035209,246 +0.035165,246 +0.035768,246 +0.035274,246 +0.035219,246 +0.035662,246 +0.035250,246 +0.035914,246 +0.036826,246 +0.038206,246 +0.044112,246 +0.041421,246 +0.043092,246 +0.042983,246 +0.036796,246 +0.039207,246 +0.038178,246 +0.037697,246 +0.039172,246 +0.038369,246 +0.038217,246 +0.037788,246 +0.039724,246 +0.043731,246 +0.039567,246 +0.039280,246 +0.036046,246 +0.035558,246 +0.037500,246 +0.037027,246 +0.037366,246 +0.038814,246 +0.037329,246 +0.036223,246 +0.036504,246 +0.035596,246 +0.036479,246 +0.037131,246 +0.035821,246 +0.036483,246 +0.035860,246 +0.035607,246 +0.036814,246 +0.035801,246 +0.035939,246 +0.036605,246 +0.036062,246 +0.036307,246 +0.035925,246 +0.036517,246 +0.037065,246 +0.036557,246 +0.035529,246 +0.036068,246 +0.036164,246 +0.035511,246 +0.036099,246 +0.035529,246 +0.035457,246 +0.036358,246 +0.035706,246 +0.035986,246 +0.037572,246 +0.035684,246 +0.036861,246 +0.035794,246 +0.035796,246 +0.036792,246 +0.035434,246 +0.035464,246 +0.036024,246 +0.035524,246 +0.035594,246 +0.036032,246 +0.035576,246 +0.036133,246 +0.035656,246 +0.035641,246 +0.036242,246 +0.035668,246 +0.035511,246 +0.036249,246 +0.035679,246 +0.035835,246 +0.036350,246 +0.035769,246 +0.035779,246 +0.036081,246 +0.035742,246 +0.036305,246 +0.035666,246 +0.036538,248 +0.036950,248 +0.036891,248 +0.037282,248 +0.037122,248 +0.035963,248 +0.035966,248 +0.036533,248 +0.035865,248 +0.036491,248 +0.036088,248 +0.035918,248 +0.036324,248 +0.036204,248 +0.036010,248 +0.036408,248 +0.036022,248 +0.035875,248 +0.036484,248 +0.035847,248 +0.035988,248 +0.036638,248 +0.035939,248 +0.036479,248 +0.036101,248 +0.035841,248 +0.037387,248 +0.035967,248 +0.036096,248 +0.036605,248 +0.037319,248 +0.036080,248 +0.036739,248 +0.035905,248 +0.036373,248 +0.036001,248 +0.035857,248 +0.036426,248 +0.036060,248 +0.036116,248 +0.036435,248 +0.036006,248 +0.035934,248 +0.036601,248 +0.036661,248 +0.038456,248 +0.037034,248 +0.036383,248 +0.037245,248 +0.036645,248 +0.036301,248 +0.036790,248 +0.036420,248 +0.036386,248 +0.039304,248 +0.037737,248 +0.036706,248 +0.037622,248 +0.039952,248 +0.039045,248 +0.039536,248 +0.038979,248 +0.037102,248 +0.040524,248 +0.047871,248 +0.039514,248 +0.038784,248 +0.036877,248 +0.036276,248 +0.036576,248 +0.036445,248 +0.036307,248 +0.038011,248 +0.036560,248 +0.036393,248 +0.039587,248 +0.037070,248 +0.038024,248 +0.036550,248 +0.036464,248 +0.039896,248 +0.040696,248 +0.039671,248 +0.037722,248 +0.037045,248 +0.037030,248 +0.036760,248 +0.036654,248 +0.036918,248 +0.036292,248 +0.036506,248 +0.036907,248 +0.036397,248 +0.036666,248 +0.037172,248 +0.036737,248 +0.037231,248 +0.036764,248 +0.037268,248 +0.037170,248 +0.038086,250 +0.038827,250 +0.038990,250 +0.037656,250 +0.039527,250 +0.037633,250 +0.037549,250 +0.038221,250 +0.037844,250 +0.038290,250 +0.037835,250 +0.037638,250 +0.038288,250 +0.037639,250 +0.037595,250 +0.038418,250 +0.037800,250 +0.038053,250 +0.037847,250 +0.037909,250 +0.038100,250 +0.037897,250 +0.037869,250 +0.038147,250 +0.037684,250 +0.038149,250 +0.038995,250 +0.043489,250 +0.045378,250 +0.039512,250 +0.043945,250 +0.041917,250 +0.046253,250 +0.051930,250 +0.061852,250 +0.060873,250 +0.055203,250 +0.056209,250 +0.049196,250 +0.052504,250 +0.054557,250 +0.049361,250 +0.055008,250 +0.048738,250 +0.048519,250 +0.040005,250 +0.052799,250 +0.053327,250 +0.043411,250 +0.044696,250 +0.042284,250 +0.040053,250 +0.043783,250 +0.040671,250 +0.043014,250 +0.041375,250 +0.039464,250 +0.038793,250 +0.037435,250 +0.037281,250 +0.037981,250 +0.037245,250 +0.037327,250 +0.037564,250 +0.037241,250 +0.037451,250 +0.039258,250 +0.037382,250 +0.037922,250 +0.037268,250 +0.037188,250 +0.037485,250 +0.037387,250 +0.038525,250 +0.038325,250 +0.038383,250 +0.038073,250 +0.040982,250 +0.074718,250 +0.038744,250 +0.038323,250 +0.038145,250 +0.037754,250 +0.039391,250 +0.037818,250 +0.038091,250 +0.038323,250 +0.037743,250 +0.038526,250 +0.037601,250 +0.037652,250 +0.038597,250 +0.037943,250 +0.038059,250 +0.037976,250 +0.037702,250 +0.038592,250 +0.037895,250 +0.037840,250 +0.038815,250 +0.038699,252 +0.039045,252 +0.038515,252 +0.038525,252 +0.039196,252 +0.038629,252 +0.038606,252 +0.039003,252 +0.038791,252 +0.039151,252 +0.038370,252 +0.038741,252 +0.039158,252 +0.038488,252 +0.039305,252 +0.038434,252 +0.038216,252 +0.039576,252 +0.038537,252 +0.038717,252 +0.038729,252 +0.038565,252 +0.039139,252 +0.038482,252 +0.038509,252 +0.039110,252 +0.038557,252 +0.039360,252 +0.038386,252 +0.038276,252 +0.039334,252 +0.038254,252 +0.038748,252 +0.038706,252 +0.038297,252 +0.039110,252 +0.038381,252 +0.038306,252 +0.038858,252 +0.038423,252 +0.039294,252 +0.038163,252 +0.037901,252 +0.038654,252 +0.037990,252 +0.038164,252 +0.038542,252 +0.037878,252 +0.038594,252 +0.038343,252 +0.038125,252 +0.038493,252 +0.037896,252 +0.038614,252 +0.038042,252 +0.037831,252 +0.038678,252 +0.038131,252 +0.038024,252 +0.038536,252 +0.042861,252 +0.038422,252 +0.037953,252 +0.037943,252 +0.038348,252 +0.037991,252 +0.038721,252 +0.038117,252 +0.037917,252 +0.038919,252 +0.037938,252 +0.038027,252 +0.039191,252 +0.037861,252 +0.038955,252 +0.040984,252 +0.038092,252 +0.040819,252 +0.038052,252 +0.039542,252 +0.037981,252 +0.037802,252 +0.039468,252 +0.037887,252 +0.037890,252 +0.038429,252 +0.037804,252 +0.038395,252 +0.038648,252 +0.037949,252 +0.038276,252 +0.037851,252 +0.038169,252 +0.039792,252 +0.042231,252 +0.039571,252 +0.038210,252 +0.038467,252 +0.038717,252 +0.038249,252 +0.039936,254 +0.039465,254 +0.039334,254 +0.040065,254 +0.039383,254 +0.040090,254 +0.039435,254 +0.039177,254 +0.040657,254 +0.039187,254 +0.040312,254 +0.039448,254 +0.039488,254 +0.040645,254 +0.040085,254 +0.041609,254 +0.039331,254 +0.039357,254 +0.041614,254 +0.039211,254 +0.041913,254 +0.039449,254 +0.039495,254 +0.041637,254 +0.039478,254 +0.041623,254 +0.039509,254 +0.039517,254 +0.043351,254 +0.039365,254 +0.041827,254 +0.039644,254 +0.039558,254 +0.041600,254 +0.039541,254 +0.041388,254 +0.039354,254 +0.039592,254 +0.041203,254 +0.039634,254 +0.041391,254 +0.039556,254 +0.039549,254 +0.041227,254 +0.039462,254 +0.041692,254 +0.039581,254 +0.039455,254 +0.041425,254 +0.039442,254 +0.041406,254 +0.039491,254 +0.039306,254 +0.042753,254 +0.039219,254 +0.041637,254 +0.039697,254 +0.039207,254 +0.043401,254 +0.039485,254 +0.041004,254 +0.038971,254 +0.039117,254 +0.041379,254 +0.038966,254 +0.040863,254 +0.038944,254 +0.038962,254 +0.042000,254 +0.039254,254 +0.039711,254 +0.039101,254 +0.038850,254 +0.040741,254 +0.039132,254 +0.039386,254 +0.039018,254 +0.038897,254 +0.039604,254 +0.039720,254 +0.039484,254 +0.039226,254 +0.039947,254 +0.039878,254 +0.039104,254 +0.039400,254 +0.040058,254 +0.039104,254 +0.039540,254 +0.039171,254 +0.039434,254 +0.039560,254 +0.039144,254 +0.039675,254 +0.039228,254 +0.039316,254 +0.039891,254 +0.038911,254 +0.039681,254 +0.039048,254 +0.045297,256 +0.045849,256 +0.045395,256 +0.046163,256 +0.045344,256 +0.046896,256 +0.045613,256 +0.048069,256 +0.045930,256 +0.046376,256 +0.045710,256 +0.046088,256 +0.047383,256 +0.045935,256 +0.047501,256 +0.045963,256 +0.047293,256 +0.046090,256 +0.047512,256 +0.045820,256 +0.047847,256 +0.045723,256 +0.047504,256 +0.045714,256 +0.046280,256 +0.048077,256 +0.045847,256 +0.047505,256 +0.045955,256 +0.047295,256 +0.045545,256 +0.047311,256 +0.045926,256 +0.047432,256 +0.045836,256 +0.047683,256 +0.045752,256 +0.047709,256 +0.046274,256 +0.046592,256 +0.047855,256 +0.050953,256 +0.047916,256 +0.045931,256 +0.047817,256 +0.046053,256 +0.049004,256 +0.046315,256 +0.048031,256 +0.046460,256 +0.048593,256 +0.046224,256 +0.047719,256 +0.045832,256 +0.047828,256 +0.046105,256 +0.045767,256 +0.047757,256 +0.045915,256 +0.048175,256 +0.046601,256 +0.047080,256 +0.045218,256 +0.046985,256 +0.045308,256 +0.046867,256 +0.045136,256 +0.047985,256 +0.045647,256 +0.045707,256 +0.046499,256 +0.045497,256 +0.047160,256 +0.045219,256 +0.047095,256 +0.045170,256 +0.046713,256 +0.045684,256 +0.046960,256 +0.045355,256 +0.046547,256 +0.045593,256 +0.045185,256 +0.046832,256 +0.045076,256 +0.047068,256 +0.045091,256 +0.046798,256 +0.045298,256 +0.048013,256 +0.045422,256 +0.046954,256 +0.045552,256 +0.046425,256 +0.046089,256 +0.045377,256 +0.045881,256 +0.045229,256 +0.045887,256 +0.045230,256 +0.042081,258 +0.042614,258 +0.041833,258 +0.042086,258 +0.041492,258 +0.043070,258 +0.042303,258 +0.042069,258 +0.042106,258 +0.041970,258 +0.042518,258 +0.041982,258 +0.042699,258 +0.041835,258 +0.042066,258 +0.042568,258 +0.042002,258 +0.042405,258 +0.042074,258 +0.042611,258 +0.042106,258 +0.041835,258 +0.042608,258 +0.041898,258 +0.042480,258 +0.042001,258 +0.041909,258 +0.042463,258 +0.045149,258 +0.043737,258 +0.042288,258 +0.042411,258 +0.041625,258 +0.042247,258 +0.042165,258 +0.041585,258 +0.042754,258 +0.041842,258 +0.043590,258 +0.041990,258 +0.043031,258 +0.044013,258 +0.041785,258 +0.043605,258 +0.041802,258 +0.043916,258 +0.041727,258 +0.041861,258 +0.043481,258 +0.042282,258 +0.043696,258 +0.042073,258 +0.043473,258 +0.041695,258 +0.041836,258 +0.043509,258 +0.041741,258 +0.043380,258 +0.042463,258 +0.041709,258 +0.042632,258 +0.042106,258 +0.042620,258 +0.042544,258 +0.045255,258 +0.043871,258 +0.041508,258 +0.041967,258 +0.041501,258 +0.041899,258 +0.041971,258 +0.041960,258 +0.041676,258 +0.041295,258 +0.042285,258 +0.041558,258 +0.042110,258 +0.041293,258 +0.041305,258 +0.042215,258 +0.041494,258 +0.041830,258 +0.041343,258 +0.041394,258 +0.042209,258 +0.041295,258 +0.042063,258 +0.043349,258 +0.045494,258 +0.043548,258 +0.041453,258 +0.046725,258 +0.041732,258 +0.046617,258 +0.041177,258 +0.046633,258 +0.041518,258 +0.045840,258 +0.042901,258 +0.041345,258 +0.048255,260 +0.042324,260 +0.047944,260 +0.042678,260 +0.047935,260 +0.042694,260 +0.044666,260 +0.046949,260 +0.042397,260 +0.048135,260 +0.042603,260 +0.047941,260 +0.042574,260 +0.048251,260 +0.042447,260 +0.047803,260 +0.042785,260 +0.042291,260 +0.048307,260 +0.042330,260 +0.048392,260 +0.042397,260 +0.048226,260 +0.042667,260 +0.047873,260 +0.042525,260 +0.042523,260 +0.048155,260 +0.042379,260 +0.049098,260 +0.042286,260 +0.048006,260 +0.042583,260 +0.047957,260 +0.042498,260 +0.043690,260 +0.046701,260 +0.042336,260 +0.048451,260 +0.042400,260 +0.048644,260 +0.042495,260 +0.048564,260 +0.042649,260 +0.045546,260 +0.045037,260 +0.042463,260 +0.048389,260 +0.042364,260 +0.047973,260 +0.042311,260 +0.048661,260 +0.042668,260 +0.047775,260 +0.043000,260 +0.042421,260 +0.049528,260 +0.042978,260 +0.048586,260 +0.042669,260 +0.048119,260 +0.042438,260 +0.048009,260 +0.042556,260 +0.043498,260 +0.047218,260 +0.042378,260 +0.048384,260 +0.042388,260 +0.048305,260 +0.042455,260 +0.048446,260 +0.042351,260 +0.044113,260 +0.047139,260 +0.042322,260 +0.048408,260 +0.042434,260 +0.048234,260 +0.042494,260 +0.048293,260 +0.042480,260 +0.047994,260 +0.042675,260 +0.042313,260 +0.048334,260 +0.042412,260 +0.048358,260 +0.042306,260 +0.048182,260 +0.042543,260 +0.048056,260 +0.042424,260 +0.042349,260 +0.048096,260 +0.042478,260 +0.049024,260 +0.042525,260 +0.048152,260 +0.042303,260 +0.051544,262 +0.045612,262 +0.050535,262 +0.045288,262 +0.048709,262 +0.047252,262 +0.045144,262 +0.051457,262 +0.045062,262 +0.051046,262 +0.045063,262 +0.050513,262 +0.045180,262 +0.051306,262 +0.045181,262 +0.050392,262 +0.045029,262 +0.051435,262 +0.045635,262 +0.050680,262 +0.045062,262 +0.050670,262 +0.045119,262 +0.050427,262 +0.045001,262 +0.046788,262 +0.049032,262 +0.045134,262 +0.050543,262 +0.045412,262 +0.051262,262 +0.045004,262 +0.050438,262 +0.045083,262 +0.051226,262 +0.045002,262 +0.050308,262 +0.045029,262 +0.052155,262 +0.045088,262 +0.050504,262 +0.045078,262 +0.050475,262 +0.045118,262 +0.050361,262 +0.046407,262 +0.045584,262 +0.050035,262 +0.045313,262 +0.051202,262 +0.045060,262 +0.051355,262 +0.045182,262 +0.051282,262 +0.049080,262 +0.046642,262 +0.045015,262 +0.045746,262 +0.045166,262 +0.045918,262 +0.045070,262 +0.045495,262 +0.045338,262 +0.045044,262 +0.045700,262 +0.045056,262 +0.045916,262 +0.045165,262 +0.045669,262 +0.045212,262 +0.045766,262 +0.045216,262 +0.045616,262 +0.045724,262 +0.045022,262 +0.045808,262 +0.045308,262 +0.047476,262 +0.045366,262 +0.045937,262 +0.045114,262 +0.045810,262 +0.045430,262 +0.045258,262 +0.045845,262 +0.045254,262 +0.045789,262 +0.045173,262 +0.045872,262 +0.045020,262 +0.045713,262 +0.045355,262 +0.045629,262 +0.045504,262 +0.045357,262 +0.045746,262 +0.045122,262 +0.045805,262 +0.045116,262 +0.045932,262 +0.045572,264 +0.045377,264 +0.044911,264 +0.045498,264 +0.045480,264 +0.045013,264 +0.045361,264 +0.044835,264 +0.045345,264 +0.044850,264 +0.045363,264 +0.044819,264 +0.045119,264 +0.045038,264 +0.044929,264 +0.045277,264 +0.045018,264 +0.045337,264 +0.044766,264 +0.045071,264 +0.045004,264 +0.045191,264 +0.044777,264 +0.044833,264 +0.045091,264 +0.044788,264 +0.045319,264 +0.044897,264 +0.045363,264 +0.045009,264 +0.045403,264 +0.044783,264 +0.044908,264 +0.045218,264 +0.044848,264 +0.045603,264 +0.044800,264 +0.045850,264 +0.047181,264 +0.045717,264 +0.044871,264 +0.045471,264 +0.044947,264 +0.044940,264 +0.045371,264 +0.044852,264 +0.045318,264 +0.044823,264 +0.045581,264 +0.044927,264 +0.045449,264 +0.045173,264 +0.044880,264 +0.045276,264 +0.045357,264 +0.045468,264 +0.044777,264 +0.045276,264 +0.044682,264 +0.047804,264 +0.046794,264 +0.046725,264 +0.044823,264 +0.044911,264 +0.049118,264 +0.045572,264 +0.045130,264 +0.045017,264 +0.045110,264 +0.044772,264 +0.045407,264 +0.045054,264 +0.045183,264 +0.045040,264 +0.044867,264 +0.045725,264 +0.044958,264 +0.045318,264 +0.044947,264 +0.045226,264 +0.044847,264 +0.045403,264 +0.045587,264 +0.045449,264 +0.045266,264 +0.044929,264 +0.045318,264 +0.044923,264 +0.045372,264 +0.045250,264 +0.045429,264 +0.044795,264 +0.044988,264 +0.045278,264 +0.045132,264 +0.045579,264 +0.044765,264 +0.045500,264 +0.044827,264 +0.045411,264 +0.048093,266 +0.048554,266 +0.047857,266 +0.048832,266 +0.048130,266 +0.048065,266 +0.048130,266 +0.047908,266 +0.048489,266 +0.048060,266 +0.048360,266 +0.047964,266 +0.048440,266 +0.047902,266 +0.048555,266 +0.048409,266 +0.048603,266 +0.047875,266 +0.048451,266 +0.047899,266 +0.048415,266 +0.047878,266 +0.048513,266 +0.048003,266 +0.048460,266 +0.048109,266 +0.048418,266 +0.047827,266 +0.048355,266 +0.048271,266 +0.048101,266 +0.048250,266 +0.047861,266 +0.048418,266 +0.047947,266 +0.048736,266 +0.047898,266 +0.048680,266 +0.047957,266 +0.048521,266 +0.048046,266 +0.048546,266 +0.048040,266 +0.049049,266 +0.047991,266 +0.048726,266 +0.048007,266 +0.048397,266 +0.047939,266 +0.048432,266 +0.047919,266 +0.048511,266 +0.048066,266 +0.048158,266 +0.048293,266 +0.048010,266 +0.048770,266 +0.048032,266 +0.048726,266 +0.047981,266 +0.048417,266 +0.048049,266 +0.048393,266 +0.048031,266 +0.048320,266 +0.048281,266 +0.049239,266 +0.047884,266 +0.048425,266 +0.047931,266 +0.048400,266 +0.047844,266 +0.048448,266 +0.048015,266 +0.048546,266 +0.048001,266 +0.048574,266 +0.048322,266 +0.048336,266 +0.048125,266 +0.048212,266 +0.048421,266 +0.048035,266 +0.048492,266 +0.047906,266 +0.048542,266 +0.048039,266 +0.048647,266 +0.047852,266 +0.048421,266 +0.047796,266 +0.048576,266 +0.047807,266 +0.048873,266 +0.047809,266 +0.048401,266 +0.047913,266 +0.048670,266 +0.048133,266 +0.048864,266 +0.048275,268 +0.048696,268 +0.048144,268 +0.048465,268 +0.048125,268 +0.048255,268 +0.048431,268 +0.048170,268 +0.048705,268 +0.048052,268 +0.048540,268 +0.048015,268 +0.048595,268 +0.048046,268 +0.048586,268 +0.048002,268 +0.049067,268 +0.048110,268 +0.048884,268 +0.048117,268 +0.048584,268 +0.048039,268 +0.048778,268 +0.048048,268 +0.048461,268 +0.048128,268 +0.048589,268 +0.048218,268 +0.048745,268 +0.048078,268 +0.048564,268 +0.048037,268 +0.048153,268 +0.048413,268 +0.047985,268 +0.048706,268 +0.048094,268 +0.048498,268 +0.048325,268 +0.048784,268 +0.048145,268 +0.048614,268 +0.048069,268 +0.048603,268 +0.048081,268 +0.048666,268 +0.048397,268 +0.048522,268 +0.048516,268 +0.048846,268 +0.048086,268 +0.048523,268 +0.048044,268 +0.048577,268 +0.048127,268 +0.048515,268 +0.048060,268 +0.048525,268 +0.048301,268 +0.048229,268 +0.048670,268 +0.048532,268 +0.048557,268 +0.048008,268 +0.048688,268 +0.048004,268 +0.048554,268 +0.048121,268 +0.048588,268 +0.048915,268 +0.048832,268 +0.048046,268 +0.048471,268 +0.048041,268 +0.048648,268 +0.048166,268 +0.048498,268 +0.048032,268 +0.048534,268 +0.048124,268 +0.048592,268 +0.048203,268 +0.048449,268 +0.048046,268 +0.048568,268 +0.048168,268 +0.048328,268 +0.048358,268 +0.048142,268 +0.048514,268 +0.048489,268 +0.048674,268 +0.048018,268 +0.048568,268 +0.048246,268 +0.048617,268 +0.048178,268 +0.048707,268 +0.048113,268 +0.048557,268 +0.051342,270 +0.051541,270 +0.051119,270 +0.051441,270 +0.051187,270 +0.051469,270 +0.050958,270 +0.051311,270 +0.051083,270 +0.051505,270 +0.051255,270 +0.051646,270 +0.050894,270 +0.051497,270 +0.050975,270 +0.051511,270 +0.050891,270 +0.051461,270 +0.051058,270 +0.051288,270 +0.051191,270 +0.051547,270 +0.051195,270 +0.051279,270 +0.051556,270 +0.051011,270 +0.051468,270 +0.050985,270 +0.051403,270 +0.051001,270 +0.051945,270 +0.050997,270 +0.051442,270 +0.051165,270 +0.051447,270 +0.051047,270 +0.051476,270 +0.051056,270 +0.051486,270 +0.051006,270 +0.051561,270 +0.051181,270 +0.051743,270 +0.051012,270 +0.051433,270 +0.050948,270 +0.051489,270 +0.051084,270 +0.051561,270 +0.051276,270 +0.051648,270 +0.050909,270 +0.051372,270 +0.051003,270 +0.051535,270 +0.050986,270 +0.051464,270 +0.050818,270 +0.051522,270 +0.050939,270 +0.051597,270 +0.050956,270 +0.051504,270 +0.050854,270 +0.051526,270 +0.050830,270 +0.051485,270 +0.050898,270 +0.051404,270 +0.056755,270 +0.052415,270 +0.051187,270 +0.051174,270 +0.051398,270 +0.050898,270 +0.051421,270 +0.051019,270 +0.051525,270 +0.050984,270 +0.051634,270 +0.051033,270 +0.051498,270 +0.050999,270 +0.051528,270 +0.050991,270 +0.051460,270 +0.050919,270 +0.051540,270 +0.051221,270 +0.051615,270 +0.050929,270 +0.051637,270 +0.051243,270 +0.051707,270 +0.051443,270 +0.051519,270 +0.050925,270 +0.051655,270 +0.051174,270 +0.051755,270 +0.049435,272 +0.049712,272 +0.049166,272 +0.049631,272 +0.049171,272 +0.049689,272 +0.049117,272 +0.049701,272 +0.049306,272 +0.049876,272 +0.049086,272 +0.049662,272 +0.049139,272 +0.049734,272 +0.049166,272 +0.049868,272 +0.049411,272 +0.049673,272 +0.049128,272 +0.049832,272 +0.049201,272 +0.049724,272 +0.051215,272 +0.050721,272 +0.049178,272 +0.050670,272 +0.049205,272 +0.050658,272 +0.049243,272 +0.050589,272 +0.049139,272 +0.050582,272 +0.049158,272 +0.050957,272 +0.049261,272 +0.050503,272 +0.049055,272 +0.050749,272 +0.049715,272 +0.051716,272 +0.049319,272 +0.050582,272 +0.049194,272 +0.050733,272 +0.049297,272 +0.051079,272 +0.049202,272 +0.050302,272 +0.049431,272 +0.050735,272 +0.049148,272 +0.050486,272 +0.049299,272 +0.050421,272 +0.049318,272 +0.050266,272 +0.049265,272 +0.050209,272 +0.049803,272 +0.051081,272 +0.049932,272 +0.050271,272 +0.049587,272 +0.050158,272 +0.049592,272 +0.050020,272 +0.049635,272 +0.050008,272 +0.050422,272 +0.049948,272 +0.049773,272 +0.049773,272 +0.050027,272 +0.049700,272 +0.050082,272 +0.049474,272 +0.050181,272 +0.049382,272 +0.050677,272 +0.049202,272 +0.052091,272 +0.049543,272 +0.050200,272 +0.049158,272 +0.050576,272 +0.049119,272 +0.050529,272 +0.049232,272 +0.050573,272 +0.049112,272 +0.050611,272 +0.049247,272 +0.050781,272 +0.049196,272 +0.050974,272 +0.049342,272 +0.050484,272 +0.049243,272 +0.050431,272 +0.049244,272 +0.055936,274 +0.053476,274 +0.053482,274 +0.054314,274 +0.052765,274 +0.054135,274 +0.052769,274 +0.054386,274 +0.053011,274 +0.054183,274 +0.052823,274 +0.054154,274 +0.052873,274 +0.054188,274 +0.052746,274 +0.054069,274 +0.052887,274 +0.054350,274 +0.054909,274 +0.053474,274 +0.053989,274 +0.052878,274 +0.054203,274 +0.052980,274 +0.054277,274 +0.052768,274 +0.054341,274 +0.052917,274 +0.054331,274 +0.052932,274 +0.054125,274 +0.052855,274 +0.054084,274 +0.053899,274 +0.053103,274 +0.054212,274 +0.052839,274 +0.055637,274 +0.053230,274 +0.054193,274 +0.052798,274 +0.054121,274 +0.052883,274 +0.054491,274 +0.053176,274 +0.054155,274 +0.052861,274 +0.054216,274 +0.053711,274 +0.053177,274 +0.054143,274 +0.052794,274 +0.054244,274 +0.052822,274 +0.054396,274 +0.052789,274 +0.055424,274 +0.052788,274 +0.054105,274 +0.052730,274 +0.054005,274 +0.052820,274 +0.054166,274 +0.053538,274 +0.053382,274 +0.054193,274 +0.053835,274 +0.055035,274 +0.055093,274 +0.055100,274 +0.054008,274 +0.055025,274 +0.053819,274 +0.054744,274 +0.053556,274 +0.056024,274 +0.054414,274 +0.053970,274 +0.055162,274 +0.053304,274 +0.055780,274 +0.053383,274 +0.055202,274 +0.053354,274 +0.054638,274 +0.053250,274 +0.054771,274 +0.053860,274 +0.054538,274 +0.054270,274 +0.053734,274 +0.054906,274 +0.053493,274 +0.055184,274 +0.053665,274 +0.053948,274 +0.053557,274 +0.054322,274 +0.053787,274 +0.053672,274 +0.054128,276 +0.054896,276 +0.054354,276 +0.054290,276 +0.054894,276 +0.053618,276 +0.054930,276 +0.053730,276 +0.054892,276 +0.054017,276 +0.056243,276 +0.054117,276 +0.056417,276 +0.054062,276 +0.055307,276 +0.055088,276 +0.054532,276 +0.054670,276 +0.053246,276 +0.054359,276 +0.053118,276 +0.054349,276 +0.053165,276 +0.054354,276 +0.053115,276 +0.054216,276 +0.053150,276 +0.054336,276 +0.054530,276 +0.053243,276 +0.055437,276 +0.053164,276 +0.054328,276 +0.053144,276 +0.054764,276 +0.054260,276 +0.054312,276 +0.056166,276 +0.055131,276 +0.053252,276 +0.053969,276 +0.054267,276 +0.053053,276 +0.054094,276 +0.053045,276 +0.053980,276 +0.053225,276 +0.055082,276 +0.053120,276 +0.053623,276 +0.053141,276 +0.054539,276 +0.053074,276 +0.053560,276 +0.053681,276 +0.053762,276 +0.055634,276 +0.053254,276 +0.053405,276 +0.054822,276 +0.054325,276 +0.053122,276 +0.053438,276 +0.053207,276 +0.053634,276 +0.053511,276 +0.053607,276 +0.053119,276 +0.053694,276 +0.053250,276 +0.053541,276 +0.053725,276 +0.053152,276 +0.053525,276 +0.053539,276 +0.053485,276 +0.053115,276 +0.053708,276 +0.053342,276 +0.053600,276 +0.053844,276 +0.053480,276 +0.053116,276 +0.053744,276 +0.053231,276 +0.053467,276 +0.053083,276 +0.053788,276 +0.053221,276 +0.053674,276 +0.053589,276 +0.053146,276 +0.053575,276 +0.053412,276 +0.053608,276 +0.053061,276 +0.053592,276 +0.053129,276 +0.053909,276 +0.052992,276 +0.056686,278 +0.056121,278 +0.056500,278 +0.056478,278 +0.055945,278 +0.056477,278 +0.055941,278 +0.056564,278 +0.055995,278 +0.056528,278 +0.056414,278 +0.056325,278 +0.056512,278 +0.056066,278 +0.056793,278 +0.056123,278 +0.056582,278 +0.055945,278 +0.056602,278 +0.056426,278 +0.056327,278 +0.056475,278 +0.056034,278 +0.056723,278 +0.056029,278 +0.056717,278 +0.056075,278 +0.056660,278 +0.056743,278 +0.056300,278 +0.056511,278 +0.055932,278 +0.056550,278 +0.056184,278 +0.056580,278 +0.056058,278 +0.056266,278 +0.056487,278 +0.056185,278 +0.056611,278 +0.055784,278 +0.056613,278 +0.056066,278 +0.056499,278 +0.056814,278 +0.055931,278 +0.056476,278 +0.056853,278 +0.056435,278 +0.055918,278 +0.056794,278 +0.057376,278 +0.056570,278 +0.056438,278 +0.055998,278 +0.056864,278 +0.056111,278 +0.056630,278 +0.055871,278 +0.056763,278 +0.056253,278 +0.056417,278 +0.056558,278 +0.055982,278 +0.056670,278 +0.055937,278 +0.056469,278 +0.055934,278 +0.056489,278 +0.056263,278 +0.056659,278 +0.056447,278 +0.056029,278 +0.056709,278 +0.056107,278 +0.056422,278 +0.055829,278 +0.056632,278 +0.056431,278 +0.055938,278 +0.056483,278 +0.055816,278 +0.056627,278 +0.055849,278 +0.056359,278 +0.055843,278 +0.057168,278 +0.056457,278 +0.055904,278 +0.056399,278 +0.055899,278 +0.057277,278 +0.055828,278 +0.056306,278 +0.055929,278 +0.056550,278 +0.056387,278 +0.055821,278 +0.056925,278 +0.056030,278 +0.056039,280 +0.054997,280 +0.056157,280 +0.055203,280 +0.055545,280 +0.055597,280 +0.055629,280 +0.055476,280 +0.055143,280 +0.055797,280 +0.055150,280 +0.055650,280 +0.055104,280 +0.055887,280 +0.055714,280 +0.055130,280 +0.055771,280 +0.055378,280 +0.055863,280 +0.055104,280 +0.055756,280 +0.055104,280 +0.055971,280 +0.055739,280 +0.055151,280 +0.055592,280 +0.055293,280 +0.055854,280 +0.055124,280 +0.055650,280 +0.055182,280 +0.055857,280 +0.055306,280 +0.055486,280 +0.055568,280 +0.055182,280 +0.055911,280 +0.055098,280 +0.055473,280 +0.055237,280 +0.055612,280 +0.055152,280 +0.055658,280 +0.055459,280 +0.055312,280 +0.055762,280 +0.055169,280 +0.055615,280 +0.055152,280 +0.055908,280 +0.055204,280 +0.055705,280 +0.055386,280 +0.055221,280 +0.056019,280 +0.055110,280 +0.055731,280 +0.055292,280 +0.056103,280 +0.055521,280 +0.055667,280 +0.055302,280 +0.055408,280 +0.055828,280 +0.055129,280 +0.055558,280 +0.055119,280 +0.055847,280 +0.055210,280 +0.055756,280 +0.055195,280 +0.055800,280 +0.055859,280 +0.055122,280 +0.055436,280 +0.055093,280 +0.055607,280 +0.055062,280 +0.055480,280 +0.055228,280 +0.055440,280 +0.055857,280 +0.055213,280 +0.055463,280 +0.055038,280 +0.055800,280 +0.055128,280 +0.055669,280 +0.055285,280 +0.055366,280 +0.055615,280 +0.055130,280 +0.055400,280 +0.055457,280 +0.055801,280 +0.056098,280 +0.055713,280 +0.055297,280 +0.055464,280 +0.055897,280 +0.061178,282 +0.060940,282 +0.060385,282 +0.061193,282 +0.060907,282 +0.060585,282 +0.060973,282 +0.061083,282 +0.060710,282 +0.060792,282 +0.060495,282 +0.060994,282 +0.060557,282 +0.060853,282 +0.060833,282 +0.060674,282 +0.061016,282 +0.060525,282 +0.060771,282 +0.060985,282 +0.060689,282 +0.060932,282 +0.060415,282 +0.060865,282 +0.065272,282 +0.060795,282 +0.060861,282 +0.060535,282 +0.060739,282 +0.060891,282 +0.060540,282 +0.060519,282 +0.060961,282 +0.060622,282 +0.060677,282 +0.060447,282 +0.060994,282 +0.060663,282 +0.060750,282 +0.060640,282 +0.060824,282 +0.061117,282 +0.060853,282 +0.060488,282 +0.061053,282 +0.060691,282 +0.060881,282 +0.060800,282 +0.060519,282 +0.060955,282 +0.060484,282 +0.060771,282 +0.061039,282 +0.060620,282 +0.061179,282 +0.060412,282 +0.060860,282 +0.061263,282 +0.060412,282 +0.060798,282 +0.060409,282 +0.061082,282 +0.060783,282 +0.060369,282 +0.060791,282 +0.060680,282 +0.060823,282 +0.060749,282 +0.060454,282 +0.060993,282 +0.060702,282 +0.060723,282 +0.060732,282 +0.060771,282 +0.060674,282 +0.060352,282 +0.060997,282 +0.060970,282 +0.060575,282 +0.060690,282 +0.060320,282 +0.061755,282 +0.060964,282 +0.060513,282 +0.060540,282 +0.060371,282 +0.060994,282 +0.061590,282 +0.060600,282 +0.061419,282 +0.060636,282 +0.060621,282 +0.060998,282 +0.060314,282 +0.060860,282 +0.060558,282 +0.060567,282 +0.060689,282 +0.060647,282 +0.060750,282 +0.058921,284 +0.058936,284 +0.059176,284 +0.058603,284 +0.059371,284 +0.058771,284 +0.060202,284 +0.059112,284 +0.058822,284 +0.059130,284 +0.058993,284 +0.059290,284 +0.059066,284 +0.058856,284 +0.059348,284 +0.059093,284 +0.059185,284 +0.058805,284 +0.059290,284 +0.059479,284 +0.059320,284 +0.059182,284 +0.058853,284 +0.059464,284 +0.059027,284 +0.058661,284 +0.058992,284 +0.058628,284 +0.060052,284 +0.058768,284 +0.058889,284 +0.058936,284 +0.058981,284 +0.059222,284 +0.058769,284 +0.059221,284 +0.059170,284 +0.059063,284 +0.059002,284 +0.058687,284 +0.059421,284 +0.058926,284 +0.058686,284 +0.059023,284 +0.058684,284 +0.059015,284 +0.058624,284 +0.059053,284 +0.059106,284 +0.058753,284 +0.059009,284 +0.058660,284 +0.059045,284 +0.058886,284 +0.059208,284 +0.058953,284 +0.058749,284 +0.059335,284 +0.058585,284 +0.059025,284 +0.059127,284 +0.058718,284 +0.059328,284 +0.058785,284 +0.059074,284 +0.059040,284 +0.059038,284 +0.059060,284 +0.058690,284 +0.059024,284 +0.058809,284 +0.062781,284 +0.062612,284 +0.059017,284 +0.062422,284 +0.061937,284 +0.058787,284 +0.062778,284 +0.058929,284 +0.062076,284 +0.062005,284 +0.058849,284 +0.062248,284 +0.058850,284 +0.061965,284 +0.061794,284 +0.060139,284 +0.063142,284 +0.059049,284 +0.061887,284 +0.061915,284 +0.058789,284 +0.061870,284 +0.058607,284 +0.061869,284 +0.062020,284 +0.058899,284 +0.061880,284 +0.058643,284 +0.062002,284 +0.065981,286 +0.063085,286 +0.065705,286 +0.066395,286 +0.063186,286 +0.065908,286 +0.065949,286 +0.062979,286 +0.065761,286 +0.063785,286 +0.064798,286 +0.064375,286 +0.062746,286 +0.063914,286 +0.063989,286 +0.062908,286 +0.064041,286 +0.063173,286 +0.062956,286 +0.063980,286 +0.063076,286 +0.063271,286 +0.063561,286 +0.062711,286 +0.063212,286 +0.063110,286 +0.063045,286 +0.063386,286 +0.062728,286 +0.063221,286 +0.063484,286 +0.063042,286 +0.063231,286 +0.063095,286 +0.062986,286 +0.063989,286 +0.062867,286 +0.063241,286 +0.063624,286 +0.062800,286 +0.063251,286 +0.063172,286 +0.062871,286 +0.063358,286 +0.062740,286 +0.063326,286 +0.063316,286 +0.062790,286 +0.063419,286 +0.063193,286 +0.062935,286 +0.063784,286 +0.063122,286 +0.064094,286 +0.067483,286 +0.062756,286 +0.063161,286 +0.063158,286 +0.062857,286 +0.063157,286 +0.063145,286 +0.062850,286 +0.063292,286 +0.062744,286 +0.063340,286 +0.063324,286 +0.062920,286 +0.063674,286 +0.063221,286 +0.064689,286 +0.063610,286 +0.062748,286 +0.064264,286 +0.063843,286 +0.062842,286 +0.063239,286 +0.063366,286 +0.063586,286 +0.063319,286 +0.063017,286 +0.063736,286 +0.063332,286 +0.062838,286 +0.063847,286 +0.063231,286 +0.063415,286 +0.063301,286 +0.063123,286 +0.062875,286 +0.063330,286 +0.063156,286 +0.063569,286 +0.063378,286 +0.063101,286 +0.063237,286 +0.063325,286 +0.062859,286 +0.063421,286 +0.062976,286 +0.063373,286 +0.065231,288 +0.065049,288 +0.065202,288 +0.065060,288 +0.064777,288 +0.065043,288 +0.064091,288 +0.063515,288 +0.064231,288 +0.064605,288 +0.063848,288 +0.064219,288 +0.063622,288 +0.063975,288 +0.064850,288 +0.064732,288 +0.065307,288 +0.065324,288 +0.064693,288 +0.065179,288 +0.065310,288 +0.064844,288 +0.065290,288 +0.064943,288 +0.065224,288 +0.065342,288 +0.064823,288 +0.065187,288 +0.063950,288 +0.063716,288 +0.064065,288 +0.064224,288 +0.063697,288 +0.064055,288 +0.063800,288 +0.063614,288 +0.064130,288 +0.063993,288 +0.063986,288 +0.064079,288 +0.063585,288 +0.064072,288 +0.065238,288 +0.065154,288 +0.065189,288 +0.065756,288 +0.064803,288 +0.065795,288 +0.065136,288 +0.064741,288 +0.065112,288 +0.064663,288 +0.065022,288 +0.065250,288 +0.064910,288 +0.065307,288 +0.065144,288 +0.064645,288 +0.065135,288 +0.065097,288 +0.064721,288 +0.065196,288 +0.065120,288 +0.064938,288 +0.065088,288 +0.064598,288 +0.065139,288 +0.065346,288 +0.064673,288 +0.065012,288 +0.065111,288 +0.064899,288 +0.064962,288 +0.065290,288 +0.064877,288 +0.065087,288 +0.065402,288 +0.064656,288 +0.065058,288 +0.064950,288 +0.064708,288 +0.064946,288 +0.064646,288 +0.064967,288 +0.065059,288 +0.064819,288 +0.064989,288 +0.065037,288 +0.064656,288 +0.065418,288 +0.065141,288 +0.065037,288 +0.064033,288 +0.063644,288 +0.063892,288 +0.063866,288 +0.064388,288 +0.065006,288 +0.065188,288 +0.064741,288 +0.066894,290 +0.066439,290 +0.065936,290 +0.066189,290 +0.066283,290 +0.065873,290 +0.066252,290 +0.066334,290 +0.066409,290 +0.066338,290 +0.066291,290 +0.065812,290 +0.066247,290 +0.066345,290 +0.065786,290 +0.066483,290 +0.066503,290 +0.066027,290 +0.065965,290 +0.066054,290 +0.066133,290 +0.066230,290 +0.065766,290 +0.066377,290 +0.066257,290 +0.065813,290 +0.066228,290 +0.066223,290 +0.065864,290 +0.066141,290 +0.066147,290 +0.065878,290 +0.066227,290 +0.066032,290 +0.065745,290 +0.066243,290 +0.066123,290 +0.066314,290 +0.066257,290 +0.066300,290 +0.065877,290 +0.066223,290 +0.066203,290 +0.066044,290 +0.066232,290 +0.066328,290 +0.065944,290 +0.066421,290 +0.066077,290 +0.066266,290 +0.066172,290 +0.066210,290 +0.065911,290 +0.066374,290 +0.065973,290 +0.066060,290 +0.066242,290 +0.065823,290 +0.066221,290 +0.066933,290 +0.065836,290 +0.066934,290 +0.066470,290 +0.065773,290 +0.066684,290 +0.066227,290 +0.065889,290 +0.066280,290 +0.066238,290 +0.065969,290 +0.066354,290 +0.066274,290 +0.065947,290 +0.066260,290 +0.066301,290 +0.065937,290 +0.066530,290 +0.066418,290 +0.066328,290 +0.066159,290 +0.066282,290 +0.065979,290 +0.066425,290 +0.066258,290 +0.066737,290 +0.066388,290 +0.066281,290 +0.065948,290 +0.066293,290 +0.066228,290 +0.066327,290 +0.066376,290 +0.066135,290 +0.066085,290 +0.066672,290 +0.066038,290 +0.066262,290 +0.066243,290 +0.065868,290 +0.067703,290 +0.068319,292 +0.065282,292 +0.066127,292 +0.066207,292 +0.065202,292 +0.065459,292 +0.065341,292 +0.065483,292 +0.065563,292 +0.065269,292 +0.065137,292 +0.065553,292 +0.066180,292 +0.065189,292 +0.065532,292 +0.065671,292 +0.065080,292 +0.065441,292 +0.065277,292 +0.066142,292 +0.065382,292 +0.065143,292 +0.065610,292 +0.065445,292 +0.064946,292 +0.065470,292 +0.065479,292 +0.065502,292 +0.065399,292 +0.065523,292 +0.065342,292 +0.065557,292 +0.065380,292 +0.065116,292 +0.065437,292 +0.065276,292 +0.065088,292 +0.065440,292 +0.065563,292 +0.065113,292 +0.065422,292 +0.067850,292 +0.065228,292 +0.065730,292 +0.065117,292 +0.065829,292 +0.065496,292 +0.065036,292 +0.065513,292 +0.065588,292 +0.065061,292 +0.065361,292 +0.065541,292 +0.065403,292 +0.065816,292 +0.065784,292 +0.065190,292 +0.065547,292 +0.065565,292 +0.065511,292 +0.066175,292 +0.065516,292 +0.065099,292 +0.065469,292 +0.065223,292 +0.065155,292 +0.065435,292 +0.065118,292 +0.065490,292 +0.065777,292 +0.064977,292 +0.065431,292 +0.065489,292 +0.065406,292 +0.065351,292 +0.065495,292 +0.067420,292 +0.065514,292 +0.065273,292 +0.065096,292 +0.065467,292 +0.065280,292 +0.065053,292 +0.065718,292 +0.065420,292 +0.065287,292 +0.065960,292 +0.065394,292 +0.065229,292 +0.066330,292 +0.065249,292 +0.065580,292 +0.065533,292 +0.065008,292 +0.065597,292 +0.065550,292 +0.065213,292 +0.065404,292 +0.065527,292 +0.065221,292 +0.070272,294 +0.069894,294 +0.069447,294 +0.069989,294 +0.070190,294 +0.069640,294 +0.069925,294 +0.069958,294 +0.069810,294 +0.069592,294 +0.070002,294 +0.069833,294 +0.069407,294 +0.070111,294 +0.070008,294 +0.069346,294 +0.069899,294 +0.070334,294 +0.074104,294 +0.069582,294 +0.073152,294 +0.072409,294 +0.069674,294 +0.073156,294 +0.072663,294 +0.072446,294 +0.069788,294 +0.072631,294 +0.073153,294 +0.069503,294 +0.072394,294 +0.072529,294 +0.072809,294 +0.069747,294 +0.073212,294 +0.072429,294 +0.069558,294 +0.072261,294 +0.072765,294 +0.072226,294 +0.069624,294 +0.073477,294 +0.072357,294 +0.069487,294 +0.072482,294 +0.072561,294 +0.072795,294 +0.069543,294 +0.073329,294 +0.072326,294 +0.069506,294 +0.072625,294 +0.072249,294 +0.072306,294 +0.069604,294 +0.072639,294 +0.072928,294 +0.069496,294 +0.072464,294 +0.072455,294 +0.104865,294 +0.123952,294 +0.086093,294 +0.070427,294 +0.070317,294 +0.071085,294 +0.070397,294 +0.070592,294 +0.070531,294 +0.070553,294 +0.070144,294 +0.070019,294 +0.070232,294 +0.070128,294 +0.069989,294 +0.070661,294 +0.070622,294 +0.070228,294 +0.070136,294 +0.070735,294 +0.071010,294 +0.070106,294 +0.072252,294 +0.070903,294 +0.070173,294 +0.071147,294 +0.070767,294 +0.070937,294 +0.070518,294 +0.071030,294 +0.070945,294 +0.070058,294 +0.070628,294 +0.070684,294 +0.070469,294 +0.070892,294 +0.070566,294 +0.070380,294 +0.069266,294 +0.070158,294 +0.066924,296 +0.065989,296 +0.066792,296 +0.071059,296 +0.066570,296 +0.066726,296 +0.066726,296 +0.065890,296 +0.066737,296 +0.066712,296 +0.065697,296 +0.067572,296 +0.066782,296 +0.065651,296 +0.066919,296 +0.066653,296 +0.065605,296 +0.066935,296 +0.069359,296 +0.065816,296 +0.066748,296 +0.069562,296 +0.065701,296 +0.066538,296 +0.066545,296 +0.065713,296 +0.066771,296 +0.066588,296 +0.065797,296 +0.066558,296 +0.066710,296 +0.065667,296 +0.066725,296 +0.067926,296 +0.066058,296 +0.067089,296 +0.066650,296 +0.066134,296 +0.067048,296 +0.066233,296 +0.066122,296 +0.066731,296 +0.065608,296 +0.066676,296 +0.066550,296 +0.065618,296 +0.066656,296 +0.066657,296 +0.065731,296 +0.067849,296 +0.066753,296 +0.065648,296 +0.066515,296 +0.066662,296 +0.065703,296 +0.066702,296 +0.066753,296 +0.065804,296 +0.066577,296 +0.066754,296 +0.065707,296 +0.066704,296 +0.066666,296 +0.065873,296 +0.068169,296 +0.066783,296 +0.065783,296 +0.066619,296 +0.066828,296 +0.065808,296 +0.066684,296 +0.066990,296 +0.065875,296 +0.066807,296 +0.065919,296 +0.065617,296 +0.065887,296 +0.065956,296 +0.066141,296 +0.065855,296 +0.065801,296 +0.065621,296 +0.066005,296 +0.067027,296 +0.065780,296 +0.065900,296 +0.065676,296 +0.065972,296 +0.066076,296 +0.065811,296 +0.065789,296 +0.078423,296 +0.070391,296 +0.088537,296 +0.083934,296 +0.074624,296 +0.074875,296 +0.074878,296 +0.072253,296 +0.072570,296 +0.081909,298 +0.079450,298 +0.073185,298 +0.072747,298 +0.072461,298 +0.072164,298 +0.072826,298 +0.072595,298 +0.072652,298 +0.072581,298 +0.072825,298 +0.078690,298 +0.080412,298 +0.079329,298 +0.080308,298 +0.079911,298 +0.077494,298 +0.073448,298 +0.077835,298 +0.073131,298 +0.081008,298 +0.079288,298 +0.080261,298 +0.076548,298 +0.075494,298 +0.079484,298 +0.082832,298 +0.078936,298 +0.079092,298 +0.078865,298 +0.075786,298 +0.079212,298 +0.077011,298 +0.074678,298 +0.074451,298 +0.072372,298 +0.073247,298 +0.072424,298 +0.074625,298 +0.074462,298 +0.076295,298 +0.073360,298 +0.072790,298 +0.073887,298 +0.074409,298 +0.073295,298 +0.072906,298 +0.073051,298 +0.072361,298 +0.072727,298 +0.072425,298 +0.073496,298 +0.072491,298 +0.072717,298 +0.072248,298 +0.073342,298 +0.072399,298 +0.072332,298 +0.072550,298 +0.072592,298 +0.072652,298 +0.073236,298 +0.076327,298 +0.074498,298 +0.073960,298 +0.072665,298 +0.072811,298 +0.073851,298 +0.078967,298 +0.077097,298 +0.076110,298 +0.075197,298 +0.075843,298 +0.075148,298 +0.076042,298 +0.074501,298 +0.075122,298 +0.073719,298 +0.074472,298 +0.074512,298 +0.073973,298 +0.074826,298 +0.073913,298 +0.073266,298 +0.072438,298 +0.073866,298 +0.073519,298 +0.074649,298 +0.072506,298 +0.073378,298 +0.073498,298 +0.072656,298 +0.073167,298 +0.074034,298 +0.073469,298 +0.072580,298 +0.073423,298 +0.073679,298 +0.078404,298 +0.079920,298 diff --git a/buch/papers/multiplikation/code/meas/winograd.txt b/buch/papers/multiplikation/code/meas/winograd.txt new file mode 100644 index 0000000..3a4d88b --- /dev/null +++ b/buch/papers/multiplikation/code/meas/winograd.txt @@ -0,0 +1,11 @@ +0.000000,2 +0.000001,4 +0.000002,8 +0.000011,16 +0.000091,32 +0.000663,64 +0.005182,128 +0.046038,256 +0.533429,512 +4.257458,1024 +130.378038,2048 diff --git a/buch/papers/multiplikation/code/meas_1024.pdf b/buch/papers/multiplikation/code/meas_1024.pdf Binary files differnew file mode 100644 index 0000000..fd0a108 --- /dev/null +++ b/buch/papers/multiplikation/code/meas_1024.pdf diff --git a/buch/papers/multiplikation/code/meas_1024.txt b/buch/papers/multiplikation/code/meas_1024.txt new file mode 100644 index 0000000..c5ce619 --- /dev/null +++ b/buch/papers/multiplikation/code/meas_1024.txt @@ -0,0 +1,6 @@ +2.000000000000000000e+00 4.000000000000000000e+00 8.000000000000000000e+00 1.600000000000000000e+01 3.200000000000000000e+01 6.400000000000000000e+01 1.280000000000000000e+02 2.560000000000000000e+02 5.120000000000000000e+02 1.024000000000000000e+03 +1.502037048339843750e-05 6.628036499023437500e-05 4.780292510986328125e-04 2.713203430175781250e-03 2.115225791931152344e-02 1.758832931518554688e-01 1.338865518569946289e+00 1.009106445312500000e+01 8.192077994346618652e+01 7.835870332717895508e+02 +6.675720214843750000e-06 7.200241088867187500e-05 5.540847778320312500e-04 3.144979476928710938e-03 2.545046806335449219e-02 2.083067893981933594e-01 1.659256219863891602e+00 1.319160294532775879e+01 1.046767003536224365e+02 9.679818902015686035e+02 +1.668930053710937500e-05 1.628398895263671875e-04 7.648468017578125000e-04 4.426956176757812500e-03 2.922415733337402344e-02 1.800994873046875000e-01 1.286747694015502930e+00 9.412034273147583008e+00 6.263725924491882324e+01 4.427414393424987793e+02 +2.408027648925781250e-05 8.463859558105468750e-05 4.761219024658203125e-04 2.339839935302734375e-03 1.682758331298828125e-02 1.299476623535156250e-01 1.048770904541015625e+00 8.114667415618896484e+00 6.373566389083862305e+01 6.489995403289794922e+02 +1.573562622070312500e-05 7.152557373046875000e-06 7.152557373046875000e-06 2.074241638183593750e-05 5.388259887695312500e-05 6.365776062011718750e-05 3.257751464843750000e-03 1.396179199218750000e-03 3.274917602539062500e-03 2.186250686645507812e-02 diff --git a/buch/papers/multiplikation/code/meas_128.pdf b/buch/papers/multiplikation/code/meas_128.pdf Binary files differnew file mode 100644 index 0000000..ed1ec63 --- /dev/null +++ b/buch/papers/multiplikation/code/meas_128.pdf diff --git a/buch/papers/multiplikation/code/meas_128.txt b/buch/papers/multiplikation/code/meas_128.txt new file mode 100644 index 0000000..976bbdf --- /dev/null +++ b/buch/papers/multiplikation/code/meas_128.txt @@ -0,0 +1,6 @@ +2.000000000000000000e+00 4.000000000000000000e+00 8.000000000000000000e+00 1.600000000000000000e+01 3.200000000000000000e+01 6.400000000000000000e+01 1.280000000000000000e+02 +1.978874206542968750e-05 1.134872436523437500e-04 4.298686981201171875e-04 2.815246582031250000e-03 2.616596221923828125e-02 1.767718791961669922e-01 1.293319463729858398e+00 +6.675720214843750000e-06 1.251697540283203125e-04 4.818439483642578125e-04 3.490447998046875000e-03 2.465796470642089844e-02 2.014584541320800781e-01 1.630620479583740234e+00 +2.408027648925781250e-05 2.126693725585937500e-04 1.172780990600585938e-03 4.364490509033203125e-03 3.148293495178222656e-02 2.010228633880615234e-01 1.429297924041748047e+00 +2.932548522949218750e-05 1.466274261474609375e-04 4.270076751708984375e-04 2.837419509887695312e-03 1.723575592041015625e-02 1.308519840240478516e-01 1.015527009963989258e+00 +3.337860107421875000e-05 1.096725463867187500e-05 9.536743164062500000e-06 3.600120544433593750e-05 2.837181091308593750e-05 5.912780761718750000e-05 1.981019973754882812e-03 diff --git a/buch/papers/multiplikation/code/meas_16.pdf b/buch/papers/multiplikation/code/meas_16.pdf Binary files differnew file mode 100644 index 0000000..c2c3834 --- /dev/null +++ b/buch/papers/multiplikation/code/meas_16.pdf diff --git a/buch/papers/multiplikation/code/meas_16.txt b/buch/papers/multiplikation/code/meas_16.txt new file mode 100644 index 0000000..69f85bd --- /dev/null +++ b/buch/papers/multiplikation/code/meas_16.txt @@ -0,0 +1,6 @@ +2.000000000000000000e+00 4.000000000000000000e+00 8.000000000000000000e+00 1.600000000000000000e+01 +1.549720764160156250e-05 6.914138793945312500e-05 5.259513854980468750e-04 2.841711044311523438e-03 +6.914138793945312500e-06 7.557868957519531250e-05 4.496574401855468750e-04 3.437519073486328125e-03 +1.883506774902343750e-05 1.499652862548828125e-04 8.952617645263671875e-04 4.348516464233398438e-03 +2.694129943847656250e-05 1.082420349121093750e-04 4.131793975830078125e-04 2.580165863037109375e-03 +1.621246337890625000e-05 1.120567321777343750e-05 9.298324584960937500e-06 1.239776611328125000e-05 diff --git a/buch/papers/multiplikation/code/meas_256.pdf b/buch/papers/multiplikation/code/meas_256.pdf Binary files differnew file mode 100644 index 0000000..5f049dc --- /dev/null +++ b/buch/papers/multiplikation/code/meas_256.pdf diff --git a/buch/papers/multiplikation/code/meas_256.txt b/buch/papers/multiplikation/code/meas_256.txt new file mode 100644 index 0000000..15035c6 --- /dev/null +++ b/buch/papers/multiplikation/code/meas_256.txt @@ -0,0 +1,6 @@ +2.000000000000000000e+00 4.000000000000000000e+00 8.000000000000000000e+00 1.600000000000000000e+01 3.200000000000000000e+01 6.400000000000000000e+01 1.280000000000000000e+02 2.560000000000000000e+02 +1.049041748046875000e-05 5.340576171875000000e-05 5.936622619628906250e-04 2.707719802856445312e-03 2.246093750000000000e-02 1.631326675415039062e-01 1.335460901260375977e+00 1.052024245262145996e+01 +4.768371582031250000e-06 5.531311035156250000e-05 8.208751678466796875e-04 3.099203109741210938e-03 2.490711212158203125e-02 2.070860862731933594e-01 1.739669799804687500e+00 1.384817218780517578e+01 +1.478195190429687500e-05 1.132488250732421875e-04 5.970001220703125000e-04 3.906726837158203125e-03 3.041696548461914062e-02 2.000186443328857422e-01 1.392681598663330078e+00 9.388872385025024414e+00 +1.716613769531250000e-05 6.866455078125000000e-05 5.314350128173828125e-04 2.688407897949218750e-03 1.695108413696289062e-02 1.297233104705810547e-01 1.087257385253906250e+00 8.699601650238037109e+00 +2.336502075195312500e-05 4.529953002929687500e-06 8.106231689453125000e-06 4.291534423828125000e-05 6.008148193359375000e-05 8.988380432128906250e-05 1.647472381591796875e-04 4.460811614990234375e-04 diff --git a/buch/papers/multiplikation/code/meas_32.pdf b/buch/papers/multiplikation/code/meas_32.pdf Binary files differnew file mode 100644 index 0000000..94c3731 --- /dev/null +++ b/buch/papers/multiplikation/code/meas_32.pdf diff --git a/buch/papers/multiplikation/code/meas_32.txt b/buch/papers/multiplikation/code/meas_32.txt new file mode 100644 index 0000000..afdb6d5 --- /dev/null +++ b/buch/papers/multiplikation/code/meas_32.txt @@ -0,0 +1,6 @@ +2.000000000000000000e+00 4.000000000000000000e+00 8.000000000000000000e+00 1.600000000000000000e+01 3.200000000000000000e+01 +1.215934753417968750e-05 5.459785461425781250e-05 3.700256347656250000e-04 3.249406814575195312e-03 1.996850967407226562e-02 +4.529953002929687500e-06 5.650520324707031250e-05 4.577636718750000000e-04 4.029273986816406250e-03 2.444481849670410156e-02 +1.311302185058593750e-05 1.165866851806640625e-04 6.275177001953125000e-04 4.323244094848632812e-03 2.624726295471191406e-02 +1.835823059082031250e-05 6.890296936035156250e-05 3.914833068847656250e-04 2.423048019409179688e-03 1.761770248413085938e-02 +1.263618469238281250e-05 5.006790161132812500e-06 5.960464477539062500e-06 1.144409179687500000e-05 3.600120544433593750e-05 diff --git a/buch/papers/multiplikation/code/meas_512.pdf b/buch/papers/multiplikation/code/meas_512.pdf Binary files differnew file mode 100644 index 0000000..4d8f04b --- /dev/null +++ b/buch/papers/multiplikation/code/meas_512.pdf diff --git a/buch/papers/multiplikation/code/meas_512.txt b/buch/papers/multiplikation/code/meas_512.txt new file mode 100644 index 0000000..1b2089d --- /dev/null +++ b/buch/papers/multiplikation/code/meas_512.txt @@ -0,0 +1,6 @@ +2.000000000000000000e+00 4.000000000000000000e+00 8.000000000000000000e+00 1.600000000000000000e+01 3.200000000000000000e+01 6.400000000000000000e+01 1.280000000000000000e+02 2.560000000000000000e+02 5.120000000000000000e+02 +1.358985900878906250e-05 5.817413330078125000e-05 4.582405090332031250e-04 3.082036972045898438e-03 2.020335197448730469e-02 1.636352539062500000e-01 1.280331134796142578e+00 1.093638324737548828e+01 8.666778349876403809e+01 +6.198883056640625000e-06 6.270408630371093750e-05 4.820823669433593750e-04 3.279924392700195312e-03 2.462601661682128906e-02 2.034928798675537109e-01 1.630282878875732422e+00 1.372955965995788574e+01 1.104150602817535400e+02 +1.621246337890625000e-05 1.292228698730468750e-04 6.661415100097656250e-04 4.615545272827148438e-03 2.836179733276367188e-02 1.843333244323730469e-01 1.310264825820922852e+00 9.937873125076293945e+00 6.667592120170593262e+01 +2.217292785644531250e-05 7.486343383789062500e-05 4.060268402099609375e-04 2.455949783325195312e-03 1.685857772827148438e-02 1.299629211425781250e-01 1.173750638961791992e+00 8.648802757263183594e+00 6.876212453842163086e+01 +2.431869506835937500e-05 5.006790161132812500e-06 6.914138793945312500e-06 8.106231689453125000e-06 2.717971801757812500e-05 6.461143493652343750e-05 1.480579376220703125e-04 5.280971527099609375e-04 3.390312194824218750e-03 diff --git a/buch/papers/multiplikation/code/meas_64.pdf b/buch/papers/multiplikation/code/meas_64.pdf Binary files differnew file mode 100644 index 0000000..3a90949 --- /dev/null +++ b/buch/papers/multiplikation/code/meas_64.pdf diff --git a/buch/papers/multiplikation/code/meas_64.txt b/buch/papers/multiplikation/code/meas_64.txt new file mode 100644 index 0000000..ae6ff9b --- /dev/null +++ b/buch/papers/multiplikation/code/meas_64.txt @@ -0,0 +1,6 @@ +2.000000000000000000e+00 4.000000000000000000e+00 8.000000000000000000e+00 1.600000000000000000e+01 3.200000000000000000e+01 6.400000000000000000e+01 +1.645088195800781250e-05 7.295608520507812500e-05 3.807544708251953125e-04 2.672195434570312500e-03 2.010774612426757812e-02 1.662156581878662109e-01 +7.390975952148437500e-06 7.843971252441406250e-05 4.265308380126953125e-04 3.107070922851562500e-03 2.457642555236816406e-02 2.122807502746582031e-01 +1.931190490722656250e-05 1.568794250488281250e-04 7.593631744384765625e-04 3.937005996704101562e-03 3.596329689025878906e-02 2.131938934326171875e-01 +2.622604370117187500e-05 9.226799011230468750e-05 3.504753112792968750e-04 2.469539642333984375e-03 1.652932167053222656e-02 1.281068325042724609e-01 +1.788139343261718750e-05 7.152557373046875000e-06 6.914138793945312500e-06 1.120567321777343750e-05 2.884864807128906250e-05 6.914138793945312500e-05 diff --git a/buch/papers/multiplikation/code/meas_8.pdf b/buch/papers/multiplikation/code/meas_8.pdf Binary files differnew file mode 100644 index 0000000..16d177d --- /dev/null +++ b/buch/papers/multiplikation/code/meas_8.pdf diff --git a/buch/papers/multiplikation/code/meas_8.txt b/buch/papers/multiplikation/code/meas_8.txt new file mode 100644 index 0000000..6cf6515 --- /dev/null +++ b/buch/papers/multiplikation/code/meas_8.txt @@ -0,0 +1,6 @@ +2.000000000000000000e+00 4.000000000000000000e+00 8.000000000000000000e+00 +1.144409179687500000e-05 5.412101745605468750e-05 3.845691680908203125e-04 +4.768371582031250000e-06 5.698204040527343750e-05 5.209445953369140625e-04 +1.382827758789062500e-05 1.180171966552734375e-04 6.978511810302734375e-04 +1.859664916992187500e-05 7.033348083496093750e-05 3.886222839355468750e-04 +1.525878906250000000e-05 4.529953002929687500e-06 7.390975952148437500e-06 diff --git a/buch/papers/multiplikation/code/test.tex b/buch/papers/multiplikation/code/test.tex new file mode 100644 index 0000000..40ea239 --- /dev/null +++ b/buch/papers/multiplikation/code/test.tex @@ -0,0 +1,92 @@ +% This file was created by tikzplotlib v0.9.8. +\begin{tikzpicture} + +\definecolor{color0}{rgb}{0.886274509803922,0.290196078431373,0.2} +\definecolor{color1}{rgb}{0.203921568627451,0.541176470588235,0.741176470588235} +\definecolor{color2}{rgb}{0.596078431372549,0.556862745098039,0.835294117647059} +\definecolor{color3}{rgb}{0.984313725490196,0.756862745098039,0.368627450980392} + +\begin{axis}[ +axis background/.style={fill=white!89.8039215686275!black}, +axis line style={white}, +legend cell align={left}, +legend style={ + fill opacity=0.8, + draw opacity=1, + text opacity=1, + at={(0.03,0.97)}, + anchor=north west, + draw=white!80!black, + fill=white!89.8039215686275!black +}, +tick align=outside, +tick pos=left, +x grid style={white}, +xlabel={n}, +xmajorgrids, +xmin=-4.3, xmax=134.3, +xtick style={color=white!33.3333333333333!black}, +y grid style={white}, +ylabel={time (s)}, +ymajorgrids, +ymin=-0.0834965705871582, ymax=1.75356960296631, +ytick style={color=white!33.3333333333333!black} +] +\addplot [line width=2pt, color0] +table {% +2 1.57356262207031e-05 +4 5.96046447753906e-05 +8 0.000428915023803711 +16 0.00276041030883789 +32 0.0217020511627197 +64 0.160412073135376 +128 1.3419406414032 +}; +\addlegendentry{Standard MM} +\addplot [line width=2pt, color1] +table {% +2 6.43730163574219e-06 +4 6.69956207275391e-05 +8 0.00048065185546875 +16 0.00336766242980957 +32 0.0257236957550049 +64 0.231612205505371 +128 1.67006659507751 +}; +\addlegendentry{Divide and conquer MM} +\addplot [line width=2pt, color2] +table {% +2 2.90870666503906e-05 +4 0.000133275985717773 +8 0.000703096389770508 +16 0.00453472137451172 +32 0.0282893180847168 +64 0.181003332138062 +128 1.40816903114319 +}; +\addlegendentry{Strassen MM} +\addplot [line width=2pt, white!46.6666666666667!black] +table {% +2 2.19345092773438e-05 +4 9.01222229003906e-05 +8 0.000406503677368164 +16 0.00258469581604004 +32 0.0171687602996826 +64 0.126588344573975 +128 1.02698183059692 +}; +\addlegendentry{Winograd MM} +\addplot [line width=2pt, color3] +table {% +2 1.45435333251953e-05 +4 1.1444091796875e-05 +8 7.39097595214844e-06 +16 1.28746032714844e-05 +32 2.83718109130859e-05 +64 0.000111103057861328 +128 0.000159025192260742 +}; +\addlegendentry{np MM} +\end{axis} + +\end{tikzpicture} diff --git a/buch/papers/multiplikation/einlteung.tex b/buch/papers/multiplikation/einlteung.tex new file mode 100755 index 0000000..bc4bfcf --- /dev/null +++ b/buch/papers/multiplikation/einlteung.tex @@ -0,0 +1,52 @@ +% +% einleitung.tex -- Beispiel-File für die Einleitung +% +% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% +\section{Einleitung \label{multiplikation:section:einleitung}} +\rhead{Einleitung} + +Die Multiplikation zweier Matrizen ist eine wichtige Operation die in verschiedensten Teilen der Mathematik Anwendung findet. +Die Beschreibung der Multiplikation aus der Definition 2.10 (\textcolor{blue} {Kein Hyperlink zu einer Definition?)}: + +Eine $m\times n$-Matrix $\mathbf{A}\in M_{m\times n}(\Bbbk)$ und eine +$n\times p$-Matrix $\mathbf{B}\in M_{n\times l}(\Bbbk)$ haben als Produkt +eine $n\times l$-Matrix $\mathbf{C}=\mathbf{AB}\in M_{n\times l}(\Bbbk)$ mit den +Koeffizienten +\begin{equation} +c_{ij} = \sum_{k=1}^n a_{ik} b_{kj}. +\label{multiplikation:eq:MM} +\end{equation} +Grafisch kann die Matrizenmultiplikation $AB=C$ wie in \ref{multiplikation:fig:mm_viz} visualisiert werden. +\begin{figure} + \center + \includegraphics[]{papers/multiplikation/images/mm_visualisation} + \caption{Matrizen Multiplikation} + \label{multiplikation:fig:mm_viz} +\end{figure} +Im Fall einer Matrizengr\"osse von $2\times 2$ +\begin{equation} + \begin{bmatrix} +A_{11} & A_{12}\\ +A_{21} & A_{22} +\end{bmatrix} +\begin{bmatrix} +B_{11} & B_{12}\\ +B_{21} & B_{22} +\end{bmatrix} += +\begin{bmatrix} +C_{11} & C_{12}\\ +C_{21} & C_{22} +\end{bmatrix} +\end{equation} +kann die Gleichung der einzelnen Terme +\begin{equation} \label{multiplikation:eq:MM_exp} +\begin{split} +C_{11} &= A_{11} \cdot B_{11} + A_{12} \cdot B_{21}\\ +C_{12} &= A_{11} \cdot B_{12} + A_{12} \cdot B_{22}\\ +C_{21} &= A_{21} \cdot B_{11} + A_{22} \cdot B_{21}\\ +C_{22} &= A_{21} \cdot B_{12} + A_{22} \cdot B_{22} +\end{split} +\end{equation} +explizit geschrieben werden. diff --git a/buch/papers/multiplikation/images/bigo.pdf b/buch/papers/multiplikation/images/bigo.pdf Binary files differnew file mode 100644 index 0000000..dfa2ba4 --- /dev/null +++ b/buch/papers/multiplikation/images/bigo.pdf diff --git a/buch/papers/multiplikation/images/bigo.tex b/buch/papers/multiplikation/images/bigo.tex new file mode 100644 index 0000000..e3293e4 --- /dev/null +++ b/buch/papers/multiplikation/images/bigo.tex @@ -0,0 +1,107 @@ +\documentclass[border=10pt,varwidth]{standalone} +\usepackage[left=25mm,right=25mm,top=25mm,bottom=25mm]{geometry} +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage{times} +\usepackage{geometry} +\usepackage{amsmath} +\usepackage{amssymb} +\usepackage{mathrsfs} +\usepackage{amsfonts} +\usepackage{amsthm} +\usepackage{lipsum} +\usepackage{amscd} +\usepackage{graphicx} +\usepackage{fancyhdr} +\usepackage{textcomp} +\usepackage{pgfplots} +\usepackage{txfonts} +\usepackage[all]{xy} +\usepackage{paralist} +\usepackage[colorlinks=true]{hyperref} +\usepackage{array} +\usepackage{tikz} +\usepackage{slashed} +\usepackage{pdfpages} +\usepackage{cite} +\usepackage{url} +\usepackage{amsmath,amsfonts,amssymb} +\usepackage{tikz} +\usetikzlibrary{arrows,matrix,positioning} +\usetikzlibrary{overlay-beamer-styles} +\usetikzlibrary{matrix.skeleton} +\usetikzlibrary{automata,positioning} +\usetikzlibrary{decorations.text} +\usepackage{listings} +\usepackage{multirow} +\usepackage{color} + +\begin{document} + +\begin{tikzpicture} +\begin{axis}[ + axis lines = left, + xlabel = $n$ (Data Input), + ylabel = {$t$ (time)}, + legend pos=north east, + very thick, + ymax = 500, + yticklabels=\empty, + xticklabels=\empty, + scale only axis=true, + width=12cm, height=6cm, + ] +\addplot [ + domain= 1:20, + samples=100, + color=red, +] +{1}; +\addlegendentry{$\mathcal{O}(1)$} +\addplot [ + domain= 1:20, + samples=100, + color=green, +] +{x}; +\addlegendentry{$\mathcal{O}(n)$} +\addplot [ + domain= 1:20, + samples=100, + color=blue, +] +{x^2}; +\addlegendentry{$\mathcal{O}(n^2)$} +\addplot [ + domain= 1:10, + samples=100, + color=purple, +] +{x^3}; +\addlegendentry{$\mathcal{O}(n^3)$} +\addplot [ + domain= 1:10, + samples=100, + color=black, +] +{exp(x)}; +\addlegendentry{$\mathcal{O}(e^n)$} +\addplot [ + domain= 1:20, + samples=100, + color=orange, +] +{log2(x)}; +\addlegendentry{$\mathcal{O}(\log n)$} + +\addplot [ + domain= 1:20, + samples=100, + color=gray, +] +{x*log2(x)}; +\addlegendentry{$\mathcal{O}(n \log n)$} +\end{axis} +\end{tikzpicture} + +\end{document} diff --git a/buch/papers/multiplikation/images/mm_visualisation.pdf b/buch/papers/multiplikation/images/mm_visualisation.pdf Binary files differnew file mode 100644 index 0000000..9309df1 --- /dev/null +++ b/buch/papers/multiplikation/images/mm_visualisation.pdf diff --git a/buch/papers/multiplikation/images/mm_visualisation.tex b/buch/papers/multiplikation/images/mm_visualisation.tex new file mode 100644 index 0000000..6e8f789 --- /dev/null +++ b/buch/papers/multiplikation/images/mm_visualisation.tex @@ -0,0 +1,45 @@ + + \begin{tikzpicture}[ampersand replacement=\&] + + \matrix (A)[matrix of math nodes, label skeleton, left delimiter=[,right delimiter={]}] at (0,0) + { + A_{1,1} \& \cdots \& A_{1,k} \& \cdots \& A_{1,n} \\ + \vdots \& \& \vdots \& \& \vdots \\ + A_{i,1} \& \cdots \& A_{i,k} \& \cdots \& A_{i,n} \\ + \vdots \& \& \vdots \& \& \vdots \\ + A_{m,1} \& \cdots \& A_{m,k} \& \cdots \& A_{m,n} \\ + }; + + \node [right=0.1 of A] (mul) {$\cdot$}; + + + \matrix (B)[right=0.1 of mul, matrix of math nodes, label skeleton, left delimiter=[,right delimiter={]}] + { + B_{1,1} \& \cdots \& B_{1,j} \& \cdots \& B_{1,p} \\ + \vdots \& \& \vdots \& \& \vdots \\ + B_{k,1} \& \cdots \& B_{k,j} \& \cdots \& B_{k,p} \\ + \vdots \& \& \vdots \& \& \vdots \\ + B_{n,1} \& \cdots \& B_{n,j} \& \cdots \& B_{n,p} \\ + }; + + \node [right=0.1 of B] (eq) {$=$}; + + \matrix (C)[right=0.1 of eq, matrix of math nodes, label skeleton, left delimiter=[,right delimiter={]}] + { + C_{1,1} \& \cdots \& C_{1,j} \& \cdots \& C_{1,p} \\ + \vdots \& \& \vdots \& \& \vdots \\ + C_{i,1} \& \cdots \& C_{i,j} \& \cdots \& C_{i,p} \\ + \vdots \& \& \vdots \& \& \vdots \\ + C_{m,1} \& \cdots \& C_{m,j} \& \cdots \& C_{m,p} \\ + }; + + + \node[opacity=0.5, rounded corners=2pt, inner sep=-1pt, fill=green, fit=(A-3-1)(A-3-5)] {}; + \node[opacity=0.5, rounded corners=2pt, inner sep=-1pt, fill=blue, fit=(B-1-3)(B-5-3)] {}; + \node[opacity=0.5, rounded corners=2pt, inner sep=-1pt, fill=red, fit=(C-3-3)] {}; + + + \end{tikzpicture} + +\end{document} + diff --git a/buch/papers/multiplikation/images/strassen.pdf b/buch/papers/multiplikation/images/strassen.pdf Binary files differnew file mode 100644 index 0000000..9899dcb --- /dev/null +++ b/buch/papers/multiplikation/images/strassen.pdf diff --git a/buch/papers/multiplikation/images/strassen.tex b/buch/papers/multiplikation/images/strassen.tex new file mode 100644 index 0000000..797772b --- /dev/null +++ b/buch/papers/multiplikation/images/strassen.tex @@ -0,0 +1,140 @@ +\documentclass[border=10pt]{standalone} +\usepackage[left=25mm,right=25mm,top=25mm,bottom=25mm]{geometry} +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage{times} +\usepackage{geometry} +\usepackage{amsmath} +\usepackage{amssymb} +\usepackage{mathrsfs} +\usepackage{amsfonts} +\usepackage{amsthm} +\usepackage{lipsum} +\usepackage{amscd} +\usepackage{graphicx} +\usepackage{fancyhdr} +\usepackage{textcomp} +\usepackage{pgfplots} +\usepackage{txfonts} +\usepackage[all]{xy} +\usepackage{paralist} +\usepackage[colorlinks=true]{hyperref} +\usepackage{array} +\usepackage{tikz} +\usepackage{slashed} +\usepackage{pdfpages} +\usepackage{cite} +\usepackage{url} +\usepackage{amsmath,amsfonts,amssymb} +\usepackage{tikz} +\usetikzlibrary{arrows,matrix,positioning} +\usetikzlibrary{overlay-beamer-styles} +\usetikzlibrary{matrix.skeleton} +\usetikzlibrary{automata,positioning} +\usetikzlibrary{decorations.text} +\usepackage{listings} +\usepackage{multirow} +\usepackage{color} + +\begin{document} + +\begin{tikzpicture}[ampersand replacement=\&] + +\foreach \i in {1,...,4} +{ + \small{ + \matrix (X\i)[matrix of math nodes,nodes in empty cells, + nodes = {draw, minimum size=10mm, + anchor=center, + inner sep=0pt, outer sep=0pt}, + column sep=-\pgflinewidth, + row sep=-\pgflinewidth, + ] at (0,-\i*5) + { + A_{11}B_{11} \& A_{12}B_{11} \& A_{21}B_{11} \& A_{22}B_{11} \\ + A_{11}B_{21} \& A_{12}B_{21} \& A_{21}B_{21} \& A_{22}B_{21} \\ + A_{11}B_{11} \& A_{12}B_{12} \& A_{21}B_{12} \& A_{22}B_{12} \\ + A_{11}B_{22} \& A_{12}B_{22} \& A_{21}B_{22} \& A_{22}B_{22} \\ + };} + + \foreach \j in {1,...,7} + { + \matrix(M\i\j)[matrix of math nodes,nodes in empty cells, + nodes = {draw, minimum size=10mm, + anchor=center, + inner sep=0pt, outer sep=0pt}, + column sep=-\pgflinewidth, + row sep=-\pgflinewidth, + ] at (\j*5,-\i*5) + { + \& \& \& \\ + \& \& \& \\ + \& \& \& \\ + \& \& \& \\ + }; + } +} + +\huge{ + \node at (-3,-20) {$C_{22}=$}; + \node at (-3,-15) {$C_{21}=$} ; + \node at (-3,-10) {$C_{12}=$} ; + \node at (-3,-5) {$C_{11}=$} ; + + \node at (5,-2) {I}; + \node at (10,-2) {II}; + \node at (15,-2) {III}; + \node at (20,-2) {IV}; + \node at (25,-2) {V}; + \node at (30,-2) {VI}; + \node at (35,-2) {VII}; +} + + +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(X1-1-1)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(X1-2-2)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(X2-3-1)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(X2-4-2)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(X3-1-3)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(X3-2-4)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(X4-3-3)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(X4-4-4)] {}; + +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M11-4-1)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M11-1-4)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M11-4-4)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M11-1-1)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M14-1-4)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M14-2-4)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M15-4-1)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M15-4-2)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M17-2-4)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M17-4-4)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M17-2-2)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M17-4-2)] {}; + +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M23-3-1)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M23-4-1)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M25-4-1)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M25-4-2)] {}; + +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M32-1-4)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M32-1-3)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M34-1-4)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M34-2-4)] {}; + +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M41-4-1)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M41-1-4)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M41-4-4)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M41-1-1)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M42-1-4)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M42-1-3)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M43-3-1)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M43-4-1)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M46-1-3)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M46-1-1)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M46-3-3)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M46-3-1)] {}; +\end{tikzpicture} + +\end{document} diff --git a/buch/papers/multiplikation/loesungsmethoden.tex b/buch/papers/multiplikation/loesungsmethoden.tex new file mode 100755 index 0000000..83be814 --- /dev/null +++ b/buch/papers/multiplikation/loesungsmethoden.tex @@ -0,0 +1,309 @@ +% +% teil2.tex -- Beispiel-File für teil2 +% +% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% + +\section{L\"osungsmethoden} +\rhead{L\"osungsmethoden} + +In diesem Abschnitt werden mehrere Algorithmen zur Berechnung der Matrizenmultiplikation vorgestellt, auch werden Libraries zur automatisierten Verwendung von vordefinierten Algorithmen gezeigt. + +\subsection{Standard Algorithmus} + +Der Standard Methode kann im Algorithmus \ref{multiplikation:alg:smm} entnommen werden. +Hierf\"ur wurde die Gleichung \eqref{multiplikation:eq:MM} direkt implementiert. +Die \texttt{For i} Schleife iteriert \"uber alle Zeilen der $\mathbf{A}$ Matrix, die \texttt{For j} Schleife iteriert \"uber alle Spalten der $\mathbf{B}$ Matrix und die \texttt{For k} Schleife iteriert \"uber alle Eintr\"age dieser Zeilen bzw. Spalten. + +\begin{algorithm}\caption{Matrix Multiplication} + \label{multiplikation:alg:smm} + \setlength{\lineskip}{7pt} + \begin{algorithmic}[1] + \Function{MM}{$\textbf{A}, \textbf{B}$} + \State $sum \gets 0$ + \State $n \gets columns(\textbf{A}) == rows(\textbf{B})$ + \State $m \gets rows(\textbf{A})$ + \State $p \gets columns(\textbf{B})$ + \State $\textbf{C} \gets zeros(m,p)$ + \For{$i = 0,1,2 \dots,m-1$} + \For{$j = 0,1,2 \dots,p-1$} + \State $sum \gets 0$ + \For{$k = 0,1,2 \dots,n-1$} + \State $sum \gets sum + \textbf{A}[i][k] \cdot \textbf{B}[k][j]$ + \EndFor + \State $\textbf{C}[i][j] \gets sum $ + \EndFor + \EndFor + \State \textbf{return} $\textbf{C}$ + \EndFunction + \end{algorithmic} +\end{algorithm} + +Die Laufzeit dieser Struktur mit drei \texttt{For} Schleifen ist $\mathcal{O}(n^3)$ + +\subsubsection{Divide and Conquer Methode} + +F\"ur gewisse Algorithmen f\"uhren \textit{Divide and Conquer} Ans\"atze zu markant besseren Laufzeiten. +Das bekannteste Beispiel ist wohl die \textit{Fast Fourier Transform} wobei die Laufzeit von $\mathcal{O}(n^2)$ zu $\mathcal{O}(n \log n)$ verbessert werden kann. + +Die Matrizenmultiplikation kann ebenfalls mit solch einem Ansatz berechnet werden. +Zur vereinfachten Veranschaulichung kann die Situation, mit $\mathbf{A}$ und $\mathbf{B}$ der gr\"osse $2^n \times 2^n$ verwendet werden. +Die Matrizen $\mathbf{A}$ und $\mathbf{B}$ werden in jeweils vier Blockmatrizen der gr\"osse $2^{n-1} \times 2^{n-1}$ +\begin{equation} +\mathbf{A}\mathbf{B}= +\begin{bmatrix} +\mathbf{A}_{11} & \mathbf{A}_{12}\\ +\mathbf{A}_{21} & \mathbf{A}_{22} +\end{bmatrix} +\begin{bmatrix} +\mathbf{B}_{11} & \mathbf{B}_{12}\\ +\mathbf{B}_{21} & \mathbf{B}_{22} +\end{bmatrix} += +\begin{bmatrix} +\mathbf{C}_{11} & \mathbf{C}_{12}\\ +\mathbf{C}_{21} & \mathbf{C}_{22} +\end{bmatrix} +\end{equation} +aufgeteilt. +Die Berechnung +\begin{equation} +\mathbf{C}_{ij} = \sum_{k=1}^n \mathbf{A}_{ik} \mathbf{B}_{kj} +\label{multiplikation:eq:MM_block} +\end{equation} +ist identisch zu der Gleichung \eqref{multiplikation:eq:MM}, wobei hier f\"ur die Multiplikation die Matrizenmultiplikation verwendet wird. + +Der Algorithmus \ref{multiplikation:alg:devide_mm} zeigt den \textit{Divide and Conquer} Ansatz, +Der Grundstruktur dieser Methode besteht aus dem rekursiven Aufruf der Funktion mit den erzeugten Blockmatrizen. +Der rekursive Aufruf wird bis zu der Gr\"osse der Matrizen von $N = 2 \times 2$ durchgef\"uhrt. +\begin{algorithm}\caption{Divide and Conquer Matrix Multiplication} + \setlength{\lineskip}{7pt} + \label{multiplikation:alg:devide_mm} + \begin{algorithmic} + \Function{MM}{$\textbf{A}, \textbf{B}, n$} + \If{$n = 2$} + \State $ \mathbf{C} \gets zeros(n, n)$ + \State $C[0, 0] \gets A[0][0]\cdot B[0][0]+A[0][1]\cdot B[1][0]$ + \State $C[0, 1] \gets A[0][0]\cdot B[0][1]+A[0][1]\cdot B[1][1]$ + \State $C[1, 0] \gets A[1][0]\cdot B[0][0]+A[1][1]\cdot B[1][0]$ + \State $C[1, 1] \gets A[1][0]\cdot B[0][1]+A[1][1]\cdot B[1][1]$ + \Else + \State $ m \gets n/2$ + \State $\mathbf{A11}, \mathbf{A12}, \mathbf{A21}, \mathbf{A22} \gets \mathbf{A}[:m][:m], \mathbf{A}[:m][m:], \mathbf{A}[m:][:m], \mathbf{A}[m:][m:]$ + \State $\mathbf{B11}, \mathbf{B12}, \mathbf{B21}, \mathbf{B22} \gets \mathbf{B}[:m][:m], \mathbf{B}[:m][m:], \mathbf{B}[m:][:m], \mathbf{B}[m:][m:]$ + + \State $\mathbf{C11} \gets \text{MM}(\mathbf{A11}, \mathbf{B11},n) + \text{MM}(\mathbf{A12}, \mathbf{B21},n)$ + \State $\mathbf{C12} \gets \text{MM}(\mathbf{A11},\mathbf{B12},n) + \text{MM}(\mathbf{A12}, \mathbf{B22},n)$ + \State $\mathbf{C21} \gets \text{MM}(\mathbf{A21}, \mathbf{B11},n) + \text{MM}(\mathbf{A22}, \mathbf{B21},n)$ + \State $\mathbf{C22} \gets \text{MM}(\mathbf{A21}, \mathbf{B12},n) + \text{MM}(\mathbf{A22}, \mathbf{B22},n)$ + \State $ C \gets vstack(hstack(C11, C12), hstack(C21, C22))$ + + \EndIf + \State \textbf{return} $\textbf{C}$ + + \EndFunction + \end{algorithmic} +\end{algorithm} + +Die Laufzeit dieser rekursiven Funktion kann mit dem \textit{Master Theorem} berechnet werden. +Ohne auf diesen vertieft einzugehen, bestimmt die Anzahl rekursiver Aufrufe der Funktion die Laufzeit. +In diesem Fall wird die Funktion pro Durchlauf acht mal rekursiv aufgerufen, dies f\"uhrt +\begin{equation} \label{multiplikation:eq:laufzeitdac} + \mathcal{T}(n) = + \begin{cases} + 1 & \text{if } n \leq 2\\ + 8 \cdot \mathcal{T}(\frac{n}{2}) + n^2 & \text{if } n > 2 + \end{cases} = \mathcal{O}(n^{\log_2 8}) = \mathcal{O}(n^{3}) +\end{equation} +zu einer kubischen Laufzeit. +Die Addition zweier Matrizen $\mathbf{A} + \mathbf{B} = \mathbf{C}$ hat eine Laufzeit von $\mathcal{O}(n^{2})$ und kann neben dem dominierendem Anteil von $\mathcal{O}(n^{3})$ ignoriert werden. +In diesem Fall hat der \textit{Divide and Conquer} Ansatz zu keiner Verbesserung gef\"uhrt. + + +\subsection{Strassen's Algorithmus} + +Strassen's Algorithmus \cite{multiplikation:strassen_1969} beschreibt die Matrizenmultiplikation mit einer Vielzahl von Additionen, Subtraktionen und Multiplikationen. +Die Grundlegenden Terme +\begin{equation} \label{multiplikation:eq:strassen} +\begin{split} +\text{\textbf{P}} &= (\mathbf{A}_{11} + \mathbf{A}_{22}) \cdot (\mathbf{B}_{11} + \mathbf{B}_{22}) \\ +\text{\textbf{Q}} &= (\mathbf{A}_{21} + \mathbf{A}_{22}) \cdot \mathbf{B}_{11} \\ +\text{\textbf{R}} &= \mathbf{A}_{11} \cdot (\mathbf{B}_{12}-\mathbf{B}_{22}) \\ +\text{\textbf{S}} &= \mathbf{A}_{22} \cdot (-\mathbf{B}_{11}+\mathbf{B}_{21}) \\ +\text{\textbf{T}} &= (\mathbf{A}_{11} + \mathbf{A}_{12}) \cdot \mathbf{B}_{22} \\ +\text{\textbf{U}} &= (-\mathbf{A}_{11} + \mathbf{A}_{21}) \cdot (\mathbf{B}_{11} + \mathbf{B}_{12}) \\ +\text{\textbf{V}} &= (\mathbf{A}_{12} - \mathbf{A}_{22}) \cdot (\mathbf{B}_{21} + \mathbf{B}_{22}) +\end{split} +\end{equation} +aus $\mathbf{A}$ und $\mathbf{B}$, werden f\"ur die Berechnung der Matrix $\mathbf{C}$ +\begin{equation} \label{multiplikation:eq:strassen2} +\begin{split} +\mathbf{C}_{11} &= \text{\textbf{P}} + \text{\textbf{S}} - \text{\textbf{T}} + \text{\textbf{V}} \\ +\mathbf{C}_{21} &= \text{\textbf{R}} + \text{\textbf{T}} \\ +\mathbf{C}_{12} &= \text{\textbf{Q}} + \text{\textbf{S}}\\ +\mathbf{C}_{22} &= \text{\textbf{P}} + \text{\textbf{R}} - \text{\textbf{Q}} + \text{\textbf{U}} +\end{split} +\end{equation} +gebraucht. +\begin{algorithm}\caption{Strassen Matrix Multiplication} + \label{multiplikation:alg:strassen} + \setlength{\lineskip}{7pt} + \begin{algorithmic} + \Function{strassen}{$\textbf{A}, \textbf{B}, n$} + \If{$n = 2$} + \State $ \mathbf{C} \gets zeros((n, n))$ + \State $P \gets (A[0][0]+A[1][1])\cdot( B[0][0]+B[1][1])$ + \State $Q \gets (A[1][0]+A[1][1])\cdot B[0][0]$ + \State $R \gets A[0][0]\cdot (B[0][1]-B[1][1])$ + \State $S \gets A[1][1]\cdot (B[1][0]-B[0][0])$ + \State $T \gets (A[0][0]+A[0][1])\cdot B[1][1]$ + \State $U \gets (A[1][0]-A[0][0])\cdot (B[0][0]+B[0][1])$ + \State $V \gets (A[0][1]-A[1][1])\cdot (B[1][0]+B[1][1])$ + \State $C[0][0] \gets P+S-T+V$ + \State $C[0][1] \gets R+T$ + \State $C[1][0] \gets Q+S$ + \State $C[1][1] \gets P+R-Q+U$ + \Else + \State $ m \gets n/2$ + \State $\mathbf{A11}, \mathbf{A12}, \mathbf{A21}, \mathbf{A22} \gets \mathbf{A}[:m][:m], \mathbf{A}[:m][m:], \mathbf{A}[m:][:m], \mathbf{A}[m:][m:]$ + \State $\mathbf{B11}, \mathbf{B12}, \mathbf{B21}, \mathbf{B22} \gets \mathbf{B}[:m][:m], \mathbf{B}[:m][m:], \mathbf{B}[m:][:m], \mathbf{B}[m:][m:]$ + + \State $ \mathbf{P} \gets \text{strassen}((\mathbf{A11}+ \mathbf{A22}),(\mathbf{B11}+\mathbf{B22}), m)$ + \State $ \mathbf{Q} \gets \text{strassen}((\mathbf{A21}+ \mathbf{A22}), \mathbf{B11},m)$ + \State $ \mathbf{R} \gets \text{strassen}( \mathbf{A11},(\mathbf{B12}- \mathbf{B22}),m)$ + \State $ \mathbf{S} \gets \text{strassen}( \mathbf{A22},(\mathbf{B21}- \mathbf{B11}),m)$ + \State $ \mathbf{T} \gets \text{strassen}((\mathbf{A11}+ \mathbf{A12}), \mathbf{B22},m)$ + \State $ \mathbf{U} \gets \text{strassen}((\mathbf{A21}- \mathbf{A11}),(\mathbf{B11}+\mathbf{B12}),m)$ + \State $ \mathbf{V} \gets \text{strassen}((\mathbf{A12}- \mathbf{A22}),(\mathbf{B21}+\mathbf{B22}),m)$ + + + + \State $\mathbf{C11} \gets \mathbf{P+S-T+V}$ + \State $\mathbf{C12} \gets \mathbf{R+T}$ + \State $\mathbf{C21} \gets \mathbf{Q+S}$ + \State $\mathbf{C22} \gets \mathbf{P+R-Q+U}$ + \State $ C \gets vstack(hstack(C11, C12), hstack(C21, C22))$ + + \EndIf + \State \textbf{return} $\textbf{C}$ + + \EndFunction + \end{algorithmic} +\end{algorithm} +Strassens's Methode wird in der Abbildung \ref{multiplikation:fig:strassen} grafisch dargestellt. +\begin{figure} + \center + \includegraphics[width=\linewidth]{papers/multiplikation/images/strassen.pdf} + \caption{Strassen's Algorithmus} + \label{multiplikation:fig:strassen} +\end{figure} + +Die Funktion wird sieben mal rekursiv aufgerufen. +Dies f\"uhrt zu einer Laufzeit von +\begin{equation} \label{multiplikation:eq:laufzeitstrassen} +\mathcal{T}(n) = +\begin{cases} +1 & \text{if } n \leq 2\\ +7 \cdot \mathcal{T}(\frac{n}{2}) + n^2 & \text{if } n > 2 +\end{cases} = \mathcal{O}(n^{\log_2 7}) = \mathcal{O}(n^{2.8074}) +\end{equation} +und ist somit schneller als die Standard Methode. + +\subsection{Winograd's Algorithmus} + +Ein weiterer Ansatz lieferte Shmuel Winograd im Jahre 1968 \cite{multiplikation:winograd_1968}. +Er zeigte einen neuen Algorithmus f\"ur das +\begin{equation} + \langle x,y \rangle = \sum_{i=1}^{n}x_i y_i +\end{equation} +Skalarprodukt. +F\"ur jeden Vektor berechne +\begin{equation} + \xi = \sum_{j=1}^{ \lfloor n/2 \rfloor} x_{2j-1} \cdot x_{2j} +\end{equation} +und +\begin{equation} + \eta = \sum_{j=1}^{ \lfloor n/2 \rfloor} y_{2j-1} \cdot y_{2j}. +\end{equation} +Das Skalarprodukt ist nun geben mit +\begin{equation} + \langle x,y \rangle = + \begin{cases} + \displaystyle \quad \sum_{j=1}^{ \lfloor n/2 \rfloor} (x_{2j-1} + y_{2j})(x_{2j}+y_{2j-1})-\xi - \eta & \text{if $n$ is even}\\ + \displaystyle \quad \sum_{j=1}^{ \lfloor n/2 \rfloor} (x_{2j-1} + y_{2j})(x_{2j}+y_{2j-1})-\xi - \eta + x_n y_n & \text{if $n$ is odd}. + \end{cases} +\end{equation} + +Angenommen man hat $N$ Vektoren mit welchen man $T$ Skalarprodukte berechnen m\"ochte. +Daf\"ur werden $N\lfloor n/2 \rfloor + T\lfloor (n+1)/2 \rfloor $ Multiplikationen ben\"otigt. +Eine Matrizenmultiplikation mit $\mathbf{A}$ einer $m \times n$ und $\mathbf{B}$ einer $n \times p$ Matrix, entspricht $N=m+p$ Vektoren mit welchen man $T=mp$ Skalarprodukte berechnet. +Dies f\"uhrt zu +\begin{equation} + (m+p) \left \lfloor \frac{n}{2} \right \rfloor + mp \left \lfloor \frac{n+1}{2} \right \rfloor = \frac{mn}{2} + \frac{pn}{2} + \frac{mpn}{2} + \frac{mp}{2} +\end{equation} +Multiplikationen. +Wenn $m,p,n$ gross werden, dominiert der Term $\frac{mpn}{2}$ und es werden $\frac{mpn}{2}$ Multiplikationen ben\"otigt. +Was im Vergleich zu den $mpn$ Multiplikation der Standard Methode nur die H\"alfte ist. +Die Implementation kann im Algorithmus \ref{multiplikation:alg:winograd} entnommen werden. + +\begin{algorithm}\caption{Winograd Matrix Multiplication} + \setlength{\lineskip}{7pt} + \label{multiplikation:alg:winograd} + \begin{algorithmic} + \Function{Winograd}{$\textbf{A}, \textbf{B}, n$} + \State $ m \gets rows(\mathbf{A})$ + \State $ n \gets columns(\mathbf{A}) == rows(\mathbf{B})$ + \State $ p \gets columns(\mathbf{B})$ + \State $ \mathbf{\xi} \gets zeros(m)$ + \State $ \mathbf{\eta} \gets zeros(p)$ + + + \For{$i = 0,1,2 \dots,m-1$} + \For{$j = 0,1,2 \dots,\lfloor n/2 \rfloor-1$} + \State $\xi[i] \gets \xi[i]+A[i,2 j]A[i,2 j+1]$ + \EndFor + \EndFor + + \For{$i = 0,1,2 \dots,p-1$} + \For{$j = 0,1,2 \dots,\lfloor n/2 \rfloor-1$} + \State $\eta[i] \gets \eta[i]+B[2 j,i]B[2 j+1,i]$ + \EndFor + \EndFor + + \If{$n \% 2 == 0$} + \For{$i = 0,1,2 \dots,m-1$} + \For{$j = 0,1,2 \dots,p-1$} + \State $ab \gets 0$ + \For{$k = 0,1,2 \dots,\lfloor n/2 \rfloor-1$} + \State $ab \gets ab + (A[i,2k]+B[2k+1,j])(A[i,2k+1]+B[2k,j])$ + \EndFor + \State $C[i,j] \gets ab-\eta[j]-\xi[i]$ + \EndFor + \EndFor + \Else + \For{$i = 0,1,2 \dots,n-1$} + \For{$j = 0,1,2 \dots,n-1$} + \State $ab \gets 0$ + \For{$k = 0,1,2 \dots,\lfloor n/2 \rfloor-1$} + \State $ab \gets ab + (A[i,2k]+B[2k+1,j])(A[i,2k+1]+B[2k,j])$ + \EndFor + \State $C[i,j] \gets ab-\eta[j]-\xi[i]+A[i,-1]B[-1,j]$ + \EndFor + \EndFor + \EndIf + \State \textbf{return} $\textbf{C}$ + + \EndFunction + \end{algorithmic} +\end{algorithm} + +\subsection{Weitere Algorithmen} + +\textcolor{red}{TODO: BLAS} + +\section{Implementation} +\rhead{Implementation} +\textcolor{red}{TODO: messresultate} + +\section{Fazit} +\rhead{Fazit} diff --git a/buch/papers/multiplikation/main.tex b/buch/papers/multiplikation/main.tex index 42f2768..8d0a8df 100644..100755 --- a/buch/papers/multiplikation/main.tex +++ b/buch/papers/multiplikation/main.tex @@ -1,36 +1,18 @@ +% !TEX root = ../../buch.tex % % main.tex -- Paper zum Thema <multiplikation> % -% (c) 2020 Hochschule Rapperswil +% (c) 2021 Hochschule Rapperswil % -\chapter{Thema\label{chapter:multiplikation}} -\lhead{Thema} +\chapter{Schnelle Matrizen Multiplikation\label{chapter:multiplikation}} +\lhead{FMM} \begin{refsection} -\chapterauthor{Hans Muster} +\chapterauthor{Michael Schmid} -Ein paar Hinweise für die korrekte Formatierung des Textes -\begin{itemize} -\item -Absätze werden gebildet, indem man eine Leerzeile einfügt. -Die Verwendung von \verb+\\+ ist nur in Tabellen und Arrays gestattet. -\item -Die explizite Platzierung von Bildern ist nicht erlaubt, entsprechende -Optionen werden gelöscht. -Verwenden Sie Labels und Verweise, um auf Bilder hinzuweisen. -\item -Beginnen Sie jeden Satz auf einer neuen Zeile. -Damit ermöglichen Sie dem Versionsverwaltungssysteme, Änderungen -in verschiedenen Sätzen von verschiedenen Autoren ohne Konflikt -anzuwenden. -\item -Bilden Sie auch für Formeln kurze Zeilen, einerseits der besseren -Übersicht wegen, aber auch um GIT die Arbeit zu erleichtern. -\end{itemize} -\input{papers/multiplikation/teil0.tex} -\input{papers/multiplikation/teil1.tex} -\input{papers/multiplikation/teil2.tex} -\input{papers/multiplikation/teil3.tex} +\input{papers/multiplikation/einlteung.tex} +\input{papers/multiplikation/problemstellung.tex} +\input{papers/multiplikation/loesungsmethoden.tex} \printbibliography[heading=subbibliography] \end{refsection} diff --git a/buch/papers/multiplikation/packages.tex b/buch/papers/multiplikation/packages.tex index e4173c0..e4173c0 100644..100755 --- a/buch/papers/multiplikation/packages.tex +++ b/buch/papers/multiplikation/packages.tex diff --git a/buch/papers/multiplikation/papers/Strassen_GPU.pdf b/buch/papers/multiplikation/papers/Strassen_GPU.pdf Binary files differnew file mode 100755 index 0000000..4ce7625 --- /dev/null +++ b/buch/papers/multiplikation/papers/Strassen_GPU.pdf diff --git a/buch/papers/multiplikation/papers/Strassen_original_1969.pdf b/buch/papers/multiplikation/papers/Strassen_original_1969.pdf Binary files differnew file mode 100755 index 0000000..b647fc0 --- /dev/null +++ b/buch/papers/multiplikation/papers/Strassen_original_1969.pdf diff --git a/buch/papers/multiplikation/papers/assay_fast_MM.pdf b/buch/papers/multiplikation/papers/assay_fast_MM.pdf Binary files differnew file mode 100755 index 0000000..3cd6b63 --- /dev/null +++ b/buch/papers/multiplikation/papers/assay_fast_MM.pdf diff --git a/buch/papers/multiplikation/papers/strassen_video.txt b/buch/papers/multiplikation/papers/strassen_video.txt new file mode 100755 index 0000000..f84122c --- /dev/null +++ b/buch/papers/multiplikation/papers/strassen_video.txt @@ -0,0 +1 @@ +https://www.youtube.com/watch?v=0oJyNmEbS4w diff --git a/buch/papers/multiplikation/papers/winograd_original.pdf b/buch/papers/multiplikation/papers/winograd_original.pdf Binary files differnew file mode 100755 index 0000000..a7aba36 --- /dev/null +++ b/buch/papers/multiplikation/papers/winograd_original.pdf diff --git a/buch/papers/multiplikation/presentation/common.tex b/buch/papers/multiplikation/presentation/common.tex new file mode 100644 index 0000000..200d244 --- /dev/null +++ b/buch/papers/multiplikation/presentation/common.tex @@ -0,0 +1,79 @@ +% +% common.tex -- gemeinsame Definitionen +% +% (c) 2021 Michael Schmid, OST Campus Rapperswil +% +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage{epic} +\usepackage{color} +\usepackage{array} +\usepackage{algorithm} +\usepackage{ifthen} +\usepackage{adjustbox} +\usepackage[noend]{algpseudocode} +\usepackage{neuralnetwork} +\usepackage{amsmath} +\usepackage{lmodern} +\usepackage{tikz} +\usetikzlibrary{decorations.text} +\usetikzlibrary{arrows,matrix,positioning} +\usetikzlibrary{overlay-beamer-styles} +\usetikzlibrary{matrix.skeleton} +\usepackage{pgfplots} +\usepackage{listings} +\usepackage{svg} + +\definecolor{codegreen}{rgb}{0,0.6,0} +\definecolor{codegray}{rgb}{0.5,0.5,0.5} +\definecolor{codepurple}{rgb}{0.58,0,0.82} +\definecolor{backcolour}{rgb}{0.95,0.95,0.92} +\definecolor{ost}{rgb}{164,0,136} + +\lstdefinestyle{mystyle}{ + backgroundcolor=\color{backcolour}, + commentstyle=\color{codegreen}, + keywordstyle=\color{magenta}, + numberstyle=\tiny\color{codegray}, + stringstyle=\color{codepurple}, + basicstyle=\footnotesize, + breakatwhitespace=false, + breaklines=true, + captionpos=b, + keepspaces=true, + numbers=left, + numbersep=2pt, + showspaces=false, + showstringspaces=false, + showtabs=false, + tabsize=2 +} + +\usetikzlibrary{fit} +\tikzset{% + highlight/.style={rectangle,rounded corners,fill=red!15,draw,fill opacity=0.5,inner sep=0pt} +} +\newcommand{\tikzmark}[2]{\tikz[overlay,remember picture,baseline=(#1.base)] \node (#1) {#2};} +% +\newcommand{\Highlight}[1][submatrix]{% + \tikz[overlay,remember picture]{ + \node[highlight,fit=(left.north west) (right.south east)] (#1) {};} +} + + +\lstset{style=mystyle} +\lstdefinestyle{mystyle}{ + morekeywords={cwt,contourf,datetick} +} + + +\usetikzlibrary{shapes.geometric} +\mode<beamer>{% +\usetheme[]{Frankfurt}} +\beamertemplatenavigationsymbolsempty +\title[]{Fast Matrix Multiplication} +\author[]{Michael Schmid} +\usecolortheme[named=ost]{structure} + +\date[]{31.05.2021} +\newboolean{presentation} diff --git a/buch/papers/multiplikation/presentation/presentation.nav b/buch/papers/multiplikation/presentation/presentation.nav new file mode 100644 index 0000000..2a01568 --- /dev/null +++ b/buch/papers/multiplikation/presentation/presentation.nav @@ -0,0 +1,59 @@ +\headcommand {\slideentry {0}{0}{1}{1/1}{}{0}} +\headcommand {\beamer@framepages {1}{1}} +\headcommand {\beamer@sectionpages {1}{1}} +\headcommand {\beamer@subsectionpages {1}{1}} +\headcommand {\sectionentry {1}{Big $\mathcal {O}$}{2}{Big $\mathcal {O}$}{0}} +\headcommand {\slideentry {1}{0}{1}{2/4}{}{0}} +\headcommand {\beamer@framepages {2}{4}} +\headcommand {\slideentry {1}{0}{2}{5/6}{}{0}} +\headcommand {\beamer@framepages {5}{6}} +\headcommand {\slideentry {1}{0}{3}{7/8}{}{0}} +\headcommand {\beamer@framepages {7}{8}} +\headcommand {\slideentry {1}{0}{4}{9/10}{}{0}} +\headcommand {\beamer@framepages {9}{10}} +\headcommand {\slideentry {1}{0}{5}{11/12}{}{0}} +\headcommand {\beamer@framepages {11}{12}} +\headcommand {\slideentry {1}{0}{6}{13/13}{}{0}} +\headcommand {\beamer@framepages {13}{13}} +\headcommand {\slideentry {1}{0}{7}{14/14}{}{0}} +\headcommand {\beamer@framepages {14}{14}} +\headcommand {\beamer@sectionpages {2}{14}} +\headcommand {\beamer@subsectionpages {2}{14}} +\headcommand {\sectionentry {2}{Strassen's Algorithm}{15}{Strassen's Algorithm}{0}} +\headcommand {\slideentry {2}{0}{1}{15/15}{}{0}} +\headcommand {\beamer@framepages {15}{15}} +\headcommand {\slideentry {2}{0}{2}{16/18}{}{0}} +\headcommand {\beamer@framepages {16}{18}} +\headcommand {\slideentry {2}{0}{3}{19/19}{}{0}} +\headcommand {\beamer@framepages {19}{19}} +\headcommand {\slideentry {2}{0}{4}{20/20}{}{0}} +\headcommand {\beamer@framepages {20}{20}} +\headcommand {\slideentry {2}{0}{5}{21/23}{}{0}} +\headcommand {\beamer@framepages {21}{23}} +\headcommand {\slideentry {2}{0}{6}{24/24}{}{0}} +\headcommand {\beamer@framepages {24}{24}} +\headcommand {\slideentry {2}{0}{7}{25/25}{}{0}} +\headcommand {\beamer@framepages {25}{25}} +\headcommand {\slideentry {2}{0}{8}{26/26}{}{0}} +\headcommand {\beamer@framepages {26}{26}} +\headcommand {\slideentry {2}{0}{9}{27/29}{}{0}} +\headcommand {\beamer@framepages {27}{29}} +\headcommand {\slideentry {2}{0}{10}{30/32}{}{0}} +\headcommand {\beamer@framepages {30}{32}} +\headcommand {\beamer@sectionpages {15}{32}} +\headcommand {\beamer@subsectionpages {15}{32}} +\headcommand {\sectionentry {3}{Measurements}{33}{Measurements}{0}} +\headcommand {\slideentry {3}{0}{1}{33/40}{}{0}} +\headcommand {\beamer@framepages {33}{40}} +\headcommand {\slideentry {3}{0}{2}{41/49}{}{0}} +\headcommand {\beamer@framepages {41}{49}} +\headcommand {\beamer@sectionpages {33}{49}} +\headcommand {\beamer@subsectionpages {33}{49}} +\headcommand {\sectionentry {4}{How To Matrix Multiply}{50}{How To Matrix Multiply}{0}} +\headcommand {\slideentry {4}{0}{1}{50/50}{}{0}} +\headcommand {\beamer@framepages {50}{50}} +\headcommand {\beamer@partpages {1}{50}} +\headcommand {\beamer@subsectionpages {50}{50}} +\headcommand {\beamer@sectionpages {50}{50}} +\headcommand {\beamer@documentpages {50}} +\headcommand {\gdef \inserttotalframenumber {21}} diff --git a/buch/papers/multiplikation/presentation/presentation.pdf b/buch/papers/multiplikation/presentation/presentation.pdf Binary files differnew file mode 100644 index 0000000..842e68c --- /dev/null +++ b/buch/papers/multiplikation/presentation/presentation.pdf diff --git a/buch/papers/multiplikation/presentation/presentation.snm b/buch/papers/multiplikation/presentation/presentation.snm new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/buch/papers/multiplikation/presentation/presentation.snm diff --git a/buch/papers/multiplikation/presentation/presentation.tex b/buch/papers/multiplikation/presentation/presentation.tex new file mode 100644 index 0000000..2a4af45 --- /dev/null +++ b/buch/papers/multiplikation/presentation/presentation.tex @@ -0,0 +1,12 @@ +% +% MathSem-yyy-xxx.tex -- Präsentation +% +% (c) 2021 Michael Schmid, OST campus Rapperswil +% + +\documentclass[aspectratio=169]{beamer} +\input{common.tex} +%\setboolean{presentation}{true} +\begin{document} +\input{slides/slides.tex} +\end{document} diff --git a/buch/papers/multiplikation/presentation/slides/algo.tex b/buch/papers/multiplikation/presentation/slides/algo.tex new file mode 100644 index 0000000..0c3d130 --- /dev/null +++ b/buch/papers/multiplikation/presentation/slides/algo.tex @@ -0,0 +1,111 @@ +\begin{frame} + \frametitle{Algorithm} + \begin{columns} + \begin{column}{0.6\textwidth} + \begin{algorithm}[H]\caption{Square Matrix Multiplication} + \setlength{\lineskip}{7pt} + \begin{algorithmic}[1] + \Function{MM}{$\textbf{A}, \textbf{B}, \textbf{C}$} + \State $sum \gets 0$ + \State $n \gets columns(\textbf{A}) == rows(\textbf{B})$ + \State $m \gets rows(\textbf{A})$ + \State $p \gets columns(\textbf{B})$ + + \For{$i = 0,1,2 \dots,m-1$} + \For{$j = 0,1,2 \dots,p-1$} + \State $sum \gets 0$ + \For{$k = 0,1,2 \dots,n-1$} + \State $sum \gets sum + \textbf{A}[i][k] \cdot \textbf{B}[k][j]$ + \EndFor + \State $\textbf{C}[i][j] \gets sum $ + \EndFor + \EndFor + \State \textbf{return} $\textbf{C}$ + \EndFunction + \end{algorithmic} + \end{algorithm} +\end{column} +\begin{column}{0.4\textwidth} + \scalebox{0.6}{\parbox{\linewidth}{ + + \begin{tikzpicture}[ampersand replacement=\&,remember picture,overlay] + + \matrix (A)[matrix of math nodes, label skeleton, left delimiter=[,right delimiter={]}] at (2,-2.8) + { + A_{1,1} \& \cdots \& A_{1,k} \& \cdots \& A_{1,n} \\ + \vdots \& \& \vdots \& \& \vdots \\ + A_{i,1} \& \cdots \& A_{i,k} \& \cdots \& A_{i,n} \\ + \vdots \& \& \vdots \& \& \vdots \\ + A_{m,1} \& \cdots \& A_{m,k} \& \cdots \& A_{m,n} \\ + }; + + \matrix (B)[matrix of math nodes, label skeleton, left delimiter=[,right delimiter={]}] at (7.5,1.2) + { + B_{1,1} \& \cdots \& B_{1,j} \& \cdots \& B_{1,p} \\ + \vdots \& \& \vdots \& \& \vdots \\ + B_{k,1} \& \cdots \& B_{k,j} \& \cdots \& B_{k,p} \\ + \vdots \& \& \vdots \& \& \vdots \\ + B_{n,1} \& \cdots \& B_{n,j} \& \cdots \& B_{n,p} \\ + }; + + \matrix (C)[matrix of math nodes, label skeleton, left delimiter=[,right delimiter={]}] at (7.5,-2.8) + { + C_{1,1} \& \cdots \& C_{1,j} \& \cdots \& C_{1,p} \\ + \vdots \& \& \vdots \& \& \vdots \\ + C_{i,1} \& \cdots \& C_{i,j} \& \cdots \& C_{i,p} \\ + \vdots \& \& \vdots \& \& \vdots \\ + C_{m,1} \& \cdots \& C_{m,j} \& \cdots \& C_{m,p} \\ + }; + + + \begin{scope}[on background layer] + \node[opacity=0.5, rounded corners=2pt, inner sep=-1pt, fill=green, fit=(A-3-1)(A-3-5)] {}; + \node[opacity=0.5, rounded corners=2pt, inner sep=-1pt, fill=blue, fit=(B-1-3)(B-5-3)] {}; + \node[opacity=0.5, rounded corners=2pt, inner sep=-1pt, fill=red, fit=(C-3-3)] {}; + + \end{scope} + + + + + \end{tikzpicture} + }} + \end{column} +\end{columns} +\end{frame} + + +\begin{frame} + \frametitle{Algorithm} + +\begin{columns} + \begin{column}{0.6\textwidth} +\begin{algorithm}[H]\caption{Square Matrix Multiplication} + \setlength{\lineskip}{7pt} + \begin{algorithmic}[1] + \Function{MM}{$\textbf{A}, \textbf{B}, \textbf{C}$} + \State $sum \gets 0$ + \State $n \gets columns(\textbf{A}) == rows(\textbf{B})$ + \State $m \gets rows(\textbf{A})$ + \State $p \gets columns(\textbf{B})$ + + \For{$i = 0,1,2 \dots,m-1$} + \For{$j = 0,1,2 \dots,p-1$} + \State $sum \gets 0$ + \For{$k = 0,1,2 \dots,n-1$} + \State $sum \gets sum + \textbf{A}[i][k] \cdot \textbf{B}[k][j]$ + \EndFor + \State $\textbf{C}[i][j] \gets sum $ + \EndFor + \EndFor + \State \textbf{return} $\textbf{C}$ + \EndFunction + \end{algorithmic} +\end{algorithm} +\end{column} +\begin{column}{0.4\textwidth} +\Huge$\mathcal{O}(n^3)$ +\end{column} +\end{columns} + +\end{frame} diff --git a/buch/papers/multiplikation/presentation/slides/bigO.tex b/buch/papers/multiplikation/presentation/slides/bigO.tex new file mode 100644 index 0000000..d425da8 --- /dev/null +++ b/buch/papers/multiplikation/presentation/slides/bigO.tex @@ -0,0 +1,251 @@ + +\begin{frame} + \frametitle{Big $\mathcal{O}$ notation} +\begin{itemize} + \item <1-> Time complexity of an algorithm + \item <2-> How many multiplications in a function + \item <3-> Drop Constants +\end{itemize} +\end{frame} + + +\begin{frame} + \frametitle{Big $\mathcal{O}$ notation} + \onslide<1->{ + + \begin{algorithm}[H]\caption{Foo 1} + \setlength{\lineskip}{7pt} + \begin{algorithmic}[1] + \Function{foo}{$a, b$} + \State \textbf{return} $a+b$ + \EndFunction + \end{algorithmic} + \end{algorithm} +} +\onslide<2->{ +$\mathcal{O}(1)$ + } +\end{frame} + +\begin{frame} + \frametitle{Big $\mathcal{O}$ notation} + \onslide<1->{ + + \begin{algorithm}[H]\caption{Foo 2} + \setlength{\lineskip}{7pt} + \begin{algorithmic}[1] + \Function{foo}{$a, b$} + \State $ x \gets a+b $ + \State $ y \gets a \cdot b $ + \State \textbf{return} $x+y$ + \EndFunction + \end{algorithmic} + \end{algorithm} +} +\onslide<2->{ +$\mathcal{O}(1) + \mathcal{O}(1) = 2\mathcal{O}(1) = \mathcal{O}(1) $ + } +\end{frame} + +\begin{frame} + \frametitle{Big $\mathcal{O}$ notation} + \onslide<1->{ + + \begin{algorithm}[H]\caption{Foo 3} + \setlength{\lineskip}{7pt} + \begin{algorithmic}[1] + \Function{foo}{$\mathbf{A}, \mathbf{B}$,n} + \State $ sum \gets 0$ + \For{$i = 0,1,2 \dots,n$} + \State $ sum \gets sum + A[i] \cdot B[i] $ + \EndFor + + \State \textbf{return} $sum$ + + \EndFunction + \end{algorithmic} + \end{algorithm} +} +\onslide<2->{ +$\mathcal{O}(n)$ + } +\end{frame} + +\begin{frame} + \frametitle{Big $\mathcal{O}$ notation} + \onslide<1->{ + + \begin{algorithm}[H]\caption{Foo 4} + \setlength{\lineskip}{7pt} + \begin{algorithmic}[1] + \Function{foo}{$\mathbf{A}, \mathbf{B}$,n} + \State $ sum \gets 0$ + \For{$i = 0,1,2 \dots,n$} + \For{$j = 0,1,2 \dots,n$} + \State $ sum \gets sum + A[i] \cdot B[j] $ + \EndFor + \EndFor + \State \textbf{return} $sum$ + \EndFunction + \end{algorithmic} + \end{algorithm} +} +\onslide<2->{ +$\mathcal{O}(n^2)$ + } +\end{frame} + +% \begin{frame} +% \frametitle{Big $\mathcal{O}$ notation} +% \onslide<1->{ +% +% \begin{algorithm}[H]\caption{Fibonacci} +% \setlength{\lineskip}{7pt} +% \begin{algorithmic}[1] +% \Function{fib}{$n$} +% \If{$n <= 1$} +% \State \textbf{return} $1$ +% \Else +% \State \textbf{return} fib($n-1$) + fib($n-2$) +% \EndIf +% +% \EndFunction +% \end{algorithmic} +% \end{algorithm} +% } +% \onslide<2->{ +% \[ +% \langle x,y \rangle = +% \begin{cases} +% \displaystyle $\mathcal{O}(1)$ & \text{if $n \leq 2$}\\ +% \displaystyle $ 2 \mathcal{T}(\frac{n}{2})$ & \text{if $n > 2$} +% \end{cases} +% \] } +% \end{frame} + + +\begin{frame} + \frametitle{Big $\mathcal{O}$ notation} +\begin{tikzpicture} +\begin{axis}[ + axis lines = left, + xlabel = $n$ (Data Input), + ylabel = {$t$ (time)}, + legend pos=north east, + very thick, + ymax = 20, + yticklabels=\empty, + xticklabels=\empty, + scale only axis=true, + width=12cm, height=6cm, + ] +%Below the red parabola is defined +\addplot [ + domain= 1:6, + samples=100, + color=red, +] +{1}; +\addlegendentry{$\mathcal{O}(1)$} +%Here the blue parabloa is defined +\addplot [ + domain= 1:6, + samples=100, + color=green, +] +{x}; +\addlegendentry{$\mathcal{O}(n)$} +\addplot [ + domain= 1:6, + samples=100, + color=blue, +] +{x^2}; +\addlegendentry{$\mathcal{O}(n^2)$} +\addplot [ + domain= 1:6, + samples=100, + color=purple, +] +{x^3}; +\addlegendentry{$\mathcal{O}(n^3)$} +\addplot [ + domain= 1:3, + samples=100, + color=black, +] +{exp(x)}; +\addlegendentry{$\mathcal{O}(e^n)$} +\addplot [ + domain= 1:6, + samples=100, + color=orange, +] +{log2(x)}; +\addlegendentry{$\mathcal{O}(\log n)$} +\end{axis} +\end{tikzpicture} + +\end{frame} + +\begin{frame} + \frametitle{Big $\mathcal{O}$ notation} +\begin{tikzpicture} +\begin{axis}[ + axis lines = left, + xlabel = $n$ (Data Input), + ylabel = {$t$ (time)}, + legend pos=north east, + very thick, + ymax = 500, + yticklabels=\empty, + xticklabels=\empty, + scale only axis=true, + width=12cm, height=6cm, + ] +\addplot [ + domain= 1:20, + samples=100, + color=red, +] +{1}; +\addlegendentry{$\mathcal{O}(1)$} +\addplot [ + domain= 1:20, + samples=100, + color=green, +] +{x}; +\addlegendentry{$\mathcal{O}(n)$} +\addplot [ + domain= 1:20, + samples=100, + color=blue, +] +{x^2}; +\addlegendentry{$\mathcal{O}(n^2)$} +\addplot [ + domain= 1:10, + samples=100, + color=purple, +] +{x^3}; +\addlegendentry{$\mathcal{O}(n^3)$} +\addplot [ + domain= 1:10, + samples=100, + color=black, +] +{exp(x)}; +\addlegendentry{$\mathcal{O}(e^n)$} +\addplot [ + domain= 1:20, + samples=100, + color=orange, +] +{log2(x)}; +\addlegendentry{$\mathcal{O}(\log n)$} +\end{axis} +\end{tikzpicture} + +\end{frame} diff --git a/buch/papers/multiplikation/presentation/slides/blas.tex b/buch/papers/multiplikation/presentation/slides/blas.tex new file mode 100644 index 0000000..ed498a3 --- /dev/null +++ b/buch/papers/multiplikation/presentation/slides/blas.tex @@ -0,0 +1,18 @@ +\begin{frame} +\frametitle{BLAS, LAPACK} +\begin{itemize} + \item Basic Linear Algebra Subprograms + \begin{itemize} + \item $\mathbf{y} = \alpha \mathbf{x}+\mathbf{y}$ + \item $\mathbf{y} = \alpha \mathbf{A}\mathbf{x}+ \beta \mathbf{y}$ + \item $\mathbf{C} = \alpha \mathbf{A}\mathbf{B}+ \beta \mathbf{C}$ + + \end{itemize} + \item Linear Algebra Package + \begin{itemize} + \item QR decomposition + \item Singular value decomposition + \item Eigenvalues + \end{itemize} +\end{itemize} +\end{frame} diff --git a/buch/papers/multiplikation/presentation/slides/conclusuion.tex b/buch/papers/multiplikation/presentation/slides/conclusuion.tex new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/buch/papers/multiplikation/presentation/slides/conclusuion.tex diff --git a/buch/papers/multiplikation/presentation/slides/logo.pdf b/buch/papers/multiplikation/presentation/slides/logo.pdf Binary files differnew file mode 100644 index 0000000..d78ca88 --- /dev/null +++ b/buch/papers/multiplikation/presentation/slides/logo.pdf diff --git a/buch/papers/multiplikation/presentation/slides/meas.tex b/buch/papers/multiplikation/presentation/slides/meas.tex new file mode 100644 index 0000000..489c010 --- /dev/null +++ b/buch/papers/multiplikation/presentation/slides/meas.tex @@ -0,0 +1,42 @@ +\begin{frame} + \frametitle{Measurements Python} + \only<1>{ + \includegraphics[width=\textwidth,height=0.9\textheight,keepaspectratio]{../code/meas_8.pdf}} + \only<2>{ + \includegraphics[width=\textwidth,height=0.9\textheight,keepaspectratio]{../code/meas_16.pdf}} + \only<3>{ + \includegraphics[width=\textwidth,height=0.9\textheight,keepaspectratio]{../code/meas_32.pdf}} + \only<4>{ + \includegraphics[width=\textwidth,height=0.9\textheight,keepaspectratio]{../code/meas_64.pdf}} + \only<5>{ + \includegraphics[width=\textwidth,height=0.9\textheight,keepaspectratio]{../code/meas_128.pdf}} + \only<6>{ + \includegraphics[width=\textwidth,height=0.9\textheight,keepaspectratio]{../code/meas_256.pdf}} + \only<7>{ + \includegraphics[width=\textwidth,height=0.9\textheight,keepaspectratio]{../code/meas_512.pdf}} + \only<8>{ + \includegraphics[width=\textwidth,height=0.9\textheight,keepaspectratio]{../code/meas_1024.pdf}} +\end{frame} + + +\begin{frame} + \frametitle{Measurements C} + \only<1>{ + \includegraphics[width=\textwidth,height=0.9\textheight,keepaspectratio]{../code/c_meas_8.pdf}} + \only<2>{ + \includegraphics[width=\textwidth,height=0.9\textheight,keepaspectratio]{../code/c_meas_16.pdf}} + \only<3>{ + \includegraphics[width=\textwidth,height=0.9\textheight,keepaspectratio]{../code/c_meas_32.pdf}} + \only<4>{ + \includegraphics[width=\textwidth,height=0.9\textheight,keepaspectratio]{../code/c_meas_64.pdf}} + \only<5>{ + \includegraphics[width=\textwidth,height=0.9\textheight,keepaspectratio]{../code/c_meas_128.pdf}} + \only<6>{ + \includegraphics[width=\textwidth,height=0.9\textheight,keepaspectratio]{../code/c_meas_256.pdf}} + \only<7>{ + \includegraphics[width=\textwidth,height=0.9\textheight,keepaspectratio]{../code/c_meas_512.pdf}} + \only<8>{ + \includegraphics[width=\textwidth,height=0.9\textheight,keepaspectratio]{../code/c_meas_1024.pdf}} + \only<9>{ + \includegraphics[width=\textwidth,height=0.9\textheight,keepaspectratio]{../code/c_meas_2048.pdf}} +\end{frame} diff --git a/buch/papers/multiplikation/presentation/slides/nn.tex b/buch/papers/multiplikation/presentation/slides/nn.tex new file mode 100644 index 0000000..e74e970 --- /dev/null +++ b/buch/papers/multiplikation/presentation/slides/nn.tex @@ -0,0 +1,97 @@ + +\begin{frame} + \frametitle{Neural Network} + \centering +\newcommand{\inputnum}{4} + +% Hidden layer neurons'number +\newcommand{\hiddennumA}{5} +\newcommand{\hiddennumB}{6} + +% Output layer neurons'number +\newcommand{\outputnum}{4} + +\begin{tikzpicture} + + +% Input Layer +\foreach \i in {1,...,\inputnum} +{ + \node[circle, + minimum size = 6mm, + fill=blue!30] (Input-\i) at (0,-\i) {}; +} + +% Hidden Layer1 +\foreach \i in {1,...,\hiddennumA} +{ + \node[circle, + minimum size = 6mm, + fill=red!50, + yshift=(\hiddennumA-\inputnum)*5 mm + ] (Hidden1-\i) at (2.5,-\i) {}; +} + +% Hidden Layer2 +\foreach \i in {1,...,\hiddennumB} +{ + \node[circle, + minimum size = 6mm, + fill=red!50, + yshift=(\hiddennumB-\inputnum)*5 mm + ] (Hidden2-\i) at (5,-\i) {}; +} + +% Output Layer +\foreach \i in {1,...,\outputnum} +{ + \node[circle, + minimum size = 6mm, + fill=green!50, + yshift=(\outputnum-\inputnum)*5 mm + ] (Output-\i) at (7.5,-\i) {}; +} + +% Connect neurons In-Hidden +\foreach \i in {1,...,\inputnum} +{ + \foreach \j in {1,...,\hiddennumA} + { + \draw[->, shorten >=1pt] (Input-\i) -- (Hidden1-\j); + } +} + +% Connect neurons In-Hidden +\foreach \i in {1,...,\hiddennumA} +{ + \foreach \j in {1,...,\hiddennumB} + { + \draw[->, shorten >=1pt] (Hidden1-\i) -- (Hidden2-\j); + } +} + +% Connect neurons Hidden-Out +\foreach \i in {1,...,\hiddennumB} +{ + \foreach \j in {1,...,\outputnum} + { + \draw[->, shorten >=1pt] (Hidden2-\i) -- (Output-\j); + } +} + +% Inputs +\foreach \i in {1,...,\inputnum} +{ + \draw[<-, shorten <=1pt] (Input-\i) -- ++(-1,0) + node[left]{\LARGE{$x_{\i}$}}; +} + +% Outputs +\foreach \i in {1,...,\outputnum} +{ + \draw[->, shorten <=1pt] (Output-\i) -- ++(1,0) + node[right]{\LARGE{$y_{\i}$}}; +} + +\end{tikzpicture} +\end{frame} diff --git a/buch/papers/multiplikation/presentation/slides/parcomp.tex b/buch/papers/multiplikation/presentation/slides/parcomp.tex new file mode 100644 index 0000000..1ba39ee --- /dev/null +++ b/buch/papers/multiplikation/presentation/slides/parcomp.tex @@ -0,0 +1,66 @@ +% !TEX root = presentation.tex + +\begin{frame} + \frametitle{Vector-Matrix Multiplication} +\center{ + \begin{tikzpicture}[ampersand replacement=\&] + + \matrix (A)[matrix of math nodes, label skeleton, left delimiter=[,right delimiter={]}] + { + A_{1,1} \& A_{1,2} \& A_{1,3} \& A_{1,4} \\ + }; + + \matrix (B)[matrix of math nodes, label skeleton, left delimiter=[,right delimiter={]}] at (5,-0.95) + { + B_{1,1} \& B_{1,2} \& B_{1,3} \& B_{1,4} \& B_{1,5} \\ + B_{2,1} \& B_{2,2} \& B_{2,3} \& B_{2,4} \& B_{2,5} \\ + B_{3,1} \& B_{3,2} \& B_{3,3} \& B_{3,4} \& B_{3,5} \\ + B_{4,1} \& B_{4,2} \& B_{4,3} \& B_{4,4} \& B_{4,5} \\ + }; + + \matrix (C)[matrix of math nodes, label skeleton, left delimiter=[,right delimiter={]}] at (5,-3) + { + C_{1,1} \& C_{1,2} \& C_{1,3} \& C_{1,4} \& C_{1,5}\\ + }; + + \foreach \i in {1,...,4} + { + \pgfmathtruncatemacro{\ii}{\i+1} + \onslide<\ii>{ + + \foreach \j in {1,...,5} + { + \draw[thick] (A-1-\i.south) to [out=-90,in=135]node[visible on=<\i->, anchor=north]{} (B-\i-\j.center); + + } + } + } + + + \end{tikzpicture} +} +\end{frame} + + +\begin{frame} + \frametitle{DSP Architecture} +\scalebox{2}{ + \begin{tikzpicture} + \node (mul) at (0,0) [circle,draw=black,inner sep=0pt,minimum size=0.5cm] {X}; + \node (mac) at (2,0) [circle,draw=black,inner sep=0pt,minimum size=0.5cm] {\textbf{+}}; + + \node at (-2,0.3) {$A[n]$}; + \node at (0.4,2) {$B[n]$}; + \node at (4,0.3) {$C[n]$}; + + \draw[thick, ->] (-2,0) --++ (mul); + \draw[thick, ->] (0,2) --++ (mul); + \draw[thick, ->] (mul) -- (mac); + \draw[thick] (mac) --++ (1,0) node (i) {}; + \draw[thick, ->] (i.center) --++ (0,1) --++ (-1,0) -- (mac); + \draw[thick, ->] (i.center) --++ (1,0); + + + \end{tikzpicture} + } +\end{frame} diff --git a/buch/papers/multiplikation/presentation/slides/slides.tex b/buch/papers/multiplikation/presentation/slides/slides.tex new file mode 100644 index 0000000..64edb86 --- /dev/null +++ b/buch/papers/multiplikation/presentation/slides/slides.tex @@ -0,0 +1,15 @@ +% !TEX root = presentation.tex +\begin{frame} +\titlepage +\end{frame} +% +\section{Big $\mathcal{O}$} +\input{slides/BigO.tex} +\section{Strassen's Algorithm} +\input{slides/strassen.tex} +% \input{slides/nn.tex} +\section{Measurements} +\input{slides/meas.tex} +% \input{slides/parcomp.tex} +\section{How To Matrix Multiply} +\input{slides/blas.tex} diff --git a/buch/papers/multiplikation/presentation/slides/strassen.tex b/buch/papers/multiplikation/presentation/slides/strassen.tex new file mode 100644 index 0000000..c3398d5 --- /dev/null +++ b/buch/papers/multiplikation/presentation/slides/strassen.tex @@ -0,0 +1,429 @@ +\begin{frame} + \frametitle{Strassen's Algorithm} + \includegraphics[page=1,width=\textwidth,height=0.8\textheight,keepaspectratio]{../papers/Strassen_original_1969.pdf} + \includegraphics[page=2,width=\textwidth,height=0.8\textheight,keepaspectratio]{../papers/Strassen_original_1969.pdf} \includegraphics[page=3,width=\textwidth,height=0.8\textheight,keepaspectratio]{../papers/Strassen_original_1969.pdf} + \end{frame} + +\begin{frame} + \frametitle{Strassen's Algorithm} + \centering + \large +\onslide<1->{ + $ + \mathbf{A B = C} + $ +} + +\onslide<2->{ + + +\medskip + $ + \begin{bmatrix} + A_{11} & A_{12}\\ + A_{21} & A_{22} + \end{bmatrix} + \begin{bmatrix} + B_{11} & B_{12}\\ + B_{21} & B_{22} + \end{bmatrix} + = + \begin{bmatrix} + C_{11} & C_{12}\\ + C_{21} & C_{22} + \end{bmatrix} + $ + } + + + \onslide<3->{ + +\medskip +$ +C_{11} = A_{11} \cdot B_{11} + A_{12} \cdot B_{21} +$ + +$ +C_{12} = A_{11} \cdot B_{12} + A_{12} \cdot B_{22} +$ + +$ +C_{21} = A_{21} \cdot B_{11} + A_{22} \cdot B_{21} +$ + +$ +C_{22} = A_{21} \cdot B_{12} + A_{22} \cdot B_{22} +$ +} +\end{frame} + +\input{slides/algo.tex} + + + +\begin{frame} + \frametitle{Strassen's Algorithm} + \begin{columns} + \begin{column}{0.5\textwidth} + \onslide<1->{ + \large + \begin{math} + \begin{aligned} + \text{I} &= (A_{11} + A_{22}) \cdot (B_{11} + B_{22}) \\ + \text{II} &= (A_{21} + A_{22}) \cdot B_{11} \\ + \text{III} &= A_{11} \cdot (B_{12}-B_{22}) \\ + \text{IV} &= A_{22} \cdot (-B_{11}+B_{21}) \\ + \text{V} &= (A_{11} + A_{12}) \cdot B_{22} \\ + \text{VI} &= (-A_{11} + A_{21}) \cdot (B_{11} + B_{12}) \\ + \text{VII} &= (A_{12} - A_{22}) \cdot (B_{21} + B_{22}) \\ + \end{aligned} + \end{math} + } + \end{column} + + \begin{column}{0.5\textwidth} + \onslide<2->{ + \large + \begin{math} + \begin{aligned} + C_{11} &= \text{I} + \text{IV} - \text{V} + \text{VII} \\ + C_{21} &= \text{II} + \text{IV} \\ + C_{12} &= \text{III} + \text{V}\\ + C_{22} &= \text{I} + \text{III} - \text{II} + \text{VI} \\ + \end{aligned} + \end{math} + } + \end{column} +\end{columns} + +\onslide<3->{ + +\bigskip +\centering +\tiny +\begin{math} +\begin{aligned} + C_{11} &= (A_{11} + A_{22}) \cdot (B_{11} + B_{22}) + A_{22} \cdot (-B_{11}+B_{21}) - (A_{11} + A_{12}) \cdot B_{22} + (A_{12} - A_{22}) \cdot (B_{21} + B_{22}) \\ + C_{11} &= A_{11}B_{11} + A_{11}B_{22} + A_{22}B_{11} + A_{22}B_{22} -A_{22}B_{11}+A_{22}B_{21} - A_{11}B_{22} - A_{12}B_{22}+ A_{12}B_{21} + A_{12}B_{22} - A_{22}B_{21} - A_{22}B_{22} \\ + C_{11} &= A_{11}B_{11} + A_{12}B_{21} +\end{aligned} +\end{math} +} + +\end{frame} + + +\begin{frame} +\begin{adjustbox}{width=\textwidth} +\begin{tikzpicture}[ampersand replacement=\&] + + \foreach \i in {1,...,4} + { + \small{ + \matrix (X\i)[matrix of math nodes,nodes in empty cells, + nodes = {draw, minimum size=10mm, + anchor=center, + inner sep=0pt, outer sep=0pt}, + column sep=-\pgflinewidth, + row sep=-\pgflinewidth, + ] at (0,-\i*5) + { + A_{11}B_{11} \& A_{12}B_{11} \& A_{21}B_{11} \& A_{22}B_{11} \\ + A_{11}B_{21} \& A_{12}B_{21} \& A_{21}B_{21} \& A_{22}B_{21} \\ + A_{11}B_{11} \& A_{12}B_{12} \& A_{21}B_{12} \& A_{22}B_{12} \\ + A_{11}B_{22} \& A_{12}B_{22} \& A_{21}B_{22} \& A_{22}B_{22} \\ + };} + + \foreach \j in {1,...,7} + { + \matrix(M\i\j)[matrix of math nodes,nodes in empty cells, + nodes = {draw, minimum size=10mm, + anchor=center, + inner sep=0pt, outer sep=0pt}, + column sep=-\pgflinewidth, + row sep=-\pgflinewidth, + ] at (\j*5,-\i*5) + { + \& \& \& \\ + \& \& \& \\ + \& \& \& \\ + \& \& \& \\ + }; + } + } + +\huge{ + \node at (-3,-20) {$C_{22}=$}; + \node at (-3,-15) {$C_{21}=$} ; + \node at (-3,-10) {$C_{12}=$} ; + \node at (-3,-5) {$C_{11}=$} ; + + \node at (5,-2) {I}; + \node at (10,-2) {II}; + \node at (15,-2) {III}; + \node at (20,-2) {IV}; + \node at (25,-2) {V}; + \node at (30,-2) {VI}; + \node at (35,-2) {VII}; + } + + + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(X1-1-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(X1-2-2)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(X2-3-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(X2-4-2)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(X3-1-3)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(X3-2-4)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(X4-3-3)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(X4-4-4)] {}; + + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M11-4-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M11-1-4)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M11-4-4)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M11-1-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M14-1-4)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M14-2-4)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M15-4-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M15-4-2)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M17-2-4)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M17-4-4)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M17-2-2)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M17-4-2)] {}; + + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M23-3-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M23-4-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M25-4-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M25-4-2)] {}; + + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M32-1-4)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M32-1-3)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M34-1-4)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M34-2-4)] {}; + + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M41-4-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M41-1-4)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M41-4-4)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M41-1-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M42-1-4)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M42-1-3)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M43-3-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M43-4-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M46-1-3)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M46-1-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M46-3-3)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M46-3-1)] {}; +\end{tikzpicture} +\end{adjustbox} +\end{frame} + + +\begin{frame} + \frametitle{Strassen's Algorithm} + \begin{columns} + \begin{column}{0.5\textwidth} + \large + \begin{math} + \begin{aligned} + \text{I} &= (A_{11} + A_{22}) \cdot (B_{11} + B_{22}) \\ + \text{II} &= (A_{21} + A_{22}) \cdot B_{11} \\ + \text{III} &= A_{11} \cdot (B_{12}-B_{22}) \\ + \text{IV} &= A_{22} \cdot (-B_{11}+B_{21}) \\ + \text{V} &= (A_{11} + A_{12}) \cdot B_{22} \\ + \text{VI} &= (-A_{11} + A_{21}) \cdot (B_{11} + B_{12}) \\ + \text{VII} &= (A_{12} - A_{22}) \cdot (B_{21} + B_{22}) \\ + \end{aligned} + \end{math} + + \end{column} + + \begin{column}{0.5\textwidth} + \large + \begin{math} + \begin{aligned} + C_{11} &= \text{I} + \text{IV} - \text{V} + \text{VII} \\ + C_{21} &= \text{II} + \text{IV} \\ + C_{12} &= \text{III} + \text{V}\\ + C_{22} &= \text{I} + \text{III} - \text{II} + \text{VI} \\ + \end{aligned} + \end{math} + + \end{column} +\end{columns} +\end{frame} + + + +\begin{frame} + \frametitle{Strassen's Algorithm} + +\begin{columns} + \begin{column}{0.5\textwidth} +\large +\begin{math} +\begin{aligned} +\text{\textbf{I}} &= (\mathbf{A_{11}} + \mathbf{A_{22}}) \cdot (\mathbf{B_{11}} + \mathbf{B_{22}}) \\ +\text{\textbf{II}} &= (\mathbf{A_{21}} + \mathbf{A_{22}}) \cdot \mathbf{B_{11}} \\ +\text{\textbf{III}} &= \mathbf{A_{11}} \cdot (\mathbf{B_{12}}-\mathbf{B_{22}}) \\ +\text{\textbf{IV}} &= \mathbf{A_{22}} \cdot (-\mathbf{B_{11}}+\mathbf{B_{21}}) \\ +\text{\textbf{V}} &= (\mathbf{A_{11}} + \mathbf{A_{12}}) \cdot \mathbf{B_{22}} \\ +\text{\textbf{VI}} &= (-\mathbf{A_{11}} + \mathbf{A_{21}}) \cdot (\mathbf{B_{11}} + \mathbf{B_{12}}) \\ +\text{\textbf{VII}} &= (\mathbf{A_{12}} - \mathbf{A_{22}}) \cdot (\mathbf{B_{21}} + \mathbf{B_{22}}) \\ +\end{aligned} +\end{math} + +\end{column} + +\begin{column}{0.5\textwidth} + \large + \begin{math} + \begin{aligned} + \mathbf{C_{11}} &= \text{\textbf{I}} + \text{\textbf{IV}} - \text{\textbf{V}} + \text{\textbf{VII}} \\ + \mathbf{C_{21}} &= \text{\textbf{II}} + \text{\textbf{IV}} \\ + \mathbf{C_{12}} &= \text{\textbf{III}} + \text{\textbf{V}}\\ + \mathbf{C_{22}} &= \text{\textbf{I}} + \text{\textbf{III}} - \text{\textbf{II}} + \text{\textbf{VI}} \\ + \end{aligned} + \end{math} + +\end{column} +\end{columns} + +\end{frame} + +\begin{frame} + \frametitle{Algorithm} + \onslide<1->{ + + \scalebox{0.45}{\parbox{\linewidth}{ + \begin{algorithm}[H]\caption{Strassen Matrix Multiplication} + \setlength{\lineskip}{7pt} + \begin{algorithmic}[1] + \Function{strassen}{$\textbf{A}, \textbf{B}, n$} + \If{$n = 2$} + \State $ \mathbf{C} \gets zeros((n, n))$ + \State $P \gets (A[0][0]+A[1][1])\cdot( B[0][0]+B[1][1])$ + \State $Q \gets (A[1][0]+A[1][1])\cdot B[0][0]$ + \State $R \gets A[0][0]\cdot (B[0][1]-B[1][1])$ + \State $S \gets A[1][1]\cdot (B[1][0]-B[0][0])$ + \State $T \gets (A[0][0]+A[0][1])\cdot B[1][1]$ + \State $U \gets (A[1][0]-A[0][0])\cdot (B[0][0]+B[0][1])$ + \State $V \gets (A[0][1]-A[1][1])\cdot (B[1][0]+B[1][1])$ + \State $C[0][0] \gets P+S-T+V$ + \State $C[0][1] \gets R+T$ + \State $C[1][0] \gets Q+S$ + \State $C[1][1] \gets P+R-Q+U$ + \Else + \State $ m \gets n/2$ + \State $\mathbf{A11}, \mathbf{A12}, \mathbf{A21}, \mathbf{A22} \gets \mathbf{A}[:m][:m], \mathbf{A}[:m][m:], \mathbf{A}[m:][:m], \mathbf{A}[m:][m:]$ + \State $\mathbf{B11}, \mathbf{B12}, \mathbf{B21}, \mathbf{B22} \gets \mathbf{B}[:m][:m], \mathbf{B}[:m][m:], \mathbf{B}[m:][:m], \mathbf{B}[m:][m:]$ + + \State $ \mathbf{P} \gets \text{strassen}((\mathbf{A11}+ \mathbf{A22}),(\mathbf{B11}+\mathbf{B22}), m)$ + \State $ \mathbf{Q} \gets \text{strassen}((\mathbf{A21}+ \mathbf{A22}), \mathbf{B11},m)$ + \State $ \mathbf{R} \gets \text{strassen}( \mathbf{A11},(\mathbf{B12}- \mathbf{B22}),m)$ + \State $ \mathbf{S} \gets \text{strassen}( \mathbf{A22},(\mathbf{B21}- \mathbf{B11}),m)$ + \State $ \mathbf{T} \gets \text{strassen}((\mathbf{A11}+ \mathbf{A12}), \mathbf{B22},m)$ + \State $ \mathbf{U} \gets \text{strassen}((\mathbf{A21}- \mathbf{A11}),(\mathbf{B11}+\mathbf{B12}),m)$ + \State $ \mathbf{V} \gets \text{strassen}((\mathbf{A12}- \mathbf{A22}),(\mathbf{B21}+\mathbf{B22}),m)$ + + + + \State $\mathbf{C11} \gets \mathbf{P+S-T+V}$ + \State $\mathbf{C12} \gets \mathbf{R+T}$ + \State $\mathbf{C21} \gets \mathbf{Q+S}$ + \State $\mathbf{C22} \gets \mathbf{P+R-Q+U}$ + \State $ C \gets vstack((hstack((C11, C12)), hstack((C21, C22))))$ + + \EndIf + \State \textbf{return} $\textbf{C}$ + + \EndFunction + \end{algorithmic} + \end{algorithm} + }}} +% \[ +% \mathcal{T}(n) = \left\{\begin{array}{lr} +% 1, & \text{if} n \leq 2\\ +% 7 \mathcal{T}(\frac{n}{2}) + n^2, & \text{if} n > 2\\ +% \end{array}\right\} +% \] +\only<2>{ + $ + \mathcal{T}(n) = + \begin{cases} + 1 & \text{if } n \leq 2\\ + 7 \cdot \mathcal{T}(\frac{n}{2}) + n^2 & \text{if } n > 2 + \end{cases} = \mathcal{O}(n^{\log_2 7})$ + +} +\only<3>{ + $ + \mathcal{T}(n) = + \begin{cases} + 1 & \text{if } n \leq 2\\ + 7 \cdot \mathcal{T}(\frac{n}{2}) + n^2 & \text{if } n > 2 + \end{cases} = \mathcal{O}(n^{2.81})$ + +} + +\end{frame} + +\begin{frame} + \frametitle{Algorithm} + \onslide<1->{ + + \scalebox{0.45}{\parbox{\linewidth}{ + \begin{algorithm}[H]\caption{Strassen Matrix Multiplication} + \setlength{\lineskip}{7pt} + \begin{algorithmic}[1] + \Function{MM}{$\textbf{A}, \textbf{B}, n$} + \If{$n = 2$} + \State $ \mathbf{C} \gets zeros((n, n))$ + \State $C[0, 0] \gets A[0][0]*B[0][0]+A[0][1]*B[1][0]$ + \State $C[0, 1] \gets A[0][0]*B[0][1]+A[0][1]*B[1][1]$ + \State $C[1, 0] \gets A[1][0]*B[0][0]+A[1][1]*B[1][0]$ + \State $C[1, 1] \gets A[1][0]*B[0][1]+A[1][1]*B[1][1]$ + \Else + \State $ m \gets n/2$ + \State $\mathbf{A11}, \mathbf{A12}, \mathbf{A21}, \mathbf{A22} \gets \mathbf{A}[:m][:m], \mathbf{A}[:m][m:], \mathbf{A}[m:][:m], \mathbf{A}[m:][m:]$ + \State $\mathbf{B11}, \mathbf{B12}, \mathbf{B21}, \mathbf{B22} \gets \mathbf{B}[:m][:m], \mathbf{B}[:m][m:], \mathbf{B}[m:][:m], \mathbf{B}[m:][m:]$ + + \State $\mathbf{C11} \gets \text{MM}(\mathbf{A11}, \mathbf{B11}) + \text{MM}(\mathbf{A12}, \mathbf{B21})$ + \State $\mathbf{C12} \gets \text{MM}(\mathbf{A11},\mathbf{B12}) + \text{MM}(\mathbf{A12},\mathbf{B22})$ + \State $\mathbf{C21} \gets \text{MM}(\mathbf{A21}, \mathbf{B11}) + \text{MM}(\mathbf{A22}, \mathbf{B21})$ + \State $\mathbf{C22} \gets \text{MM}(\mathbf{A21}, \mathbf{B12}) + \text{MM}(\mathbf{A22}, \mathbf{B22})$ + \State $ C \gets vstack((hstack((C11, C12)), hstack((C21, C22))))$ + + \EndIf + \State \textbf{return} $\textbf{C}$ + + \EndFunction + \end{algorithmic} + \end{algorithm} + \bigskip + \bigskip + \bigskip + \bigskip + \bigskip + }}} + +\only<2>{ + + + $ + \mathcal{T}(n) = + \begin{cases} + 1 & \text{if } n \leq 2\\ + 8 \cdot \mathcal{T}(\frac{n}{2}) + n^2 & \text{if } n > 2 + \end{cases} = \mathcal{O}(n^{\log_2 8})$ + +} +\only<3>{ + $ + \mathcal{T}(n) = + \begin{cases} + 1 & \text{if } n \leq 2\\ + 8 \cdot \mathcal{T}(\frac{n}{2}) + n^2 & \text{if } n > 2 + \end{cases} = \mathcal{O}(n^{3})$ + +} + +\end{frame} diff --git a/buch/papers/multiplikation/presentation/tikz/algo.pdf b/buch/papers/multiplikation/presentation/tikz/algo.pdf Binary files differnew file mode 100644 index 0000000..752f42e --- /dev/null +++ b/buch/papers/multiplikation/presentation/tikz/algo.pdf diff --git a/buch/papers/multiplikation/presentation/tikz/algo.tex b/buch/papers/multiplikation/presentation/tikz/algo.tex new file mode 100644 index 0000000..0b2c567 --- /dev/null +++ b/buch/papers/multiplikation/presentation/tikz/algo.tex @@ -0,0 +1,52 @@ +\documentclass[border=10pt]{article} +\usepackage[left=25mm,right=25mm,top=25mm,bottom=25mm]{geometry} +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage{times} +\usepackage{geometry} +\usepackage{amsmath} +\usepackage{amssymb} +\usepackage{mathrsfs} +\usepackage{amsfonts} +\usepackage{amsthm} +\usepackage{lipsum} +\usepackage{amscd} +\usepackage{graphicx} +\usepackage{fancyhdr} +\usepackage{textcomp} +\usepackage{txfonts} +\usepackage[all]{xy} +\usepackage{paralist} +\usepackage[colorlinks=true]{hyperref} +\usepackage{array} +\usepackage{tikz} +\usepackage{slashed} +\usepackage{pdfpages} +\usepackage{cite} +\usepackage{url} +\usepackage{algorithm} +\usepackage[noend]{algpseudocode} +\usepackage{listings} +\usepackage{multirow} +\usepackage{color} + +\begin{document} + +\begin{algorithm}[H]\caption{Square Matrix Multiplication} + \setlength{\lineskip}{7pt} + \begin{algorithmic}[1] + \Function{MM}{$\textbf{A}, \textbf{B}, \textbf{C}, n$} + \State $sum \gets 0$ + \For{$i = 0,1,2 \dots,n-1$} + \For{$j = 0,1,2 \dots,n-1$} + \State $sum \gets 0$ + \For{$k = 0,1,2 \dots,n-1$} + \State $sum \gets sum + \textbf{A}[i][k] \cdot \textbf{B}[k][j]$ + \EndFor + \State $\textbf{C}[i][j] \gets sum $ + \EndFor + \EndFor + \EndFunction + \end{algorithmic} +\end{algorithm} +\end{document} diff --git a/buch/papers/multiplikation/problemstellung.tex b/buch/papers/multiplikation/problemstellung.tex new file mode 100755 index 0000000..b20a791 --- /dev/null +++ b/buch/papers/multiplikation/problemstellung.tex @@ -0,0 +1,104 @@ +% +% teil1.tex -- Beispiel-File für das Paper +% +% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% +\section{Problemstellung} +\rhead{Problemstellung} +Dank der breiten Anwendung der Matrizenmultiplikation ist eine effiziente L\"osung dieser Operation von grosser Bedeutung. +Das Ziel dieses Papers ist verschiedenen Algorithmen der Matrizenmultiplikation vorzustellen. +Wobei gezielt auf Algorithmen, welche das Problem schneller als der Standard Algorithmus L\"osen eingegangen wird. + +\subsection{Big $\mathcal{O}$ Notation} +Die Big $\mathcal{O}$ Notation beschreibt die Laufzeitkomplexit\"at eines Algorithmus \cite{multiplikation:bigo}. +$f(x) \in \mathcal{O}(g(x))$ besagt das die Funktion $f$ nicht wesentlich schneller w\"achst als $g$ wenn $x \rightarrow \infty$. +Vereinfacht werden f\"ur Algorithmen die folgende Notation verwendet: +\begin{itemize} + \item $f \in \mathcal{O}(1) \rightarrow f$ ist beschr\"ankt + \item $f \in \mathcal{O}(n) \rightarrow f$ w\"achst linear + \item $f \in \mathcal{O}(n^2) \rightarrow f$ w\"achst quadratisch + \item $f \in \mathcal{O}(\log n) \rightarrow f$ w\"achst logarithmisch + \item $f \in \mathcal{O}(n \log n) \rightarrow f$ hat super-lineares Wachstum + \item $f \in \mathcal{O}(e^n) \rightarrow f$ w\"achst exponentiell + \item usw. +\end{itemize} + +In der Abbildung \ref{multiplikation:fig:bigo} k\"onnen die Verschiedenen Laufzeiten miteinander verglichen werden. + +\begin{figure} + \center + \includegraphics[]{papers/multiplikation/images/bigo} + \caption{Verschiedene Laufzeiten} + \label{multiplikation:fig:bigo} +\end{figure} + +\subsubsection{Beispiel Algorithmen} +\paragraph{Beschr\"ankter Algorithmus} + +Ein Beispiel eines Beschr\"ankter Verhalten $\mathcal{O}(1)$, kann im Algorithmus \ref{multiplikation:alg:b1} entnommen werden. + +\begin{algorithm}\caption{} + \label{multiplikation:alg:b1} + \setlength{\lineskip}{7pt} + \begin{algorithmic} + \Function{B1}{$a, b$} + \State \textbf{return} $a+b$ + \EndFunction + \end{algorithmic} +\end{algorithm} + +Wobei Konstanten nicht beachtet werden, der Algorithmus \ref{multiplikation:alg:b2} f\"uhrt ebenso zu $\mathcal{O}(1)$ und nicht zu $\mathcal{O}(2)$. + +\begin{algorithm}\caption{} + \label{multiplikation:alg:b2} + \setlength{\lineskip}{7pt} + \begin{algorithmic} + \Function{B2}{$a, b$} + \State $ x \gets a+b $ + \State $ y \gets a \cdot b $ + \State \textbf{return} $x+y$ + \EndFunction + \end{algorithmic} +\end{algorithm} + +\paragraph{Linearer Algorithmus} + +Folgender Algorithmus \ref{multiplikation:alg:l1} hat ein lineares $\mathcal{O}(n)$ Verhalten. + +\begin{algorithm}\caption{} + \setlength{\lineskip}{7pt} + \begin{algorithmic} + \label{multiplikation:alg:l1} + \Function{L}{$\mathbf{A}, \mathbf{B}$,n} + \State $ sum \gets 0$ + \For{$i = 0,1,2 \dots,n$} + \State $ sum \gets sum + A[i] \cdot B[i] $ + \EndFor + + \State \textbf{return} $sum$ + + \EndFunction + \end{algorithmic} +\end{algorithm} + +\paragraph{Quadratischer Algorithmus} + +Folgender Algorithmus \ref{multiplikation:alg:q1} hat ein quadratisches $\mathcal{O}(n^2)$ Verhalten. + +\begin{algorithm}[H]\caption{} + \label{multiplikation:alg:q1} + \setlength{\lineskip}{7pt} + \begin{algorithmic} + \Function{Q}{$\mathbf{A}, \mathbf{B}$,n} + \State $ sum \gets 0$ + \For{$i = 0,1,2 \dots,n$} + \For{$j = 0,1,2 \dots,n$} + \State $ sum \gets sum + A[i] \cdot B[j] $ + \EndFor + \EndFor + \State \textbf{return} $sum$ + \EndFunction + \end{algorithmic} +\end{algorithm} + + diff --git a/buch/papers/multiplikation/references.bib b/buch/papers/multiplikation/references.bib index 7149fb1..9d76e8e 100644..100755 --- a/buch/papers/multiplikation/references.bib +++ b/buch/papers/multiplikation/references.bib @@ -33,3 +33,33 @@ url = {https://doi.org/10.1016/j.acha.2017.11.004} } +@article{multiplikation:winograd_1968, + title={A New Algorithm for Inner Product}, + volume={C-17}, + DOI={10.1109/tc.1968.227420}, + number={7}, + journal={IEEE Transactions on Computers}, + author={Winograd, S.}, + year={1968}, + pages={693–694} +} + +@article{multiplikation:strassen_1969, + title={Gaussian elimination is not optimal}, + volume={13}, + DOI={10.1007/bf02165411}, + number={4}, + journal={Numerische Mathematik}, + author={Strassen, Volker}, + year={1969}, + pages={354–356} +} + +@online{multiplikation:bigo, + title = {Big O notation}, + url = {https://en.wikipedia.org/wiki/Big_O_notation}, + date = {2021-07-27}, + year = {2021}, + month = {7}, + day = {27} +} diff --git a/buch/papers/multiplikation/teil0.tex b/buch/papers/multiplikation/teil0.tex deleted file mode 100644 index 082b7f5..0000000 --- a/buch/papers/multiplikation/teil0.tex +++ /dev/null @@ -1,22 +0,0 @@ -% -% einleitung.tex -- Beispiel-File für die Einleitung -% -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil -% -\section{Teil 0\label{multiplikation:section:teil0}} -\rhead{Teil 0} -Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam -nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam -erat, sed diam voluptua \cite{multiplikation:bibtex}. -At vero eos et accusam et justo duo dolores et ea rebum. -Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum -dolor sit amet. - -Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam -nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam -erat, sed diam voluptua. -At vero eos et accusam et justo duo dolores et ea rebum. Stet clita -kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit -amet. - - diff --git a/buch/papers/multiplikation/teil1.tex b/buch/papers/multiplikation/teil1.tex deleted file mode 100644 index 0a6903a..0000000 --- a/buch/papers/multiplikation/teil1.tex +++ /dev/null @@ -1,55 +0,0 @@ -% -% teil1.tex -- Beispiel-File für das Paper -% -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil -% -\section{Teil 1 -\label{multiplikation:section:teil1}} -\rhead{Problemstellung} -Sed ut perspiciatis unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam, eaque ipsa -quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. -Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit -aut fugit, sed quia consequuntur magni dolores eos qui ratione -voluptatem sequi nesciunt -\begin{equation} -\int_a^b x^2\, dx -= -\left[ \frac13 x^3 \right]_a^b -= -\frac{b^3-a^3}3. -\label{multiplikation:equation1} -\end{equation} -Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, -consectetur, adipisci velit, sed quia non numquam eius modi tempora -incidunt ut labore et dolore magnam aliquam quaerat voluptatem. - -Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis -suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? -Quis autem vel eum iure reprehenderit qui in ea voluptate velit -esse quam nihil molestiae consequatur, vel illum qui dolorem eum -fugiat quo voluptas nulla pariatur? - -\subsection{De finibus bonorum et malorum -\label{multiplikation:subsection:finibus}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga \eqref{000tempmlate:equation1}. - -Et harum quidem rerum facilis est et expedita distinctio -\ref{multiplikation:section:loesung}. -Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil -impedit quo minus id quod maxime placeat facere possimus, omnis -voluptas assumenda est, omnis dolor repellendus -\ref{multiplikation:section:folgerung}. -Temporibus autem quibusdam et aut officiis debitis aut rerum -necessitatibus saepe eveniet ut et voluptates repudiandae sint et -molestiae non recusandae. -Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis -voluptatibus maiores alias consequatur aut perferendis doloribus -asperiores repellat. - - diff --git a/buch/papers/multiplikation/teil2.tex b/buch/papers/multiplikation/teil2.tex deleted file mode 100644 index efbf31a..0000000 --- a/buch/papers/multiplikation/teil2.tex +++ /dev/null @@ -1,40 +0,0 @@ -% -% teil2.tex -- Beispiel-File für teil2 -% -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil -% -\section{Teil 2 -\label{multiplikation:section:teil2}} -\rhead{Teil 2} -Sed ut perspiciatis unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam, eaque ipsa -quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit -aspernatur aut odit aut fugit, sed quia consequuntur magni dolores -eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam -est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci -velit, sed quia non numquam eius modi tempora incidunt ut labore -et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima -veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, -nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure -reprehenderit qui in ea voluptate velit esse quam nihil molestiae -consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla -pariatur? - -\subsection{De finibus bonorum et malorum -\label{multiplikation:subsection:bonorum}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis -est et expedita distinctio. Nam libero tempore, cum soluta nobis -est eligendi optio cumque nihil impedit quo minus id quod maxime -placeat facere possimus, omnis voluptas assumenda est, omnis dolor -repellendus. Temporibus autem quibusdam et aut officiis debitis aut -rerum necessitatibus saepe eveniet ut et voluptates repudiandae -sint et molestiae non recusandae. Itaque earum rerum hic tenetur a -sapiente delectus, ut aut reiciendis voluptatibus maiores alias -consequatur aut perferendis doloribus asperiores repellat. - - diff --git a/buch/papers/multiplikation/teil3.tex b/buch/papers/multiplikation/teil3.tex deleted file mode 100644 index f58508b..0000000 --- a/buch/papers/multiplikation/teil3.tex +++ /dev/null @@ -1,40 +0,0 @@ -% -% teil3.tex -- Beispiel-File für Teil 3 -% -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil -% -\section{Teil 3 -\label{multiplikation:section:teil3}} -\rhead{Teil 3} -Sed ut perspiciatis unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam, eaque ipsa -quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit -aspernatur aut odit aut fugit, sed quia consequuntur magni dolores -eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam -est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci -velit, sed quia non numquam eius modi tempora incidunt ut labore -et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima -veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, -nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure -reprehenderit qui in ea voluptate velit esse quam nihil molestiae -consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla -pariatur? - -\subsection{De finibus bonorum et malorum -\label{multiplikation:subsection:malorum}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis -est et expedita distinctio. Nam libero tempore, cum soluta nobis -est eligendi optio cumque nihil impedit quo minus id quod maxime -placeat facere possimus, omnis voluptas assumenda est, omnis dolor -repellendus. Temporibus autem quibusdam et aut officiis debitis aut -rerum necessitatibus saepe eveniet ut et voluptates repudiandae -sint et molestiae non recusandae. Itaque earum rerum hic tenetur a -sapiente delectus, ut aut reiciendis voluptatibus maiores alias -consequatur aut perferendis doloribus asperiores repellat. - - diff --git a/buch/papers/multiplikation/tikz_formulas/algo.fdb_latexmk b/buch/papers/multiplikation/tikz_formulas/algo.fdb_latexmk new file mode 100644 index 0000000..5f14129 --- /dev/null +++ b/buch/papers/multiplikation/tikz_formulas/algo.fdb_latexmk @@ -0,0 +1,254 @@ +# Fdb version 3 +["pdflatex"] 1620305767 "algo.tex" "algo.pdf" "algo" 1621586452 + "/dev/null" 1621583990 0 d41d8cd98f00b204e9800998ecf8427e "" + "/etc/texmf/web2c/texmf.cnf" 1619433543 475 c0e671620eb5563b2130f56340a5fde8 "" + "/usr/share/texlive/texmf-dist/fonts/enc/dvips/base/8r.enc" 1165713224 4850 80dc9bab7f31fb78a000ccfed0e27cab "" + "/usr/share/texlive/texmf-dist/fonts/map/fontname/texfonts.map" 1577235249 3524 cb3e574dea2d1052e39280babc910dc8 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/jknappen/ec/ecrm1000.tfm" 1136768653 3584 adb004a0c8e7c46ee66cad73671f37b4 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/rsfs/rsfs10.tfm" 1229303445 688 37338d6ab346c2f1466b29e195316aa4 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/rsfs/rsfs5.tfm" 1229303445 684 3a51bd4fd9600428d5264cf25f04bb9a "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/rsfs/rsfs7.tfm" 1229303445 692 1b6510779f0f05e9cbf03e0f6c8361e6 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxb.tfm" 1136768653 1020 c53143d3e3747b5c1149bd9a5ecd7b55 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxmi.tfm" 1136768653 1056 e2202af076e43d03fc17f87e104021b0 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxptmb.tfm" 1136768653 4572 2c370d27bbb031f7592de9d41dc8cfca "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxptmr.tfm" 1136768653 4452 0fd0a792eaab7113e4d4f1b941ff0367 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxptmri.tfm" 1136768653 4640 ce59980bcbe9e6236fab46d0b5212c7e "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxr.tfm" 1136768653 1004 c0e991f864f31f017ea4ff9e451b76d4 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/t1xb.tfm" 1136768653 6892 772bf8e6c154137db8568fa8a47a6ceb "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/t1xr.tfm" 1136768653 6716 6d25a377562601272906e3bfe6b2817a "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txex.tfm" 1136768653 1080 b674b4ba143004461509a754a0984b67 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txexa.tfm" 1136768653 688 f56006d6e56f46e63d9f63252958b828 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txi.tfm" 1136768653 2584 cf4a6a7c2a518d47468fe29ef0913ba0 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmi.tfm" 1232065820 1944 f854e259cb2839e49d4aa2949544a6e1 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmia.tfm" 1136768653 1180 72784d0ee5a983fba99a0986b31b0493 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txr.tfm" 1136768653 2408 aec793a3c45e495f7ad15b227c91f508 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsy.tfm" 1136768653 1268 1d124f224979493f8fd017a7597ea1cd "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsya.tfm" 1136768653 972 2c9ffac4bbd20f91c01aaef9bf3f8710 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyb.tfm" 1136768653 988 098ca7e8cc5647b9ac21b82dbdce1f01 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyc.tfm" 1136768653 1084 75e807e9e71f7a312e4e1187dce5e93b "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xyatip10.tfm" 1381187214 608 50246cc71b0635b0ba0a5c10a0bf4257 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xybsql10.tfm" 1381187214 608 4db60f15ea23b4ec2d796c6d568a63fa "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xybtip10.tfm" 1381187214 608 50246cc71b0635b0ba0a5c10a0bf4257 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xycirc10.tfm" 1381187214 844 3393210079fb4ed9347e214b3bfd7c1a "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xycmat10.tfm" 1381187214 608 f124f78ed50a1817738d2adb190cf2bd "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xycmbt10.tfm" 1381187214 608 f124f78ed50a1817738d2adb190cf2bd "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xydash10.tfm" 1381187214 984 5c01c46b93e3ba8369f3f8edc6e62aef "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xyluat10.tfm" 1381187214 608 a3a3bc08980c5126ff2a7a68fb5a64ff "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xylubt10.tfm" 1381187214 608 a3a3bc08980c5126ff2a7a68fb5a64ff "" + "/usr/share/texlive/texmf-dist/fonts/type1/public/txfonts/rtxmi.pfb" 1232065820 13806 49b888f4605a088e66b9eb4fee320a6e "" + "/usr/share/texlive/texmf-dist/fonts/type1/public/txfonts/rtxr.pfb" 1136849748 6339 e2b78706efdc360ee6aec9b6e20211a7 "" + "/usr/share/texlive/texmf-dist/fonts/type1/public/txfonts/txex.pfb" 1136849748 17531 c91f2d6943f51d7c46d6b7b9cedd50ba "" + "/usr/share/texlive/texmf-dist/fonts/type1/public/txfonts/txsy.pfb" 1136849748 20336 69267d8a81bca8b24c9b42694a4a28f9 "" + "/usr/share/texlive/texmf-dist/fonts/type1/urw/times/utmb8a.pfb" 1136849748 44729 811d6c62865936705a31c797a1d5dada "" + "/usr/share/texlive/texmf-dist/fonts/type1/urw/times/utmr8a.pfb" 1136849748 46026 6dab18b61c907687b520c72847215a68 "" + "/usr/share/texlive/texmf-dist/fonts/type1/urw/times/utmri8a.pfb" 1136849748 45458 a3faba884469519614ca56ba5f6b1de1 "" + "/usr/share/texlive/texmf-dist/fonts/vf/public/txfonts/t1xb.vf" 1136768653 2144 bab2875eda5b2344ea7b1db74ccc03a4 "" + "/usr/share/texlive/texmf-dist/fonts/vf/public/txfonts/t1xr.vf" 1136768653 2140 99e5b3a34695df6221a167ffa8b498d6 "" + "/usr/share/texlive/texmf-dist/fonts/vf/public/txfonts/txmi.vf" 1232065820 960 cfcc9d587b40b769f64408b3ca115941 "" + "/usr/share/texlive/texmf-dist/fonts/vf/public/txfonts/txr.vf" 1136768653 904 e582cae2d8ae3f48a0a520440ebcdb51 "" + "/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii" 1461363279 71627 94eb9990bed73c364d7f53f960cc8c5b "" + "/usr/share/texlive/texmf-dist/tex/generic/atbegshi/atbegshi.sty" 1575674566 24708 5584a51a7101caf7e6bbf1fc27d8f7b1 "" + "/usr/share/texlive/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty" 1576625341 40635 c40361e206be584d448876bba8a64a3b "" + "/usr/share/texlive/texmf-dist/tex/generic/bitset/bitset.sty" 1576016050 33961 6b5c75130e435b2bfdb9f480a09a39f9 "" + "/usr/share/texlive/texmf-dist/tex/generic/etexcmds/etexcmds.sty" 1576625273 7734 b98cbb34c81f667027c1e3ebdbfce34b "" + "/usr/share/texlive/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty" 1576625223 8371 9d55b8bd010bc717624922fb3477d92e "" + "/usr/share/texlive/texmf-dist/tex/generic/iftex/ifluatex.sty" 1572645307 492 1994775aa15b0d1289725a0b1bbc2d4c "" + "/usr/share/texlive/texmf-dist/tex/generic/iftex/ifpdf.sty" 1572645307 480 5778104efadad304ced77548ca2184b1 "" + "/usr/share/texlive/texmf-dist/tex/generic/iftex/iftex.sty" 1573336935 6902 30fdaf7dc5636b8e3afa306210c45cae "" + "/usr/share/texlive/texmf-dist/tex/generic/iftex/ifvtex.sty" 1572645307 1057 525c2192b5febbd8c1f662c9468335bb "" + "/usr/share/texlive/texmf-dist/tex/generic/infwarerr/infwarerr.sty" 1575499628 8356 7bbb2c2373aa810be568c29e333da8ed "" + "/usr/share/texlive/texmf-dist/tex/generic/intcalc/intcalc.sty" 1576625065 31769 002a487f55041f8e805cfbf6385ffd97 "" + "/usr/share/texlive/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty" 1576878844 5412 d5a2436094cd7be85769db90f29250a6 "" + "/usr/share/texlive/texmf-dist/tex/generic/kvsetkeys/kvsetkeys.sty" 1576624944 13807 952b0226d4efca026f0e19dd266dcc22 "" + "/usr/share/texlive/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty" 1576624883 18552 1e1cc7b75da0dfaacce7cdcb27d306bf "" + "/usr/share/texlive/texmf-dist/tex/generic/pdfescape/pdfescape.sty" 1576015897 19007 15924f7228aca6c6d184b115f4baa231 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcore.code.tex" 1557692582 992 fb3cda354707a54fda62787a411c7c22 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorearrows.code.tex" 1546728038 43820 bc6cf5aa959817914ace33f5c6232161 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreexternal.code.tex" 1557692582 19324 c9a64402f22bd8d81821141a357af653 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoregraphicstate.code.tex" 1546728038 6038 d639d02574be9a72f3c602c2a3510e02 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreimage.code.tex" 1546728038 6948 284bbe3c9a7ca0a826c1c03895e69b9f "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorelayers.code.tex" 1546728038 4883 a6f3eb1f71d8c4affaf43a169828b043 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreobjects.code.tex" 1546728038 2544 3b1b198fd49f01e328adc9162a07b213 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathconstruct.code.tex" 1576793519 44189 1fd6229dad4c898883516c032f2ca5d2 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathprocessing.code.tex" 1546728038 17311 3092579be20ef0f229c42ad3f09da85c "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathusage.code.tex" 1546728038 21302 d6c4b340248adbe650ebf6ca76bdccca "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepatterns.code.tex" 1562964315 9690 7585efa5a591822837f837bc5bc35621 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepoints.code.tex" 1576793519 33335 942ccafe284041918d36e54696b98aa7 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorequick.code.tex" 1546728038 2965 502761b60f43ab2de5ecb2f4625163ae "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorerdf.code.tex" 1546728038 5196 f8c5c775d4d6e2cb050392127cabda72 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorescopes.code.tex" 1576793519 20726 ed6ec1d6f0f35e7a93de4e79af83dbce "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreshade.code.tex" 1557692582 35249 144a6b9c4df4644618bb3a0a40472608 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransformations.code.tex" 1546728038 21989 266e83c51fe41eb8b8d5e6896dc71cc1 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransparency.code.tex" 1546728038 8842 5cc856e132fac404805c6da091779283 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryarrows.code.tex" 1546728038 319 8fc6edce901e074ba09de320a8fc686b "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryautomata.code.tex" 1546728038 3986 c962be8d57437fcaf853d2babd8ed403 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarybackgrounds.code.tex" 1546728038 4572 980c82f01c0e3983edadbbc373d304cb "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryfit.code.tex" 1546728038 3643 4a4bd51bd85886cc39d4073af8cf77a9 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarymatrix.code.tex" 1546728038 4202 e655aa2657da1088ec7745ece2876c4c "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarypositioning.code.tex" 1546728038 3937 20cd45386ca23052ce976464f0ada984 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshapes.multipart.code.tex" 1546728038 919 da625675781832f2b61a7048a51ef656 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarytopaths.code.tex" 1576793519 11544 2a5d66a3270abf4ef673e8a0b7734a90 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/tikz.code.tex" 1576967981 187592 7922ceab1864698dec4c84978d5b182f "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/libraries/pgflibraryarrows.code.tex" 1546728038 31874 d843d507175f2bdfa3abf01f0349dac8 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/libraries/pgflibraryplothandlers.code.tex" 1546728038 32995 a4d54c043ae5274ceaaddeb36ad43a6f "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/libraries/shapes/pgflibraryshapes.multipart.code.tex" 1546728038 62281 fd68e6d2c2dc178611c8f4d2d86e79ae "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfint.code.tex" 1557692582 3063 8c415c68a0f3394e45cfeca0b65f6ee6 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex" 1557692582 521 c70cf6ad609de83a27ee7929eb356332 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathcalc.code.tex" 1557692582 13391 933cab19c6d27039dbfc487330d1005a "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfloat.code.tex" 1557692582 104938 15f2d8bdabd6bf9ca70f62cd8e3d4940 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.base.code.tex" 1557692582 10157 218d58ab074e5bd0d027de45ec64cc00 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.basic.code.tex" 1576793519 28176 568b081ec39645f2db1a29fbd0c635e2 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.code.tex" 1562964315 9054 388d21239a1b6df2cc8beaae31c976b0 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.comparison.code.tex" 1557692582 3865 cddf7ddc80f018587c55afdcc79fc333 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.integerarithmetics.code.tex" 1557692582 3177 27d85c44fbfe09ff3b2cf2879e3ea434 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.misc.code.tex" 1557692582 10925 df50b8a6e5660a585e3a2bf55726dcc8 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.random.code.tex" 1562964315 7787 1750fc3f164703caf31fc8ea9218c67e "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.round.code.tex" 1557692582 3379 cbd0948a550bd7a495a160ca6beee9ed "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.trigonometric.code.tex" 1557692582 92405 bba89470858d7b0788a9c09331c39653 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathparser.code.tex" 1576793519 36526 453db1f8626a56b5ebb0fad496d6a39f "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathutil.code.tex" 1576793519 8471 b18959397c76e1e582402ab9f592ed9f "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/modules/pgfmodulematrix.code.tex" 1576793519 21201 46a4dded6619f990ac7347f99fbaac9f "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/modules/pgfmoduleplot.code.tex" 1557692582 16121 9e240115374a8d489f2f786115df83a9 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/modules/pgfmoduleshapes.code.tex" 1576793519 43259 3e05ba63539916af2eaca603c2eda780 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/pgf.revision.tex" 1578520427 465 1f401ab1e7fc6cb7ede39e96c66531fd "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgf.cfg" 1557692582 926 70ff613fabeb70f5d1673dc0c93987bd "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-common-pdf.def" 1557692582 5546 3586827e6032c95512b2a6682d2979a3 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-pdftex.def" 1562964315 12603 c02869ea216d842c29d52fae8738264e "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex" 1557692582 60269 e86bc0081af83a4ad47e4500ee09a2e4 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol.code.tex" 1557692582 1896 82c274ff520f9e450ccea4e3ef4edc12 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.tex" 1557692582 7778 a25a32a10ca820357491d4c7b3ac02ea "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgffor.code.tex" 1562964315 23777 cb6c8f02f87d86d621f5cb92c44f4998 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex" 1576793519 36815 f7f1772c398f07af2cb741992963045c "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfkeysfiltered.code.tex" 1562964315 37439 bd44d50aef702b03193f731207931834 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex" 1557692582 4494 7e5ace0ccf59408f2cf63219a5d36927 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfutil-common-lists.tex" 1557692582 7250 03b2b9fb5fa38e7ca5cc3c45860fb210 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfutil-common.tex" 1576793519 28309 488ccc6c701bbdd1bf671f708757aa5c "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfutil-latex.def" 1562964315 6286 1bd76fc45da9929ab2a64f51cba3ab6f "" + "/usr/share/texlive/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty" 1576624663 7008 f92eaa0a3872ed622bbf538217cd2ab7 "" + "/usr/share/texlive/texmf-dist/tex/generic/xkeyval/keyval.tex" 1403829539 2725 fc34ef3ccb37ba15a640e8fca6190bca "" + "/usr/share/texlive/texmf-dist/tex/generic/xkeyval/xkeyval.tex" 1417732693 19231 26434a5656c684f5ffb1f26f98006baa "" + "/usr/share/texlive/texmf-dist/tex/generic/xkeyval/xkvutils.tex" 1403829539 7677 6f5ce7c1124cad7ec57d05b2562bd8fe "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xy.sty" 1312310545 4692 1e1bcf75c622af1eefd9169948208302 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xy.tex" 1381187214 115380 413d5f789929a45aab7d12ce0d0aee7d "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xyall.tex" 1312310545 1449 24340b6befc66d28ee1ebb657efb5892 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xyarrow.tex" 1312310545 22657 990ce136a3cc15728ba417a2e78b25c8 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xycmtip.tex" 1312310545 1374 43fb8dc80dd748631d78096701166d76 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xycolor.tex" 1312310545 4586 edd672434f45626662368282c0322160 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xycurve.tex" 1312310545 109670 d412ee1ff259daefee5e927172e2f9a8 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xyframe.tex" 1337903317 24249 186931a828664624939ab0b347e3952c "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xygraph.tex" 1312310545 9619 b7e4d9a6936ba2ad6119a280abde9641 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xyidioms.tex" 1312310545 2907 1ee562fde0b53c9cd16f7a604f33fdf0 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xyline.tex" 1312310545 10928 c3a572983ccc9fc596b4e9ce454d5652 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xymatrix.tex" 1312310545 22583 25b1e7edeee41f181ee9733429da4a9c "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf-co.tex" 1312310545 8442 90cb8a3b00c2081384c1ce988d2ba0a3 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf-cu.tex" 1312310545 39762 25a964ebb390bcfcd35c040f477eef1d "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf-fr.tex" 1312310545 16485 5686b19cc46d046c885428794ed9c114 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf-li.tex" 1312310545 2619 1a12b316e2132654e44ba2cd21def637 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf-ro.tex" 1312310545 5290 e16fc85c85f64d0a5c04708bf3312d00 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf.tex" 1312310545 18763 e61049d36bdfccb226f22e582d70d368 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xyrecat.tex" 1312310545 1391 c8763fc8e281cb6ecf697988b6608e4a "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xyrotate.tex" 1312310545 7008 cb768d8d63a12d35607cbb3c4e7ba163 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xytips.tex" 1381187214 3689 0d51788a4141bc66ab896f7ac63495fd "" + "/usr/share/texlive/texmf-dist/tex/latex/amscls/amsthm.sty" 1513722769 12604 3dec726c041422879dc3268237f09026 "" + "/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amsfonts.sty" 1359763108 5949 3f3fd50a8cc94c3d4cbf4fc66cd3df1c "" + "/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amssymb.sty" 1359763108 13829 94730e64147574077f8ecfea9bb69af4 "" + "/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsbsy.sty" 1523134290 2211 ca7ce284ab93c8eecdc6029dc5ccbd73 "" + "/usr/share/texlive/texmf-dist/tex/latex/amsmath/amscd.sty" 1523134290 5309 0c9ef5db85b924cdbb316f080dfd826e "" + "/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsgen.sty" 1523134290 4161 7f6eb9092061a11f87d08ed13515b48d "" + "/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsmath.sty" 1580683321 85660 baee036978c7a91f4e2bba43f05e5945 "" + "/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsopn.sty" 1523134290 4116 32e6abd27229755a83a8b7f18e583890 "" + "/usr/share/texlive/texmf-dist/tex/latex/amsmath/amstext.sty" 1523134290 2432 8ff93b1137020e8f21930562a874ae66 "" + "/usr/share/texlive/texmf-dist/tex/latex/aobs-tikz/tikzlibraryoverlay-beamer-styles.code.tex" 1389658833 4047 82a015585c1ef210fb6750d6322afa7f "" + "/usr/share/texlive/texmf-dist/tex/latex/atveryend/atveryend.sty" 1576191570 19336 ce7ae9438967282886b3b036cfad1e4d "" + "/usr/share/texlive/texmf-dist/tex/latex/auxhook/auxhook.sty" 1576625391 3935 57aa3c3e203a5c2effb4d2bd2efbc323 "" + "/usr/share/texlive/texmf-dist/tex/latex/base/article.cls" 1580683321 20023 e427dd9e17e239bf926ef3aab67fe35e "" + "/usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty" 1581632200 4947 0c2888dd88121ae675fc6e82213623ba "" + "/usr/share/texlive/texmf-dist/tex/latex/base/ifthen.sty" 1580683321 5159 892429808d9e0e2b3548aaefd9a06ed0 "" + "/usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty" 1580683321 5050 8933a39ad74377accd18991c5eb90c58 "" + "/usr/share/texlive/texmf-dist/tex/latex/base/size10.clo" 1580683321 8446 9874cccac5fee462272c582807dbbf56 "" + "/usr/share/texlive/texmf-dist/tex/latex/base/textcomp.sty" 1581112666 2821 2c0928feafd5527387e29a1af774d030 "" + "/usr/share/texlive/texmf-dist/tex/latex/carlisle/slashed.sty" 1137109962 5327 8b3c95b5f71136add36a4a0bb1507594 "" + "/usr/share/texlive/texmf-dist/tex/latex/cite/cite.sty" 1425427964 26218 19edeff8cdc2bcb704e8051dc55eb5a7 "" + "/usr/share/texlive/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty" 1579991033 13886 d1306dcf79a944f6988e688c1785f9ce "" + "/usr/share/texlive/texmf-dist/tex/latex/eso-pic/eso-pic.sty" 1526160256 11991 c1669f88e13f8bb6243df144e456b477 "" + "/usr/share/texlive/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty" 1548974385 11128 a53805799bebfed6358fc1658a18e41f "" + "/usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty" 1578002852 41601 9cf6c5257b1bc7af01a58859749dd37a "" + "/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg" 1459978653 1213 620bba36b25224fa9b7e1ccb4ecb76fd "" + "/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg" 1465944070 1224 978390e9c2234eab29404bc21b268d1e "" + "/usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def" 1515537368 17334 520b9b85ad8a2a48eda3f643e27a5179 "" + "/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty" 1580683321 16932 04729abe63b66ec59ea56edcd722b058 "" + "/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty" 1580683321 9067 1b996612394a52e1efe89c8bfe8a5892 "" + "/usr/share/texlive/texmf-dist/tex/latex/graphics/lscape.sty" 1580683321 1753 f80abc75c0e3a4915097779c2649cc98 "" + "/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty" 1580683321 3976 d7fa7d81d2870d509d25b17d0245e735 "" + "/usr/share/texlive/texmf-dist/tex/latex/hycolor/hycolor.sty" 1580250785 17914 4c28a13fc3d975e6e81c9bea1d697276 "" + "/usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def" 1579642962 50630 3d9728faf8630190cf601ce2cbe470d9 "" + "/usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty" 1579642962 238752 60dd338d71b6a4ab2192131f73dc908b "" + "/usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty" 1579642962 13244 0070bcab7b5a88187847128d22faf4d8 "" + "/usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def" 1579642962 14134 32b36577d311ddb6522413c7581ee968 "" + "/usr/share/texlive/texmf-dist/tex/latex/jknapltx/mathrsfs.sty" 1137110241 300 12fa6f636b617656f2810ee82cb05015 "" + "/usr/share/texlive/texmf-dist/tex/latex/jknapltx/ursfs.fd" 1137110241 548 cc4e3557704bfed27c7002773fad6c90 "" + "/usr/share/texlive/texmf-dist/tex/latex/kvoptions/kvoptions.sty" 1575152344 22520 c4c2dab203104295e1e618be7e5c0f5b "" + "/usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-pdfmode.def" 1580854751 25404 9d60f463a00d154207ec0048dee27cf0 "" + "/usr/share/texlive/texmf-dist/tex/latex/l3kernel/expl3.sty" 1581719662 4381 04628f3002bdd1d9c43ef984fd60ae18 "" + "/usr/share/texlive/texmf-dist/tex/latex/l3packages/xparse/xparse.sty" 1581719662 81717 e93576ac4b24ce6e121ebd6ec6cf2893 "" + "/usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg" 1279039959 678 4792914a8f45be57bb98413425e4c7af "" + "/usr/share/texlive/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty" 1575499565 5766 13a9e8766c47f30327caf893ece86ac8 "" + "/usr/share/texlive/texmf-dist/tex/latex/lipsum/lipsum.ltd.tex" 1546728170 98047 c6fa29828cc60471827afe275c8bd77f "" + "/usr/share/texlive/texmf-dist/tex/latex/lipsum/lipsum.sty" 1546638616 18060 8cf65af2c4529eed91b5d364b50d3ada "" + "/usr/share/texlive/texmf-dist/tex/latex/listings/listings.cfg" 1568236792 1830 bbaba8afaf42cc048ec4d4ff73467521 "" + "/usr/share/texlive/texmf-dist/tex/latex/listings/listings.sty" 1568236792 80511 830f3f1d3ab7448dd84233e9c2f6462c "" + "/usr/share/texlive/texmf-dist/tex/latex/listings/lstmisc.sty" 1568236792 77022 32914f01b528131c47be2a1040d3856d "" + "/usr/share/texlive/texmf-dist/tex/latex/matrix-skeleton/pgflibrarymatrix.skeleton.code.tex" 1565039202 19612 007f8469df07e9ef0f680e346cc01945 "" + "/usr/share/texlive/texmf-dist/tex/latex/matrix-skeleton/tikzlibrarymatrix.skeleton.code.tex" 1565039202 7267 4d597b08b2429acaa1e526052d9509ed "" + "/usr/share/texlive/texmf-dist/tex/latex/ms/everyshi.sty" 1177890616 3878 6aa7c08ff2621006e0603349e40a30a8 "" + "/usr/share/texlive/texmf-dist/tex/latex/multirow/multirow.sty" 1559339157 5486 a1d954b09782ba0acd8a8abfd98e1028 "" + "/usr/share/texlive/texmf-dist/tex/latex/paralist/paralist.sty" 1485124581 14857 82c76ebe8f06becf69ab309565b2a0cb "" + "/usr/share/texlive/texmf-dist/tex/latex/pdflscape/pdflscape.sty" 1575674318 6575 25396d208d8f2b9395d06ef315d5886c "" + "/usr/share/texlive/texmf-dist/tex/latex/pdfpages/pdfpages.sty" 1580249532 54071 88f1e37dc9e1f95352061a066ed07263 "" + "/usr/share/texlive/texmf-dist/tex/latex/pdfpages/pppdftex.def" 1580249532 6418 197ed301e61ce5b7f446e70345a43a62 "" + "/usr/share/texlive/texmf-dist/tex/latex/pdftexcmds/pdftexcmds.sty" 1574631863 19963 36fd8e818f9f0f32e2db8413d4970122 "" + "/usr/share/texlive/texmf-dist/tex/latex/pgf/basiclayer/pgf.sty" 1546728038 1090 d20f587ea9464d1841bd0d13d3ff9856 "" + "/usr/share/texlive/texmf-dist/tex/latex/pgf/basiclayer/pgfcore.sty" 1288312291 410 5bf12ea7330e5f12c445332a4fe9a263 "" + "/usr/share/texlive/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-0-65.sty" 1546728038 21013 e98e1aaaf40d31632787c2bd25d24b57 "" + "/usr/share/texlive/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-1-18.sty" 1546728038 989 2cf3da8e8ec55131c49389428d565e37 "" + "/usr/share/texlive/texmf-dist/tex/latex/pgf/frontendlayer/tikz.sty" 1203877327 339 592cf35cba3d400082b8a9a5d0199d70 "" + "/usr/share/texlive/texmf-dist/tex/latex/pgf/math/pgfmath.sty" 1393459310 306 0796eafca5e159e6ec2167a6d22d81b1 "" + "/usr/share/texlive/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty" 1393459310 443 0b2e781830192df35c0fd357cf13e26e "" + "/usr/share/texlive/texmf-dist/tex/latex/pgf/utilities/pgffor.sty" 1393459310 348 8927fde343487e003b01a4c2ca34073b "" + "/usr/share/texlive/texmf-dist/tex/latex/pgf/utilities/pgfkeys.sty" 1203727794 274 4cad6e665cc93ac2ac979039a94fa1e1 "" + "/usr/share/texlive/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty" 1203877327 325 2bcd023400636339210573e2b3ee298b "" + "/usr/share/texlive/texmf-dist/tex/latex/psnfss/times.sty" 1156702453 857 6c716f26c5eadfb81029fcd6ce2d45e6 "" + "/usr/share/texlive/texmf-dist/tex/latex/refcount/refcount.sty" 1576624809 9878 9e94e8fa600d95f9c7731bb21dfb67a4 "" + "/usr/share/texlive/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty" 1575674187 9715 b051d5b493d9fe5f4bc251462d039e5f "" + "/usr/share/texlive/texmf-dist/tex/latex/standalone/standalone.cfg" 1522098998 1015 662b4d7ad816b857a598284525f5c75e "" + "/usr/share/texlive/texmf-dist/tex/latex/standalone/standalone.cls" 1522098998 28890 df75e6d37f47b7e27bff3f37375336b3 "" + "/usr/share/texlive/texmf-dist/tex/latex/tools/array.sty" 1580683321 12560 ce3f59ceae9d9a27bfe037d6bf1d903c "" + "/usr/share/texlive/texmf-dist/tex/latex/tools/calc.sty" 1580683321 10216 5efd55f2010055e7b7875afd6a75be82 "" + "/usr/share/texlive/texmf-dist/tex/latex/tools/shellesc.sty" 1580683321 4120 d1680a5ff60d0aea9c327e07c030f4e9 "" + "/usr/share/texlive/texmf-dist/tex/latex/txfonts/omltxmi.fd" 1137111002 492 e7f8afe4428797548d4301de03a1b15f "" + "/usr/share/texlive/texmf-dist/tex/latex/txfonts/omstxsy.fd" 1137111002 329 6ac7e19535b9f1d64e4d8e3f77dc30a3 "" + "/usr/share/texlive/texmf-dist/tex/latex/txfonts/omxtxex.fd" 1137111002 312 11fe1916b0a13a81a05234a6fc7f8738 "" + "/usr/share/texlive/texmf-dist/tex/latex/txfonts/ot1txr.fd" 1137111002 1271 4e3afbd8e832f2f9c7f064894e6e68e4 "" + "/usr/share/texlive/texmf-dist/tex/latex/txfonts/t1txr.fd" 1137111002 1242 cbf8a0d4f750f9833a0bfb05fb39f1cb "" + "/usr/share/texlive/texmf-dist/tex/latex/txfonts/txfonts.sty" 1206746551 50381 d367461010070c7a491b1f6979ab2062 "" + "/usr/share/texlive/texmf-dist/tex/latex/txfonts/utxexa.fd" 1137111002 310 1b00b0b05685b816e4c6caccce437e0d "" + "/usr/share/texlive/texmf-dist/tex/latex/txfonts/utxmia.fd" 1137111002 334 87436a82076ca2e35cd305f852507afc "" + "/usr/share/texlive/texmf-dist/tex/latex/txfonts/utxsya.fd" 1137111002 310 cee07e4964749ccbc77d84fc49726a79 "" + "/usr/share/texlive/texmf-dist/tex/latex/txfonts/utxsyb.fd" 1137111002 310 8c5467c8932c259af51b0f116c9734bd "" + "/usr/share/texlive/texmf-dist/tex/latex/txfonts/utxsyc.fd" 1137111002 310 4b5d6fe830337242ef847b3bff48ba21 "" + "/usr/share/texlive/texmf-dist/tex/latex/url/url.sty" 1388531844 12796 8edb7d69a20b857904dd0ea757c14ec9 "" + "/usr/share/texlive/texmf-dist/tex/latex/varwidth/varwidth.sty" 1238697683 10894 d359a13923460b2a73d4312d613554c8 "" + "/usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty" 1463002160 55589 34128738f682d033422ca125f82e5d62 "" + "/usr/share/texlive/texmf-dist/tex/latex/xkeyval/xkeyval.sty" 1417732693 4962 9c1069474ff71dbc47d5006555e352d3 "" + "/usr/share/texlive/texmf-dist/web2c/texmf.cnf" 1581979058 38841 ce3692aa899bb693b90b87eaa5d4d84e "" + "/usr/share/texmf/web2c/texmf.cnf" 1581979058 38841 ce3692aa899bb693b90b87eaa5d4d84e "" + "/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map" 1619433582 4770781 1ed1abab22da9c3e2cc82e4db562318b "" + "/var/lib/texmf/web2c/pdftex/pdflatex.fmt" 1619433611 8255863 afe1ed795207f6401d11bafd6327aa55 "" + "algo.aux" 1620305767 767 9191aef204e325cc808d7c85cedac35f "pdflatex" + "algo.out" 1620305767 43 8eacde2f35419fc00651f55d16e47ae8 "pdflatex" + "algo.tex" 1621585209 3156 4070ef1cd3442b3ab588aedcc8a306bd "" + (generated) + "algo.aux" + "algo.log" + "algo.pdf" + "algo.out" diff --git a/buch/papers/multiplikation/tikz_formulas/algo.fls b/buch/papers/multiplikation/tikz_formulas/algo.fls new file mode 100644 index 0000000..16d387b --- /dev/null +++ b/buch/papers/multiplikation/tikz_formulas/algo.fls @@ -0,0 +1,438 @@ +PWD /home/nunigan/Documents/MSE/FS21/SeminarMatrizen/buch/papers/multiplikation/tikz_formulas +INPUT /etc/texmf/web2c/texmf.cnf +INPUT /usr/share/texmf/web2c/texmf.cnf +INPUT /usr/share/texlive/texmf-dist/web2c/texmf.cnf +INPUT /var/lib/texmf/web2c/pdftex/pdflatex.fmt +INPUT algo.tex +OUTPUT algo.log +INPUT /usr/share/texlive/texmf-dist/tex/latex/standalone/standalone.cls +INPUT /usr/share/texlive/texmf-dist/tex/latex/standalone/standalone.cls +INPUT /usr/share/texlive/texmf-dist/tex/latex/tools/shellesc.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/tools/shellesc.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/tools/shellesc.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/ifluatex.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/ifluatex.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/ifluatex.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/iftex.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/iftex.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/xkeyval/xkeyval.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/xkeyval/xkeyval.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/xkeyval/xkeyval.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xkeyval/xkvutils.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xkeyval/keyval.tex +INPUT /dev/null +INPUT /usr/share/texlive/texmf-dist/tex/latex/standalone/standalone.cfg +INPUT /usr/share/texlive/texmf-dist/tex/latex/standalone/standalone.cfg +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/article.cls +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/article.cls +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/size10.clo +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/size10.clo +INPUT /usr/share/texlive/texmf-dist/tex/latex/varwidth/varwidth.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/varwidth/varwidth.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/ifvtex.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/ifvtex.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty +INPUT /usr/share/texlive/texmf-dist/fonts/map/fontname/texfonts.map +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/jknappen/ec/ecrm1000.tfm +INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/times.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/times.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amsmath.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amsmath.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amstext.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amstext.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amsgen.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amsgen.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amsbsy.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amsbsy.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amsopn.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amsopn.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsfonts/amssymb.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsfonts/amssymb.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsfonts/amsfonts.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsfonts/amsfonts.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/jknapltx/mathrsfs.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/jknapltx/mathrsfs.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amscls/amsthm.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amscls/amsthm.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/lipsum/lipsum.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/lipsum/lipsum.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/l3kernel/expl3.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/l3kernel/expl3.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-pdfmode.def +INPUT /usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-pdfmode.def +INPUT /usr/share/texlive/texmf-dist/tex/latex/l3packages/xparse/xparse.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/l3packages/xparse/xparse.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/lipsum/lipsum.ltd.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/lipsum/lipsum.ltd.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amscd.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amscd.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def +INPUT /usr/share/texlive/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/textcomp.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/textcomp.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/txfonts.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/txfonts.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xy.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xy.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xy.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xyrecat.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xyidioms.tex +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xydash10.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xyatip10.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xybtip10.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xybsql10.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xycirc10.tfm +INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/ifpdf.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/ifpdf.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xyall.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xyall.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xycurve.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xycurve.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xyframe.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xyframe.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xycmtip.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xycmtip.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xytips.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xytips.tex +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xycmat10.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xycmbt10.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xyluat10.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xylubt10.tfm +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xyline.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xyline.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xyrotate.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xyrotate.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xycolor.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xycolor.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xymatrix.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xymatrix.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xyarrow.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xyarrow.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xygraph.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xygraph.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf-co.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf-cu.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf-fr.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf-li.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf-ro.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/paralist/paralist.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/paralist/paralist.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pdftexcmds/pdftexcmds.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pdftexcmds/pdftexcmds.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/infwarerr/infwarerr.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/infwarerr/infwarerr.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/kvsetkeys/kvsetkeys.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/kvsetkeys/kvsetkeys.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/pdfescape/pdfescape.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/pdfescape/pdfescape.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/hycolor/hycolor.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/hycolor/hycolor.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/auxhook/auxhook.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/auxhook/auxhook.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/kvoptions/kvoptions.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/kvoptions/kvoptions.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def +INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def +INPUT /usr/share/texlive/texmf-dist/tex/generic/intcalc/intcalc.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/intcalc/intcalc.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/etexcmds/etexcmds.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/etexcmds/etexcmds.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/url/url.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/url/url.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/bitset/bitset.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/bitset/bitset.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/atbegshi/atbegshi.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/atbegshi/atbegshi.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def +INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def +INPUT /usr/share/texlive/texmf-dist/tex/latex/atveryend/atveryend.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/atveryend/atveryend.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/tools/array.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/tools/array.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/frontendlayer/tikz.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/frontendlayer/tikz.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/basiclayer/pgf.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/basiclayer/pgf.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfutil-common.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfutil-common-lists.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfutil-latex.def +INPUT /usr/share/texlive/texmf-dist/tex/latex/ms/everyshi.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/ms/everyshi.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/pgf.revision.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/pgf.revision.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/basiclayer/pgfcore.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/basiclayer/pgfcore.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfkeysfiltered.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgf.cfg +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-pdftex.def +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-pdftex.def +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-common-pdf.def +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcore.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcore.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathcalc.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathutil.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathparser.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.basic.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.trigonometric.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.random.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.comparison.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.base.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.round.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.misc.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.integerarithmetics.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfloat.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfint.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepoints.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathconstruct.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathusage.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorescopes.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoregraphicstate.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransformations.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorequick.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreobjects.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathprocessing.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorearrows.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreshade.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreimage.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreexternal.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorelayers.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransparency.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepatterns.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorerdf.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/modules/pgfmoduleshapes.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/modules/pgfmoduleplot.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-0-65.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-0-65.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-1-18.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-1-18.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/utilities/pgffor.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/utilities/pgffor.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/utilities/pgfkeys.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/utilities/pgfkeys.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/math/pgfmath.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/math/pgfmath.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgffor.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgffor.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/tikz.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/tikz.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/libraries/pgflibraryplothandlers.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/libraries/pgflibraryplothandlers.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/modules/pgfmodulematrix.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarytopaths.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarytopaths.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/carlisle/slashed.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/carlisle/slashed.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pdfpages/pdfpages.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pdfpages/pdfpages.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/ifthen.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/ifthen.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/tools/calc.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/tools/calc.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/eso-pic/eso-pic.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/eso-pic/eso-pic.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pdfpages/pppdftex.def +INPUT /usr/share/texlive/texmf-dist/tex/latex/pdfpages/pppdftex.def +INPUT /usr/share/texlive/texmf-dist/tex/latex/cite/cite.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/cite/cite.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryarrows.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryarrows.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/libraries/pgflibraryarrows.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/libraries/pgflibraryarrows.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarymatrix.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarymatrix.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarypositioning.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarypositioning.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/aobs-tikz/tikzlibraryoverlay-beamer-styles.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/aobs-tikz/tikzlibraryoverlay-beamer-styles.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/matrix-skeleton/tikzlibrarymatrix.skeleton.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/matrix-skeleton/tikzlibrarymatrix.skeleton.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/matrix-skeleton/pgflibrarymatrix.skeleton.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/matrix-skeleton/pgflibrarymatrix.skeleton.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryfit.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryfit.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarybackgrounds.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarybackgrounds.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryautomata.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryautomata.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshapes.multipart.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshapes.multipart.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/libraries/shapes/pgflibraryshapes.multipart.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/libraries/shapes/pgflibraryshapes.multipart.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/listings/listings.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/listings/listings.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/listings/lstmisc.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/listings/lstmisc.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/listings/listings.cfg +INPUT /usr/share/texlive/texmf-dist/tex/latex/listings/listings.cfg +INPUT /usr/share/texlive/texmf-dist/tex/latex/multirow/multirow.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/multirow/multirow.sty +INPUT algo.aux +INPUT algo.aux +OUTPUT algo.aux +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/omltxmi.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/omltxmi.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/omstxsy.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/omstxsy.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/omxtxex.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/omxtxex.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/utxexa.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/utxexa.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/t1txr.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/t1txr.fd +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/t1xr.tfm +INPUT /usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii +INPUT /usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii +INPUT /usr/share/texlive/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg +INPUT /usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/ot1txr.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/ot1txr.fd +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmi.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmi.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmi.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsy.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsy.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsy.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txex.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txex.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txex.tfm +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/utxsya.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/utxsya.fd +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsya.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsya.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsya.tfm +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/utxsyb.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/utxsyb.fd +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyb.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyb.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyb.tfm +INPUT /usr/share/texlive/texmf-dist/tex/latex/jknapltx/ursfs.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/jknapltx/ursfs.fd +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/rsfs/rsfs10.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/rsfs/rsfs7.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/rsfs/rsfs5.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txi.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txi.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txi.tfm +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/utxmia.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/utxmia.fd +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmia.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmia.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmia.tfm +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/utxsyc.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/utxsyc.fd +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyc.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyc.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyc.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txexa.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txexa.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txexa.tfm +INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/refcount/refcount.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/refcount/refcount.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty +INPUT algo.out +INPUT algo.out +INPUT algo.out +INPUT algo.out +OUTPUT algo.pdf +INPUT ./algo.out +INPUT ./algo.out +OUTPUT algo.out +INPUT /usr/share/texlive/texmf-dist/tex/latex/pdflscape/pdflscape.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pdflscape/pdflscape.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/lscape.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/lscape.sty +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/t1xr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/t1xr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/t1xr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/t1xb.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/vf/public/txfonts/txmi.vf +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxmi.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxptmri.tfm +INPUT /var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map +INPUT /usr/share/texlive/texmf-dist/fonts/vf/public/txfonts/txr.vf +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxptmr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/vf/public/txfonts/txr.vf +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxptmr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/vf/public/txfonts/t1xr.vf +INPUT /usr/share/texlive/texmf-dist/fonts/vf/public/txfonts/t1xb.vf +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxptmb.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxb.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/vf/public/txfonts/txmi.vf +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxmi.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxptmri.tfm +INPUT algo.aux +INPUT ./algo.out +INPUT ./algo.out +INPUT /usr/share/texlive/texmf-dist/fonts/enc/dvips/base/8r.enc +INPUT /usr/share/texlive/texmf-dist/fonts/type1/public/txfonts/rtxmi.pfb +INPUT /usr/share/texlive/texmf-dist/fonts/type1/public/txfonts/rtxr.pfb +INPUT /usr/share/texlive/texmf-dist/fonts/type1/public/txfonts/txex.pfb +INPUT /usr/share/texlive/texmf-dist/fonts/type1/public/txfonts/txsy.pfb +INPUT /usr/share/texlive/texmf-dist/fonts/type1/urw/times/utmb8a.pfb +INPUT /usr/share/texlive/texmf-dist/fonts/type1/urw/times/utmr8a.pfb +INPUT /usr/share/texlive/texmf-dist/fonts/type1/urw/times/utmri8a.pfb diff --git a/buch/papers/multiplikation/tikz_formulas/algo.pdf b/buch/papers/multiplikation/tikz_formulas/algo.pdf Binary files differnew file mode 100644 index 0000000..f711224 --- /dev/null +++ b/buch/papers/multiplikation/tikz_formulas/algo.pdf diff --git a/buch/papers/multiplikation/tikz_formulas/algo.tex b/buch/papers/multiplikation/tikz_formulas/algo.tex new file mode 100755 index 0000000..1e437c2 --- /dev/null +++ b/buch/papers/multiplikation/tikz_formulas/algo.tex @@ -0,0 +1,131 @@ +\documentclass[border=10pt,varwidth]{standalone} +\usepackage[left=25mm,right=25mm,top=25mm,bottom=25mm]{geometry} +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage{times} +\usepackage{geometry} +\usepackage{amsmath} +\usepackage{amssymb} +\usepackage{mathrsfs} +\usepackage{amsfonts} +\usepackage{amsthm} +\usepackage{lipsum} +\usepackage{amscd} +\usepackage{graphicx} +\usepackage{fancyhdr} +\usepackage{textcomp} +\usepackage{txfonts} +\usepackage[all]{xy} +\usepackage{paralist} +\usepackage[colorlinks=true]{hyperref} +\usepackage{array} +\usepackage{tikz} +\usepackage{slashed} +\usepackage{pdfpages} +\usepackage{cite} +\usepackage{url} +\usepackage{amsmath,amsfonts,amssymb} +\usepackage{tikz} +\usetikzlibrary{arrows,matrix,positioning} +\usetikzlibrary{overlay-beamer-styles} +\usetikzlibrary{matrix.skeleton} +\usetikzlibrary{automata,positioning} +\usepackage{listings} +\usepackage{multirow} +\usepackage{color} + +\begin{document} + +$ +A= +\begin{bmatrix} +A_{11} & A_{12}\\ +A_{21} & A_{22} +\end{bmatrix}, +B= +\begin{bmatrix} +B_{11} & B_{12}\\ +B_{21} & B_{22} +\end{bmatrix}, +C= +\begin{bmatrix} +C_{11} & C_{12}\\ +C_{21} & C_{22} +\end{bmatrix} +$ + +\medskip +$ +A \cdot B = C +$ + +\medskip +$ +C_{11} = A_{11} \cdot B_{11} + A_{12} \cdot B_{21}\\ +C_{12} = A_{11} \cdot B_{12} + A_{12} \cdot B_{22}\\ +C_{21} = A_{21} \cdot B_{11} + A_{22} \cdot B_{21}\\ +C_{22} = A_{21} \cdot B_{12} + A_{22} \cdot B_{22} +$ + +\medskip +\begin{math} +\begin{aligned} +\text{I} &= (A_{11} + A_{22}) \cdot (B_{11} + B_{22}) \\ +\text{II} &= (A_{21} + A_{22}) \cdot B_{11} \\ +\text{III} &= A_{11} \cdot (B_{12}-B_{22}) \\ +\text{IV} &= A_{22} \cdot (-B_{11}+B_{21}) \\ +\text{V} &= (A_{11} + A_{12}) \cdot B_{22} \\ +\text{VI} &= (-A_{11} + A_{21}) \cdot (B_{11} + B_{12})) \\ +\text{VII} &= (A_{12} - A_{22}) \cdot (B_{21} + B_{22}) \\ +\end{aligned} +\end{math} + + +\medskip +\begin{math} +\begin{aligned} +C_{11} &= \text{I} + \text{IV} - \text{V} + \text{VII} \\ +C_{21} &= \text{II} + \text{IV} \\ +C_{12} &= \text{III} + \text{V}\\ +C_{22} &= \text{I} + \text{III} - \text{II} + \text{VI} \\ +\end{aligned} +\end{math} + + +\medskip +\begin{math} +\begin{aligned} +C_{11} &= \text{II} + \text{IV} \\ +C_{11} &= (A_{11} + A_{22}) \cdot (B_{11} + B_{22}) + A_{22} \cdot (-B_{11}+B_{21}) - (A_{11} + A_{12}) \cdot B_{22} + (A_{12} - A_{22}) \cdot (B_{21} + B_{22})C_{21} \\ +C_{11} &= A_{11}B_{11} + A_{11}B_{22} + A_{22}B_{11} + A_{22}B_{22} -A_{22}B_{11}+A_{22}B_{21} - A_{11}B_{22} - A_{12}B_{22}+ A_{12}B_{21} + A_{12}B_{22} - A_{22}B_{21} - A_{22}B_{22} \\ +C_{11} &= A_{11}B_{11} + A_{12}B_{21} +\end{aligned} +\end{math} + +\section{Winograd} + +$ +x_1 y_1 + x_2 y_2 = (x_1 +y_2)(y_1 + x_2)-x_1 x_2 - y_1 y_2 +$ + +$ +x = (x_1, \cdots, x_n), y=(y_1, \cdots, y_n) +$ + +\[ +\xi = \sum_{j=1}^{ \lfloor n/2 \rfloor} x_{2j-1} \cdot x_{2j} +\] + +\[ +\eta = \sum_{j=1}^{ \lfloor n/2 \rfloor} y_{2j-1} \cdot y_{2j} +\] + +\[ +\langle x,y \rangle = +\begin{cases} + \displaystyle \sum_{j=1}^{ \lfloor n/2 \rfloor} (x_{2j-1} + y_{2j})(x_{2j}+y_{2j-1})-\xi - \eta & \text{if $n$ is even}\\ +\displaystyle \sum_{j=1}^{ \lfloor n/2 \rfloor} (x_{2j-1} + y_{2j})(x_{2j}+y_{2j-1})-\xi - \eta + x_n y_n & \text{if $n$ is odd} +\end{cases} +\] + +\end{document} diff --git a/buch/papers/multiplikation/tikz_formulas/algo_graph.fdb_latexmk b/buch/papers/multiplikation/tikz_formulas/algo_graph.fdb_latexmk new file mode 100644 index 0000000..ddfa880 --- /dev/null +++ b/buch/papers/multiplikation/tikz_formulas/algo_graph.fdb_latexmk @@ -0,0 +1,245 @@ +# Fdb version 3 +["pdflatex"] 1621585121 "algo_graph.tex" "algo_graph.pdf" "algo_graph" 1621585184 + "/dev/null" 1621583990 0 d41d8cd98f00b204e9800998ecf8427e "" + "/etc/texmf/web2c/texmf.cnf" 1619433543 475 c0e671620eb5563b2130f56340a5fde8 "" + "/usr/share/texlive/texmf-dist/fonts/enc/dvips/base/8r.enc" 1165713224 4850 80dc9bab7f31fb78a000ccfed0e27cab "" + "/usr/share/texlive/texmf-dist/fonts/map/fontname/texfonts.map" 1577235249 3524 cb3e574dea2d1052e39280babc910dc8 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/jknappen/ec/ecrm1000.tfm" 1136768653 3584 adb004a0c8e7c46ee66cad73671f37b4 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/rsfs/rsfs10.tfm" 1229303445 688 37338d6ab346c2f1466b29e195316aa4 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/rsfs/rsfs5.tfm" 1229303445 684 3a51bd4fd9600428d5264cf25f04bb9a "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/rsfs/rsfs7.tfm" 1229303445 692 1b6510779f0f05e9cbf03e0f6c8361e6 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxmi.tfm" 1136768653 1056 e2202af076e43d03fc17f87e104021b0 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxptmr.tfm" 1136768653 4452 0fd0a792eaab7113e4d4f1b941ff0367 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxptmri.tfm" 1136768653 4640 ce59980bcbe9e6236fab46d0b5212c7e "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxr.tfm" 1136768653 1004 c0e991f864f31f017ea4ff9e451b76d4 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/t1xr.tfm" 1136768653 6716 6d25a377562601272906e3bfe6b2817a "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txex.tfm" 1136768653 1080 b674b4ba143004461509a754a0984b67 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txexa.tfm" 1136768653 688 f56006d6e56f46e63d9f63252958b828 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txi.tfm" 1136768653 2584 cf4a6a7c2a518d47468fe29ef0913ba0 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmi.tfm" 1232065820 1944 f854e259cb2839e49d4aa2949544a6e1 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmia.tfm" 1136768653 1180 72784d0ee5a983fba99a0986b31b0493 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txr.tfm" 1136768653 2408 aec793a3c45e495f7ad15b227c91f508 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsy.tfm" 1136768653 1268 1d124f224979493f8fd017a7597ea1cd "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsya.tfm" 1136768653 972 2c9ffac4bbd20f91c01aaef9bf3f8710 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyb.tfm" 1136768653 988 098ca7e8cc5647b9ac21b82dbdce1f01 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyc.tfm" 1136768653 1084 75e807e9e71f7a312e4e1187dce5e93b "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xyatip10.tfm" 1381187214 608 50246cc71b0635b0ba0a5c10a0bf4257 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xybsql10.tfm" 1381187214 608 4db60f15ea23b4ec2d796c6d568a63fa "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xybtip10.tfm" 1381187214 608 50246cc71b0635b0ba0a5c10a0bf4257 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xycirc10.tfm" 1381187214 844 3393210079fb4ed9347e214b3bfd7c1a "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xycmat10.tfm" 1381187214 608 f124f78ed50a1817738d2adb190cf2bd "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xycmbt10.tfm" 1381187214 608 f124f78ed50a1817738d2adb190cf2bd "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xydash10.tfm" 1381187214 984 5c01c46b93e3ba8369f3f8edc6e62aef "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xyluat10.tfm" 1381187214 608 a3a3bc08980c5126ff2a7a68fb5a64ff "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xylubt10.tfm" 1381187214 608 a3a3bc08980c5126ff2a7a68fb5a64ff "" + "/usr/share/texlive/texmf-dist/fonts/type1/public/txfonts/rtxr.pfb" 1136849748 6339 e2b78706efdc360ee6aec9b6e20211a7 "" + "/usr/share/texlive/texmf-dist/fonts/type1/urw/times/utmr8a.pfb" 1136849748 46026 6dab18b61c907687b520c72847215a68 "" + "/usr/share/texlive/texmf-dist/fonts/type1/urw/times/utmri8a.pfb" 1136849748 45458 a3faba884469519614ca56ba5f6b1de1 "" + "/usr/share/texlive/texmf-dist/fonts/vf/public/txfonts/t1xr.vf" 1136768653 2140 99e5b3a34695df6221a167ffa8b498d6 "" + "/usr/share/texlive/texmf-dist/fonts/vf/public/txfonts/txmi.vf" 1232065820 960 cfcc9d587b40b769f64408b3ca115941 "" + "/usr/share/texlive/texmf-dist/fonts/vf/public/txfonts/txr.vf" 1136768653 904 e582cae2d8ae3f48a0a520440ebcdb51 "" + "/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii" 1461363279 71627 94eb9990bed73c364d7f53f960cc8c5b "" + "/usr/share/texlive/texmf-dist/tex/generic/atbegshi/atbegshi.sty" 1575674566 24708 5584a51a7101caf7e6bbf1fc27d8f7b1 "" + "/usr/share/texlive/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty" 1576625341 40635 c40361e206be584d448876bba8a64a3b "" + "/usr/share/texlive/texmf-dist/tex/generic/bitset/bitset.sty" 1576016050 33961 6b5c75130e435b2bfdb9f480a09a39f9 "" + "/usr/share/texlive/texmf-dist/tex/generic/etexcmds/etexcmds.sty" 1576625273 7734 b98cbb34c81f667027c1e3ebdbfce34b "" + "/usr/share/texlive/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty" 1576625223 8371 9d55b8bd010bc717624922fb3477d92e "" + "/usr/share/texlive/texmf-dist/tex/generic/iftex/ifluatex.sty" 1572645307 492 1994775aa15b0d1289725a0b1bbc2d4c "" + "/usr/share/texlive/texmf-dist/tex/generic/iftex/ifpdf.sty" 1572645307 480 5778104efadad304ced77548ca2184b1 "" + "/usr/share/texlive/texmf-dist/tex/generic/iftex/iftex.sty" 1573336935 6902 30fdaf7dc5636b8e3afa306210c45cae "" + "/usr/share/texlive/texmf-dist/tex/generic/iftex/ifvtex.sty" 1572645307 1057 525c2192b5febbd8c1f662c9468335bb "" + "/usr/share/texlive/texmf-dist/tex/generic/infwarerr/infwarerr.sty" 1575499628 8356 7bbb2c2373aa810be568c29e333da8ed "" + "/usr/share/texlive/texmf-dist/tex/generic/intcalc/intcalc.sty" 1576625065 31769 002a487f55041f8e805cfbf6385ffd97 "" + "/usr/share/texlive/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty" 1576878844 5412 d5a2436094cd7be85769db90f29250a6 "" + "/usr/share/texlive/texmf-dist/tex/generic/kvsetkeys/kvsetkeys.sty" 1576624944 13807 952b0226d4efca026f0e19dd266dcc22 "" + "/usr/share/texlive/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty" 1576624883 18552 1e1cc7b75da0dfaacce7cdcb27d306bf "" + "/usr/share/texlive/texmf-dist/tex/generic/pdfescape/pdfescape.sty" 1576015897 19007 15924f7228aca6c6d184b115f4baa231 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcore.code.tex" 1557692582 992 fb3cda354707a54fda62787a411c7c22 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorearrows.code.tex" 1546728038 43820 bc6cf5aa959817914ace33f5c6232161 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreexternal.code.tex" 1557692582 19324 c9a64402f22bd8d81821141a357af653 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoregraphicstate.code.tex" 1546728038 6038 d639d02574be9a72f3c602c2a3510e02 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreimage.code.tex" 1546728038 6948 284bbe3c9a7ca0a826c1c03895e69b9f "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorelayers.code.tex" 1546728038 4883 a6f3eb1f71d8c4affaf43a169828b043 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreobjects.code.tex" 1546728038 2544 3b1b198fd49f01e328adc9162a07b213 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathconstruct.code.tex" 1576793519 44189 1fd6229dad4c898883516c032f2ca5d2 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathprocessing.code.tex" 1546728038 17311 3092579be20ef0f229c42ad3f09da85c "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathusage.code.tex" 1546728038 21302 d6c4b340248adbe650ebf6ca76bdccca "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepatterns.code.tex" 1562964315 9690 7585efa5a591822837f837bc5bc35621 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepoints.code.tex" 1576793519 33335 942ccafe284041918d36e54696b98aa7 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorequick.code.tex" 1546728038 2965 502761b60f43ab2de5ecb2f4625163ae "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorerdf.code.tex" 1546728038 5196 f8c5c775d4d6e2cb050392127cabda72 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorescopes.code.tex" 1576793519 20726 ed6ec1d6f0f35e7a93de4e79af83dbce "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreshade.code.tex" 1557692582 35249 144a6b9c4df4644618bb3a0a40472608 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransformations.code.tex" 1546728038 21989 266e83c51fe41eb8b8d5e6896dc71cc1 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransparency.code.tex" 1546728038 8842 5cc856e132fac404805c6da091779283 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryarrows.code.tex" 1546728038 319 8fc6edce901e074ba09de320a8fc686b "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryautomata.code.tex" 1546728038 3986 c962be8d57437fcaf853d2babd8ed403 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarybackgrounds.code.tex" 1546728038 4572 980c82f01c0e3983edadbbc373d304cb "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryfit.code.tex" 1546728038 3643 4a4bd51bd85886cc39d4073af8cf77a9 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarymatrix.code.tex" 1546728038 4202 e655aa2657da1088ec7745ece2876c4c "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarypositioning.code.tex" 1546728038 3937 20cd45386ca23052ce976464f0ada984 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshapes.multipart.code.tex" 1546728038 919 da625675781832f2b61a7048a51ef656 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarytopaths.code.tex" 1576793519 11544 2a5d66a3270abf4ef673e8a0b7734a90 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/tikz.code.tex" 1576967981 187592 7922ceab1864698dec4c84978d5b182f "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/libraries/pgflibraryarrows.code.tex" 1546728038 31874 d843d507175f2bdfa3abf01f0349dac8 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/libraries/pgflibraryplothandlers.code.tex" 1546728038 32995 a4d54c043ae5274ceaaddeb36ad43a6f "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/libraries/shapes/pgflibraryshapes.multipart.code.tex" 1546728038 62281 fd68e6d2c2dc178611c8f4d2d86e79ae "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfint.code.tex" 1557692582 3063 8c415c68a0f3394e45cfeca0b65f6ee6 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex" 1557692582 521 c70cf6ad609de83a27ee7929eb356332 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathcalc.code.tex" 1557692582 13391 933cab19c6d27039dbfc487330d1005a "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfloat.code.tex" 1557692582 104938 15f2d8bdabd6bf9ca70f62cd8e3d4940 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.base.code.tex" 1557692582 10157 218d58ab074e5bd0d027de45ec64cc00 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.basic.code.tex" 1576793519 28176 568b081ec39645f2db1a29fbd0c635e2 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.code.tex" 1562964315 9054 388d21239a1b6df2cc8beaae31c976b0 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.comparison.code.tex" 1557692582 3865 cddf7ddc80f018587c55afdcc79fc333 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.integerarithmetics.code.tex" 1557692582 3177 27d85c44fbfe09ff3b2cf2879e3ea434 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.misc.code.tex" 1557692582 10925 df50b8a6e5660a585e3a2bf55726dcc8 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.random.code.tex" 1562964315 7787 1750fc3f164703caf31fc8ea9218c67e "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.round.code.tex" 1557692582 3379 cbd0948a550bd7a495a160ca6beee9ed "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.trigonometric.code.tex" 1557692582 92405 bba89470858d7b0788a9c09331c39653 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathparser.code.tex" 1576793519 36526 453db1f8626a56b5ebb0fad496d6a39f "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathutil.code.tex" 1576793519 8471 b18959397c76e1e582402ab9f592ed9f "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/modules/pgfmodulematrix.code.tex" 1576793519 21201 46a4dded6619f990ac7347f99fbaac9f "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/modules/pgfmoduleplot.code.tex" 1557692582 16121 9e240115374a8d489f2f786115df83a9 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/modules/pgfmoduleshapes.code.tex" 1576793519 43259 3e05ba63539916af2eaca603c2eda780 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/pgf.revision.tex" 1578520427 465 1f401ab1e7fc6cb7ede39e96c66531fd "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgf.cfg" 1557692582 926 70ff613fabeb70f5d1673dc0c93987bd "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-common-pdf.def" 1557692582 5546 3586827e6032c95512b2a6682d2979a3 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-pdftex.def" 1562964315 12603 c02869ea216d842c29d52fae8738264e "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex" 1557692582 60269 e86bc0081af83a4ad47e4500ee09a2e4 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol.code.tex" 1557692582 1896 82c274ff520f9e450ccea4e3ef4edc12 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.tex" 1557692582 7778 a25a32a10ca820357491d4c7b3ac02ea "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgffor.code.tex" 1562964315 23777 cb6c8f02f87d86d621f5cb92c44f4998 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex" 1576793519 36815 f7f1772c398f07af2cb741992963045c "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfkeysfiltered.code.tex" 1562964315 37439 bd44d50aef702b03193f731207931834 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex" 1557692582 4494 7e5ace0ccf59408f2cf63219a5d36927 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfutil-common-lists.tex" 1557692582 7250 03b2b9fb5fa38e7ca5cc3c45860fb210 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfutil-common.tex" 1576793519 28309 488ccc6c701bbdd1bf671f708757aa5c "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfutil-latex.def" 1562964315 6286 1bd76fc45da9929ab2a64f51cba3ab6f "" + "/usr/share/texlive/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty" 1576624663 7008 f92eaa0a3872ed622bbf538217cd2ab7 "" + "/usr/share/texlive/texmf-dist/tex/generic/xkeyval/keyval.tex" 1403829539 2725 fc34ef3ccb37ba15a640e8fca6190bca "" + "/usr/share/texlive/texmf-dist/tex/generic/xkeyval/xkeyval.tex" 1417732693 19231 26434a5656c684f5ffb1f26f98006baa "" + "/usr/share/texlive/texmf-dist/tex/generic/xkeyval/xkvutils.tex" 1403829539 7677 6f5ce7c1124cad7ec57d05b2562bd8fe "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xy.sty" 1312310545 4692 1e1bcf75c622af1eefd9169948208302 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xy.tex" 1381187214 115380 413d5f789929a45aab7d12ce0d0aee7d "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xyall.tex" 1312310545 1449 24340b6befc66d28ee1ebb657efb5892 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xyarrow.tex" 1312310545 22657 990ce136a3cc15728ba417a2e78b25c8 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xycmtip.tex" 1312310545 1374 43fb8dc80dd748631d78096701166d76 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xycolor.tex" 1312310545 4586 edd672434f45626662368282c0322160 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xycurve.tex" 1312310545 109670 d412ee1ff259daefee5e927172e2f9a8 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xyframe.tex" 1337903317 24249 186931a828664624939ab0b347e3952c "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xygraph.tex" 1312310545 9619 b7e4d9a6936ba2ad6119a280abde9641 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xyidioms.tex" 1312310545 2907 1ee562fde0b53c9cd16f7a604f33fdf0 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xyline.tex" 1312310545 10928 c3a572983ccc9fc596b4e9ce454d5652 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xymatrix.tex" 1312310545 22583 25b1e7edeee41f181ee9733429da4a9c "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf-co.tex" 1312310545 8442 90cb8a3b00c2081384c1ce988d2ba0a3 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf-cu.tex" 1312310545 39762 25a964ebb390bcfcd35c040f477eef1d "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf-fr.tex" 1312310545 16485 5686b19cc46d046c885428794ed9c114 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf-li.tex" 1312310545 2619 1a12b316e2132654e44ba2cd21def637 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf-ro.tex" 1312310545 5290 e16fc85c85f64d0a5c04708bf3312d00 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf.tex" 1312310545 18763 e61049d36bdfccb226f22e582d70d368 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xyrecat.tex" 1312310545 1391 c8763fc8e281cb6ecf697988b6608e4a "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xyrotate.tex" 1312310545 7008 cb768d8d63a12d35607cbb3c4e7ba163 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xytips.tex" 1381187214 3689 0d51788a4141bc66ab896f7ac63495fd "" + "/usr/share/texlive/texmf-dist/tex/latex/amscls/amsthm.sty" 1513722769 12604 3dec726c041422879dc3268237f09026 "" + "/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amsfonts.sty" 1359763108 5949 3f3fd50a8cc94c3d4cbf4fc66cd3df1c "" + "/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amssymb.sty" 1359763108 13829 94730e64147574077f8ecfea9bb69af4 "" + "/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsbsy.sty" 1523134290 2211 ca7ce284ab93c8eecdc6029dc5ccbd73 "" + "/usr/share/texlive/texmf-dist/tex/latex/amsmath/amscd.sty" 1523134290 5309 0c9ef5db85b924cdbb316f080dfd826e "" + "/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsgen.sty" 1523134290 4161 7f6eb9092061a11f87d08ed13515b48d "" + "/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsmath.sty" 1580683321 85660 baee036978c7a91f4e2bba43f05e5945 "" + "/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsopn.sty" 1523134290 4116 32e6abd27229755a83a8b7f18e583890 "" + "/usr/share/texlive/texmf-dist/tex/latex/amsmath/amstext.sty" 1523134290 2432 8ff93b1137020e8f21930562a874ae66 "" + "/usr/share/texlive/texmf-dist/tex/latex/aobs-tikz/tikzlibraryoverlay-beamer-styles.code.tex" 1389658833 4047 82a015585c1ef210fb6750d6322afa7f "" + "/usr/share/texlive/texmf-dist/tex/latex/atveryend/atveryend.sty" 1576191570 19336 ce7ae9438967282886b3b036cfad1e4d "" + "/usr/share/texlive/texmf-dist/tex/latex/auxhook/auxhook.sty" 1576625391 3935 57aa3c3e203a5c2effb4d2bd2efbc323 "" + "/usr/share/texlive/texmf-dist/tex/latex/base/article.cls" 1580683321 20023 e427dd9e17e239bf926ef3aab67fe35e "" + "/usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty" 1581632200 4947 0c2888dd88121ae675fc6e82213623ba "" + "/usr/share/texlive/texmf-dist/tex/latex/base/ifthen.sty" 1580683321 5159 892429808d9e0e2b3548aaefd9a06ed0 "" + "/usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty" 1580683321 5050 8933a39ad74377accd18991c5eb90c58 "" + "/usr/share/texlive/texmf-dist/tex/latex/base/size10.clo" 1580683321 8446 9874cccac5fee462272c582807dbbf56 "" + "/usr/share/texlive/texmf-dist/tex/latex/base/textcomp.sty" 1581112666 2821 2c0928feafd5527387e29a1af774d030 "" + "/usr/share/texlive/texmf-dist/tex/latex/carlisle/slashed.sty" 1137109962 5327 8b3c95b5f71136add36a4a0bb1507594 "" + "/usr/share/texlive/texmf-dist/tex/latex/cite/cite.sty" 1425427964 26218 19edeff8cdc2bcb704e8051dc55eb5a7 "" + "/usr/share/texlive/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty" 1579991033 13886 d1306dcf79a944f6988e688c1785f9ce "" + "/usr/share/texlive/texmf-dist/tex/latex/eso-pic/eso-pic.sty" 1526160256 11991 c1669f88e13f8bb6243df144e456b477 "" + "/usr/share/texlive/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty" 1548974385 11128 a53805799bebfed6358fc1658a18e41f "" + "/usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty" 1578002852 41601 9cf6c5257b1bc7af01a58859749dd37a "" + "/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg" 1459978653 1213 620bba36b25224fa9b7e1ccb4ecb76fd "" + "/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg" 1465944070 1224 978390e9c2234eab29404bc21b268d1e "" + "/usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def" 1515537368 17334 520b9b85ad8a2a48eda3f643e27a5179 "" + "/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty" 1580683321 16932 04729abe63b66ec59ea56edcd722b058 "" + "/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty" 1580683321 9067 1b996612394a52e1efe89c8bfe8a5892 "" + "/usr/share/texlive/texmf-dist/tex/latex/graphics/lscape.sty" 1580683321 1753 f80abc75c0e3a4915097779c2649cc98 "" + "/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty" 1580683321 3976 d7fa7d81d2870d509d25b17d0245e735 "" + "/usr/share/texlive/texmf-dist/tex/latex/hycolor/hycolor.sty" 1580250785 17914 4c28a13fc3d975e6e81c9bea1d697276 "" + "/usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def" 1579642962 50630 3d9728faf8630190cf601ce2cbe470d9 "" + "/usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty" 1579642962 238752 60dd338d71b6a4ab2192131f73dc908b "" + "/usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty" 1579642962 13244 0070bcab7b5a88187847128d22faf4d8 "" + "/usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def" 1579642962 14134 32b36577d311ddb6522413c7581ee968 "" + "/usr/share/texlive/texmf-dist/tex/latex/jknapltx/mathrsfs.sty" 1137110241 300 12fa6f636b617656f2810ee82cb05015 "" + "/usr/share/texlive/texmf-dist/tex/latex/jknapltx/ursfs.fd" 1137110241 548 cc4e3557704bfed27c7002773fad6c90 "" + "/usr/share/texlive/texmf-dist/tex/latex/kvoptions/kvoptions.sty" 1575152344 22520 c4c2dab203104295e1e618be7e5c0f5b "" + "/usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-pdfmode.def" 1580854751 25404 9d60f463a00d154207ec0048dee27cf0 "" + "/usr/share/texlive/texmf-dist/tex/latex/l3kernel/expl3.sty" 1581719662 4381 04628f3002bdd1d9c43ef984fd60ae18 "" + "/usr/share/texlive/texmf-dist/tex/latex/l3packages/xparse/xparse.sty" 1581719662 81717 e93576ac4b24ce6e121ebd6ec6cf2893 "" + "/usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg" 1279039959 678 4792914a8f45be57bb98413425e4c7af "" + "/usr/share/texlive/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty" 1575499565 5766 13a9e8766c47f30327caf893ece86ac8 "" + "/usr/share/texlive/texmf-dist/tex/latex/lipsum/lipsum.ltd.tex" 1546728170 98047 c6fa29828cc60471827afe275c8bd77f "" + "/usr/share/texlive/texmf-dist/tex/latex/lipsum/lipsum.sty" 1546638616 18060 8cf65af2c4529eed91b5d364b50d3ada "" + "/usr/share/texlive/texmf-dist/tex/latex/listings/listings.cfg" 1568236792 1830 bbaba8afaf42cc048ec4d4ff73467521 "" + "/usr/share/texlive/texmf-dist/tex/latex/listings/listings.sty" 1568236792 80511 830f3f1d3ab7448dd84233e9c2f6462c "" + "/usr/share/texlive/texmf-dist/tex/latex/listings/lstmisc.sty" 1568236792 77022 32914f01b528131c47be2a1040d3856d "" + "/usr/share/texlive/texmf-dist/tex/latex/matrix-skeleton/pgflibrarymatrix.skeleton.code.tex" 1565039202 19612 007f8469df07e9ef0f680e346cc01945 "" + "/usr/share/texlive/texmf-dist/tex/latex/matrix-skeleton/tikzlibrarymatrix.skeleton.code.tex" 1565039202 7267 4d597b08b2429acaa1e526052d9509ed "" + "/usr/share/texlive/texmf-dist/tex/latex/ms/everyshi.sty" 1177890616 3878 6aa7c08ff2621006e0603349e40a30a8 "" + "/usr/share/texlive/texmf-dist/tex/latex/multirow/multirow.sty" 1559339157 5486 a1d954b09782ba0acd8a8abfd98e1028 "" + "/usr/share/texlive/texmf-dist/tex/latex/paralist/paralist.sty" 1485124581 14857 82c76ebe8f06becf69ab309565b2a0cb "" + "/usr/share/texlive/texmf-dist/tex/latex/pdflscape/pdflscape.sty" 1575674318 6575 25396d208d8f2b9395d06ef315d5886c "" + "/usr/share/texlive/texmf-dist/tex/latex/pdfpages/pdfpages.sty" 1580249532 54071 88f1e37dc9e1f95352061a066ed07263 "" + "/usr/share/texlive/texmf-dist/tex/latex/pdfpages/pppdftex.def" 1580249532 6418 197ed301e61ce5b7f446e70345a43a62 "" + "/usr/share/texlive/texmf-dist/tex/latex/pdftexcmds/pdftexcmds.sty" 1574631863 19963 36fd8e818f9f0f32e2db8413d4970122 "" + "/usr/share/texlive/texmf-dist/tex/latex/pgf/basiclayer/pgf.sty" 1546728038 1090 d20f587ea9464d1841bd0d13d3ff9856 "" + "/usr/share/texlive/texmf-dist/tex/latex/pgf/basiclayer/pgfcore.sty" 1288312291 410 5bf12ea7330e5f12c445332a4fe9a263 "" + "/usr/share/texlive/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-0-65.sty" 1546728038 21013 e98e1aaaf40d31632787c2bd25d24b57 "" + "/usr/share/texlive/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-1-18.sty" 1546728038 989 2cf3da8e8ec55131c49389428d565e37 "" + "/usr/share/texlive/texmf-dist/tex/latex/pgf/frontendlayer/tikz.sty" 1203877327 339 592cf35cba3d400082b8a9a5d0199d70 "" + "/usr/share/texlive/texmf-dist/tex/latex/pgf/math/pgfmath.sty" 1393459310 306 0796eafca5e159e6ec2167a6d22d81b1 "" + "/usr/share/texlive/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty" 1393459310 443 0b2e781830192df35c0fd357cf13e26e "" + "/usr/share/texlive/texmf-dist/tex/latex/pgf/utilities/pgffor.sty" 1393459310 348 8927fde343487e003b01a4c2ca34073b "" + "/usr/share/texlive/texmf-dist/tex/latex/pgf/utilities/pgfkeys.sty" 1203727794 274 4cad6e665cc93ac2ac979039a94fa1e1 "" + "/usr/share/texlive/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty" 1203877327 325 2bcd023400636339210573e2b3ee298b "" + "/usr/share/texlive/texmf-dist/tex/latex/psnfss/times.sty" 1156702453 857 6c716f26c5eadfb81029fcd6ce2d45e6 "" + "/usr/share/texlive/texmf-dist/tex/latex/refcount/refcount.sty" 1576624809 9878 9e94e8fa600d95f9c7731bb21dfb67a4 "" + "/usr/share/texlive/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty" 1575674187 9715 b051d5b493d9fe5f4bc251462d039e5f "" + "/usr/share/texlive/texmf-dist/tex/latex/standalone/standalone.cfg" 1522098998 1015 662b4d7ad816b857a598284525f5c75e "" + "/usr/share/texlive/texmf-dist/tex/latex/standalone/standalone.cls" 1522098998 28890 df75e6d37f47b7e27bff3f37375336b3 "" + "/usr/share/texlive/texmf-dist/tex/latex/tools/array.sty" 1580683321 12560 ce3f59ceae9d9a27bfe037d6bf1d903c "" + "/usr/share/texlive/texmf-dist/tex/latex/tools/calc.sty" 1580683321 10216 5efd55f2010055e7b7875afd6a75be82 "" + "/usr/share/texlive/texmf-dist/tex/latex/tools/shellesc.sty" 1580683321 4120 d1680a5ff60d0aea9c327e07c030f4e9 "" + "/usr/share/texlive/texmf-dist/tex/latex/txfonts/omltxmi.fd" 1137111002 492 e7f8afe4428797548d4301de03a1b15f "" + "/usr/share/texlive/texmf-dist/tex/latex/txfonts/omstxsy.fd" 1137111002 329 6ac7e19535b9f1d64e4d8e3f77dc30a3 "" + "/usr/share/texlive/texmf-dist/tex/latex/txfonts/omxtxex.fd" 1137111002 312 11fe1916b0a13a81a05234a6fc7f8738 "" + "/usr/share/texlive/texmf-dist/tex/latex/txfonts/ot1txr.fd" 1137111002 1271 4e3afbd8e832f2f9c7f064894e6e68e4 "" + "/usr/share/texlive/texmf-dist/tex/latex/txfonts/t1txr.fd" 1137111002 1242 cbf8a0d4f750f9833a0bfb05fb39f1cb "" + "/usr/share/texlive/texmf-dist/tex/latex/txfonts/txfonts.sty" 1206746551 50381 d367461010070c7a491b1f6979ab2062 "" + "/usr/share/texlive/texmf-dist/tex/latex/txfonts/utxexa.fd" 1137111002 310 1b00b0b05685b816e4c6caccce437e0d "" + "/usr/share/texlive/texmf-dist/tex/latex/txfonts/utxmia.fd" 1137111002 334 87436a82076ca2e35cd305f852507afc "" + "/usr/share/texlive/texmf-dist/tex/latex/txfonts/utxsya.fd" 1137111002 310 cee07e4964749ccbc77d84fc49726a79 "" + "/usr/share/texlive/texmf-dist/tex/latex/txfonts/utxsyb.fd" 1137111002 310 8c5467c8932c259af51b0f116c9734bd "" + "/usr/share/texlive/texmf-dist/tex/latex/txfonts/utxsyc.fd" 1137111002 310 4b5d6fe830337242ef847b3bff48ba21 "" + "/usr/share/texlive/texmf-dist/tex/latex/url/url.sty" 1388531844 12796 8edb7d69a20b857904dd0ea757c14ec9 "" + "/usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty" 1463002160 55589 34128738f682d033422ca125f82e5d62 "" + "/usr/share/texlive/texmf-dist/tex/latex/xkeyval/xkeyval.sty" 1417732693 4962 9c1069474ff71dbc47d5006555e352d3 "" + "/usr/share/texlive/texmf-dist/web2c/texmf.cnf" 1581979058 38841 ce3692aa899bb693b90b87eaa5d4d84e "" + "/usr/share/texmf/web2c/texmf.cnf" 1581979058 38841 ce3692aa899bb693b90b87eaa5d4d84e "" + "/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map" 1619433582 4770781 1ed1abab22da9c3e2cc82e4db562318b "" + "/var/lib/texmf/web2c/pdftex/pdflatex.fmt" 1619433611 8255863 afe1ed795207f6401d11bafd6327aa55 "" + "algo_graph.aux" 1621585123 662 b2b94621371df8d9296b8bf5bec1b851 "pdflatex" + "algo_graph.out" 1621585122 0 d41d8cd98f00b204e9800998ecf8427e "pdflatex" + "algo_graph.tex" 1621585144 5895 0e03594e6e25b7f3671b72694de0d3f4 "" + (generated) + "algo_graph.out" + "algo_graph.pdf" + "algo_graph.aux" + "algo_graph.log" diff --git a/buch/papers/multiplikation/tikz_formulas/algo_graph.fls b/buch/papers/multiplikation/tikz_formulas/algo_graph.fls new file mode 100644 index 0000000..bd1c14e --- /dev/null +++ b/buch/papers/multiplikation/tikz_formulas/algo_graph.fls @@ -0,0 +1,485 @@ +PWD /home/nunigan/Documents/MSE/FS21/SeminarMatrizen/buch/papers/multiplikation/tikz_formulas +INPUT /etc/texmf/web2c/texmf.cnf +INPUT /usr/share/texmf/web2c/texmf.cnf +INPUT /usr/share/texlive/texmf-dist/web2c/texmf.cnf +INPUT /var/lib/texmf/web2c/pdftex/pdflatex.fmt +INPUT algo_graph.tex +OUTPUT algo_graph.log +INPUT /usr/share/texlive/texmf-dist/tex/latex/standalone/standalone.cls +INPUT /usr/share/texlive/texmf-dist/tex/latex/standalone/standalone.cls +INPUT /usr/share/texlive/texmf-dist/tex/latex/tools/shellesc.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/tools/shellesc.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/tools/shellesc.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/ifluatex.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/ifluatex.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/ifluatex.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/iftex.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/iftex.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/xkeyval/xkeyval.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/xkeyval/xkeyval.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/xkeyval/xkeyval.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xkeyval/xkvutils.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xkeyval/keyval.tex +INPUT /dev/null +INPUT /usr/share/texlive/texmf-dist/tex/latex/standalone/standalone.cfg +INPUT /usr/share/texlive/texmf-dist/tex/latex/standalone/standalone.cfg +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/article.cls +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/article.cls +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/size10.clo +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/size10.clo +INPUT /usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/ifvtex.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/ifvtex.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty +INPUT /usr/share/texlive/texmf-dist/fonts/map/fontname/texfonts.map +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/jknappen/ec/ecrm1000.tfm +INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/times.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/times.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amsmath.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amsmath.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amstext.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amstext.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amsgen.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amsgen.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amsbsy.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amsbsy.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amsopn.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amsopn.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsfonts/amssymb.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsfonts/amssymb.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsfonts/amsfonts.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsfonts/amsfonts.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/jknapltx/mathrsfs.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/jknapltx/mathrsfs.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amscls/amsthm.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amscls/amsthm.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/lipsum/lipsum.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/lipsum/lipsum.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/l3kernel/expl3.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/l3kernel/expl3.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-pdfmode.def +INPUT /usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-pdfmode.def +INPUT /usr/share/texlive/texmf-dist/tex/latex/l3packages/xparse/xparse.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/l3packages/xparse/xparse.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/lipsum/lipsum.ltd.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/lipsum/lipsum.ltd.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amscd.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amscd.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def +INPUT /usr/share/texlive/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/textcomp.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/textcomp.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/txfonts.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/txfonts.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xy.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xy.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xy.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xyrecat.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xyidioms.tex +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xydash10.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xyatip10.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xybtip10.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xybsql10.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xycirc10.tfm +INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/ifpdf.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/ifpdf.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xyall.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xyall.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xycurve.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xycurve.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xyframe.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xyframe.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xycmtip.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xycmtip.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xytips.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xytips.tex +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xycmat10.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xycmbt10.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xyluat10.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xylubt10.tfm +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xyline.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xyline.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xyrotate.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xyrotate.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xycolor.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xycolor.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xymatrix.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xymatrix.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xyarrow.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xyarrow.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xygraph.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xygraph.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf-co.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf-cu.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf-fr.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf-li.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf-ro.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/paralist/paralist.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/paralist/paralist.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pdftexcmds/pdftexcmds.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pdftexcmds/pdftexcmds.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/infwarerr/infwarerr.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/infwarerr/infwarerr.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/kvsetkeys/kvsetkeys.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/kvsetkeys/kvsetkeys.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/pdfescape/pdfescape.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/pdfescape/pdfescape.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/hycolor/hycolor.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/hycolor/hycolor.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/auxhook/auxhook.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/auxhook/auxhook.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/kvoptions/kvoptions.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/kvoptions/kvoptions.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def +INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def +INPUT /usr/share/texlive/texmf-dist/tex/generic/intcalc/intcalc.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/intcalc/intcalc.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/etexcmds/etexcmds.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/etexcmds/etexcmds.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/url/url.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/url/url.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/bitset/bitset.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/bitset/bitset.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/atbegshi/atbegshi.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/atbegshi/atbegshi.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def +INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def +INPUT /usr/share/texlive/texmf-dist/tex/latex/atveryend/atveryend.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/atveryend/atveryend.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/tools/array.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/tools/array.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/frontendlayer/tikz.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/frontendlayer/tikz.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/basiclayer/pgf.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/basiclayer/pgf.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfutil-common.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfutil-common-lists.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfutil-latex.def +INPUT /usr/share/texlive/texmf-dist/tex/latex/ms/everyshi.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/ms/everyshi.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/pgf.revision.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/pgf.revision.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/basiclayer/pgfcore.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/basiclayer/pgfcore.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfkeysfiltered.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgf.cfg +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-pdftex.def +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-pdftex.def +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-common-pdf.def +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcore.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcore.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathcalc.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathutil.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathparser.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.basic.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.trigonometric.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.random.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.comparison.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.base.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.round.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.misc.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.integerarithmetics.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfloat.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfint.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepoints.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathconstruct.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathusage.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorescopes.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoregraphicstate.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransformations.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorequick.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreobjects.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathprocessing.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorearrows.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreshade.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreimage.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreexternal.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorelayers.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransparency.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepatterns.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorerdf.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/modules/pgfmoduleshapes.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/modules/pgfmoduleplot.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-0-65.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-0-65.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-1-18.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-1-18.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/utilities/pgffor.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/utilities/pgffor.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/utilities/pgfkeys.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/utilities/pgfkeys.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/math/pgfmath.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/math/pgfmath.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgffor.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgffor.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/tikz.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/tikz.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/libraries/pgflibraryplothandlers.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/libraries/pgflibraryplothandlers.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/modules/pgfmodulematrix.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarytopaths.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarytopaths.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/carlisle/slashed.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/carlisle/slashed.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pdfpages/pdfpages.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pdfpages/pdfpages.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/ifthen.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/ifthen.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/tools/calc.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/tools/calc.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/eso-pic/eso-pic.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/eso-pic/eso-pic.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pdfpages/pppdftex.def +INPUT /usr/share/texlive/texmf-dist/tex/latex/pdfpages/pppdftex.def +INPUT /usr/share/texlive/texmf-dist/tex/latex/cite/cite.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/cite/cite.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryarrows.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryarrows.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/libraries/pgflibraryarrows.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/libraries/pgflibraryarrows.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarymatrix.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarymatrix.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarypositioning.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarypositioning.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/aobs-tikz/tikzlibraryoverlay-beamer-styles.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/aobs-tikz/tikzlibraryoverlay-beamer-styles.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/matrix-skeleton/tikzlibrarymatrix.skeleton.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/matrix-skeleton/tikzlibrarymatrix.skeleton.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/matrix-skeleton/pgflibrarymatrix.skeleton.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/matrix-skeleton/pgflibrarymatrix.skeleton.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryfit.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryfit.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarybackgrounds.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarybackgrounds.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryautomata.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryautomata.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshapes.multipart.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshapes.multipart.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/libraries/shapes/pgflibraryshapes.multipart.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/libraries/shapes/pgflibraryshapes.multipart.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/listings/listings.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/listings/listings.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/listings/lstmisc.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/listings/lstmisc.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/listings/listings.cfg +INPUT /usr/share/texlive/texmf-dist/tex/latex/listings/listings.cfg +INPUT /usr/share/texlive/texmf-dist/tex/latex/multirow/multirow.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/multirow/multirow.sty +INPUT algo_graph.aux +INPUT algo_graph.aux +OUTPUT algo_graph.aux +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/omltxmi.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/omltxmi.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/omstxsy.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/omstxsy.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/omxtxex.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/omxtxex.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/utxexa.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/utxexa.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/t1txr.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/t1txr.fd +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/t1xr.tfm +INPUT /usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii +INPUT /usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii +INPUT /usr/share/texlive/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg +INPUT /usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/ot1txr.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/ot1txr.fd +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmi.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmi.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmi.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsy.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsy.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsy.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txex.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txex.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txex.tfm +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/utxsya.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/utxsya.fd +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsya.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsya.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsya.tfm +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/utxsyb.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/utxsyb.fd +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyb.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyb.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyb.tfm +INPUT /usr/share/texlive/texmf-dist/tex/latex/jknapltx/ursfs.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/jknapltx/ursfs.fd +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/rsfs/rsfs10.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/rsfs/rsfs7.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/rsfs/rsfs5.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txi.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txi.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txi.tfm +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/utxmia.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/utxmia.fd +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmia.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmia.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmia.tfm +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/utxsyc.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/utxsyc.fd +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyc.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyc.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyc.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txexa.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txexa.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txexa.tfm +INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/refcount/refcount.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/refcount/refcount.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty +INPUT algo_graph.out +INPUT algo_graph.out +INPUT algo_graph.out +INPUT algo_graph.out +INPUT ./algo_graph.out +INPUT ./algo_graph.out +OUTPUT algo_graph.out +OUTPUT algo_graph.pdf +INPUT /usr/share/texlive/texmf-dist/tex/latex/pdflscape/pdflscape.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pdflscape/pdflscape.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/lscape.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/lscape.sty +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/t1xr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmi.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmi.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsy.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsy.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txex.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txex.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsya.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsya.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyb.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyb.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/rsfs/rsfs10.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/rsfs/rsfs5.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txi.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txi.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmia.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmia.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyc.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyc.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txexa.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txexa.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/t1xr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmi.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmi.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmi.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsy.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsy.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsy.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txex.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txex.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txex.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsya.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsya.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsya.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyb.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyb.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyb.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/rsfs/rsfs10.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/rsfs/rsfs10.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/rsfs/rsfs10.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txi.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txi.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txi.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmia.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmia.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmia.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyc.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyc.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyc.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txexa.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txexa.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txexa.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/vf/public/txfonts/txmi.vf +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxmi.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxptmri.tfm +INPUT /var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map +INPUT /usr/share/texlive/texmf-dist/fonts/vf/public/txfonts/txr.vf +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxptmr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/vf/public/txfonts/txmi.vf +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxmi.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxptmri.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/vf/public/txfonts/txr.vf +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxptmr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/vf/public/txfonts/txr.vf +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxptmr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/vf/public/txfonts/t1xr.vf +INPUT algo_graph.aux +INPUT ./algo_graph.out +INPUT ./algo_graph.out +INPUT /usr/share/texlive/texmf-dist/fonts/enc/dvips/base/8r.enc +INPUT /usr/share/texlive/texmf-dist/fonts/type1/public/txfonts/rtxr.pfb +INPUT /usr/share/texlive/texmf-dist/fonts/type1/urw/times/utmr8a.pfb +INPUT /usr/share/texlive/texmf-dist/fonts/type1/urw/times/utmri8a.pfb diff --git a/buch/papers/multiplikation/tikz_formulas/algo_graph.pdf b/buch/papers/multiplikation/tikz_formulas/algo_graph.pdf Binary files differnew file mode 100755 index 0000000..7f5a984 --- /dev/null +++ b/buch/papers/multiplikation/tikz_formulas/algo_graph.pdf diff --git a/buch/papers/multiplikation/tikz_formulas/algo_graph.tex b/buch/papers/multiplikation/tikz_formulas/algo_graph.tex new file mode 100755 index 0000000..ad4228b --- /dev/null +++ b/buch/papers/multiplikation/tikz_formulas/algo_graph.tex @@ -0,0 +1,140 @@ +\documentclass[border=10pt]{standalone} +\usepackage[left=25mm,right=25mm,top=25mm,bottom=25mm]{geometry} +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage{times} +\usepackage{geometry} +\usepackage{amsmath} +\usepackage{amssymb} +\usepackage{mathrsfs} +\usepackage{amsfonts} +\usepackage{amsthm} +\usepackage{lipsum} +\usepackage{amscd} +\usepackage{graphicx} +\usepackage{fancyhdr} +\usepackage{textcomp} +\usepackage{txfonts} +\usepackage[all]{xy} +\usepackage{paralist} +\usepackage[colorlinks=true]{hyperref} +\usepackage{array} +\usepackage{tikz} +\usepackage{slashed} +\usepackage{pdfpages} +\usepackage{cite} +\usepackage{url} +\usepackage{amsmath,amsfonts,amssymb} +\usepackage{tikz} +\usetikzlibrary{arrows,matrix,positioning} +\usetikzlibrary{overlay-beamer-styles} +\usetikzlibrary{matrix.skeleton} +\usetikzlibrary{automata,positioning} +\usepackage{listings} +\usepackage{multirow} +\usepackage{color} + +\begin{document} + +\begin{tikzpicture}[ampersand replacement=\&] + + \foreach \i in {1,...,4} + { + \small{ + \matrix (X\i)[matrix of math nodes,nodes in empty cells, + nodes = {draw, minimum size=10mm, + anchor=center, + inner sep=0pt, outer sep=0pt}, + column sep=-\pgflinewidth, + row sep=-\pgflinewidth, + ] at (0,-\i*5) + { + A_{11}B_{11} \& A_{12}B_{11} \& A_{21}B_{11} \& A_{22}B_{11} \\ + A_{11}B_{21} \& A_{12}B_{21} \& A_{21}B_{21} \& A_{22}B_{21} \\ + A_{11}B_{11} \& A_{12}B_{12} \& A_{21}B_{12} \& A_{22}B_{12} \\ + A_{11}B_{22} \& A_{12}B_{22} \& A_{21}B_{22} \& A_{22}B_{22} \\ + };} + + \foreach \j in {1,...,7} + { + \matrix(M\i\j)[matrix of math nodes,nodes in empty cells, + nodes = {draw, minimum size=10mm, + anchor=center, + inner sep=0pt, outer sep=0pt}, + column sep=-\pgflinewidth, + row sep=-\pgflinewidth, + ] at (\j*5,-\i*5) + { + \& \& \& \\ + \& \& \& \\ + \& \& \& \\ + \& \& \& \\ + }; + } + } + +\huge{ + \node at (-3,-20) {$C_{22}=$}; + \node at (-3,-15) {$C_{21}=$} ; + \node at (-3,-10) {$C_{12}=$} ; + \node at (-3,-5) {$C_{11}=$} ; + + \node at (5,-2) {I}; + \node at (10,-2) {II}; + \node at (15,-2) {III}; + \node at (20,-2) {IV}; + \node at (25,-2) {V}; + \node at (30,-2) {VI}; + \node at (35,-2) {VII}; + } + + + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(X1-1-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(X1-2-2)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(X2-3-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(X2-4-2)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(X3-1-3)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(X3-2-4)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(X4-3-3)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(X4-4-4)] {}; + + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M11-4-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M11-1-4)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M11-4-4)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M11-1-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M14-1-4)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M14-2-4)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M15-4-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M15-4-2)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M17-2-4)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M17-4-4)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M17-2-2)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M17-4-2)] {}; + + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M23-3-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M23-4-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M25-4-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M25-4-2)] {}; + + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M32-1-4)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M32-1-3)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M34-1-4)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M34-2-4)] {}; + + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M41-4-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M41-1-4)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M41-4-4)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M41-1-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M42-1-4)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M42-1-3)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M43-3-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M43-4-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M46-1-3)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M46-1-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M46-3-3)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M46-3-1)] {}; +\end{tikzpicture} + + + +\end{document} diff --git a/buch/papers/munkres/figures/Matrixdarstellung.png b/buch/papers/munkres/figures/Matrixdarstellung.png Binary files differnew file mode 100644 index 0000000..91a376d --- /dev/null +++ b/buch/papers/munkres/figures/Matrixdarstellung.png diff --git a/buch/papers/munkres/figures/Netzwerkdarstellung.png b/buch/papers/munkres/figures/Netzwerkdarstellung.png Binary files differnew file mode 100644 index 0000000..6c20bf4 --- /dev/null +++ b/buch/papers/munkres/figures/Netzwerkdarstellung.png diff --git a/buch/papers/munkres/figures/Ungarische_Methode_Beispiel.png b/buch/papers/munkres/figures/Ungarische_Methode_Beispiel.png Binary files differnew file mode 100644 index 0000000..fb4d061 --- /dev/null +++ b/buch/papers/munkres/figures/Ungarische_Methode_Beispiel.png diff --git a/buch/papers/munkres/figures/Ungarische_Methode_Beispiel_Zuw.png b/buch/papers/munkres/figures/Ungarische_Methode_Beispiel_Zuw.png Binary files differnew file mode 100644 index 0000000..73217d3 --- /dev/null +++ b/buch/papers/munkres/figures/Ungarische_Methode_Beispiel_Zuw.png diff --git a/buch/papers/munkres/figures/beispiel_munkres.png b/buch/papers/munkres/figures/beispiel_munkres.png Binary files differnew file mode 100644 index 0000000..2303708 --- /dev/null +++ b/buch/papers/munkres/figures/beispiel_munkres.png diff --git a/buch/papers/munkres/figures/bipartiter_graph.png b/buch/papers/munkres/figures/bipartiter_graph.png Binary files differnew file mode 100644 index 0000000..87c164c --- /dev/null +++ b/buch/papers/munkres/figures/bipartiter_graph.png diff --git a/buch/papers/munkres/figures/ganzzahlige_punkte.png b/buch/papers/munkres/figures/ganzzahlige_punkte.png Binary files differnew file mode 100644 index 0000000..5689825 --- /dev/null +++ b/buch/papers/munkres/figures/ganzzahlige_punkte.png diff --git a/buch/papers/munkres/main.tex b/buch/papers/munkres/main.tex index 4dd20fa..e5282dc 100644 --- a/buch/papers/munkres/main.tex +++ b/buch/papers/munkres/main.tex @@ -3,34 +3,18 @@ % % (c) 2020 Hochschule Rapperswil % -\chapter{Thema\label{chapter:munkres}} -\lhead{Thema} +\chapter{Das Zuordnungsproblem und der Munkres-Algorithmus\label{chapter:munkres}} +\lhead{Das Zuordnungsproblem und der Munkres-Algorithmus} \begin{refsection} -\chapterauthor{Hans Muster} +\chapterauthor{Marc Kühne} -Ein paar Hinweise für die korrekte Formatierung des Textes -\begin{itemize} -\item -Absätze werden gebildet, indem man eine Leerzeile einfügt. -Die Verwendung von \verb+\\+ ist nur in Tabellen und Arrays gestattet. -\item -Die explizite Platzierung von Bildern ist nicht erlaubt, entsprechende -Optionen werden gelöscht. -Verwenden Sie Labels und Verweise, um auf Bilder hinzuweisen. -\item -Beginnen Sie jeden Satz auf einer neuen Zeile. -Damit ermöglichen Sie dem Versionsverwaltungssysteme, Änderungen -in verschiedenen Sätzen von verschiedenen Autoren ohne Konflikt -anzuwenden. -\item -Bilden Sie auch für Formeln kurze Zeilen, einerseits der besseren -Übersicht wegen, aber auch um GIT die Arbeit zu erleichtern. -\end{itemize} \input{papers/munkres/teil0.tex} \input{papers/munkres/teil1.tex} \input{papers/munkres/teil2.tex} \input{papers/munkres/teil3.tex} +\input{papers/munkres/teil4.tex} +\input{papers/munkres/teil5.tex} \printbibliography[heading=subbibliography] \end{refsection} diff --git a/buch/papers/munkres/teil0.tex b/buch/papers/munkres/teil0.tex index de522c7..0578429 100644 --- a/buch/papers/munkres/teil0.tex +++ b/buch/papers/munkres/teil0.tex @@ -3,20 +3,8 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{Teil 0\label{munkres:section:teil0}} -\rhead{Teil 0} -Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam -nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam -erat, sed diam voluptua \cite{munkres:bibtex}. -At vero eos et accusam et justo duo dolores et ea rebum. -Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum -dolor sit amet. - -Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam -nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam -erat, sed diam voluptua. -At vero eos et accusam et justo duo dolores et ea rebum. Stet clita -kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit -amet. - +\section{Einleitung\label{munkres:section:teil0}} +\rhead{Einleitung} +Im Bereich der Unternehmensplanung (Operations Research) gibt es verschiedene Fragestellungen. Eine davon ist das sogenannte Transportproblem. Zum Transport einheitlicher Objekte von mehreren Angebots- zu mehreren Nachfrageorten ist ein optimaler, d. h. kostenminimaler Plan zu finden, wobei die vorhandenen und zu liefernden Mengen an den einzelnen Standorten gegeben sowie die jeweiligen Transportkosten pro Einheit zwischen allen Standorten bekannt sind. +Nun gibt es im Bereich des klassischen Transportproblems Sonderfälle. Ein Sonderfall ist z.B. das Zuordnungsproblem. diff --git a/buch/papers/munkres/teil1.tex b/buch/papers/munkres/teil1.tex index f4f5e39..d22b57f 100644 --- a/buch/papers/munkres/teil1.tex +++ b/buch/papers/munkres/teil1.tex @@ -3,53 +3,71 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{Teil 1 +\section{Beschrieb des Zuordnungsproblems \label{munkres:section:teil1}} \rhead{Problemstellung} -Sed ut perspiciatis unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam, eaque ipsa -quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. -Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit -aut fugit, sed quia consequuntur magni dolores eos qui ratione -voluptatem sequi nesciunt + +Das Spezielle an einem Zuordnungsproblem ist, dass es an jedem Ort nur eine Einheit angeboten bzw. nachgefragt wird. Es werden hier nicht Mengen möglichst kostenminimal von einem zum anderen +Ort transportiert, sondern es geht um die kostenminimale Zuordnung von z.B. Personen, oder Bau-Maschinen auf bestimmte Orte, Stellen oder Aufgaben. +Um dieses Problem in einer einfachen, händischen Art und Weise zu lösen wurde der Munkres-Algorithmus, auch die Ungarische Methode genannt, entwickelt. Diese Methode ist ein weiteres Hauptthema dieses Kapitels. + +\subsection{Zuordnungsproblem an einem konkreten Beispiel +\label{munkres:subsection:bonorum}} +Man hat den Fall, wo ein Bauunternehmer einen Bauingenieur beauftragt, eine optimale Transportroute für die Umplatzierung seiner Kräne zu eruieren. Das heisst, die Transportstrecke für die Umplatzierung seine Kräne +soll möglichst klein werden. +Die Frage lautet, wie sind die Kräne umzusetzen, damit deren Transportstrecke minimal wird? Bei der normalen Optimierung dürfen normalerweise beliebige reelle Werte angenommen werden $\mathbb{R}$. +Beim Beispiel mit den Kräne gibt es aber ein Problem. Bei der Suche nach der optimalen Lösung darf nur die Methode der ganzzahligen Optimierung gewählt werden $\mathbb{Z}$. Materialien kann man aufteilen, jedoch Maschinen nicht. Die Bauarbeiter auf der neuen Baustelle benötigen einen ganzen Kran und nicht nur einen halben Kran. Es muss immer ein ganzer Kran von A nach B oder gar kein Kran verschoben werden. Also 1 oder 0. +Für solche Optimierungsproblem für reelle Varianten sind verschiedene Verfahren entwickelt worden, die im Allgemeinen auch sehr effizient sind. Das reelle Problem ist also in einer einfachen Art uns weise lösbar. Doch das Problem bleibt, wie in der Illustration oben ersichtlich. Es kann mit ganzzahligen Punkten kein Optimum erzielt werden. Das Ziel ist es an das Optimum so nah wie möglich heranzukommen und dies ist eine vergleichsweise träge und langsame Angelegenheit. + +\begin{figure} +\centering +\includegraphics[width=5cm]{papers/munkres/figures/ganzzahlige_punkte} +\caption{Problem der Ganzzahligkeit.} +\label{munkres:Vr2} +\end{figure} + + +\subsection{Zuordnungsproblem abstrakt +\label{munkres:subsection:bonorum}} + +In einem Zuordnungsproblem sind alle Angebots- und Bedarfsmengen gleich 1 +\begin{equation} +a_{i}=b_{j}=1 +\end{equation} +Das Ziel ist es die Gesamtkosten zu minimieren. Mit Hilfe einer $n\times n$ Matrix $\mathbb{A}$ $\mathbb{\in}$ $\mathbb{R}^{n,n}$ kann der Faktor Kosten mit in die Rechnung eingebracht werden. +In der Zelle dieser Matrix sind $a_{i,j}$ die Wege dargestellt, die entstehen, wenn man z.B. einem Kran $i$ den Einsatzort $j$ zuordnet. + +\subsection{Alternative Darstellungen des Zuordnungsproblems +\label{munkres:subsection:bonorum}} +\begin{equation} +Netzwerk +\end{equation} +\begin{equation} +Matrix +\end{equation} \begin{equation} -\int_a^b x^2\, dx -= -\left[ \frac13 x^3 \right]_a^b -= -\frac{b^3-a^3}3. -\label{munkres:equation1} +Bitpartiter Graph \end{equation} -Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, -consectetur, adipisci velit, sed quia non numquam eius modi tempora -incidunt ut labore et dolore magnam aliquam quaerat voluptatem. - -Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis -suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? -Quis autem vel eum iure reprehenderit qui in ea voluptate velit -esse quam nihil molestiae consequatur, vel illum qui dolorem eum -fugiat quo voluptas nulla pariatur? - -\subsection{De finibus bonorum et malorum -\label{munkres:subsection:finibus}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga \eqref{000tempmlate:equation1}. - -Et harum quidem rerum facilis est et expedita distinctio -\ref{munkres:section:loesung}. -Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil -impedit quo minus id quod maxime placeat facere possimus, omnis -voluptas assumenda est, omnis dolor repellendus -\ref{munkres:section:folgerung}. -Temporibus autem quibusdam et aut officiis debitis aut rerum -necessitatibus saepe eveniet ut et voluptates repudiandae sint et -molestiae non recusandae. -Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis -voluptatibus maiores alias consequatur aut perferendis doloribus -asperiores repellat. +Ein bipartiter Graph ist ein mathematisches Modell für Beziehungen +zwischen den Elementen zweier Mengen. +Es eignet sich sehr gut zur Untersuchung von Zuordnungsproblemen. +\begin{figure} +\centering +\includegraphics[width=5cm]{papers/munkres/figures/Netzwerkdarstellung} +\caption{Typische Netzwerkdarstellung eines Zuordnungsproblems.} +\label{munkres:Vr2} +\end{figure} +\begin{figure} +\centering +\includegraphics[width=5cm]{papers/munkres/figures/Matrixdarstellung} +\caption{Typische 4x4 Matrixdarstellung eines Zuordnungsproblems.} +\label{munkres:Vr2} +\end{figure} +\begin{figure} +\centering +\includegraphics[width=5cm]{papers/munkres/figures/bipartiter_graph} +\caption{$K_{3,3}$ vollständig bipartiter Graph mit 3 Knoten pro Teilmenge.} +\label{munkres:Vr2} +\end{figure} diff --git a/buch/papers/munkres/teil2.tex b/buch/papers/munkres/teil2.tex index 23536b9..a3b249e 100644 --- a/buch/papers/munkres/teil2.tex +++ b/buch/papers/munkres/teil2.tex @@ -3,38 +3,11 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{Teil 2 +\section{Schwierigkeit der Lösung (Permutationen) \label{munkres:section:teil2}} -\rhead{Teil 2} -Sed ut perspiciatis unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam, eaque ipsa -quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit -aspernatur aut odit aut fugit, sed quia consequuntur magni dolores -eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam -est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci -velit, sed quia non numquam eius modi tempora incidunt ut labore -et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima -veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, -nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure -reprehenderit qui in ea voluptate velit esse quam nihil molestiae -consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla -pariatur? +\rhead{Schwierigkeit der Lösung (Permutationen)} -\subsection{De finibus bonorum et malorum -\label{munkres:subsection:bonorum}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis -est et expedita distinctio. Nam libero tempore, cum soluta nobis -est eligendi optio cumque nihil impedit quo minus id quod maxime -placeat facere possimus, omnis voluptas assumenda est, omnis dolor -repellendus. Temporibus autem quibusdam et aut officiis debitis aut -rerum necessitatibus saepe eveniet ut et voluptates repudiandae -sint et molestiae non recusandae. Itaque earum rerum hic tenetur a -sapiente delectus, ut aut reiciendis voluptatibus maiores alias -consequatur aut perferendis doloribus asperiores repellat. +Eine Permutation ist eine Anordnung von Objekten in einer bestimmten Reihenfolge oder eine Umordnung von Objekten aus einer vorgegebenen Reihung. Ist eine optimale Zuordnung gefunden, so steht in jeder Zeile und jeder Spalte der Matrix genau ein Element, das zur optimalen Lösung gehört, eine solche Gruppe von Positionen wird auch als Transversale der Matrix bezeichnet. +Die Problemstellung kann auch so formuliert werden, dass man die Zeilen- oder die Spaltenvektoren so umordnet soll, dass die Summe der Elemente in der Hauptdiagonale maximal wird. Hieraus wird sofort ersichtlich, dass es in einer $n$×$n$-Matrix genau so viele Möglichkeiten gibt, die Zeilen- bzw. Spaltenvektoren zu ordnen, wie es Permutationen von $n$ Elementen gibt, also $n!$. Außer bei kleinen Matrizen ist es nahezu aussichtslos, die optimale Lösung durch Berechnung aller Möglichkeiten zu finden. Schon bei einer 10×10-Matrix gibt es nahezu 3,63 Millionen (3.628.800) zu berücksichtigender Permutationen. diff --git a/buch/papers/munkres/teil3.tex b/buch/papers/munkres/teil3.tex index b67ad74..874baae 100644 --- a/buch/papers/munkres/teil3.tex +++ b/buch/papers/munkres/teil3.tex @@ -3,38 +3,116 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{Teil 3 +\section{Der Munkres-Algorithmus (Ungarische Methode) \label{munkres:section:teil3}} -\rhead{Teil 3} -Sed ut perspiciatis unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam, eaque ipsa -quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit -aspernatur aut odit aut fugit, sed quia consequuntur magni dolores -eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam -est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci -velit, sed quia non numquam eius modi tempora incidunt ut labore -et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima -veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, -nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure -reprehenderit qui in ea voluptate velit esse quam nihil molestiae -consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla -pariatur? - -\subsection{De finibus bonorum et malorum +\rhead{Der Munkres-Algorithmus (Ungarische Methode)} + +Mit der ungarischen Methode können also Optimierungsprobleme gelöst +werden, die bei gewichteten Zuordnungen in bipartiten Graphen entstehen. +Mit ihr kann die eindeutige Zuordnung von Objekten aus zwei Gruppen so +optimiert werden, dass die Gesamtkosten minimiert werden bzw.~der +Gesamtgewinn maximiert werden kann. + +\subsection{Geschichte +\label{munkres:subsection:malorum}} +Die Ungarische Methode wurde 1955 von Harold Kuhn entwickelt und veröffentlicht. +Der Name ``Ungarische Methode'' ergab sich, weil der Algorithmus +weitestgehend auf den früheren Arbeiten zweier ungarischer Mathematiker +basierte: Dénes Kőnig und Jenő Egerváry. +James Munkres überprüfte den Algorithmus im Jahr 1957 und stellte fest, +dass der Algorithmus (stark) polynomiell ist. +Seitdem ist der Algorithmus auch als Kuhn-Munkres oder +Munkres-Zuordnungsalgorithmus bekannt. +Die Zeitkomplexität des ursprünglichen Algorithmus war $O(n^4)$, +später wurde zudem festgestellt, dass er modifiziert werden kann, +um eine $O(n^3)$-Laufzeit zu erreichen. + +\subsection{Besondere Leistung der Ungarischen Methode +\label{munkres:subsection:malorum}} +Die Ungarische Methode ist ein kombinatorischer Optimierungsalgorithmus, der das Zuordnungsproblem +in polynomieller Zeit löst. +Der Begriff polynomielle Laufzeit bedeutet, dass die Laufzeit des Programms +wie $n^2$, $n^3$, $n^4$, etc.~wächst und vernünftig skaliert. $n$ ist hierbei die "Grösse" des Problems. + +\subsection{Unterschiedliche Anzahl von Quellen und Zielen +\label{munkres:subsection:malorum}} +Es gibt Fälle, in welchen das Ausgangsproblem keine quadratische Form besitzt. Das ist z.B dann der Fall, wenn eine 3 Mitarbeiter 4 Eignungstests abdsolvieren müssen. In diesem Fall wird in der Ungarischen Methode die Matrix künstlich mittels einer Dummy Position quadratisch ergänzt. Dummy-Positionen werden dann mit der größten vorhandenen Zahl aus der Matrix besetzt. Beispielsweise eine $4\times 3$ wird zu einer $4\times 4$ Matrix. + +\subsection{Beispiel eines händischen Verfahrens \label{munkres:subsection:malorum}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis -est et expedita distinctio. Nam libero tempore, cum soluta nobis -est eligendi optio cumque nihil impedit quo minus id quod maxime -placeat facere possimus, omnis voluptas assumenda est, omnis dolor -repellendus. Temporibus autem quibusdam et aut officiis debitis aut -rerum necessitatibus saepe eveniet ut et voluptates repudiandae -sint et molestiae non recusandae. Itaque earum rerum hic tenetur a -sapiente delectus, ut aut reiciendis voluptatibus maiores alias -consequatur aut perferendis doloribus asperiores repellat. +Die ungarische Methode kann in einem einfachen händischen Beispiel +erläutert werden. Es gibt eine Ausgangsmatrix. Diese Matrix wird in mehreren Schritten immer +weiter reduziert. Anschließend erfolgen mehrere Zuordnungen. Hierbei ist zu beachten, dass +jede Zeile und jede Spalte immer genau eine eindeutige Zuordnung ergibt. +Die optimale Lösung ist erreicht, wenn genau $n$ Zuordnungen gefunden +sind. + +\begin{enumerate} +\item Pro Zeile eruiert man die kleinste Zahl. Diese kleinste Zahl wird bei +allen anderen Ziffern in der jeweiligen Zeile subtrahiert. + +\item Danach zieht man wiederum die kleinste Zahl in jeder Spalte von allen +Zahlen in der Spalte ab. + +\item Es sollen möglichst viele Nullen markiert werden, welche freistehend sind. +(Freistehend bedeutet, sowohl in der jeweiligen Zeile und Spalte nur +eine markierte Null zu haben) + +\item Jeweilige Zeilen eruieren, bei welchen keine markierte Null vorhanden sind und kennzeichnen. + +\item In der vorherigen Zeile die 0 eruieren und die Spalte ebenfalls +kennzeichnen (*2) + +\item Im der selben Spalte die Markierte Null eruieren und die dazugehörige +Zeile kennzeichnen (*3) + +\item Alle Zeilen durchstreichen, welche KEINE Kennzeichnungen (*) haben + +\item Alle Spalten durchstreichen, welche EINE Kennzeichnung besitzt! (hier, *2) + +\item Kleinste Ziffer auswählen, welche nicht schon durchgestrichen sind. +(Im Beispiel ist es die Zahl 1. (Egal welche 1) + +\item Die eruierte kleinste Ziffer, wird von den nicht durchgestrichenen Ziffern +subtrahiert. Danach muss die Matrix wieder komplettiert werden. (inkl. Unterstreichen) + +\item Jeweilige Zahlen eruieren, welche vorgängig doppelt durchgestrichen wurden. + +\item Kleinste eruierte Ziffer von vorhin auf die zwei markierten Ziffern addieren. + +\item Es sollen wiederum von neuem möglichst viele Nullen markiert werden, +welche freistehend sind. In diesem Schritt werden nur die markierten Nullen betrachtet. + +\item Aus allen markierten Nullen in eine eins umwandeln. + +\item Die restlichen Ziffern, durch eine Null ersetzen. + +\item Zu guter letzt soll überall wo eine 1 steht, in der Ausgangsmatrix die +dazugehörige Ziffer ausgewählt werden. Nach Einsetzen und Eruieren der Zahlen ergeben sich nach Summieren der Zahlen der minimalste Transportweg. +\end{enumerate} + +\begin{figure} +\centering +\includegraphics[width=14cm]{papers/munkres/figures/Ungarische_Methode_Beispiel.png} +\caption{Händisches Beispiel des Munkres Algorithmus, minimalster Transportweg.} +\label{munkres:Vr2} +\end{figure} + +\subsection{Zuordnung der Kräne +\label{munkres:subsection:malorum}} + +\begin{itemize} +\item Der Kran von Baustelle A1 soll zur Baustelle B2. +\item Der Kran von Baustelle A2 soll zur Baustelle B3. +\item Der Kran von Baustelle A3 soll zur Baustelle B4. +\item Der Kran von Baustelle A4 soll zur Baustelle B1. +\end{itemize} + +\begin{figure} +\centering +\includegraphics[width=3cm]{papers/munkres/figures/Ungarische_Methode_Beispiel_Zuw.png} +\caption{Händisches Beispiel des Munkres Algorithmus, Zuweisung der Kräne } +\label{munkres:Vr2} +\end{figure} diff --git a/buch/papers/munkres/teil4.tex b/buch/papers/munkres/teil4.tex new file mode 100644 index 0000000..9a27227 --- /dev/null +++ b/buch/papers/munkres/teil4.tex @@ -0,0 +1,9 @@ +% +% teil4.tex -- Beispiel-File für Teil 4 +% +% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% +\section{- +\label{munkres:section:teil4}} +\rhead{-} + diff --git a/buch/papers/munkres/teil5.tex b/buch/papers/munkres/teil5.tex new file mode 100644 index 0000000..b938c50 --- /dev/null +++ b/buch/papers/munkres/teil5.tex @@ -0,0 +1,8 @@ +% +% teil5.tex -- Beispiel-File für Teil 5 +% +% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% +\section{- +\label{munkres:section:teil5}} +\rhead{-} diff --git a/buch/papers/punktgruppen/.gitignore b/buch/papers/punktgruppen/.gitignore new file mode 100644 index 0000000..6827d9f --- /dev/null +++ b/buch/papers/punktgruppen/.gitignore @@ -0,0 +1 @@ +standalone diff --git a/buch/papers/punktgruppen/Makefile b/buch/papers/punktgruppen/Makefile index 0274594..03ad15a 100644 --- a/buch/papers/punktgruppen/Makefile +++ b/buch/papers/punktgruppen/Makefile @@ -3,7 +3,44 @@ # # (c) 2020 Prof Dr Andreas Mueller # +SOURCES := \ + crystals.tex \ + intro.tex \ + main.tex \ + piezo.tex \ + symmetry.tex -images: - @echo "no images to be created in punktgruppen" +TIKZFIGURES := \ + tikz/atoms-grid-still.tex \ + tikz/atoms-grid-force.tex \ + tikz/atoms-piezo-still.tex \ + tikz/atoms-piezo-force-vertical.tex \ + tikz/atoms-piezo-force-horizontal.tex \ + tikz/combine-symmetries.tex \ + tikz/lattice.tex \ + tikz/piezo.tex \ + tikz/projections.tex \ + tikz/stereographic-projections.tex \ + tikz/symmetric-shapes.tex +FIGURES := $(patsubst tikz/%.tex, figures/%.pdf, $(TIKZFIGURES)) + +.PHONY: images +images: $(FIGURES) + +figures/%.pdf: tikz/%.tex + mkdir -p figures + pdflatex --output-directory=figures $< + +.PHONY: standalone +standalone: standalone.tex $(SOURCES) $(FIGURES) + mkdir -p standalone + cd ../..; \ + pdflatex \ + --halt-on-error \ + --shell-escape \ + --output-directory=papers/punktgruppen/standalone \ + papers/punktgruppen/standalone.tex; + cd standalone; \ + bibtex standalone; \ + makeindex standalone; diff --git a/buch/papers/punktgruppen/Makefile.inc b/buch/papers/punktgruppen/Makefile.inc index b6a76c1..fbb073e 100644 --- a/buch/papers/punktgruppen/Makefile.inc +++ b/buch/papers/punktgruppen/Makefile.inc @@ -10,5 +10,16 @@ dependencies-punktgruppen = \ papers/punktgruppen/symmetry.tex \ papers/punktgruppen/crystals.tex \ papers/punktgruppen/piezo.tex \ - papers/punktgruppen/references.bib - + papers/punktgruppen/references.bib \ + papers/punktgruppen/tikz/atoms-grid-force.tex \ + papers/punktgruppen/tikz/atoms-grid-still.tex \ + papers/punktgruppen/tikz/atoms-piezo-force-horizontal.tex \ + papers/punktgruppen/tikz/atoms-piezo-force-vertical.tex \ + papers/punktgruppen/tikz/atoms-piezo-still.tex \ + papers/punktgruppen/tikz/combine-symmetries.tex \ + papers/punktgruppen/tikz/lattice.tex \ + papers/punktgruppen/tikz/piezo-atoms.tex \ + papers/punktgruppen/tikz/piezo.tex \ + papers/punktgruppen/tikz/projections.tex \ + papers/punktgruppen/tikz/stereographic-projections.tex \ + papers/punktgruppen/tikz/symmetric-shapes.tex diff --git a/buch/papers/punktgruppen/crystals.tex b/buch/papers/punktgruppen/crystals.tex index 6de2bca..42008e1 100644 --- a/buch/papers/punktgruppen/crystals.tex +++ b/buch/papers/punktgruppen/crystals.tex @@ -1,16 +1,170 @@ \section{Kristalle} -Unter dem Begriff Kristall sollte sich jeder ein Bild machen können. -Wir werden uns aber nicht auf sein Äusseres fokussieren, sondern was ihn im Inneren ausmacht. -Die Innereien eines Kristalles sind glücklicherweise relativ einfach definiert. +Eine nicht allzu häufig gestellte Frage ist, wie ein Kristall definiert ist. +Um zu klären, was ein Kristall mit Symmetrien zu tun hat, ist jedoch genau diese Frage äusserst relevant. +Glücklicherweise ist das Innere eines Kristalles relativ einfach definiert. \begin{definition}[Kristall] Ein Kristall besteht aus Atomen, welche sich in einem Muster arrangieren, welches sich in drei Dimensionen periodisch wiederholt. \end{definition} +\begin{figure} + \centering + \includegraphics[]{papers/punktgruppen/figures/lattice} + \caption{ + Zweidimensionales Kristallgitter. + \label{fig:punktgruppen:lattice} + } +\end{figure} +\subsection{Kristallgitter} +Ein zweidimensionales Beispiel eines solchen Muster ist Abbildung \ref{fig:punktgruppen:lattice}. +Für die Überschaubarkeit haben wir ein simples Motiv eines einzelnen grauen Punktes dargestellt und betrachten dies nur in zwei Dimensionen. +Die eingezeichneten Vektoren \(\vec{a}_1\) und \(\vec{a}_2\) sind die kleinstmöglichen Schritte im Raum bis sich das Kristallgitter wiederholt. +Wird ein beliebiger grauer Gitterpunkt in \ref{fig:punktgruppen:lattice} gewählt und um eine ganzzahlige Linearkombination von \(\vec{a}_1\) und \(\vec{a}_2\) verschoben, endet er zwangsweise auf einem Gitterpunkt, wenn nicht wieder am selben Ort. +Im dreidimensionalen Raum können alle Gitterpunkte mit derselben Idee und einem zusätzlichen Vektor \(\vec{c}\) also +\[ + \vec{r} = n_1 \vec{a}_1 + n_2 \vec{a}_2 + n_3 \vec{a}_3 = \sum_i n_i \vec{a}_i +\] +erreicht werden sofern \(n_1,n_2,n_3 \in \mathbb{Z}\) sind. +Sind die Vektoren \(\vec{a}_1\), \(\vec{a}_2\), \(\vec{a}_3\) gegeben, ist ein Kristallgitter eindeutig beschrieben, weswegen sie auch als Grundvektoren bekannt sind. -Ein Zweidimensionales Beispiel eines solchen Muster ist Abbildung \ref{fig:punktgruppen:lattce-grid}. -Für die Überschaubarkeit haben wir ein simples Muster eines einzelnen XgrauenX Punktes gewählt in nur Zwei Dimensionen. -Die eingezeichneten Vektoren a und b sind die kleinstmöglichen Schritte im Raum bis sich das Kristallgitter wiederholt. -Dadurch können von einem einzelnen XGrauenX Gitterpunkt in \ref{fig:punktgruppen:lattce-grid} können mit einer ganzzahligen Linearkombination von a und b alle anderen Gitterpunkte des Kristalles erreicht werden. -Ein Kristallgitter kann eindeutig mit a und b und deren winkeln beschrieben werden weswegen a und b auch Gitterparameter genannt werden. -Im Dreidimensionalen-Raum können alle Gitterpunkte mit derselben Idee und einem zusätzlichen Vektor also FRMEL FÜR TRANSLATIONSVEKTOR erreicht werden. -Da sich das Ganze Kristallgitter wiederholt, wiederholen sich auch die Eigenschaften eines Gitterpunktes Periodisch mit eiem +\subsection{Translationssymmetrie} +Da sich das ganze Kristallgitter wiederholt, wiederholen sich auch dessen Eigenschaften periodisch mit den Grundvektoren. +Sollte man sich auf einem Gitterpunkt in einem Kristall aufhalten, ist es unmöglich zu wissen, auf welchem Gitterpunkt man sich befindet, da die Umgebungen aller Punkte identisch sind. +Mit anderen Worten: Jedes Kristallgitter $ G $ ist \emph{translationssymmetrisch} in der Translation +\[ + \vec{Q}_i(G) = G + \vec{a}_i, +\] +wobei der Vektor $\vec{a}_i$ ein Grundvektor sein muss. +Da die Translationssymmetrie beliebig oft mit allen Grundvektoren angewendet werden kann, +können wir auch sagen, dass alle Verschiebungen um eine Linearkombination +der Vektoren $\vec{a}_1$ , $\vec{a}_2$ und $\vec{a}_3$ erlaubt sind. +Dabei sollte erwähnt werden, dass eine Translationssymmetrie nur in unendlich grossen Kristallgittern besteht. + +\subsection{Limitierte Kristallsymmetrien} \label{txt:punktgruppen:Translationssymmetrie} + Die Translationssymmetrie ist wohl keine grosse Überraschung, wenn man die Abbildung \ref{fig:punktgruppen:lattice} betrachtet. + Was nicht direkt ersichtlich ist, ist dass bei beliebigen Grundvektoren nicht beliebige Symmetrien erstellt werden können. + Dies weil die Translationssymmetrie eines Kristalles weitere Symmetrien deutlich einschränkt. + +\begin{figure} + \centering + \includegraphics[]{papers/punktgruppen/figures/combine-symmetries} + \caption{ + Translations und Rotationssymmetrisches Kristallgitter + } + \label{fig:punktgruppen:rot-geometry} +\end{figure} + +\begin{satz} + Die Rotationssymmetrien eines Kristalls sind auf 2-fach, 3-fach, 4-fach und 6-fach beschränkt. + Mit anderen Worten: Es sind nur Drehwinkel von + 0\(^{\circ}\), + 60\(^{\circ}\), + 90\(^{\circ}\), + 120\(^{\circ}\) und + 180\(^{\circ}\) + m\"oglich. +\end{satz} + +\begin{proof} + In Abbildung \ref{fig:punktgruppen:rot-geometry} sehen wir Gitterpunkte und deren Zusammenhänge. + + \begin{itemize} + \item \(A\) ist unser erster Gitterpunkt. + + \item \(A'\) ist gegeben, weil wir \(A\) mit der Translation \(\vec{Q}\) um einen Grundvektor verschieben und wir wissen, + dass nach einer Translation wieder ein Gitterpunkt an der verschobenen Stelle sein muss. + \item \(B\) entsteht, weil wir die Rotationssymmetrie \(C_n\) auf den Punkt \(A\) anwenden. + Dadurch dreht sich das ganze Gitter um den Winkel \(360^\circ/n\). + Für uns bedeutet dies lediglich, dass unser zweiter Punkt \(A'\) abgedreht wird. + An der neuen Position \(B\) von \(A'\) muss also auch ein Punkt des Gitters sein, um die Rotationssymmetrie zu erfüllen. + \item \(B\) ist unser Name für diesen neuen Punkt. + Da auch die Eigenschaften des Kristallgitters periodisch mit dem Gitter sein müssen, dürfen wir \(C_n\) auch auf \(A'\) anwenden. + Also wenden wir \(C_n^{-1}\) auch auf \(A'\) an. + Dies dreht \(A\) auf einen neuen Punkt. + \item \(B'\) ist kein zufälliger Name für diesen neuen Punkt, denn wir wissen, dass zwischen allen Punkten eine Translationssymmetrie bestehen muss. + Die Translationssymmetrie zwischen \(B\) und \(B'\) ist hier als \(\vec{Q}'\) bezeichnet. + \end{itemize} + Mit den gegebenen Punkten lassen sich geometrische Folgerungen ziehen. + Wir beginnen, indem wir die Länge der Verschiebung \(|\vec{Q}| = Q\) setzen und \(|\vec{Q}'| = Q'\). + Aus Abbildung \ref{fig:punktgruppen:rot-geometry} ist ersichtlich, dass \(Q' = Q + 2x\). + Da \(\vec{Q}\) eine Translation um ein Grundvektor ist , muss \(\vec{Q}'\) ein ganzes Vielfaches von \(\vec{Q}\) sein. + Demnach auch die Länge + \[ + Q' = nQ = Q + 2x . + \] + Die Strecke \(x\) lässt sich auch mit Hilfe der Trigonometrie und dem angenommenen Rotationswinkel \(\alpha\) ausdrücken: + \[ + nQ = Q + 2Q\sin(\alpha - \pi/2) . + \] + Wir können durch \(Q\) dividieren um unabhängig von der Läge des Grundvektors zu werden, was auch Sinn macht, + da eine Skalierung eines Kristalles seine Symmetrieeigenschaften nicht tangiert. + Zusätzlich können wir den Sinusterm vereinfachen. + \[ + n = 1 - 2\cos\alpha \quad\iff\quad + \alpha = \cos^{-1}\left(\frac{1-n}{2}\right) + \] + Dies schränkt die möglichen Rotationssymmetrien auf + \( + \alpha \in \left\{ 0^\circ, 60^\circ, 90^\circ, 120^\circ, 180^\circ\right\} + \) +ein. +\end{proof} + +\begin{figure} + \centering + \includegraphics[height=6cm]{papers/punktgruppen/figures/stereographic-projections} + \caption{ + Stereografische Projektion einer \(C_{i}\) Symmetrie. Es wird eine Linie vom magentafarbenen Punkt auf der oberen Hälfte der Kugel zum Südpol gezogen. + Wo die Linie die Ebene schneidet (\(z = 0\)), ist die Projektion des Punktes. + Die Koordinaten der Projektionen sind einfach zu berechnen: ein Punkt auf eine Kugel mit Radius \(r\) mit den Koordinaten \(x, y, z,\) wird auf \(xr/(r + z), yr/(r + z)\) projiziert. + Für den orangefarbenen Punkt unterhalb des Äquators wird die Linie zum Nordpol gezogen und die Projektionsformel hat stattdessen einen Nenner von \(r - z\). + } + \label{fig:punktgruppen:stereographic-projections} +\end{figure} + +\subsection{Kristallklassen} + +Im vorausgegangenen Abschnitt wurde gezeigt, dass in einem zweidimensionalen Kristallgitter nicht alle Symmetrien möglich sind. + Mit weiteren ähnlichen Überlegungen kann gezeigt werden, dass Kristalle im dreidimensionalen Raum nur auf genau 32 Arten rein punktsymmetrische Symmetriegruppen bilden können. + Diese 32 möglichen Symmetriegruppen scheinen durchaus relevant zu sein, denn sie werden unter anderem als Kristallklassen bezeichnet. + Die 32 möglichen Kristallklassen sind auf Abbildung \ref{fig:punktgruppen:kristallklassen} zu sehen. + Die Darstellung von dreidimensionalen Punktsymmetrien wurde mit der stereographischen Projektion ermöglicht (siehe Abbildung \ref{fig:punktgruppen:stereographic-projections}), wobei die gestrichelten Klassen aus Gründen der Überschaubarkeit nicht im Detail gezeichnet wurden. + + +\begin{figure} + \centering + \includegraphics[]{papers/punktgruppen/figures/projections} + \caption{Kristallklassen mit zugehörigem Schönflies-Symbol} + \label{fig:punktgruppen:kristallklassen} +\end{figure} + +\subsubsection{Schönflies-Symbolik} + +Jede der 32 Kristallklassen auf der Abbildung \ref{fig:punktgruppen:kristallklassen} ist mit ihrem zugehörigen Schönflies-Symbol bezeichnet. + Die Schönflies-Symbolik stammt von dem Mathematiker Arthur Moritz Schönflies, welcher sich unter anderem mit der Klasifizierung der Punktgruppen auseinandergesetzt hat. + Er hat Untergruppen gebildet, welche als Grossbuchstaben in Abbildung \ref{fig:punktgruppen:kristallklassen} zu sehen sind. + \begin{itemize} + \item In Kristallen ist nur die Drehgruppe \(C\), Diedergruppe \(D\), Drehspiegelgruppe \(S\), Tetraedergruppe \(T\) und die Oktaedergruppe \(O\) zu finden. + Es gäbe auch die Ikosaedergruppe \(I\) und die Kugelgruppe \(K\), diese sind aber nicht kompatibel mit der Translationssymmetrie eines Kristalles und daher in der Kristallographie nicht relevant. + \item Dank Abschintt \ref{txt:punktgruppen:Translationssymmetrie} wissen wir, wieso in Abbildung \ref{fig:punktgruppen:kristallklassen} auf \(C\) nur ganz bestimmte Subskripte folgen. + Ist im Subskript eine Zahl \(n\) zu finden, steht dies für eine \(n\)-fache Symmetrie. + Daher darf \(C_5\) auf der Abbildung \ref{fig:punktgruppen:kristallklassen} nicht vorkommen, da \(360^\circ/5 = 72^\circ\) was nach Abschnitt \ref{txt:punktgruppen:Translationssymmetrie} keine mögliche Rotationssymmetrie eines Kristalles ist. + \item Sind im Subskript Buchstaben, definieren diese weitere Symmetrieeigenschaften der Klasse. + Für die folgenden Betrachtungen müssen wir uns Abbildung \ref{fig:punktgruppen:kristallklassen} genauer ansehen. + Dabei ist mit horizontal flach auf dem Papier gemeint. + \begin{itemize} + \item[\(h\)] bezeichnet eine horizontale Spiegelebene und + \item[\(v\)] eine Symmetrieebene, was eine Spiegelebene ist, die sich mit der Symmetrie mitdreht. + Zum Beispiel hat \(C_{3v}\) eine vertikale Spiegelebene, die durch die 3-fache Drehsymmetrie als 3 Spiegelebenen erscheinen. + \item[\(s\)] ist ein spezielles Subskript um die beiden Symmetriegruppen \(C_{1v}\) und \(C_{1h}\) zu beschreiben, weil \(C_{1v} = C_{1h}\). + \item[\(d\)] symbolisiert eine diagonale Symmetrieebene. + Es wird ersichtlich wie diagonal gemeint ist, wenn man \(D_2\) zu \(D_{2d}\) vergleicht. + \item[\(i\)] steht für ein Inversionszentrum. Hat eine Symmetriegruppe ein Inversionszentrum, bedeutet dies dass sie im Ursprung punktsymmetrisch ist. + \end{itemize} + \end{itemize} +Zu beachten ist jedoch, dass manche Symmetriegruppen mit mehreren Schönflies-Symbolen beschieben werden können. + \(C_{3i}\) beschreibt genau das selbe wie \(S_6\), da eine dreifache Rotationssymmetrie mit einem Inversionszentrum einer sechsfachen Drehspiegelsymmetrie entspricht. + + + + +%% vim:spell spelllang=de showbreak=.. breakindent linebreak: diff --git a/buch/papers/punktgruppen/figures/atoms-grid-force.pdf b/buch/papers/punktgruppen/figures/atoms-grid-force.pdf Binary files differnew file mode 100644 index 0000000..b3e6215 --- /dev/null +++ b/buch/papers/punktgruppen/figures/atoms-grid-force.pdf diff --git a/buch/papers/punktgruppen/figures/atoms-grid-still.pdf b/buch/papers/punktgruppen/figures/atoms-grid-still.pdf Binary files differnew file mode 100644 index 0000000..752014d --- /dev/null +++ b/buch/papers/punktgruppen/figures/atoms-grid-still.pdf diff --git a/buch/papers/punktgruppen/figures/atoms-piezo-force-horizontal.pdf b/buch/papers/punktgruppen/figures/atoms-piezo-force-horizontal.pdf Binary files differnew file mode 100644 index 0000000..313dc69 --- /dev/null +++ b/buch/papers/punktgruppen/figures/atoms-piezo-force-horizontal.pdf diff --git a/buch/papers/punktgruppen/figures/atoms-piezo-force-vertical.pdf b/buch/papers/punktgruppen/figures/atoms-piezo-force-vertical.pdf Binary files differnew file mode 100644 index 0000000..9a86b7c --- /dev/null +++ b/buch/papers/punktgruppen/figures/atoms-piezo-force-vertical.pdf diff --git a/buch/papers/punktgruppen/figures/atoms-piezo-still.pdf b/buch/papers/punktgruppen/figures/atoms-piezo-still.pdf Binary files differnew file mode 100644 index 0000000..83b6590 --- /dev/null +++ b/buch/papers/punktgruppen/figures/atoms-piezo-still.pdf diff --git a/buch/papers/punktgruppen/figures/combine-symmetries.pdf b/buch/papers/punktgruppen/figures/combine-symmetries.pdf Binary files differnew file mode 100644 index 0000000..6cd4e64 --- /dev/null +++ b/buch/papers/punktgruppen/figures/combine-symmetries.pdf diff --git a/buch/papers/punktgruppen/figures/lattice.pdf b/buch/papers/punktgruppen/figures/lattice.pdf Binary files differnew file mode 100644 index 0000000..712d6f4 --- /dev/null +++ b/buch/papers/punktgruppen/figures/lattice.pdf diff --git a/buch/papers/punktgruppen/figures/piezo.pdf b/buch/papers/punktgruppen/figures/piezo.pdf Binary files differnew file mode 100644 index 0000000..904250a --- /dev/null +++ b/buch/papers/punktgruppen/figures/piezo.pdf diff --git a/buch/papers/punktgruppen/figures/projections.pdf b/buch/papers/punktgruppen/figures/projections.pdf Binary files differnew file mode 100644 index 0000000..202fc8d --- /dev/null +++ b/buch/papers/punktgruppen/figures/projections.pdf diff --git a/buch/papers/punktgruppen/figures/stereographic-projections.pdf b/buch/papers/punktgruppen/figures/stereographic-projections.pdf Binary files differnew file mode 100644 index 0000000..7598265 --- /dev/null +++ b/buch/papers/punktgruppen/figures/stereographic-projections.pdf diff --git a/buch/papers/punktgruppen/figures/symmetric-shapes.pdf b/buch/papers/punktgruppen/figures/symmetric-shapes.pdf Binary files differnew file mode 100644 index 0000000..3a8d9dd --- /dev/null +++ b/buch/papers/punktgruppen/figures/symmetric-shapes.pdf diff --git a/buch/papers/punktgruppen/intro.tex b/buch/papers/punktgruppen/intro.tex index 10dea79..1293234 100644 --- a/buch/papers/punktgruppen/intro.tex +++ b/buch/papers/punktgruppen/intro.tex @@ -1,10 +1,26 @@ \section{Einleitung} -Es gibt viele möglichkeiten sich in Kristallen zu verlieren. -Auch wen man nur die Mathematischen möglichkeiten in betracht zieht, hat man noch viel zu viele Möglichkeiten sich mit kristallen zu beschäftigen. -In diesem Articel ist daher der Fokus "nur" auf die Symmetrie gelegt. -Im Abschitt über Symmetrien werden wir sehen, wie eine Symmetrie eines Objektes weit -2.ter versuch: -Die Kristallographie ist ein grosses Thema, Symmetrien auch. -Für beide bestehen schon bewährte Mathematische Modelle und Definitionen. -Die +Es gibt viele Möglichkeiten sich in Kristallen zu verlieren. +Auch wenn man nur die mathematischen Betrachtungsweisen berücksichtigt, +hat man noch viel zu viele Optionen sich mit Kristallen zu beschäftigen. +In diesem Kapitel wird daher der Fokus ``nur'' auf die Symmetrie gelegt. +Zu Beginn werden wir zeigen was eine Symmetrie ausmacht und +dass sie noch weit mehr in sich verbirgt als nur schön auszusehen. +Die vorgestellten Symmetrien sind äusserst gut geeignet, +um die Grundeigenschaften eines Kristalles zu beschreiben. +Mit etwas kniffligen geometrischen Überlegungen kann man zeigen, +was in der Welt der Kristallographie alles möglich ist oder nicht. +Einschränkungen in Kristallsymmetrien sind durchaus willkommen, +da dank ihnen sich die möglichen Kristallgitter in Grenzen halten +und sich kategorisieren lassen. +Kategorien sind nicht nur für einen besseren Überblick nützlich, +sondern kann man aus ihnen auch auf Physikalische Eigenschaften schliessen. +Als spannendes Beispiel: Die Piezoelektrizität. +Piezoelektrizität ist kein weit verbreiteter Begriff, +jedoch beschreibt er ein Effekt, ohne welchen diverse Altagsgegenständen nicht besonders nützlich wären. +Wie zum Beispiel sorgt er in den allermeisten Feuerzeugen für die Zündung. +Hiermit ist hoffentlich ein Funken Interesse geweckt +um sich mit dem scheinbar trivialen Thema der Symmetrie auseinander zu setzten. + + +%% vim:linebreak breakindent showbreak=.. spell spelllang=de: diff --git a/buch/papers/punktgruppen/main.tex b/buch/papers/punktgruppen/main.tex index d88e221..556fc2b 100644 --- a/buch/papers/punktgruppen/main.tex +++ b/buch/papers/punktgruppen/main.tex @@ -3,10 +3,12 @@ % % (c) 2020 Hochschule Rapperswil % -\chapter{Crystal M\rotatebox[origin=c]{180}{a}th\label{chapter:punktgruppen}} -\lhead{Crystal M\rotatebox[origin=c]{180}{a}th} +\newcommand{\flippedA}{\raisebox{\fontcharht\font`a}{\scalebox{-1}[-1]{a}}} + +\chapter[Crystal Math]{Crystal M\flippedA{}th\label{chapter:punktgruppen}} +\lhead{Crystal M\flippedA{}th} \begin{refsection} -\chapterauthor{Tim T\"onz, Naoki Pross} +\chapterauthor{Naoki Pross, Tim T\"onz} \input{papers/punktgruppen/intro} \input{papers/punktgruppen/symmetry} @@ -16,6 +18,8 @@ \nocite{punktgruppen:pinter-algebra} \nocite{punktgruppen:sands-crystal} \nocite{punktgruppen:lang-elt2} +\nocite{punktgruppen:ouchem} +\nocite{punktgruppen:restriction} \printbibliography[heading=subbibliography] \end{refsection} diff --git a/buch/papers/punktgruppen/piezo.tex b/buch/papers/punktgruppen/piezo.tex index 7ee4174..6ed7ee9 100644 --- a/buch/papers/punktgruppen/piezo.tex +++ b/buch/papers/punktgruppen/piezo.tex @@ -1 +1,81 @@ -\section{Piezoelektrizit\"at} +\section{Piezoelektrizität} +%% TODO: improve this paragraph +Die Piezoelektrizität ist die spannende Eigenschaft, dass gewisse Kristalle eine elektrische Spannung erzeugen, wenn mechanischer Druck auf sie ausgeübt wird. + +\begin{figure} + \centering + \includegraphics[]{papers/punktgruppen/figures/piezo} %das Efeld mit Naoki disskutieren, müssen sicher gehen, dass es mit jenen in Abbildung Piezo aufbau übereinstimmt + \caption{Piezoelektrisches Material in Ruhe und unter Druck} + \label{fig:punktgruppen:basicPiezo} +\end{figure} + +\subsection{Polarisierung} +Piezoelektrizität basiert darauf, dass zwischen den Oberflächen des Kristalles ein Ladungsungleichgewicht entsteht (siehe Abbildung\ref{fig:punktgruppen:basicPiezo}). +Dieses Ungleichgewicht resultiert, +weil durch den mechanischen Druck auf der einen Oberfläche des Kristalles positive Ionen näher an die Oberfläche gelangen, +wärend auf der gegenüberliegenden Seite dasselbe mit negativen Ionen passiert. +Es besitzt jedoch nicht jeder Kristall eine atomare Struktur welche sich unter Druck genau so verformt. +Der Aufbau und somit auch die Symmetrie des Kristalles sind daher relevant für die Entstehung dieses Effektes. + +\begin{figure} + \centering + \begin{tabular}{c |c} + \subfigure[][\label{fig:punktgruppen:atoms-piezo}]{\includegraphics{papers/punktgruppen/figures/atoms-piezo-still}} & + \subfigure[][\label{fig:punktgruppen:atoms-grid}]{\includegraphics{papers/punktgruppen/figures/atoms-grid-still}} \\ + \subfigure[][\label{fig:punktgruppen:atoms-piezo-fv}]{\includegraphics{papers/punktgruppen/figures/atoms-piezo-force-vertical}} + \hspace{2mm} + \subfigure[][\label{fig:punktgruppen:atoms-piezo-fh}]{\includegraphics{papers/punktgruppen/figures/atoms-piezo-force-horizontal}} + \hspace{3mm} & \hspace{3mm} + \subfigure[][\label{fig:punktgruppen:atoms-grid-f}]{\includegraphics{papers/punktgruppen/figures/atoms-grid-force}} \\ + \end{tabular} + \caption{ + Kristallstrukturen mit und ohne piezoelektrischer Eigenschaft. + } + \label{fig:punktgruppen:atomPiezo} +\end{figure} + +\subsection{Atomarer Aufbau} +Die Polarisation entsteht an der Oberfläche eines Kristalles, die Erklärung dazu finden wir jedoch im atomaren Aufbau. +Wir wollen dazu die verschiedenen Kristallstrukturen auf Abbildung \ref{fig:punktgruppen:atomPiezo} diskutieren. +In Abbildung \ref{fig:punktgruppen:atomPiezo} gilt für alle Strukturen, dass rote Kreise positive Ionen und blaue negative Ionen repräsentieren. +Struktur \subref{fig:punktgruppen:atoms-piezo} zeigt ein piezoelektrisches Material in Ruhe. +Struktur \subref{fig:punktgruppen:atoms-piezo-fv} ist dasselbe Kristallgitter, jedoch wird es senkrecht belastet. +Eingezeichnet ist auch das elektrische Feld, welches entsteht, weil die Ladungsträger ganz links und rechts weiter auseinander gedrückt werden. +Als Hilfe zur Vorstellung kann man \subref{fig:punktgruppen:atoms-piezo-fv} zwischen zwei leitende Platten setzen, so wird ersichtlich, +dass mit wachsendem Druck eine negative Ladung an die rechte Platte gedrückt wird, während sich die positiven Ionen weiter entfernen. +\par +Die Struktur \subref{fig:punktgruppen:atoms-grid} ist nicht piezoelektrisch. +Dies wird ersichtlich, wenn man \subref{fig:punktgruppen:atoms-grid} unter Druck setzt und sich die Struktur zu \subref{fig:punktgruppen:atoms-grid-f} verformt. +Setzt man \subref{fig:punktgruppen:atoms-grid-f} gedanklich auch zwischen zwei leitende Platten, +scheint es als würden rechts mehr positive Ionen in die Platte gedrückt werden und links umgekehrt. +Dies ist aber nicht mehr der Fall, wenn sich die Struktur nach oben und unten periodisch wiederholt. +\par +Struktur \subref{fig:punktgruppen:atoms-piezo-fh} zeigt \subref{fig:punktgruppen:atoms-piezo} in unter horizontaler Belastung. +Was zwischen \subref{fig:punktgruppen:atoms-piezo-fv} und \subref{fig:punktgruppen:atoms-piezo-fh} zu beobachten ist, +ist, dass die entstandene Ladungsdifferenz orthogonal zu der angelegten Kraft entsteht, +im Gegensatz zu \subref{fig:punktgruppen:atoms-piezo-fh}. +Daraus kann man schliessen, dass \subref{fig:punktgruppen:atoms-piezo} keine Rotationssymmetrie von \(90^\circ\) besitzen kann, +weil die Eigenschaften der Struktur sich bei einer \(90^\circ\) Drehung ändern. +Das Fehlen dieser Rotationssymmetrie bestätigt sich auch wenn \subref{fig:punktgruppen:atoms-piezo} als Hexagon betrachtet wird. + +\subsection{Punktsymmetrie} +Piezoelektrische Kristalle können nicht punktsymmetrisch sein. +Kristallgitter, bei welchen eine Punktspiegelung eine symmetrische Operation ist, können keine piezoelektrische Kristalle bilden. +Auf Abbildung \ref{fig:punktgruppen:atomPiezo} ist bewusst \subref{fig:punktgruppen:atoms-piezo} ein nicht punktsymmetrischer Kristall +mit einem punktsymmetrischen \subref{fig:punktgruppen:atoms-grid} verglichen worden. +Als vereinfachte Erklärung kann man sich wieder das Bild eines Kristalles wie \subref{fig:punktgruppen:atoms-piezo} vor Augen führen, +welcher unter Druck auf der einen Seite negative und der anderen Seite positive Ionen an seine Oberfläche verdrängt. +Spiegelt man nun den Kristall um den Gitterpunkt in der Mitte des Kristalles, so würden die negativen Ionen auf den positiven auf der anderen Seite landen, +was der Definition einer Symmetrie deutlich widerspricht. + +\subsection{Vom Kristall zum Feuer} +Piezoelektrizität hat durchaus Nutzen im Alltag. +Feuerzeuge welche nicht auf dem Prinzip beruhen einen Zündstein abzuschleifen, +sonder ohne Verschleiss auf Knopfdruck einen Zündfunken erzeugen, basieren auf dem Prinzip der Piezoelektrizität. +Drückt der Nutzende auf den Zündknopf, spannt sich eine Feder bis zu einer konfigurierten Spannung. +Wird vom Nutzenden fester zugedrückt entspannt sich die Feder schlagartig und beschleunigt mit der gespeicherten Energie ein Hammer, +welcher auf das Piezoelement aufschlägt. +Der augenblicklich hohe Druck sorgt an den Piezokontakten für eine eben so kurze aber hohe elektrische Spannung. +Die Spannung reicht aus, um eine Funkenstrecke zu überwinden und so eine entflammbares Gas zu entzünden. +Sollte der Leser eines Tages in die Situation geraten, in welcher er zwei verschiedene Kristalle vor sich hat und ein piezoelektrisches Feuerzeug bauen musst, wobei bekannt ist, dass der eine eine Punktsymmetrie aufweist, empfiehlt es sich, sich am anderen zu versuchen. + diff --git a/buch/papers/punktgruppen/references.bib b/buch/papers/punktgruppen/references.bib index 9edb8bd..05c803f 100644 --- a/buch/papers/punktgruppen/references.bib +++ b/buch/papers/punktgruppen/references.bib @@ -26,10 +26,29 @@ @book{punktgruppen:lang-elt2, title = {Elektrotechnik 2}, - author = {Hans-Dieter Lang}, + author = {Prof. Hans-Dieter Lang Ph.D}, publisher = {Fachhochschule Ostschweiz Rapperswil}, year = {2020}, month = {2}, inseries = {Vorlesungsskript zum Modul ELT}, } +@online{punktgruppen:ouchem, + title = {Symmetry in Crystallography}, + author = {Dept. of Chemistry \& Biochemistry{,} Chemical Crystallography Laboratory{,} University of Oklahoma}, + year = {2019}, + month = {11}, + day = {17}, + url = {http://archive.today/2021.07.22-083802/http://xrayweb.chem.ou.edu/notes/symmetry.html}, + urldate = {2021-07-22}, +} + +@online{punktgruppen:restriction, + title = {Structure of Materials: Allowed Rotational Symmetry in Crystals}, + author = {Prof. Silvija Gradecak-Garaj{,} Massachusetts Institute of Technology (MIT)}, + year = {2020}, + month = {4}, + day = {9}, + url = {https://www.youtube.com/watch?v=Ia2eHF1ZKoI}, + urldate = {2021-07-30}, +} diff --git a/buch/papers/punktgruppen/standalone.tex b/buch/papers/punktgruppen/standalone.tex new file mode 100644 index 0000000..3317318 --- /dev/null +++ b/buch/papers/punktgruppen/standalone.tex @@ -0,0 +1,30 @@ +\documentclass{book} + +\input{common/packages.tex} + +% additional packages used by the individual papers, add a line for +% each paper +\input{papers/common/addpackages.tex} + +% workaround for biblatex bug +\makeatletter +\def\blx@maxline{77} +\makeatother +\addbibresource{chapters/references.bib} + +% Bibresources for each article +\input{papers/common/addbibresources.tex} + +% make sure the last index starts on an odd page +\AtEndDocument{\clearpage\ifodd\value{page}\else\null\clearpage\fi} +\makeindex + +%\pgfplotsset{compat=1.12} +\setlength{\headheight}{15pt} % fix headheight warning +\DeclareGraphicsRule{*}{mps}{*}{} + +\begin{document} + \input{common/macros.tex} + \def\chapterauthor#1{{\large #1}\bigskip\bigskip} + \input{papers/punktgruppen/main.tex} +\end{document} diff --git a/buch/papers/punktgruppen/symmetry.tex b/buch/papers/punktgruppen/symmetry.tex index db05ff5..2067663 100644 --- a/buch/papers/punktgruppen/symmetry.tex +++ b/buch/papers/punktgruppen/symmetry.tex @@ -1,182 +1,136 @@ \section{Symmetrie} Das Wort Symmetrie ist sehr alt und hat sich seltsamerweise von seinem -ursprünglichen griechischen Wort -\(\mathrm{\sigma\nu\mu\mu\varepsilon\tau\rho\iota\alpha}\) -\footnote{\emph{Simmetr\'ia}: ein gemeinsames Mass habend, gleichmässig, -verhältnismässig} fast nicht verändert. In der Alltagssprache mag es ein -locker definierter Begriff sein, aber in der Mathematik hat Symmetrie eine sehr -präzise Bedeutung. +ursprünglichen griechischen Wort \(\mathrm{\Sigma\upsilon\mu\mu\varepsilon\tau\rho\iota\alpha}\)\footnote{\emph{Symmetr\'ia}: ein gemeinsames Mass habend, gleichmässig,verhältnismässig} fast nicht verändert. +In der Alltagssprache mag es ein locker definierter Begriff sein, in der Mathematik hat Symmetrie jedoch eine sehr präzise Bedeutung. \begin{definition}[Symmetrie] - Ein mathematisches Objekt wird als symmetrisch bezeichnet, wenn es unter einer - bestimmten Operation invariant ist. + Ein mathematisches Objekt wird als symmetrisch bezeichnet, wenn es unter einer bestimmten Operation invariant ist. \end{definition} +Die intuitivsten Beispiele kommen aus der Geometrie, daher werden wir mit einigen geometrischen Beispielen beginnen. +Wie wir jedoch später sehen werden, ist das Konzept der Symmetrie eigentlich viel allgemeiner. -Wenn der Leser noch nicht mit der Gruppentheorie in Berührung gekommen ist, ist -vielleicht nicht ganz klar, was eine Operation ist, aber die Definition sollte -trotzdem Sinn machen. Die Formalisierung dieser Idee wird bald kommen, aber -zunächst wollen wir eine Intuition aufbauen. - -\begin{figure}[h] - \centering - \begin{tikzpicture}[ - node distance = 2cm, - shapetheme/.style = { - very thick, draw = black, fill = magenta!20!white, - minimum size = 2cm, - }, - line/.style = {thick, draw = darkgray}, - axis/.style = {line, dashed}, - dot/.style = { - circle, draw = darkgray, fill = darkgray, - minimum size = 1mm, inner sep = 0, outer sep = 0, - }, - ] - - \node[ - shapetheme, - rectangle - ] (R) {}; - \node[dot] at (R) {}; - \draw[axis] (R) ++(-1.5, 0) to ++(3, 0) node[right] {\(\sigma\)}; - - \node[ - shapetheme, - regular polygon, - regular polygon sides = 5, - right = of R, - ] (Ps) {}; - \node[dot] (P) at (Ps) {}; - \draw[line, dotted] (P) to ++(18:1.5); - \draw[line, dotted] (P) to ++(90:1.5); - \draw[line, ->] (P) ++(18:1.2) - arc (18:90:1.2) node[midway, above right] {\(r, 72^\circ\)}; - - \node[ - shapetheme, - circle, right = of P - ] (Cs) {}; - \node[dot] (C) at (Cs) {}; - \draw[line, dotted] (C) to ++(1.5,0); - \draw[line, dotted] (C) to ++(60:1.5); - \draw[line, ->] (C) ++(1.2,0) - arc (0:60:1.2) node[midway, above right] {\(r, \alpha\)}; - - \end{tikzpicture} - \caption{ - Beispiele für geometrisch symmetrische Formen. - \label{fig:punktgruppen:geometry-example} - } +\begin{figure} + \centering + \includegraphics{papers/punktgruppen/figures/symmetric-shapes} + \caption{ + Beispiele für geometrisch symmetrische Formen. + \label{fig:punktgruppen:geometry-example} + } \end{figure} -Die intuitivsten Beispiele kommen aus der Geometrie, daher werden wir mit -einigen geometrischen Beispielen beginnen. Wie wir jedoch später sehen werden, -ist das Konzept der Symmetrie eigentlich viel allgemeiner. In Abbildung -\ref{fig:punktgruppen:geometry-example} haben wir einige Formen, die -offensichtlich symmetrisch sind. Zum Beispiel hat ein Quadrat viele Achsen, um -die es gedreht werden kann, ohne sein Aussehen zu verändern. Regelmässige -Polygone mit \(n\) Seiten sind gute Beispiele, um eine diskrete -Rotationssymmetrie zu veranschaulichen, was bedeutet, dass eine Drehung um -einen Punkt um einen bestimmten Winkel \(360^\circ/n\) sie unverändert lässt. -Das letzte Beispiel auf der rechten Seite ist eine unendliche -Rotationssymmetrie. Sie wird so genannt, weil es unendlich viele Werte für -\(\alpha \in \mathbb{R}\) gibt, die die Form unverändert lassen. Dies ist -hoffentlich ausreichend, um die Bedeutung hinter der Notation zu verstehen, die -nun eingeführt wird. +\subsection{Geometrische Symmetrien} + +In Abbildung \ref{fig:punktgruppen:geometry-example} haben wir einige Formen, die offensichtlich symmetrisch sind. +Zum Beispiel hat das Quadrat eine Gerade, an deren es gespiegelt werden kann, ohne sein Aussehen zu verändern. +Regelmässige Polygone mit \(n\) Seiten sind auch gute Beispiele, um eine diskrete Rotationssymmetrie zu veranschaulichen, was bedeutet, dass eine Drehung um einen Punkt um einen bestimmten Winkel \(360^\circ/n\) die Figur unverändert lässt. +Das letzte Beispiel auf der rechten Seite ist eine unendliche Rotationssymmetrie. Sie wird so genannt, weil es unendlich viele Werte für den Drehwinkel \(\alpha \in \mathbb{R}\) gibt, die die Form unverändert lassen. +Ein Objekt kann mehr als nur eine Symmetrie aufweisen. +Als Beispiel, kann das Quadrat in Abbildung \ref{fig:punktgruppen:geometry-example} nicht nur um \(\sigma\) sondern auch diagonal gespiegelt werden oder um \(90^\circ\) gedreht werden. +Fasst man die möglichen Symmetrien zusammen, entsteht eine Symmetriegruppe. \begin{definition}[Symmetriegruppe] - Sei \(g\) eine Operation, die ein mathematisches Objekt unverändert lässt. - Bei einer anderen Operation \(h\) definieren wir die Komposition \(h\circ g\) - als die Anwendung der Operationen nacheinander. Alle Operationen bilden unter - Komposition eine Gruppe, die Symmetriegruppe genannt wird. + Seien \(g\) und \(h\) umkehrbare Operationen, sogenannte Symmetrieoperationen, die ein mathematisches Objekt unverändert lassen. + Die Komposition \(h\circ g\) definieren wir als die Anwendung der Operationen nacheinander. + Alle möglichen Symmetrieoperationen bilden unter Komposition eine Gruppe, die Symmetriegruppe genannt wird. \end{definition} -Mit dem oben Gesagten können wir das \(n\)-Gon Beispiel formalisieren. Wenn wir -\(r\) eine Drehung von \(2\pi/n\) sein lassen, gibt es eine wohlbekannte Symmetriegruppe -\[ - C_n = \langle r \rangle - = \left\{\mathds{1}, r, r^2, \ldots, r^{n-1}\right\} - = \mathbb{Z}/n\mathbb{Z}, -\] -die Zyklische Gruppe heisst. Hier die Potenzen von \(r\) sind als wiederholte -Komposition gemeint, d.h. \(r^n = r\circ r \circ \cdots r\circ r\). Die -Schreibweise mit den spitzen Klammern wird als Erzeugendensystem bezeichnet. -Das liegt daran, dass alle Elemente der Symmetriegruppe aus Kombinationen einer -Teilmenge erzeugt werden, die als erzeugende Elemente bezeichnet werden. Die -Reflexionssymmetriegruppe ist nicht so interessant, da sie nur -\(\left\{\mathds{1}, \sigma\right\}\) enthält. Kombiniert man sie jedoch mit -der Rotation, erhält man die so genannte Diedergruppe -\[ - D_n = \langle r, \sigma : r^{n-1} = \sigma^2 = (\sigma r)^2 = \mathds{1} \rangle - = \left\{ - \mathds{1}, r, \ldots, r^{n-1}, \sigma, \sigma r, \ldots, \sigma r^{n-1} - \right\}. -\] -Diesmal muss die Generator-Notation die Beziehungen zwischen den beiden -Operationen beinhalten. Die ersten beiden sind leicht zu erkennen, für die -letzte empfehlen wir, sie an einem 2D-Quadrat auszuprobieren. +Eine Gruppe benötigt ausserdem auch zwingend ein neutrales Element, welches wir mit \(\mathds{1}\) bezeichnen. +Die Anwendung der neutralen Operation ist gleichbedeutend damit, alles unverändert zu lassen. +Weiterhin muss in einer Gruppe für jede Operation \(g\) auch eine inverse Operation \(g^{-1}\) vorkommen, die intuitiv rückgängig macht, was \(g\) getan hat. % intuitiv weglassen oder anstelle sinnbildlich +Somit ist \(\mathds{1}\) auch äquivalent dazu, eine Operation und dann ihre Inverse anzuwenden. + Die Definition der Symmetriegruppe ist mit der Kompositionsoperation gegeben, sie wird aber auch oft als Multiplikation geschrieben. +Das liegt daran, dass in manchen Fällen die Zusammensetzung algebraisch durch eine Multiplikation berechnet wird. +Die Verwendung einer multiplikativen Schreibweise ermöglicht es, einige Ausdrücke kompakter zu schreiben, z.B. +durch Verwendung von Potenzen \(r^n = r\circ r \circ \cdots r\circ r\) für eine wiederholte Komposition. -Wir haben nun unseren Operationen Symbole gegeben, mit denen es tatsächlich -möglich ist, eine nicht kommutative Algebra zu erstellen. Die naheliegende -Frage ist dann, könnte es sein, dass wir bereits etwas haben, das dasselbe tut? -Natürlich, ja. Dafür führen wir den Begriff der Darstellung ein. -\begin{definition}[Darstellung einer Gruppe, Gruppenhomomorphismus] - Seien \(G\) und \(H\) Gruppe mit unterschiedlicher Operation \(\diamond\) - bzw. \(\star\). Ein Homomorphismus\footnote{ Für eine ausführlichere - Diskussion siehe \S\ref{buch:grundlagen:subsection:gruppen} im Buch.} ist - eine Funktion \(f: G \to H\), so dass für jedes \(a, b \in G\) gilt - \(f(a\diamond b) = f(a) \star f(b)\). Man sagt, dass der Homomorphismus - \(f\) \(G\) in \(H\) transformiert, oder dass \(H\) eine Darstellung von - \(G\) ist. +\begin{definition}[Zyklische Untergruppe, Erzeuger] + Sei \(g\) ein Element einer Symmetriegruppe \(G\). + Alle möglichen Kompositionen von \(g\) und \(g^{-1}\) bilden eine sogenannte zyklische Untergruppe von \(G\), wobei \(g\) Erzeuger der Untergruppe genannt wird. + Die von \(g\) erzeugte Untergruppe \(\langle g \rangle = \left\{ g^k : k \in \mathbb{Z} \right\}\) wird mit spitzen Klammern bezeichnet. \end{definition} \begin{beispiel} - Die Elemente \(r^k \in C_n\), wobei \(0 < k < n\), stellen abstrakt eine - Drehung von \(2\pi k/n\) um den Ursprung dar. Die mit der Matrix - \[ - \Phi(r^k) = \begin{pmatrix} - \cos(2\pi k/n) & -\sin(2\pi k/n) \\ - \sin(2\pi k/n) & \cos(2\pi k/n) - \end{pmatrix} - \] - definierte Funktion von \(C_n\) nach \(O(2)\) ist eine Darstellung von - \(C_n\). In diesem Fall ist die erste Gruppenoperation die Komposition und - die zweite die Matrixmultiplikation. Man kann überprüfen, dass \(\Phi(r^2 - \circ r) = \Phi(r^2)\Phi(r)\). + Um die Syntax zu verstehen, betrachten wir eine durch \(a\) erzeugte Gruppe \(G = \langle a \rangle\). + Das bedeutet, dass \(G\) die Elemente \(a, aa, aaa, \ldots\) sowie \(a^{-1}, a^{-1}a^{-1}, \ldots\) und ein neutrales Element \(\mathds{1} = aa^{-1}\) enthält. \end{beispiel} \begin{beispiel} - Die Rotationssymmetrie des Kreises \(C_\infty\), mit einem unendlichen - Kontinuum von Werten \(\alpha \in \mathbb{R}\), entspricht perfekt dem - komplexen Einheitskreis. Der Homomorphismus \(\phi: C_\infty \to \mathbb{C}\) - ist durch die Eulersche Formel \(\phi(r) = e^{i\alpha}\) gegeben. + Als anschaulicheres Beispiel, können wir eine zyklische Untergruppe des \(n\)-Gon formalisieren. + Wir bezeichnen mit \(r\) eine Drehung im Gegenuhrzeigersinn von \(360^\circ/n\) um einen Punkt. + Diese Definition reicht aus, um die gesamte Symmetriegruppe + \[ + C_n = \langle r \rangle + = \left\{\mathds{1}, r, r^2, \ldots, r^{n-1}\right\} + \] + der Drehungen eines \(n\)-Gons zu erzeugen. + Das liegt daran, dass wir durch die mehrfache Verwendung von \(r\) jeden Winkel erzeugen k\"onnen, der die Rotationssymmetrie bewahrt. + In ähnlicher Weise, aber weniger interessant enthält die Reflexionssymmetriegruppe \(\langle\sigma\rangle\) nur \(\left\{\mathds{1}, \sigma\right\}\), weil \(\sigma^2 = \mathds{1}\). \end{beispiel} -Die Symmetrien, die wir bis jetzt besprochen haben, haben immer mindestens -einen Punkt unbesetzt gelassen. Im Fall der Rotation war es der Drehpunkt, bei -der Spiegelung die Achse. Dies ist jedoch keine Voraussetzung für eine -Symmetrie, da es Symmetrien gibt, die jeden Punkt zu einem anderen Punkt -verschieben können. Ein aufmerksamer Leser wird bemerken, dass die -unveränderten Punkte zum Eigenraum\footnote{Zur Erinnerung \(E_\lambda = -\mathrm{null}(\Phi - \lambda I)\), \(\vec{v}\in E_\lambda \implies \Phi \vec{v} -= \lambda\vec{v}\)} der Matrixdarstellung der Symmetrieoperation gehören. -Diesen Spezialfall, bei dem mindestens ein Punkt unverändert bleibt, nennt man -Punktsymmetrie. +Wenn wir diese Idee nun erweitern, können wir mit einem Erzeugendensystem +komplexere Strukturen aufbauen. + +%@Naoki Are you ok with my grammar fixes I'm not 101% shore how to use the word Erzeugendensystem? +\begin{definition}[Erzeugendensystem] + Jede disktrete Gruppe kann durch eines oder mehrere ihrer Elemente generiert werden. + Wir lassen \(g_1, g_2, \ldots, g_n\) erzeugenden Elemente einer Symmetriegruppe sein. + Da es mehrere Erzeuger gibt, müssen auch die sogenannten Definitionsgleichungen gegeben werden, die die Multiplikationstabelle vollständig definieren. + Die Gleichungen sind ebenfalls in den Klammern angegeben. + Die erzeugenden Elementen bauen zusammen mit den Definitionsgleichungen ein Erzeugendensystem. +\end{definition} +\begin{beispiel} + Wir werden nun alle Symmetrien eines \(n\)-Gons beschreiben, was bedeutet, dass wir die Operationen \(r\) und \(\sigma\) kombinieren. + Die Definitionsgleichungen sind \(r^n = \mathds{1}\), \(\sigma^2 = \mathds{1}\) und \((\sigma r)^2 = \mathds{1}\). + Die ersten beiden sind ziemlich offensichtlich. + Die letzte wird oft auch als Inversion bezeichnet, weil die Anwendung von \(\sigma r\) dasselbe ist wie das Ziehen einer Linie von einem Punkt, die durch den Ursprung geht, und das Verschieben des Punktes auf die andere Seite des Nullpunkts. + Wenn man dies zweimal macht, geht man zurück zum Anfangspunkt. + Daraus ergibt sich die so genannte Diedergruppe + \begin{align*} + D_n &= \langle r, \sigma : r^n = \sigma^2 = (\sigma r)^2 = \mathds{1} \rangle \\ + &= \left\{ + \mathds{1}, r, \ldots, r^{n-1}, \sigma, \sigma r, \ldots, \sigma r^{n-1} + \right\}. + \end{align*} +\end{beispiel} + +Die Symmetrieoperationen, die wir bis jetzt besprochen haben, haben immer mindestens einen Punkt gehabt, der wieder auf sich selbst abgebildet wird. +Im Fall der Rotation war es der Drehpunkt, bei der Spiegelung die Punkte der Spiegelachse. +Dies ist jedoch keine Voraussetzung für eine Symmetrie, da es Symmetrien gibt, die jeden Punkt zu einem anderen Punkt verschieben können. + Diesen Spezialfall, bei dem immer mindestens ein Punkt unverändert bleibt, nennt man Punktsymmetrie. \begin{definition}[Punktgruppe] - Wenn jede Operation in einer Symmetriegruppe die Eigenschaft hat, mindestens - einen Punkt unverändert zu lassen, sagt man, dass die Symmetriegruppe eine - Punktgruppe ist. + Wenn es einen Punkt gibt, der von jeder Gruppenoperation unverändert gelassen wird, ist die Symmetriegruppe eine Punktgruppe. \end{definition} -Um das Konzept zu illustrieren, werden wir den umgekehrten Fall diskutieren: -eine Symmetrie, die keine Punktsymmetrie ist, die aber in der Physik sehr -nützlich ist, nämlich die Translationssymmetrie. Von einem mathematischen -Objekt \(U\) wird gesagt, dass es eine Translationssymmetrie \(Q(x) = x + a\) -hat, wenn es die Gleichung -\[ - U(x) = U(Q(x)) = U(x + a), -\] -für ein gewisses \(a\), erfüllt. Zum Beispiel besagt das erste Newtonsche -Gesetz, dass ein Objekt, auf das keine Kraft einwirkt, eine -zeitranslationsinvariante Geschwindigkeit hat, d.h. wenn \(\vec{F} = \vec{0}\) -dann \(\vec{v}(t) = \vec{v}(t + \tau)\). -% \subsection{Sch\"onflies notation} +\subsection{Algebraische Symmetrien} +Wir haben nun unseren Operationen Symbole gegeben, mit denen es tatsächlich möglich ist, Gleichungen zu schreiben. +Die anschliessende Frage ist dann, ob wir bereits mathematische Objekte haben, mit denen wir Gleichungen schreiben, die sich auf die gleiche Weise verhalten. +Die Antwort lautet natürlich ja. +Um es formaler zu beschreiben, werden wir einige Begriffe einführen. +\begin{definition}[Gruppenhomomorphismus] + \(G\) und \(H\) seien Gruppen mit unterschiedlichen Operationen \(\diamond\) bzw. + \(\star\). + Ein Homomorphismus\footnote{ Für eine ausführlichere Diskussion siehe \S\ref{buch:grundlagen:subsection:gruppen} im Buch.} ist eine Funktion \(f: G \to H\), so dass für jedes \(a, b \in G\) gilt \(f(a\diamond b) = f(a) \star f(b)\). + Man sagt, dass der Homomorphismus \(f\) \(G\) in \(H\) transformiert. +\end{definition} +\begin{beispiel} + Die Rotationssymmetrie des Kreises \(C_\infty\), mit einem unendlichen Kontinuum von Werten \(\alpha \in \mathbb{R}\), entspricht perfekt dem komplexen Einheitskreis. + Der Homomorphismus \(\phi: C_\infty \to \mathbb{C}\) ist durch die Eulersche Formel \(\phi(r) = e^{i\alpha}\) gegeben. +\end{beispiel} -% vim:ts=2 sw=2 spell spelllang=de: +\begin{definition}[Darstellung einer Gruppe] + Die Darstellung einer Gruppe ist ein Homomorphismus, der eine Symmetriegruppe auf eine Menge von Matrizen abbildet. + \[ + \Phi: G \to \operatorname{GL}_n(\mathbb{R}). + \] + Äquivalent kann man sagen, dass ein Element aus der Symmetriegruppe auf einen Vektorraum \(V\) wirkt, indem man definiert \(\Phi : G \times V \to V\). +\end{definition} +\begin{beispiel} + Die Elemente \(r^k \in C_n\), wobei \(0 < k < n\), stellen abstrakt eine Drehung von \(2\pi k/n\) um den Ursprung dar. + Die mit der Matrix + \[ + \Phi(r^k) = \begin{pmatrix} + \cos(2\pi k/n) & -\sin(2\pi k/n) \\ + \sin(2\pi k/n) & \cos(2\pi k/n) + \end{pmatrix} + \] + definierte Funktion von \(C_n\) nach \(O(2)\) ist eine Darstellung von \(C_n\). + In diesem Fall ist die erste Gruppenoperation die Komposition und die zweite die Matrixmultiplikation. + Man kann überprüfen, dass \(\Phi(r^2 \circ r) = \Phi(r^2)\Phi(r)\). +\end{beispiel} diff --git a/buch/papers/punktgruppen/tikz/atoms-grid-force.tex b/buch/papers/punktgruppen/tikz/atoms-grid-force.tex new file mode 100644 index 0000000..05742cf --- /dev/null +++ b/buch/papers/punktgruppen/tikz/atoms-grid-force.tex @@ -0,0 +1,42 @@ +\documentclass[tikz]{standalone} +\usepackage{amsmath} +\usepackage{times} +\usepackage{txfonts} + +\usetikzlibrary{arrows} +\usetikzlibrary{intersections} +\usetikzlibrary{math} +\usetikzlibrary{positioning} +\usetikzlibrary{arrows.meta} +\usetikzlibrary{shapes.misc} +\usetikzlibrary{calc} + +\begin{document} + \begin{tikzpicture}[ + >=latex, + node distance = 2mm, + charge/.style = { + circle, draw = black, thick, + minimum size = 5mm + }, + positive/.style = { fill = red!50 }, + negative/.style = { fill = blue!50 }, + ] + + \matrix[nodes = { charge }, row sep = 5mm, column sep = 1cm] { + \node[positive] (NW) {}; & \node[negative] (N) {}; & \node [positive] (NE) {}; \\ + \node[negative] (W) {}; & \node[positive] {}; & \node [negative] (E) {}; \\ + \node[positive] (SW) {}; & \node[negative] (S) {}; & \node [positive] (SE) {}; \\ + }; + + \foreach \d in {NW, N, NE} { + \draw[orange, very thick, <-] (\d) to ++(0,.7); + } + + \foreach \d in {SW, S, SE} { + \draw[orange, very thick, <-] (\d) to ++(0,-.7); + } + + \draw[gray, dashed] (W) to (N) to (E) to (S) to (W); + \end{tikzpicture} +\end{document} diff --git a/buch/papers/punktgruppen/tikz/atoms-grid-still.tex b/buch/papers/punktgruppen/tikz/atoms-grid-still.tex new file mode 100644 index 0000000..4e43856 --- /dev/null +++ b/buch/papers/punktgruppen/tikz/atoms-grid-still.tex @@ -0,0 +1,33 @@ +\documentclass[tikz]{standalone} +\usepackage{amsmath} +\usepackage{times} +\usepackage{txfonts} + +\usetikzlibrary{arrows} +\usetikzlibrary{intersections} +\usetikzlibrary{math} +\usetikzlibrary{positioning} +\usetikzlibrary{arrows.meta} +\usetikzlibrary{shapes.misc} +\usetikzlibrary{calc} + +\begin{document} + \begin{tikzpicture}[ + >=latex, + node distance = 2mm, + charge/.style = { + circle, draw = black, thick, + minimum size = 5mm + }, + positive/.style = { fill = red!50 }, + negative/.style = { fill = blue!50 }, + ] + + \matrix[nodes = { charge }, row sep = 8mm, column sep = 8mm] { + \node[positive] {}; & \node[negative] (N) {}; & \node [positive] {}; \\ + \node[negative] (W) {}; & \node[positive] {}; & \node [negative] (E) {}; \\ + \node[positive] {}; & \node[negative] (S) {}; & \node [positive] {}; \\ + }; + \draw[gray, dashed] (W) to (N) to (E) to (S) to (W); + \end{tikzpicture} +\end{document} diff --git a/buch/papers/punktgruppen/tikz/atoms-piezo-force-horizontal.tex b/buch/papers/punktgruppen/tikz/atoms-piezo-force-horizontal.tex new file mode 100644 index 0000000..e4c3f93 --- /dev/null +++ b/buch/papers/punktgruppen/tikz/atoms-piezo-force-horizontal.tex @@ -0,0 +1,47 @@ +\documentclass[tikz]{standalone} +\usepackage{amsmath} +\usepackage{times} +\usepackage{txfonts} + +\usetikzlibrary{arrows} +\usetikzlibrary{intersections} +\usetikzlibrary{math} +\usetikzlibrary{positioning} +\usetikzlibrary{arrows.meta} +\usetikzlibrary{shapes.misc} +\usetikzlibrary{calc} + +\begin{document} + \begin{tikzpicture}[ + >=latex, + node distance = 2mm, + charge/.style = { + circle, draw = black, thick, + minimum size = 5mm + }, + positive/.style = { fill = red!50 }, + negative/.style = { fill = blue!50 }, + ] + + \node[charge, positive, yshift= 2.5mm] (C1) at ( 60:1.5cm) {}; + \node[charge, negative, yshift= 2.5mm] (C2) at (120:1.5cm) {}; + \node[charge, positive, xshift= 2.5mm] (C3) at (180:1.5cm) {}; + \node[charge, negative, yshift=-2.5mm] (C4) at (240:1.5cm) {}; + \node[charge, positive, yshift=-2.5mm] (C5) at (300:1.5cm) {}; + \node[charge, negative, xshift=-2.5mm] (C6) at (360:1.5cm) {}; + + \draw[black] (C1) to (C2) to (C3) to (C4) to (C5) to (C6) to (C1); + % \draw[gray, dashed] (C2) to (C4) to (C6) to (C2); + + \draw[orange, very thick, <-] (C6) to ++(.7,0); + \draw[orange, very thick, <-] (C3) to ++(-.7,0); + + \node[black] (E) {\(\vec{E}_p\)}; + \begin{scope}[node distance = .5mm] + \node[blue!50, right = of E] {\(-\)}; + \node[red!50, left = of E] {\(+\)}; + \end{scope} + % \draw[gray, thick, dotted] (E) to ++(0,2); + % \draw[gray, thick, dotted] (E) to ++(0,-2); + \end{tikzpicture} +\end{document} diff --git a/buch/papers/punktgruppen/tikz/atoms-piezo-force-vertical.tex b/buch/papers/punktgruppen/tikz/atoms-piezo-force-vertical.tex new file mode 100644 index 0000000..892ab42 --- /dev/null +++ b/buch/papers/punktgruppen/tikz/atoms-piezo-force-vertical.tex @@ -0,0 +1,52 @@ +\documentclass[tikz]{standalone} +\usepackage{amsmath} +\usepackage{times} +\usepackage{txfonts} + +\usetikzlibrary{arrows} +\usetikzlibrary{intersections} +\usetikzlibrary{math} +\usetikzlibrary{positioning} +\usetikzlibrary{arrows.meta} +\usetikzlibrary{shapes.misc} +\usetikzlibrary{calc} + +\begin{document} + \begin{tikzpicture}[ + >=latex, + node distance = 2mm, + charge/.style = { + circle, draw = black, thick, + minimum size = 5mm + }, + positive/.style = { fill = red!50 }, + negative/.style = { fill = blue!50 }, + ] + + \node[charge, positive, yshift=-2.5mm] (C1) at ( 60:1.5cm) {}; + \node[charge, negative, yshift=-2.5mm] (C2) at (120:1.5cm) {}; + \node[charge, positive, xshift=-2.5mm] (C3) at (180:1.5cm) {}; + \node[charge, negative, yshift= 2.5mm] (C4) at (240:1.5cm) {}; + \node[charge, positive, yshift= 2.5mm] (C5) at (300:1.5cm) {}; + \node[charge, negative, xshift= 2.5mm] (C6) at (360:1.5cm) {}; + + \draw[black] (C1) to (C2) to (C3) to (C4) to (C5) to (C6) to (C1); + % \draw[gray, dashed] (C2) to (C4) to (C6) to (C2); + + \foreach \d in {C1, C2} { + \draw[orange, very thick, <-] (\d) to ++(0,.7); + } + + \foreach \d in {C4, C5} { + \draw[orange, very thick, <-] (\d) to ++(0,-.7); + } + + \node[black] (E) {\(\vec{E}_p\)}; + \begin{scope}[node distance = .5mm] + \node[red!50, right = of E] {\(+\)}; + \node[blue!50, left = of E] {\(-\)}; + \end{scope} + % \draw[gray, thick, dotted] (E) to ++(0,2); + % \draw[gray, thick, dotted] (E) to ++(0,-2); + \end{tikzpicture} +\end{document} diff --git a/buch/papers/punktgruppen/tikz/atoms-piezo-still.tex b/buch/papers/punktgruppen/tikz/atoms-piezo-still.tex new file mode 100644 index 0000000..2eb78ba --- /dev/null +++ b/buch/papers/punktgruppen/tikz/atoms-piezo-still.tex @@ -0,0 +1,34 @@ +\documentclass[tikz]{standalone} +\usepackage{amsmath} +\usepackage{times} +\usepackage{txfonts} + +\usetikzlibrary{arrows} +\usetikzlibrary{intersections} +\usetikzlibrary{math} +\usetikzlibrary{positioning} +\usetikzlibrary{arrows.meta} +\usetikzlibrary{shapes.misc} +\usetikzlibrary{calc} + +\begin{document} + \begin{tikzpicture}[ + >=latex, + node distance = 2mm, + charge/.style = { + circle, draw = black, thick, + minimum size = 5mm + }, + positive/.style = { fill = red!50 }, + negative/.style = { fill = blue!50 }, + ] + + \foreach \x/\t [count=\i] in {60/positive, 120/negative, 180/positive, 240/negative, 300/positive, 360/negative} { + \node[charge, \t] (C\i) at (\x:1.5cm) {}; + } + + \draw[black] (C1) to (C2) to (C3) to (C4) to (C5) to (C6) to (C1); + \node[circle, draw=gray, fill=gray, outer sep = 0, inner sep = 0, minimum size = 3mm] {}; + % \draw[gray, dashed] (C2) to (C4) to (C6) to (C2); + \end{tikzpicture} +\end{document} diff --git a/buch/papers/punktgruppen/tikz/combine-symmetries.tex b/buch/papers/punktgruppen/tikz/combine-symmetries.tex new file mode 100644 index 0000000..fa669ae --- /dev/null +++ b/buch/papers/punktgruppen/tikz/combine-symmetries.tex @@ -0,0 +1,57 @@ +\documentclass[tikz]{standalone} +\usepackage{amsmath} +\usepackage{times} +\usepackage{txfonts} + +\usetikzlibrary{arrows} +\usetikzlibrary{intersections} +\usetikzlibrary{math} +\usetikzlibrary{positioning} +\usetikzlibrary{arrows.meta} +\usetikzlibrary{shapes.misc} +\usetikzlibrary{calc} + +\begin{document} +\begin{tikzpicture}[ + >=latex, + dot/.style = { + draw, circle, thick, black, fill = gray!40!white, + minimum size = 2mm, + inner sep = 0pt, + outer sep = 1mm, + }, + ] + + \node[dot] (A1) at (0,0) {}; + \node[below left] at (A1) {\(A\)}; + + \node[dot] (A2) at (2.5,0) {}; + \node[below right] at (A2) {\(A'\)}; + + \draw[red!80!black, thick, ->] + (A1) to node[midway, below] {\(\vec{Q}\)} (A2); + + \node[dot] (B1) at (120:2.5) {}; + \node[above left] at (B1) {\(B\)}; + + \draw[green!70!black, thick, ->] + (A1) ++(.5,0) arc (0:120:.5) + node[midway, above, xshift=1mm] {\(C_n\)}; + \draw[red!80!black, dashed, thick, ->] (A1) to (B1); + + \node[dot] (B2) at ($(A2)+(60:2.5)$) {}; + \node[above right] at (B2) {\(B'\)}; + + \draw[green!70!black, thick, dashed, ->] + (A2) ++(-.5,0) arc (180:60:.5); + \draw[red!80!black, dashed, thick, ->] (A2) to (B2); + + \draw[cyan!40!blue, thick, ->] + (B1) to node[above, midway] {\(\vec{Q}'\)} (B2); + + \draw[gray, dashed, thick] (A1) to (A1 |- B1) node (Xl) {}; + \draw[gray, dashed, thick] (A2) to (A2 |- B2) node (Xr) {}; + \node[above left, xshift=-2mm] at (Xl) {\(x\)}; + \node[above right, xshift= 2mm] at (Xr) {\(x\)}; +\end{tikzpicture} +\end{document} diff --git a/buch/papers/punktgruppen/tikz/lattice.tex b/buch/papers/punktgruppen/tikz/lattice.tex new file mode 100644 index 0000000..a6b1876 --- /dev/null +++ b/buch/papers/punktgruppen/tikz/lattice.tex @@ -0,0 +1,40 @@ +\documentclass[tikz]{standalone} +\usepackage{amsmath} +\usepackage{times} +\usepackage{txfonts} + +\usetikzlibrary{arrows} +\usetikzlibrary{intersections} +\usetikzlibrary{math} +\usetikzlibrary{positioning} +\usetikzlibrary{arrows.meta} +\usetikzlibrary{shapes.misc} +\usetikzlibrary{calc} + +\begin{document} +\begin{tikzpicture}[ + >=latex, + dot/.style = { + draw, circle, thick, black, fill = gray!40!white, + minimum size = 2mm, + inner sep = 0pt, + outer sep = 1mm, + }, + ] + + \begin{scope} + \clip (-2,-2) rectangle (7,2); + \foreach \y in {-7,-6,...,7} { + \foreach \x in {-7,-6,...,7} { + \node[dot, xshift=3mm*\y] (N\x\y) at (\x, \y) {}; + } + } + \end{scope} + \draw[black, thick] (-2, -2) rectangle (7,2); + + \draw[red!80!black, thick, ->] + (N00) to node[midway, below] {\(\vec{a}_1\)} (N10); + \draw[cyan!80!black, thick, ->] + (N00) to node[midway, left] {\(\vec{a}_2\)} (N01); +\end{tikzpicture} +\end{document} diff --git a/buch/papers/punktgruppen/tikz/piezo-atoms.tex b/buch/papers/punktgruppen/tikz/piezo-atoms.tex new file mode 100644 index 0000000..1811392 --- /dev/null +++ b/buch/papers/punktgruppen/tikz/piezo-atoms.tex @@ -0,0 +1,122 @@ +\documentclass[tikz]{standalone} +\usepackage{amsmath} +\usepackage{times} +\usepackage{txfonts} + +\usetikzlibrary{arrows} +\usetikzlibrary{intersections} +\usetikzlibrary{math} +\usetikzlibrary{positioning} +\usetikzlibrary{arrows.meta} +\usetikzlibrary{shapes.misc} +\usetikzlibrary{calc} + +\begin{document} + \begin{tikzpicture}[ + >=latex, + node distance = 2mm, + charge/.style = { + circle, draw = black, thick, + minimum size = 5mm + }, + positive/.style = { fill = red!50 }, + negative/.style = { fill = blue!50 }, + ] + + \node[font = {\large\bfseries}, align = center] (title) at (5.5,0) {Mit und Ohne\\ Symmetriezentrum}; + + \begin{scope} + \matrix[nodes = { charge }, row sep = 8mm, column sep = 8mm] { + \node[positive] {}; & \node[negative] (N) {}; & \node [positive] {}; \\ + \node[negative] (W) {}; & \node[positive] {}; & \node [negative] (E) {}; \\ + \node[positive] {}; & \node[negative] (S) {}; & \node [positive] {}; \\ + }; + \draw[gray, dashed] (W) to (N) to (E) to (S) to (W); + \end{scope} + + \begin{scope}[xshift=11cm] + \foreach \x/\t [count=\i] in {60/positive, 120/negative, 180/positive, 240/negative, 300/positive, 360/negative} { + \node[charge, \t] (C\i) at (\x:1.5cm) {}; + } + + \draw[black] (C1) to (C2) to (C3) to (C4) to (C5) to (C6) to (C1); + \node[circle, draw=gray, fill=gray, outer sep = 0, inner sep = 0, minimum size = 3mm] {}; + % \draw[gray, dashed] (C2) to (C4) to (C6) to (C2); + \end{scope} + + %% + \node[below = of title] {Polarisation Feld \(\vec{E}_p\)}; + + %% hex with vertical pressure + \begin{scope}[xshift=11cm, yshift=-4.5cm] + \node[charge, positive, yshift=-2.5mm] (C1) at ( 60:1.5cm) {}; + \node[charge, negative, yshift=-2.5mm] (C2) at (120:1.5cm) {}; + \node[charge, positive, xshift=-2.5mm] (C3) at (180:1.5cm) {}; + \node[charge, negative, yshift= 2.5mm] (C4) at (240:1.5cm) {}; + \node[charge, positive, yshift= 2.5mm] (C5) at (300:1.5cm) {}; + \node[charge, negative, xshift= 2.5mm] (C6) at (360:1.5cm) {}; + + \draw[black] (C1) to (C2) to (C3) to (C4) to (C5) to (C6) to (C1); + % \draw[gray, dashed] (C2) to (C4) to (C6) to (C2); + + \foreach \d in {C1, C2} { + \draw[orange, very thick, <-] (\d) to ++(0,.7); + } + + \foreach \d in {C4, C5} { + \draw[orange, very thick, <-] (\d) to ++(0,-.7); + } + + \node[black] (E) {\(\vec{E}_p\)}; + \begin{scope}[node distance = .5mm] + \node[red!50, right = of E] {\(+\)}; + \node[blue!50, left = of E] {\(-\)}; + \end{scope} + % \draw[gray, thick, dotted] (E) to ++(0,2); + % \draw[gray, thick, dotted] (E) to ++(0,-2); + \end{scope} + + %% square with vertical pressure + \begin{scope}[yshift=-4.5cm] + \matrix[nodes = { charge }, row sep = 5mm, column sep = 1cm] { + \node[positive] (NW) {}; & \node[negative] (N) {}; & \node [positive] (NE) {}; \\ + \node[negative] (W) {}; & \node[positive] {}; & \node [negative] (E) {}; \\ + \node[positive] (SW) {}; & \node[negative] (S) {}; & \node [positive] (SE) {}; \\ + }; + + \foreach \d in {NW, N, NE} { + \draw[orange, very thick, <-] (\d) to ++(0,.7); + } + + \foreach \d in {SW, S, SE} { + \draw[orange, very thick, <-] (\d) to ++(0,-.7); + } + + \draw[gray, dashed] (W) to (N) to (E) to (S) to (W); + \end{scope} + + %% hex with horizontal pressure + \begin{scope}[xshift=5.5cm, yshift=-4.5cm] + \node[charge, positive, yshift= 2.5mm] (C1) at ( 60:1.5cm) {}; + \node[charge, negative, yshift= 2.5mm] (C2) at (120:1.5cm) {}; + \node[charge, positive, xshift= 2.5mm] (C3) at (180:1.5cm) {}; + \node[charge, negative, yshift=-2.5mm] (C4) at (240:1.5cm) {}; + \node[charge, positive, yshift=-2.5mm] (C5) at (300:1.5cm) {}; + \node[charge, negative, xshift=-2.5mm] (C6) at (360:1.5cm) {}; + + \draw[black] (C1) to (C2) to (C3) to (C4) to (C5) to (C6) to (C1); + % \draw[gray, dashed] (C2) to (C4) to (C6) to (C2); + + \draw[orange, very thick, <-] (C6) to ++(.7,0); + \draw[orange, very thick, <-] (C3) to ++(-.7,0); + + \node[black] (E) {\(\vec{E}_p\)}; + \begin{scope}[node distance = .5mm] + \node[blue!50, right = of E] {\(-\)}; + \node[red!50, left = of E] {\(+\)}; + \end{scope} + % \draw[gray, thick, dotted] (E) to ++(0,2); + % \draw[gray, thick, dotted] (E) to ++(0,-2); + \end{scope} + \end{tikzpicture} +\end{document} diff --git a/buch/papers/punktgruppen/tikz/piezo.tex b/buch/papers/punktgruppen/tikz/piezo.tex new file mode 100644 index 0000000..6542f26 --- /dev/null +++ b/buch/papers/punktgruppen/tikz/piezo.tex @@ -0,0 +1,73 @@ +\documentclass[tikz]{standalone} +\usepackage{amsmath} +\usepackage{times} +\usepackage{txfonts} + +\usetikzlibrary{arrows} +\usetikzlibrary{intersections} +\usetikzlibrary{math} +\usetikzlibrary{positioning} +\usetikzlibrary{arrows.meta} +\usetikzlibrary{shapes.misc} +\usetikzlibrary{calc} + +\begin{document} +\begin{tikzpicture}[ + >=latex, + ] + \begin{scope}[ + node distance = 0cm + ] + \node[ + rectangle, fill = gray!20!white, + minimum width = 3cm, minimum height = 2cm, + ] (body) {\(\vec{E}_p = \vec{0}\)}; + + \node[ + draw, rectangle, thick, black, fill = red!50, + minimum width = 3cm, minimum height = 1mm, + above = of body + ] (pos) {}; + + \node[ + draw, rectangle, thick, black, fill = blue!50, + minimum width = 3cm, minimum height = 1mm, + below = of body + ] (neg) {}; + + \draw[black, very thick, -Circle] (pos.east) to ++ (1,0) node (p) {}; + \draw[black, very thick, -Circle] (neg.east) to ++ (1,0) node (n) {}; + + \draw[black, thick, ->] (p) to[out = -70, in = 70] node[midway, right] {\(U = 0\)} (n); + \end{scope} + \begin{scope}[ + node distance = 0cm, + xshift = 7cm + ] + \node[ + rectangle, fill = gray!20!white, + minimum width = 3cm, minimum height = 1.5cm, + ] (body) {\(\vec{E}_p \neq \vec{0}\)}; + + \node[ + draw, rectangle, thick, black, fill = red!50, + minimum width = 3cm, minimum height = 1mm, + above = of body + ] (pos) {}; + + \node[ + draw, rectangle, thick, black, fill = blue!50, + minimum width = 3cm, minimum height = 1mm, + below = of body + ] (neg) {}; + + \draw[orange, very thick, <-] (pos.north) to node[near end, right] {\(\vec{F}\)} ++(0,1); + \draw[orange, very thick, <-] (neg.south) to node[near end, right] {\(\vec{F}\)} ++(0,-1); + + \draw[black, very thick, -Circle] (pos.east) to ++ (1,0) node (p) {}; + \draw[black, very thick, -Circle] (neg.east) to ++ (1,0) node (n) {}; + + \draw[black, thick, ->] (p) to[out = -70, in = 70] node[midway, right] {\(U > 0\)} (n); + \end{scope} +\end{tikzpicture} +\end{document} diff --git a/buch/papers/punktgruppen/tikz/projections.tex b/buch/papers/punktgruppen/tikz/projections.tex new file mode 100644 index 0000000..e8a4a2e --- /dev/null +++ b/buch/papers/punktgruppen/tikz/projections.tex @@ -0,0 +1,258 @@ +\documentclass[tikz]{standalone} +\usepackage{amsmath} +\usepackage{times} +\usepackage{txfonts} + +\usetikzlibrary{arrows} +\usetikzlibrary{intersections} +\usetikzlibrary{math} +\usetikzlibrary{positioning} +\usetikzlibrary{arrows.meta} +\usetikzlibrary{shapes.misc} +\usetikzlibrary{calc} + +\begin{document} +\begin{tikzpicture}[ + >=latex, + classcirc/.style = { + draw = gray, thick, circle, + minimum size = 12mm, + inner sep = 0pt, outer sep = 0pt, + }, + classlabel/.style = { + below right = 5mm + }, + round/.style = { + draw = orange, thick, circle, + minimum size = 1mm, + inner sep = 0pt, outer sep = 0pt, + }, + cross/.style = { + cross out, draw = magenta, thick, + minimum size = 1mm, + inner sep = 0pt, outer sep = 0pt + }, + ] + \matrix [row sep = 3mm, column sep = 0mm] { + \node[classcirc] (C1) {} node[classlabel] {\(C_{1}\)}; & + \node[classcirc] (C2) {} node[classlabel] {\(C_{2}\)}; & + \node[classcirc] (C3) {} node[classlabel] {\(C_{3}\)}; & + \node[classcirc] (Ci) {} node[classlabel] {\(C_{i}\)}; & + + \node[classcirc] (Cs) {} node[classlabel] {\(C_{s}\)}; & + \node[classcirc] (C3i) {} node[classlabel] {\(C_{3i}\)}; & + \node[classcirc] (C2h) {} node[classlabel] {\(C_{2h}\)}; & + \node[classcirc] (D2) {} node[classlabel] {\(D_{2}\)}; \\ + + \node[classcirc] (D3d) {} node[classlabel] {\(C_{3v}\)}; & + \node[classcirc] (C2v) {} node[classlabel] {\(C_{2v}\)}; & + \node[classcirc] (D2h) {} node[classlabel] {\(D_{2h}\)}; & + \node[classcirc] (D3) {} node[classlabel] {\(D_{3}\)}; & + + \node[classcirc] (C4) {} node[classlabel] {\(C_{4}\)}; & + \node[classcirc] (C6) {} node[classlabel] {\(C_{6}\)}; & + \node[classcirc] (D3dP) {} node[classlabel] {\(D_{3d}\)}; & + \node[classcirc] (S4) {} node[classlabel] {\(S_{4}\)}; \\ + + \node[classcirc] (S3) {} node[classlabel] {\(S_{3}\)}; & + \node[classcirc, dashed] (T) {} node[classlabel] {\(T_{}\)}; & + \node[classcirc] (C4h) {} node[classlabel] {\(C_{4h}\)}; & + \node[classcirc] (C6h) {} node[classlabel] {\(C_{6h}\)}; & + + \node[classcirc, dashed] (Th) {} node[classlabel] {\(T_{h}\)}; & + \node[classcirc] (C4v) {} node[classlabel] {\(C_{4v}\)}; & + \node[classcirc] (C6v) {} node[classlabel] {\(C_{6v}\)}; & + \node[classcirc, dashed] (Td) {} node[classlabel] {\(T_{d}\)}; \\ + + \node[classcirc] (D2d) {} node[classlabel] {\(D_{2d}\)}; & + \node[classcirc] (D3h) {} node[classlabel] {\(D_{3h}\)}; & + \node[classcirc, dashed] (O) {} node[classlabel] {\(O_{}\)}; & + \node[classcirc] (D4) {} node[classlabel] {\(D_{4}\)}; & + + \node[classcirc] (D6) {} node[classlabel] {\(D_{6}\)}; & + \node[classcirc, dashed] (Oh) {} node[classlabel] {\(O_{h}\)}; & + \node[classcirc] (D4h) {} node[classlabel] {\(D_{4h}\)}; & + \node[classcirc] (D6h) {} node[classlabel] {\(D_{6h}\)}; \\ + }; + + + \node[cross] at ($(C1)+(4mm,0)$) {}; + + + \node[cross] at ($(C2)+(4mm,0)$) {}; + \node[cross] at ($(C2)-(4mm,0)$) {}; + + + \node[cross] at ($(C3)+( 0:4mm)$) {}; + \node[cross] at ($(C3)+(120:4mm)$) {}; + \node[cross] at ($(C3)+(240:4mm)$) {}; + + + \node[cross] at ($(Ci)+(4mm,0)$) {}; + \node[round] at ($(Ci)-(4mm,0)$) {}; + + + \node[cross] at ($(Cs)+(4mm,0)$) {}; + \node[round] at ($(Cs)+(4mm,0)$) {}; + + + \node[cross] at ($(C3i)+( 0:4mm)$) {}; + \node[cross] at ($(C3i)+(120:4mm)$) {}; + \node[cross] at ($(C3i)+(240:4mm)$) {}; + \node[round] at ($(C3i)+( 60:4mm)$) {}; + \node[round] at ($(C3i)+(180:4mm)$) {}; + \node[round] at ($(C3i)+(300:4mm)$) {}; + + + \node[cross] at ($(C2h)+(4mm,0)$) {}; + \node[cross] at ($(C2h)-(4mm,0)$) {}; + \node[round] at ($(C2h)+(4mm,0)$) {}; + \node[round] at ($(C2h)-(4mm,0)$) {}; + + + \node[cross] at ($(D2)+( 20:4mm)$) {}; + \node[cross] at ($(D2)+(200:4mm)$) {}; + \node[round] at ($(D2)+(160:4mm)$) {}; + \node[round] at ($(D2)+(340:4mm)$) {}; + + + \foreach \x in {0, 120, 240} { + \node[cross] at ($(D3d)+({\x+15}:4mm)$) {}; + \node[cross] at ($(D3d)+({\x-15}:4mm)$) {}; + } + + + \foreach \x in {0, 180} { + \node[cross] at ($(C2v)+({\x+15}:4mm)$) {}; + \node[cross] at ($(C2v)+({\x-15}:4mm)$) {}; + } + + + \foreach \x in {0, 180} { + \node[cross] at ($(D2h)+({\x+15}:4mm)$) {}; + \node[cross] at ($(D2h)+({\x-15}:4mm)$) {}; + \node[round] at ($(D2h)+({\x+15}:4mm)$) {}; + \node[round] at ($(D2h)+({\x-15}:4mm)$) {}; + } + + + \foreach \x in {0, 120, 240} { + \node[cross] at ($(D3)+({\x+15}:4mm)$) {}; + \node[round] at ($(D3)+({\x-15}:4mm)$) {}; + } + + + \foreach \x in {0, 90, 180, 270} { + \node[cross] at ($(C4)+(\x:4mm)$) {}; + } + + + \foreach \x in {0, 60, 120, 180, 240, 300} { + \node[cross] at ($(C6)+(\x:4mm)$) {}; + } + + + \foreach \x in {0, 120, 240} { + \node[cross] at ($(D3dP)+({\x+15}:4mm)$) {}; + \node[cross] at ($(D3dP)+({\x-15}:4mm)$) {}; + \node[round] at ($(D3dP)+({\x+15+60}:4mm)$) {}; + \node[round] at ($(D3dP)+({\x-15+60}:4mm)$) {}; + } + + + \node[cross] at ($(S4)+(4mm,0)$) {}; + \node[cross] at ($(S4)-(4mm,0)$) {}; + \node[round] at ($(S4)+(0,4mm)$) {}; + \node[round] at ($(S4)-(0,4mm)$) {}; + + + \foreach \x in {0, 120, 240} { + \node[cross] at ($(S3)+(\x:4mm)$) {}; + \node[round] at ($(S3)+(\x:4mm)$) {}; + } + + + %% TODO: T + + + \foreach \x in {0, 90, 180, 270} { + \node[cross] at ($(C4h)+(\x:4mm)$) {}; + \node[round] at ($(C4h)+(\x:4mm)$) {}; + } + + + \foreach \x in {0, 60, 120, 180, 240, 300} { + \node[cross] at ($(C6h)+(\x:4mm)$) {}; + \node[round] at ($(C6h)+(\x:4mm)$) {}; + } + + + %% TODO: Th + + + \foreach \x in {0, 90, 180, 270} { + \node[cross] at ($(C4v)+(\x+15:4mm)$) {}; + \node[cross] at ($(C4v)+(\x-15:4mm)$) {}; + } + + + + \foreach \x in {0, 60, 120, 180, 240, 300} { + \node[cross] at ($(C6v)+(\x+10:4mm)$) {}; + \node[cross] at ($(C6v)+(\x-10:4mm)$) {}; + } + + + %% TODO: Td + + + \foreach \x in {0, 180} { + \node[cross] at ($(D2d)+({\x+15}:4mm)$) {}; + \node[round] at ($(D2d)+({\x-15}:4mm)$) {}; + + \node[round] at ($(D2d)+({\x+15+90}:4mm)$) {}; + \node[cross] at ($(D2d)+({\x-15+90}:4mm)$) {}; + } + + + \foreach \x in {0, 120, 240} { + \node[cross] at ($(D3h)+({\x+15}:4mm)$) {}; + \node[cross] at ($(D3h)+({\x-15}:4mm)$) {}; + \node[round] at ($(D3h)+({\x+15}:4mm)$) {}; + \node[round] at ($(D3h)+({\x-15}:4mm)$) {}; + } + + + %% TODO: O + + + \foreach \x in {0, 90, 180, 270} { + \node[cross] at ($(D4)+({\x+15}:4mm)$) {}; + \node[round] at ($(D4)+({\x-15}:4mm)$) {}; + } + + \foreach \x in {0, 60, 120, 180, 240, 300} { + \node[cross] at ($(D6)+({\x+10}:4mm)$) {}; + \node[round] at ($(D6)+({\x-10}:4mm)$) {}; + } + + + % TODO Oh + + + \foreach \x in {0, 90, 180, 270} { + \node[cross] at ($(D4h)+(\x+15:4mm)$) {}; + \node[cross] at ($(D4h)+(\x-15:4mm)$) {}; + \node[round] at ($(D4h)+(\x+15:4mm)$) {}; + \node[round] at ($(D4h)+(\x-15:4mm)$) {}; + } + + + \foreach \x in {0, 60, 120, 180, 240, 300} { + \node[cross] at ($(D6h)+({\x+10}:4mm)$) {}; + \node[cross] at ($(D6h)+({\x-10}:4mm)$) {}; + \node[round] at ($(D6h)+({\x+10}:4mm)$) {}; + \node[round] at ($(D6h)+({\x-10}:4mm)$) {}; + } +\end{tikzpicture} +\end{document} diff --git a/buch/papers/punktgruppen/tikz/stereographic-projections.tex b/buch/papers/punktgruppen/tikz/stereographic-projections.tex new file mode 100644 index 0000000..7d612fb --- /dev/null +++ b/buch/papers/punktgruppen/tikz/stereographic-projections.tex @@ -0,0 +1,108 @@ +\documentclass[tikz]{standalone} +\usepackage{amsmath} +\usepackage{times} +\usepackage{txfonts} +\usepackage{tikz-3dplot} + +\usetikzlibrary{arrows} +\usetikzlibrary{intersections} +\usetikzlibrary{math} +\usetikzlibrary{positioning} +\usetikzlibrary{arrows.meta} +\usetikzlibrary{shapes.misc} +\usetikzlibrary{calc} + +\begin{document} + +\tdplotsetmaincoords{60}{130} +\pgfmathsetmacro{\l}{2} + +\begin{tikzpicture}[ + >=latex, + tdplot_main_coords, + dot/.style = { + black, fill = black, circle, + outer sep = 0, inner sep = 0, + minimum size = 1mm + }, + round/.style = { + draw = orange, thick, circle, + minimum size = 1mm, + inner sep = 0pt, outer sep = 0pt, + }, + cross/.style = { + cross out, draw = magenta, thick, + minimum size = 1mm, + inner sep = 0pt, outer sep = 0pt + }, + ] + + % origin + \coordinate (O) at (0,0,0); + + % poles + \coordinate (NP) at (0,0,\l); + \coordinate (SP) at (0,0,-\l); + + % axis + % \draw[->] (O) -- ++(1.5*\l,0,0); + % \draw[->] (O) -- ++(0,1.5*\l,0); + % \draw[->] (O) -- ++(0,0,1.5*\l); + + % gray unit circle + \tdplotdrawarc[gray, thick]{(O)}{\l}{0}{360}{}{}; + \draw[gray, dotted] (-\l, 0, 0) to (\l, 0, 0); + \draw[gray, dotted] (0, -\l, 0) to (0, \l, 0); + + % meridians + \foreach \phi in {0, 30, 60, ..., 150}{ + \tdplotsetrotatedcoords{\phi}{90}{0}; + \tdplotdrawarc[lightgray, dashed, tdplot_rotated_coords]{(O)}{\l}{0}{360}{}{}; + } + + % dot above and its projection + \pgfmathsetmacro{\phi}{120} + \pgfmathsetmacro{\theta}{60} + + \pgfmathsetmacro{\px}{cos(\phi)*sin(\theta)*\l} + \pgfmathsetmacro{\py}{sin(\phi)*sin(\theta)*\l} + \pgfmathsetmacro{\pz}{cos(\theta)*\l}) + + \coordinate (A) at (\px,\py,\pz); + \coordinate (Aproj) at ({\px * \l / (\l + \pz)}, {\py * \l / (\l + \pz)}, 0); + + % dot below and its projection + \pgfmathsetmacro{\phi}{-60} + \pgfmathsetmacro{\theta}{120} + + \pgfmathsetmacro{\px}{cos(\phi)*sin(\theta)*\l} + \pgfmathsetmacro{\py}{sin(\phi)*sin(\theta)*\l} + \pgfmathsetmacro{\pz}{cos(\theta)*\l}) + + \coordinate (B) at (\px,\py,\pz); + \coordinate (Bproj) at ({\px * \l / (\l - \pz)}, {\py * \l / (\l - \pz)}, 0); + + % projection lines + \draw[gray] (A) to (SP); + \draw[gray] (SP) to (O) to (Aproj); + + \draw[gray] (B) to (NP); + \draw[gray] (NP) to (O) to (Bproj); + + % dots + \draw (O) node[dot] {}; + \draw (SP) node[dot] {}; + \draw (NP) node[dot] {}; + \draw (A) node[dot, fill = magenta, minimum size = 1.5mm] {}; + \draw (B) node[dot, fill = orange, minimum size = 1.5mm] {}; + + % projection markers + \draw[very thick, magenta] + (Aproj) ++(.15,0) to ($(Aproj)+(-.15, 0)$) + (Aproj) ++(0,.15) to ($(Aproj) +(0, -.15)$); + + \tdplotdrawarc[orange, very thick]{(Bproj)}{.1}{0}{360}{}{}; + +\end{tikzpicture} +\end{document} +% vim:ts=2 sw=2 et: diff --git a/buch/papers/punktgruppen/tikz/symmetric-shapes.tex b/buch/papers/punktgruppen/tikz/symmetric-shapes.tex new file mode 100644 index 0000000..688fb61 --- /dev/null +++ b/buch/papers/punktgruppen/tikz/symmetric-shapes.tex @@ -0,0 +1,60 @@ +\documentclass[tikz]{standalone} +\usepackage{amsmath} +\usepackage{times} +\usepackage{txfonts} + +\usetikzlibrary{arrows} +\usetikzlibrary{shapes.geometric} +\usetikzlibrary{intersections} +\usetikzlibrary{math} +\usetikzlibrary{positioning} +\usetikzlibrary{arrows.meta} +\usetikzlibrary{shapes.misc} +\usetikzlibrary{calc} + +\begin{document} + \begin{tikzpicture}[ + >=latex, + node distance = 2cm, + shapetheme/.style = { + very thick, draw = black, fill = magenta!20!white, + minimum size = 2cm, + }, + line/.style = {thick, draw = darkgray}, + axis/.style = {line, dashed}, + dot/.style = { + circle, draw = darkgray, fill = darkgray, + minimum size = 1mm, inner sep = 0, outer sep = 0, + }, + ] + + \node[ + shapetheme, rectangle + ] (R) {}; + \node[dot] at (R) {}; + \draw[axis] (R) ++(-1.5, 0) to ++(3, 0) node[right] {\(\sigma\)}; + + \node[ + shapetheme, + regular polygon, + regular polygon sides = 5, + right = of R, + ] (Ps) {}; + \node[dot] (P) at (Ps) {}; + \draw[line, dotted] (P) to ++(18:1.5); + \draw[line, dotted] (P) to ++(90:1.5); + \draw[line, ->] (P) ++(18:1.2) + arc (18:90:1.2) node[midway, above right] {\(r, 72^\circ\)}; + + \node[ + shapetheme, + circle, right = of P + ] (Cs) {}; + \node[dot] (C) at (Cs) {}; + \draw[line, dotted] (C) to ++(1.5,0); + \draw[line, dotted] (C) to ++(60:1.5); + \draw[line, ->] (C) ++(1.2,0) + arc (0:60:1.2) node[midway, above right] {\(r, \alpha\)}; + + \end{tikzpicture} +\end{document} diff --git a/buch/papers/reedsolomon/Makefile b/buch/papers/reedsolomon/Makefile index 9c96e88..25fd98b 100644 --- a/buch/papers/reedsolomon/Makefile +++ b/buch/papers/reedsolomon/Makefile @@ -4,6 +4,52 @@ # (c) 2020 Prof Dr Andreas Mueller # -images: - @echo "no images to be created in reedsolomon" +SOURCES := \ + anwendungen.tex \ + codebsp.tex \ + decmitfehler.tex \ + decohnefehler.tex \ + dtf.tex \ + einleitung.tex \ + endlichekoerper.tex \ + hilfstabellen.tex \ + idee.tex \ + main.tex \ + packages.tex \ + rekonstruktion.tex \ + restetabelle1.tex \ + restetabelle2.tex \ + standalone.tex \ + zusammenfassung.tex + +TIKZFIGURES := \ + tikz/polynom2.tex \ + tikz/plotfft.tex + +FIGURES := $(patsubst tikz/%.tex, figures/%.pdf, $(TIKZFIGURES)) + + +all: images standalone + + +.PHONY: images +images: $(FIGURES) + +figures/%.pdf: tikz/%.tex + mkdir -p figures + pdflatex --output-directory=figures $< + +.PHONY: standalone +standalone: standalone.tex $(SOURCES) $(FIGURES) + mkdir -p standalone + cd ../..; \ + pdflatex \ + --halt-on-error \ + --shell-escape \ + --output-directory=papers/reedsolomon/standalone \ + papers/reedsolomon/standalone.tex; + cd standalone; \ + bibtex standalone; \ + makeindex standalone; + diff --git a/buch/papers/reedsolomon/Makefile.inc b/buch/papers/reedsolomon/Makefile.inc index 6a676f8..ea51f7a 100644 --- a/buch/papers/reedsolomon/Makefile.inc +++ b/buch/papers/reedsolomon/Makefile.inc @@ -6,9 +6,17 @@ dependencies-reedsolomon = \ papers/reedsolomon/packages.tex \ papers/reedsolomon/main.tex \ - papers/reedsolomon/references.bib \ - papers/reedsolomon/teil0.tex \ - papers/reedsolomon/teil1.tex \ - papers/reedsolomon/teil2.tex \ - papers/reedsolomon/teil3.tex + papers/reedsolomon/einleitung.tex \ + papers/reedsolomon/idee.tex \ + papers/reedsolomon/dtf.tex \ + papers/reedsolomon/endlichekoerper.tex \ + papers/reedsolomon/codebsp.tex \ + papers/reedsolomon/decohnefehler.tex \ + papers/reedsolomon/decmitfehler.tex \ + papers/reedsolomon/rekonstruktion.tex \ + papers/reedsolomon/zusammenfassung.tex \ + papers/reedsolomon/anwendungen.tex \ + papers/reedsolomon/hilfstabellen.tex \ + papers/reedsolomon/references.bib + diff --git a/buch/papers/reedsolomon/RS presentation/images/polynom1 - Kopie.tex b/buch/papers/reedsolomon/RS presentation/images/polynom1 - Kopie.tex new file mode 100644 index 0000000..038e93e --- /dev/null +++ b/buch/papers/reedsolomon/RS presentation/images/polynom1 - Kopie.tex @@ -0,0 +1,33 @@ +% polynome1 +%------------------- +\documentclass[tikz]{standalone} +\usepackage{amsmath} +\usepackage{times} +\usepackage{txfonts} +\usepackage{pgfplots} +\usepackage{csvsimple} +\usetikzlibrary{arrows,intersections,math} +\newcommand{\teiler}{40} +\begin{document} + + +\begin{tikzpicture}[>=latex,thick] + + \begin{axis}[ + axis lines = left, + xlabel = \(x\), + ylabel = {\(f(x)\)}, + ] + %Below the red parabola is defined + \addplot[ + color=blue, + ] + coordinates { + (0,23.1)(10,27.5)(20,32)(30,37.8)(40,44.6)(60,61.8)(80,83.8)(100,114) + }; + %Here the blue parabola is defined + + \end{axis} +\end{tikzpicture} +\end{document} + diff --git a/buch/papers/reedsolomon/anwendungen.tex b/buch/papers/reedsolomon/anwendungen.tex new file mode 100644 index 0000000..b9b1d69 --- /dev/null +++ b/buch/papers/reedsolomon/anwendungen.tex @@ -0,0 +1,168 @@ +% +% anwendungen.tex -- Anwendungen des Reed-Solomon-Codes +% +% (c) 2021 Michael Steiner, Hochschule Rapperswil +% +\section{Anwendungen des Reed-Solomon-Codes + \label{reedsolomon:section:anwendung}} +\rhead{Anwendungen} + +In den vorherigen Abschnitten haben wir betrachtet, wie Reed-Solomon-Codes in der Theorie funktionieren. +In diesem Abschnitt werden wir einige Anwendungen vorstellen, bei denen ein Reed-Solomon-Code zum Einsatz kommt. + +Dabei teilen all diese Anwendungen das gleiche Problem: Die Daten können nur durch einen (höchst Wahrscheinlichen) fehlerbehafteten Kanal empfangen werden. Es gibt keine andere Methode, an diese Daten zu kommen, als über diesen Kanal. + +In der Netzwerktechnik zum Beispiel ist es üblich, dass bei Paketverluste oder beschädigt empfangene Datenpaketen diese einfach noch einmal innert wenigen Millisekunden angefordert werden können. +In der Raumfahrt ist dies nicht möglich, da aufgrund der beschränkten Speichermöglichkeit die gesammelten Daten so rasch wie möglich zur Erde gesendet werden. +Diese Daten wiederum brauchen aufgrund der grossen Distanz Stunden bis die Daten beim Empfänger ankommen. +Fehlerhafte Daten kann also auf Grund der Zeitverzögerung nicht mehr angefordert werden. + +Bei CDs oder DVDs gibt es zwar kein zeitliches Problem, jedoch erschweren Kratzer, Verschmutzungen oder Produktionsfehler das Lesen einer solchen Disk. +Da vor allem Produktionsfehler und Kratzer irreversibel sind und die Disk nicht nach jedem Kratzer ersetzt werden muss, so wird die korrekte Ausgabe der gespeicherten Information durch die Fehlerkorrektur sichergestellt. + +Einen ähnlichen Ansatz verfolgen QR-Codes, wobei die Information auch dann noch gelesen werden kann wenn der Code nicht mehr vollständig vorhanden ist. + +%Wie man sieht, eignen sich Reed-Solomon-Codes vor allem für Anwendungen, bei der die Informationen nicht auf einen Anderen Weg beschafft werden kann. +% +% +%, bei denen die Wahrscheinlichkeit hoch ist, dass während der Übertragung +% +%Es ist deshalb umso wichtiger die Daten Codiert zu lesen um so gleich die Lesefehler zu korrigieren. +% +% da aufgrund der grossen Distanz Stunden vergehen können bis gesendete Daten auf der Erde empfangen werden kann. +% + +Obwohl alle diese Codes nach dem gleichen Prinzip arbeiten gibt es starke Unterschiede in deren Funktionsweise. +Dies kommt vor allem daher, da die Codes nur Ressourcen zur Verfügung haben, die von der Hardware bereitstellt wird, auf denen die Codes implementiert wurden. +Diese Codes bedienen sich daher verschiedener Tricks und Optimierungen um möglichst effizient zu arbeiten. + +Um die Fähigkeit eines verwendeten Reed-Solomon-Codes zu beschreiben verwendet man die Notation ($n$,$k$), wobei $n$ die Grösse des Nachrichtenblocks angibt und $k$ die Anzahl der Stellen, die für Nutzdaten gebraucht werden können. + +%Dies kommt vor allem daher, da diese Codes an ihre Hardware gebunden sind, auf denen sie implementiert worden sind. +%Deshalb wurden diese Codes stark optimiert damit sie möglichst Effizient arbeiten können. +% +%Um diese Hardware möglichst effizient zu nutzen wurden gewisse mathematische tricks angewendet um den Code möglichst effizient zu nutzen. +% +% um mit maximaler Effizienz zu arbeiten. +%Es überrascht daher nicht, dass vor allem ältere Codes im binären Körper $\mathbb{F}_{2}$ arbeiten. +% +% um den Code mit maximaler Effizienz zu nutzen. +% +%Alle diese Anwendungen verfügen über eigene spezifizierten Eigenschaften. +% +%, wobei bei allen dieser Anwendungen jeweils eine unterschiedliche Version des Codes implementiert wurden. +% +%Dies kommt vor allem daher, da diese Codes immer an ihre dementsprechende Hardware gebunden sind, auf denen sie implementiert wurden um den Code mit maximaler Effizienz zu nutzen. +% +% eigene Version des Codes implementiert haben. +% +%Bei einer Technischen Umsetzung eines solchen Codes werden wir auf eine reihe neuer Probleme stossen wie Ressourceneffizienz, Laufzeitoptimierung, usw. +% +%Hinzu kommt, dass für verschiedene Anwendungen verschiedene Versionen des Reed-Solomon-Codes zur Anwendung kommen. +% +%Nachfolgend werden wir ein paar dieser Anwendungen Vorstellen, da sich herausstellt, dass Reed-Solomon-Code sehr +% +%Als letzte Frage stellt sich jetzt nur noch, wo diese Codes eingesetzt werden. +% +%Bisher haben wir +% +%In den letzten abschnitten haben wir uns ausführlich die Funktionsweise des Reed-Solomon-Codes angeschaut. In diesem Abschnitt möchten wir dem Leser ein paar bekannte beispiele vorstellen, in denen Reed-Solomon-Codes zum einsatz kommen. Es sei jedoch angemerkt, dass diese Anwendungen in der Umsetzung oft ein wenig anderst funktionieren als hier vorgestellt. Dies wurde vor allem wegen technischen optimierungen realisiert. (technische tricks und finessen), von der logik jedoch sehr stark an unserem Beispiel orientieren + +\subsection{Raumfahrt} +Obwohl Reed-Solomon-Codes bereits in den 1960er entwickelt wurden fanden sie erstmals Anwendung in der Voyager Raumsonde der NASA. Die Daten der zwei im Jahre 1977 gestarteten Sonden (siehe Abbildung \ref{fig:voyager}) werden mit einem ($255$,$233$)-Code +Codiert. +Der Nachrichtenblock hat somit eine Länge von $255$ Zahlen, wovon $233$ als Nutzlast zur Verfügung stehen. +Damit ist es möglich bis zu $11$ Fehler im Nachrichtenblock zu korrigieren. +Der Codierte Nachrichtenblock wird in kleinere Blöcke aufgeteilt, mit einem Faltungscode erneut Codiert und anschliessend gesendet. +Ein Faltungscode ist wie ein Reed-Solomon-Code in der Lage Fehler zu korrigieren, +Codiert seine Information aber auf eine andere weise. Aus jedem unterteilten Block wird vor dem Versenden ein Paritätsbit erzeugt und dem Block angehängt. Anhand diesem Paritätsbit überprüft der Empfänger, ob bei der Übertragung der Block beschädigt wurde. Ist dies der Fall, wird der Block bei der Decodierung nicht beachtet. Diese so entstandenen ``Lücken'' im Datenstrom werden wiederum vom Reed-Solomon-Code korrigiert. Dieses Zusammenspiel beider Codes garantiert so eine hohe Robustheit gegenüber Übertragungsfeher. + +% +% Funktioniert aber nach einem ganz anderen Prinzip. +% +%Durch diese doppelte Codierung wird eine äusserst hohe Übertragungssicherheit garantiert. +% +%Dabei steht die Zahl 255 für grösse des Nachrichtenblocks, der die Anzahl 233 +% +% +% \textcolor{red}{benötigt das weitere Erklärungen, wie z.b. 255: grösse Nachrichtenblock, 233: anzahl der nutzbaren daten ?} zusammen mit einem konventionellen Faltungscode übertragen. Eine von der Sonde gesendete Nachricht hat eine Blockgrösse von 255 Zeichen, wovon 233 für die Nutzdaten gebraucht werden können. Dieser Code ist somit in der Lage 11 Fehler in einem Nachrichtenblock zu korrigieren. +% +% Die zwei im Jahre 1977 gestarteten Sonden senden Daten mit der Hilfe eines RS(255,233)-Code für die digitalen Bilder sowie einem konventionellen Faltungscode. +% +% +%mit der Erde mit einem RS(255,233)-Code für die digitalen Bilder sowie einem konventionellen Faltungscode. + +\begin{figure} + \centering + \includegraphics[width=0.5\textwidth]{papers/reedsolomon/images/Voyager_Sonde} + \caption{Mit einer Entfernung von über 22.8 Milliarden Kilometer ist die Voyager 1 Raumsonde das am weitesten entfernte, von Menschen erschaffene Objekt. Obwohl ihre Schwestersonde Voyager 2 zuerst ins All gestartet wurde befindet Sie sich ``nur'' 19 Milliarden Kilometer weit weg von der Erde. Aufgrund abnehmender Batterieleistung werden die beiden Sonden ihre wissenschaftlichen Aktivitäten etwa 2025 einstellen, bleiben aber bis in die 2030er mit uns in Kontakt.} + \label{fig:voyager} +\end{figure} + +\subsection{CD/DVD} +Compact discs verwenden sogar zwei ineinander verschachtelte Reed-Solomon-Codes, einen (32,28)-Code und einen (28,24)-Code. +Beide Codes sind in der Lage, Fehler aus dem jeweils anderen gelesenen Block zu korrigieren. Dieses spezielle Zusammenspielen dieser beiden Codes werden auch Cross-interleaved Reed-Solomon-Codes (CIRC) genannt. +Diese Vorgehensweise erzielt eine hohe Robustheit gegenüber Produktionsfehlern oder Verschmutzung auf der Disc. Bei CDs sind diese in der Lage, bis zu 4000 fehlerhafte Bits am Stück (ca. $2.5mm$) zu erkennen und zu korrigieren. + +Die Digital Video Disc funktioniert nach dem selben Konzept mit grösseren Codeblöcken. Die DVD verwendet einen (208,192)-Code und einen (182,172)-Code. + +%Beide lesen +% wobei beide Codes auch Fehler aus dem jeweiligen anderen Block korrigieren + +\begin{figure} + \centering + \subfigure[]{ + \includegraphics[width=0.45\textwidth]{papers/reedsolomon/images/Compact_Disc} + } + \subfigure[]{ + \includegraphics[width=0.45\textwidth]{papers/reedsolomon/images/Compact_Disc_zoomed_in} + } + \caption{CDs kamen 1982 auf den Markt. Sie funktioniert durch das Einpressen oder Einbrennen von Punkten und Strichen, die die Daten repräsentieren. Gelesen werden diese wiederum durch die Reflektion eines Lasers an diesen Punkten und Strichen.} + \label{fig:cd} +\end{figure} + +\subsection{QR-Codes} +Quick Response Codes oder auch QR-Codes funktionieren nach einem sehr ähnlichen Prinzip wie in unserem Beispiel der Abschnitte \ref{reedsolomon:section:codebsp} - \ref{reedsolomon:section:rekonstruktion} nur das QR-Codes in einem $\mathbb{F}_{256}$ Körper arbeiten. Die physische Grösse eines Codes ist stark abhängig von der Menge an codierten Daten sowie dem verwendeten Fehlerkorrektur-Level. Es ist so auf dem ersten Blick nicht ersichtlich, wie viel Nutzinformationen ein Qr-Code enthält. Die QR-Codes in Abbildung \ref{fig:qr} zeigen jeweils die Gleiche Information mit unterschiedlichem Fehlerkorrektur-Level. Codes mit einem höheren Korrektur-Level können auch für Designer-Codes Zweckentfremdet werden. Dabei wird z.B. das Firmenlogo oder einen Schriftzug über den Qr-Code gelegt, ohne das die Funktion des Codes beeinträchtigt wird. Ein Beispiel dazu ist unter Abbildung \ref{fig:designqr} zu finden. + +% + +%So kann auf den ersten Blick nicht +% +% +% funktionieren nach einem sehr ähnlichen Prinzip wie in unserem Beispiel, nur dass QR-Codes in einem $\mathbb{F}_{256}$ Körper arbeiten. Je nach grösse der Codierung ist der QR-Code im Endeffekt robuster gegen Beschädigungen. Bei Low Level Codes können 7\% der Daten Wiederhergestellt werden, beim High Level Code sind das sogar 30\%. + +\begin{figure} + \centering + \subfigure[]{ + \includegraphics[width=0.4\textwidth]{papers/reedsolomon/images/qrcode_h} + } + \subfigure[]{ + \includegraphics[width=0.4\textwidth]{papers/reedsolomon/images/qrcode_l} + } +% \subfigure[]{ +% \includegraphics[width=0.4\textwidth]{papers/reedsolomon/images/designer_qrcode_ohnelogo} +% } +% \subfigure[]{ +% \includegraphics[width=0.4\textwidth]{papers/reedsolomon/images/designer_qrcode} +% } + \caption{Anhand der grösse würde man darauf schliessen, dass bei (a) mehr Informationen Codiert sind als bei (b). Tatsächlich aber beinhalten beide Codes die gleiche Information. Das liegt daran, da die Fehlerkorrekturfähigkeit von QR-Codes sich in insgesamt vier Levels aufteilen lassen. Der höchste Fehlerkorrektur-Level, der bei (a) angewendet wurde, ist in der Lage, bis zu 30\% der Daten wiederherzustellen. Der kleinste Level schafft etwa 7\%, der in (b) veranschaulicht wird. Da die Grösse also nichts über die Menge an Daten aussagt, könnte es sich bei (a) auch um einen Code mit viel Nutzdaten und kleinem Fehlerkorrektur-Level handeln. Der Unterschied ist von Auge nicht sichtbar.} + \label{fig:qr} +\end{figure} + +\begin{figure} + \centering +% \subfigure[]{ +% \includegraphics[width=0.4\textwidth]{papers/reedsolomon/images/qrcode_h} +% } +% \subfigure[]{ +% \includegraphics[width=0.4\textwidth]{papers/reedsolomon/images/qrcode_l} +% } + \subfigure[]{ + \includegraphics[width=0.4\textwidth]{papers/reedsolomon/images/designer_qrcode_ohnelogo} + } + \subfigure[]{ + \includegraphics[width=0.4\textwidth]{papers/reedsolomon/images/designer_qrcode} + } + \caption{Während (a) noch einen unveränderten QR-Code repräsentiert, handelt es sich bei (b) nun um einen Designer-QR-Code. Beide Codes verfügen über einen mittleren Fehlerkorrektur-Level von theoretisch 15\%. Da bei (b) jetzt einen Teil des Codes durch ein Logo verdeckt wird, schränkt sich die Fehlerkorrekturfähigkeit je nach Grösse des verdeckten Teils mehr oder weniger stark ein. Unser Designer-Code in (b) ist nur noch in der Lage etwa 9\% des Codes zu rekonstruieren.} + \label{fig:designqr} +\end{figure}
\ No newline at end of file diff --git a/buch/papers/reedsolomon/codebsp.tex b/buch/papers/reedsolomon/codebsp.tex index 262297e..8430ebd 100644 --- a/buch/papers/reedsolomon/codebsp.tex +++ b/buch/papers/reedsolomon/codebsp.tex @@ -1,18 +1,17 @@ % -% teil3.tex -- Beispiel-File für Teil 3 +% codebsp.tex -- Codierung eines Beispiels % -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% (c) 2021 Michael Steiner, Hochschule Rapperswil % \section{Codierung eines Beispiels \label{reedsolomon:section:codebsp}} -\rhead{Koerper Festlegen} +\rhead{Codierung eines Beispiels} -Um die Funktionsweise eines Reed-Solomon-Codes besser zu verstehen werden wir die einzelnen Probleme und ihre Lösungen anhand eines Beispiels betrachten. -Da wir in Endlichen Körpern Rechnen werden wir zuerst solch einen Körper festlegen. Dabei müssen wir die \textcolor{red}{Definition 4.6 (wie verweist man auf eine definition?)} berücksichtigen, die besagt, dass nur Primzahlen für endliche Körper in Frage kommen. -Wir legen für unser Beispiel den endlichen Körper mit $q = 11$ fest. -Zur Hilfestellung können dazu die beiden Tabellen \ref{reedsolomon:subsection:adtab} und -\ref{reedsolomon:subsection:mptab} hinzugezogen werden. Diese Tabellen enthalten sämtliche Resultate aller gültigen Operationen \textcolor{red}{(Notiz: nach meinem Wissen gibt es ja nur addition und multiplikation als gültige operationen)}, die in diesem Körper durchgeführt werden können. -Aus der Definition der Endlichen Körper (ersichtlich auch in den Tabellen) folgt, dass uns nur die Zahlen \[\mathbb{F}_{11} = \{0,1,2,3,4,5,6,7,8,9,10\}\] zur verfügung stehen und somit $11 = 0$ gelten muss. +Um die Funktionsweise eines Reed-Solomon-Codes besser zu verstehen, werden wir die einzelnen Probleme und ihre Lösungen anhand eines Beispiels betrachten. +Da wir in endlichen Körpern rechnen, werden wir zuerst solch einen Körper festlegen. Dabei müssen wir die Definition \ref{buch:endlichekoerper:def:galois-koerper} berücksichtigen, die besagt, dass nur Primzahlen für endliche Körper in Frage kommen. +Wir legen für unser Beispiel den endlichen Körper $\mathbb{F}_{q}$ mit $q = 11$ fest. +Zur Hilfestellung zum Rechnen in $\mathbb{F}_{11}$ können die beiden Tabellen \ref{reedsolomon:subsection:adtab} und \ref{reedsolomon:subsection:mptab} hinzugezogen werden. Diese Tabellen enthalten die Resultate der arithmetischen Operationen im Körper $\mathbb{F}_{11}$, die durchgeführt werden können. +Aus der Definition der endlichen Körper (ersichtlich auch in den Tabellen) folgt, dass uns nur die Zahlen \[\mathbb{F}_{11} = \{0,1,2,3,4,5,6,7,8,9,10\}\] zur Verfügung stehen und somit $11 = 0$ gelten muss. % OLD TEXT %Alle folgenden Berechnungen wurden mit den beiden Restetabellen \ref{reedsolomon:subsection:adtab} und \ref{reedsolomon:subsection:mptab} durchgeführt. @@ -22,7 +21,7 @@ Aus der Definition der Endlichen Körper (ersichtlich auch in den Tabellen) folg %\input{papers/reedsolomon/restetabelle1} %\input{papers/reedsolomon/restetabelle2} -Anhand der Menge uns zur Verfügung stehenden Zahlen wird auch festgelegt, wie viele Zahlen ein Nachrichtenblock $n$, bestehend aus Nutzdatenteil und Fehlerkorrekturteil, umfassen kann. +Die Menge uns zur Verfügung stehender Zahlen legt auch fest, wie viele Zahlen ein Nachrichtenblock $n$, bestehend aus Nutzdatenteil und Fehlerkorrekturteil, umfassen kann. Der Nachrichtenblock im Beispiel besteht aus \[ n = q - 1 = 10 \text{ Zahlen}, @@ -52,16 +51,16 @@ k = n - 2t = 6\text{ Zahlen} \] übertragen. -Zusammenfassend haben wir einen Nachrichtenblock mit der Länge von 10 Zahlen definiert, der 6 Zahlen als Nutzlast beinhaltet und in der Lage ist aus 2 fehlerhafte Stellen im Block die ursprünglichen Nutzdaten zu rekonstruieren. Zudem werden wir im weiteren feststellen, dass dieser Code maximal vier Fehlerstellen erkennen, diese aber nicht rekonstruieren kann. +Zusammenfassend haben wir einen Nachrichtenblock mit der Länge von 10 Zahlen definiert, der 6 Zahlen als Nutzlast beinhaltet und in der Lage ist, aus 2 fehlerhafte Stellen im Block die ursprünglichen Nutzdaten zu rekonstruieren. Zudem werden wir im weiteren feststellen, dass dieser Code maximal vier Fehlerstellen erkennen, diese aber nicht rekonstruieren kann. -Wir legen nun die Nachricht +Wir legen nun für das Beispiel die Nachricht \[ m = [0,0,0,0,4,7,2,5,8,1] \] fest, die wir gerne an einen Empfänger übertragen möchten, wobei die vorderen vier Stellen für die Fehlerkorrektur zuständig sind. -Solange diese Stellen vor dem Codieren und nach dem Decodieren den Wert null haben, so ist die Nachricht Fehlerfrei übertragen worden. +Solange diese Stellen vor dem Codieren und nach dem Decodieren den Wert null haben, so ist die Nachricht fehlerfrei übertragen worden. -Da wir in den folgenden Abschnitten mit Polynomen arbeiten, stellen wir die Nachicht auch noch als Polynom +Da wir in den folgenden Abschnitten mit Polynomen arbeiten, stellen wir die Nachricht auch noch als Polynom \[ m(X) = 4X^5 + 7X^4 + 2X^3 + 5X^2 + 8X + 1 \] @@ -77,16 +76,17 @@ dar. \subsection{Der Ansatz der diskreten Fouriertransformation \label{reedsolomon:subsection:diskFT}} -In einem vorherigen Kapitel \textcolor{red}{(???)} haben wir schon einmal die diskrete Fouriertransformation zum Codieren einer Nachricht verwendet. In den endlichen Körpern wird dies jedoch nicht gelingen, da die Eulerische Zahl $e$ in endlichen Körpern nicht existiert. -Wir legen deshalb die Zahl $a$ fest. Diese Zahl soll die gleichen aufgaben haben, wie $e^{\frac{j}{2 \pi}}$ in der Diskreten Fouriertransformation, nur mit dem Unterschied, dass $a$ in $\mathbb{F}_{11}$ existiert. Dazu soll $a$ den gesamten Zahlenbereich von $\mathbb{F}_{11}$ abdecken, um +In einem vorherigen Abschnitt \textcolor{red}{(???)} haben wir schon einmal die diskrete Fouriertransformation zum Codieren einer Nachricht verwendet. In den endlichen Körpern wird dies jedoch nicht gelingen, da die Eulerische Zahl $e$ in endlichen Körpern nicht existiert. +Wir wählen deshalb eine Zahl $a$, die die gleichen Aufgaben haben soll wie $e^{\frac{j}{2 \pi}}$ in der diskreten Fouriertransformation, nur mit dem Unterschied, dass $a$ in $\mathbb{F}_{11}$ ist. Dazu soll die Potenz von $a$ den gesamten Zahlenbereich von $\mathbb{F}_{11}$ abdecken. +Dazu ändern wir die Darstellung von \[ \mathbb{F}_{11} = \{0,1,2,3,4,5,6,7,8,9,10\} \] -in +in die von $a$ abhängige Schreibweise \[ \mathbb{Z}_{11}\setminus\{0\} = \{a^0, a^1, a^2, a^3, a^4, a^5, a^6, a^7, a^8, a^9\}. \] -umzuschreiben. +%Jetzt brauchen wir nur noch eine geeignete Zahl für $a$ zu finden. % Old Text %Wir suchen also eine Zahl $a$, die in endlichen Körpern existiert und den gesamten Zahlenbereich von $\mathbb{F}_{11}$ abdecken kann. %Dazu schreiben wir @@ -116,29 +116,45 @@ umzuschreiben. \subsubsection{Die primitiven Einheitswurzeln \label{reedsolomon:subsection:primsqrt}} -Wenn wir jetzt sämtliche Zahlen von $\mathbb{F}_{11}$ in $a$ einsetzen +Wenn wir jetzt Zahlen von $\mathbb{F}_{11}$ an Stelle von $a$ einsetzen, erhalten wir \begin{center} -\begin{tabular}{c r c l} -%$a = 0 :$& $\qquad \mathbb{Z}_{11}\setminus\{0\}$ &$=$& $\{0, 0, 0, 0, 0, 0, 0, 0, 0, 0\}$ \\ -$a = 1 :$& $\qquad \mathbb{Z}_{11}\setminus\{0\}$ &$=$& $\{1, 1, 1, 1, 1, 1, 1, 1, 1, 1\}$ \\ -$a = 2 :$& $\qquad \mathbb{Z}_{11}\setminus\{0\}$ &$=$& $\{1, 2, 4, 8, 5, 10, 9, 7, 3, 6\}$ \\ -$a = 3 :$& $\qquad \mathbb{Z}_{11}\setminus\{0\}$ &$=$& $\{1, 3, 9, 5, 4, 1, 3, 9, 5, 4\}$ \\ -$a = 4 :$& $\qquad \mathbb{Z}_{11}\setminus\{0\}$ &$=$& $\{1, 4, 5, 9, 3, 1, 4, 5, 9, 3\}$ \\ -$a = 5 :$& $\qquad \mathbb{Z}_{11}\setminus\{0\}$ &$=$& $\{1, 5, 3, 4, 9, 1, 5, 3, 4, 9\}$ \\ -$a = 6 :$& $\qquad \mathbb{Z}_{11}\setminus\{0\}$ &$=$& $\{1, 6, 3, 7, 9, 10, 5, 8, 4, 2\}$ \\ -$a = 7 :$& $\qquad \mathbb{Z}_{11}\setminus\{0\}$ &$=$& $\{1, 7, 5, 2, 3, 10, 4, 6, 9, 8\}$ \\ -$a = 8 :$& $\qquad \mathbb{Z}_{11}\setminus\{0\}$ &$=$& $\{1, 8, 9, 6, 4, 10, 3, 2, 5, 7\}$ \\ -$a = 9 :$& $\qquad \mathbb{Z}_{11}\setminus\{0\}$ &$=$& $\{1, 9, 4, 3, 5, 1, 9, 4, 3, 5\}$ \\ -$a = 10 :$& $\qquad \mathbb{Z}_{11}\setminus\{0\}$ &$=$& $\{1, 10, 1, 10, 1, 10, 1, 10, 1, 10\}$ +\begin{tabular}{c c c c c c c} +$a = 1$ & $\Rightarrow$ & $\{a^i | 0 \le i \le 10\}$ & $=$ & $\{1, 1, 1, 1, 1, 1, 1, 1, 1, 1\}$ & $\neq$ & $\mathbb{F}_{11}\setminus\{0\}$ \\ +$a = 2$ & $\Rightarrow$ & $\{a^i | 0 \le i \le 10\}$ & $=$ & $\{1, 2, 4, 8, 5, 10, 9, 7, 3, 6\}$ & $ = $ & $\mathbb{F}_{11}\setminus\{0\}$ \\ +$a = 3$ & $\Rightarrow$ & $\{a^i | 0 \le i \le 10\}$ & $=$ & $\{1, 3, 9, 5, 4, 1, 3, 9, 5, 4\}$ & $\neq$ & $\mathbb{F}_{11}\setminus\{0\}$ \\ +$a = 4$ & $\Rightarrow$ & $\{a^i | 0 \le i \le 10\}$ & $=$ & $\{1, 4, 5, 9, 3, 1, 4, 5, 9, 3\}$ & $\neq$ & $\mathbb{F}_{11}\setminus\{0\}$ \\ +$a = 5$ & $\Rightarrow$ & $\{a^i | 0 \le i \le 10\}$ & $=$ & $\{1, 5, 3, 4, 9, 1, 5, 3, 4, 9\}$ & $\neq$ & $\mathbb{F}_{11}\setminus\{0\}$ \\ +$a = 6$ & $\Rightarrow$ & $\{a^i | 0 \le i \le 10\}$ & $=$ & $\{1, 6, 3, 7, 9, 10, 5, 8, 4, 2\}$ & $ = $ & $\mathbb{F}_{11}\setminus\{0\}$ \\ +$a = 7$ & $\Rightarrow$ & $\{a^i | 0 \le i \le 10\}$ & $=$ & $\{1, 7, 5, 2, 3, 10, 4, 6, 9, 8\}$ & $ = $ & $\mathbb{F}_{11}\setminus\{0\}$ \\ +$a = 8$ & $\Rightarrow$ & $\{a^i | 0 \le i \le 10\}$ & $=$ & $\{1, 8, 9, 6, 4, 10, 3, 2, 5, 7\}$ & $ = $ & $\mathbb{F}_{11}\setminus\{0\}$ \\ +$a = 9$ & $\Rightarrow$ & $\{a^i | 0 \le i \le 10\}$ & $=$ & $\{1, 9, 4, 3, 5, 1, 9, 4, 3, 5\}$ & $\neq$ & $\mathbb{F}_{11}\setminus\{0\}$ \\ +$a = 10$ & $\Rightarrow$ & $\{a^i | 0 \le i \le 10\}$ & $=$ & $\{1, 10, 1, 10, 1, 10, 1, 10, 1, 10\}$ & $\neq$ & $\mathbb{F}_{11}\setminus\{0\}$. \\ \end{tabular} \end{center} -so fällt uns auf, dass für $a$ die Zahlen $2,6,7,8$ erhalten, die tatsächlich den gesamten Zahlenraum von $\mathbb{F}_{11}$ abbilden. Solche Zahlen werden \em Primitive Einheitswurzel \em genannt. -Wenden wir diese Vorgehensweise auch für andere Endliche Körper an, so werden wir sehen, dass wir immer mindestens zwei solcher Einheitswurzel finden werden. Somit ist es uns überlassen, eine dieser Einheitswurzeln auszuwählen, mit der wir weiter rechnen wollen. Für das Beispiel wählen wir die Zahl $a^i = 8$. +%\begin{center} +%\begin{tabular}{c r c l} +%%$a = 0 :$& $\qquad \mathbb{Z}_{11}\setminus\{0\}$ &$=$& $\{0, 0, 0, 0, 0, 0, 0, 0, 0, 0\}$ \\ +%$a = 1 :$& $\qquad \mathbb{Z}_{11}\setminus\{0\}$ &$=$& $\{1, 1, 1, 1, 1, 1, 1, 1, 1, 1\}$ \\ +%$a = 2 :$& $\qquad \mathbb{Z}_{11}\setminus\{0\}$ &$=$& $\{1, 2, 4, 8, 5, 10, 9, 7, 3, 6\}$ \\ +%$a = 3 :$& $\qquad \mathbb{Z}_{11}\setminus\{0\}$ &$=$& $\{1, 3, 9, 5, 4, 1, 3, 9, 5, 4\}$ \\ +%$a = 4 :$& $\qquad \mathbb{Z}_{11}\setminus\{0\}$ &$=$& $\{1, 4, 5, 9, 3, 1, 4, 5, 9, 3\}$ \\ +%$a = 5 :$& $\qquad \mathbb{Z}_{11}\setminus\{0\}$ &$=$& $\{1, 5, 3, 4, 9, 1, 5, 3, 4, 9\}$ \\ +%$a = 6 :$& $\qquad \mathbb{Z}_{11}\setminus\{0\}$ &$=$& $\{1, 6, 3, 7, 9, 10, 5, 8, 4, 2\}$ \\ +%$a = 7 :$& $\qquad \mathbb{Z}_{11}\setminus\{0\}$ &$=$& $\{1, 7, 5, 2, 3, 10, 4, 6, 9, 8\}$ \\ +%$a = 8 :$& $\qquad \mathbb{Z}_{11}\setminus\{0\}$ &$=$& $\{1, 8, 9, 6, 4, 10, 3, 2, 5, 7\}$ \\ +%$a = 9 :$& $\qquad \mathbb{Z}_{11}\setminus\{0\}$ &$=$& $\{1, 9, 4, 3, 5, 1, 9, 4, 3, 5\}$ \\ +%$a = 10 :$& $\qquad \mathbb{Z}_{11}\setminus\{0\}$ &$=$& $\{1, 10, 1, 10, 1, 10, 1, 10, 1, 10\}$ +%\end{tabular} +%\end{center} +Es fällt auf, dass wir für $a$ die Zahlen $2,6,7,8$ Mengen erhalten, die tatsächlich den gesamten Zahlenraum von $\mathbb{F}_{11}$ abbilden. Solche Zahlen werden \em primitive Einheitswurzel \em genannt. +Wenden wir diese Vorgehensweise auch für andere endliche Körper an, so werden wir sehen, dass wir immer mindestens zwei solcher Einheitswurzel finden werden. Somit ist es uns überlassen, eine dieser Einheitswurzel auszuwählen, mit der wir weiter rechnen wollen. Für das Beispiel wählen wir die Zahl $a = 8$. \subsubsection{Bildung einer Transformationsmatrix \label{reedsolomon:subsection:transMat}} -Mit der Wahl einer Einheitswurzel ist es uns jetzt möglich, unsere Nachricht zu Codieren. Daraus sollen wir dann einen Übertragungsvektor $v$ erhalten, den wir an den Empfänger schicken können. Für die Codierung müssen wir alle $a^i$ in das Polynom $m(X)$ einsetzen. Da wir $a^i = 8^i$ gewählt haben ergibt sich daraus +Mit der Wahl einer Einheitswurzel ist es uns jetzt möglich, unsere Nachricht zu Codieren. Daraus sollen wir dann einen Übertragungsvektor $v$ erhalten, den wir an den Empfänger schicken können. +Für die Codierung setzen wir alle Zahlen in $\mathbb{F}_{11}\setminus\{0\}$ nacheinander in $m(X)$ ein. Da wir zuvor eine von $a$ abhängige Schreibweise gewählt haben setzen wir stattdessen $a^i$ ein mit $a = 8$ als die von uns gewählten primitiven Einheitswurzel. Daraus ergibt sich +%Für die Codierung müssen wir alle $a^i$ in das Polynom $m(X)$ einsetzen. Da wir $a^i = 8^i$ gewählt haben, ergibt sich daraus % %Damit wir unsere Nachricht codieren können, müssen wir $8^i$ in $m(X)$ einsetzen. % @@ -150,12 +166,13 @@ Mit der Wahl einer Einheitswurzel ist es uns jetzt möglich, unsere Nachricht zu $m(8^9) = 4 \cdot 7^5 + 7 \cdot 7^4 + 2 \cdot 7^3 + 5 \cdot 7^2 + 8 \cdot 7^1 + 1 = 4$ \end{tabular} \end{center} -unser Übertragungsvektor. Um das ganze noch ein wenig übersichtlicher zu gestalten können wir die Polynome zu einer Matrix zusammenfassen und bildet so unsere Transformationsmatrix $A$. +als unser Übertragungsvektor. \subsection{Allgemeine Codierung \label{reedsolomon:subsection:algCod}} +Um das Ganze noch ein wenig übersichtlicher zu gestalten, können wir die Polynome zu einer Matrix zusammenfassen, die unsere Transformationsmatrix $A$ bildet. -Für die Codierung benötigen wir die Nachricht $m$, die Codiert werden soll sowie die Transformationsmatrix $A$. Daraus erhalten wir den Übertragungsvektor $v$. Setzen wir die Zahlen aus dem Beispiel ein erhalten wir folgende Darstellung. +Für die allgemeine Codierung benötigen wir die Nachricht $m$, die codiert werden soll, sowie die Transformationsmatrix $A$. Daraus erhalten wir den Übertragungsvektor $v$. Setzen wir die Zahlen aus dem Beispiel ein erhalten wir folgende Darstellung: \[ v = A \cdot m \qquad \Rightarrow \qquad v = \begin{pmatrix} 8^0& 8^0& 8^0& 8^0& 8^0& 8^0& 8^0& 8^0& 8^0& 8^0\\ @@ -173,6 +190,7 @@ v = A \cdot m \qquad \Rightarrow \qquad v = \begin{pmatrix} \begin{pmatrix} 1 \\ 8 \\ 5 \\ 2 \\ 7 \\ 4 \\ 0 \\ 0 \\ 0 \\ 0 \\ \end{pmatrix} +. \] Für unseren Übertragungsvektor resultiert \[ diff --git a/buch/papers/reedsolomon/decmitfehler.tex b/buch/papers/reedsolomon/decmitfehler.tex index feaa027..598cf68 100644 --- a/buch/papers/reedsolomon/decmitfehler.tex +++ b/buch/papers/reedsolomon/decmitfehler.tex @@ -1,22 +1,22 @@ % -% teil3.tex -- Beispiel-File für Teil 3 +% decmitfehler.tex -- Decodierung mit Fehler % -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% (c) 2021 Michael Steiner, Hochschule Rapperswil % \section{Decodierung: Ansatz mit Fehlerkorrektur \label{reedsolomon:section:decmitfehler}} -\rhead{fehlerhafte rekonstruktion} +\rhead{Decodierung mit Fehler} Bisher haben wir die Decodierung unter der Bedingung durchgeführt, dass der Übertragungsvektor fehlerlos versendet und empfangen wurde. In der realen Welt müssen wir uns jedoch damit abfinden, dass kein Übertragungskanal garantiert fehlerfrei ist und das wir früher oder später mit Fehlern rechnen müssen. Genau für dieses Problem wurden Fehler korrigierende Codes, wie der Reed-Solomon-Code, entwickelt. In diesem Abschnitt betrachten wir somit die Idee der Fehlerkorrektur und wie wir diese auf unser Beispiel anwenden können. + Der Übertragungskanal im Beispiel weisst jetzt den Fehlervektor \[ u = [0, 0, 0, 3, 0, 0, 0, 0, 2, 0] \] auf. - -Senden wir jetzt unser Übertragungsvektor $v$ durch diesen Kanal addiert sich der Fehlervektor $u$ auf unsere Übertragung und wir erhalten +Senden wir jetzt unser Übertragungsvektor $v$ durch diesen Kanal, addiert sich der Fehlervektor $u$ auf unsere Übertragung und wir erhalten \begin{center} \begin{tabular}{c | c r } @@ -73,10 +73,10 @@ als neuen, fehlerbehafteten Übertragungsvektor $w$ auf der Empfängerseite. % %\end{center} %als Übertragungsvektor auf der Empfängerseite erhalten. -Wir jetzt als Empfänger wissen jedoch nicht, dass der erhaltene Übertragungsvektor jetzt fehlerbehaftet ist und werden dementsprechend den Ansatz aus Abschnitt \ref{reedsolomon:section:decohnefehler} anwenden. +Als Empfänger wissen wir jedoch nicht, dass der erhaltene Übertragungsvektor jetzt fehlerbehaftet ist und werden dementsprechend den Ansatz aus Abschnitt \ref{reedsolomon:section:decohnefehler} anwenden. Wir stellen jedoch recht schnell fest, dass am decodierten Nachrichtenblock \[ -r = [\underbrace{5,7,4,10,}_{\text{Syndrom}}5,4,5,7,6,7]. +r = [\underbrace{5,7,4,10,}_{\text{Syndrom}}5,4,5,7,6,7] \] etwas nicht in Ordnung ist, denn die vorderen vier Fehlerkorrekturstellen haben nicht mehr den Wert null. Der Nachrichtenblock weisst jetzt ein \em Syndrom \em auf, welches anzeigt, dass der Übertragungsvektor fehlerhaft empfangen wurde. @@ -85,21 +85,29 @@ Der Nachrichtenblock weisst jetzt ein \em Syndrom \em auf, welches anzeigt, dass %\[ %r = [\underbrace{5,7,4,10,}_{Fehlerinfo}5,4,5,7,6,7]. %\] -Jetzt stellt sich natürlich die Frage, wie wir daraus den ursprünglich gesendeten Nachrichtenvektor zurückerhalten sollen. Laut der Definition über die Funktionsweise eines Reed-Solomon-Codes können wir aus den Fehlerkorrekturstellen ein ``Lokatorpolynom'' berechnen, welches die Information enthält, welche stellen innerhalb des empfangenen Übertragungsvektors fehlerhaft sind. +Jetzt stellt sich natürlich die Frage, wie wir daraus den ursprünglich gesendeten Nachrichtenvektor zurückerhalten sollen. Laut der Definition über die Funktionsweise eines Reed-Solomon-Codes können wir aus den Fehlerkorrekturstellen ein ``Lokatorpolynom'' berechnen, welches die Information enthält, welche Stellen innerhalb des empfangenen Übertragungsvektors fehlerhaft sind. \subsection{Das Fehlerstellenpolynom $d(X)$ \label{reedsolomon:subsection:fehlerpolynom}} -Bevor wir unser Lokatorpolynom berechnen können, müssen wir zuerst eine Möglichkeit finden, die Fehlerhaften von den Korrekten Stellen im Übertragungsvektor unterscheiden zu können. In einem ersten Versuch könnten wir $d$ berechnen mit +Bevor wir unser Lokatorpolynom berechnen können, müssen wir zuerst eine Möglichkeit finden, die fehlerhaften von den korrekten Stellen im Übertragungsvektor unterscheiden zu können. +In einem ersten Versuch berechnen wir die Differenz $d$ des empfangenen und dem gesendeten Übertragungsvektor mit +%Alle Stellen in $d$, die nicht null sind sind demnach fehler. +% +%In einem ersten Versuch könnten wir $d$ berechnen mit \begin{center} \begin{tabular}{r c l} $m(X)$ & $=$ & $4X^5 + 7X^4 + 2X^3 + 5X^2 + 8X + 1$ \\ $r(X)$ & $=$ & $5X^9 + 7X^8 + 4X^7 + 10X^6 + 5X^5 + 4X^4 + 5X^3 + 7X^2 + 6X + 7$ \\ - $d(X)$ & $=$ & $r(X) - m(X)$. + $d(X)$ & $=$ & $r(X) - m(X)$ \end{tabular} \end{center} -Dies wird uns zwar andere sorgen wegen $m(X)$ bereiten, wir werden werden deshalb erst in Abschnitt \ref{reedsolomon:subsection:nachrichtenvektor} darauf zurückkommen. +und nennen $d(X)$ als unseres Fehlerstellenpolynom. Dieses Polynom soll uns sagen, welche Stellen korrekt und welche fehlerhaft sind. + +Durch das verwenden von $m(X)$ stossen wir auf weitere Probleme, da wir den Nachrichtenvektor auf der Empfängerseite nicht kennen (unser Ziel ist es ja genau diesen zu finden). Dieses Problem betrachten wir im Abschnitt \ref{reedsolomon:subsection:nachrichtenvektor} genauer. Um die Überlegungen in den folgenden Abschnitten besser zu verstehen sei $m(X)$ bekannt auf der Empfängerseite. -Setzen wir jetzt noch unsere Einheitswurzel aus dem Beispiel ein so erhalten wir +%Dies wird uns zwar andere sorgen wegen $m(X)$ bereiten, wir werden werden deshalb erst in Abschnitt \ref{reedsolomon:subsection:nachrichtenvektor} darauf zurückkommen. + +Setzen wir jetzt unsere Einheitswurzel aus dem Beispiel ein so erhalten wir % Old Text %\begin{align} % m(X) & = 4X^5 + 7X^4 + 2X^3 + 5X^2 + 8X + 1 \\ @@ -119,22 +127,22 @@ Setzen wir jetzt noch unsere Einheitswurzel aus dem Beispiel ein so erhalten wir \end{tabular} \end{center} und damit die Information, dass allen Stellen, die nicht Null sind, Fehler enthalten. -Aus der Tabelle lesen wir, das in unserem Beispiel die Fehler an der Stelle drei und acht zu finden sind. +Aus der Tabelle lesen wir ab, das in unserem Beispiel die Fehler an der Stelle drei und acht zu finden sind. Für das einfache Bestimmen von Hand mag dies ja noch ausreichen, jedoch können wir mit diesen Stellen nicht das Lokatorpolynom bestimmen, denn dafür bräuchten wir alle Nullstellen, an denen es Fehler gegeben hat (also sozusagen genau das umgekehrte). Um dies zu erreichen wenden wir eine andere Herangehensweise und nehmen uns den Satz von Fermat sowie den kleinsten gemeinsamen Teiler zur Hilfe. \subsection{Mit dem grössten gemeinsamen Teiler auf Nullstellenjagd \label{reedsolomon:subsection:ggT}} -Zuerst betrachten wir mal den Satz von Fermat deren Funktionsweise wir in Abschnitt \ref{buch:section:galoiskoerper} kennengelernt haben. Der besagt, dass für +Zuerst betrachten wir den Satz von Fermat, dessen Funktionsweise wir in Abschnitt \ref{buch:section:galoiskoerper} kennengelernt haben. Der besagt, dass \[ f(X) = X^{q-1} -1 = 0 \] -wobei dies für jedes $q$ gilt. Setzen wir also das $q$ von unserem Beispiel ein +gilt für jedes $X$. Setzen wir das $q$ von unserem Beispiel ein \[ -f(X) = X^{10}-1 = 0 \qquad \text{für } X = \{1,2,3,4,5,6,7,8,9,10\} +f(X) = X^{10}-1 = 0 \qquad \text{für } X \in \{1,2,3,4,5,6,7,8,9,10\} \] -und stellen dies als Nullstellenform (\textcolor{red}{richtiger name für die Schreibweise?}) dar. So ergibt sich die Darstellung +und stellen dies als Faktorisierung dar. So ergibt sich die Darstellung \[ f(X) = (X-a^0)(X-a^1)(X-a^2)(X-a^3)(X-a^4)(X-a^5)(X-a^6)(X-a^7)(X-a^8)(X-a^9). \] @@ -145,7 +153,7 @@ Wir können jetzt auch $d(X)$ nach der gleichen Überlegung darstellen als d(X) = (X-a^0)(X-a^1)(X-a^2)\textcolor{gray!40}{(X-a^3)}(X-a^4)(X-a^5)(X-a^6)(X-a^7)\textcolor{gray!40}{(X-a^8)}(X-a^9) \cdot p(x), \] wobei diese Darstellung nicht mehr alle Nullstellen umfasst wie es noch in $f(X)$ der Fall war. -Dies liegt daran, dass wir ja zwei Fehlerstellen (grau markiert) haben, die nicht Null sind. Diese fassen wir zum Restpolynom $p(X)$ (\textcolor{red}{eventuell farblich kennzeichnen?}) zusammen. +Dies liegt daran, dass wir ja zwei Fehlerstellen (grau markiert) haben, die nicht Null sind. Diese fassen wir zum Restpolynom $p(X)$ zusammen. Wenn wir jetzt den grössten gemeinsamen Teiler von $f(X)$ und $d(X)$ berechnen, so erhalten wir mit \[ \operatorname{ggT}(f(X),d(X)) = (X-a^0)(X-a^1)(X-a^2)\textcolor{gray!40}{(X-a^3)}(X-a^4)(X-a^5)(X-a^6)(X-a^7)\textcolor{gray!40}{(X-a^8)}(X-a^9) @@ -165,7 +173,7 @@ Das kgV hat nämlich die Eigenschaft sämtliche Nullstellen zu finden, also nich ersichtlich ist. Aus dem vorherigen Abschnitt wissen wir auch, dass $d(X)$ alle korrekten Nullstellen beinhaltet. Teilen wir das kgV jetzt auf in \[ -\operatorname{kgV}(f(X),d(X)) = d(X) \cdot l(X) +\operatorname{kgV}(f(X),d(X)) = d(X) \cdot l(X), \] sollten wir für $l(X)$ eine Liste mit allen fehlerhaften Nullstellen erhalten. Somit ist @@ -174,7 +182,7 @@ l(X) = (X-a^3)(X-a^8) \] unser gesuchtes Lokatorpolynom. Es scheint so als müssten wir nur noch an den besagten Stellen den Übertragungsvektor korrigieren und wir währen fertig mit der Fehlerkorrektur. -Jedoch haben wir noch ein grundlegendes Problem, dass zu beginn aufgetaucht ist, wir aber beiseite geschoben haben. Die Rede ist natürlich vom Nachrichtenvektor $m(X)$, mit dem wir in erster Linie das wichtige Fehlerstellenpolynom $d(X)$ berechnet haben. +Jedoch haben wir noch ein grundlegendes Problem, dass zu Beginn aufgetaucht ist, wir aber beiseite geschoben haben. Die Rede ist natürlich vom Nachrichtenvektor $m(X)$, mit dem wir in erster Linie das wichtige Fehlerstellenpolynom $d(X)$ berechnet haben, auf der Empfängerseite aber nicht kennen. \subsection{Der problematische Nachrichtenvektor $m(X)$ \label{reedsolomon:subsection:nachrichtenvektor}} @@ -184,26 +192,26 @@ In Abschnitt \ref{reedsolomon:section:decmitfehler} haben wir d(X) = r(X) - m(X) \] in Abhängigkeit von $m(X)$ berechnet. -Jedoch haben wir ausser acht gelassen, dass $m(X)$ auf der Empfängerseite nicht existiert und somit gänzlich unbekannt ist. +Jedoch haben wir ausser acht gelassen, dass $m(X)$ auf der Empfängerseite nicht verfügbar und somit gänzlich unbekannt ist. Es scheint so als würde dieser Lösungsansatz, den wir bisher verfolgt haben, nicht funktioniert. -Wir könnten uns höchstens noch fragen, ob wir tatsächlich nichts über den Nachrichtenvektor im Beispiel wissen. Wenn wir noch einmal den Vektor betrachten als +Wir könnten uns höchstens noch fragen, ob wir tatsächlich nichts über den Nachrichtenvektor im Beispiel wissen. + +Wenn wir noch einmal den Vektor betrachten als \[ m = [0,0,0,0,4,7,2,5,8,1] \] -fällt uns aber auf, dass wir doch etwas über diesen Vektor wissen, nämlich den Wert der ersten 2t (im Beispiel vier) stellen. -Im Normalfall sollen diese nämlich den Wert null betragen und somit sind nur die letzten k stellen (im Beispiel sechs) für uns unbekannt, dargestellt als +fällt uns aber auf, dass wir doch etwas über diesen Vektor wissen, nämlich den Wert der ersten $2t$ (im Beispiel vier) Stellen. +Im Normalfall sollen diese nämlich den Wert $0$ haben und somit sind nur die letzten $k$ Stellen (im Beispiel sechs) für uns unbekannt, dargestellt als \[ m = [0,0,0,0,?,?,?,?,?,?]. \] -Wie der Zufall es so will liegt an diesen vier Stellen auch die Information, wo die Fehlerstellen liegen. Daher reicht es auch aus +Nach der Definition des Reed-Solomon-Codes soll an genau diesen vier Stellen auch die Information befinden, wo die Fehlerstellen liegen. Daher reicht es auch aus % darum werden die stellen auch als fehlerkorrekturstellen bezeichnet \[ d(X) = 5X^9 + 7X^8 + 4X^7 + 10X^6 + p(X) \] so zu berechnen, dass wir die wichtigen vier Stellen kennen, der Rest des Polynoms jedoch im unbekannten Restpolynom $p(X)$ enthalten ist. -\textcolor{red}{ist das wechseln zwischen 2t,k aus dem allgemeinfall und vier,sechs aus dem beispiel zu verwirrend?} - \subsection{Die Berechnung der Fehlerstellen \label{reedsolomon:subsection:nachrichtenvektor}} @@ -294,6 +302,7 @@ Daraus erhalten wir die Faktoren \[ l(X) = 2X^2 + 5 \qquad \rightarrow \qquad l(X) = 2(X-5)(X-6). \] +\subsubsection{Schritt 3: Fehlerstellen bestimmen} Unser gesuchtes Lokatorpolynom hat also die Form \[ l(X) = (X-a^i)(X-a^j). diff --git a/buch/papers/reedsolomon/decohnefehler.tex b/buch/papers/reedsolomon/decohnefehler.tex index 3b709f3..50bd8d6 100644 --- a/buch/papers/reedsolomon/decohnefehler.tex +++ b/buch/papers/reedsolomon/decohnefehler.tex @@ -1,11 +1,11 @@ % -% teil3.tex -- Beispiel-File für Teil 3 +% decohnefehler.tex -- Decodierung ohne Fehler % -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% (c) 2021 Michael Steiner, Hochschule Rapperswil % \section{Decodierung: Ansatz ohne Fehler \label{reedsolomon:section:decohnefehler}} -\rhead{fehlerlose rekonstruktion} +\rhead{Decodierung ohne Fehler} In diesem Abschnitt betrachten wie die Überlegung, wie wir auf der Empfängerseite die Nachricht aus dem empfangenen Übertragungsvektor erhalten. Nach einer einfachen Überlegung müssen wir den Übertragungsvektor decodieren, was auf den ersten Blick nicht allzu kompliziert sein sollte, solange wir davon ausgehen können, dass es während der Übertragung keine Fehler gegeben hat. Wir betrachten deshalb den Übertragungskanal als fehlerfrei. @@ -33,11 +33,12 @@ Definiert ist sie als \[ F(\omega) = \int_{-\infty}^{\infty} f(t) \mathrm{e}^{-j\omega t} dt \qquad \Rightarrow \qquad \mathfrak{F}^{-1}(F(\omega)) = f(t) = \frac{1}{2 \pi} \int_{-\infty}^{\infty} F(\omega) \mathrm{e}^{j \omega t} d\omega. \] -Damit beschäftigen wir uns im Abschnitt \ref{reedsolomon:subsection:algdec} weiter, konkret suchen wir momentan aber eine Inverse für unsere primitive Einheitswurzel $a$. +Im wesentlichen ändert sich bei der inversen diskreten Fouriertransformation $e^{j/2\pi}$ zu $e^{-j/2\pi}$. Zusätzlich benötigt die inverse noch einen Korrekturfaktor $1/n$. Wir erwarten daher, dass wir auch im endlichen Körper $A$ die Zahl $a$ durch $a^{-1}$ ersetzen können. Mit der primitiven Einheitswurzel ergibt das +%Damit beschäftigen wir uns im Abschnitt \ref{reedsolomon:subsection:sfaktor} weiter, konkret suchen wir momentan aber eine Inverse für unsere primitive Einheitswurzel $a$. \[ -8^1 \qquad \rightarrow \qquad 8^{-1} +8^1 \qquad \rightarrow \qquad 8^{-1}. \] -Mit einem solchen Problem haben wir uns bereits in Abschnitt \ref{buch:section:euklid} befasst und so den euklidischen Algorithmus kennengelernt, den wir auf unseren Fall anwenden können. +Mit einem solchen Problem haben wir uns bereits in Abschnitt \ref{buch:section:euklid} befasst und so den euklidischen Algorithmus kennengelernt, den wir auf diesen Fall anwenden können. % Old Text %Im Abschnitt \textcolor{red}{4.1} haben wir den euklidischen Algorithmus kennengelernt, den wir auf unseren Fall anwenden können. @@ -45,7 +46,7 @@ Mit einem solchen Problem haben wir uns bereits in Abschnitt \ref{buch:section:e \subsection{Inverse der primitiven Einheitswurzel \label{reedsolomon:subsection:invEinh}} -Die Funktionsweise des euklidischen Algorithmus ist im Kapitel \ref{buch:section:euklid} ausführlich beschrieben. +Die Funktionsweise des euklidischen Algorithmus ist im Abschnitt \ref{buch:section:euklid} ausführlich beschrieben. Für unsere Anwendung wählen wir die Parameter $a = 8$ und $b = 11$ ($\mathbb{F}_{11}$). Daraus erhalten wir @@ -76,21 +77,114 @@ Daraus erhalten wir \end{tabular} \end{center} -als Inverse der primitiven Einheitswurzel. Die inverse Transformationsmatrix $A^{-1}$ bilden wir indem wir jetzt die inverse primitive Einheitswurzel anstelle der primitiven Einheitswurzel in die Matrix einsetzen. +als Inverse der primitiven Einheitswurzel. +Alternativ können wir das Resultat auch aus der Tabelle \ref{reedsolomon:subsection:mptab} ablesen. +Die inverse Transformationsmatrix $A^{-1}$ bilden wir, indem wir jetzt die inverse primitive Einheitswurzel anstelle der primitiven Einheitswurzel in die Matrix einsetzen: +\[ +\begin{pmatrix} + 8^0 & 8^0 & 8^0 & 8^0 & \dots & 8^0 \\ + 8^0 & 8^{-1} & 8^{-2} & 8^{-3} & \dots & 8^{-9} \\ + 8^0 & 8^{-2} & 8^{-4} & 8^{-6} & \dots & 8^{-18} \\ + 8^0 & 8^{-3} & 8^{-6} & 8^{-9} & \dots & 8^{-27} \\ + \vdots & \vdots & \vdots & \vdots & \ddots & \vdots \\ + 8^0 & 8^{-9} & 8^{-18} & 8^{-27} & \dots & 8^{-81} \\ +\end{pmatrix} +\qquad +\Rightarrow +\qquad +\begin{pmatrix} + 7^0 & 7^0 & 7^0 & 7^0 & \dots & 7^0 \\ + 7^0 & 7^{1} & 7^{2} & 7^{3} & \dots & 7^{9} \\ + 7^0 & 7^{2} & 7^{4} & 7^{6} & \dots & 7^{18} \\ + 7^0 & 7^{3} & 7^{6} & 7^{9} & \dots & 7^{27} \\ + \vdots & \vdots & \vdots & \vdots & \ddots & \vdots \\ + 7^0 & 7^{9} & 7^{18} & 7^{27} & \dots & 7^{81} \\ +\end{pmatrix} +\] -\subsection{Allgemeine Decodierung - \label{reedsolomon:subsection:algdec}} +\subsection{Der Faktor $s$ + \label{reedsolomon:subsection:sfaktor}} +Die diskrete Fouriertransformation benötigt für die Inverse einen Vorfaktor von $\frac{1}{2\pi}$. +Wir müssen also damit rechnen, dass wir für die Inverse Transformationsmatrix ebenfalls einen solchen Vorfaktor benötigen. +Nur stellt sich jetzt die Frage, wie wir diesen Vorfaktor in unserem Fall ermitteln können. +Dafür betrachten wir eine Regel aus der linearen Algebra, nämlich dass -Wir haben jetzt fast alles für eine erfolgreiche Rücktransformation beisammen. Wir haben aber noch nicht alle Aspekte der inversen diskreten Fouriertransformation befolgt, so fehlt uns noch einen Vorfaktor \[ -m = \textcolor{red}{s} \cdot A^{-1} \cdot v +A \cdot A^{-1} = E +\] +entsprechen muss. +Ist dies nicht der Fall, so benötigt $A^{-1}$ eben genau diesen Korrekturfaktor und ändert die Gleichung so zu +\begin{equation} + A \cdot s \cdot A^{-1} = E. + \label{reedsolomon:equation:sfaktor} +\end{equation} +%\[ +%A \cdot s \cdot A^{-1} = E. +%\] +Somit sollte es für uns ein leichtes Spiel sein, $s$ für unser Beispiel zu ermitteln: +\[ +\begin{pmatrix} + 8^0 & 8^0 & 8^0 & \dots & 8^0 \\ + 8^0 & 8^1 & 8^2 & \dots & 8^9 \\ + 8^0 & 8^2 & 8^4 & \dots & 8^{18} \\ + \vdots & \vdots & \vdots & \ddots & \vdots \\ + 8^0 & 8^9 & 8^{18} & \dots & 8^{81} \\ +\end{pmatrix} +\cdot +\begin{pmatrix} + 7^0 & 7^0 & 7^0 & \dots & 7^0 \\ + 7^0 & 7^{1} & 7^{2} & \dots & 7^{9} \\ + 7^0 & 7^{2} & 7^{4} & \dots & 7^{18} \\ + \vdots & \vdots & \vdots & \ddots & \vdots \\ + 7^0 & 7^{9} & 7^{18} & \dots & 7^{81} \\ +\end{pmatrix} += +\begin{pmatrix} + 10 & 0 & 0 & \dots & 0 \\ + 0 & 10 & 0 & \dots & 0 \\ + 0 & 0 & 10 & \dots & 0 \\ + \vdots & \vdots & \vdots & \ddots & \vdots \\ + 0 & 0 & 0 & \dots & 10 \\ +\end{pmatrix} \] -den wir noch bestimmen müssen. -Glücklicherweise lässt der sich analog wie bei der inversen diskreten Fouriertransformation bestimmen und beträgt +Aus der letzten Matrix folgt, dass wir \[ -s = \frac{1}{10}. +s = \dfrac{1}{10} \] -Da $\frac{1}{10} = 10^{-1}$ entspricht können wir $s$ ebenfalls mit dem euklidischen Algorithmus bestimmen und stellen fest, dass $10^{-1} = 10$ in $\mathbb{F}_{11}$ ergibt. Somit lässt sich der Nachrichtenvektor einfach bestimmen mit +als unseren Vorfaktor setzen müssen um, die Gleichung \ref{reedsolomon:equation:sfaktor} zu erfüllen. Da wir in $\mathbb{F}_{11}$ nur mit ganzen Zahlen arbeiten, schreiben wir $\frac{1}{10}$ in $10^{-1}$ um und bestimmen diese Inverse erneut mit dem euklidischen Algorithmus. So erhalten wir $10^{-1} = 10$ als Vorfaktor in $\mathbb{F}_{11}$. +% +%erfüllt wird. Wir schreiben den Bruch um in $\frac{1}{10} = 10^{-1}$ und wenden darauf erneut den euklidischen Algorithmus an und erhalten somit den Vorfaktor $10^{-1} = 10 = s$ in $\mathbb{F}_{11}$. +% +%Um $s$ eindeutig zu bestimmen müssen wir $\frac{1}{10}$ nur noch in den Bereich von $\mathbb{F}_{11}$ verschieben. Wie sich herausstellt können wir das recht einfach bewerkstelligen, da $\frac{1}{10} = 10^{-1}$ entspricht. Daraus können wir $s$ mit dem euklidischen Algorithmus bestimmen und stellen fest, dass $10^{-1} = 10$ in $\mathbb{F}_{11}$ ergibt. +% +%Da $s$ jetzt ein Bruch ist brauchen wir ihn nur noch in $\mathbb{F}_{11}$ zu schieben. Praktischerweise können wir $\frac{1}{10} = 10^{-1}$ darstellen +% +%Da $\frac{1}{10} = 10^{-1}$ entspricht können wir $s$ ebenfalls mit dem euklidischen Algorithmus bestimmen und stellen fest, dass $10^{-1} = 10$ in $\mathbb{F}_{11}$ ergibt. +% +%Daher nehmen wir an, dass wir für die Inverse Transformationsmatrix ebenfalls ein solcher Vorfaktor benötigen. Dieser Faktor hat seinen Ursprung in der Gleichung +%\[ +%A \cdot A^{-1} = E. +%\] +%Sollte diese Gleichung nicht aufgehen, so muss die Inverse mit +\subsection{Allgemeine Decodierung + \label{reedsolomon:subsection:algdec}} + +Wir haben jetzt alles für eine erfolgreiche Rücktransformation vom empfangenen Nachrichtenvektor beisammen. Die allgemeine Gleichung für die Rücktransformation lautet +\[ +m = s \cdot A^{-1} \cdot v. +\] +Setzen wir nun die Werte ein in +% +%Wir haben aber noch nicht alle Aspekte der inversen diskreten Fouriertransformation befolgt, so fehlt uns noch einen Vorfaktor +%\[ +%m = \textcolor{red}{s} \cdot A^{-1} \cdot v +%\] +%den wir noch bestimmen müssen. +%Glücklicherweise lässt der sich analog wie bei der inversen diskreten Fouriertransformation bestimmen und beträgt +%\[ +%s = \frac{1}{10}. +%\] +%Da $\frac{1}{10} = 10^{-1}$ entspricht können wir $s$ ebenfalls mit dem euklidischen Algorithmus bestimmen und stellen fest, dass $10^{-1} = 10$ in $\mathbb{F}_{11}$ ergibt. Somit lässt sich der Nachrichtenvektor einfach bestimmen mit \[ m = 10 \cdot A^{-1} \cdot v \qquad \Rightarrow \qquad m = 10 \cdot \begin{pmatrix} 7^0& 7^0& 7^0& 7^0& 7^0& 7^0& 7^0& 7^0& 7^0& 7^0\\ diff --git a/buch/papers/reedsolomon/dtf.tex b/buch/papers/reedsolomon/dtf.tex new file mode 100644 index 0000000..4552bed --- /dev/null +++ b/buch/papers/reedsolomon/dtf.tex @@ -0,0 +1,85 @@ +% +% dtf.tex -- Idee mit DFT +% +\section{Übertragung mit Hilfe der Diskrten Fourientransformation +\label{reedsolomon:section:dtf}} +\rhead{Umwandlung mit DTF} +Um die Polynominterpolation zu umgehen, gehen wir nun über in die Fourietransformation. +Dies wird weder eine Erklärung der Forientransorfmation, noch ein genauer gebrauch für den Reed-Solomon-Code. +Dieser Abschnitt zeigt nur wie die Fourietransformation auf Fehler reagiert. +Das ganze zeigen wir mit einem Beispiel einer Übertragung von Zahlen mit Hilfe der Fourietransformation. + +\subsection{Diskrete Fourietransformation Zusamenhang +\label{reedsolomon:subsection:dtfzusamenhang}} +Mit hilfe der Fourietransformation werden die \textcolor{blue}{blauen Datenpunkte} transformiert, +zu den \textcolor{darkgreen}{grünen Übertragungspunkten}. +Durch eine Rücktransformation könnnen die \textcolor{blue}{blauen Datenpunkte} wieder rekonstruiert werden. + +\subsubsection{Beispiel einer Übertragung +\label{reedsolomon:subsection:Übertragungsabfolge}} +Der Auftrag ist nun 64 Daten zu übertragen und nach 32 Fehler abzusicheren, +16 Fehler erkennen und rekonstruieren. + +Dieser Auftrag soll mittels Fouriertransformation bewerkstelligt werden. +In der Abbildung \ref{reedsolomon:subsection:Übertragungsabfolge} sieht man dies Schritt für Schritt, +und hier werden die einzelne Schritte erklärt: +\begin{enumerate}[(1)] + \item Das Signal hat 64 die Daten $k$, hier zufällige Zahlen, welche übertragen werden sollen. + Zusätzlich soll nach 16 Fehler $t$, die rekonstruierbar sind abgesichert werden. + Das macht dann insgesamt $k + 2t = + 64 +2 \cdot 16= 96$ Übertragungszahlen. + (siehe Abschnitt \externaldocument{papers/reedsolomon/idee}\ref{reedsolomon:section:Fehlerkorrekturstellen}) + Die 32 Fehlerkorrekturstellen werden als Nullzahlen Übertragen. + \item Nun werden mittels der diskreten Fourietransformation diese 96 codiert, transformiert. + Das heisst alle Informationen ist in alle Zahlenvorhanden, auch die Fehlerkorrekturstellen Nullzahlen. + \item Nun kommen drei Fehler dazu an den Übertragungsstellen 7, 21 und 75. + Die Fehler können auf den ganzen 96 Übertragungswerten liegen, wie die 75 zeigt. +Zu Beachten ist auch noch, dass der Fehler um das 20- bis 150-Fache kleiner ist.Die Fehlerskala ist rechts. + \item Dieses wird nun Empfangen, man kann keine Fehler erkennen, da diese soviel kleiner sind. + Für das Decodieren wird die Inverse Fourietransformation angewendet, und alle Fehler werden mittransformiert. + \item Nun sieht man die Fehler im decodierten Signal in den Übertragungszahlen. + Von den Übertragungsstellen 64 bis 96 erkennt man, das diese nicht mehr Null sind. + \item Diese Fehlerkorrekturstellen 64 bis 96, dies definieren wir als Syndrom. + In diesem Syndrom ist die Fehlerinformation gespeichert und muss nur noch transformiert werden. + \item Hier sieht man genau wo die Fehler stattgefunden haben. + Leider nicht mehr mit der Qualtiätt der Ursprünglichen Fehler, sie sind nur noch 0.6 oder 0.4 gross. + Obwohl der Fehler um das 20Fache kleiner ist erkennt man im Locator die Fehlerstellen wieder. + \end{enumerate} + Nun haben wir mit Hilfe der Fourietransformation die 3 Fehlerstellen durch das Syndrom lokalisiert, + jetzt gilt es nur noch diese zu korrigieren und wir haben unser originales Signal wieder. +\begin{figure} + \centering + \resizebox{1.1\textwidth}{!}{ + \includegraphics[width=\textwidth]{papers/reedsolomon/figures/plotfft} + %\input{papers/reedsolomon/tikz/plotfftraw.tex} + } + \caption{Übertragungsabfolge \ref{reedsolomon:subsection:Übertragungsabfolge}} + \label{fig:sendorder} +\end{figure} + +Nun zur Definition der Diskrete Fourietransformation, diese ist definiert als + \begin{equation} + \hat{c}_{k} + = \frac{1}{N} \sum_{n=0}^{N-1} + {f}_n \cdot e^{-\frac{2\pi j}{N} \cdot kn}. + ,\label{reedsolomon:DFT} + \end{equation} + Wenn man nun + \begin{equation} + w = + e^{-\frac{2\pi j}{N} k} + \label{reedsolomon:DFT_summand} + \end{equation} + ersetzte, und $N$ konstantbleibt, erhält man + \begin{equation} + \hat{c}_{k}= + \frac{1}{N}( {f}_0 w^0 + {f}_1 w^1 + {f}_2 w^2 + \dots + {f}_{N-1} w^N) + \label{reedsolomon:DFT_polynom} + \end{equation} + was überaust ähnlich zu unserem Polynomidee ist. +Die Polynominterpolation und die Fourietransformation rechnen beide mit reelen Zahlen. +Wenn die Fehlerabweichung sehr sehr klein ist, erkennt man diese irgendwann nicht mehr. +Zusätzlich muss mann immer Grenzen bestimmen auf wieviel Stellen gerechnet wird und wie die Fehler erkannt werden im Locator. +Deshalb haben Mathematiker einen neuen Körper gesucht und ihn in der Endlichkeit gefunden, +dies wird nun im nächsten Abschnitt genauer erklärt. + diff --git a/buch/papers/reedsolomon/einleitung.tex b/buch/papers/reedsolomon/einleitung.tex new file mode 100644 index 0000000..074df05 --- /dev/null +++ b/buch/papers/reedsolomon/einleitung.tex @@ -0,0 +1,17 @@ +% +% einleitung.tex -- Beispiel-File für die Einleitung +% +% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% +\section{Einleitung +\label{reedsolomon:section:einleitung}} +\rhead{Einleitung} +Der Reed-Solomon-Code ist entstanden um, +das Problem der Fehler bei der Datenübertragung, zu lösen. +In diesem Abschnitt wird möglichst verständlich die mathematische Abfolge, +Funktion oder Algorithmus des Reed-Solomon-Code erklärt. +Es wird jedoch nicht auf die technische Umsetzung oder Implementierung eingegangen. + + + + diff --git a/buch/papers/reedsolomon/endlichekoerper.tex b/buch/papers/reedsolomon/endlichekoerper.tex index 146067a..1d196fd 100644 --- a/buch/papers/reedsolomon/endlichekoerper.tex +++ b/buch/papers/reedsolomon/endlichekoerper.tex @@ -1,14 +1,14 @@ % -% teil1.tex -- Beispiel-File für das Paper +% endlichekoerper.tex -- endliche Körper % -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% (c) 2021 Michael Steiner, Hochschule Rapperswil % \section{Reed-Solomon in Endlichen Körpern \label{reedsolomon:section:endlichekoerper}} -\rhead{Problemstellung} - -\textcolor{red}{TODO: (warten auf den 1. Teil)} - +\rhead{Reed-Solomon in endlichen Körpern} +\[ +\textcolor{red}{\text{TODO: (warten auf den 1. Teil)}} +\] Das Rechnen in endlichen Körpern bietet einige Vorteile: \begin{itemize} diff --git a/buch/papers/reedsolomon/experiments/f.m b/buch/papers/reedsolomon/experiments/f.m index 6bdc741..bf2587c 100644 --- a/buch/papers/reedsolomon/experiments/f.m +++ b/buch/papers/reedsolomon/experiments/f.m @@ -1,8 +1,8 @@ -# -# f.m -- Reed-Solomon-Visualisierung mit FFT -# -# (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule -# +% +% f.m -- Reed-Solomon-Visualisierung mit FFT +% +% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule + N = 64; b = 32; l = N + b; @@ -51,6 +51,7 @@ syndrom(1:N,1) = zeros(N,1) plot(abs(syndrom)); xlim([1, l]); title("Syndrom"); + pause() locator = abs(fft(syndrom)) @@ -59,3 +60,13 @@ plot(locator); xlim([1, l]); title("Locator"); pause() + + +writematrix([transpose(counter), abs(signal)], 'signal.txt') +writematrix([transpose(counter), abs(codiert)], 'codiert.txt') +writematrix([transpose(counter), fehler], 'fehler.txt') +writematrix([transpose(counter), abs(empfangen)], 'empfangen.txt') +writematrix([transpose(counter), abs(decodiert)], 'decodiert.txt') +writematrix([transpose(counter), abs(syndrom)], 'syndrom.txt') +writematrix([transpose(counter), locator], 'locator.txt') + diff --git a/buch/papers/reedsolomon/experiments/plot.tex b/buch/papers/reedsolomon/experiments/plot.tex new file mode 100644 index 0000000..4b156bb --- /dev/null +++ b/buch/papers/reedsolomon/experiments/plot.tex @@ -0,0 +1,103 @@ +% polynome1 +%------------------- +\documentclass[tikz]{standalone} +\usepackage{amsmath} +\usepackage{times} +\usepackage{txfonts} +\usepackage{pgfplots} +\usepackage{csvsimple} +\usepackage{pgfplotstable} +\usepackage{filecontents} +\usetikzlibrary{arrows,intersections,math} +\newcommand{\x}{10} +\newcommand{\y}{-8} +\begin{document} + +\begin{tikzpicture}[] + + %--------------------------------------------------------------- + %Knote + \matrix[draw = none, column sep=20mm, row sep=4mm]{ + \node(signal) [] { + \begin{tikzpicture} + \begin{axis}[ + title = {\Large {Signal}}, + xlabel={Anzahl Übertragene Zahlen}, + xtick={0,20,40,64,80,98},] + \addplot[blue] table[col sep=comma] {signal.txt}; + \end{axis} + \end{tikzpicture}}; & + + \node(codiert) [] { + \begin{tikzpicture} + \begin{axis}[title = {\Large {Codiert}}] + \addplot[] table[col sep=comma] {codiert.txt}; + \end{axis} + \end{tikzpicture}}; \\ + + &\node(fehler) [] { + \begin{tikzpicture} + \begin{axis}[scale=0.6, title = {\Large {Fehler}}] + \addplot[red] table[col sep=comma] {fehler.txt}; + \end{axis} + \end{tikzpicture}};\\ + + \node(decodiert) [] { + \begin{tikzpicture} + \begin{axis}[title = {\Large {Decodiert}}] + \addplot[blue] table[col sep=comma] {decodiert.txt}; + \end{axis} + \end{tikzpicture}}; & + + \node(empfangen) [] { + \begin{tikzpicture} + \begin{axis}[title = {\Large {Empfangen}}] + \addplot[] table[col sep=comma] {empfangen.txt}; + \end{axis} + \end{tikzpicture}};\\ + + \node(syndrom) [] { + \begin{tikzpicture} + \begin{axis}[title = {\Large {Syndrom}}] + \addplot[blue] table[col sep=comma] {syndrom.txt}; + \end{axis} + \end{tikzpicture}}; & + + \node(locator) [] { + \begin{tikzpicture} + \begin{axis}[title = {\Large {Locator}}] + \addplot[] table[col sep=comma] {locator.txt}; + \end{axis} + \end{tikzpicture}};\\ + }; + %------------------------------------------------------------- + %FFT & IFFT deskription + + \draw[thin,gray,dashed] (0,12) to (0,-12); + \node(IFFT) [scale=0.7] at (0,12.3) {IFFT}; + \draw[<-](IFFT.south west)--(IFFT.south east); + \node(FFT) [scale=0.7, above of=IFFT] {FFT}; + \draw[->](FFT.north west)--(FFT.north east); + + \draw[thick, ->,] (fehler.west)++(-1,0) +(0.05,0.5) -- +(-0.1,-0.1) -- +(0.1,0.1) -- +(0,-0.5); + %Arrows + \draw[ultra thick, ->] (signal.east) to (codiert.west); + \draw[ultra thick, ->] (codiert.south) to (fehler.north); + \draw[ultra thick, ->] (fehler.south) to (empfangen.north); + \draw[ultra thick, ->] (empfangen.west) to (decodiert.east); + \draw[ultra thick, ->] (syndrom.east) to (locator.west); + \draw(decodiert.south east)++(-1.8,1) ellipse (1.3cm and 0.8cm) ++(-1.3,0) coordinate(zoom) ; + \draw[ultra thick, ->] (zoom) to[out=180, in=90] (syndrom.north); + + %item + \node[circle, draw, fill =lightgray] at (signal.north west) {1}; + \node[circle, draw, fill =lightgray] at (codiert.north west) {2}; + \node[circle, draw, fill =lightgray] at (fehler.north west) {3}; + \node[circle, draw, fill =lightgray] at (empfangen.north west) {4}; + \node[circle, draw, fill =lightgray] at (decodiert.north west) {5}; + \node[circle, draw, fill =lightgray] at (syndrom.north west) {6}; + \node[circle, draw, fill =lightgray] at (locator.north west) {7}; + +\end{tikzpicture} +\end{document} + diff --git a/buch/papers/reedsolomon/figures/plotfft.pdf b/buch/papers/reedsolomon/figures/plotfft.pdf Binary files differnew file mode 100644 index 0000000..80d17d2 --- /dev/null +++ b/buch/papers/reedsolomon/figures/plotfft.pdf diff --git a/buch/papers/reedsolomon/figures/polynom2.pdf b/buch/papers/reedsolomon/figures/polynom2.pdf Binary files differnew file mode 100644 index 0000000..55a50ac --- /dev/null +++ b/buch/papers/reedsolomon/figures/polynom2.pdf diff --git a/buch/papers/reedsolomon/hilfstabellen.tex b/buch/papers/reedsolomon/hilfstabellen.tex index 4e39de5..24fabdf 100644 --- a/buch/papers/reedsolomon/hilfstabellen.tex +++ b/buch/papers/reedsolomon/hilfstabellen.tex @@ -1,10 +1,9 @@ % -% hilfstabellen.tex -% Autor: Michael Steiner +% hilfstabellen.tex -- Hilfstabellen % -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% (c) 2021 Michael Steiner, Hochschule Rapperswil % -\section{$\mathbb{F}_{11}$ Hilfstabellen +\section{Hilfstabellen für $\mathbb{F}_{11}$ \label{reedsolomon:section:hilfstabellen}} \rhead{Hilfstabellen} diff --git a/buch/papers/reedsolomon/idee.tex b/buch/papers/reedsolomon/idee.tex new file mode 100644 index 0000000..41e0d4c --- /dev/null +++ b/buch/papers/reedsolomon/idee.tex @@ -0,0 +1,111 @@ +% +% idee.tex -- Polynom Idee +% +\section{Idee +\label{reedsolomon:section:idee}} +\rhead{Problemstellung} +Um beim Datenübertragen Fehler zu erkennen, könnte man die Daten jeweils doppelt senden, +und so jeweilige Fehler zu erkennen. +Doch nur schon um Fehler zu erkennen werden überproportional viele Daten doppelt und dreifach gesendet. +Der Reed-Solomon-Code macht dies auf eine andere, clevere Weise. +Das Problem liegt darin Informationen, Zahlen, +zu Übertragen und Fehler zu erkennen. +Speziell beim Reed-Solomon-Code kann man nicht nur Fehler erkennen, +man kann sogar einige Fehler korrigieren. +Der Unterschied des Fehler erkennen und korrigiren, ist das beim Erkennen nur die Frage beantwortet wird: Ist die Übertragung fehlerhaft oder nicht? +Beim Korrigieren werden Fehler erkannt und dann zusätzlich noch den original Wert rekonstruieren. +Auch eine Variante wäre die Daten nach einer Fehlerhaften sendung, nochmals zum senden auffordern(auch hier wird doppelt und dreifach gesendung), +was bei Reed-Solomon-Code-Anwendungen nicht immer sinnvoll ist. +Anwendungen finden sind im Abchnitt \externaldocument{papers/reedsolomon/anwendungen} +\ref{reedsolomon:section:anwendung} beschrieben. + +\subsection{Polynom-Ansatz +\label{reedsolomon:section:polynomansatz}} +\rhead{Polynom-Ansatz} +Eine Idee ist, aus den Daten ein Polynom zu bilden. +Diese Polynomfunktion bei bestimmten Werten errechnet und diese Punkte dann überträgt. +\begin{beispiel} Nehmen wir die Zahlen \textcolor{blue}{2}, \textcolor{blue}{1}, \textcolor{blue}{5}, +welche uns dann das Polynom +\begin{equation} +p(x) += +\textcolor{blue}{2}x^2 + \textcolor{blue}{1}x + \textcolor{blue}{5} +\label{reedsolomon:equation1} +\end{equation} +ergeben. +Übertragen werden nun die \textcolor{darkgreen}{grünen Werte} +dieses \textcolor{blue}{blauen Polynomes} an den Stellen 1, 2, 3\dots 7 dieses Polynomes. +Grafisch sieht man dies dann in Abbildung \ref{fig:polynom}, +mit den Punkten, $p(1),p(2),...,p(7) = (\textcolor{darkgreen}{8}, +\textcolor{darkgreen}{15}, \textcolor{darkgreen}{26}, +\textcolor{darkgreen}{41}, \textcolor{darkgreen}{60}, +\textcolor{darkgreen}{83}, \textcolor{darkgreen}{110})$ +Wenn ein Fehler sich in die Übertragung eingeschlichen hat, muss der Leser/Empfänger diesen erkennen und das Polynom rekonstruieren. +Der Leser/Empfänger weiss, den Grad des Polynoms und dessen \textcolor{darkgreen}{Werte} übermittelt wurden. +Die Farbe blau brauchen wir für die \textcolor{blue}{Daten} welche wir mit der Farbe grün \textcolor{darkgreen}{Übermitteln}. +\end{beispiel} + +\begin{beispiel} +Ein Polynome zweiten Grades ist durch drei Punkte eindeutig bestimmbar. +Hat es Fehler in der Übertragunge gegeben,in der Abbilbung \ref{fig:polynom} die \textcolor{red}{roten Punkte}). +Erkennt man diese Fehler, da alle korrekten Punkte auf der Parabel liegen müssen. +Die \textcolor{darkgreen}{grünen Punkte} bestimmen die Parabel, und die Fehler können zu den +\textcolor{gray}{Orginalpunkte} rekonstruiert werden. +Ab wie vielen Fehler ist das Polynom nicht mehr erkennbar beim Übertragen von 7 Punkten? +Bei 2 Fehlern kann man noch eindeutig bestimmen, dass das Polynom mit 4 Punkten, +gegenüber dem mit 5 Punkten falsch liegt. \ref{fig:polynom} +Werden es mehr Fehler kann nur erkannt werden, dass das Polynom nicht stimmt. +Das orginale Polynom kann aber nicht mehr gefunden werden. +Da andere Polynome oder das Konkurrenzpolynom, grau gestrichelt in Abbildung \ref{fig:polynom}, das orginal fehlleitet. +Um das Konkurrenzpolynom auszuschliessen, währen mehr \textcolor{darkgreen}{Übertragungspunkte} nötig. +\end{beispiel} + +\begin{figure}%[!ht] + \centering + %\includegraphics[width=\textwidth]{papers/reedsolomon/figures/polynom2} + \input{papers/reedsolomon/tikz/polynomraw.tex} + \caption{Polynom $p(x)$ von der Gleichung\eqref{reedsolomon:equation1}} + \label{fig:polynom} +\end{figure} + +\section{Fehlerkorekturstellen bestimmen +\label{reedsolomon:section:Fehlerkorrekturstellen}} +Um zu bestimmen wieviel zusätzliche \textcolor{darkgreen}{Übertragungspunkte} notwendig sind, um die Fehler zu korrigieren, +muss man zuerst wissen, wieviel \textcolor{blue}{Daten} gesendet und wieviel \textcolor{red}{Fehler} erkennt werden sollen. +Die Anzahl \textcolor{blue}{Daten} (ab hier verwenden wir das Wort Nutzlast), die als Polynomkoeffizente $k$ übergeben werden, +brauchen die gleiche Anzahl an Polynomkoeffizententräger, beginnend bei Grad 0 somit ergibt sich der Polynomgrad mit $k-1$. +Für die Anzahl der Fehler $t$, welche korrigiert werden können, gehen wir zum Beispiel. +\begin{beispiel} von den Polynom \ref{reedsolomon:equation1} in, welchem wir \textcolor{darkgreen}{7 Übertragungspunkte} senden. +Durch 3 Punkte wird das Polyom eindeutig bestimmt, nun haben wir mehrere Konkurrenzpolynome, doch mit maximal 2 Fehler liegen auf einem Konkurrenzpolynom, +maximal 4 Punkte und auf unserem orginal 5 Punkte. Ansonsten hatt es mehr Fehler oder unser Konkurrenzpolynom ist das gleiche wie das Original. +Somit können wir nun bestimmen, dass von den \textcolor{darkgreen}{7 Übertragungspunkten$u$} bis zu 2 Fehler korrigiert werden können und 4 Übertragungspunkte zusätzlich gesendet werden müssen. +\end{beispiel} +Man könnte auch dies in der Tabelle \ref{tab:fehlerkorrekturstellen} erkennen, doch mit dieser Gleichung +\begin{equation} + \frac{\textcolor{darkgreen}{u}-\textcolor{blue}{k}}{\textcolor{red}{t}} + =2 + \label{reedsolomon:equation2} +\end{equation} +zeigt sich, dass es $k+2t$ Übertragungspunkte braucht. + +\begin{table} + \centering + \begin{tabular}{ c c | c} + \hline + Nutzlas & Fehler & Übertragen \\ + \hline + 3 & 2 & 7 Werte eines Polynoms vom Grad 2 \\ + 4 & 2 & 8 Werte eines Polynoms vom Grad 3 \\ + 3 & 3 & 9 Werte eines Polynoms vom Grad 2 \\ + \hline + $k$ & $t$ & $k+2t$ Werte eines Polynoms vom Grad $k-1$ \\ + \hline + \end{tabular} + \caption{ Fehlerkorrekturstellen Bestimmung.} + \label{tab:fehlerkorrekturstellen} +\end{table} + +Ein Nebeneffekt ist, dass dadurch auch $2t$ Fehler erkannt werden können, nicht aber korrigiert. +Um aus den übertragenen Zahlen wieder die Nutzlastzahlen zu bekommen könnte man eine Polynominterpolation anwenden, +doch die Punkte mit Polynominterpolation zu einem Polynom zu rekonstruieren ist schwierig und fehleranfällig. + diff --git a/buch/papers/reedsolomon/images/Compact_Disc.png b/buch/papers/reedsolomon/images/Compact_Disc.png Binary files differnew file mode 100644 index 0000000..7e3f870 --- /dev/null +++ b/buch/papers/reedsolomon/images/Compact_Disc.png diff --git a/buch/papers/reedsolomon/images/Compact_Disc_zoomed_in.png b/buch/papers/reedsolomon/images/Compact_Disc_zoomed_in.png Binary files differnew file mode 100644 index 0000000..69556d0 --- /dev/null +++ b/buch/papers/reedsolomon/images/Compact_Disc_zoomed_in.png diff --git a/buch/papers/reedsolomon/images/Voyager_Sonde.png b/buch/papers/reedsolomon/images/Voyager_Sonde.png Binary files differnew file mode 100644 index 0000000..e4dc400 --- /dev/null +++ b/buch/papers/reedsolomon/images/Voyager_Sonde.png diff --git a/buch/papers/reedsolomon/images/designer_qrcode.png b/buch/papers/reedsolomon/images/designer_qrcode.png Binary files differnew file mode 100644 index 0000000..a9e0505 --- /dev/null +++ b/buch/papers/reedsolomon/images/designer_qrcode.png diff --git a/buch/papers/reedsolomon/images/designer_qrcode_ohnelogo.png b/buch/papers/reedsolomon/images/designer_qrcode_ohnelogo.png Binary files differnew file mode 100644 index 0000000..fe4251d --- /dev/null +++ b/buch/papers/reedsolomon/images/designer_qrcode_ohnelogo.png diff --git a/buch/papers/reedsolomon/images/qrcode_h.png b/buch/papers/reedsolomon/images/qrcode_h.png Binary files differnew file mode 100644 index 0000000..4dc5779 --- /dev/null +++ b/buch/papers/reedsolomon/images/qrcode_h.png diff --git a/buch/papers/reedsolomon/images/qrcode_l.png b/buch/papers/reedsolomon/images/qrcode_l.png Binary files differnew file mode 100644 index 0000000..69f807f --- /dev/null +++ b/buch/papers/reedsolomon/images/qrcode_l.png diff --git a/buch/papers/reedsolomon/main.tex b/buch/papers/reedsolomon/main.tex index fa20936..017fe94 100644 --- a/buch/papers/reedsolomon/main.tex +++ b/buch/papers/reedsolomon/main.tex @@ -1,37 +1,17 @@ % % main.tex -- Paper zum Thema <reedsolomon> % -% (c) 2020 Hochschule Rapperswil +% (c) 2021 Joshua Bär und Michael Steiner, Hochschule Rapperswil % \chapter{Reed-Solomon-Code\label{chapter:reedsolomon}} -\lhead{Thema} +\lhead{Reed-Solomon-Code} \begin{refsection} \chapterauthor{Joshua Bär und Michael Steiner} -Ein paar Hinweise für die korrekte Formatierung des Textes -\begin{itemize} -\item -Absätze werden gebildet, indem man eine Leerzeile einfügt. -Die Verwendung von \verb+\\+ ist nur in Tabellen und Arrays gestattet. -\item -Die explizite Platzierung von Bildern ist nicht erlaubt, entsprechende -Optionen werden gelöscht. -Verwenden Sie Labels und Verweise, um auf Bilder hinzuweisen. -\item -Beginnen Sie jeden Satz auf einer neuen Zeile. -Damit ermöglichen Sie dem Versionsverwaltungssysteme, Änderungen -in verschiedenen Sätzen von verschiedenen Autoren ohne Konflikt -anzuwenden. -\item -Bilden Sie auch für Formeln kurze Zeilen, einerseits der besseren -Übersicht wegen, aber auch um GIT die Arbeit zu erleichtern. -\end{itemize} - % Joshua -\input{papers/reedsolomon/teil0.tex} -\input{papers/reedsolomon/teil1.tex} -\input{papers/reedsolomon/teil2.tex} -\input{papers/reedsolomon/teil3.tex} +\input{papers/reedsolomon/einleitung.tex} +\input{papers/reedsolomon/idee.tex} +\input{papers/reedsolomon/dtf.tex} % Michael \input{papers/reedsolomon/endlichekoerper} @@ -39,12 +19,19 @@ Bilden Sie auch für Formeln kurze Zeilen, einerseits der besseren \input{papers/reedsolomon/decohnefehler} \input{papers/reedsolomon/decmitfehler} \input{papers/reedsolomon/rekonstruktion} -\input{papers/reedsolomon/nachschlagewerk} +\input{papers/reedsolomon/zusammenfassung} +\input{papers/reedsolomon/anwendungen} \input{papers/reedsolomon/hilfstabellen} -%\input{papers/reedsolomon/anwendungen} -> geplant \nocite{reedsolomon:weitz} \nocite{reedsolomon:informationkommunikation} +\nocite{reedsolomon:voyager_programm} +\nocite{reedsolomon:voyager} +\nocite{reedsolomon:cd_wiki} +\nocite{reedsolomon:cd} +\nocite{reedsolomon:strichepunkte} +\nocite{reedsolomon:qr_wiki} +\nocite{reedsolomon:qr} %\nocite{reedsolomon:mendezmueller} \printbibliography[heading=subbibliography] diff --git a/buch/papers/reedsolomon/nachschlagewerk.tex b/buch/papers/reedsolomon/nachschlagewerk.tex deleted file mode 100644 index 60b857e..0000000 --- a/buch/papers/reedsolomon/nachschlagewerk.tex +++ /dev/null @@ -1,4 +0,0 @@ -\section{Nachschlagewerk - \label{reedsolomon:section:nachschlagen}} -\rhead{nachschlagewerk} -todo: auflistung von z.b nachrichtenvektor, übertragungsvektor usw. inklusiver erklärung was es ist falls man beim lesen den faden verliert
\ No newline at end of file diff --git a/buch/papers/reedsolomon/packages.tex b/buch/papers/reedsolomon/packages.tex index 3643731..40c6ea3 100644 --- a/buch/papers/reedsolomon/packages.tex +++ b/buch/papers/reedsolomon/packages.tex @@ -8,3 +8,7 @@ % following example %\usepackage{packagename} +\usepackage{pgfplots} +\usepackage{filecontents} +\usepackage{xr} + diff --git a/buch/papers/reedsolomon/references.bib b/buch/papers/reedsolomon/references.bib index 731bd35..b84b5a4 100644 --- a/buch/papers/reedsolomon/references.bib +++ b/buch/papers/reedsolomon/references.bib @@ -23,3 +23,65 @@ volume = {1} } +@online{reedsolomon:voyager_programm, + title = {Information über das Voyager Programm}, + url = {https://de.wikipedia.org/wiki/Voyager-Programm}, + date = {2021-07-19}, + year = {2021}, + month = {7}, + day = {19} +} + +@online{reedsolomon:voyager, + title = {Bild der Voyager Raumsonde}, + url = {https://en.wikipedia.org/wiki/Voyager_1}, + date = {2021-07-19}, + year = {2021}, + month = {7}, + day = {19} +} + +@online{reedsolomon:cd_wiki, + title = {Alles über die CD}, + url = {https://de.wikipedia.org/wiki/Compact_Disc}, + date = {2021-07-19}, + year = {2021}, + month = {7}, + day = {19} +} + +@online{reedsolomon:cd, + title = {Abbildung einer CD}, + url = {https://www.stickpng.com/img/electronics/compact-discs/stack-compact-disc}, + date = {2021-07-19}, + year = {2021}, + month = {7}, + day = {19} +} + +@online{reedsolomon:strichepunkte, + title = {Abbildung der Striche und Punkte einer CD}, + url = {https://www.researchgate.net/figure/The-readable-area-of-a-CD-is-magnified-in-order- to-see-the-pit-and-land-sizing-The_fig7_303401629}, + date = {2021-07-26}, + year = {2021}, + month = {7}, + day = {26} +} + +@online{reedsolomon:qr_wiki, + title = {Funktionsweise des QR-Codes}, + url = {https://de.wikipedia.org/wiki/QR-Code}, + date = {2021-07-19}, + year = {2021}, + month = {7}, + day = {19} +} + +@online{reedsolomon:qr, + title = {Tool zum erstellen von QR-Codes}, + url = {https://www.qrcode-generator.ch}, + date = {2021-07-19}, + year = {2021}, + month = {7}, + day = {19} +}
\ No newline at end of file diff --git a/buch/papers/reedsolomon/rekonstruktion.tex b/buch/papers/reedsolomon/rekonstruktion.tex index 89a700f..b099e68 100644 --- a/buch/papers/reedsolomon/rekonstruktion.tex +++ b/buch/papers/reedsolomon/rekonstruktion.tex @@ -1,13 +1,12 @@ % -% rekonstruktion.tex -% Autor: Michael Steiner +% rekonstruktion.tex -- Rekonstruktion % -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% (c) 2021 Michael Steiner, Hochschule Rapperswil % -\section{Nachricht Rekonstruieren +\section{Nachricht rekonstruieren \label{reedsolomon:section:rekonstruktion}} -\rhead{Rekonstruktion} -Im letzten Kapitel haben wir eine Möglichkeit gefunden, wie wir die fehlerhaften Stellen lokalisieren können. +\rhead{Rekonstruktion der Nachricht} +Im letzten Abschnitt haben wir eine Möglichkeit gefunden, wie wir die fehlerhaften Stellen lokalisieren können. Mit diesen Stellen soll es uns nun möglich sein, aus dem fehlerhaften empfangenen Nachrichtenvektor wieder unsere Nachricht zu rekonstruieren. Das Lokatorpolynom \[ @@ -21,7 +20,7 @@ Als Ausgangslage verwenden wir die Matrix, mit der wir den Nachrichtenvektor urs Unser Ziel ist es wie auch schon im Abschnitt \ref{reedsolomon:section:decohnefehler} eine Möglichkeit zu finden, wie wir den Übertragungsvektor decodieren können. Aufgrund der Fehlerstellen müssen wir aber davon ausgehen, das wir nicht mehr den gleichen Weg verfolgen können wie wir im Abschnitt \ref{reedsolomon:section:decohnefehler} angewendet haben. -Wir stellen also die Matrix auf und markieren gleichzeitig die Fehlerstellen. +Wir stellen also die Matrix auf und markieren gleichzeitig die Fehlerstellen: \[ \textcolor{gray}{ \begin{pmatrix} @@ -47,8 +46,9 @@ Wir stellen also die Matrix auf und markieren gleichzeitig die Fehlerstellen. \begin{pmatrix} m_0 \\ m_1 \\ m_2 \\ m_3 \\ m_4 \\ m_5 \\ m_6 \\ m_7 \\ m_8 \\ m_9 \\ \end{pmatrix} +. \] -Die rot markierten Stellen im Übertragungsvektor enthalten Fehler und bringt uns daher kein weiterer Nutzen. +Die rot markierten Stellen im Übertragungsvektor enthalten Fehler und bringt uns daher keinen weiteren Nutzen. Aus diesem Grund werden diese Stellen aus dem Vektor entfernt, was wir hier ohne Probleme machen können, da dieser Code ja über Fehlerkorrekturstellen verfügt, deren Aufgabe es ist, eine bestimmte Anzahl an Fehler kompensieren zu können. Die dazugehörigen Zeilen in der Matrix werden ebenfalls entfernt, da die Matrix gleich viele Zeilen wie im Übertragungsvektor aufweisen muss, damit man ihn decodieren kann. @@ -77,6 +77,7 @@ Daraus resultiert Die Matrix ist jedoch nicht mehr quadratisch, was eine Rekonstruktion durch Inversion ausschliesst. Um die quadratische Form wieder herzustellen müssen wir zwei Spalten aus der Matrix entfernen. Wir kennen aber das Resultat aus den letzten vier Spalten, da wir wissen, das die Nachricht aus Nutzdatenteil und Fehlerkorrekturteil besteht, wobei der letzteres bekanntlich aus lauter Nullstellen besteht. +Wir nehmen die markierten Spalten in \[ \begin{pmatrix} 5 \\ 3 \\ 6 \\ 2 \\ 10 \\ 2 \\ 7 \\ 4 \\ @@ -97,7 +98,7 @@ Wir kennen aber das Resultat aus den letzten vier Spalten, da wir wissen, das di m_0 \\ m_1 \\ m_2 \\ m_3 \\ m_4 \\ m_5 \\ \textcolor{darkgreen}{m_6} \\ \textcolor{darkgreen}{m_7} \\ \textcolor{darkgreen}{m_8} \\ \textcolor{darkgreen}{m_9} \\ \end{pmatrix} \] -Wir nehmen die entsprechenden Spalten aus der Matrix heraus und erhalten so das Überbestimmte Gleichungssystem +aus der Matrix heraus und erhalten so das Überbestimmte Gleichungssystem \[ \begin{pmatrix} 5 \\ 3 \\ 6 \\ 2 \\ 10 \\ 2 \\ \textcolor{red}{7} \\ \textcolor{red}{4} \\ @@ -183,3 +184,5 @@ m = [4,7,2,5,8,1] \] zurück, den wir ursprünglich versendet haben. +Wir möchten noch anmerken, dass es mehrere Wege für die Rekonstruktion des Nutzdatenteils gibt, diese aber alle auf dem Lokatorpolynom basieren. + diff --git a/buch/papers/reedsolomon/restetabelle1.tex b/buch/papers/reedsolomon/restetabelle1.tex index 3969ef2..b9a0e59 100644 --- a/buch/papers/reedsolomon/restetabelle1.tex +++ b/buch/papers/reedsolomon/restetabelle1.tex @@ -1,6 +1,8 @@ -% created by Michael Steiner % -% Restetabelle von F_11: Addition +% restetabelle1.tex -- Restetabelle von F_11: Addition +% +% (c) 2021 Michael Steiner, Hochschule Rapperswil +% % alternatives design %\begin{figure} diff --git a/buch/papers/reedsolomon/restetabelle2.tex b/buch/papers/reedsolomon/restetabelle2.tex index 1a9815c..3b13ea2 100644 --- a/buch/papers/reedsolomon/restetabelle2.tex +++ b/buch/papers/reedsolomon/restetabelle2.tex @@ -1,6 +1,8 @@ -% created by Michael Steiner % -% Restetabelle von F_11: Multiplikation +% restetabelle2.tex -- Restetabelle von F_11: Multiplikation +% +% (c) 2021 Michael Steiner, Hochschule Rapperswil +% % alternatives design %\begin{figure} diff --git a/buch/papers/reedsolomon/standalone.tex b/buch/papers/reedsolomon/standalone.tex new file mode 100644 index 0000000..c850d1f --- /dev/null +++ b/buch/papers/reedsolomon/standalone.tex @@ -0,0 +1,30 @@ +\documentclass{book} + +\input{common/packages.tex} + +% additional packages used by the individual papers, add a line for +% each paper +\input{papers/common/addpackages.tex} + +% workaround for biblatex bug +\makeatletter +\def\blx@maxline{77} +\makeatother +\addbibresource{chapters/references.bib} + +% Bibresources for each article +\input{papers/common/addbibresources.tex} + +% make sure the last index starts on an odd page +\AtEndDocument{\clearpage\ifodd\value{page}\else\null\clearpage\fi} +\makeindex + +%\pgfplotsset{compat=1.12} +\setlength{\headheight}{15pt} % fix headheight warning +\DeclareGraphicsRule{*}{mps}{*}{} + +\begin{document} + \input{common/macros.tex} + \def\chapterauthor#1{{\large #1}\bigskip\bigskip} + \input{papers/reedsolomon/main.tex} +\end{document} diff --git a/buch/papers/reedsolomon/standalone/standalone.pdf b/buch/papers/reedsolomon/standalone/standalone.pdf Binary files differnew file mode 100644 index 0000000..4a44333 --- /dev/null +++ b/buch/papers/reedsolomon/standalone/standalone.pdf diff --git a/buch/papers/reedsolomon/teil0.tex b/buch/papers/reedsolomon/teil0.tex deleted file mode 100644 index b7ae971..0000000 --- a/buch/papers/reedsolomon/teil0.tex +++ /dev/null @@ -1,22 +0,0 @@ -% -% einleitung.tex -- Beispiel-File für die Einleitung -% -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil -% -\section{Teil 0\label{reedsolomon:section:teil0}} -\rhead{Teil 0} -Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam -nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam -erat, sed diam voluptua \cite{reedsolomon:bibtex}. -At vero eos et accusam et justo duo dolores et ea rebum. -Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum -dolor sit amet. - -Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam -nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam -erat, sed diam voluptua. -At vero eos et accusam et justo duo dolores et ea rebum. Stet clita -kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit -amet. - - diff --git a/buch/papers/reedsolomon/teil1.tex b/buch/papers/reedsolomon/teil1.tex deleted file mode 100644 index 0aa9b41..0000000 --- a/buch/papers/reedsolomon/teil1.tex +++ /dev/null @@ -1,55 +0,0 @@ -% -% teil1.tex -- Beispiel-File für das Paper -% -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil -% -\section{Teil 1 -\label{reedsolomon:section:teil1}} -\rhead{Problemstellung} -Sed ut perspiciatis unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam, eaque ipsa -quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. -Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit -aut fugit, sed quia consequuntur magni dolores eos qui ratione -voluptatem sequi nesciunt -\begin{equation} -\int_a^b x^2\, dx -= -\left[ \frac13 x^3 \right]_a^b -= -\frac{b^3-a^3}3. -\label{reedsolomon:equation1} -\end{equation} -Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, -consectetur, adipisci velit, sed quia non numquam eius modi tempora -incidunt ut labore et dolore magnam aliquam quaerat voluptatem. - -Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis -suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? -Quis autem vel eum iure reprehenderit qui in ea voluptate velit -esse quam nihil molestiae consequatur, vel illum qui dolorem eum -fugiat quo voluptas nulla pariatur? - -\subsection{De finibus bonorum et malorum -\label{reedsolomon:subsection:finibus}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga \eqref{000tempmlate:equation1}. - -Et harum quidem rerum facilis est et expedita distinctio -\ref{reedsolomon:section:loesung}. -Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil -impedit quo minus id quod maxime placeat facere possimus, omnis -voluptas assumenda est, omnis dolor repellendus -\ref{reedsolomon:section:folgerung}. -Temporibus autem quibusdam et aut officiis debitis aut rerum -necessitatibus saepe eveniet ut et voluptates repudiandae sint et -molestiae non recusandae. -Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis -voluptatibus maiores alias consequatur aut perferendis doloribus -asperiores repellat. - - diff --git a/buch/papers/reedsolomon/teil2.tex b/buch/papers/reedsolomon/teil2.tex deleted file mode 100644 index b2adc9f..0000000 --- a/buch/papers/reedsolomon/teil2.tex +++ /dev/null @@ -1,40 +0,0 @@ -% -% teil2.tex -- Beispiel-File für teil2 -% -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil -% -\section{Teil 2 -\label{reedsolomon:section:teil2}} -\rhead{Teil 2} -Sed ut perspiciatis unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam, eaque ipsa -quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit -aspernatur aut odit aut fugit, sed quia consequuntur magni dolores -eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam -est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci -velit, sed quia non numquam eius modi tempora incidunt ut labore -et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima -veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, -nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure -reprehenderit qui in ea voluptate velit esse quam nihil molestiae -consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla -pariatur? - -\subsection{De finibus bonorum et malorum -\label{reedsolomon:subsection:bonorum}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis -est et expedita distinctio. Nam libero tempore, cum soluta nobis -est eligendi optio cumque nihil impedit quo minus id quod maxime -placeat facere possimus, omnis voluptas assumenda est, omnis dolor -repellendus. Temporibus autem quibusdam et aut officiis debitis aut -rerum necessitatibus saepe eveniet ut et voluptates repudiandae -sint et molestiae non recusandae. Itaque earum rerum hic tenetur a -sapiente delectus, ut aut reiciendis voluptatibus maiores alias -consequatur aut perferendis doloribus asperiores repellat. - - diff --git a/buch/papers/reedsolomon/teil3.tex b/buch/papers/reedsolomon/teil3.tex deleted file mode 100644 index 91a8d4e..0000000 --- a/buch/papers/reedsolomon/teil3.tex +++ /dev/null @@ -1,40 +0,0 @@ -% -% teil3.tex -- Beispiel-File für Teil 3 -% -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil -% -\section{Teil 3 -\label{reedsolomon:section:teil3}} -\rhead{Teil 3} -Sed ut perspiciatis unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam, eaque ipsa -quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit -aspernatur aut odit aut fugit, sed quia consequuntur magni dolores -eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam -est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci -velit, sed quia non numquam eius modi tempora incidunt ut labore -et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima -veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, -nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure -reprehenderit qui in ea voluptate velit esse quam nihil molestiae -consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla -pariatur? - -\subsection{De finibus bonorum et malorum -\label{reedsolomon:subsection:malorum}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis -est et expedita distinctio. Nam libero tempore, cum soluta nobis -est eligendi optio cumque nihil impedit quo minus id quod maxime -placeat facere possimus, omnis voluptas assumenda est, omnis dolor -repellendus. Temporibus autem quibusdam et aut officiis debitis aut -rerum necessitatibus saepe eveniet ut et voluptates repudiandae -sint et molestiae non recusandae. Itaque earum rerum hic tenetur a -sapiente delectus, ut aut reiciendis voluptatibus maiores alias -consequatur aut perferendis doloribus asperiores repellat. - - diff --git a/buch/papers/reedsolomon/tikz/codiert.txt b/buch/papers/reedsolomon/tikz/codiert.txt new file mode 100644 index 0000000..4a481d8 --- /dev/null +++ b/buch/papers/reedsolomon/tikz/codiert.txt @@ -0,0 +1,96 @@ +0,284 +1,131.570790435043 +2,41.9840308053375 +3,12.1189172092243 +4,23.8408857476069 +5,69.1793197789512 +6,24.0186013379153 +7,37.3066577242559 +8,18.2010889773887 +9,12.3214904922455 +10,15.6627133315015 +11,24.5237955316204 +12,32.1114345314062 +13,44.9845039238714 +14,13.5324640263625 +15,10.1736266929292 +16,4.58257569495584 +17,23.217268502288 +18,16.5769107917917 +19,6.89948680823017 +20,4.84567134895776 +21,10.4219666223433 +22,43.6179140616243 +23,35.9073375743642 +24,15.0332963783729 +25,21.7594021268945 +26,23.2496572716993 +27,17.9815599423852 +28,11.3577742151117 +29,38.467599433197 +30,28.3035029562577 +31,9.54321919833388 +32,21.377558326432 +33,17.6292439561917 +34,12.6951848921471 +35,20.0667752354841 +36,22.9097309529208 +37,8.78894645948548 +38,13.360682005498 +39,25.1757616314718 +40,38.0357773686457 +41,18.4633287776253 +42,19.0584505869806 +43,10.8631093309173 +44,12.6147770818983 +45,12.5398140021274 +46,34.901983501949 +47,22.3480442021702 +48,6 +49,22.3480442021702 +50,34.901983501949 +51,12.5398140021274 +52,12.6147770818983 +53,10.8631093309173 +54,19.0584505869806 +55,18.4633287776253 +56,38.0357773686457 +57,25.1757616314718 +58,13.360682005498 +59,8.78894645948548 +60,22.9097309529208 +61,20.0667752354841 +62,12.6951848921471 +63,17.6292439561917 +64,21.377558326432 +65,9.54321919833388 +66,28.3035029562577 +67,38.467599433197 +68,11.3577742151117 +69,17.9815599423852 +70,23.2496572716993 +71,21.7594021268945 +72,15.0332963783729 +73,35.9073375743642 +74,43.6179140616243 +75,10.4219666223433 +76,4.84567134895776 +77,6.89948680823017 +78,16.5769107917917 +79,23.217268502288 +80,4.58257569495584 +81,10.1736266929292 +82,13.5324640263625 +83,44.9845039238714 +84,32.1114345314062 +85,24.5237955316204 +86,15.6627133315015 +87,12.3214904922455 +88,18.2010889773887 +89,37.3066577242559 +90,24.0186013379153 +91,69.1793197789512 +92,23.8408857476069 +93,12.1189172092243 +94,41.9840308053375 +95,131.570790435043 diff --git a/buch/papers/reedsolomon/tikz/decodiert.txt b/buch/papers/reedsolomon/tikz/decodiert.txt new file mode 100644 index 0000000..f6221e6 --- /dev/null +++ b/buch/papers/reedsolomon/tikz/decodiert.txt @@ -0,0 +1,96 @@ +0,6.05208333333333 +1,6.02602539785853 +2,0.0261327016093151 +3,5.98927158561317 +4,4.019445724874 +5,0.0247005083663722 +6,4.97798278395618 +7,1.95246440445439 +8,0.974000110512201 +9,2.00528527696027 +10,1.00071804528155 +11,1.97630907888264 +12,0.0232923747656228 +13,6.01302820392331 +14,3.03567381915226 +15,5.02435590137329 +16,7.00526061008995 +17,5.00739608089369 +18,5.02211514480064 +19,4.02175864806658 +20,1.00236543833726 +21,4.98147315261261 +22,8.97728828610336 +23,8.98481304394618 +24,2.98958333333333 +25,1.98491220960989 +26,5.97728835934715 +27,5.98144124907561 +28,4.00163839998525 +29,2.02176249296313 +30,9.02210713874162 +31,1.00742763919872 +32,1.00557258081044 +33,1.02435888848794 +34,2.03577412756745 +35,6.01302820392331 +36,5.97917574041123 +37,0.976310374034338 +38,9.00062625447998 +39,7.00515849238528 +40,6.97396416790894 +41,0.95256880864368 +42,8.97794719866783 +43,9.01850701506487 +44,10.0194409579917 +45,8.98926601525997 +46,7.9866590265379 +47,5.02603060999077 +48,2.05208333333333 +49,4.02603841132848 +50,0.986882897867895 +51,0.0177592928994285 +52,9.01944131204563 +53,3.0185365665612 +54,2.97803642439316 +55,2.95243072164649 +56,4.97396651395488 +57,6.00516695947321 +58,0.0143895905726619 +59,7.97630812771393 +60,5.97917574041123 +61,9.01298821331865 +62,3.03567381915226 +63,4.02435609145793 +64,0.0275599094902563 +65,0.0115837187254191 +66,0.025877761014238 +67,0.0224618032819697 +68,0.04410594689944 +69,0.0474504002669341 +70,0.0227694695500626 +71,0.0271436638090525 +72,0.0104166666666667 +73,0.0271436638090523 +74,0.0227694695500608 +75,0.0474504002669343 +76,0.0441059468994397 +77,0.0224618032819701 +78,0.0258777610142379 +79,0.0115837187254183 +80,0.027559909490256 +81,0.0245124379481793 +82,0.0499782237195209 +83,0.0401432022864265 +84,0.0232923747656228 +85,0.0237974288564099 +86,0.0143895905726624 +87,0.0271745729691685 +88,0.0275599094902567 +89,0.0515501672184983 +90,0.0358255004834542 +91,0.024700508366373 +92,0.0210194725405171 +93,0.0177592928994296 +94,0.0261327016093158 +95,0.0314909067039411 diff --git a/buch/papers/reedsolomon/tikz/empfangen.txt b/buch/papers/reedsolomon/tikz/empfangen.txt new file mode 100644 index 0000000..38c13b0 --- /dev/null +++ b/buch/papers/reedsolomon/tikz/empfangen.txt @@ -0,0 +1,96 @@ +0,284 +1,131.570790435043 +2,41.9840308053375 +3,12.1189172092243 +4,23.8408857476069 +5,69.1793197789512 +6,23.6290258699579 +7,37.3066577242559 +8,18.2010889773887 +9,12.3214904922455 +10,15.6627133315015 +11,24.5237955316204 +12,32.1114345314062 +13,44.9845039238714 +14,13.5324640263625 +15,10.1736266929292 +16,4.58257569495584 +17,23.217268502288 +18,16.5769107917917 +19,6.89948680823017 +20,5.55320238736303 +21,10.4219666223433 +22,43.6179140616243 +23,35.9073375743642 +24,15.0332963783729 +25,21.7594021268945 +26,23.2496572716993 +27,17.9815599423852 +28,11.3577742151117 +29,38.467599433197 +30,28.3035029562577 +31,9.54321919833388 +32,21.377558326432 +33,17.6292439561917 +34,12.6951848921471 +35,20.0667752354841 +36,22.9097309529208 +37,8.78894645948548 +38,13.360682005498 +39,25.1757616314718 +40,38.0357773686457 +41,18.4633287776253 +42,19.0584505869806 +43,10.8631093309173 +44,12.6147770818983 +45,12.5398140021274 +46,34.901983501949 +47,22.3480442021702 +48,6 +49,22.3480442021702 +50,34.901983501949 +51,12.5398140021274 +52,12.6147770818983 +53,10.8631093309173 +54,19.0584505869806 +55,18.4633287776253 +56,38.0357773686457 +57,25.1757616314718 +58,13.360682005498 +59,8.78894645948548 +60,22.9097309529208 +61,20.0667752354841 +62,12.6951848921471 +63,17.6292439561917 +64,21.377558326432 +65,9.54321919833388 +66,28.3035029562577 +67,38.467599433197 +68,11.3577742151117 +69,17.9815599423852 +70,23.2496572716993 +71,21.7594021268945 +72,15.0332963783729 +73,35.9073375743642 +74,44.6135417384784 +75,10.4219666223433 +76,4.84567134895776 +77,6.89948680823017 +78,16.5769107917917 +79,23.217268502288 +80,4.58257569495584 +81,10.1736266929292 +82,13.5324640263625 +83,44.9845039238714 +84,32.1114345314062 +85,24.5237955316204 +86,15.6627133315015 +87,12.3214904922455 +88,18.2010889773887 +89,37.3066577242559 +90,24.0186013379153 +91,69.1793197789512 +92,23.8408857476069 +93,12.1189172092243 +94,41.9840308053375 +95,131.570790435043 diff --git a/buch/papers/reedsolomon/tikz/fehler.txt b/buch/papers/reedsolomon/tikz/fehler.txt new file mode 100644 index 0000000..23f1a83 --- /dev/null +++ b/buch/papers/reedsolomon/tikz/fehler.txt @@ -0,0 +1,96 @@ +0,0 +1,0 +2,0 +3,0 +4,0 +5,0 +6,2 +7,0 +8,0 +9,0 +10,0 +11,0 +12,0 +13,0 +14,0 +15,0 +16,0 +17,0 +18,0 +19,0 +20,2 +21,0 +22,0 +23,0 +24,0 +25,0 +26,0 +27,0 +28,0 +29,0 +30,0 +31,0 +32,0 +33,0 +34,0 +35,0 +36,0 +37,0 +38,0 +39,0 +40,0 +41,0 +42,0 +43,0 +44,0 +45,0 +46,0 +47,0 +48,0 +49,0 +50,0 +51,0 +52,0 +53,0 +54,0 +55,0 +56,0 +57,0 +58,0 +59,0 +60,0 +61,0 +62,0 +63,0 +64,0 +65,0 +66,0 +67,0 +68,0 +69,0 +70,0 +71,0 +72,0 +73,0 +74,1 +75,0 +76,0 +77,0 +78,0 +79,0 +80,0 +81,0 +82,0 +83,0 +84,0 +85,0 +86,0 +87,0 +88,0 +89,0 +90,0 +91,0 +92,0 +93,0 +94,0 +95,0 diff --git a/buch/papers/reedsolomon/tikz/locator.txt b/buch/papers/reedsolomon/tikz/locator.txt new file mode 100644 index 0000000..b28988c --- /dev/null +++ b/buch/papers/reedsolomon/tikz/locator.txt @@ -0,0 +1,96 @@ +0,0.0301224340567056 +1,0.141653026854885 +2,0.138226631799377 +3,0.0339903276086929 +4,0.310585462557496 +5,0.551427312631385 +6,0.628514858396814 +7,0.51102386251559 +8,0.275861355940449 +9,0.0502396354182268 +10,0.090185502547573 +11,0.110759344849756 +12,0.0684618905063001 +13,0.0362855426992259 +14,0.0697096919781468 +15,0.109288539370248 +16,0.0923187999496653 +17,0.0512198536768088 +18,0.274192386987782 +19,0.51349614953654 +20,0.633154426602466 +21,0.553283743533942 +22,0.307840573214514 +23,0.0341664350328392 +24,0.140270857957 +25,0.138527177682831 +26,0.029637547736156 +27,0.0816962563186052 +28,0.0944383203811073 +29,0.0263932110686261 +30,0.0585881348402056 +31,0.0737117341599984 +32,0.0239973937701886 +33,0.0464215468420038 +34,0.0616218854220964 +35,0.0221963086695009 +36,0.0390764778127646 +37,0.0537637218396934 +38,0.0208333333333332 +39,0.0343107696069045 +40,0.0483441215964552 +41,0.0198077862118806 +42,0.0311207395968725 +43,0.0444955089373458 +44,0.0190533549944159 +45,0.0290049795038723 +46,0.0417536642697558 +47,0.0185261550443084 +48,0.0277059929762261 +49,0.0398606084144816 +50,0.0181978813094817 +51,0.0271098219177584 +52,0.0386836665079729 +53,0.0180518611046889 +54,0.0272138992557141 +55,0.0381891287148314 +56,0.0180809085252469 +57,0.0281418959420061 +58,0.0384596362516637 +59,0.0182864418432272 +60,0.0302250788423173 +61,0.0397874837986351 +62,0.0186786556701694 +63,0.0342489348284216 +64,0.0429932815348666 +65,0.0192777878591759 +66,0.0422808966931999 +67,0.0506815964680563 +68,0.0201167847752226 +69,0.0615048274405271 +70,0.0744953894508454 +71,0.021246054596492 +72,0.142602265816215 +73,0.273502052865436 +74,0.325309673287599 +75,0.272705389655349 +76,0.149074257381345 +77,0.0247199397628712 +78,0.0680137859566976 +79,0.075388270873485 +80,0.0273637831604903 +81,0.0407867704453274 +82,0.0632964886441949 +83,0.0309749128751093 +84,0.0315202035072035 +85,0.0627625211892184 +86,0.0360843918243497 +87,0.02794920551495 +88,0.0677921493367236 +89,0.0437167157553067 +90,0.0270640150996317 +91,0.0783380025231622 +92,0.0561293738314281 +93,0.0278742033265809 +94,0.0981443889498639 +95,0.0794543457386548 diff --git a/buch/papers/reedsolomon/tikz/plotfft.tex b/buch/papers/reedsolomon/tikz/plotfft.tex new file mode 100644 index 0000000..bb74dfb --- /dev/null +++ b/buch/papers/reedsolomon/tikz/plotfft.tex @@ -0,0 +1,94 @@ +% +% Plot der Übertrangungsabfolge ins FFT und zurück mit IFFT +% +\documentclass[tikz]{standalone} +\usepackage{amsmath} +\usepackage{times} +\usepackage{pgfplots} +\usepackage{pgfplotstable} +\usepackage{csvsimple} +\usepackage{filecontents} + + +\begin{document} +\begin{tikzpicture}[] + + %--------------------------------------------------------------- + %Knote + \matrix(m) [draw = none, column sep=25mm, row sep=2mm]{ + + \node(signal) [] { + \begin{tikzpicture} + \begin{axis} + [title = {\Large {Signal}}, + xtick={0,20,40,64,80,98}] + \addplot[blue] table[col sep=comma] {tikz/signal.txt}; + \end{axis} + \end{tikzpicture}}; & + + \node(codiert) [] { + \begin{tikzpicture}[] + \begin{axis}[ title = {\Large {Codiert \space + \space Fehler}}, + xtick={0,40,60,100}, axis y line*=left] + \addplot[green] table[col sep=comma] {tikz/codiert.txt}; + \end{axis} + \begin{axis}[xtick={7,21,75}, axis y line*=right] + \addplot[red] table[col sep=comma] {tikz/fehler.txt}; + \end{axis} + \end{tikzpicture}}; \\ + + \node(decodiert) [] { + \begin{tikzpicture} + \begin{axis}[title = {\Large {Decodiert}}] + \addplot[blue] table[col sep=comma] {tikz/decodiert.txt}; + \end{axis} + \end{tikzpicture}}; & + + \node(empfangen) [] { + \begin{tikzpicture} + \begin{axis}[title = {\Large {Empfangen}}] + \addplot[green] table[col sep=comma] {tikz/empfangen.txt}; + \end{axis} + \end{tikzpicture}};\\ + + \node(syndrom) [] { + \begin{tikzpicture} + \begin{axis}[title = {\Large {Syndrom}}] + \addplot[black] table[col sep=comma] {tikz/syndrom.txt}; + \end{axis} + \end{tikzpicture}}; & + + \node(locator) [] { + \begin{tikzpicture} + \begin{axis}[title = {\Large {Locator}}] + \addplot[gray] table[col sep=comma] {tikz/locator.txt}; + \end{axis} + \end{tikzpicture}};\\ + }; + %------------------------------------------------------------- + %FFT & IFFT deskription + + \draw[thin,gray,dashed] (0,9) to (0,-9); + \node(IFFT) [scale=0.9] at (0,9.3) {IFFT}; + \draw[stealth-](IFFT.south west)--(IFFT.south east); + \node(FFT) [scale=0.9, above of=IFFT] {FFT}; + \draw[-stealth](FFT.north west)--(FFT.north east); + + \draw[thick, ->,] (codiert)++(-1,0) +(0.05,0.5) -- +(-0.1,-0.1) -- +(0.1,0.1) -- +(0,-0.5); + %Arrows + \draw[thick, ->] (signal.east) to (codiert.west); + \draw[thick, ->] (codiert.south) to (empfangen.north); + \draw[thick, ->] (empfangen.west) to (decodiert.east); + \draw[thick, ->] (syndrom.east) to (locator.west); + \draw[thick](decodiert.south east)++(-1.8,1) ellipse (1.3cm and 0.8cm) ++(-1.3,0) coordinate(zoom) ; + \draw[thick, ->] (zoom) to[out=180, in=90] (syndrom.north); + + %item + \node[circle, draw, fill =lightgray] at (signal.north west) {1}; + \node[circle, draw, fill =lightgray] at (codiert.north west) {2+3}; + \node[circle, draw, fill =lightgray] at (empfangen.north west) {4}; + \node[circle, draw, fill =lightgray] at (decodiert.north west) {5}; + \node[circle, draw, fill =lightgray] at (syndrom.north west) {6}; + \node[circle, draw, fill =lightgray] at (locator.north west) {7}; +\end{tikzpicture} +\end{document}
\ No newline at end of file diff --git a/buch/papers/reedsolomon/tikz/plotfftraw.tex b/buch/papers/reedsolomon/tikz/plotfftraw.tex new file mode 100644 index 0000000..141d2ce --- /dev/null +++ b/buch/papers/reedsolomon/tikz/plotfftraw.tex @@ -0,0 +1,80 @@ +\begin{tikzpicture}[] + + %--------------------------------------------------------------- + %Knote + \matrix(m) [draw = none, column sep=25mm, row sep=2mm]{ + + \node(signal) [] { + \begin{tikzpicture} + \begin{axis} + [title = {\Large {Signal}}, + xtick={0,20,40,64,80,98}] + \addplot[blue] table[col sep=comma] {tikz/signal.txt}; + \end{axis} + \end{tikzpicture}}; & + + \node(codiert) [] { + \begin{tikzpicture}[] + \begin{axis}[ title = {\Large {Codiert \space + \space Fehler}}, + xtick={0,40,60,100}, axis y line*=left] + \addplot[green] table[col sep=comma] {tikz/codiert.txt}; + \end{axis} + \begin{axis}[xtick={7,21,75}, axis y line*=right] + \addplot[red] table[col sep=comma] {tikz/fehler.txt}; + \end{axis} + \end{tikzpicture}}; \\ + + \node(decodiert) [] { + \begin{tikzpicture} + \begin{axis}[title = {\Large {Decodiert}}] + \addplot[blue] table[col sep=comma] {tikz/decodiert.txt}; + \end{axis} + \end{tikzpicture}}; & + + \node(empfangen) [] { + \begin{tikzpicture} + \begin{axis}[title = {\Large {Empfangen}}] + \addplot[green] table[col sep=comma] {tikz/empfangen.txt}; + \end{axis} + \end{tikzpicture}};\\ + + \node(syndrom) [] { + \begin{tikzpicture} + \begin{axis}[title = {\Large {Syndrom}}] + \addplot[black] table[col sep=comma] {tikz/syndrom.txt}; + \end{axis} + \end{tikzpicture}}; & + + \node(locator) [] { + \begin{tikzpicture} + \begin{axis}[title = {\Large {Locator}}] + \addplot[gray] table[col sep=comma] {tikz/locator.txt}; + \end{axis} + \end{tikzpicture}};\\ + }; + %------------------------------------------------------------- + %FFT & IFFT deskription + + \draw[thin,gray,dashed] (0,9) to (0,-9); + \node(IFFT) [scale=0.9] at (0,9.3) {IFFT}; + \draw[stealth-](IFFT.south west)--(IFFT.south east); + \node(FFT) [scale=0.9, above of=IFFT] {FFT}; + \draw[-stealth](FFT.north west)--(FFT.north east); + + \draw[thick, ->,] (codiert)++(-1,0) +(0.05,0.5) -- +(-0.1,-0.1) -- +(0.1,0.1) -- +(0,-0.5); + %Arrows + \draw[thick, ->] (signal.east) to (codiert.west); + \draw[thick, ->] (codiert.south) to (empfangen.north); + \draw[thick, ->] (empfangen.west) to (decodiert.east); + \draw[thick, ->] (syndrom.east) to (locator.west); + \draw[thick](decodiert.south east)++(-1.8,1) ellipse (1.3cm and 0.8cm) ++(-1.3,0) coordinate(zoom) ; + \draw[thick, ->] (zoom) to[out=180, in=90] (syndrom.north); + + %item + \node[circle, draw, fill =lightgray] at (signal.north west) {1}; + \node[circle, draw, fill =lightgray] at (codiert.north west) {2+3}; + \node[circle, draw, fill =lightgray] at (empfangen.north west) {4}; + \node[circle, draw, fill =lightgray] at (decodiert.north west) {5}; + \node[circle, draw, fill =lightgray] at (syndrom.north west) {6}; + \node[circle, draw, fill =lightgray] at (locator.north west) {7}; +\end{tikzpicture}
\ No newline at end of file diff --git a/buch/papers/reedsolomon/tikz/polynom2.tex b/buch/papers/reedsolomon/tikz/polynom2.tex new file mode 100644 index 0000000..80557fb --- /dev/null +++ b/buch/papers/reedsolomon/tikz/polynom2.tex @@ -0,0 +1,60 @@ +% polynome +%------------------- + +\documentclass[tikz]{standalone} +\usepackage{amsmath} +\usepackage{times} +\usepackage{pgfplots} + + +\begin{document} +% Teiler für das Skalieren der Grafik /40 +\newcommand{\teiler}{40} + + +%////////////////////////////////////// + +\begin{tikzpicture}[>=latex,thick,] + \draw[color=blue, line width=1.4pt] + plot[domain=0:8, samples=100] + ({\x},{(2*\x^2+1*\x+5)/\teiler}); + + \draw[->] (-0.2,0) -- (8,0) coordinate[label={$x$}]; + \draw[->] (0,-0.2) -- (0,150/\teiler) coordinate[label={right:$p(x)$}]; + + \def\punkt#1{ + \fill[color=green] #1 circle[radius=0.08]; + \draw #1 circle[radius=0.07]; + } + + \def\hellpunkt#1{ + \fill[color=lightgray] #1 circle[radius=0.08]; + \draw[gray] #1 circle[ radius=0.07]; + } + + \draw[color=gray,line width=1pt,dashed] + plot[domain=0.5:7, samples=100] + ({\x},{(7.832*\x^2-51.5*\x+121.668)/\teiler}); + + + \punkt{(1,8/\teiler)} + \hellpunkt{(2,15/\teiler)} + \hellpunkt{(3,26/\teiler)} + \punkt{(4,41/\teiler)} + \punkt{(5,60/\teiler)} + \punkt{(6,83/\teiler)} + \punkt{(7,110/\teiler)} + + + + \def\erpunkt#1{ + \fill[color=red] #1 circle[radius=0.08]; + \draw #1 circle[radius=0.07]; + } + \erpunkt{(2,50/\teiler)} + \erpunkt{(3,37.66/\teiler)} + + \draw(0,100/\teiler) -- (-0.1,100/\teiler) coordinate[label={left:$100$}]; + \draw(1,0) -- (1,-0.1) coordinate[label={below:$1$}]; +\end{tikzpicture} +\end{document} diff --git a/buch/papers/reedsolomon/tikz/polynomraw.tex b/buch/papers/reedsolomon/tikz/polynomraw.tex new file mode 100644 index 0000000..02968fd --- /dev/null +++ b/buch/papers/reedsolomon/tikz/polynomraw.tex @@ -0,0 +1,50 @@ +% polynomraw + +\newcommand{\teiler}{40} + + +%////////////////////////////////////// + +\begin{tikzpicture}[>=latex,thick,] + \draw[color=blue, line width=1.4pt] + plot[domain=0:8, samples=100] + ({\x},{(2*\x^2+1*\x+5)/\teiler}); + + \draw[->] (-0.2,0) -- (8,0) coordinate[label={$x$}]; + \draw[->] (0,-0.2) -- (0,150/\teiler) coordinate[label={right:$p(x)$}]; + + \def\punkt#1{ + \fill[color=green] #1 circle[radius=0.08]; + \draw #1 circle[radius=0.07]; + } + + \def\hellpunkt#1{ + \fill[color=lightgray] #1 circle[radius=0.08]; + \draw[gray] #1 circle[ radius=0.07]; + } + + \draw[color=gray,line width=1pt,dashed] + plot[domain=0.5:7, samples=100] + ({\x},{(7.832*\x^2-51.5*\x+121.668)/\teiler}); + + + \punkt{(1,8/\teiler)} + \hellpunkt{(2,15/\teiler)} + \hellpunkt{(3,26/\teiler)} + \punkt{(4,41/\teiler)} + \punkt{(5,60/\teiler)} + \punkt{(6,83/\teiler)} + \punkt{(7,110/\teiler)} + + + + \def\erpunkt#1{ + \fill[color=red] #1 circle[radius=0.08]; + \draw #1 circle[radius=0.07]; + } + \erpunkt{(2,50/\teiler)} + \erpunkt{(3,37.66/\teiler)} + + \draw(0,100/\teiler) -- (-0.1,100/\teiler) coordinate[label={left:$100$}]; + \draw(1,0) -- (1,-0.1) coordinate[label={below:$1$}]; +\end{tikzpicture}
\ No newline at end of file diff --git a/buch/papers/reedsolomon/tikz/signal.txt b/buch/papers/reedsolomon/tikz/signal.txt new file mode 100644 index 0000000..c4fa5f8 --- /dev/null +++ b/buch/papers/reedsolomon/tikz/signal.txt @@ -0,0 +1,96 @@ +0,6 +1,6 +2,0 +3,6 +4,4 +5,0 +6,5 +7,2 +8,1 +9,2 +10,1 +11,2 +12,0 +13,6 +14,3 +15,5 +16,7 +17,5 +18,5 +19,4 +20,1 +21,5 +22,9 +23,9 +24,3 +25,2 +26,6 +27,6 +28,4 +29,2 +30,9 +31,1 +32,1 +33,1 +34,2 +35,6 +36,6 +37,1 +38,9 +39,7 +40,7 +41,1 +42,9 +43,9 +44,10 +45,9 +46,8 +47,5 +48,2 +49,4 +50,1 +51,0 +52,9 +53,3 +54,3 +55,3 +56,5 +57,6 +58,0 +59,8 +60,6 +61,9 +62,3 +63,4 +64,0 +65,0 +66,0 +67,0 +68,0 +69,0 +70,0 +71,0 +72,0 +73,0 +74,0 +75,0 +76,0 +77,0 +78,0 +79,0 +80,0 +81,0 +82,0 +83,0 +84,0 +85,0 +86,0 +87,0 +88,0 +89,0 +90,0 +91,0 +92,0 +93,0 +94,0 +95,0 diff --git a/buch/papers/reedsolomon/tikz/syndrom.txt b/buch/papers/reedsolomon/tikz/syndrom.txt new file mode 100644 index 0000000..8ca9eed --- /dev/null +++ b/buch/papers/reedsolomon/tikz/syndrom.txt @@ -0,0 +1,96 @@ +0,0 +1,0 +2,0 +3,0 +4,0 +5,0 +6,0 +7,0 +8,0 +9,0 +10,0 +11,0 +12,0 +13,0 +14,0 +15,0 +16,0 +17,0 +18,0 +19,0 +20,0 +21,0 +22,0 +23,0 +24,0 +25,0 +26,0 +27,0 +28,0 +29,0 +30,0 +31,0 +32,0 +33,0 +34,0 +35,0 +36,0 +37,0 +38,0 +39,0 +40,0 +41,0 +42,0 +43,0 +44,0 +45,0 +46,0 +47,0 +48,0 +49,0 +50,0 +51,0 +52,0 +53,0 +54,0 +55,0 +56,0 +57,0 +58,0 +59,0 +60,0 +61,0 +62,0 +63,0 +64,0.0275599094902563 +65,0.0115837187254191 +66,0.025877761014238 +67,0.0224618032819697 +68,0.04410594689944 +69,0.0474504002669341 +70,0.0227694695500626 +71,0.0271436638090525 +72,0.0104166666666667 +73,0.0271436638090523 +74,0.0227694695500608 +75,0.0474504002669343 +76,0.0441059468994397 +77,0.0224618032819701 +78,0.0258777610142379 +79,0.0115837187254183 +80,0.027559909490256 +81,0.0245124379481793 +82,0.0499782237195209 +83,0.0401432022864265 +84,0.0232923747656228 +85,0.0237974288564099 +86,0.0143895905726624 +87,0.0271745729691685 +88,0.0275599094902567 +89,0.0515501672184983 +90,0.0358255004834542 +91,0.024700508366373 +92,0.0210194725405171 +93,0.0177592928994296 +94,0.0261327016093158 +95,0.0314909067039411 diff --git a/buch/papers/reedsolomon/zusammenfassung.tex b/buch/papers/reedsolomon/zusammenfassung.tex new file mode 100644 index 0000000..c24fcf3 --- /dev/null +++ b/buch/papers/reedsolomon/zusammenfassung.tex @@ -0,0 +1,66 @@ +% +% zusammenfassung.tex -- Zusammenfassung +% +% (c) 2021 Michael Steiner, Hochschule Rapperswil +% +\section{Zusammenfassung +\label{reedsolomon:section:zf}} +\rhead{Zusammenfassung} +Dieser Abschnitt beinhaltet eine Übersicht über die Funktionsweise eines Reed-Solomon-Codes für beliebige endliche Körper. + +\subsubsection{Schritt 1: primitives Element} +Zu Beginn soll entschieden werden, in welchem endlichen Körper $\mathbb{F}_{q}$ gerechnet werden soll. +Ausserdem muss im gewählten Körper eine primitive Einheitswurzel gefunden, bzw. bestimmt werden. + +\subsubsection{Schritt 2: Codierung} +Für die Codierung wird die Nachricht als Koeffizienten des Polynoms $m(X)$ geschrieben, anschliessend wird $a^i$ in $m(X)$ eingesetzt. +Daraus ergibt sich die Codierungsmatrix +\[ +A(a) = +\begin{pmatrix} +a^0 & a^0 & a^0 & \dots \\ +a^0 & a^1 & a^2 & \dots \\ +a^0 & a^2 & a^4 & \dots \\ +\vdots&\vdots&\vdots&\ddots +\end{pmatrix} +. +\] +Mit dieser Matrix können wir den Nachrichtenblock zum Übertragungsvektor codieren. + +\subsubsection{Schritt 3: Decodierung ohne Fehler} +Im ersten Schritt zur Decodierung muss geprüft werden, ob der Übertragungsvektor Fehler beinhaltet. +Ist dies nicht der Fall, so kann die Matrix $A(a)$ invertiert werden mit +\[ +A(a)^{-1} = \frac{1}{q-1} \cdot A(a^{-1}). +\] +Die Codierungsmatrix ändert sich somit zur Decodierungsmatrix +\[ +\begin{pmatrix} + a^0 & a^0 & a^0 & \dots \\ + a^0 & a^1 & a^2 & \dots \\ + a^0 & a^2 & a^4 & \dots \\ + \vdots&\vdots&\vdots &\ddots +\end{pmatrix} += +\frac{1}{q-1} +\cdot +\begin{pmatrix} + a^0 & a^0 & a^0 & \dots \\ + a^0 & a^{-1} & a^{-2} & \dots \\ + a^0 & a^{-2} & a^{-4} & \dots \\ + \vdots&\vdots&\vdots&\ddots +\end{pmatrix} +. +\] +Daraus lässt sich der Nachrichtenblock aus dem Übertragungsvektor rekonstruieren. + +\subsubsection{Schritt 4: Decodierung mit Fehler} +Sollte der Übertragungsvektor fehlerhaft empfangen werden, so kann der Nachrichtenblock nicht durch invertieren der Matrix rekonstruiert werden. +Zur Lokalisierung der Fehlerstellen nehmen wir das Polynom $f(X)$ zur Hilfe, welches wir über den Satz von Fermat bestimmt haben. +Berechnen wir daraus das $\operatorname{kgV}$ von $f(X)$ und $d(X)$, so erhalten wir ein Lokatorpolynom. +Durch das bestimmen der Exponenten erhalten wir die Fehlerhaften Stellen im Übertragungsvektor. +Für die Rekonstruktion stellen wir ein Gleichungssystem auf und entfernen daraus die Fehlerhaften Zeilen. +Im Anschluss kann das verkleinerte Gleichungssystem gelöst werden. +Als Resultat erhalten wir die fehlerfreie Nachricht. +%Aus diesem Grund suchen wir nach einem Lokatorpolynom, welches uns die Fehlerhaften Stellen im Übertragungsvektor anzeigt. +%Dazu nehmen wir das Polynom $f(X)$, welches wir durch den Satz von Fermat erhalten, und berechnen so das $\operatorname{kgV}(f(X),d(X))$ und kommen so auf das Lokatorpolynom $l(X)$. Durch das bestimmen von den Exponenten erhalten wir die Fehlerstellen, welche wir aus dem Gleichungssystem entfernen müssen. Übrig bleibt das berechnen dieses Gleichungssystems. diff --git a/buch/papers/spannung/Einleitung.tex b/buch/papers/spannung/Einleitung.tex index 0cb1433..8e0d36d 100644 --- a/buch/papers/spannung/Einleitung.tex +++ b/buch/papers/spannung/Einleitung.tex @@ -1,17 +1,18 @@ \section{Einleitung\label{spannung:section:Einleitung}} \rhead{Einleitung} Das Hook'sche Gesetz beschreibt die Beziehung von Spannung und Dehnung von linear-elastischen Materialien im Eindimensionalen. -In diesem Kapitel geht es darum das Hook'sche Gesetz im Dreidimensionalen zu beschreiben. +In diesem Kapitel geht es darum, das Hook'sche Gesetz im Dreidimensionalen zu beschreiben. Durch variable Krafteinwirkungen entstehen in jedem Punkt des Materials eine Vielzahl an unterschiedlichen Spannungen. In jedem erdenklichen Punkt im Dreidimensionalen herrscht daher ein entsprechender individueller Spannungszustand. Um das Hook'sche Gesetz für den 3D Spannungszustand formulieren zu können, reichen Skalare nicht aus. -Darum werden Vektoren, Matrizen und Tensoren zur Hilfe gezogen. +Darum werden Vektoren, Matrizen und Tensoren zu Hilfe gezogen. Mit diesen lässt sich eine Spannungsformel für den 3D Spannungszustand bilden. Diese Spannungsformel ist Grundlage für Computerprogramme und geotechnische Versuche, wie der Oedometer-Versuch. -Um die mathematische Untersuchung vorzunehmen, beschäftigt man sich zuerst mit den spezifischen Gegebenheiten und Voraussetzungen. -Ebenfalls gilt es ein paar wichtige Begriffe und deren mathematischen Zeichen einzuführen. -In diesem Kapitel gehen wir auch auf die Zusammenhänge von Spannung, Dehnungen und Verformungen an elastischen Materialien ein, +Um die mathematischen und physikalischen Berechnungen anwenden zu können, +müssen vorerst ein paar spezifische Bedingungen vorausgesetzt und Annahmen getroffen werden. +Ebenfalls gilt es, ein paar wichtige Begriffe und deren mathematischen Zeichen einzuführen. +In diesem Kapitel gehen wir auch auf die Zusammenhänge von Spannungen, Dehnungen und Verformungen an elastischen Materialien ein, wie sie in gängigen Lehrbüchern der Mechanik oder der Geotechnik behandelt werden, z.~B.~\cite{spannung:Grundlagen-der-Geotechnik}. \section{Spannungsausbreitung\label{spannung:section:Spannungsausbreitung}} @@ -29,7 +30,7 @@ Belastet man den Boden mit einer Spannung so wird diese in den Boden geleitet und von diesem kompensiert. Im Boden entstehen unterschiedlich hohe Zusatzspannungen. Diese Zusatzspannung breitet sich räumlich im Boden aus. -Im Falle einer konstanten Flächenlast $\sigma$ (siehe Abbildung 1.1) breitet sich die Zusatzspannung zwiebelartig aus. +Im Falle einer konstanten Flächenlast $\sigma$ siehe Abbildung~\ref{fig:Bild4} breitet sich die Zusatzspannung zwiebelartig aus. \begin{figure} \centering @@ -38,11 +39,11 @@ Im Falle einer konstanten Flächenlast $\sigma$ (siehe Abbildung 1.1) breitet si \label{fig:Bild4} \end{figure} -Mit der Tiefe $t$ nimmt diese permanent ab (siehe Abbildung 1.2). -Wie diese Geometrie der Ausbreitung ist, kann durch viele Modelle und Ansätze näherungsweise beschrieben werden. +Mit der Tiefe $t$ nimmt diese permanent ab (siehe Abbildung~\ref{fig:Bild5}). +Wie diese Geometrie der Ausbreitung aussieht, kann durch viele Modelle und Ansätze näherungsweise beschrieben werden. Diese Zusatzspannung $\sigma$ ist im Wesentlichen abhängig von $(x,y,t)$. Je nach Modell werden noch andere Parameter berücksichtigt. -Das können beispielsweise jenste Bodenkennwerte oder auch der Wassergehalt sein. +Das können beispielsweise verschiedene Bodenkennwerte oder auch der Wassergehalt sein. \begin{figure} \centering @@ -72,18 +73,18 @@ berechnet werden mit: t &= \text{Tiefe [\si{\meter}]} \\ s &= \text{Setzung, Absenkung [m].} \end{align*} -Diese Zusammenhänge sind wie erwähnt unter anderem im Lehrbuch [\cite{spannung:Grundlagen-der-Geotechnik}] beschrieben. +Diese Zusammenhänge sind wie erwähnt unter anderem im Lehrbuch \cite{spannung:Grundlagen-der-Geotechnik} beschrieben. In der praktischen Geotechnik wird man allerdings weitaus schwierigere Situationen antreffen. -Ein Beispiel wäre eine Baugrube mit einem Baugrubenabschluss, wo ein Teil des Bodens abgetragen ist (siehe Abbildung 1.3). +Ein Beispiel wäre eine Baugrube mit einem Baugrubenabschluss, wo ein Teil des Bodens abgetragen ist (siehe Abbildung~\ref{fig:Bild3}). Die Ausbreitung der Zusatzspannung $\sigma(x,y,t)$ würde hier deutlich komplizierter ausfallen. Dies bedeutet auch eine komplexere Setzung der Bodenoberfläche infolge einer Flächenlast $\sigma$. Aus allen zusätzlichen Spannungen müssen die adäquaten Dehnungen mit Hilfe einer Spannungsgleichung berechnet werden. Diese beruht auf Annahmen nach Hooke auf einem linear-elastischen Boden. -Generell wird im Ingenieurwesen versucht Phänomene möglichst nach dem Hook'schen Gesetz abbilden zu können. +Generell wird im Bauingenieurwesen oder auch im Maschinenbau versucht, manche Phänomene möglichst nach dem Hook'schen Gesetz abbilden zu können. \begin{figure} \centering \includegraphics[width=0.45\linewidth,keepaspectratio]{papers/spannung/Grafiken/Bild3.png} - \caption{Beispiel eines Lastauftrags auf den Boden bei einer komplexeren Situation, welches kompliziertere Spannungsausbreitung zur Folge hat} + \caption{Beispiel eines Lastauftrags auf den Boden bei einer komplexeren Situation, welche kompliziertere Spannungsausbreitung zur Folge hat} \label{fig:Bild3} \end{figure} diff --git a/buch/papers/spannung/main.tex b/buch/papers/spannung/main.tex index bbdf730..d2aeda9 100644 --- a/buch/papers/spannung/main.tex +++ b/buch/papers/spannung/main.tex @@ -3,7 +3,7 @@ % % (c) 2020 Hochschule Rapperswil % -\chapter{Thema\label{chapter:spannung}} +\chapter{Dreidimensionaler Spannungszustand\label{chapter:spannung}} \lhead{Dreiachsiger Spannungszustand} \begin{refsection} \chapterauthor{Adrian Schuler und Thomas Reichlin} diff --git a/buch/papers/spannung/teil0.tex b/buch/papers/spannung/teil0.tex index ffc9009..089c28e 100644 --- a/buch/papers/spannung/teil0.tex +++ b/buch/papers/spannung/teil0.tex @@ -1,9 +1,10 @@ \section{Der Spannungszustand\label{spannung:section:Der Spannungsustand}} \rhead{Der Spannungszustand} -Ein Spannungszustand ist durch alle Spannungen, welche in einem beliebigen Punkt im Körper wirken, definiert (siehe Abbildung 1.4). +Ein Spannungszustand ist durch alle Spannungen, welche in einem beliebigen Punkt im Körper wirken, definiert (siehe Abbildung~\ref{fig:Bild2}). Änderungen der äusseren Kräfte verändern die inneren Spannungszustände im Material. -Um alle Spannungen eines Punktes darstellen zu können, wird ein infinitesimales Bodenelement in Form eines Würfels modellhaft vorgestellt. -Man spricht auch von einem Elementarwürfel, da dieser elementar klein ist. +Um alle Spannungen eines Punktes darstellen zu können, +stellt man sich modellhaft ein infinitesimales Bodenelement in Form eines Würfels vor. +Man spricht auch von einem Elementarwürfel. \begin{figure} \centering @@ -15,19 +16,19 @@ Man spricht auch von einem Elementarwürfel, da dieser elementar klein ist. Es werden jeweils drei Seiten dieses Würfels betrachtet, wobei die drei gegenüberliegenden Seiten im Betrag die selben Spannungen aufweisen, sodass der Elementarwürfel im Gleichgewicht ist. Wäre dieses Gleichgewicht nicht vorhanden, käme es zu Verschiebungen und Drehungen. -Das infinitesimale Bodenteilchen hat die Koordinaten $1$, $2$, $3$. +Das infinitesimale Bodenteilchen hat die Koordinatenachsen $1$, $2$, $3$. Veränderungen der Normalspannungen können durch Schubspannungen kompensiert werden und umgekehrt. -So sind insgesamt neun verschiedene Spannungen möglich, wobei drei Normal- und sechs Schubspannungen sind. +So sind insgesamt neun verschiedene Spannungen möglich, konkret sind dies drei Normal- und sechs Schubspannungen. Normalspannungen wirken normal (mit rechtem Winkel) zur angreifenden Fläche und Schubspannungen parallel zur angreifenden Fläche. Alle Beträge dieser neun Spannungen am Elementarwürfel bilden den Spannungszustand. -Daraus können die äquivalenten Dehnungen $\varepsilon$ mit Hilfe des Hook'schen Gesetz berechnet werden. +Daraus können die äquivalenten Dehnungen $\varepsilon$ mit Hilfe des Hook'schen Gesetzes berechnet werden. Daher gibt es auch den entsprechenden Dehnungszustand. \section{Spannungszustand\label{spannung:section:Spannungsustand}} \rhead{Spannungszustand} -Im einachsigen Spannungszustand herrscht nur die Normalspannung $\sigma_{11}$ (siehe Abbildung 1.5). +Im einachsigen Spannungszustand herrscht nur die Normalspannung $\sigma_{11}$ (siehe Abbildung~\ref{fig:Bild1}). Das Hook'sche Gesetz beschreibt genau diesen 1D Spannungszustand. Nach Hooke gilt: \[ @@ -59,7 +60,7 @@ mit A &= \text{Fläche [\si{\meter\squared}].} \end{align*} Diese Beziehung gilt bei linear-elastischen Materialien, welche reversible Verformungen zulassen. -Es ist praktisch die relative Dehnung $\varepsilon$ anzugeben und nicht eine absolute Längenänderung $\Delta l$. +Es ist praktisch, die relative Dehnung $\varepsilon$ anzugeben und nicht eine absolute Längenänderung $\Delta l$. \begin{figure} \centering \includegraphics[width=0.35\linewidth,keepaspectratio]{papers/spannung/Grafiken/Bild1.png} @@ -73,10 +74,10 @@ Mithilfe vom Elastizitätsmodul $E$ als Proportionalitätskonstante lässt sich E\cdot\varepsilon \] beschreiben. -Im Falle, dass $E$ nicht konstant ist, kann dieser näherungsweise durch +Im Falle, dass $E$ nicht konstant ist, wird dieser durch \[ E = -\frac{\Delta\sigma}{\Delta\varepsilon} +\frac{\text{d}\sigma}{\text{d}\varepsilon} \] -ausgedrückt werden.
\ No newline at end of file +ausgedrückt.
\ No newline at end of file diff --git a/buch/papers/spannung/teil1.tex b/buch/papers/spannung/teil1.tex index 74516c1..647b452 100644 --- a/buch/papers/spannung/teil1.tex +++ b/buch/papers/spannung/teil1.tex @@ -1,8 +1,8 @@ \section{Skalare, Vektoren, Matrizen und Tensoren\label{spannung:section:Skalare,_Vektoren,_Matrizen_und_Tensoren}} \rhead{Skalare, Vektoren, Matrizen und Tensoren} -Der Begriff Tensor kann als Überbegriff, der mathematischen Objekte Skalar, Vektor und Matrix, betrachtet werden. +Der Begriff Tensor kann als Überbegriff der mathematischen Objekte Skalar, Vektor und Matrix, betrachtet werden. Allerdings sind noch höhere Stufen dieser Objekte beinhaltet. -Ein Skalar, ein Vektor oder eine Matrix ist daher auch ein Tensor. +Skalare, Vektoren oder Matrizen sind daher auch Tensoren. Ein Skalar ist ein Tensor 0. Stufe. Mit einem Vektor können mehrere Skalare auf einmal beschrieben werden. Ein Vektor hat daher die Stufe 1 und ist höherstufig als ein Skalar. @@ -14,11 +14,10 @@ Jede Stufe von Tensoren verlangt andere Rechenregeln. So zeigt sich auch der Nachteil von Tensoren mit Stufen höher als 2. Man ist also bestrebt höherstufige Tensoren mit Skalaren, Vektoren oder Matrizen zu beschreiben. -Der Begriff Tensor wurde 1840 von Rowan Hamilton in die Mathematik eingeführt. +In den 40er Jahren vom 19. Jahrhundert wurde der Begriff Tensor von Rowan Hamilton in die Mathematik eingeführt. James Clerk Maxwell hat bereits mit Tensoren operiert, ohne den Begriff Tensor gekannt zu haben. Erst Woldemar Voigt hat den Begriff in die moderne Bedeutung von Skalar, Matrix und Vektor verallgemeinert. Er hat in der Elastizitätstheorie als erstes Tensoren eingesetzt und beschrieben. Auch Albert Einstein hat solche Tensoren eingesetzt, um in der Relativitätstheorie die Änderung der 4D Raumzeit beschreiben zu können. \cite{spannung:Tensor} -\cite{spannung:Voigtsche-Notation} diff --git a/buch/papers/spannung/teil2.tex b/buch/papers/spannung/teil2.tex index 921d2b8..8620afe 100644 --- a/buch/papers/spannung/teil2.tex +++ b/buch/papers/spannung/teil2.tex @@ -3,7 +3,7 @@ Durch komplexe Spannungsausbreitungen im Boden entstehen im 3D Spannungszustand unterschiedliche Normal- und Schubspannungen. \begin{figure} \centering - \includegraphics[width=0.4\linewidth,keepaspectratio]{papers/spannung/Grafiken/infinitesimalerWuerfel.png} + \includegraphics[width=0.30\linewidth,keepaspectratio]{papers/spannung/Grafiken/infinitesimalerWuerfel.png} \caption{Beispiel eines Spannungszustandes; Vergrösserung eines infinitesimalen Bodenteilchen} \label{fig:infinitesimalerWuerfel} \end{figure} @@ -49,7 +49,7 @@ Der Dehnungstensor ist ebenfalls ein Tensor 2. Stufe und kann somit auch als $3\ dargestellt werden und beschreibt den gesamten Dehnungszustand. Der Spannungs- und Dehnungstensor 2. Stufe kann je in einen Tensor 1. Stufe überführt werden, welches ein Spaltenvektor ist. -Gemäss der Hadamard-Algebra dürfen Zeile um Zeile in eine Spalte notiert werden, sodass es einen Spaltenvektor ergibt. +Man darf Zeile um Zeile in eine Spalte notieren, sodass es einen Spaltenvektor ergibt. So ergibt sich der Spannungsvektor \[ @@ -79,7 +79,7 @@ So ergibt sich der Spannungsvektor \sigma_{33} \end{pmatrix} \] -und Dehnungsvektor +und der Dehnungsvektor \[ \overline{\varepsilon} = @@ -140,21 +140,31 @@ C_{3311} & C_{3312} & C_{3313} & C_{3321} & C_{3322} & C_{3323} & C_{3331} & C_{ \end{pmatrix} \] geschrieben werden kann. -Dieser Elastizitätstensor muss für isotrope Materialien zwingend symmetrisch sein. -Folglich gilt: +Die allgemeine Spannungsgleichung lautet nun: \[ -\overline{\overline{C}} +\vec\sigma = -\overline{\overline{C}}~^{T} +\overline{\overline{C}}\cdot\vec{\varepsilon} . \] -Die allgemeine Spannungsgleichung lautet nun: +Sie kann ebenfalls als Indexnotation \[ -\vec\sigma +\sigma_{ij} = -\overline{\overline{C}}\cdot\vec{\varepsilon} +\sum_{k=1}^3 +\sum_{l=1}^3 +C_{ijkl}\cdot\varepsilon_{kl} +\] +geschrieben werden. +Der Elastizitätstensor muss für isotrope Materialien zwingend symmetrisch sein. +Folglich gilt: +\[ +\overline{\overline{C}} += +\overline{\overline{C}}~^{T} . \] + Die Konstanten $C$ werden nun nach dem Hook'schen Gesetz mit Hilfe des Elastizitätsmoduls $E$ definiert. Da dieser Modul durch die eindimensionale Betrachtung definiert ist, muss für die dreidimensionale Betrachtung eine weitere Kennzahl eingeführt werden. @@ -208,18 +218,9 @@ definiert ist. Trägt man die Konstanten in die Matrix ein, ergibt sich \varepsilon_{32} \\ \varepsilon_{33} \end{pmatrix} -, -\] -welche ebenfalls als Indexnotation mit -\[ -\sigma_{ij} -= -\sum_{k=1}^3 -\sum_{l=1}^3 -C_{ijkl}\cdot\varepsilon_{kl} +. \] -ausgedrückt werden kann. -Die Normalspannung $\sigma_{22}$ lässt sich exemplarisch als +Die Normalspannung $\sigma_{22}$ lässt sich zum Beispiel als \[ \sigma_{22} = @@ -227,11 +228,13 @@ Die Normalspannung $\sigma_{22}$ lässt sich exemplarisch als \] berechnen. +Reduzierte Spannungs- und Dehnungsgleichungen + Man betrachte nun die Eigenschaften des Elastizitätstensors. Dieser ist quadratisch und symmetrisch, die verschiedenen Einträge wechseln sich aber miteinander ab. Es ergeben sich keine Blöcke mit einheitlichen Einträgen. -Allerdings weiss man, dass im isotropen Boden der Spannungs-, Dehnungs- und daher auch Elastizitätstensor symmetrisch sind. +Allerdings weiss man, dass im isotropen Boden der Spannungs-, Dehnungs- und daher auch der Elastizitätstensor symmetrisch sind. Wäre dem nicht so, würde sich das Material je nach Richtung unterschiedlich elastisch verhalten. Diese Symmetrie setzt daher voraus, dass \[ @@ -308,7 +311,7 @@ und entsprechend = \begin{pmatrix} \varepsilon_{11} & \varepsilon_{12} & \varepsilon_{13} \\ - & \varepsilon_{22} & \varepsilon_{23} \\ + & \varepsilon_{22} & \varepsilon_{23} \\ \text{sym} & & \varepsilon_{33} \end{pmatrix} \qquad @@ -398,7 +401,7 @@ Somit lässt sich die reduzierte allgemeine Spannungsgleichung mit beschreiben. Die Konstanten $C$ werden wieder nach dem Hook'schen Gesetz definiert. Dies ergibt die Spannungsgleichung, welche weit möglichst vereinfacht ist: -\[ +\begin{equation} \begin{pmatrix} \sigma_{11}\\ \sigma_{22}\\ @@ -426,11 +429,12 @@ Dies ergibt die Spannungsgleichung, welche weit möglichst vereinfacht ist: \varepsilon_{12} \end{pmatrix} . -\] +\label{spannung:Spannungsgleichung} +\end{equation} Im Elastizitätstensor fallen zwei $3\times3$ Blöcke auf, welche nur Einträge mit $0$ haben. Der Tensor besagt also, dass diese jeweiligen Dehnungen keinen Einfluss auf unsere Spannung haben. -Man sieht nun auch ganz gut, dass sich im Vergleich zu der allgemeinen Spannungsgleichung, die Einträge verschoben haben. +Man sieht nun auch ganz gut, dass sich im Vergleich zu der allgemeinen Spannungsgleichung die Einträge verschoben haben. Da nach Voigt zuerst die Normalspannungen und anschliessend die Schubspannungen notiert worden sind, ergeben sich die $3\times3$ Blöcke. Man betrachte als Beispiel die Berechnung von $\sigma_{33}$. @@ -438,8 +442,8 @@ Es ist ersichtlich, dass die Schubdehnungen keinen Einfluss auf $\sigma_{33}$ ha Der Einfluss der zu $\sigma_{33}$ äquivalenten Dehnung $\varepsilon_{33}$ hat den grössten Einfluss. Die anderen Normalspannungen $\sigma_{11}$ und $\sigma_{22}$ haben einen unter anderem mit $\nu$ korrigierten Einfluss. -Von $\overline{\overline{C}}$ bildet man noch die inverse Matrix $\overline{\overline{C}}\mathstrut^{-1}$ um die Gleichung umstellen zu können. -Dadurch erhält man die Dehnungsgleichung: +Von $\overline{\overline{C}}$ bildet man die inverse Matrix $\overline{\overline{C}}\mathstrut^{-1}$, mithilfe des Gauss - Jordan Algorithmus, um die Gleichung umstellen zu können. +Durch einige Berechnungsschritte erhält man die Dehnungsgleichung: \[ \vec{\varepsilon} diff --git a/buch/papers/spannung/teil3.tex b/buch/papers/spannung/teil3.tex index 8d99733..a9080ea 100644 --- a/buch/papers/spannung/teil3.tex +++ b/buch/papers/spannung/teil3.tex @@ -14,50 +14,52 @@ Folglich gilt: Dadurch wird der Spannungszustand vereinfacht. Diesen vereinfachten Spannungszustand kann man mit den zwei geotechnischen Invarianten abbilden. Die erste Invariante ist die volumetrische Spannung -\[ +\begin{equation} p = \frac{\sigma_{11}+\sigma_{22}+\sigma_{33}}{3} +\label{spannung:Invariante_p} , -\] +\end{equation} welche als arithmetisches Mittel aller Normalspannungen im infinitesimalen Würfel definiert ist. Die zweite Invariante ist die deviatorische Spannung -\[ +\begin{equation} q = \sqrt{\frac{(\sigma_{11}-\sigma_{22})^{2}+(\sigma_{11}-\sigma_{33})^{2}+(\sigma_{22}-\sigma_{33})^{2}}{2}} +\label{spannung:Invariante_q} . -\] -Diese Zusammenhänge werden im Skript [\cite{spannung:Stoffgesetze-und-numerische-Modellierung-in-der-Geotechnik}] aufgezeigt. -Die hydrostatische Spannung $p$ kann gemäss Gleichung (Nr) als +\end{equation} +Diese Zusammenhänge werden im Skript \cite{spannung:Stoffgesetze-und-numerische-Modellierung-in-der-Geotechnik} aufgezeigt. +Die hydrostatische Spannung $p$ kann gemäss Gleichung \eqref{spannung:Invariante_p} als \[ p = \frac{\sigma_{11}+2\sigma_{33}}{3} \] vereinfacht werden. -Die deviatorische Spannung $q$ wird gemäss Gleichung (Nr) als +Die deviatorische Spannung $q$ wird gemäss Gleichung \eqref{spannung:Invariante_q} als \[ q = \sigma_{11}-\sigma_{33} \] -vereinfacht. Man kann $p$ als Isotrop und $q$ als Schub betrachten. +vereinfacht. Man kann $p$ als Druck und $q$ als Schub betrachten. -Die Invarianten können mit der Spannungsformel (Nr..xxx) berechnet werden. +Die Invarianten $p$ und $q$ können mit der Spannungsgleichung \eqref{spannung:Spannungsgleichung} berechnet werden. Durch geschickte Umformung dieser Gleichung, lassen sich die Module als Faktor separieren. Dabei entstehen spezielle Faktoren mit den Dehnungskomponenten. So ergibt sich \[ -\overbrace{\frac{\sigma_{11}+2\sigma_{33}}{3}}^{p} +\overbrace{\frac{\sigma_{11}+2\sigma_{33}}{3}}^{\displaystyle{p}} = -\frac{E}{3(1-2\nu)} \overbrace{(\varepsilon_{11} - 2\varepsilon_{33})}^{\varepsilon_{v}} +\frac{E}{3(1-2\nu)} \overbrace{(\varepsilon_{11} - 2\varepsilon_{33})}^{\displaystyle{{\varepsilon_{v}}}} \] und \[ -\overbrace{\sigma_{11}-\sigma_{33}}^{q} +\overbrace{\sigma_{11}-\sigma_{33}}^{\displaystyle{q}} = -\frac{3E}{2(1+\nu)} \overbrace{\frac{2}{3}(\varepsilon_{11} - \varepsilon_{33})}^{\varepsilon_{s}} +\frac{3E}{2(1+\nu)} \overbrace{\frac{2}{3}(\varepsilon_{11} - \varepsilon_{33})}^{\displaystyle{\varepsilon_{s}}} . \] Die Faktoren mit den Dehnungskomponenten können so mit @@ -77,29 +79,32 @@ eingeführt werden, mit \varepsilon_{v} &= \text{Hydrostatische Dehnung [-]} \\ \varepsilon_{s} &= \text{Deviatorische Dehnung [-].} \end{align*} -Die hydrostatische Dehnung $\varepsilon_{v}$ kann mit einer Kompression verglichen werden. -Die deviatorische Dehnung $\varepsilon_{s}$ kann mit einer Verzerrung verglichen werden. +Die hydrostatische Dehnung $\varepsilon_{v}$ kann mit einer Kompression und +die deviatorische Dehnung $\varepsilon_{s}$ mit einer Verzerrung verglichen werden. Diese zwei Gleichungen kann man durch die Matrixschreibweise -\[ +\begin{equation} \begin{pmatrix} q\\ p \end{pmatrix} = \begin{pmatrix} - \frac{3E}{2(1+\nu)} & 0 \\ - 0 & \frac{E}{3(1-2\nu)} + \displaystyle{\frac{3E}{2(1+\nu)}} & 0 \\ + 0 & \displaystyle{\frac{E}{3(1-2\nu)}} \end{pmatrix} \begin{pmatrix} \varepsilon_{s}\\ \varepsilon_{v} \end{pmatrix} -\] -(sollte nummeriert sein) vereinfachen. -Man hat so eine Matrix multipliziert mit einem Vektor und erhält einen Vektor. -Änderungen des Spannungszustandes können mit dieser Gleichung vollumfänglich erfasst werden. +\label{spannung:Matrixschreibweise} +\end{equation} +vereinfachen. -Mit dieser Formel lassen sich verschieden Ergebnisse von Versuchen analysieren und berechnen. -Ein solcher Versuch, den oft in der Geotechnik durchgeführt wird, ist der Oedometer-Versuch. +Änderungen des Spannungszustandes können mit diesen Gleichungen vollumfänglich erfasst werden. +Diese Spannungsgleichung mit den zwei Einträgen ($p$ und $q$) ist gleichwertig +wie die ursprüngliche Spannungsgleichung mit den neun Einträgen +($\sigma_{11}$, $\sigma_{12}$, $\sigma_{13}$, $\sigma_{21}$, $\sigma_{22}$, $\sigma_{23}$, $\sigma_{31}$, $\sigma_{32}$, $\sigma_{33}$). +Mit dieser Formel \eqref{spannung:Matrixschreibweise} lassen sich verschieden Ergebnisse von Versuchen analysieren und berechnen. +Ein solcher Versuch, der oft in der Geotechnik durchgeführt wird, ist der Oedometer-Versuch. Im nächsten Kapitel wird die Anwendung der Matrix an diesem Versuch beschrieben. diff --git a/buch/papers/spannung/teil4.tex b/buch/papers/spannung/teil4.tex index d524f13..00b2d4f 100644 --- a/buch/papers/spannung/teil4.tex +++ b/buch/papers/spannung/teil4.tex @@ -1,6 +1,6 @@ -\section{Oedometer-Versuch\label{spannung:section:Oedometer-Versuch}} -\rhead{Oedometer-Versuch} -Mit dem Oedometer-Versuch kann der oedometrische Elastizitätsmodul $E_{OED}$ bestimmt werden. +\section{Oedometrischer Elastizitätsmodul\label{spannung:section:Oedometrischer Elastizitätsmodul}} +\rhead{Oedometrischer Elastizitätsmodul} +Mit dem Oedometer-Versuch kann der oedometrische Elastizitätsmodul $E_{\text{OED}}$ bestimmt werden. Dieser beschreibt ebenfalls das Verhältnis zwischen Spannung und Dehnung, allerdings unter anderen Bedingungen. Diese Bedingung ist das Verhindern der seitlichen Verformung, sprich der Dehnung in Richtung $1$ und $2$. Es wird ein Probeelement mit immer grösseren Gewichten belastet, welche gleichmässig auf das Material drücken. @@ -34,7 +34,7 @@ Die Spannung $\sigma_{11}$ wird durch die aufgebrachte Kraft mit \frac{F}{A} \] und die Dehnung $\varepsilon_{11}$ jeweils mit den entsprechenden Setzungen berechnet. -Diese Randbedingungen können in die vereinfachte Gleichung (Nrxxx) eingesetzt werden. +Diese Randbedingungen können in die vereinfachte Gleichung \eqref{spannung:Matrixschreibweise} eingesetzt werden. Diese lautet nun: \[ \begin{pmatrix} @@ -43,8 +43,8 @@ Diese lautet nun: \end{pmatrix} = \begin{pmatrix} - \frac{E_{OED}}{(1+\nu)} & 0 \\ - 0 & \frac{E_{OED}}{3(1-2\nu)} + \displaystyle{\frac{E_{\text{OED}}}{(1+\nu)}} & 0 \\ + 0 & \displaystyle{\frac{E_{\text{OED}}}{3(1-2\nu)}} \end{pmatrix} \begin{pmatrix} \varepsilon_{11}\\ @@ -52,28 +52,28 @@ Diese lautet nun: \end{pmatrix} . \] -Daraus lässt sich bei jedem Setzungsgrad der oedometrische Elastitzitätsmodul $E_{OED}$ und die seitlichen Spannungen $\sigma_{33}$ mit den 2 Gleichungen +Daraus lässt sich bei jedem Setzungsgrad der oedometrische Elastitzitätsmodul $E_{\text{OED}}$ und die seitlichen Spannungen $\sigma_{33}$ mit den zwei Gleichungen \[ \sigma_{11}-\sigma_{33} = -\frac{E_{OED}}{(1+\nu)}\cdot\varepsilon_{11} +\frac{E_{\text{OED}}}{(1+\nu)}\cdot\varepsilon_{11} \] und \[ \sigma_{11}+2\sigma_{33} = -\frac{E_{OED}}{3(1-2\nu)}\cdot\varepsilon_{11} +\frac{E_{\text{OED}}}{3(1-2\nu)}\cdot\varepsilon_{11} \] berechnen. -Mit diesen Gleichungen hat man das Gleichungssystem um $E_{OED}$ und $\sigma_{33}$ zu berechnen. +Mit diesen Gleichungen hat man das Gleichungssystem um $E_{\text{OED}}$ und $\sigma_{33}$ zu berechnen. Die Poisson-Zahl muss als Kennwert gemäss der Bodenklasse gewählt werden. -Den Versuch kann man auf einem $\sigma$-$\varepsilon$-Diagramm abtragen (siehe Abbildung 1.7). +Den Versuch kann man auf einem $\sigma$-$\varepsilon$-Diagramm abtragen (siehe Abbildung~\ref{fig:DiagrammOedometer-Versuch}). Durch die Komprimierung nimmt der Boden mehr Spannung auf, und verformt sich zugleich weniger stark. -Mit diesem ermittelten $E_{OED}$ kann man nun weitere Berechnungen für die Geotechnik durchführen. +Mit diesem ermittelten $E_{\text{OED}}$ kann man nun weitere Berechnungen für die Geotechnik durchführen. \begin{figure} \centering - \includegraphics[width=0.5\linewidth,keepaspectratio]{papers/spannung/Grafiken/DiagrammOedometer-Versuch.png} + \includegraphics[width=0.45\linewidth,keepaspectratio]{papers/spannung/Grafiken/DiagrammOedometer-Versuch.png} \caption{Diagramm Charakteristik verschiedener Elastizitätsmodule bei gleichem Material} \label{fig:DiagrammOedometer-Versuch} \end{figure}
\ No newline at end of file diff --git a/buch/papers/verkehr/main.tex b/buch/papers/verkehr/main.tex index 6348993..98d0581 100644 --- a/buch/papers/verkehr/main.tex +++ b/buch/papers/verkehr/main.tex @@ -3,8 +3,7 @@ % % (c) 2020 Hochschule Rapperswil % -\chapter{Thema\label{chapter:verkehr}} -\lhead{Verkehrsfluss und Verkehrsnetze} +\chapter{Verkehrsfluss und Verkehrsnetze\label{chapter:verkehr}} \begin{refsection} \chapterauthor{Pascal Andreas Schmid und Robine Luchsinger} diff --git a/buch/papers/verkehr/section1.tex b/buch/papers/verkehr/section1.tex index 6a5dc28..6ac86ad 100644 --- a/buch/papers/verkehr/section1.tex +++ b/buch/papers/verkehr/section1.tex @@ -1,70 +1,98 @@ -\section{Einführung} \label{section:verkehr/einfuehrung} -\subsection{Verkehrsnetze} -Das Verkehrsnetz besteht aus allen Anlagen, auf oder unter der Erdoberfläche, auf denen eine räumliche Fortbewegung von Personen oder auch Gütern stattfindet. Verkehrsnetze sind ein Bestandteil der Verkehrsinfrastruktur, die auf topografischen Karten festgehalten werden. Sie umfassen den Schienenverkehr, alle Strassen und Wege, wie auch Flugplätze und alle dazugehörigen Bauwerke. +Das Verkehrsnetz besteht aus allen Anlagen, auf oder unter der Erdoberfläche, auf denen eine räumliche Fortbewegung von Personen oder auch Gütern stattfindet. Verkehrsnetze sind ein Bestandteil der Verkehrsinfrastruktur, die auf topografischen Karten festgehalten werden. Sie umfassen den Schienenverkehr, alle Strassen und Wege, wie auch Flugplätze und alle dazugehörigen Bauwerke. Aus verkehrsgeografischer Sicht besteht das Verkehrsnetz aus Kanten, Knotenpunkten und dem Hinterland. Die Knotenpunkte werden auch hier durch die Kanten verbunden, die den Verkehrsstrom aufnehmen, wobei das Hinterland durch einzelne Knoten versorgt wird. Die Aufteilung in Kanten und Knotenpunkte ermöglicht eine Vereinfachung komplexer Verkehrsnetze, damit sie mittels der Graphentheorie untersucht werden können. -Grundsätzlich können kurze Wege zwischen den Knotenpunkten das Ziel beim -Aufbau eines Verkehrsnetzes sein. Es kann aber auch versucht werden, die Bau- und Unterhaltskosten des Verkehrsnetzes in einem gewissen Rahmen zu halten. Aus diesen Vorgaben ergibt sich dann, je nach dem was gewünscht wird, eine grob- oder feinmaschige Struktur des Netzes. +Grundsätzlich können kurze Wege zwischen den Knotenpunkten das Ziel beim Aufbau eines Verkehrsnetzes sein. Es kann aber auch versucht werden, die Bau- und Unterhaltskosten des Verkehrsnetzes in einem gewissen Rahmen zu halten. Aus diesen Vorgaben ergibt sich dann, je nach dem was gewünscht wird, eine grob- oder feinmaschige Struktur des Netzes. Ziel ist aber ein möglichst wirtschaftliches und optimales Verkehrsnetz. -\subsection{Suchalgorithmen} - -\subsubsection{Dijkstra-Algorithmus} -Der Algorithmus von Dijkstra ist benannt nach seinem Erfinder dem Mathematik- und Infomratikprofessor Edsger Dijkstra. Den Algorithmus hat er im Jahr 1959 erfunden. -Der Algorithmus von Dijkstra ist ein Greedy-Algorithmus (gieriger Algorithmus), der schrittweise einen Folgezustand auswählt, damit beim Zeitpunkt der Wahl der grösste Gewinn bzw. das beste Ergebnis erzielt werden kann. -Trotz der Schnelligkeit der Greedy-Algorithmen, können viele Probleme nicht optimal gelöst werden. -Vereinfacht wird beim Dijkstra-Algorithmus, ausgehend von einem Startknoten so lange dem kürzesten Pfad gefolgt, bis der Zielknoten erreicht wird. Dabei muss für jeden besuchten Knoten die Kostenfunktion als auch der Pfad dahin (vorheriger Knoten) gespeichert werden. -Dadurch wird hingegen garantiert, dass, wenn der Zielknoten erreicht wird, auch der kürzeste Pfad gefunden wurde. -Grundlegende Voraussetzung für den Dijkstra-Algorithmus ist die strikte Positivität der Kantengewichte. Andernfalls würde ein wiederholtes Ablaufen einer Kante mit negativem Gewicht zu einer stetigen Reduktion der Kostenfunktion führen, was zu einer unendlichen Schlaufe führen würde. - -\subsubsection{A*-Algorithmus} -Suchalgorithmen werden nach einfachen (uninformierte) und heuristischen (informierten) Algorithmen unterschieden. Während einfache Algorithmen den Suchraum intuitiv durchsuchen, beziehen heuristische Algorithmen Wissen über den Suchraum mit ein. -Der A*-Algorithmus geht auf seine Erfinder Peter Hart, Nils Nilsson und Bertram Raphael zurück, die den Algorithmus erstmals im Jahr 1968 beschrieben. -Der A*-Algorithmus ist ein heuristischer Suchalgorithmus, der den kürzesten Pfad zwischen zwei Knoten in einem Graphen mit positiven Kantengewichten berechnet. -Im Gegensatz zu einfachen Suchalgorithmen, wird beim A*-Algorithmus eine Schätzfunktion, die sogenannte Heuristik, verwendet. Dies ermöglicht ein zielgerichtetes Suchen und gleichzeitig wird die Laufzeit verringert. -Ausserdem findet der A*-Algorithmus immer eine optimale Lösung, sofern eine vorhanden ist. -Der A*-Algorithmus wird als Verallgemeinerung gehandhabt und gilt als Erweiterung des Dijkstra-Algorithmus. -======= - -\subsubsection{Floyd-Warshall-Algorithmus} -Der Floyd-Warshall-Algorithmus wurde erstmals im Jahr 1962 von seinen Namensgebern Robert Floyd und Stephen Warshall vorgestellt. -Der Floyd-Warshall-Algorithmus sucht kürzeste Wege innerhalb eines Graphen. Er ermittelt aber nicht nur die Distanz zwischen zwei Knoten, sondern berechnet die kürzesten Wege zwischen allen Knotenpaaren eines gewichteten Graphen. Somit werden die kürzesten , beziehungsweise die optimalsten Wege zwischen allen Paaren von Knoten berechnet, sofern der Graph keinen negativen Kreis (Zyklus) aufweist. -Ein Kreis in einem Graphen ist ein Weg, bei dem Start- und Endpunkt den gleichen Knoten aufweisen. Dieser wird negativ, wenn die Summe der gewichteten Kanten kleiner als Null wird. - -\subsubsection{Euklidische Heuristik} -Bei Verkehrsnetzen ist die euklidische Distanz eine gängige und zuverlässige Heurstik. Dabei wird zu den effektiven Reisekosten zum aktuellen Knoten die euklidische Distanz bis zum Zielknoten hinzuaddiert. Dadurch wird die Kostenfunktion konsequent nie überschätzt. Dies stellt eine Voraussetzung an eine zulässige Heuristik dar. -Was bei einem physischen Verkehrsnetz einfach zu bewältigen ist, da Koordinaten von Verkehrsnetzen zur Berechnung der Distanz verwendet werden können, ist bei virtuellen Netzwerken (z.B. Servernetzen) entweder nicht möglich, oder nicht relevant. - -\subsection{PageRank-Algorithmus} -Der PageRank-Algorithmus wurde von den Gründern von Google, Larry Page und Sergey Brin im Jahr 1996 entwickelt und zum Patent angemeldet. Zwei Jahre später gründeten sie ihr Unternehmen Google Inc.. -Beim PageRank-Algorithmus handelt es sich um den Algorithmus von Google, aus dem die Google-Matrix abgeleitet wird. -Die Google-Matrix ist eine immens grosse Matrix mit Millionen Zeilen und Spalten, die für die schnelle und vor allem exakte Bestimmung der PageRanks (Gewichtung) eine grosse Bedeutung hat. -Der PageRank-Algorithmus analysiert und gewichtet beispielsweise die Verlinkungsstruktur verschiedener Websites des World Wide Web anhand ihrer Struktur. -Der PageRank wird umso höher, je mehr hochwertige Links auf eine Webseite verweisen und je höher die Gewichtung einer Webseite ist, desto grösser ist der Effekt.\\ -Dabei handelt es sich um einen iterativen Prozess. Ausgegangen wird von der Adjazenz-Matrix $A$, für welche gilt. +\section{Suchalgorithmen} +Inbesondere bei Graphen in Form von Verkehrsnetzen ist das Finden eines kürzesten Weges von Interesse. Mathematisch betrachtet handelt es sich hierbei um ein Optimierungsproblem, bei dem die Summe der Kantengewichte zwischen zwei Knoten minimiert werden soll. Zu diesem Zweck existieren verschiedene Suchalgorithmen. In den folgenden Abschnitten wird auf eine Auswahl davon eingegangen. Zuvor ist es jedoch notwendig, einige Begriffe und Eigenschaften von Suchalgorithmen zu definieren. + +Einerseits wird zwischen optimalen und nicht-optimalen Algorithmen unterschieden. Ein Suchalgorithmus gilt als optimal, falls er einen günstigsten Pfad zwischen zwei Knoten findet. Es gilt zu beachten, dass im Falle des Vorhandenseins von mehrerern Pfaden mit identischer, minimaler Summe der Kantengewichte zwischen zwei Knoten, mindestens einer dieser Pfade gefunden wird. + +Weiter wird zwischen informierten und uninformierten Algorithmen differenziert. Während uninformierte Suchalgorithmen den Suchraum schematisch auf Basis der Eigenschaften des Graphen absuchen, bis eine günstigste Lösung gefunden wurde, verwenden informierte Suchalgorithmen eine Heuristik zur Abschätzung der Suchrichtung. Oftmals wird bei informierten Algorithmen ein Verlust der Optimalität zugunsten einer verbesserten Rechenzeit in Kauf genommen. Es exisitieren jedoch auch Heurstiken, die eine optimale Lösung gewährleisten. + +Eine besondere Art von Suchalgorithmen stellen die sogenannten Greedy-Algorithmen, zu deutsch gierige Algorithmen, dar. Sie zeichnen sich dadurch aus, dass sie stets den zurzeit günstigsten Folgezustand auswählen. Dadurch sind sie in der Regel äusserst effizient, garantieren bei vielen Problemstellungen jedoch keine optimale Lösung. + +\subsection{Dijkstra-Algorithmus} +Der Algorithmus von Dijkstra ist benannt nach seinem Erfinder dem Mathematik- und Informatikprofessor Edsger Dijkstra. Er gehört zur Klasse der uninformierten Greedy-Algorithmen. Zudem ist die Optimalität bei strikt positiven Kantengewichten gewährleistet. +Vorteilhaft ist die einfache Implementierung. Abhängig von der Programmiersprache sind zwischen 30 und 40 Zeilen an Code ausreichend, damit er den kürzesten Pfad zwischen einem Startknoten $a$ und Zielknoten $b$ finden kann. + +Die für dieses Paper verwendete programmierte Funktion (MATLAB) verwendet eine abgewandelte Form der gewichteten Adjazenz-Matrix $A$, für welche gilt: +Der Matrix-Eintrag $A_{i,j}$ enthält das Kantengewicht der Kante von Knoten $j$ nach $i$ auf. Falls keine Kante zwischen $j$ und $i$ vorhanden ist, beträgt der Eintrag $\infty$. Dies vereinfacht die Implementierung zur Bestimmung des nächst-günstigsten Pfades. +Zudem werden zwei Hilfs-Vektoren $\vec{d}$ und $\vec{b}$ der Länge $n$ eingeführt, wobei $n$ die Anzahl Knoten des Graphen ist. Im Vektoreintrag $\vec{d}(i)$ wird das kummulierte Kantengewicht zur Erreichung von Knoten $i$ vom Startknoten $a$ gespeichert. Der Eintrag $\vec{d}(a)$ beträgt somit $0$. Im Vektor $\vec{b}$ wird zudem vermerkt, falls ein Knoten bereits als Ziel eines kürzesten Pfads gefunden wurde und somit für die weitere Suche nicht mehr berücksichtigt werden muss ($\vec{b}(i)=1$, sonst $\vec{b}(i)=0$). + +Ausgehend vom Startknoten $a$ wird nun anhand der Matrix $A$ in der Spalte $a$ nach dem kleinsten Eintrag gesucht. Somit wird der Folgeknoten $c$ gefunden. Dieser Vorgang wird nun wiederholt, wobei jedoch sämtliche von Knoten $a$ und $c$ erreichbaren Knoten berücksichtigt werden, die noch nicht besucht wurden. In anderen Worten alle nicht verschwindenden Einträge $i$ der Spalten $a$ und $c$ der Matrix $A$, für welche gilt $\vec{b}(i)=0$. Ausschlaggebend für die folgende Auswahl ist die Summe der kummulierten Kantengewichte und des Kantengewichts des nächsten Knotens. Als Beispiel zur Erreichung von Knoten $k$ über Knoten $j$: +\begin{equation} +\vec{d}(k)=\vec{d}(j)+A(k,j) +\end{equation} +Diese Iteration wird solange durchgeführt, bis der Folgeknoten dem Zielknoten entspricht. + +\subsection{A*-Algorithmus} +Der A*-Algorithmus basiert auf dem Dijkstra-Algorithmus, verwendet jedoch eine Heuristik zur Abschätzung der günstigsten Suchrichtung. Somit handelt es sich um einen informierten Greedy-Algorithmus, der abhängig von der verwendeten Heuristik auch optimal sein kann. Er wurde von Peter Hart, Nils Nilsson und Bertram Raphael entwickelt. + +\subsection{Anwendung A*-Algorithmus} +Wie oben erwähnt basiert der A*-Algorithmus auf dem Shortest-Path-Algorithmus von Dijkstra. Gemäss dem Algorihtmus von Dijkstra werden von einem Startknoten aus die jeweiligen Nachbarknoten, die Nachbarknoten der Nachbarknoten usw. verarbeitet. Die Kantengewichte werden dabei aufsummiert und die Priorität wird auf die Kante gelegt, die das geringste Gewicht aufweist. Mit diesem Verfahren wird sichergestellt, dass die erste gefundene Lösung auch eine optimale Lösung darstellt.\\ + +Der A*-Algorithmus unterscheidet sich vom Dijkstra-Algorithmus dahingehend, dass bei der Auswahl des Folgeknotens, nicht nur die Summe der Kantengewichte $\vec{d}(j)+A(k,j)$, sondern zusätzlich die für jeden Knoten definierte Abschätzfunktion $f(k)$ hinzuaddiert wird. Dies passiert jedoch nur bei der \emph{Auswahl} des Folgeknotens. Der Wert von $f(k)$ wird nicht im Eintrag $\vec{d}(k)$ gespeichert. Somit wird gewährleistet, dass der gefundene Pfad, der Summe der Kantengewichte entspricht. Ein Beispiel dafür, wie eine Abschätzfunktion gebildet werden kann findet sich in Abschnitt \ref{sec:verkehr/euklidische} + +\subsection{Euklidische Heuristik} +\label{sec:verkehr/euklidische} +Bei Verkehrsnetzen ist die euklidische Distanz eine gängige und zuverlässige Heurstik. Dabei wird zu den effektiven Reisekosten zum aktuellen Knoten die euklidische Distanz bis zum Zielknoten hinzuaddiert. Dadurch wird die Kostenfunktion konsequent nie überschätzt. Dies stellt eine Voraussetzung an eine zulässige Heuristik dar. Unter Verwendung dieser Heuristik gilt der A*-Algorithmus als optimal. + +Bei der euklidischen Heuristik wird die Abschätzfunktion $f(k)$ für jeden Knoten $k$ durch euklidische Distanz zum Zielknoten $b$ gebildet. +\begin{equation} +f(k)=\sqrt{(x_k-x_b)^2+(y_k-y_b)^2} +\end{equation} + +Was bei einem physischen Verkehrsnetz einfach zu bewältigen ist, da Koordinaten von Verkehrsnetzen zur Berechnung der Distanz verwendet werden können, ist bei virtuellen Netzwerken (z.B. Servernetzen) entweder nicht möglich, oder nicht relevant. Hier können hingegen andere Eigenschaften des Netzwerks verwendet werden, auf welche in diesem Paper nicht weiter eingegangen wird. + +\subsection{Floyd-Warshall-Algorithmus} +Der Floyd-Warshall-Algorithmus, auch Tripel-Algorithmus genannt, wurde erstmals im Jahr 1962 von seinen Namensgebern Robert Floyd und Stephen Warshall vorgestellt. +Der Floyd-Warshall-Algorithmus sucht kürzeste Wege innerhalb eines Graphen. Er ermittelt aber nicht nur die Distanz zwischen zwei Knoten, sondern berechnet die kürzesten Wege zwischen allen Knotenpaaren eines gewichteten Graphen. Somit werden die günstigsten Wege zwischen allen Paaren von Knoten berechnet. Der Floyd-Warhshall-Algrithmus kann ausserdem mit negativen Kantengewichten umgehen, sofern der Graph keinen negativen Kreis (Zyklus) aufweist. Ein Kreis, sprich ein Weg mit identischem Start- und Zielknoten, ist negativ, falls die Summe der Kantengewichte des Weges kleiner als null ist. Ist dies der Fall, führt der Algorithmus zu einem falschen Ergebnis. + +\subsection{Anwendung Floyd-Warshall-Algorithmus} %THEORIE... -Grundsätzlich setzt sich der PageRank Algorithmus mit der Fragestellung auseinander, wie eine Suchmaschine wie Google Suchresultate bewertet und somit sortieren soll. Öfters aufgerufene Resultate sollen schliesslich höher gewichtet werden. Dabei wird angenommen, dass eine Website populärer ist, je mehr andere Websites darauf verweisen. +In einem ersten Schritt wird eine Gewichtsmatrix $W$ mit den Matrixeinträgen $W[i, j]$ erstellt. +Der Algorithmus berechnet danach in einer Hauptschleife alle Knoten $k$ von 1 bis $n$. +Dabei versucht er in jeder Iteration alle Wege von $i$ nach $j$ durch die Wege $(i, k)$ und $(k, j)$ zu verbessern. +Falls dieser mögliche Umweg zu einer Verbesserung führt, wird der entsprechende Eintrag aktualisiert. + +Die aktuelle Gewichtung der Pfade wird mit +\begin{equation}d[i, j]=\min[d[i,j], d[i,k] + d[k,i]]\end{equation} +ermittelt. + + + +\section{PageRank-Algorithmus} +Der PageRank-Algorithmus wurde von den Gründern von Google, Larry Page und Sergey Brin im Jahr 1996 entwickelt und zum Patent angemeldet. Zwei Jahre später gründeten sie ihr Unternehmen Google Inc. +Beim PageRank-Algorithmus handelt es sich nicht um einen Suchalgorithmus, stattdessen werden Knoten aufgrund der Vernetzung des vorliegenden Graphen bewertet. +Verwendet wird er beispielsweise um die Verlinkungsstruktur verschiedener Websites des World Wide Web anhand ihrer Struktur zu bewerten und relevante Suchergebnisse zu ermittteln. Der PageRank wird umso höher, je mehr hochwertige Links auf eine Webseite verweisen und je höher die Gewichtung einer Webseite ist, desto grösser ist der Effekt.\\ +Dabei handelt es sich um einen iterativen Prozess. Ausgegangen wird von der Adjazenz-Matrix $A$, für welche folgendes gilt: \begin{equation} A_{i,j}=\left\{ \begin{matrix} -1 & \text{Kante von $j$ nach $i$} \\ 0 & \text{keine Kante von $j$ nach $i$} +1 & \text{Kante von $j$ nach $i$} \\ 0 & \text{keine Kante von $j$ nach $i$} \end{matrix} \right. \label{verkehr:Adja} \end{equation} +%THEORIE... +Grundsätzlich setzt sich der PageRank Algorithmus mit der Fragestellung auseinander, wie eine Suchmaschine wie Google Suchresultate bewertet und somit sortieren soll. Öfters aufgerufene Resultate sollen schliesslich höher gewichtet werden. Dabei wird angenommen, dass eine Website populärer ist, je mehr andere Websites darauf verweisen. + + -Für ungerichtete Graphen mit $n$ Knoten gilt \begin{equation}A_{i,j}=A_{j,i}\end{equation} und weiter \begin{equation}A_{i,i}=0\quad\forall i\in \left\{1...n\right\}\end{equation} +Für ungerichtete Graphen mit $n$ Knoten gilt \begin{equation}A_{i,j}=A_{j,i}\end{equation} und weiter \begin{equation}A_{i,i}=0\quad\forall i\in \left\{1\dots n\right\}\end{equation} Beim PageRank-Algorithmus wird eine abgewandelte Form der Adjazenz-Matrix verwendet. -Dabei werden die Matrix-Einträge spaltenweise durch die jeweilige Spaltensumme geteilt. -\begin{equation} P_{i,j}=\frac{A_{i,j}}{\sum_{i=1}^{n}A_{i,j}} \end{equation} +Dabei werden die Matrix-Einträge spaltenweise durch die jeweilige Spaltensumme geteilt: +\( P_{i,j}=\frac{A_{i,j}}{\sum_{i=1}^{n}A_{i,j}} \) Anschliessend multipliziert man diese Matrix $P$ mit einem Spaltenvektor $\Vec{r_0}$ mit $n$ Einträgen, für welchen gilt: -\begin{equation} \Vec{r_0}(i) = \frac{1}{n} \quad\forall i\in \left\{1...n\right\} \end{equation} +\( \Vec{r_0}(i) = \frac{1}{n} \quad\forall i\in \left\{1\dots n\right\} \) Dieser Vektor stellt ein neutrales Ranking dar. Alle Knoten werden gleich gewichtet. -Dadurch erhält man wiederum einen $n$-zeiligen Spaltenvektor $\Vec{r_1}$, der das "erste" Ranking darstellt. Durch Multiplikation der ursprünglichen Matrix $P$ mit dem 1. Ranking-Vektor $\Vec{r_1}$ wird auf Basis des ersten Rankings ein zweites erstellt. -\begin{equation} \Vec{r_2} = P\cdot\Vec{r_1} = P\cdot(P\cdot\Vec{r_0}) = P^2\cdot\Vec{r_0}\end{equation} -somit -\begin{equation} \Vec{r_i} = P^i\cdot\Vec{r_0}\end{equation} -Der Vektor $\Vec{r_i}$ konvergiert zu einem Eigenvektor von $P$ und stellt das abschliessende Ranking dar. +Dadurch erhält man wiederum einen $n$-zeiligen Spaltenvektor $\Vec{r_1}$, der das ``erste'' Ranking darstellt. Durch Multiplikation der ursprünglichen Matrix $P$ mit dem 1. Ranking-Vektor $\Vec{r_1}$ wird auf Basis des ersten Rankings ein zweites erstellt: +\( \Vec{r_2} = P\cdot\Vec{r_1} = P\cdot(P\cdot\Vec{r_0}) = P^2\cdot\Vec{r_0}\) +und somit allgemein: +\( \Vec{r_i} = P^i\cdot\Vec{r_0}\) +Der Vektor $\Vec{r_i}$ konvergiert zu einem Eigenvektor von $P$ der das abschliessende Ranking darstellt. diff --git a/buch/papers/verkehr/section2.tex b/buch/papers/verkehr/section2.tex index 638d9dd..527885e 100644 --- a/buch/papers/verkehr/section2.tex +++ b/buch/papers/verkehr/section2.tex @@ -1,12 +1,12 @@ \section{Versuchsreihe} \label{section:verkehr/versuchsreihe} -Um zwei der vorgestellten Suchalgorithmen zu vergleichen, wurden zwei Versuchsreihen erstellt. Dazu wurden in einem ersten Schritt zufällige Netzwerke generiert und anschliessend der \emph{Dijkstra}-, sowie der \emph{$A^*$}-Algorithmus auf das Netzwerk angewandt. -Dieser Vorgang wurde für die zufällig generierten Netzwerke mit einer Knotenzahl von 10, 20 50, 100, 200, 500 und 1000 je zehnmal repetiert. -Die Anzahl der Knoten im abgesuchten Netzwerk wirkt sich direkt auf die Rechenzeit aus. Der \emph{Dijkstra}-Algorithmus weist eine Zeitkomplexität von $\mathcal{O}(E\log{}V)$ auf, wobei $E$ die Anzahl Kanten (engl. \emph{edges}) und $V$ die Anzahl Knoten (engl. \emph{vertices}) darstellt. -Für den \emph{A*}-Algorithmus ist die Zeitkomplexität einerseits abhängig von der verwendeten Heuristik, andererseits aber auch vom vorliegenden Netzwerk selbst. Aus diesem Grund lässt sich keine defintive Angabe zu $\mathcal{O}$ machen. +Um zwei der vorgestellten Suchalgorithmen zu vergleichen, wurden zwei Versuchsreihen erstellt. Dazu wurden in einem ersten Schritt zufällige Netzwerke generiert und anschliessend der Dijkstra- und der A*-Algorithmus auf das Netzwerk angewandt. +Dieser Vorgang wurde für die zufällig generierten Netzwerke mit einer Knotenzahl von 10, 20 50, 100, 200, 500 und 1000 je zehnmal wiederholt. +Die Anzahl der Knoten im abgesuchten Netzwerk wirkt sich direkt auf die Rechenzeit aus. Der \emph{Dijkstra}-Algorithmus weist eine Zeitkomplexität von $\mathcal{O}(|E|\log{}|V|)$ auf, wobei $E$ die Menge der Kanten (engl. \emph{edges}) und $V$ die Menge der Knoten (engl. \emph{vertices}) des Graphen $G$ darstellt. +Für den A*-Algorithmus ist die Zeitkomplexität einerseits abhängig von der verwendeten Heuristik, andererseits aber auch vom vorliegenden Netzwerk selbst. Aus diesem Grund lässt sich keine definitive Angabe zur Zeitkomplexität machen. -Die beiden Versuchsreihen unterscheiden sich zudem dahingehend, dass der Start- und Zielknoten bei der ersten Versuchsreihe im Netzwerk diametral gegenüber liegen. Dadurch gehen viele Knoten verloren, welcher \emph{Dijkstra} als uninformierter Suchalgorithmus absuchen würde. In der zweiten Veruschsreihe werden hingegen Start- un Zielpunkt zufällig im Netzwerk ausgewählt. Es wird deshalb erwwartet, dass die Unterschiede in der Rechenzeit der beiden Algorithmen in der zweiten Versuchsreihe deutlich ausgeprägter sind. +Die beiden Versuchsreihen unterscheiden sich zudem dahingehend, dass der Start- und Zielknoten bei der ersten Versuchsreihe im Netzwerk diametral gegenüber liegen. Dadurch gehen viele Knoten verloren, welcher \emph{Dijkstra} als uninformierter Suchalgorithmus absuchen würde. In der zweiten Veruschsreihe werden hingegen Start- un Zielpunkt zufällig im Netzwerk ausgewählt. Es wird deshalb erwartet, dass die Unterschiede in der Rechenzeit der beiden Algorithmen in der zweiten Versuchsreihe deutlich ausgeprägter sind. \subsection{Einfluss der Knotenzahl auf die Rechenzeit} \label{verkehr:Knotenzahl} @@ -19,9 +19,9 @@ Die beiden Versuchsreihen unterscheiden sich zudem dahingehend, dass der Start- \label{verkehr:Vr1} \end{figure} -In \ref{verkehr:Vr1} ist ersichtlich, dass der Unterschied in der Rechenzeit zwischen \emph{Dijkstra} und \emph{A*} erst aber einer Knotenzahl von ca. $n=500$ merklich ansteigt. Dieses etwas überraschende Resultat ist darauf zurückzuführen, dass bei steigender Knotenzahl die Abweichung des effektiven kürzesten Pfades von der Distanz der Luftlinie abnimmt. +In \ref{verkehr:Vr1} ist ersichtlich, dass der Unterschied in der Rechenzeit zwischen Dijkstra und A* erst ab einer Knotenzahl von ca. $n=500$ merklich ansteigt. Dieses etwas überraschende Resultat ist darauf zurückzuführen, dass bei steigender Knotenzahl die Abweichung des effektiven kürzesten Pfades von der Distanz der Luftlinie abnimmt. Die Effektivität von \emph{A*} mit euklidischer Heuristik ist wiederum grösser, wenn die Abweichung des kürzesten Pfads von der Luftlinie minimal ist. -Bei Betrachtung von \ref{verkehr:pathDifference} wird dies ersichtlich, wobei die relative Abweichung erstaunlicherweise bei einer Knotenzahl von $n=100$ maximal ist und nach $n=500$ nur noch marginal abnimmt. +Abbildung \ref{verkehr:pathDifference} illustriert dies, wobei die relative Abweichung erstaunlicherweise bei einer Knotenzahl von $n=100$ maximal ist und nach $n=500$ nur noch marginal abnimmt. \begin{figure} \centering @@ -36,13 +36,13 @@ Bei Betrachtung von \ref{verkehr:pathDifference} wird dies ersichtlich, wobei di \begin{figure} \centering -\includegraphics[width=12cm]{papers/verkehr/figures/chart_Vr2.png}\\ +\includegraphics[width=12cm]{papers/verkehr/figures/chart_Vr2.png} \caption{Gemessene Rechenzeiten der zweiten Versuchsreihe in Abhängigkeit der Knotenzahl.} \label{verkehr:Vr2} \end{figure} -Zum Vergleich der Resultate in \ref{verkehr:Knotenzahl} zeigt \ref{verkehr:Vr2} die Rechenzeiten der zweiten Versuchsreihe, in welcher die Start- und Zielknoten zufällig im Netzwerk ausgewählt wurden. Einerseits ist eine reduzierte durchschnittliche Rechenzeit festzustellen, was schlicht daran liegt, dass die zufällige Wahl der Knoten dazu führt, dass diese tendenziell weniger weit auseinander liegen.\\ -Des weiteren ist festzustellen, dass sich die Unterschiede der Rechenzeiten zwischen \emph{Dijkstra} und \emph{A*} deutlich früher abzeichnen. Dieses Phänomen lässt sich leicht durch die zielgerichtete Suche des \emph{A*}-Algorithmus erklären. +Zum Vergleich der Resultate in Abschnitt \ref{verkehr:Knotenzahl} zeigt Abbildung \ref{verkehr:Vr2} die Rechenzeiten der zweiten Versuchsreihe, in welcher die Start- und Zielknoten zufällig im Netzwerk ausgewählt wurden. Einerseits ist eine reduzierte durchschnittliche Rechenzeit festzustellen, was daran liegt, dass die zufällige Wahl der Knoten dazu führt, dass diese tendenziell weniger weit auseinander liegen. +Des weiteren ist festzustellen, dass sich die Unterschiede der Rechenzeiten zwischen Dijkstra und A* deutlich früher abzeichnen. Dieses Phänomen lässt sich leicht durch die zielgerichtete Suche des A*-Algorithmus erklären. \begin{figure} \centering @@ -52,4 +52,4 @@ Des weiteren ist festzustellen, dass sich die Unterschiede der Rechenzeiten zwis \label{verkehr:Comparison} \end{figure} -In \ref{verkehr:Comparison} ist ersichtlich, dass bei einem im Netzwerk liegenden Startknoten die zielgerichtete Suche von \emph{A*} deutlich ausgeprägter zum Zuge kommt, als wenn dieser am Rand des Netzwerks liegen würde. +In Abbildung \ref{verkehr:Comparison} ist ersichtlich, dass bei einem im Netzwerk liegenden Startknoten die zielgerichtete Suche von \emph{A*} deutlich ausgeprägter zum Zuge kommt, als wenn dieser am Rand des Netzwerks liegen würde. diff --git a/buch/papers/verkehr/section3.tex b/buch/papers/verkehr/section3.tex index 99a0d92..9aa8ae4 100644 --- a/buch/papers/verkehr/section3.tex +++ b/buch/papers/verkehr/section3.tex @@ -1,8 +1,9 @@ \section{Ausblick} \subsection{Optimierungsprobleme bei Graphen} -Das Finden eines kürzesten Pfades, sprich die Minimierung der Summe der Kantengewichte, ist nur eines der Optimierungsprobleme, die sich im Bereich von Grafen aufstellen lassen. Verschiedene, ähnliche Problemstellungen lassen sich teilweise mit denselben Algorithmen lösen.\\ -Im Bereich vom Computernetzwerken könnte zum Beispiel die Minimierung der Knotenzahl zur Datenübbertragung von Interesse sein. Dabei lässt sich dieses Problem einfach dadurch lösen, dass dem \emph{Dijkstra}, oder dem \emph{A*}-Algorithmus anstelle der Graph-Matrix (mit Kantengewichten als Einträgen) die Adjazenz-Matrix als Argument übergeben wird. Der gefundene kürzeste Pfad enstpricht der Anzahl benutzter Kanten, bzw. der Anzahl besuchter Knoten. +Das Finden eines kürzesten Pfades, sprich die Minimierung der Summe der Kantengewichte, ist nur eines der Optimierungsprobleme, die sich im Bereich von Graphen aufstellen lassen. Verschiedene, ähnliche Problemstellungen lassen sich teilweise mit denselben Algorithmen lösen. + +Im Bereich vom Computernetzwerken könnte zum Beispiel die Minimierung der Knotenzahl zur Datenübbertragung von Interesse sein. Dabei lässt sich dieses Problem einfach dadurch lösen, dass dem Dijkstra- oder dem A*-Algorithmus anstelle der gewichteten Adjazenz-Matrix (mit Kantengewichten als Einträgen) die ungewichtet Adjazenz-Matrix als Argument übergeben wird. Der gefundene kürzeste Pfad enstpricht der Anzahl benutzter Kanten, bzw. der Anzahl besuchter Knoten. \subsection{Wahl der Heuristik} -Ein grundlegendes Problem bei der Anwendung des \emph{A*} oder ähnlicher informierter Suchalgorithmen ist die Wahl der Heurstik. Bei einem physischen Verkehrsnetz kann bspw. die euklidische Distanz problems ermittelt werde. Bei einem regionalen Netzwerk ist die Annahme eines orthogonalen X-Y-Koordinatenetzes absolut ausreichend. Dies gilt z.B. auch für das Vernessungsnetz der Schweiz\footnote{Die aktuelle Schweizer Referenzsystem LV95 benutzt ein E/N-Koordinatennetz, wobei aufgrund zunehmender Abweichung vom Referenzellipsoid bei grosser Entfernung vom Nullpunkt ein Korrekturfaktor für die Höhe angebracht werden muss.} Bei überregionalen Netzwerken (Beispiel: Flugverbindungen) ist hingegen eine Berechnung im dreidimensionalen Raum, oder vereinfacht als Projektion auf das Geoid notwendig. Anonsten ist der Ablauf bei der Ausführung des Algorithmus allerdings identisch.\\ +Ein grundlegendes Problem bei der Anwendung des A* oder ähnlicher informierter Suchalgorithmen ist die Wahl der Heurstik. Bei einem physischen Verkehrsnetz kann bspw. die euklidische Distanz problems ermittelt werde. Bei einem regionalen Netzwerk ist die Annahme eines orthogonalen X-Y-Koordinatenetzes absolut ausreichend. Dies gilt z.B. auch für das Vernessungsnetz der Schweiz\footnote{Die aktuelle Schweizer Referenzsystem LV95 benutzt ein E/N-Koordinatennetz, wobei aufgrund zunehmender Abweichung vom Referenzellipsoid bei grosser Entfernung vom Nullpunkt ein Korrekturfaktor für die Höhe angebracht werden muss.} Bei überregionalen Netzwerken (Beispiel: Flugverbindungen) ist hingegen eine Berechnung im dreidimensionalen Raum, oder vereinfacht als Projektion auf das Geoid notwendig. Anonsten ist der Ablauf bei der Ausführung des Algorithmus allerdings identisch. In nicht-physischen Netzwerken stellt sich jedoch eine zweite Problematik. Da eine physische Distanz entweder nicht ermittelt werden kann, oder aber nicht ausschlaggebend ist, sind andere Netzwerk-Eigenschaften zur Beurteilung beizuziehen. Die Zuverlässigkeit ist dabei aber in den meisten Fällen nicht vergleichbar hoch, wie bei der euklidischen Heuristik. Oftmals werden deshalb bei derartigen Problem auch Algorithmen angewendet, die eine deutlich optimierte Zeitkomplexität aufweisen, dafür aber nicht mit Sicherheit den effizienstesten Pfad finden. |