]> git.rustad.me Git - nummat2/commitdiff
Initial commit
authorBjørn Rustad <rustadbjornen@gmail.com>
Wed, 16 Nov 2011 09:37:33 +0000 (10:37 +0100)
committerBjørn Rustad <rustadbjornen@gmail.com>
Wed, 16 Nov 2011 09:37:33 +0000 (10:37 +0100)
20 files changed:
Makefile [new file with mode: 0644]
egellip.m [new file with mode: 0644]
elerr.kopi.m [new file with mode: 0644]
elerr.m [new file with mode: 0644]
elint.kopi.m [new file with mode: 0644]
elint.m [new file with mode: 0644]
freewR.m [new file with mode: 0644]
main.kopi.m [new file with mode: 0644]
main.m [new file with mode: 0644]
newtfree.m [new file with mode: 0644]
newton.m [new file with mode: 0644]
newton_error.m [new file with mode: 0644]
octave-core [new file with mode: 0644]
rapport.aux [new file with mode: 0644]
rapport.log [new file with mode: 0644]
rapport.tex [new file with mode: 0644]
rigidbodysimulator.m [new file with mode: 0644]
romberg.m [new file with mode: 0644]
romberg.py [new file with mode: 0644]
rombergold.m [new file with mode: 0644]

diff --git a/Makefile b/Makefile
new file mode 100644 (file)
index 0000000..13d90dd
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,5 @@
+all:
+       latex rapport.tex
+       latex rapport.tex
+       dvips rapport.dvi
+       ps2pdf rapport.ps
diff --git a/egellip.m b/egellip.m
new file mode 100644 (file)
index 0000000..fccadb1
--- /dev/null
+++ b/egellip.m
@@ -0,0 +1,51 @@
+function [sn,cn,dn]=egellip(h,phiin,m,ny)%,tol)\r
+%Solve the elliptic integral from 0 to phi \r
+\r
+%if nargin<3, tol = eps; end\r
+%if nargin<2, error('Not enough input arguments.'); end\r
+\r
+a(1) = 1;\r
+c(1) = sqrt(m);\r
+b(1) = sqrt(1-m);\r
+\r
+i = 1;\r
+while abs(c(i)) > eps\r
+    i = i + 1;\r
+    a(i) = 0.5 * (a(i-1) + b(i-1));\r
+    b(i) = sqrt(a(i-1)* b(i-1));\r
+    c(i) = 0.5 * (a(i-1) - b(i-1));\r
+end\r
+n=i-1;\r
+phiit(1)=phiin;\r
+for j=1:n\r
+    phijf=mod(phiit(j),pi);\r
+    nte=(phiit(j)-phijf)/pi;\r
+    tempf=atan((b(j)/a(j))*tan(phijf));\r
+    if tempf<0\r
+        tempf=tempf+pi;\r
+    end\r
+    phiit(j+1)=tempf+nte*pi+phiit(j);\r
+end\r
+%lamtau=phiit(i)/(a(i)*2^(i-1));\r
+%un=\r
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r
+phin(:,i)=[(2.^(n-1)).*a(i)*h*ny+phiit(i);(2.^n)*a(i)*h*ny+phiit(i)];\r
+while i > 1\r
+    i = i - 1;\r
+    phin(:,i) = phin(:,i+1);\r
+    %if ~isempty(in)\r
+      phin(:,i) = 0.5*(asin(c(i+1).*sin(rem(phin(:,i+1),2*pi))./a(i+1)) + phin(:,i+1));\r
+    %end\r
+end\r
+sn = sin(rem(phin(:,1),2*pi));\r
+cn = cos(rem(phin(:,1),2*pi));\r
+dn = sqrt(1 - m .* sn.^2);\r
+\r
+% special case m = 1 \r
+m1 = find(m==1);\r
+sn(m1) = tanh([h*ny/2+phiit(m1)/((2.^(n)).*a(i));h*ny+phiit(i)/((2.^(n)).*a(i))]);\r
+cn(m1) = sech([h*ny/2+phiit(m1)/((2.^(n)).*a(i));h*ny+phiit(i)/((2.^(n)).*a(i))]);\r
+dn(m1) = sech([h*ny/2+phiit(m1)/((2.^(n)).*a(i));h*ny+phiit(i)/((2.^(n)).*a(i))]);\r
+\r
+\r
diff --git a/elerr.kopi.m b/elerr.kopi.m
new file mode 100644 (file)
index 0000000..81f0da4
--- /dev/null
@@ -0,0 +1,8 @@
+function [el, e1] = elerr(k, L)
+
+[il, i1] = elint(k, pi/2, L)
+
+el = abs(ellipke(k^2) - il)
+e1 = abs(ellipke(k^2) - i1)
+
+end
diff --git a/elerr.m b/elerr.m
new file mode 100644 (file)
index 0000000..98b02f9
--- /dev/null
+++ b/elerr.m
@@ -0,0 +1,8 @@
+function [el, e1] = elerr(k, L)
+
+[il, i1] = elint(k, pi/2, L);
+
+el = abs(ellipke(k^2) - il)
+e1 = abs(ellipke(k^2) - i1)
+
+end
diff --git a/elint.kopi.m b/elint.kopi.m
new file mode 100644 (file)
index 0000000..6487784
--- /dev/null
@@ -0,0 +1,5 @@
+function [il, i1] = elint(k, phi, L)
+
+f = @(x) 1.0 / sqrt(1 - k^2 * sin(x)^2);
+
+[il, i1] = romberg(f, 0, phi, L);
diff --git a/elint.m b/elint.m
new file mode 100644 (file)
index 0000000..5af223f
--- /dev/null
+++ b/elint.m
@@ -0,0 +1,5 @@
+function [il, i1] = elint(k, phi, L)
+
+f = @(x) 1.0 / sqrt(1 - k^2 * sin(x)^2);
+
+[il, i1] = rombergold(f, 0, phi, L);
diff --git a/freewR.m b/freewR.m
new file mode 100644 (file)
index 0000000..3b30de3
--- /dev/null
+++ b/freewR.m
@@ -0,0 +1,149 @@
+function momentum=freewR(h,a,b,c,m01,m02,m03)\r
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r
+% Solve ( I=diag(A,B,C), Omega = angular velocity, R(t) \in SO(3) )\r
+%\r
+% m'= m x (inv(I)*m) \r
+%\r
+% Return exact solution for the angular momentum m=m(t_0+h)  in one step h, \r
+% with initial condition m(t_0) = m_0 = (m01,m02,m03). \r
+%\r
+%\r
+% Subfunctions: egellip\r
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r
+Inert=diag([a,b,c],0);   % Inertia tensor\r
+Inert_inv=diag([1/a,1/b,1/c],0);\r
+\r
+OmeganU(:,1)=[m01/a;m02/b;m03/c];   % Variables\r
+omega0=[m01/a;m02/b;m03/c];   % For temporary use\r
+\r
+b1=sqrt(b*(c-b));\r
+b3=sqrt(b*(b-a)); \r
+\r
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r
+%%%%          BEGIN \r
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r
+\r
+T=(a*omega0(1)^2+b*omega0(2)^2+c*omega0(3)^2)/2;\r
+GG=a^2*omega0(1)^2+b^2*omega0(2)^2+c^2*omega0(3)^2;\r
+\r
+a1=sqrt(2*T*c-GG);\r
+a3=sqrt(GG-2*T*a);\r
+\r
+k=b3*a1/(b1*a3);\r
+        %*****************************************************\r
+        % First case: (b1/a1 >= b3/a3)\r
+        %*****************************************************\r
+    if k<=1\r
+        ni=b1*a3/(b*sqrt(a*c));\r
+        %**************************************************\r
+        %    Adjusting the initial value (first case)  \r
+        %    Calculate "phi_0" (phinoll)\r
+        %**************************************************\r
+        if omega0(1)>=0\r
+            if omega0(2)>=0 % (First quarter)\r
+                phinoll=asin(omega0(2)*b1/a1);\r
+                if omega0(3)<0\r
+                    ni=-ni;\r
+                    a3=-a3;\r
+                end\r
+            else %omega0(2)<0 (Fourth quarter)\r
+                phinoll=asin(omega0(2)*b1/a1)+2*pi;   \r
+                if omega0(3)<0\r
+                    ni=-ni;\r
+                    a3=-a3;\r
+                end\r
+            end\r
+        else %omega0(1)<0\r
+            if omega0(2)>=0 % (Second quarter)\r
+                phinoll=pi-asin(omega0(2)*b1/a1);\r
+                if omega0(3)<0\r
+                    ni=-ni;\r
+                    a3=-a3;\r
+                end\r
+            else %omega0(2)<0 (Third quarter)\r
+                phinoll=2*pi-acos(omega0(1)*sqrt(a*(c-a))/a1);\r
+                if omega0(3)<0\r
+                    ni=-ni;\r
+                    a3=-a3;\r
+                end\r
+            end\r
+        end\r
+        %*************************************************************\r
+        %  Integrating omega by means of Jacobi elliptic functions:\r
+        %  (first case)\r
+        %*************************************************************\r
+        [Sn,Cn,Dn]=egellip(h,phinoll,k^2,ni);\r
+        v=a1/sqrt(a*(c-a))*Cn';\r
+        midt1=v(1,1); \r
+        OmeganU(1,1)=v(1,2);\r
+        v=a1/b1*Sn';\r
+        midt2=v(1,1); \r
+        OmeganU(2,1)=v(1,2);\r
+        v=a3/sqrt(c*(c-a))*Dn';\r
+        midt3=v(1,1); \r
+        OmeganU(3,1)=v(1,2);\r
+        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r
+    else \r
+        %*****************************************************\r
+        % Second case: (b1/a1 < b3/a3)\r
+        %*****************************************************\r
+        k=b1*a3/(a1*b3);\r
+        ni=a1*b3/(b*sqrt(a*c));\r
+        %*****************************************************\r
+        %    Adjusting the initial value (second case)  \r
+        %    Calculate "phi_0" (phinoll)\r
+        %*****************************************************\r
+        if omega0(3)>=0\r
+            if omega0(2)>=0 % (First quarter)\r
+                phinoll=asin(omega0(2)*b3/a3);\r
+                if omega0(1)<0\r
+                    ni=-ni;\r
+                    a1=-a1;\r
+                end\r
+            else %omega0(2)<0 (Fourth quarter)\r
+                phinoll=asin(omega0(2)*b3/a3)+2*pi;\r
+                if omega0(1)<0\r
+                    ni=-ni;\r
+                    a1=-a1;\r
+                end\r
+            end\r
+        else %omega0(3)<0\r
+            if omega0(2)>=0 % (Second quarter)\r
+                phinoll=acos(omega0(3)*sqrt(c*(c-a))/a3);\r
+                if omega0(1)<0\r
+                    ni=-ni;\r
+                    a1=-a1;\r
+                end\r
+            else %omega0(2)<0 (Third quarter)\r
+                phinoll=2*pi-acos(omega0(3)*sqrt(c*(c-a))/a3);\r
+                if omega0(1)<0\r
+                    ni=-ni;\r
+                    a1=-a1;\r
+                end\r
+            end\r
+        end\r
+        %*************************************************************\r
+        %  Integrating omega by means of Jacobi elliptic functions:\r
+        %  (first case)\r
+        %*************************************************************\r
+        [Sn,Cn,Dn]=egellip(h,phinoll,k^2,ni);\r
+        v=a1/sqrt(a*(c-a))*Dn';\r
+        midt1=v(1,1); \r
+        OmeganU(1,1)=v(1,2);\r
+        v=a3/b3*Sn';\r
+        midt2=v(1,1); \r
+        OmeganU(2,1)=v(1,2);\r
+        v=a3/sqrt(c*(c-a))*Cn';\r
+        midt3=v(1,1); \r
+        OmeganU(3,1)=v(1,2);\r
+    end\r
+%*************************************************************\r
+%   Approximation of rotation matrix\r
+%*************************************************************\r
+%midtt=[midt1;midt2;midt3];\r
+%Rmat=expso3(h*midtt);\r
+momentum=Inert*OmeganU;\r
+\r
diff --git a/main.kopi.m b/main.kopi.m
new file mode 100644 (file)
index 0000000..0682cb3
--- /dev/null
@@ -0,0 +1 @@
+i = elint(0.5, 2, 15)
diff --git a/main.m b/main.m
new file mode 100644 (file)
index 0000000..0682cb3
--- /dev/null
+++ b/main.m
@@ -0,0 +1 @@
+i = elint(0.5, 2, 15)
diff --git a/newtfree.m b/newtfree.m
new file mode 100644 (file)
index 0000000..6c3c2d5
--- /dev/null
@@ -0,0 +1,9 @@
+function estimate = newtfree(previous, h, T)
+    estimate = previous;
+    F = @(x) x - previous - .25*h*cross(x+previous,T\(x + previous));
+
+       J = @(x) [1, .25*h*(1/T(2,2)-1/T(3,3))*(previous(3)+x(3)),.25*h*(1/T(2,2)-1/T(3,3))*(previous(2)+x(2));.25*h*(1/T(3,3)-1/T(1,1))*(previous(3)+x(3)), 1,.25*h*(1/T(3,3)-1/T(1,1))*(previous(1)+x(1));.25*h*(1/T(1,1)-1/T(2,2))*(previous(2)+x(2)),.25*h*(1/T(1,1)-1/T(2,2))*(previous(1)+x(1)),1]; 
+       while norm(F(estimate)) > 10*eps
+        estimate = estimate - J(estimate)\F(estimate);
+    end
+end
diff --git a/newton.m b/newton.m
new file mode 100644 (file)
index 0000000..29eafee
--- /dev/null
+++ b/newton.m
@@ -0,0 +1,17 @@
+function null = newton(u, k, x0, tol)
+
+x = x0;
+
+f = @(x) 1/sqrt(1 - k^2 * sin(x)^2);
+
+G = romberg(k, 0, x, tol/10) - u;
+while (abs(G) > tol)
+       G = romberg(k, 0, x, eps) - u;
+       Gder = f(x);
+       xtemp = x - G/Gder;
+       x = xtemp;
+end
+
+null = x;
+
+end
diff --git a/newton_error.m b/newton_error.m
new file mode 100644 (file)
index 0000000..e857fc5
--- /dev/null
@@ -0,0 +1,12 @@
+start = 0;
+k = 0.5;
+
+C = [];
+tol = 100000*eps;
+for u = linspace(0,100,10)
+       am = newton(u, k, start, tol);
+       err = abs(sin(am) - ellipj(u, k^2));
+       C = [C; (err / tol)];
+end
+
+max(C)
diff --git a/octave-core b/octave-core
new file mode 100644 (file)
index 0000000..88618ba
Binary files /dev/null and b/octave-core differ
diff --git a/rapport.aux b/rapport.aux
new file mode 100644 (file)
index 0000000..cb63d8d
--- /dev/null
@@ -0,0 +1,37 @@
+\relax 
+\@writefile{toc}{\contentsline {section}{Part 1}{1}}
+\@writefile{toc}{\contentsline {subsection}{Problem 1}{1}}
+\@writefile{toc}{\contentsline {subsubsection}{a)}{1}}
+\newlabel{eq:sdiv_linear}{{1}{1}}
+\newlabel{eq:sdiv_integrated}{{2}{1}}
+\newlabel{eq:sdiv_evaluated}{{3}{1}}
+\newlabel{eq:s_difference}{{4}{1}}
+\newlabel{eq:sder_sum}{{5}{1}}
+\newlabel{eq:s_matrix}{{6}{1}}
+\@writefile{lot}{\contentsline {table}{\numberline {1}{\ignorespaces \sf  Data determining our spline polynomials.}}{2}}
+\newlabel{tab:data}{{1}{2}}
+\newlabel{eq:poly}{{7}{2}}
+\@writefile{toc}{\contentsline {subsubsection}{b)}{2}}
+\newlabel{eq:g_def}{{8}{2}}
+\newlabel{eq:g_der_zero}{{9}{2}}
+\newlabel{eq:xbar_error}{{10}{2}}
+\newlabel{eq:2s_bound}{{11}{2}}
+\newlabel{eq:si_bound}{{12}{2}}
+\newlabel{eq:error_bound}{{13}{2}}
+\@writefile{toc}{\contentsline {subsection}{Problem 2}{2}}
+\@writefile{toc}{\contentsline {subsubsection}{a)}{2}}
+\newlabel{eq:integral}{{14}{2}}
+\@writefile{lot}{\contentsline {table}{\numberline {2}{\ignorespaces \sf  Showing the convergence for the Romberg method over the interval $[0, 5]$ with $k = 0.5$ as $L$ increases.}}{3}}
+\newlabel{tab:romberg_conv}{{2}{3}}
+\newlabel{eq:euler_maclaurin}{{15}{3}}
+\@writefile{toc}{\contentsline {subsubsection}{b)}{3}}
+\@writefile{lot}{\contentsline {table}{\numberline {3}{\ignorespaces \sf  Estimated integral for decreasing values of tolerance limit.}}{3}}
+\newlabel{tab:tol_test}{{3}{3}}
+\@writefile{toc}{\contentsline {subsubsection}{c)}{3}}
+\@writefile{toc}{\contentsline {subsection}{Problem 3}{4}}
+\@writefile{toc}{\contentsline {subsubsection}{a)}{4}}
+\newlabel{eq:runge_kutta}{{16}{4}}
+\newlabel{eq:runge_kutta_newton}{{17}{4}}
+\newlabel{eq:jacobian}{{18}{4}}
+\@writefile{toc}{\contentsline {subsubsection}{b)}{4}}
+\@writefile{toc}{\contentsline {subsubsection}{c)}{4}}
diff --git a/rapport.log b/rapport.log
new file mode 100644 (file)
index 0000000..3217080
--- /dev/null
@@ -0,0 +1,2685 @@
+This is pdfTeX, Version 3.1415926-1.40.10 (TeX Live 2009/Debian) (format=latex 2011.9.28)  16 NOV 2011 10:33
+entering extended mode
+ %&-line parsing enabled.
+**rapport.tex
+(./rapport.tex
+LaTeX2e <2009/09/24>
+Babel <v3.8l> and hyphenation patterns for english, usenglishmax, dumylang, noh
+yphenation, loaded.
+(/usr/share/texmf-texlive/tex/latex/base/article.cls
+Document Class: article 2007/10/19 v1.4h Standard LaTeX document class
+(/usr/share/texmf-texlive/tex/latex/base/size12.clo
+File: size12.clo 2007/10/19 v1.4h Standard LaTeX file (size option)
+)
+\c@part=\count79
+\c@section=\count80
+\c@subsection=\count81
+\c@subsubsection=\count82
+\c@paragraph=\count83
+\c@subparagraph=\count84
+\c@figure=\count85
+\c@table=\count86
+\abovecaptionskip=\skip41
+\belowcaptionskip=\skip42
+\bibindent=\dimen102
+)
+(/usr/share/texmf-texlive/tex/latex/base/inputenc.sty
+Package: inputenc 2008/03/30 v1.1d Input encoding file
+\inpenc@prehook=\toks14
+\inpenc@posthook=\toks15
+
+(/usr/share/texmf-texlive/tex/latex/base/latin1.def
+File: latin1.def 2008/03/30 v1.1d Input encoding file
+))
+(/usr/share/texmf-texlive/tex/latex/listings/listings.sty
+(/usr/share/texmf-texlive/tex/latex/graphics/keyval.sty
+Package: keyval 1999/03/16 v1.13 key=value parser (DPC)
+\KV@toks@=\toks16
+)
+\lst@mode=\count87
+\lst@gtempboxa=\box26
+\lst@token=\toks17
+\lst@length=\count88
+\lst@currlwidth=\dimen103
+\lst@column=\count89
+\lst@pos=\count90
+\lst@lostspace=\dimen104
+\lst@width=\dimen105
+\lst@newlines=\count91
+\lst@lineno=\count92
+\lst@maxwidth=\dimen106
+
+(/usr/share/texmf-texlive/tex/latex/listings/lstmisc.sty
+File: lstmisc.sty 2007/02/22 1.4 (Carsten Heinz)
+\c@lstnumber=\count93
+\lst@skipnumbers=\count94
+\lst@framebox=\box27
+)
+(/usr/share/texmf-texlive/tex/latex/listings/listings.cfg
+File: listings.cfg 2007/02/22 1.4 listings configuration
+))
+Package: listings 2007/02/22 1.4 (Carsten Heinz)
+
+(/usr/share/texmf-texlive/tex/latex/graphics/graphicx.sty
+Package: graphicx 1999/02/16 v1.0f Enhanced LaTeX Graphics (DPC,SPQR)
+
+(/usr/share/texmf-texlive/tex/latex/graphics/graphics.sty
+Package: graphics 2009/02/05 v1.0o Standard LaTeX Graphics (DPC,SPQR)
+
+(/usr/share/texmf-texlive/tex/latex/graphics/trig.sty
+Package: trig 1999/03/16 v1.09 sin cos tan (DPC)
+)
+(/etc/texmf/tex/latex/config/graphics.cfg
+File: graphics.cfg 2009/08/28 v1.8 graphics configuration of TeX Live
+)
+Package graphics Info: Driver file: dvips.def on input line 91.
+
+(/usr/share/texmf-texlive/tex/latex/graphics/dvips.def
+File: dvips.def 1999/02/16 v3.0i Driver-dependant file (DPC,SPQR)
+))
+\Gin@req@height=\dimen107
+\Gin@req@width=\dimen108
+)
+(/usr/share/texmf-texlive/tex/latex/graphics/color.sty
+Package: color 2005/11/14 v1.0j Standard LaTeX Color (DPC)
+
+(/etc/texmf/tex/latex/config/color.cfg
+File: color.cfg 2007/01/18 v1.5 color configuration of teTeX/TeXLive
+)
+Package color Info: Driver file: dvips.def on input line 130.
+
+(/usr/share/texmf-texlive/tex/latex/graphics/dvipsnam.def
+File: dvipsnam.def 1999/02/16 v3.0i Driver-dependant file (DPC,SPQR)
+))
+(/usr/share/texmf-texlive/tex/latex/amsfonts/amssymb.sty
+Package: amssymb 2009/06/22 v3.00
+
+(/usr/share/texmf-texlive/tex/latex/amsfonts/amsfonts.sty
+Package: amsfonts 2009/06/22 v3.00 Basic AMSFonts support
+\@emptytoks=\toks18
+\symAMSa=\mathgroup4
+\symAMSb=\mathgroup5
+LaTeX Font Info:    Overwriting math alphabet `\mathfrak' in version `bold'
+(Font)                  U/euf/m/n --> U/euf/b/n on input line 96.
+))
+(/usr/share/texmf-texlive/tex/latex/amsmath/amsmath.sty
+Package: amsmath 2000/07/18 v2.13 AMS math features
+\@mathmargin=\skip43
+
+For additional information on amsmath, use the `?' option.
+(/usr/share/texmf-texlive/tex/latex/amsmath/amstext.sty
+Package: amstext 2000/06/29 v2.01
+
+(/usr/share/texmf-texlive/tex/latex/amsmath/amsgen.sty
+File: amsgen.sty 1999/11/30 v2.0
+\@emptytoks=\toks19
+\ex@=\dimen109
+))
+(/usr/share/texmf-texlive/tex/latex/amsmath/amsbsy.sty
+Package: amsbsy 1999/11/29 v1.2d
+\pmbraise@=\dimen110
+)
+(/usr/share/texmf-texlive/tex/latex/amsmath/amsopn.sty
+Package: amsopn 1999/12/14 v2.01 operator names
+)
+\inf@bad=\count95
+LaTeX Info: Redefining \frac on input line 211.
+\uproot@=\count96
+\leftroot@=\count97
+LaTeX Info: Redefining \overline on input line 307.
+\classnum@=\count98
+\DOTSCASE@=\count99
+LaTeX Info: Redefining \ldots on input line 379.
+LaTeX Info: Redefining \dots on input line 382.
+LaTeX Info: Redefining \cdots on input line 467.
+\Mathstrutbox@=\box28
+\strutbox@=\box29
+\big@size=\dimen111
+LaTeX Font Info:    Redeclaring font encoding OML on input line 567.
+LaTeX Font Info:    Redeclaring font encoding OMS on input line 568.
+\macc@depth=\count100
+\c@MaxMatrixCols=\count101
+\dotsspace@=\muskip10
+\c@parentequation=\count102
+\dspbrk@lvl=\count103
+\tag@help=\toks20
+\row@=\count104
+\column@=\count105
+\maxfields@=\count106
+\andhelp@=\toks21
+\eqnshift@=\dimen112
+\alignsep@=\dimen113
+\tagshift@=\dimen114
+\tagwidth@=\dimen115
+\totwidth@=\dimen116
+\lineht@=\dimen117
+\@envbody=\toks22
+\multlinegap=\skip44
+\multlinetaggap=\skip45
+\mathdisplay@stack=\toks23
+LaTeX Info: Redefining \[ on input line 2666.
+LaTeX Info: Redefining \] on input line 2667.
+)
+(/usr/share/texmf-texlive/tex/latex/geometry/geometry.sty
+Package: geometry 2008/12/21 v4.2 Page Geometry
+
+(/usr/share/texmf-texlive/tex/generic/oberdiek/ifpdf.sty
+Package: ifpdf 2009/04/10 v2.0 Provides the ifpdf switch (HO)
+Package ifpdf Info: pdfTeX in pdf mode not detected.
+)
+(/usr/share/texmf-texlive/tex/generic/oberdiek/ifvtex.sty
+Package: ifvtex 2008/11/04 v1.4 Switches for detecting VTeX and its modes (HO)
+Package ifvtex Info: VTeX not detected.
+)
+\Gm@cnth=\count107
+\Gm@cntv=\count108
+\c@Gm@tempcnt=\count109
+\Gm@bindingoffset=\dimen118
+\Gm@wd@mp=\dimen119
+\Gm@odd@mp=\dimen120
+\Gm@even@mp=\dimen121
+\Gm@dimlist=\toks24
+)
+(/usr/share/texmf-texlive/tex/latex/mh/xfrac.sty
+(/usr/share/texmf-texlive/tex/latex/expl3/expl3.sty
+(/usr/share/texmf-texlive/tex/latex/expl3/l3names.sty
+Package: l3names 2009/08/08 v1452 L3 Experimental Naming Scheme for TeX Primiti
+ves
+)
+Package: expl3 2009/08/12 v1458 L3 Experimental code bundle wrapper
+
+(/usr/share/texmf-texlive/tex/latex/expl3/l3basics.sty
+Package: l3basics 2009/08/08 v1453 L3 Experimental basic definitions
+Defining \cs_set_nopar:cpn on line 475
+Defining \cs_set_nopar:cpx on line 476
+Defining \cs_gset_nopar:cpn on line 477
+Defining \cs_gset_nopar:cpx on line 478
+Defining \cs_new_nopar:cpn on line 479
+Defining \cs_new_nopar:cpx on line 480
+Defining \cs_gnew_nopar:cpn on line 481
+Defining \cs_gnew_nopar:cpx on line 482
+Defining \cs_set:cpn on line 483
+Defining \cs_set:cpx on line 484
+Defining \cs_gset:cpn on line 485
+Defining \cs_gset:cpx on line 486
+Defining \cs_new:cpn on line 487
+Defining \cs_new:cpx on line 488
+Defining \cs_gnew:cpn on line 489
+Defining \cs_gnew:cpx on line 490
+Defining \cs_set_protected_nopar:cpn on line 491
+Defining \cs_set_protected_nopar:cpx on line 492
+Defining \cs_gset_protected_nopar:cpn on line 493
+Defining \cs_gset_protected_nopar:cpx on line 494
+Defining \cs_new_protected_nopar:cpn on line 495
+Defining \cs_new_protected_nopar:cpx on line 496
+Defining \cs_gnew_protected_nopar:cpn on line 497
+Defining \cs_gnew_protected_nopar:cpx on line 498
+Defining \cs_set_protected:cpn on line 499
+Defining \cs_set_protected:cpx on line 500
+Defining \cs_gset_protected:cpn on line 501
+Defining \cs_gset_protected:cpx on line 502
+Defining \cs_new_protected:cpn on line 503
+Defining \cs_new_protected:cpx on line 504
+Defining \cs_gnew_protected:cpn on line 505
+Defining \cs_gnew_protected:cpx on line 506
+Defining \cs_new_eq:NN on line 523
+Defining \cs_new_eq:cN on line 527
+Defining \cs_new_eq:Nc on line 528
+Defining \cs_new_eq:cc on line 529
+Defining \cs_gset_eq:NN on line 530
+Defining \cs_gset_eq:Nc on line 531
+Defining \cs_gset_eq:cN on line 532
+Defining \cs_gset_eq:cc on line 533
+Defining \cs_gnew_eq:NN on line 534
+Defining \cs_gnew_eq:cN on line 538
+Defining \cs_gnew_eq:Nc on line 539
+Defining \cs_gnew_eq:cc on line 540
+Defining \cs_gundefine:N on line 541
+Defining \cs_gundefine:c on line 542
+Defining \c_xetex_is_engine_bool on line 548
+Defining \xetex_if_engine:TF on line 553
+Defining \xetex_if_engine:T on line 553
+Defining \xetex_if_engine:F on line 553
+Defining \c_luatex_is_engine_bool on line 557
+Defining \prg_do_nothing: on line 567
+Defining \cs_if_eq_p:cN on line 710
+Defining \cs_if_eq:cNTF on line 711
+Defining \cs_if_eq:cNT on line 712
+Defining \cs_if_eq:cNF on line 713
+Defining \cs_if_eq_p:Nc on line 714
+Defining \cs_if_eq:NcTF on line 715
+Defining \cs_if_eq:NcT on line 716
+Defining \cs_if_eq:NcF on line 717
+Defining \cs_if_eq_p:cc on line 718
+Defining \cs_if_eq:ccTF on line 719
+Defining \cs_if_eq:ccT on line 720
+Defining \cs_if_eq:ccF on line 721
+)
+(/usr/share/texmf-texlive/tex/latex/expl3/l3expan.sty
+Package: l3expan 2009/08/16 v1464 L3 Experimental Argument Expansion module
+Defining \l_exp_tl on line 56
+Defining \exp_arg_next:nnn on line 57
+Defining \exp_arg_next_nobrace:nnn on line 60
+Defining \::: on line 63
+Defining \::n on line 64
+Defining \::N on line 67
+Defining \::c on line 70
+Defining \::o on line 73
+Defining \::f on line 76
+Defining \exp_stop_f: on line 81
+Defining \exp_arg:x on line 82
+Defining \::x on line 93
+Defining \::V on line 94
+Defining \::v on line 102
+Defining \exp_args:No on line 129
+Defining \exp_args:NNo on line 130
+Defining \exp_args:NNNo on line 132
+Defining \exp_args:cc on line 135
+Defining \exp_args:NNc on line 136
+Defining \exp_args:Ncc on line 138
+Defining \exp_args:Nccc on line 140
+Defining \exp_args:Nco on line 143
+Defining \exp_not:o on line 192
+Defining \exp_not:d on line 193
+Defining \exp_not:f on line 196
+Defining \exp_not:v on line 199
+Defining \exp_not:V on line 202
+Defining \exp_not:c on line 205
+Defining \cs_generate_variant:Nn on line 206
+Defining \cs_generate_internal_variant:n on line 242
+Defining \cs_generate_internal_variant_aux:n on line 248
+Defining \exp_arg_last_unbraced:nn on line 255
+Defining \::f_unbraced on line 256
+Defining \::o_unbraced on line 260
+Defining \::V_unbraced on line 263
+Defining \::v_unbraced on line 267
+Defining \exp_last_unbraced:Nf on line 273
+Defining \exp_last_unbraced:NV on line 274
+Defining \exp_last_unbraced:Nv on line 275
+Defining \exp_last_unbraced:NcV on line 276
+Defining \exp_last_unbraced:NNo on line 279
+Defining \exp_last_unbraced:NNV on line 282
+Defining \exp_last_unbraced:NNNo on line 285
+)
+(/usr/share/texmf-texlive/tex/latex/expl3/l3tl.sty
+Package: l3tl 2009/09/03 v1505 L3 Experimental Token Lists
+Defining \tl_new:Nn on line 56
+Defining \tl_new:cn on line 60
+Defining \exp_args:Ncn on line 60
+Defining \tl_new:Nx on line 61
+Defining \tl_new:N on line 65
+Defining \tl_new:c on line 66
+Defining \tl_use:N on line 67
+Defining \tl_use:c on line 75
+Defining \tl_show:N on line 76
+Defining \tl_show:c on line 77
+Defining \tl_set:Nn on line 79
+Defining \tl_set:Nx on line 80
+Defining \tl_gset:Nn on line 81
+Defining \tl_gset:Nx on line 82
+Defining \tl_set:NV on line 83
+Defining \tl_set:No on line 83
+Defining \tl_set:Nv on line 83
+Defining \tl_set:Nf on line 83
+Defining \tl_set:cn on line 83
+Defining \tl_set:cV on line 83
+Defining \exp_args:NcV on line 83
+Defining \tl_set:co on line 83
+Defining \tl_set:cx on line 83
+Defining \tl_gset:NV on line 84
+Defining \tl_gset:No on line 84
+Defining \tl_gset:Nv on line 84
+Defining \tl_gset:cn on line 84
+Defining \tl_gset:cx on line 84
+Defining \tl_set_eq:NN on line 85
+Defining \tl_gset_eq:NN on line 86
+Defining \tl_set_eq:Nc on line 87
+Defining \tl_set_eq:cN on line 87
+Defining \tl_set_eq:cc on line 87
+Defining \tl_gset_eq:Nc on line 88
+Defining \tl_gset_eq:cN on line 88
+Defining \tl_gset_eq:cc on line 88
+Defining \tl_clear:N on line 89
+Defining \tl_clear:c on line 90
+Defining \tl_gclear:N on line 91
+Defining \tl_gclear:c on line 92
+Defining \tl_clear_new:N on line 93
+Defining \tl_clear_new:c on line 94
+Defining \tl_gclear_new:N on line 95
+Defining \tl_gclear_new:c on line 96
+Defining \tl_put_left:Nn on line 97
+Defining \tl_put_left:NV on line 101
+Defining \tl_put_left:No on line 104
+Defining \tl_put_left:Nx on line 108
+Defining \tl_gput_left:Nn on line 111
+Defining \tl_gput_left:NV on line 115
+Defining \tl_gput_left:No on line 118
+Defining \tl_gput_left:Nx on line 122
+Defining \tl_put_left:cn on line 125
+Defining \tl_put_left:co on line 125
+Defining \tl_put_left:cV on line 125
+Defining \tl_gput_left:cn on line 126
+Defining \tl_gput_left:co on line 126
+Defining \tl_gput_left:cV on line 127
+Defining \tl_put_right:Nn on line 128
+Defining \tl_gput_right:Nn on line 132
+Defining \tl_put_right:NV on line 136
+Defining \tl_put_right:No on line 139
+Defining \tl_gput_right:NV on line 143
+Defining \tl_gput_right:No on line 146
+Defining \tl_put_right:cn on line 156
+Defining \tl_put_right:co on line 156
+Defining \tl_put_right:cV on line 157
+Defining \tl_gput_right:cn on line 158
+Defining \tl_gput_right:co on line 158
+Defining \tl_gput_right:cV on line 158
+Defining \tl_gset:Nc on line 159
+Defining \tl_set:Nc on line 162
+Defining \c_job_name_tl on line 163
+Defining \c_empty_tl on line 164
+Defining \g_tmpa_tl on line 165
+Defining \g_tmpb_tl on line 166
+Defining \l_testa_tl on line 167
+Defining \l_testb_tl on line 168
+Defining \g_testa_tl on line 169
+Defining \g_testb_tl on line 170
+Defining \l_tmpa_tl on line 171
+Defining \l_tmpb_tl on line 172
+Defining \tl_if_empty_p:c on line 177
+Defining \tl_if_empty:cTF on line 178
+Defining \tl_if_empty:cT on line 179
+Defining \tl_if_empty:cF on line 180
+Defining \tl_if_eq_p:NN on line 183
+Defining \tl_if_eq:NNTF on line 183
+Defining \tl_if_eq:NNT on line 183
+Defining \tl_if_eq:NNF on line 183
+Defining \tl_if_eq_p:Nc on line 184
+Defining \tl_if_eq_p:cN on line 184
+Defining \tl_if_eq_p:cc on line 184
+Defining \tl_if_eq:NcTF on line 185
+Defining \tl_if_eq:cNTF on line 185
+Defining \tl_if_eq:ccTF on line 185
+Defining \tl_if_eq:NcT on line 186
+Defining \tl_if_eq:cNT on line 186
+Defining \tl_if_eq:ccT on line 186
+Defining \tl_if_eq:NcF on line 187
+Defining \tl_if_eq:cNF on line 187
+Defining \tl_if_eq:ccF on line 187
+Defining \tl_if_empty_p:n on line 191
+Defining \tl_if_empty:nTF on line 191
+Defining \tl_if_empty:nT on line 191
+Defining \tl_if_empty:nF on line 191
+Defining \tl_if_empty_p:V on line 192
+Defining \tl_if_empty:VTF on line 193
+Defining \tl_if_empty:VT on line 194
+Defining \tl_if_empty:VF on line 195
+Defining \tl_if_empty_p:o on line 196
+Defining \tl_if_empty:oTF on line 197
+Defining \tl_if_empty:oT on line 198
+Defining \tl_if_empty:oF on line 199
+Defining \tl_if_blank_p:n on line 202
+Defining \tl_if_blank:nTF on line 202
+Defining \tl_if_blank:nT on line 202
+Defining \tl_if_blank:nF on line 202
+Defining \tl_if_blank_p_aux:w on line 203
+Defining \tl_if_blank_p:V on line 206
+Defining \tl_if_blank:VTF on line 207
+Defining \tl_if_blank:VT on line 208
+Defining \tl_if_blank:VF on line 209
+Defining \tl_if_blank_p:o on line 210
+Defining \tl_if_blank:oTF on line 211
+Defining \tl_if_blank:oT on line 212
+Defining \tl_if_blank:oF on line 213
+Defining \tl_compare:xx on line 214
+Defining \tl_compare:nn on line 215
+Defining \tl_compare:nx on line 218
+Defining \tl_compare:xn on line 221
+Defining \tl_compare:nV on line 224
+Defining \tl_compare:no on line 227
+Defining \tl_compare:Vn on line 230
+Defining \tl_compare:on on line 233
+Defining \tl_compare:VV on line 236
+Defining \tl_compare:oo on line 239
+Defining \tl_compare:xV on line 242
+Defining \tl_compare:xo on line 245
+Defining \tl_compare:Vx on line 248
+Defining \tl_compare:ox on line 251
+Defining \tl_if_eq_p:xx on line 265
+Defining \tl_if_eq:xxTF on line 265
+Defining \tl_if_eq:xxT on line 265
+Defining \tl_if_eq:xxF on line 265
+Defining \tl_if_eq_p:nx on line 265
+Defining \tl_if_eq:nxTF on line 265
+Defining \tl_if_eq:nxT on line 265
+Defining \tl_if_eq:nxF on line 265
+Defining \tl_if_eq_p:ox on line 265
+Defining \tl_if_eq:oxTF on line 265
+Defining \tl_if_eq:oxT on line 265
+Defining \tl_if_eq:oxF on line 265
+Defining \tl_if_eq_p:Vx on line 265
+Defining \tl_if_eq:VxTF on line 265
+Defining \tl_if_eq:VxT on line 265
+Defining \tl_if_eq:VxF on line 265
+Defining \tl_if_eq_p:xn on line 266
+Defining \tl_if_eq:xnTF on line 266
+Defining \tl_if_eq:xnT on line 266
+Defining \tl_if_eq:xnF on line 266
+Defining \tl_if_eq_p:nn on line 266
+Defining \tl_if_eq:nnTF on line 266
+Defining \tl_if_eq:nnT on line 266
+Defining \tl_if_eq:nnF on line 266
+Defining \tl_if_eq_p:on on line 266
+Defining \tl_if_eq:onTF on line 266
+Defining \tl_if_eq:onT on line 266
+Defining \tl_if_eq:onF on line 266
+Defining \tl_if_eq_p:Vn on line 266
+Defining \tl_if_eq:VnTF on line 266
+Defining \tl_if_eq:VnT on line 266
+Defining \tl_if_eq:VnF on line 266
+Defining \tl_if_eq_p:xo on line 267
+Defining \tl_if_eq:xoTF on line 267
+Defining \tl_if_eq:xoT on line 267
+Defining \tl_if_eq:xoF on line 267
+Defining \tl_if_eq_p:no on line 267
+Defining \tl_if_eq:noTF on line 267
+Defining \tl_if_eq:noT on line 267
+Defining \tl_if_eq:noF on line 267
+Defining \tl_if_eq_p:oo on line 267
+Defining \tl_if_eq:ooTF on line 267
+Defining \tl_if_eq:ooT on line 267
+Defining \tl_if_eq:ooF on line 267
+Defining \tl_if_eq_p:xV on line 268
+Defining \tl_if_eq:xVTF on line 268
+Defining \tl_if_eq:xVT on line 268
+Defining \tl_if_eq:xVF on line 268
+Defining \tl_if_eq_p:nV on line 268
+Defining \tl_if_eq:nVTF on line 268
+Defining \tl_if_eq:nVT on line 268
+Defining \tl_if_eq:nVF on line 268
+Defining \tl_if_eq_p:VV on line 268
+Defining \tl_if_eq:VVTF on line 268
+Defining \tl_if_eq:VVT on line 268
+Defining \tl_if_eq:VVF on line 268
+Defining \tl_to_lowercase:n on line 369
+Defining \tl_to_uppercase:n on line 370
+Defining \tl_to_str:n on line 371
+Defining \tl_to_str:N on line 372
+Defining \tl_to_str_aux:w on line 374
+Defining \tl_to_str:c on line 375
+Defining \tl_map_function:nN on line 376
+Defining \tl_map_function:NN on line 379
+Defining \tl_map_function_aux:Nn on line 383
+Defining \tl_map_function:cN on line 387
+Defining \exp_args:NcN on line 387
+Defining \tl_map_inline:nn on line 388
+Defining \tl_map_inline:Nn on line 397
+Defining \tl_map_inline:cn on line 406
+Defining \g_tl_inline_level_num on line 407
+Defining \tl_map_variable:nNn on line 408
+Defining \tl_map_variable:NNn on line 411
+Defining \tl_map_variable:cNn on line 412
+Defining \tl_map_variable_aux:Nnn on line 413
+Defining \tl_map_break: on line 418
+Defining \tl_reverse:n on line 419
+Defining \tl_reverse_aux:nN on line 422
+Defining \tl_reverse:V on line 426
+Defining \tl_reverse:o on line 426
+Defining \tl_reverse:N on line 427
+Defining \tl_elt_count:n on line 430
+Defining \tl_elt_count:V on line 435
+Defining \tl_elt_count:o on line 435
+Defining \tl_elt_count:N on line 436
+Defining \tl_set_rescan:Nnn on line 441
+Defining \tl_gset_rescan:Nnn on line 442
+Defining \c_two_ats_with_two_catcodes_tl on line 451
+Defining \tl_set_rescan_aux:NNnn on line 452
+Defining \tl_set_rescan:Nnx on line 468
+Defining \tl_gset_rescan:Nnx on line 478
+Defining \tl_rescan:nn on line 486
+Defining \tl_if_in:NnTF on line 500
+Defining \tl_if_in:NnT on line 500
+Defining \tl_if_in:NnF on line 500
+Defining \tl_if_in:cnTF on line 501
+Defining \tl_if_in:cnT on line 502
+Defining \tl_if_in:cnF on line 503
+Defining \tl_if_in:nnTF on line 509
+Defining \tl_if_in:nnT on line 509
+Defining \tl_if_in:nnF on line 509
+Defining \tl_if_in:VnTF on line 510
+Defining \tl_if_in:VnT on line 511
+Defining \tl_if_in:VnF on line 512
+Defining \tl_if_in:onTF on line 513
+Defining \tl_if_in:onT on line 514
+Defining \tl_if_in:onF on line 515
+Defining \tl_replace_in_aux:NNnn on line 517
+Defining \tl_replace_in:Nnn on line 532
+Defining \tl_replace_in:cnn on line 533
+Defining \exp_args:Ncnn on line 533
+Defining \tl_greplace_in:Nnn on line 534
+Defining \tl_greplace_in:cnn on line 535
+Defining \tl_replace_all_in:Nnn on line 552
+Defining \tl_replace_all_in:cnn on line 554
+Defining \tl_greplace_all_in:Nnn on line 555
+Defining \tl_greplace_all_in:cnn on line 557
+Defining \tl_remove_in:Nn on line 558
+Defining \tl_gremove_in:Nn on line 559
+Defining \tl_remove_in:cn on line 560
+Defining \tl_gremove_in:cn on line 561
+Defining \tl_remove_all_in:Nn on line 562
+Defining \tl_gremove_all_in:Nn on line 565
+Defining \tl_remove_all_in:cn on line 568
+Defining \tl_gremove_all_in:cn on line 569
+Defining \tl_head:n on line 570
+Defining \tl_head_i:n on line 571
+Defining \tl_tail:n on line 572
+Defining \tl_tail:f on line 573
+Defining \tl_head_iii:n on line 574
+Defining \tl_head_iii:f on line 575
+Defining \tl_head:w on line 576
+Defining \tl_head_i:w on line 577
+Defining \tl_tail:w on line 578
+Defining \tl_head_iii:w on line 579
+Defining \tl_head:V on line 580
+Defining \tl_tail:V on line 581
+Defining \tl_if_head_eq_meaning_p:nN on line 585
+Defining \tl_if_head_eq_meaning:nNTF on line 585
+Defining \tl_if_head_eq_meaning:nNT on line 585
+Defining \tl_if_head_eq_meaning:nNF on line 585
+Defining \tl_if_head_eq_charcode_p:nN on line 590
+Defining \tl_if_head_eq_charcode:nNTF on line 590
+Defining \tl_if_head_eq_charcode:nNT on line 590
+Defining \tl_if_head_eq_charcode:nNF on line 590
+Defining \tl_if_head_eq_charcode_p:fN on line 600
+Defining \tl_if_head_eq_charcode:fNTF on line 601
+Defining \tl_if_head_eq_charcode:fNT on line 602
+Defining \tl_if_head_eq_charcode:fNF on line 603
+Defining \tl_if_head_eq_catcode_p:nN on line 608
+Defining \tl_if_head_eq_catcode:nNTF on line 608
+Defining \tl_if_head_eq_catcode:nNT on line 608
+Defining \tl_if_head_eq_catcode:nNF on line 608
+)
+(/usr/share/texmf-texlive/tex/latex/expl3/l3num.sty
+Package: l3num 2009/08/08 v1451 L3 Experimental token numbers
+Defining \if_num:w on line 56
+Defining \if_case:w on line 57
+Defining \num_incr:c on line 62
+Defining \num_decr:c on line 63
+Defining \num_gincr:c on line 64
+Defining \num_gdecr:c on line 65
+Defining \num_zero:N on line 66
+Defining \num_gzero:N on line 67
+Defining \num_zero:c on line 68
+Defining \num_gzero:c on line 69
+Defining \num_new:N on line 70
+Defining \num_new:c on line 71
+Defining \num_set:Nn on line 72
+Defining \num_set:cn on line 75
+Defining \num_gset:Nn on line 76
+Defining \num_gset:cn on line 77
+Defining \num_set_eq:NN on line 78
+Defining \num_set_eq:cN on line 79
+Defining \num_set_eq:Nc on line 79
+Defining \num_set_eq:cc on line 79
+Defining \num_gset_eq:NN on line 80
+Defining \num_gset_eq:cN on line 81
+Defining \num_gset_eq:Nc on line 81
+Defining \num_gset_eq:cc on line 81
+Defining \num_add:Nn on line 82
+Defining \num_add:cn on line 83
+Defining \num_gadd:Nn on line 84
+Defining \num_gadd:cn on line 85
+Defining \num_use:N on line 86
+Defining \num_use:c on line 87
+Defining \num_show:N on line 88
+Defining \num_show:c on line 89
+Defining \num_elt_count:n on line 90
+Defining \num_elt_count_prop:Nn on line 91
+Defining \l_tmpa_num on line 92
+Defining \l_tmpb_num on line 93
+Defining \l_tmpc_num on line 94
+Defining \g_tmpa_num on line 95
+Defining \g_tmpb_num on line 96
+)
+(/usr/share/texmf-texlive/tex/latex/expl3/l3intexpr.sty
+Package: l3intexpr 2009/03/20 v1086 L3 Integer Expressions
+)
+(/usr/share/texmf-texlive/tex/latex/expl3/l3quark.sty
+Package: l3quark 2009/05/31 v1365 L3 Experimental Quark Commands
+Defining \quark_new:N on line 56
+Defining \q_stop on line 57
+Defining \q_no_value on line 58
+Defining \q_nil on line 59
+Defining \q_error on line 60
+Defining \q_mark on line 61
+Defining \q_recursion_tail on line 62
+Defining \q_recursion_stop on line 63
+Defining \quark_if_recursion_tail_stop:n on line 64
+Defining \quark_if_recursion_tail_stop:N on line 70
+Defining \quark_if_recursion_tail_stop:o on line 75
+Defining \quark_if_recursion_tail_stop_do:nn on line 76
+Defining \quark_if_recursion_tail_stop_do:Nn on line 85
+Defining \quark_if_recursion_tail_stop_do:on on line 93
+Defining \exp_args:Non on line 93
+Defining \quark_if_recursion_tail_aux:w on line 94
+Defining \quark_if_no_value_p:N on line 98
+Defining \quark_if_no_value:NTF on line 98
+Defining \quark_if_no_value:NT on line 98
+Defining \quark_if_no_value:NF on line 98
+Defining \quark_if_no_value_p:n on line 118
+Defining \quark_if_no_value:nTF on line 118
+Defining \quark_if_no_value:nT on line 118
+Defining \quark_if_no_value:nF on line 118
+Defining \quark_if_nil_p:N on line 121
+Defining \quark_if_nil:NTF on line 121
+Defining \quark_if_nil:NT on line 121
+Defining \quark_if_nil:NF on line 121
+Defining \quark_if_nil_p:n on line 140
+Defining \quark_if_nil:nTF on line 140
+Defining \quark_if_nil:nT on line 140
+Defining \quark_if_nil:nF on line 140
+Defining \quark_if_nil_p:V on line 141
+Defining \quark_if_nil:VTF on line 142
+Defining \quark_if_nil:VT on line 143
+Defining \quark_if_nil:VF on line 144
+Defining \quark_if_nil_p:o on line 145
+Defining \quark_if_nil:oTF on line 146
+Defining \quark_if_nil:oT on line 147
+Defining \quark_if_nil:oF on line 148
+)
+(/usr/share/texmf-texlive/tex/latex/expl3/l3seq.sty
+Package: l3seq 2009/06/17 v1415 L3 Experimental sequences and stacks
+Defining \seq_elt:w on line 56
+Defining \seq_elt_end: on line 57
+Defining \seq_new:N on line 58
+Defining \seq_new:c on line 59
+Defining \seq_clear:N on line 60
+Defining \seq_clear:c on line 61
+Defining \seq_gclear:N on line 62
+Defining \seq_gclear:c on line 63
+Defining \seq_clear_new:N on line 64
+Defining \seq_clear_new:c on line 65
+Defining \seq_gclear_new:N on line 66
+Defining \seq_gclear_new:c on line 67
+Defining \seq_set_eq:NN on line 68
+Defining \seq_set_eq:cN on line 69
+Defining \seq_set_eq:Nc on line 70
+Defining \seq_set_eq:cc on line 71
+Defining \seq_gset_eq:NN on line 72
+Defining \seq_gset_eq:cN on line 73
+Defining \seq_gset_eq:Nc on line 74
+Defining \seq_gset_eq:cc on line 75
+Defining \seq_gconcat:NNN on line 76
+Defining \seq_gconcat:ccc on line 79
+Defining \seq_if_empty_p:N on line 80
+Defining \seq_if_empty:NTF on line 80
+Defining \seq_if_empty:NT on line 80
+Defining \seq_if_empty:NF on line 80
+Defining \seq_if_empty_p:c on line 81
+Defining \seq_if_empty:cTF on line 81
+Defining \seq_if_empty:cT on line 81
+Defining \seq_if_empty:cF on line 81
+Defining \seq_if_empty_err:N on line 82
+Defining \seq_if_in:NnTF on line 94
+Defining \seq_if_in:NnT on line 94
+Defining \seq_if_in:NnF on line 94
+Defining \seq_if_in:cVTF on line 95
+Defining \seq_if_in:coTF on line 95
+Defining \seq_if_in:cnTF on line 95
+Defining \seq_if_in:cxTF on line 95
+Defining \seq_if_in:cVT on line 96
+Defining \seq_if_in:coT on line 96
+Defining \seq_if_in:cnT on line 96
+Defining \seq_if_in:cxT on line 96
+Defining \seq_if_in:cVF on line 97
+Defining \seq_if_in:coF on line 97
+Defining \seq_if_in:cnF on line 97
+Defining \seq_if_in:cxF on line 97
+Defining \seq_get:NN on line 98
+Defining \seq_get_aux:w on line 102
+Defining \seq_get:cN on line 105
+Defining \seq_pop_aux:nnNN on line 106
+Defining \seq_pop_aux:w on line 110
+Defining \seq_show:N on line 115
+Defining \seq_show:c on line 116
+Defining \seq_display:N on line 117
+Defining \seq_display:c on line 131
+Defining \seq_put_aux:Nnn on line 132
+Defining \seq_put_aux:w on line 135
+Defining \seq_put_left:Nn on line 136
+Defining \seq_put_left:NV on line 139
+Defining \seq_put_left:No on line 139
+Defining \seq_put_left:Nx on line 139
+Defining \seq_put_left:cn on line 139
+Defining \seq_put_left:cV on line 139
+Defining \seq_put_left:co on line 139
+Defining \seq_put_right:Nn on line 140
+Defining \seq_put_right:NV on line 142
+Defining \seq_put_right:No on line 142
+Defining \seq_put_right:Nx on line 142
+Defining \seq_put_right:cn on line 142
+Defining \seq_put_right:cV on line 142
+Defining \seq_put_right:co on line 142
+Defining \seq_gput_left:Nn on line 143
+Defining \seq_gput_right:Nn on line 147
+Defining \seq_gput_left:NV on line 151
+Defining \seq_gput_left:No on line 151
+Defining \seq_gput_left:Nx on line 151
+Defining \seq_gput_left:cn on line 151
+Defining \seq_gput_left:cV on line 151
+Defining \seq_gput_left:co on line 151
+Defining \seq_gput_right:NV on line 152
+Defining \seq_gput_right:No on line 152
+Defining \seq_gput_right:Nx on line 152
+Defining \seq_gput_right:cn on line 152
+Defining \seq_gput_right:cV on line 152
+Defining \seq_gput_right:co on line 152
+Defining \seq_gput_right:Nc on line 153
+Defining \seq_map_variable_aux:Nnw on line 154
+Defining \seq_map_variable:NNn on line 160
+Defining \seq_map_variable:cNn on line 164
+Defining \seq_map_break: on line 166
+Defining \seq_map_break:n on line 167
+Defining \seq_map_function:NN on line 168
+Defining \seq_map_function:cN on line 173
+Defining \seq_map_inline:Nn on line 174
+Defining \seq_map_inline:cn on line 179
+Defining \l_seq_remove_seq on line 180
+Defining \seq_remove_duplicates_aux:NN on line 185
+Defining \seq_remove_duplicates_aux:n on line 190
+Defining \seq_remove_duplicates:N on line 191
+Defining \seq_gremove_duplicates:N on line 194
+Defining \seq_push:Nn on line 197
+Defining \seq_push:NV on line 198
+Defining \seq_push:No on line 199
+Defining \seq_push:cn on line 200
+Defining \seq_pop:NN on line 201
+Defining \seq_pop:cN on line 202
+Defining \seq_gpush:Nn on line 203
+Defining \seq_gpop:NN on line 204
+Defining \seq_gpush:NV on line 205
+Defining \seq_gpush:No on line 205
+Defining \seq_gpush:cn on line 205
+Defining \seq_gpush:Nv on line 205
+Defining \seq_gpop:cN on line 206
+Defining \seq_top:NN on line 207
+Defining \seq_top:cN on line 208
+)
+(/usr/share/texmf-texlive/tex/latex/expl3/l3toks.sty
+Package: l3toks 2009/06/14 v1412 L3 Experimental Token Registers
+Defining \toks_new:c on line 57
+Defining \toks_use:N on line 58
+Defining \toks_use:c on line 59
+Defining \toks_set:Nn on line 60
+Defining \toks_set:NV on line 61
+Defining \toks_set:Nv on line 64
+Defining \toks_set:No on line 67
+Defining \toks_set:Nf on line 68
+Defining \toks_set:Nx on line 71
+Defining \toks_set:cn on line 71
+Defining \toks_set:cV on line 71
+Defining \toks_set:cv on line 71
+Defining \exp_args:Ncv on line 71
+Defining \toks_set:co on line 71
+Defining \toks_set:cx on line 71
+Defining \toks_set:cf on line 71
+Defining \toks_gset:Nn on line 72
+Defining \toks_gset:NV on line 73
+Defining \toks_gset:No on line 73
+Defining \toks_gset:Nx on line 73
+Defining \toks_gset:cn on line 73
+Defining \toks_gset:cV on line 73
+Defining \toks_gset:co on line 73
+Defining \toks_gset:cx on line 73
+Defining \toks_set_eq:NN on line 74
+Defining \toks_gset_eq:NN on line 75
+Defining \toks_set_eq:Nc on line 76
+Defining \toks_set_eq:cN on line 76
+Defining \toks_set_eq:cc on line 76
+Defining \toks_gset_eq:Nc on line 77
+Defining \toks_gset_eq:cN on line 77
+Defining \toks_gset_eq:cc on line 77
+Defining \toks_clear:N on line 78
+Defining \toks_gclear:N on line 81
+Defining \toks_clear:c on line 85
+Defining \toks_gclear:c on line 86
+Defining \toks_use_clear:N on line 87
+Defining \toks_use_gclear:N on line 90
+Defining \toks_use_clear:c on line 94
+Defining \toks_use_gclear:c on line 95
+Defining \toks_show:N on line 96
+Defining \toks_show:c on line 97
+Defining \toks_put_left:Nn on line 98
+Defining \toks_put_left:NV on line 102
+Defining \toks_put_left:No on line 102
+Defining \toks_put_left:Nx on line 102
+Defining \toks_put_left:cn on line 102
+Defining \toks_put_left:co on line 102
+Defining \toks_put_left:cV on line 102
+Defining \toks_gput_left:Nn on line 103
+Defining \toks_gput_left:NV on line 107
+Defining \toks_gput_left:No on line 107
+Defining \toks_gput_left:Nx on line 107
+Defining \toks_gput_left:cn on line 107
+Defining \toks_gput_left:cV on line 107
+Defining \toks_gput_left:co on line 107
+Defining \toks_put_left_aux:w on line 108
+Defining \toks_put_right:Nn on line 111
+Defining \toks_gput_right:Nn on line 114
+Defining \toks_put_right:NV on line 118
+Defining \toks_put_right:No on line 124
+Defining \toks_put_right:Nx on line 129
+Defining \toks_put_right:cn on line 129
+Defining \toks_put_right:cV on line 129
+Defining \toks_put_right:co on line 129
+Defining \toks_gput_right:NV on line 130
+Defining \toks_gput_right:No on line 130
+Defining \toks_gput_right:Nx on line 130
+Defining \toks_gput_right:cn on line 130
+Defining \toks_gput_right:cV on line 130
+Defining \toks_gput_right:co on line 130
+Defining \toks_put_right:Nf on line 131
+Defining \toks_if_empty_p:N on line 138
+Defining \toks_if_empty:NTF on line 138
+Defining \toks_if_empty:NT on line 138
+Defining \toks_if_empty:NF on line 138
+Defining \toks_if_empty_p:c on line 139
+Defining \toks_if_empty:cTF on line 140
+Defining \toks_if_empty:cT on line 141
+Defining \toks_if_empty:cF on line 142
+Defining \toks_if_eq_p:NN on line 146
+Defining \toks_if_eq:NNTF on line 146
+Defining \toks_if_eq:NNT on line 146
+Defining \toks_if_eq:NNF on line 146
+Defining \toks_if_eq_p:Nc on line 147
+Defining \toks_if_eq_p:cN on line 147
+Defining \toks_if_eq_p:cc on line 147
+Defining \toks_if_eq:NcTF on line 148
+Defining \toks_if_eq:cNTF on line 148
+Defining \toks_if_eq:ccTF on line 148
+Defining \toks_if_eq:NcT on line 149
+Defining \toks_if_eq:cNT on line 149
+Defining \toks_if_eq:ccT on line 149
+Defining \toks_if_eq:NcF on line 150
+Defining \toks_if_eq:cNF on line 150
+Defining \toks_if_eq:ccF on line 150
+\l_tmpb_toks=\toks25
+\l_tmpc_toks=\toks26
+\g_tmpa_toks=\toks27
+\g_tmpb_toks=\toks28
+\g_tmpc_toks=\toks29
+\c_empty_toks=\toks30
+\l_tl_replace_toks=\toks31
+)
+(/usr/share/texmf-texlive/tex/latex/expl3/l3int.sty
+Package: l3int 2009/05/28 v1362 L3 Experimental Integer module
+Defining \int_to_roman:w on line 56
+Defining \int_to_number:w on line 57
+Defining \int_advance:w on line 58
+Defining \int_new:N on line 59
+Defining \int_new:c on line 63
+Defining \int_set:Nn on line 64
+Defining \int_gset:Nn on line 66
+Defining \int_set:cn on line 69
+Defining \int_gset:cn on line 70
+Defining \int_incr:N on line 71
+Defining \int_decr:N on line 73
+Defining \int_gincr:N on line 75
+Defining \int_gdecr:N on line 78
+Defining \int_incr:c on line 85
+Defining \int_decr:c on line 86
+Defining \int_gincr:c on line 87
+Defining \int_gdecr:c on line 88
+Defining \int_zero:N on line 89
+Defining \int_zero:c on line 90
+Defining \int_gzero:N on line 91
+Defining \int_gzero:c on line 92
+Defining \int_add:Nn on line 93
+Defining \int_sub:Nn on line 96
+Defining \int_gadd:Nn on line 99
+Defining \int_gsub:Nn on line 102
+Defining \int_add:cn on line 105
+Defining \int_gadd:cn on line 106
+Defining \int_sub:cn on line 107
+Defining \int_gsub:cn on line 108
+Defining \int_use:N on line 109
+Defining \int_use:c on line 110
+Defining \int_show:N on line 111
+Defining \int_show:c on line 112
+Defining \int_to_arabic:n on line 113
+Defining \int_roman_lcuc_mapping:Nnn on line 114
+Defining \int_to_roman:n on line 126
+Defining \int_to_Roman:n on line 130
+Defining \int_to_roman_lcuc:NN on line 134
+Defining \int_alph_default_conversion_rule:n on line 148
+Defining \int_Alph_default_conversion_rule:n on line 157
+Defining \int_to_alph:n on line 166
+Defining \int_to_Alph:n on line 170
+Defining \int_to_symbol:n on line 174
+Defining \int_symbol_math_conversion_rule:n on line 185
+Defining \int_symbol_text_conversion_rule:n on line 198
+Defining \l_tmpa_int on line 211
+\l_tmpa_int=\count110
+Defining \l_tmpb_int on line 212
+\l_tmpb_int=\count111
+Defining \l_tmpc_int on line 213
+\l_tmpc_int=\count112
+Defining \g_tmpa_int on line 214
+\g_tmpa_int=\count113
+Defining \g_tmpb_int on line 215
+\g_tmpb_int=\count114
+Defining \int_const:Nn on line 221
+Defining \c_one on line 234
+Defining \c_two on line 235
+Defining \c_three on line 236
+Defining \c_four on line 237
+Defining \c_five on line 238
+Defining \c_six on line 239
+Defining \c_seven on line 240
+Defining \c_eight on line 241
+Defining \c_nine on line 242
+Defining \c_ten on line 243
+Defining \c_eleven on line 244
+Defining \c_twelve on line 245
+Defining \c_thirteen on line 246
+Defining \c_fourteen on line 247
+Defining \c_fifteen on line 248
+Defining \c_thirty_two on line 250
+Defining \c_hundred_one on line 251
+Defining \c_twohundred_fifty_five on line 252
+Defining \c_twohundred_fifty_six on line 253
+Defining \c_thousand on line 254
+Defining \c_ten_thousand on line 255
+Defining \c_ten_thousand_one on line 256
+Defining \c_ten_thousand_two on line 257
+Defining \c_ten_thousand_three on line 258
+Defining \c_ten_thousand_four on line 259
+Defining \c_twenty_thousand on line 260
+Defining \c_max_int on line 261
+\c_max_int=\count115
+Defining \int_get_sign_and_digits:n on line 262
+Defining \int_get_sign:n on line 265
+Defining \int_get_digits:n on line 268
+Defining \int_get_sign_and_digits_aux:nNNN on line 271
+Defining \int_get_sign_and_digits_aux:oNNN on line 287
+Defining \exp_args:NoNNN on line 287
+Defining \int_convert_from_base_ten_aux:nnn on line 300
+Defining \int_convert_from_base_ten_aux:nfn on line 313
+Defining \exp_args:Nnfn on line 313
+Defining \int_convert_from_base_ten_aux:ffn on line 314
+Defining \exp_args:Nffn on line 314
+Defining \int_convert_to_base_ten_aux:nn on line 333
+Defining \int_convert_to_base_ten_auxi:nnN on line 336
+)
+(/usr/share/texmf-texlive/tex/latex/expl3/l3prg.sty
+Package: l3prg 2009/09/20 v1545 L3 Experimental control structures
+Defining \group_align_safe_begin: on line 72
+Defining \group_align_safe_end: on line 74
+Defining \scan_align_safe_stop: on line 75
+Defining \prg_replicate:nn on line 85
+Defining \prg_replicate_aux:N on line 91
+Defining \prg_replicate_first_aux:N on line 94
+Defining \prg_replicate_ on line 97
+Defining \prg_replicate_0:n on line 98
+Defining \prg_replicate_1:n on line 99
+Defining \prg_replicate_2:n on line 100
+Defining \prg_replicate_3:n on line 101
+Defining \prg_replicate_4:n on line 103
+Defining \prg_replicate_5:n on line 105
+Defining \prg_replicate_6:n on line 107
+Defining \prg_replicate_7:n on line 109
+Defining \prg_replicate_8:n on line 111
+Defining \prg_replicate_9:n on line 113
+Defining \prg_replicate_first_0:n on line 115
+Defining \prg_replicate_first_1:n on line 116
+Defining \prg_replicate_first_2:n on line 117
+Defining \prg_replicate_first_3:n on line 118
+Defining \prg_replicate_first_4:n on line 119
+Defining \prg_replicate_first_5:n on line 120
+Defining \prg_replicate_first_6:n on line 121
+Defining \prg_replicate_first_7:n on line 122
+Defining \prg_replicate_first_8:n on line 123
+Defining \prg_replicate_first_9:n on line 124
+Defining \prg_stepwise_function:nnnN on line 125
+Defining \prg_stepwise_function_incr:nnnN on line 131
+Defining \prg_stepwise_function_decr:nnnN on line 140
+Defining \g_prg_inline_level_int on line 149
+\g_prg_inline_level_int=\count116
+Defining \prg_stepwise_inline:nnnn on line 150
+Defining \prg_stepwise_inline_incr:Nnnn on line 160
+Defining \prg_stepwise_inline_decr:Nnnn on line 168
+Defining \prg_stepwise_variable:nnnNn on line 176
+Defining \prg_stepwise_variable_incr:nnnNn on line 182
+Defining \prg_stepwise_variable_decr:nnnNn on line 190
+Defining \bool_new:N on line 198
+Defining \bool_new:c on line 199
+Defining \bool_set_true:N on line 200
+Defining \bool_set_true:c on line 201
+Defining \bool_set_false:N on line 202
+Defining \bool_set_false:c on line 203
+Defining \bool_gset_true:N on line 204
+Defining \bool_gset_true:c on line 205
+Defining \bool_gset_false:N on line 206
+Defining \bool_gset_false:c on line 207
+Defining \bool_set_eq:NN on line 208
+Defining \bool_set_eq:Nc on line 209
+Defining \bool_set_eq:cN on line 210
+Defining \bool_set_eq:cc on line 211
+Defining \bool_gset_eq:NN on line 212
+Defining \bool_gset_eq:Nc on line 213
+Defining \bool_gset_eq:cN on line 214
+Defining \bool_gset_eq:cc on line 215
+Defining \l_tmpa_bool on line 216
+Defining \g_tmpa_bool on line 217
+Defining \bool_if_p:c on line 221
+Defining \bool_if:cTF on line 222
+Defining \bool_if:cT on line 223
+Defining \bool_if:cF on line 224
+Defining \bool_while_do:Nn on line 225
+Defining \bool_while_do:cn on line 228
+Defining \bool_until_do:Nn on line 229
+Defining \bool_until_do:cn on line 232
+Defining \bool_do_while:Nn on line 233
+Defining \bool_do_while:cn on line 236
+Defining \bool_do_until:Nn on line 237
+Defining \bool_do_until:cn on line 240
+Defining \bool_cleanup:N on line 259
+Defining \bool_choose:NN on line 263
+Defining \bool_&_1:w on line 264
+Defining \bool_|_0:w on line 265
+Defining \bool_)_0:w on line 266
+Defining \bool_)_1:w on line 267
+Defining \bool_S_0:w on line 268
+Defining \bool_S_1:w on line 269
+Defining \bool_set:Nn on line 283
+Defining \bool_gset:Nn on line 284
+Defining \bool_set:cn on line 287
+Defining \bool_gset:cn on line 288
+Defining \bool_not_p:n on line 289
+Defining \bool_xor_p:nn on line 290
+Defining \bool_while_do:nn on line 298
+Defining \bool_until_do:nn on line 301
+Defining \bool_do_while:nn on line 304
+Defining \bool_do_until:nn on line 307
+Defining \prg_case_int:nnn on line 310
+Defining \prg_case_int_aux:nnn on line 314
+Defining \prg_case_dim:nnn on line 320
+Defining \prg_case_dim_aux:nnn on line 324
+Defining \prg_case_str:nnn on line 330
+Defining \prg_case_str_aux:nnn on line 334
+Defining \prg_case_tl:Nnn on line 340
+Defining \prg_case_tl_aux:NNn on line 344
+Defining \prg_end_case:nw on line 350
+Defining \prg_define_quicksort:nnn on line 352
+Defining \prg_variable_get_scope:N on line 442
+Defining \prg_variable_get_scope_aux:w on line 442
+Defining \prg_variable_get_type:N on line 459
+Defining \prg_variable_get_type_aux:w on line 459
+)
+(/usr/share/texmf-texlive/tex/latex/expl3/l3clist.sty
+Package: l3clist 2009/08/05 v1441 L3 Experimental comma separated lists
+Defining \clist_new:N on line 56
+Defining \clist_new:c on line 57
+Defining \clist_clear:N on line 58
+Defining \clist_clear:c on line 59
+Defining \clist_gclear:N on line 60
+Defining \clist_gclear:c on line 61
+Defining \clist_clear_new:N on line 62
+Defining \clist_clear_new:c on line 63
+Defining \clist_gclear_new:N on line 64
+Defining \clist_gclear_new:c on line 65
+Defining \clist_set_eq:NN on line 66
+Defining \clist_set_eq:cN on line 67
+Defining \clist_set_eq:Nc on line 68
+Defining \clist_set_eq:cc on line 69
+Defining \clist_gset_eq:NN on line 70
+Defining \clist_gset_eq:cN on line 71
+Defining \clist_gset_eq:Nc on line 72
+Defining \clist_gset_eq:cc on line 73
+Defining \clist_set_from_seq_aux:NNN on line 74
+Defining \clist_set_from_seq:NN on line 81
+Defining \clist_gset_from_seq:NN on line 82
+Defining \clist_if_empty_p:N on line 83
+Defining \clist_if_empty:NTF on line 83
+Defining \clist_if_empty:NT on line 83
+Defining \clist_if_empty:NF on line 83
+Defining \clist_if_empty_p:c on line 84
+Defining \clist_if_empty:cTF on line 84
+Defining \clist_if_empty:cT on line 84
+Defining \clist_if_empty:cF on line 84
+Defining \clist_if_empty_err:N on line 85
+Defining \clist_if_eq_p:NN on line 91
+Defining \clist_if_eq:NNTF on line 91
+Defining \clist_if_eq:NNT on line 91
+Defining \clist_if_eq:NNF on line 91
+Defining \clist_if_eq_p:cN on line 92
+Defining \clist_if_eq:cNTF on line 92
+Defining \clist_if_eq:cNT on line 92
+Defining \clist_if_eq:cNF on line 92
+Defining \clist_if_eq_p:Nc on line 93
+Defining \clist_if_eq:NcTF on line 93
+Defining \clist_if_eq:NcT on line 93
+Defining \clist_if_eq:NcF on line 93
+Defining \clist_if_eq_p:cc on line 94
+Defining \clist_if_eq:ccTF on line 94
+Defining \clist_if_eq:ccT on line 94
+Defining \clist_if_eq:ccF on line 94
+Defining \clist_if_in:NnTF on line 101
+Defining \clist_if_in:NnT on line 101
+Defining \clist_if_in:NnF on line 101
+Defining \clist_if_in:NVTF on line 102
+Defining \clist_if_in:NoTF on line 102
+Defining \clist_if_in:cnTF on line 102
+Defining \clist_if_in:cVTF on line 102
+Defining \clist_if_in:coTF on line 102
+Defining \clist_if_in:NVT on line 103
+Defining \clist_if_in:NoT on line 103
+Defining \clist_if_in:cnT on line 103
+Defining \clist_if_in:cVT on line 103
+Defining \clist_if_in:coT on line 103
+Defining \clist_if_in:NVF on line 104
+Defining \clist_if_in:NoF on line 104
+Defining \clist_if_in:cnF on line 104
+Defining \clist_if_in:cVF on line 104
+Defining \clist_if_in:coF on line 104
+Defining \clist_use:N on line 105
+Defining \clist_use:c on line 113
+Defining \clist_get:NN on line 114
+Defining \clist_get_aux:w on line 118
+Defining \clist_get:cN on line 119
+Defining \clist_pop_aux:nnNN on line 120
+Defining \clist_pop_aux:w on line 124
+Defining \clist_pop_auxi:w on line 129
+Defining \clist_show:N on line 130
+Defining \clist_show:c on line 131
+Defining \clist_display:N on line 132
+Defining \clist_display:c on line 146
+Defining \clist_put_aux:NNnnNn on line 147
+Defining \clist_put_left:Nn on line 152
+Defining \clist_put_left:NV on line 155
+Defining \clist_put_left:No on line 155
+Defining \clist_put_left:Nx on line 155
+Defining \clist_put_left:cn on line 155
+Defining \clist_put_left:cV on line 155
+Defining \clist_put_left:co on line 155
+Defining \clist_gput_left:Nn on line 156
+Defining \clist_gput_left:NV on line 159
+Defining \clist_gput_left:No on line 159
+Defining \clist_gput_left:Nx on line 159
+Defining \clist_gput_left:cn on line 159
+Defining \clist_gput_left:cV on line 159
+Defining \clist_gput_left:co on line 159
+Defining \clist_put_right:Nn on line 160
+Defining \clist_put_right:NV on line 163
+Defining \clist_put_right:No on line 163
+Defining \clist_put_right:Nx on line 163
+Defining \clist_put_right:cn on line 163
+Defining \clist_put_right:cV on line 163
+Defining \clist_put_right:co on line 163
+Defining \clist_gput_right:Nn on line 164
+Defining \clist_gput_right:NV on line 167
+Defining \clist_gput_right:No on line 167
+Defining \clist_gput_right:Nx on line 167
+Defining \clist_gput_right:cn on line 167
+Defining \clist_gput_right:cV on line 167
+Defining \clist_gput_right:co on line 167
+Defining \clist_map_function:NN on line 168
+Defining \clist_map_function:cN on line 174
+Defining \clist_map_function:nN on line 175
+Defining \clist_map_function_aux:Nw on line 180
+Defining \clist_map_break: on line 185
+Defining \g_clist_inline_level_int on line 186
+\g_clist_inline_level_int=\count117
+Defining \clist_map_inline:Nn on line 187
+Defining \clist_map_inline:cn on line 198
+Defining \clist_map_inline:nn on line 199
+Defining \clist_map_variable:nNn on line 210
+Defining \clist_map_variable:NNn on line 216
+Defining \clist_map_variable:cNn on line 217
+Defining \exp_args:NcNn on line 217
+Defining \clist_map_variable_aux:Nnw on line 218
+Defining \clist_concat_aux:NNNN on line 223
+Defining \clist_concat:NNN on line 232
+Defining \clist_gconcat:NNN on line 233
+Defining \clist_concat:ccc on line 234
+Defining \clist_gconcat:ccc on line 235
+Defining \l_clist_remove_clist on line 236
+Defining \clist_remove_duplicates_aux:NN on line 241
+Defining \clist_remove_duplicates_aux:n on line 246
+Defining \clist_remove_duplicates:N on line 247
+Defining \clist_gremove_duplicates:N on line 250
+Defining \clist_remove_element:Nn on line 253
+Defining \clist_gremove_element:Nn on line 256
+Defining \clist_remove_element_aux:NNn on line 268
+Defining \clist_remove_element_aux:n on line 269
+Defining \clist_push:Nn on line 270
+Defining \clist_push:NV on line 271
+Defining \clist_push:No on line 272
+Defining \clist_push:cn on line 273
+Defining \clist_pop:NN on line 274
+Defining \clist_pop:cN on line 275
+Defining \clist_gpush:Nn on line 276
+Defining \clist_gpush:NV on line 277
+Defining \clist_gpush:No on line 278
+Defining \clist_gpush:cn on line 279
+Defining \clist_gpop:NN on line 280
+Defining \clist_gpop:cN on line 281
+Defining \clist_top:NN on line 282
+Defining \clist_top:cN on line 283
+)
+(/usr/share/texmf-texlive/tex/latex/expl3/l3token.sty
+Package: l3token 2009/09/22 v1550 L3 Experimental token investigation and manip
+ulation
+Defining \char_set_catcode:w on line 56
+Defining \char_set_catcode:nn on line 57
+Defining \char_value_catcode:w on line 60
+Defining \char_value_catcode:n on line 61
+Defining \char_show_value_catcode:w on line 64
+Defining \char_show_value_catcode:n on line 67
+Defining \char_make_escape:N on line 70
+Defining \char_make_begin_group:N on line 71
+Defining \char_make_end_group:N on line 72
+Defining \char_make_math_shift:N on line 73
+Defining \char_make_alignment:N on line 74
+Defining \char_make_end_line:N on line 75
+Defining \char_make_parameter:N on line 76
+Defining \char_make_math_superscript:N on line 77
+Defining \char_make_math_subscript:N on line 78
+Defining \char_make_ignore:N on line 79
+Defining \char_make_space:N on line 80
+Defining \char_make_letter:N on line 81
+Defining \char_make_other:N on line 82
+Defining \char_make_active:N on line 83
+Defining \char_make_comment:N on line 84
+Defining \char_make_invalid:N on line 85
+Defining \char_make_escape:n on line 86
+Defining \char_make_begin_group:n on line 87
+Defining \char_make_end_group:n on line 88
+Defining \char_make_math_shift:n on line 89
+Defining \char_make_alignment:n on line 90
+Defining \char_make_end_line:n on line 91
+Defining \char_make_parameter:n on line 92
+Defining \char_make_math_superscript:n on line 93
+Defining \char_make_math_subscript:n on line 94
+Defining \char_make_ignore:n on line 95
+Defining \char_make_space:n on line 96
+Defining \char_make_letter:n on line 97
+Defining \char_make_other:n on line 98
+Defining \char_make_active:n on line 99
+Defining \char_make_comment:n on line 100
+Defining \char_make_invalid:n on line 101
+Defining \char_set_mathcode:w on line 102
+Defining \char_set_mathcode:nn on line 103
+Defining \char_gset_mathcode:w on line 106
+Defining \char_gset_mathcode:nn on line 107
+Defining \char_value_mathcode:w on line 110
+Defining \char_value_mathcode:n on line 111
+Defining \char_show_value_mathcode:w on line 114
+Defining \char_show_value_mathcode:n on line 115
+Defining \char_set_lccode:w on line 118
+Defining \char_set_lccode:nn on line 119
+Defining \char_value_lccode:w on line 122
+Defining \char_value_lccode:n on line 123
+Defining \char_show_value_lccode:w on line 125
+Defining \char_show_value_lccode:n on line 126
+Defining \char_set_uccode:w on line 128
+Defining \char_set_uccode:nn on line 129
+Defining \char_value_uccode:w on line 132
+Defining \char_value_uccode:n on line 133
+Defining \char_show_value_uccode:w on line 135
+Defining \char_show_value_uccode:n on line 136
+Defining \char_set_sfcode:w on line 138
+Defining \char_set_sfcode:nn on line 139
+Defining \char_value_sfcode:w on line 142
+Defining \char_value_sfcode:n on line 143
+Defining \char_show_value_sfcode:w on line 146
+Defining \char_show_value_sfcode:n on line 147
+Defining \token_new:Nn on line 150
+Defining \c_group_begin_token on line 151
+Defining \c_group_end_token on line 152
+Defining \c_math_shift_token on line 155
+Defining \c_alignment_tab_token on line 157
+Defining \c_parameter_token on line 158
+Defining \c_math_superscript_token on line 159
+Defining \c_math_subscript_token on line 161
+Defining \c_space_token on line 162
+Defining \c_letter_token on line 163
+Defining \c_other_char_token on line 164
+Defining \token_if_group_begin_p:N on line 171
+Defining \token_if_group_begin:NTF on line 171
+Defining \token_if_group_begin:NT on line 171
+Defining \token_if_group_begin:NF on line 171
+Defining \token_if_group_end_p:N on line 175
+Defining \token_if_group_end:NTF on line 175
+Defining \token_if_group_end:NT on line 175
+Defining \token_if_group_end:NF on line 175
+Defining \token_if_math_shift_p:N on line 179
+Defining \token_if_math_shift:NTF on line 179
+Defining \token_if_math_shift:NT on line 179
+Defining \token_if_math_shift:NF on line 179
+Defining \token_if_alignment_tab_p:N on line 183
+Defining \token_if_alignment_tab:NTF on line 183
+Defining \token_if_alignment_tab:NT on line 183
+Defining \token_if_alignment_tab:NF on line 183
+Defining \token_if_parameter_p:N on line 187
+Defining \token_if_parameter:NTF on line 187
+Defining \token_if_parameter:NT on line 187
+Defining \token_if_parameter:NF on line 187
+Defining \token_if_math_superscript_p:N on line 191
+Defining \token_if_math_superscript:NTF on line 191
+Defining \token_if_math_superscript:NT on line 191
+Defining \token_if_math_superscript:NF on line 191
+Defining \token_if_math_subscript_p:N on line 195
+Defining \token_if_math_subscript:NTF on line 195
+Defining \token_if_math_subscript:NT on line 195
+Defining \token_if_math_subscript:NF on line 195
+Defining \token_if_space_p:N on line 199
+Defining \token_if_space:NTF on line 199
+Defining \token_if_space:NT on line 199
+Defining \token_if_space:NF on line 199
+Defining \token_if_letter_p:N on line 203
+Defining \token_if_letter:NTF on line 203
+Defining \token_if_letter:NT on line 203
+Defining \token_if_letter:NF on line 203
+Defining \token_if_other_char_p:N on line 207
+Defining \token_if_other_char:NTF on line 207
+Defining \token_if_other_char:NT on line 207
+Defining \token_if_other_char:NF on line 207
+Defining \token_if_active_char_p:N on line 211
+Defining \token_if_active_char:NTF on line 211
+Defining \token_if_active_char:NT on line 211
+Defining \token_if_active_char:NF on line 211
+Defining \token_if_eq_meaning_p:NN on line 215
+Defining \token_if_eq_meaning:NNTF on line 215
+Defining \token_if_eq_meaning:NNT on line 215
+Defining \token_if_eq_meaning:NNF on line 215
+Defining \token_if_eq_catcode_p:NN on line 219
+Defining \token_if_eq_catcode:NNTF on line 219
+Defining \token_if_eq_catcode:NNT on line 219
+Defining \token_if_eq_catcode:NNF on line 219
+Defining \token_if_eq_charcode_p:NN on line 223
+Defining \token_if_eq_charcode:NNTF on line 223
+Defining \token_if_eq_charcode:NNT on line 223
+Defining \token_if_eq_charcode:NNF on line 223
+Defining \token_if_macro_p:N on line 226
+Defining \token_if_macro:NTF on line 226
+Defining \token_if_macro:NT on line 226
+Defining \token_if_macro:NF on line 226
+Defining \token_if_macro_p_aux:w on line 227
+Defining \token_if_cs_p:N on line 233
+Defining \token_if_cs:NTF on line 233
+Defining \token_if_cs:NT on line 233
+Defining \token_if_cs:NF on line 233
+Defining \token_if_expandable_p:N on line 241
+Defining \token_if_expandable:NTF on line 241
+Defining \token_if_expandable:NT on line 241
+Defining \token_if_expandable:NF on line 241
+Defining \token_if_chardef_p:N on line 333
+Defining \token_if_chardef:NTF on line 333
+Defining \token_if_chardef:NT on line 333
+Defining \token_if_chardef:NF on line 333
+Defining \token_if_chardef_aux:w on line 333
+Defining \token_if_mathchardef_p:N on line 333
+Defining \token_if_mathchardef:NTF on line 333
+Defining \token_if_mathchardef:NT on line 333
+Defining \token_if_mathchardef:NF on line 333
+Defining \token_if_mathchardef_aux:w on line 333
+Defining \token_if_int_register_p:N on line 333
+Defining \token_if_int_register:NTF on line 333
+Defining \token_if_int_register:NT on line 333
+Defining \token_if_int_register:NF on line 333
+Defining \token_if_int_register_aux:w on line 333
+Defining \token_if_skip_register_p:N on line 333
+Defining \token_if_skip_register:NTF on line 333
+Defining \token_if_skip_register:NT on line 333
+Defining \token_if_skip_register:NF on line 333
+Defining \token_if_skip_register_aux:w on line 333
+Defining \token_if_dim_register_p:N on line 333
+Defining \token_if_dim_register:NTF on line 333
+Defining \token_if_dim_register:NT on line 333
+Defining \token_if_dim_register:NF on line 333
+Defining \token_if_dim_register_aux:w on line 333
+Defining \token_if_toks_register_p:N on line 333
+Defining \token_if_toks_register:NTF on line 333
+Defining \token_if_toks_register:NT on line 333
+Defining \token_if_toks_register:NF on line 333
+Defining \token_if_toks_register_aux:w on line 333
+Defining \token_if_protected_macro_p:N on line 333
+Defining \token_if_protected_macro:NTF on line 333
+Defining \token_if_protected_macro:NT on line 333
+Defining \token_if_protected_macro:NF on line 333
+Defining \token_if_protected_macro_aux:w on line 333
+Defining \token_if_long_macro_p:N on line 333
+Defining \token_if_long_macro:NTF on line 333
+Defining \token_if_long_macro:NT on line 333
+Defining \token_if_long_macro:NF on line 333
+Defining \token_if_long_macro_aux:w on line 333
+Defining \token_if_protected_long_macro_p:N on line 333
+Defining \token_if_protected_long_macro:NTF on line 333
+Defining \token_if_protected_long_macro:NT on line 333
+Defining \token_if_protected_long_macro:NF on line 333
+Defining \token_if_protected_long_macro_aux:w on line 333
+Defining \token_get_prefix_arg_replacement_aux:w on line 364
+Defining \token_get_prefix_spec:N on line 364
+Defining \token_get_arg_spec:N on line 364
+Defining \token_get_replacement_spec:N on line 364
+Defining \token_if_primitive_p:N on line 383
+Defining \token_if_primitive:NTF on line 383
+Defining \token_if_primitive:NT on line 383
+Defining \token_if_primitive:NF on line 383
+Defining \token_if_primitive_p_aux:N on line 384
+Defining \l_peek_token on line 405
+Defining \g_peek_token on line 406
+Defining \l_peek_search_token on line 407
+Defining \peek_after:NN on line 408
+Defining \peek_gafter:NN on line 409
+Defining \l_peek_true_tl on line 412
+Defining \l_peek_false_tl on line 413
+Defining \peek_tmp:w on line 414
+Defining \l_peek_search_tl on line 415
+Defining \peek_token_generic:NNTF on line 416
+Defining \peek_token_generic:NNT on line 424
+Defining \peek_token_generic:NNF on line 427
+Defining \peek_token_remove_generic:NNTF on line 430
+Defining \peek_token_remove_generic:NNT on line 439
+Defining \peek_token_remove_generic:NNF on line 442
+Defining \l_peek_true_aux_tl on line 445
+Defining \c_peek_true_remove_next_tl on line 448
+Defining \peek_execute_branches_meaning: on line 449
+Defining \peek_execute_branches_catcode: on line 456
+Defining \peek_execute_branches_charcode: on line 463
+Defining \peek_execute_branches_charcode_aux:NN on line 472
+Defining \peek_def_aux:nnnn on line 480
+Defining \peek_def_aux_ii:nnnnn on line 485
+Defining \peek_meaning:NTF on line 498
+Defining \peek_meaning:NT on line 498
+Defining \peek_meaning:NF on line 498
+Defining \peek_meaning_ignore_spaces:NTF on line 503
+Defining \peek_meaning_ignore_spaces:NT on line 503
+Defining \peek_meaning_ignore_spaces:NF on line 503
+Defining \peek_meaning_remove:NTF on line 508
+Defining \peek_meaning_remove:NT on line 508
+Defining \peek_meaning_remove:NF on line 508
+Defining \peek_meaning_remove_ignore_spaces:NTF on line 513
+Defining \peek_meaning_remove_ignore_spaces:NT on line 513
+Defining \peek_meaning_remove_ignore_spaces:NF on line 513
+Defining \peek_catcode:NTF on line 518
+Defining \peek_catcode:NT on line 518
+Defining \peek_catcode:NF on line 518
+Defining \peek_catcode_ignore_spaces:NTF on line 523
+Defining \peek_catcode_ignore_spaces:NT on line 523
+Defining \peek_catcode_ignore_spaces:NF on line 523
+Defining \peek_catcode_remove:NTF on line 528
+Defining \peek_catcode_remove:NT on line 528
+Defining \peek_catcode_remove:NF on line 528
+Defining \peek_catcode_remove_ignore_spaces:NTF on line 533
+Defining \peek_catcode_remove_ignore_spaces:NT on line 533
+Defining \peek_catcode_remove_ignore_spaces:NF on line 533
+Defining \peek_charcode:NTF on line 538
+Defining \peek_charcode:NT on line 538
+Defining \peek_charcode:NF on line 538
+Defining \peek_charcode_ignore_spaces:NTF on line 543
+Defining \peek_charcode_ignore_spaces:NT on line 543
+Defining \peek_charcode_ignore_spaces:NF on line 543
+Defining \peek_charcode_remove:NTF on line 548
+Defining \peek_charcode_remove:NT on line 548
+Defining \peek_charcode_remove:NF on line 548
+Defining \peek_charcode_remove_ignore_spaces:NTF on line 553
+Defining \peek_charcode_remove_ignore_spaces:NT on line 553
+Defining \peek_charcode_remove_ignore_spaces:NF on line 553
+Defining \peek_ignore_spaces_aux: on line 554
+Defining \peek_ignore_spaces_execute_branches: on line 557
+)
+(/usr/share/texmf-texlive/tex/latex/expl3/l3io.sty
+Package: l3io 2009/05/31 v1369 L3 Experimental i/o module
+Defining \iow_new:c on line 57
+Defining \iow_open:Nn on line 58
+Defining \iow_open:cn on line 62
+Defining \iow_close:N on line 63
+Defining \c_iow_term_stream on line 64
+Defining \c_ior_term_stream on line 65
+Defining \c_iow_log_stream on line 66
+Defining \c_ior_log_stream on line 67
+Defining \iow_now:Nx on line 68
+Defining \iow_now:Nn on line 69
+Defining \iow_log:n on line 73
+Defining \iow_term:n on line 75
+Defining \iow_now_when_avail:Nn on line 76
+Defining \iow_now_when_avail:cn on line 79
+Defining \iow_now_buffer_safe_aux:w on line 80
+Defining \iow_now_buffer_safe:Nx on line 83
+Defining \iow_now_buffer_safe:Nn on line 86
+Defining \iow_shipout_x:Nx on line 90
+Defining \iow_shipout:Nn on line 91
+Defining \iow_shipout:Nx on line 94
+Defining \iow_newline: on line 95
+Defining \iow_space: on line 96
+Defining \iow_char:N on line 97
+Defining \c_iow_comment_char on line 98
+Defining \c_iow_lbrace_char on line 99
+Defining \c_iow_rbrace_char on line 100
+Defining \ior_open:Nn on line 103
+Defining \if_eof:w on line 107
+Defining \ior_if_eof_p:N on line 110
+Defining \ior_if_eof:NTF on line 110
+Defining \ior_if_eof:NT on line 110
+Defining \ior_if_eof:NF on line 110
+Defining \ior_to:NN on line 111
+Defining \ior_gto:NN on line 114
+)
+(/usr/share/texmf-texlive/tex/latex/expl3/l3prop.sty
+Package: l3prop 2009/09/16 v1536 L3 Experimental Property Lists
+Defining \q_prop on line 56
+Defining \prop_new:N on line 57
+Defining \prop_new:c on line 58
+Defining \prop_clear:N on line 59
+Defining \prop_clear:c on line 60
+Defining \prop_gclear:N on line 61
+Defining \prop_gclear:c on line 62
+Defining \prop_set_eq:NN on line 63
+Defining \prop_set_eq:Nc on line 64
+Defining \prop_set_eq:cN on line 65
+Defining \prop_set_eq:cc on line 66
+Defining \prop_gset_eq:NN on line 67
+Defining \prop_gset_eq:Nc on line 68
+Defining \prop_gset_eq:cN on line 69
+Defining \prop_gset_eq:cc on line 70
+Defining \prop_show:N on line 71
+Defining \prop_show:c on line 72
+Defining \prop_display:N on line 73
+Defining \prop_display:c on line 89
+Defining \prop_split_aux:Nnn on line 90
+Defining \prop_get:NnN on line 96
+Defining \prop_get_aux:w on line 99
+Defining \prop_get:NVN on line 100
+Defining \exp_args:NNVN on line 100
+Defining \prop_get:cnN on line 100
+Defining \exp_args:NcnN on line 100
+Defining \prop_get:cVN on line 100
+Defining \exp_args:NcVN on line 100
+Defining \prop_gget:NnN on line 101
+Defining \prop_gget_aux:w on line 103
+Defining \prop_gget:NVN on line 104
+Defining \prop_gget:cnN on line 104
+Defining \prop_gget:cVN on line 104
+Defining \prop_get_gdel:NnN on line 105
+Defining \prop_get_del_aux:w on line 107
+Defining \prop_put:Nnn on line 113
+Defining \prop_gput:Nnn on line 119
+Defining \prop_put_aux:w on line 125
+Defining \prop_put:NnV on line 133
+Defining \exp_args:NNnV on line 133
+Defining \prop_put:NVn on line 133
+Defining \exp_args:NNVn on line 133
+Defining \prop_put:NVV on line 133
+Defining \exp_args:NNVV on line 133
+Defining \prop_put:cnn on line 133
+Defining \prop_gput:NnV on line 134
+Defining \prop_gput:Nno on line 134
+Defining \prop_gput:Nnx on line 134
+Defining \prop_gput:Nox on line 134
+Defining \prop_gput:cnn on line 134
+Defining \prop_gput:ccx on line 134
+Defining \prop_del:Nn on line 135
+Defining \prop_gdel:Nn on line 137
+Defining \prop_del_aux:w on line 139
+Defining \prop_del:NV on line 146
+Defining \prop_gdel:NV on line 147
+Defining \prop_gput_if_new:Nnn on line 148
+Defining \prop_put_if_new_aux:w on line 150
+Defining \prop_if_empty_p:N on line 152
+Defining \prop_if_empty:NTF on line 152
+Defining \prop_if_empty:NT on line 152
+Defining \prop_if_empty:NF on line 152
+Defining \prop_if_empty_p:c on line 153
+Defining \prop_if_empty:cTF on line 153
+Defining \prop_if_empty:cT on line 153
+Defining \prop_if_empty:cF on line 153
+Defining \prop_if_eq_p:NN on line 154
+Defining \prop_if_eq:NNTF on line 154
+Defining \prop_if_eq:NNT on line 154
+Defining \prop_if_eq:NNF on line 154
+Defining \prop_if_eq_p:cN on line 155
+Defining \prop_if_eq:cNTF on line 155
+Defining \prop_if_eq:cNT on line 155
+Defining \prop_if_eq:cNF on line 155
+Defining \prop_if_eq_p:Nc on line 156
+Defining \prop_if_eq:NcTF on line 156
+Defining \prop_if_eq:NcT on line 156
+Defining \prop_if_eq:NcF on line 156
+Defining \prop_if_eq_p:cc on line 157
+Defining \prop_if_eq:ccTF on line 157
+Defining \prop_if_eq:ccT on line 157
+Defining \prop_if_eq:ccF on line 157
+Defining \prop_if_in:NnTF on line 160
+Defining \prop_if_in:NnT on line 160
+Defining \prop_if_in:NnF on line 160
+Defining \prop_if_in_aux:w on line 161
+Defining \prop_if_in:NVTF on line 164
+Defining \prop_if_in:NoTF on line 164
+Defining \prop_if_in:cnTF on line 164
+Defining \prop_if_in:ccTF on line 164
+Defining \prop_if_in:NVT on line 165
+Defining \prop_if_in:NoT on line 165
+Defining \prop_if_in:cnT on line 165
+Defining \prop_if_in:ccT on line 165
+Defining \prop_if_in:NVF on line 166
+Defining \prop_if_in:NoF on line 166
+Defining \prop_if_in:cnF on line 166
+Defining \prop_if_in:ccF on line 166
+Defining \prop_map_function:cN on line 178
+Defining \prop_map_function:Nc on line 178
+Defining \prop_map_function:cc on line 178
+Defining \g_prop_inline_level_num on line 179
+Defining \prop_map_inline:Nn on line 180
+Defining \prop_map_inline:cn on line 188
+Defining \prop_map_break: on line 189
+)
+(/usr/share/texmf-texlive/tex/latex/expl3/l3msg.sty
+Package: l3msg 2009/09/01 v1502 L3 Experimental LaTeX Messages module
+Defining \c_msg_fatal_tl on line 58
+Defining \c_msg_error_tl on line 59
+Defining \c_msg_warning_tl on line 60
+Defining \c_msg_info_tl on line 61
+Defining \c_msg_fatal_text_tl on line 64
+Defining \c_msg_help_text_tl on line 67
+Defining \c_msg_kernel_bug_text_tl on line 70
+Defining \c_msg_kernel_bug_more_text_tl on line 76
+Defining \c_msg_no_info_text_tl on line 80
+Defining \c_msg_return_text_tl on line 86
+Defining \c_msg_hide_tl                                                        
+  on line 94
+Defining \c_msg_on_line_tl on line 95
+Defining \c_msg_text_prefix_tl on line 96
+Defining \c_msg_more_text_prefix_tl on line 97
+Defining \c_msg_code_prefix_tl on line 98
+Defining \l_msg_class_tl on line 99
+Defining \l_msg_current_class_tl on line 100
+Defining \l_msg_names_clist on line 101
+\l_msg_redirect_classes_prop=\toks32
+\l_msg_redirect_names_prop=\toks33
+Defining \l_msg_redirect_classes_clist on line 104
+Defining \msg_line_number: on line 107
+Defining \msg_line_context: on line 113
+Defining \msg_newline: on line 114
+Defining \msg_two_newlines: on line 115
+Defining \msg_space: on line 116
+Defining \msg_two_spaces: on line 117
+Defining \msg_four_spaces: on line 118
+Defining \msg_generic_new:nnnn on line 119
+Defining \msg_generic_new:nnn on line 123
+Defining \msg_generic_new:nn on line 127
+Defining \msg_generic_set:nnnn on line 131
+Defining \msg_generic_set:nnn on line 136
+Defining \msg_generic_set:nn on line 141
+Defining \msg_generic_set_clist:n on line 146
+Defining \msg_generic_set_text:nn on line 154
+Defining \msg_generic_set_more_text:nnn on line 163
+Defining \msg_generic_set_code:nnnn on line 164
+Defining \msg_generic_set_code:nn on line 180
+Defining \msg_direct_interrupt:xxxxn on line 207
+Defining \msg_direct_interrupt_aux:n on line 214
+Defining \msg_direct_log:xx on line 221
+Defining \msg_direct_term:xx on line 228
+Defining \msg_new:nnnnn on line 229
+Defining \msg_new:nnnn on line 232
+Defining \msg_new:nnn on line 235
+Defining \msg_set:nnnnn on line 238
+Defining \msg_set:nnnn on line 241
+Defining \msg_set:nnn on line 244
+Defining \msg_class_new:nn on line 247
+Defining \msg_class_set:nn on line 263
+Defining \msg_use:nnnnxx on line 286
+Defining \msg_use_code: on line 287
+Defining \msg_use_loop:n on line 288
+Defining \msg_use_aux:nnn on line 297
+Defining \msg_use_aux:nn on line 308
+Defining \msg_use_loop_check:nn on line 316
+Defining \msg_fatal:nnxx on line 317
+\l_msg_redirect_fatal_prop=\toks34
+Defining \msg_error:nnxx on line 328
+\l_msg_redirect_error_prop=\toks35
+Defining \msg_warning:nnxx on line 349
+\l_msg_redirect_warning_prop=\toks36
+Defining \msg_info:nnxx on line 356
+\l_msg_redirect_info_prop=\toks37
+Defining \msg_log:nnxx on line 363
+\l_msg_redirect_log_prop=\toks38
+Defining \msg_trace:nnxx on line 369
+\l_msg_redirect_trace_prop=\toks39
+Defining \msg_none:nnxx on line 375
+\l_msg_redirect_none_prop=\toks40
+Defining \msg_redirect_class:nn on line 378
+Defining \msg_redirect_module:nnn on line 381
+Defining \msg_redirect_name:nnn on line 384
+Defining \msg_kernel_new:nnnn on line 385
+Defining \msg_kernel_new:nnn on line 388
+Defining \msg_kernel_new:nn on line 391
+Defining \msg_kernel_set:nnnn on line 394
+Defining \msg_kernel_set:nnn on line 397
+Defining \msg_kernel_set:nn on line 400
+Defining \msg_kernel_classes_new:n on line 410
+Defining \msg_kernel_fatal:nxx on line 421
+Defining \msg_kernel_fatal:nx on line 422
+Defining \msg_kernel_fatal:n on line 422
+Defining \msg_kernel_error:nxx on line 443
+Defining \msg_kernel_error:nx on line 444
+Defining \msg_kernel_error:n on line 444
+Defining \msg_kernel_warning:nxx on line 445
+Defining \msg_kernel_warning:nx on line 448
+Defining \msg_kernel_warning:n on line 448
+Defining \msg_kernel_info:nxx on line 449
+Defining \msg_kernel_info:nx on line 452
+Defining \msg_kernel_info:n on line 452
+Defining \msg_text > LaTeX/coding-bug:nn on line 453
+Defining \msg_text > LaTeX/message-unknown:nn on line 459
+Defining \msg_text > LaTeX/message-class-unknown:nn on line 467
+Defining \msg_text > LaTeX/message-loop:nn on line 474
+)
+(/usr/share/texmf-texlive/tex/latex/expl3/l3skip.sty
+Package: l3skip 2009/05/28 v1362 L3 Experimental skip registers
+Defining \skip_new:N on line 56
+Defining \skip_new:c on line 60
+Defining \skip_set:Nn on line 61
+Defining \skip_gset:Nn on line 64
+Defining \skip_set:cn on line 68
+Defining \skip_gset:cn on line 69
+Defining \skip_zero:N on line 70
+Defining \skip_gzero:N on line 73
+Defining \skip_zero:c on line 77
+Defining \skip_gzero:c on line 78
+Defining \skip_add:Nn on line 79
+Defining \skip_add:cn on line 82
+Defining \skip_sub:Nn on line 83
+Defining \skip_gadd:Nn on line 86
+Defining \skip_gadd:cn on line 90
+Defining \skip_gsub:Nn on line 91
+Defining \skip_horizontal:N on line 95
+Defining \skip_horizontal:c on line 96
+Defining \skip_horizontal:n on line 97
+Defining \skip_vertical:N on line 98
+Defining \skip_vertical:c on line 99
+Defining \skip_vertical:n on line 100
+Defining \skip_use:N on line 101
+Defining \skip_use:c on line 102
+Defining \skip_show:N on line 103
+Defining \skip_show:c on line 104
+Defining \skip_eval:n on line 105
+Defining \l_tmpa_skip on line 108
+\l_tmpa_skip=\skip46
+Defining \l_tmpb_skip on line 109
+\l_tmpb_skip=\skip47
+Defining \l_tmpc_skip on line 110
+\l_tmpc_skip=\skip48
+Defining \g_tmpa_skip on line 111
+\g_tmpa_skip=\skip49
+Defining \g_tmpb_skip on line 112
+\g_tmpb_skip=\skip50
+Defining \skip_if_infinite_glue_p:n on line 120
+Defining \skip_if_infinite_glue:nTF on line 120
+Defining \skip_if_infinite_glue:nT on line 120
+Defining \skip_if_infinite_glue:nF on line 120
+Defining \skip_split_finite_else_action:nnNN on line 121
+Defining \dim_new:N on line 133
+Defining \dim_new:c on line 137
+Defining \dim_set:Nn on line 138
+Defining \dim_set:cn on line 139
+Defining \dim_set:Nc on line 139
+Defining \dim_gset:Nn on line 140
+Defining \dim_gset:cn on line 141
+Defining \dim_gset:Nc on line 141
+Defining \dim_gset:cc on line 141
+Defining \dim_zero:N on line 142
+Defining \dim_zero:c on line 143
+Defining \dim_gzero:N on line 144
+Defining \dim_gzero:c on line 145
+Defining \dim_add:Nn on line 146
+Defining \dim_add:cn on line 149
+Defining \dim_add:Nc on line 149
+Defining \dim_gadd:Nn on line 150
+Defining \dim_gadd:cn on line 151
+Defining \dim_sub:Nn on line 152
+Defining \dim_sub:cn on line 153
+Defining \dim_sub:Nc on line 153
+Defining \dim_gsub:Nn on line 154
+Defining \dim_gsub:cn on line 155
+Defining \dim_use:N on line 156
+Defining \dim_use:c on line 157
+Defining \dim_show:N on line 158
+Defining \dim_show:c on line 159
+Defining \l_tmpa_dim on line 160
+\l_tmpa_dim=\dimen122
+Defining \l_tmpb_dim on line 161
+\l_tmpb_dim=\dimen123
+Defining \l_tmpc_dim on line 162
+\l_tmpc_dim=\dimen124
+Defining \l_tmpd_dim on line 163
+\l_tmpd_dim=\dimen125
+Defining \g_tmpa_dim on line 164
+\g_tmpa_dim=\dimen126
+Defining \g_tmpb_dim on line 165
+\g_tmpb_dim=\dimen127
+Defining \c_zero_dim on line 166
+Defining \c_max_dim on line 167
+Defining \dim_eval:n on line 168
+Defining \if_dim:w on line 169
+Defining \dim_compare_p:nNn on line 173
+Defining \dim_compare:nNnTF on line 173
+Defining \dim_compare:nNnT on line 173
+Defining \dim_compare:nNnF on line 173
+Defining \dim_while_do:nNnn on line 174
+Defining \dim_until_do:nNnn on line 177
+Defining \dim_do_while:nNnn on line 180
+Defining \dim_do_until:nNnn on line 183
+Defining \muskip_new:N on line 186
+Defining \muskip_set:Nn on line 190
+Defining \muskip_gset:Nn on line 191
+Defining \muskip_add:Nn on line 192
+Defining \muskip_gadd:Nn on line 193
+Defining \muskip_sub:Nn on line 194
+Defining \muskip_gsub:Nn on line 195
+Defining \muskip_use:N on line 196
+))
+(/usr/share/texmf-texlive/tex/latex/expl3/l3box.sty
+Package: l3box 2009/06/01 v1375 L3 Experimental Box module
+Defining \box_new:N on line 56
+Defining \box_new:c on line 60
+Defining \if_hbox:N on line 61
+Defining \if_vbox:N on line 62
+Defining \if_box_empty:N on line 63
+Defining \box_if_horizontal_p:N on line 66
+Defining \box_if_horizontal:NTF on line 66
+Defining \box_if_horizontal:NT on line 66
+Defining \box_if_horizontal:NF on line 66
+Defining \box_if_vertical_p:N on line 69
+Defining \box_if_vertical:NTF on line 69
+Defining \box_if_vertical:NT on line 69
+Defining \box_if_vertical:NF on line 69
+Defining \box_if_horizontal_p:c on line 70
+Defining \box_if_horizontal:cTF on line 71
+Defining \box_if_horizontal:cT on line 72
+Defining \box_if_horizontal:cF on line 73
+Defining \box_if_vertical_p:c on line 74
+Defining \box_if_vertical:cTF on line 75
+Defining \box_if_vertical:cT on line 76
+Defining \box_if_vertical:cF on line 77
+Defining \box_if_empty_p:N on line 80
+Defining \box_if_empty:NTF on line 80
+Defining \box_if_empty:NT on line 80
+Defining \box_if_empty:NF on line 80
+Defining \box_if_empty_p:c on line 81
+Defining \box_if_empty:cTF on line 82
+Defining \box_if_empty:cT on line 83
+Defining \box_if_empty:cF on line 84
+Defining \box_set_eq:NN on line 85
+Defining \box_set_eq:cN on line 86
+Defining \box_set_eq:Nc on line 86
+Defining \box_set_eq:cc on line 86
+Defining \box_gset_eq:NN on line 87
+Defining \box_gset_eq:cN on line 88
+Defining \box_gset_eq:Nc on line 88
+Defining \box_gset_eq:cc on line 88
+Defining \l_last_box on line 89
+Defining \box_set_to_last:N on line 90
+Defining \box_set_to_last:c on line 91
+Defining \box_gset_to_last:N on line 92
+Defining \box_gset_to_last:c on line 93
+Defining \box_move_left:nn on line 94
+Defining \box_move_right:nn on line 95
+Defining \box_move_up:nn on line 96
+Defining \box_move_down:nn on line 97
+Defining \box_clear:N on line 98
+Defining \box_clear:c on line 99
+Defining \box_gclear:N on line 100
+Defining \box_gclear:c on line 101
+Defining \box_ht:N on line 102
+Defining \box_dp:N on line 103
+Defining \box_wd:N on line 104
+Defining \box_ht:c on line 105
+Defining \box_dp:c on line 106
+Defining \box_wd:c on line 107
+Defining \box_use_clear:N on line 108
+Defining \box_use_clear:c on line 109
+Defining \box_use:N on line 110
+Defining \box_use:c on line 111
+Defining \box_show:c on line 113
+Defining \l_tmpa_box on line 115
+Defining \l_tmpb_box on line 116
+\l_tmpb_box=\box30
+Defining \vbox:n on line 117
+Defining \vbox_set:Nn on line 118
+Defining \vbox_set:cn on line 119
+Defining \vbox_gset:Nn on line 120
+Defining \vbox_gset:cn on line 121
+Defining \vbox_set_to_ht:Nnn on line 122
+Defining \vbox_set_to_ht:cnn on line 125
+Defining \vbox_gset_to_ht:Nnn on line 126
+Defining \vbox_gset_to_ht:cnn on line 127
+Defining \vbox_gset_to_ht:ccn on line 127
+Defining \exp_args:Nccn on line 127
+Defining \vbox_set_inline_begin:N on line 128
+Defining \vbox_set_inline_end: on line 130
+Defining \vbox_gset_inline_begin:N on line 131
+Defining \vbox_gset_inline_end: on line 133
+Defining \vbox_to_ht:nn on line 134
+Defining \vbox_to_zero:n on line 135
+Defining \vbox_set_split_to_ht:NNn on line 136
+Defining \vbox_unpack:N on line 139
+Defining \vbox_unpack:c on line 140
+Defining \vbox_unpack_clear:N on line 141
+Defining \vbox_unpack_clear:c on line 142
+Defining \hbox:n on line 143
+Defining \hbox_set:Nn on line 144
+Defining \hbox_set:cn on line 145
+Defining \hbox_gset:Nn on line 146
+Defining \hbox_gset:cn on line 147
+Defining \hbox_set_to_wd:Nnn on line 148
+Defining \hbox_set_to_wd:cnn on line 151
+Defining \hbox_gset_to_wd:Nnn on line 152
+Defining \hbox_gset_to_wd:cnn on line 153
+Defining \hbox_set_inline_begin:N on line 154
+Defining \hbox_set_inline_begin:c on line 157
+Defining \hbox_set_inline_end: on line 158
+Defining \hbox_gset_inline_begin:N on line 159
+Defining \hbox_gset_inline_begin:c on line 162
+Defining \hbox_gset_inline_end: on line 163
+Defining \hbox_to_wd:nn on line 164
+Defining \hbox_to_zero:n on line 165
+Defining \hbox_unpack:N on line 166
+Defining \hbox_unpack:c on line 167
+Defining \hbox_unpack_clear:N on line 168
+Defining \hbox_unpack_clear:c on line 169
+)
+(/usr/share/texmf-texlive/tex/latex/expl3/l3keyval.sty
+Package: l3keyval 2009/07/13 v1424 L3 Experimental keyval processing
+Defining \l_KV_tmpa_tl on line 56
+Defining \l_KV_tmpb_tl on line 57
+Defining \c_KV_single_equal_sign_tl on line 58
+\l_KV_parse_toks=\toks41
+\l_KV_currkey_toks=\toks42
+\l_KV_currval_toks=\toks43
+Defining \l_KV_remove_one_level_of_braces_bool on line 62
+Defining \KV_sanitize_outerlevel_active_equals:N on line 76
+Defining \KV_sanitize_outerlevel_active_commas:N on line 76
+Defining \KV_remove_surrounding_spaces:nw on line 79
+Defining \KV_remove_surrounding_spaces_auxi:w on line 82
+Defining \KV_remove_surrounding_spaces_auxii:w on line 85
+Defining \KV_add_value_element:w on line 86
+Defining \KV_set_key_element:w on line 94
+Defining \KV_add_element_aux:w on line 109
+Defining \KV_parse_sanitize_aux:n on line 110
+Defining \KV_parse_no_sanitize_aux:n on line 121
+Defining \KV_split_key_value_current:w on line 139
+Defining \KV_split_key_value_space_removal:w on line 140
+Defining \KV_split_key_value_space_removal_detect_error:wTF on line 157
+Defining \KV_val_preserve_braces:NnN on line 160
+Defining \KV_split_key_value_space_removal_aux:w on line 161
+Defining \KV_split_key_value_no_space_removal:w on line 187
+Defining \KV_key_no_value_elt:n on line 201
+Defining \KV_key_value_elt:nn on line 202
+Defining \KV_parse_no_space_removal_no_sanitize:n on line 203
+Defining \KV_parse_space_removal_sanitize:n on line 207
+Defining \KV_parse_space_removal_no_sanitize:n on line 211
+)
+(/usr/share/texmf-texlive/tex/latex/expl3/l3keys.sty
+Package: l3keys 2009/09/17 v1542 L3 Experimental key-value support
+Defining \c_keys_root_tl on line 56
+Defining \c_keys_properties_root_tl on line 57
+Defining \c_keys_value_forbidden_tl on line 58
+Defining \c_keys_value_required_tl on line 59
+Defining \l_keys_choice_int on line 60
+\l_keys_choice_int=\count118
+Defining \l_keys_choice_tl on line 61
+Defining \l_keys_choice_code_tl on line 62
+Defining \l_keys_key_tl on line 63
+Defining \l_keys_path_tl on line 64
+Defining \l_keys_property_tl on line 65
+Defining \l_keys_module_tl on line 66
+Defining \l_keys_nesting_seq on line 67
+Defining \l_keys_nesting_tl on line 68
+Defining \l_keys_no_value_bool on line 69
+\l_keys_value_toks=\toks44
+Defining \keys_bool_set:NN on line 86
+Defining \keys_choice_code_store:x on line 89
+Defining \keys_choice_find:n on line 94
+Defining \keys_choice_make: on line 103
+Defining \keys_choices_generate:n on line 117
+Defining \keys_choices_generate_aux:n on line 126
+Defining \keys_cmd_set:nn on line 131
+Defining \keys_cmd_set:nx on line 136
+Defining \keys_cmd_set_aux:n on line 140
+Defining \keys_default_set:n on line 143
+Defining \keys_default_set:V on line 144
+Defining \keys_define:nn on line 157
+Defining \keys_define_elt:n on line 161
+Defining \keys_define_elt:nn on line 165
+Defining \keys_define_elt_aux:nn on line 176
+Defining \keys_define_key:n on line 191
+Defining \keys_execute: on line 196
+Defining \keys_execute_unknown: on line 201
+Defining \keys_execute_aux:nn on line 209
+Defining \keys_if_value_requirement:nTF on line 217
+Defining \keys_meta_make:n on line 226
+Defining \keys_meta_make:x on line 227
+Defining \keys_property_find:n on line 235
+Defining \keys_property_find_aux:n on line 238
+Defining \keys_property_find_aux:w on line 239
+Defining \keys_property_new:nn on line 252
+Defining \keys_property_undefine:n on line 255
+Defining \keys_set:nn on line 268
+Defining \keys_set:nV on line 269
+Defining \keys_set:nv on line 269
+Defining \exp_args:Nnv on line 269
+Defining \keys_set_elt:n on line 273
+Defining \keys_set_elt:nn on line 277
+Defining \keys_set_elt_aux:nn on line 291
+Defining \keys_set_elt_aux: on line 303
+Defining \keys_show:nn on line 306
+Defining \keys_tmp:w on line 307
+Defining \keys_value_or_default:n on line 317
+Defining \keys_value_requirement:n on line 321
+Defining \keys_variable_set:NnNN on line 329
+Defining \keys_properties.bool_set:N on line 332
+Defining \keys_properties.bool_gset:N on line 335
+Defining \keys_properties.choice: on line 338
+Defining \keys_properties.choice_code:n on line 341
+Defining \keys_properties.choice_code:x on line 344
+Defining \keys_properties.code:n on line 347
+Defining \keys_properties.code:x on line 350
+Defining \keys_properties.default:n on line 353
+Defining \keys_properties.default:V on line 356
+Defining \keys_properties.dim_set:N on line 359
+Defining \keys_properties.dim_gset:N on line 362
+Defining \keys_properties.generate_choices:n on line 365
+Defining \keys_properties.int_set:N on line 368
+Defining \keys_properties.int_gset:N on line 371
+Defining \keys_properties.meta:n on line 374
+Defining \keys_properties.meta:x on line 377
+Defining \keys_properties.skip_set:N on line 380
+Defining \keys_properties.skip_gset:N on line 383
+Defining \keys_properties.tl_set:N on line 386
+Defining \keys_properties.tl_set_x:N on line 389
+Defining \keys_properties.tl_gset:N on line 392
+Defining \keys_properties.tl_gset_x:N on line 395
+Defining \keys_properties.value_forbidden: on line 398
+Defining \keys_properties.value_required: on line 401
+Defining \msg_text > LaTeX/key-choice-unknown:nn on line 402
+Defining \msg_text > LaTeX/key-initial-without-code:nn on line 406
+Defining \msg_text > LaTeX/key-unknown:nn on line 410
+Defining \msg_text > LaTeX/key-value-forbidden:nn on line 413
+Defining \msg_text > LaTeX/key-value-required:nn on line 417
+Defining \msg_text > LaTeX/key-no-property:nn on line 421
+Defining \msg_text > LaTeX/key-no-set-function:nn on line 424
+Defining \msg_text > LaTeX/key-property-unknown:nn on line 434
+Defining \msg_text > LaTeX/key-property-value-required:nn on line 437
+)
+(/usr/share/texmf-texlive/tex/latex/expl3/l3precom.sty
+Package: l3precom 2009/08/08 v1453 L3 Experimental precompilation module
+\c_cs_dump_stream=\write3
+Defining \g_cs_dump_name_tl on line 60
+Defining \g_cs_dump_seq on line 61
+Defining \cs_record_name:N on line 62
+Defining \cs_record_name:c on line 67
+Defining \cs_dump: on line 68
+Defining \cs_load_dump:n on line 94
+Defining \g_gen_sym_num on line 103
+Defining \g_ggen_sym_num on line 104
+Defining \cs_gen_sym:N on line 105
+Defining \cs_ggen_sym:N on line 110
+Defining \g_cs_trace_seq on line 115
+Defining \g_register_trace_seq on line 116
+Defining \dumpLaTeXstate on line 123
+)
+(/usr/share/texmf-texlive/tex/latex/expl3/l3calc.sty
+Package: l3calc 2009/05/28 v1362 L3 Experimental calc module
+Defining \l_calc_expression_tl on line 56
+Defining \g_calc_A_register on line 57
+Defining \l_calc_B_register on line 58
+Defining \l_calc_current_type_int on line 59
+\l_calc_current_type_int=\count119
+Defining \g_calc_A_int on line 60
+\g_calc_A_int=\count120
+Defining \l_calc_B_int on line 61
+\l_calc_B_int=\count121
+Defining \l_calc_C_int on line 62
+\l_calc_C_int=\count122
+Defining \g_calc_A_dim on line 63
+\g_calc_A_dim=\dimen128
+Defining \l_calc_B_dim on line 64
+\l_calc_B_dim=\dimen129
+Defining \l_calc_C_dim on line 65
+\l_calc_C_dim=\dimen130
+Defining \g_calc_A_skip on line 66
+\g_calc_A_skip=\skip51
+Defining \l_calc_B_skip on line 67
+\l_calc_B_skip=\skip52
+Defining \l_calc_C_skip on line 68
+\l_calc_C_skip=\skip53
+Defining \g_calc_A_muskip on line 69
+\g_calc_A_muskip=\muskip11
+Defining \l_calc_B_muskip on line 70
+\l_calc_B_muskip=\muskip12
+Defining \l_calc_C_muskip on line 71
+\l_calc_C_muskip=\muskip13
+Defining \calc_assign_generic:NNNNnn on line 72
+Defining \calc_int_set:Nn on line 87
+Defining \calc_int_gset:Nn on line 90
+Defining \calc_int_add:Nn on line 93
+Defining \calc_int_gadd:Nn on line 96
+Defining \calc_int_sub:Nn on line 99
+Defining \calc_int_gsub:Nn on line 102
+Defining \calc_dim_set:Nn on line 105
+Defining \calc_dim_gset:Nn on line 108
+Defining \calc_dim_add:Nn on line 111
+Defining \calc_dim_gadd:Nn on line 114
+Defining \calc_dim_sub:Nn on line 117
+Defining \calc_dim_gsub:Nn on line 120
+Defining \calc_skip_set:Nn on line 123
+Defining \calc_skip_gset:Nn on line 126
+Defining \calc_skip_add:Nn on line 129
+Defining \calc_skip_gadd:Nn on line 132
+Defining \calc_skip_sub:Nn on line 135
+Defining \calc_skip_gsub:Nn on line 138
+Defining \calc_muskip_set:Nn on line 141
+Defining \calc_muskip_gset:Nn on line 145
+Defining \calc_muskip_add:Nn on line 149
+Defining \calc_muskip_gadd:Nn on line 153
+Defining \calc_muskip_sub:Nn on line 157
+Defining \calc_muskip_gsub:Nn on line 161
+Defining \calc_pre_scan:N on line 165
+Defining \calc_open:w on line 178
+Defining \calc_init_B: on line 183
+Defining \calc_numeric: on line 184
+Defining \calc_close: on line 188
+Defining \calc_post_scan:N on line 192
+Defining \calc_multiply:N on line 211
+Defining \calc_divide:N on line 227
+Defining \calc_generic_add_or_subtract:N on line 243
+Defining \calc_add: on line 249
+Defining \calc_subtract: on line 250
+Defining \calc_add_A_to_B: on line 252
+Defining \calc_subtract_A_from_B: on line 261
+Defining \calc_generic_multiply_or_divide:N on line 270
+Defining \calc_multiply_B_by_A: on line 278
+Defining \calc_divide_B_by_A: on line 287
+Defining \calc_multiply: on line 296
+Defining \calc_divide: on line 298
+Defining \calc_calculate_box_size:nnn on line 300
+Defining \calc_ratio_divide:nn on line 345
+Defining \calc_real_evaluate:nn on line 346
+Defining \calc_real_multiply:n on line 360
+Defining \calc_real_divide:n on line 361
+Defining \calc_maxmin_generic:Nnn on line 368
+Defining \calc_maxmin_div_or_mul:NNnn on line 397
+Defining \calc_maxmin_multiply: on line 407
+Defining \calc_maxmin_divide: on line 409
+Defining \calc_error:N on line 411
+Defining \calc_maxof:nn on line 416
+Defining \calc_minof:nn on line 419
+Defining \calc_widthof:n on line 424
+Defining \calc_heightof:n on line 427
+Defining \calc_depthof:n on line 430
+Defining \calc_totalheightof:n on line 433
+Defining \calc_widthof_aux:n on line 436
+Defining \calc_widthof_auxi:n on line 439
+Defining \calc_depthof_aux:n on line 440
+Defining \calc_depthof_auxi:n on line 443
+Defining \calc_heightof_aux:n on line 444
+Defining \calc_heightof_auxi:n on line 447
+Defining \calc_totalheightof_aux:n on line 448
+Defining \calc_totalheightof_auxi:n on line 451
+Defining \calc_ratio:nn on line 452
+Defining \calc_real:n on line 454
+Defining \calc_chk_document_counter:nn on line 488
+)
+(/usr/share/texmf-texlive/tex/latex/expl3/l3xref.sty
+Package: l3xref 2009/05/28 v1362 L3 Experimental cross referencing
+\g_xref_all_curr_immediate_fields_prop=\toks45
+\g_xref_all_curr_deferred_fields_prop=\toks46
+Defining \xref_new:nn on line 58
+Defining \xref_deferred_new:nn on line 59
+Defining \xref_new_aux:nnn on line 60
+Defining \xref_get_value:nn on line 74
+Defining \xref_define_label:nn on line 88
+Defining \xref_define_label_aux:nn on line 93
+\xref_write=\write4
+)
+(/usr/share/texmf-texlive/tex/latex/expl3/l3file.sty
+Package: l3file 2009/05/28 v1352 L3 Experimental file loading
+Defining \g_file_record_clist on line 57
+Defining \g_file_record_full_clist on line 58
+Defining \l_file_search_path_clist on line 59
+\l_file_test_read_stream=\read1
+Defining \l_file_tmp_bool on line 61
+Defining \l_file_tmp_tl on line 62
+Defining \file_if_exist_p:n on line 71
+Defining \file_if_exist:nTF on line 71
+Defining \file_if_exist:nT on line 71
+Defining \file_if_exist:nF on line 71
+Defining \file_if_exist_path:n on line 91
+Defining \file_if_exist_aux:n on line 92
+Defining \file_add_path:nN on line 102
+Defining \file_add_path_search:nN on line 115
+Defining \file_add_path_aux:n on line 116
+Defining \file_input:n on line 122
+Defining \file_input_no_record:n on line 128
+Defining \file_input_no_check:n on line 135
+Defining \file_input_no_check_no_record:n on line 139
+Defining \file_list: on line 142
+Defining \file_list_full: on line 145
+Defining \file_list:N on line 151
+Defining \file_list_aux:n on line 154
+)
+Package: xfrac 2009/08/10 v0.2a Text fractions
+
+(/usr/share/texmf-texlive/tex/latex/base/textcomp.sty
+Package: textcomp 2005/09/27 v1.99g Standard LaTeX package
+Package textcomp Info: Sub-encoding information:
+(textcomp)               5 = only ISO-Adobe without \textcurrency
+(textcomp)               4 = 5 + \texteuro
+(textcomp)               3 = 4 + \textohm
+(textcomp)               2 = 3 + \textestimated + \textcurrency
+(textcomp)               1 = TS1 - \textcircled - \t
+(textcomp)               0 = TS1 (full)
+(textcomp)             Font families with sub-encoding setting implement
+(textcomp)             only a restricted character set as indicated.
+(textcomp)             Family '?' is the default used for unknown fonts.
+(textcomp)             See the documentation for details.
+Package textcomp Info: Setting ? sub-encoding to TS1/1 on input line 71.
+
+(/usr/share/texmf-texlive/tex/latex/base/ts1enc.def
+File: ts1enc.def 2001/06/05 v3.0e (jk/car/fm) Standard LaTeX file
+)
+LaTeX Info: Redefining \oldstylenums on input line 266.
+Package textcomp Info: Setting cmr sub-encoding to TS1/0 on input line 281.
+Package textcomp Info: Setting cmss sub-encoding to TS1/0 on input line 282.
+Package textcomp Info: Setting cmtt sub-encoding to TS1/0 on input line 283.
+Package textcomp Info: Setting cmvtt sub-encoding to TS1/0 on input line 284.
+Package textcomp Info: Setting cmbr sub-encoding to TS1/0 on input line 285.
+Package textcomp Info: Setting cmtl sub-encoding to TS1/0 on input line 286.
+Package textcomp Info: Setting ccr sub-encoding to TS1/0 on input line 287.
+Package textcomp Info: Setting ptm sub-encoding to TS1/4 on input line 288.
+Package textcomp Info: Setting pcr sub-encoding to TS1/4 on input line 289.
+Package textcomp Info: Setting phv sub-encoding to TS1/4 on input line 290.
+Package textcomp Info: Setting ppl sub-encoding to TS1/3 on input line 291.
+Package textcomp Info: Setting pag sub-encoding to TS1/4 on input line 292.
+Package textcomp Info: Setting pbk sub-encoding to TS1/4 on input line 293.
+Package textcomp Info: Setting pnc sub-encoding to TS1/4 on input line 294.
+Package textcomp Info: Setting pzc sub-encoding to TS1/4 on input line 295.
+Package textcomp Info: Setting bch sub-encoding to TS1/4 on input line 296.
+Package textcomp Info: Setting put sub-encoding to TS1/5 on input line 297.
+Package textcomp Info: Setting uag sub-encoding to TS1/5 on input line 298.
+Package textcomp Info: Setting ugq sub-encoding to TS1/5 on input line 299.
+Package textcomp Info: Setting ul8 sub-encoding to TS1/4 on input line 300.
+Package textcomp Info: Setting ul9 sub-encoding to TS1/4 on input line 301.
+Package textcomp Info: Setting augie sub-encoding to TS1/5 on input line 302.
+Package textcomp Info: Setting dayrom sub-encoding to TS1/3 on input line 303.
+Package textcomp Info: Setting dayroms sub-encoding to TS1/3 on input line 304.
+
+Package textcomp Info: Setting pxr sub-encoding to TS1/0 on input line 305.
+Package textcomp Info: Setting pxss sub-encoding to TS1/0 on input line 306.
+Package textcomp Info: Setting pxtt sub-encoding to TS1/0 on input line 307.
+Package textcomp Info: Setting txr sub-encoding to TS1/0 on input line 308.
+Package textcomp Info: Setting txss sub-encoding to TS1/0 on input line 309.
+Package textcomp Info: Setting txtt sub-encoding to TS1/0 on input line 310.
+Package textcomp Info: Setting futs sub-encoding to TS1/4 on input line 311.
+Package textcomp Info: Setting futx sub-encoding to TS1/4 on input line 312.
+Package textcomp Info: Setting futj sub-encoding to TS1/4 on input line 313.
+Package textcomp Info: Setting hlh sub-encoding to TS1/3 on input line 314.
+Package textcomp Info: Setting hls sub-encoding to TS1/3 on input line 315.
+Package textcomp Info: Setting hlst sub-encoding to TS1/3 on input line 316.
+Package textcomp Info: Setting hlct sub-encoding to TS1/5 on input line 317.
+Package textcomp Info: Setting hlx sub-encoding to TS1/5 on input line 318.
+Package textcomp Info: Setting hlce sub-encoding to TS1/5 on input line 319.
+Package textcomp Info: Setting hlcn sub-encoding to TS1/5 on input line 320.
+Package textcomp Info: Setting hlcw sub-encoding to TS1/5 on input line 321.
+Package textcomp Info: Setting hlcf sub-encoding to TS1/5 on input line 322.
+Package textcomp Info: Setting pplx sub-encoding to TS1/3 on input line 323.
+Package textcomp Info: Setting pplj sub-encoding to TS1/3 on input line 324.
+Package textcomp Info: Setting ptmx sub-encoding to TS1/4 on input line 325.
+Package textcomp Info: Setting ptmj sub-encoding to TS1/4 on input line 326.
+)
+(/usr/share/texmf-texlive/tex/latex/xpackages/xbase/template.sty
+Package: template 2009/08/15 v1461 template
+
+(/usr/share/texmf-texlive/tex/latex/xpackages/xbase/ldcsetup.sty
+Package: ldcsetup 2009/05/06 v1295 coding conventions and stuff
+\KV@toks=\toks47
+)
+(/usr/share/texmf-texlive/tex/latex/xpackages/xbase/xparse.sty
+Package: xparse 2009/08/31 v1497 Generic document command parser
+\c_xparse_shorthands_prop=\toks48
+\l_xparse_arg_toks=\toks49
+\l_xparse_args_toks=\toks50
+\l_xparse_environment_args_toks=\toks51
+Defining \l_xparse_error_bool on line 72
+Defining \l_xparse_function_tl on line 73
+\l_xparse_last_arg_tl=\toks52
+Defining \l_xparse_long_bool on line 75
+Defining \l_xparse_m_args_int on line 76
+\l_xparse_m_args_int=\count123
+Defining \l_xparse_m_only_bool on line 77
+Defining \l_xparse_mandatory_args_int on line 78
+\l_xparse_mandatory_args_int=\count124
+Defining \l_xparse_processor_bool on line 79
+Defining \l_xparse_processor_int on line 80
+\l_xparse_processor_int=\count125
+\l_xparse_signature_toks=\toks53
+Defining \l_xparse_tmp_tl on line 82
+Defining \l_xparse_total_args_int on line 83
+\l_xparse_total_args_int=\count126
+Defining \q_xparse_stop on line 84
+Defining \xparse_add_grabber_mandatory:N on line 93
+Defining \xparse_add_grabber_optional:N on line 106
+Defining \xparse_add_type_+:w on line 107
+Defining \xparse_add_type_>:w on line 114
+Defining \xparse_add_type_d:w on line 123
+Defining \xparse_add_type_D:w on line 126
+Defining \xparse_add_type_g:w on line 132
+Defining \xparse_add_type_G:w on line 135
+Defining \xparse_add_type_l:w on line 141
+Defining \xparse_add_type_m:w on line 146
+Defining \xparse_add_type_t:w on line 157
+Defining \xparse_add_type_u:w on line 163
+Defining \xparse_check_and_add:N on line 176
+Defining \xparse_count_mandatory:n on line 180
+Defining \xparse_count_mandatory:N on line 190
+Defining \xparse_count_mandatory_aux:N on line 197
+Defining \xparse_count_type_>:w on line 198
+Defining \xparse_count_type_+:w on line 201
+Defining \xparse_count_type_d:w on line 204
+Defining \xparse_count_type_D:w on line 207
+Defining \xparse_count_type_g:w on line 210
+Defining \xparse_count_type_G:w on line 213
+Defining \xparse_count_type_l:w on line 216
+Defining \xparse_count_type_m:w on line 220
+Defining \xparse_count_type_t:w on line 224
+Defining \xparse_count_type_u:w on line 227
+Defining \xparse_declare_cmd:Nnn on line 239
+Defining \xparse_declare_cmd:cnn on line 240
+Defining \xparse_declare_cmd_all_m:Nn on line 244
+Defining \xparse_declare_cmd_mixed:Nn on line 256
+Defining \xparse_declare_cmd_implementation:nNn on line 260
+Defining \xparse_declare_cmd_interface:Nnn on line 270
+Defining \xparse_declare_cmd_interface_all_m:Nn on line 275
+Defining \xparse_declare_cmd_interface_mixed:Nn on line 288
+Defining \xparse_declare_env:nnnn on line 310
+Defining \xparse_flush_m_args: on line 324
+Defining \xparse_if_no_value:nTF on line 331
+Defining \xparse_if_no_value:nT on line 331
+Defining \xparse_if_no_value:nF on line 331
+Defining \xparse_prepare_signature:n on line 340
+Defining \xparse_prepare_signature:N on line 344
+Defining \xparse_prepare_signature_aux:N on line 359
+Defining \xparse_process_arg:n on line 366
+Defining \xparse_add_arg:n on line 378
+Defining \xparse_add_arg_aux:n on line 390
+Defining \xparse_add_arg_aux:V on line 391
+Defining \xparse_grab_aux:w on line 392
+Defining \xparse_grab_D:w on line 393
+Defining \xparse_grab_D_long:w on line 397
+Defining \xparse_grab_D_trailing:w on line 401
+Defining \xparse_grab_D_long_trailing:w on line 404
+Defining \xparse_grab_G:w on line 420
+Defining \xparse_grab_G_long:w on line 423
+Defining \xparse_grab_G_trailing:w on line 426
+Defining \xparse_grab_G_long_trailing:w on line 429
+Defining \xparse_grab_l:w on line 444
+Defining \xparse_grab_l_long:w on line 447
+Defining \xparse_grab_l_aux:nN on line 456
+Defining \xparse_grab_m:w on line 457
+Defining \xparse_grab_m_long:w on line 464
+Defining \xparse_grab_m_1:w on line 471
+Defining \xparse_grab_m_2:w on line 478
+Defining \xparse_grab_m_3:w on line 485
+Defining \xparse_grab_m_4:w on line 492
+Defining \xparse_grab_m_5:w on line 499
+Defining \xparse_grab_m_6:w on line 508
+Defining \xparse_grab_m_7:w on line 517
+Defining \xparse_grab_m_8:w on line 526
+Defining \xparse_grab_t:w on line 535
+Defining \xparse_grab_t_long:w on line 538
+Defining \xparse_grab_t_trailing:w on line 541
+Defining \xparse_grab_t_long_trailing:w on line 544
+Defining \xparse_grab_t_aux:NnNn on line 558
+Defining \xparse_grab_u:w on line 559
+Defining \xparse_grab_u_long:w on line 562
+Defining \xparse_grab_u_aux:NnN on line 571
+Defining \xparse_process_to_str:n on line 576
+Defining \xparse_process_comma_split:n on line 583
+Defining \xparse_process_comma_split_aux:w on line 584
+Defining \xparse_exp_add_type_d:w on line 587
+Defining \xparse_exp_add_type_D:w on line 590
+Defining \xparse_exp_add_type_l:w on line 613
+Defining \xparse_exp_add_type_m:w on line 626
+Defining \xparse_exp_add_type_t:w on line 640
+Defining \xparse_exp_add_type_u:w on line 659
+Defining \xparse_exp_check_and_add:N on line 681
+Defining \xparse_exp_declare_cmd:Nnn on line 692
+Defining \xparse_exp_declare_cmd_all_m:Nn on line 701
+Defining \xparse_exp_declare_cmd_mixed:Nn on line 708
+Defining \xparse_exp_declare_cmd_mixed_aux:Nn on line 720
+Defining \xparse_exp_prepare_function:n on line 738
+Defining \xparse_exp_prepare_function_aux:n on line 750
+Defining \xparse_exp_prepare_function:N on line 757
+Defining \xparse_exp_prepare_function_long:N on line 768
+Defining \xparse_exp_prepare_function_short:N on line 783
+Defining \xparse_exp_set:cpx on line 784
+Defining \msg_text > xparse/command-already-defined:nn on line 785
+Defining \msg_text > xparse/command-not-yet-defined:nn on line 792
+Defining \msg_text > xparse/environment-already-defined:nn on line 799
+Defining \msg_text > xparse/environment-not-yet-defined:nn on line 802
+Defining \msg_text > xparse/expandable-ending-optional:nn on line 805
+Defining \msg_text > xparse/grouped-in-expandable:nn on line 810
+Defining \msg_text > xparse/inconsistent-long:nn on line 816
+Defining \msg_text > xparse/processor-in-expandable:nn on line 821
+Defining \msg_text > xparse/unknown-argument-type:nn on line 827
+Defining \BooleanFalse on line 830
+Defining \BooleanTrue on line 831
+Defining \IfBooleanTF on line 885
+Defining \IfBooleanT on line 886
+Defining \IfBooleanF on line 887
+Defining \IfNoValueF on line 888
+Defining \IfNoValueT on line 889
+Defining \IfNoValueTF on line 890
+)
+\l_TP_KV_assignments_toks=\toks54
+\l_TP_default_assignments_toks=\toks55
+Defining \TP_declare_instance:Nnn on line 77
+Defining \TP_declare_instance:cnn on line 78
+Defining \UseTemplate on line 80
+Defining \DoParameterAssignments on line 85
+Defining \TP_pop_and_execute_assignments:nw on line 90
+\g_TP_assignments_stack_toks=\toks56
+Defining \TP_push_assignments:n on line 95
+Defining \TP_push_assignments: on line 98
+Defining \DeclareTemplateType on line 104
+Defining \TP_get_csname_prefix:n on line 110
+Defining \TP_get_arg_count:n on line 115
+Defining \DeclareTemplate on line 116
+Defining \TP_templdecl_process_KV:nn on line 148
+Defining \TP_templdecl_parse_KV:N on line 153
+Defining \l_TP_global_assignment_bool on line 154
+Defining \TP_use_arg_type_+:w on line 155
+Defining \TP_use_arg_type_l:w on line 161
+Defining \TP_use_arg_type_L:w on line 170
+Defining \TP_use_arg_type_c:w on line 174
+Defining \TP_use_arg_type_C:w on line 183
+Defining \TP_use_arg_type_n:w on line 188
+Defining \TP_use_arg_type_f:w on line 192
+Defining \TP_templdecl_parse_f_arg:nw on line 196
+Defining \TP_use_arg_type_b:w on line 199
+Defining \TP_templdecl_setup_b_key:n on line 203
+Defining \TP_templdecl_eval_b_key_value:nn on line 208
+Defining \TP_use_arg_type_s:w on line 216
+Defining \TP_templdecl_setup_s_key:n on line 220
+Defining \TP_use_arg_type_i:w on line 224
+Defining \TP_templdecl_setup_i_key:nnn on line 227
+Defining \TP_templdecl_eval_i_key_value:Nnn on line 233
+Defining \TP_use_arg_type_x:w on line 257
+Defining \TP_templdecl_setup_x_key:n on line 261
+Defining \TP_use_arg_type_g:w on line 265
+Defining \TP_templdecl_setup_g_key:n on line 269
+Defining \TP_templdecl_define_key:n on line 271
+Defining \TP_templdecl_finish_key_setup:nw on line 294
+Defining \TP_templdecl_finish_key_setup_with_default:nnw on line 298
+Defining \c_TP_true_tl on line 320
+Defining \TP_templdecl_eval_s_key_value:nnn on line 321
+Defining \TP_templdecl_setup_register_key:Nn on line 327
+Defining \DelayEvaluation on line 367
+Defining \MultiSelection on line 368
+Defining \TP_templdecl_remove_from_default_assignments:N on line 369
+Defining \TP_templdecl_setup_f_key:Nn on line 375
+Defining \TP_templdecl_define_function:NNn on line 379
+Defining \TP_templdecl_setup_n_key:N on line 385
+Defining \TP_templdecl_multiselection:nnnn on line 403
+Defining \DeclareInstance on line 412
+Defining \DeclareCollectionInstance on line 413
+Defining \UseCollection on line 416
+Defining \TP_let_instance:Nnn on line 420
+Defining \UseInstance on line 429
+Defining \TP_templdecl_declare_tmp_instance:nnnn on line 435
+Defining \ShowTemplate on line 437
+Defining \ShowCollectionInstance on line 453
+Defining \ShowInstance on line 457
+Defining \TP_templdecl_setup_fakeregister_key:NNn on line 458
+\g_TP_multiselection_toks=\toks57
+Defining \TP_multiselection_add:nnnnnn on line 487
+Defining \TP_multiselection_add_or_case:n on line 503
+Defining \TP_multiselection_add_or_case:o on line 508
+Defining \IfExistsInstanceTF on line 509
+Defining \DeclareRestrictedTemplate on line 519
+Defining \TP_instdecl_generate_assignments:nn on line 532
+Defining \TP_instdecl_add_default_recurse:nn on line 547
+Defining \TP_split_finite_skip_value:nnNN on line 558
+)
+Defining \g_cm_recommended_bool on line 34
+Defining \l_xfrac_temp_box on line 41
+\l_xfrac_temp_box=\box31
+Defining \l_xfrac_slash_box on line 42
+\l_xfrac_slash_box=\box32
+)
+(/usr/share/texmf-texlive/tex/latex/listings/lstlang1.sty
+File: lstlang1.sty 2004/09/05 1.3 listings language file
+) (./rapport.aux)
+\openout1 = `rapport.aux'.
+
+LaTeX Font Info:    Checking defaults for OML/cmm/m/it on input line 35.
+LaTeX Font Info:    ... okay on input line 35.
+LaTeX Font Info:    Checking defaults for T1/cmr/m/n on input line 35.
+LaTeX Font Info:    ... okay on input line 35.
+LaTeX Font Info:    Checking defaults for OT1/cmr/m/n on input line 35.
+LaTeX Font Info:    ... okay on input line 35.
+LaTeX Font Info:    Checking defaults for OMS/cmsy/m/n on input line 35.
+LaTeX Font Info:    ... okay on input line 35.
+LaTeX Font Info:    Checking defaults for OMX/cmex/m/n on input line 35.
+LaTeX Font Info:    ... okay on input line 35.
+LaTeX Font Info:    Checking defaults for U/cmr/m/n on input line 35.
+LaTeX Font Info:    ... okay on input line 35.
+LaTeX Font Info:    Checking defaults for TS1/cmr/m/n on input line 35.
+LaTeX Font Info:    Try loading font information for TS1+cmr on input line 35.
+
+(/usr/share/texmf-texlive/tex/latex/base/ts1cmr.fd
+File: ts1cmr.fd 1999/05/25 v2.5h Standard LaTeX font definitions
+)
+LaTeX Font Info:    ... okay on input line 35.
+\c@lstlisting=\count127
+
+*geometry auto-detecting driver*
+*geometry detected driver: dvips*
+-------------------- Geometry parameters
+paper: a4paper
+landscape: --
+twocolumn: --
+twoside: --
+asymmetric: --
+h-parts: 28.45274pt, 540.60239pt, 28.45274pt
+v-parts: 56.9055pt, 731.23584pt, 56.9055pt
+hmarginratio: --
+vmarginratio: --
+lines: --
+heightrounded: --
+bindingoffset: 0.0pt
+truedimen: --
+includehead: --
+includefoot: --
+includemp: --
+driver: dvips
+-------------------- Page layout dimensions and switches
+\paperwidth  597.50787pt
+\paperheight 845.04684pt
+\textwidth  540.60239pt
+\textheight 731.23584pt
+\oddsidemargin  -43.81725pt
+\evensidemargin -43.81725pt
+\topmargin  -52.36449pt
+\headheight 12.0pt
+\headsep    25.0pt
+\footskip   30.0pt
+\marginparwidth 35.0pt
+\marginparsep   10.0pt
+\columnsep  10.0pt
+\skip\footins  10.8pt plus 4.0pt minus 2.0pt
+\hoffset 0.0pt
+\voffset 0.0pt
+\mag 1000
+
+(1in=72.27pt, 1cm=28.45pt)
+-----------------------
+LaTeX Font Info:    Try loading font information for U+msa on input line 42.
+(/usr/share/texmf-texlive/tex/latex/amsfonts/umsa.fd
+File: umsa.fd 2009/06/22 v3.00 AMS symbols A
+)
+LaTeX Font Info:    Try loading font information for U+msb on input line 42.
+
+(/usr/share/texmf-texlive/tex/latex/amsfonts/umsb.fd
+File: umsb.fd 2009/06/22 v3.00 AMS symbols B
+)
+
+LaTeX Warning: `h' float specifier changed to `ht'.
+
+[1
+
+]
+
+LaTeX Warning: `!h' float specifier changed to `!ht'.
+
+[2]
+LaTeX Font Info:    Calculating math sizes for size <7.66495> on input line 241
+.
+
+
+LaTeX Font Warning: Font shape `OT1/cmr/m/n' in size <3.83247> not available
+(Font)              size <5> substituted on input line 241.
+
+
+LaTeX Font Warning: Font shape `OML/cmm/m/it' in size <3.83247> not available
+(Font)              size <5> substituted on input line 241.
+
+
+LaTeX Font Warning: Font shape `OMS/cmsy/m/n' in size <3.83247> not available
+(Font)              size <5> substituted on input line 241.
+
+[3]
+
+LaTeX Warning: Reference `fig:ode_comparison' on page 4 undefined on input line
+ 350.
+
+[4] (./rapport.aux)
+
+LaTeX Font Warning: Size substitutions with differences
+(Font)              up to 2.90001pt have occurred.
+
+
+LaTeX Warning: There were undefined references.
+
+ ) 
+Here is how much of TeX's memory you used:
+ 7600 strings out of 495062
+ 117931 string characters out of 1182644
+ 195834 words of memory out of 3000000
+ 10653 multiletter control sequences out of 15000+50000
+ 21980 words of font info for 89 fonts, out of 3000000 for 9000
+ 28 hyphenation exceptions out of 8191
+ 37i,16n,40p,230b,280s stack positions out of 5000i,500n,10000p,200000b,50000s
+
+Output written on rapport.dvi (4 pages, 19104 bytes).
diff --git a/rapport.tex b/rapport.tex
new file mode 100644 (file)
index 0000000..daab39c
--- /dev/null
@@ -0,0 +1,356 @@
+% Fag: Numerisk matematikk 
+% Project 1
+% Utført av: Bjørn, Mats og Edvard
+
+\documentclass[12pt, a4paper]{article}
+\usepackage[latin1]{inputenc}
+\usepackage{listings}
+\usepackage{graphicx}
+\usepackage{color}
+\usepackage{amssymb, amsmath}
+\setcounter{secnumdepth}{0}
+\setlength{\textheight}{240mm} 
+\setlength{\textwidth}{150mm}  
+\usepackage[hmargin=1cm,vmargin=2cm]{geometry}
+\usepackage{xfrac}
+
+\definecolor{orange}{rgb}{1,0.5,0}
+
+\lstset{ %
+  language=Matlab,                % the language of the code
+  basicstyle=\footnotesize,       % the size of the fonts that are used for the code
+  numbers=left,                   % where to put the line-numbers
+  numberstyle=\footnotesize,      % the size of the fonts that are used for the line-numbers
+  stepnumber=1,                   % the step between two line-numbers. If it's 1, each line 
+                                  % will be numbered
+  numbersep=5pt,                  % how far the line-numbers are from the code
+  backgroundcolor=\color{white},  % choose the background color. You must add \usepackage{color}
+  tabsize=4,                      % sets default tabsize to 2 spaces
+  captionpos=b,                   % sets the caption-position to bottom
+  breaklines=true,                % sets automatic line breaking
+  keywordstyle=\color{orange}\bfseries,
+  commentstyle=\color[rgb]{0,0,0.9}
+}
+
+\begin{document}
+
+\title{Semester Project 2 in TMA4215}
+\author{
+       Candidate numbers: 10012, 10023, 10056
+}
+
+\maketitle
+
+\abstract{
+In this project we look at quadratic splines for interpolating a set of data
+points. We also use the Romberg method for numerical evaluation of an integral.
+In the end we use a mid-point Runge-Kutta method for solving a differential
+equation.
+}
+
+\section{Part 1}
+\subsection{Problem 1}
+\subsubsection{a)}
+Since we are going to make a quadratic spline, we know that the derivative of
+ths spline will be a function consisting of interconnected line segments. If we
+call the spline $s$ and write $s_i$ for the value of the spline in data point
+$i$, we know that
+\begin{equation}
+  \label{eq:sdiv_linear}
+  s'(x) = s_i' + \frac{s_{i+1}' - s_i'}{x_{i+1} - x_i} \left(x-x_i\right).
+\end{equation}
+Integrating gives
+\begin{equation}
+  \label{eq:sdiv_integrated}
+  s(x) = s_i'x + \frac{s_{i+1}' - s_i'}{2\left( x_{i+1} - x_i \right)} \left(x-x_i\right)^2 + C_i,
+\end{equation}
+and evaluating in the point $x_i$ gives
+\begin{equation}
+  \label{eq:sdiv_evaluated}
+  s(x_i) = s_i'x_i + C_i = f_i.
+\end{equation}
+The value of our spline in the data points, $s_i$ should be equal to the
+function value in the data points, $f_i$. Using \eqref{eq:sdiv_integrated} and
+\eqref{eq:sdiv_evaluated} to write the difference between two succeeding points
+we get
+\begin{equation}
+  \label{eq:s_difference}
+  s_{i+1} - s_i = \frac{1}{2} s_i' \left( x_{i+1} - x_i \right) + \frac{1}{2}
+    s_{i+1}' \left(x_{i+1} - x_i\right).
+\end{equation}
+Moving the derivatives to the left side and simplifying leads to the following
+set of equations:
+\begin{equation}
+  \label{eq:sder_sum}
+  s_i' + s_{i+1}' = \frac{2\left(f_{i+1} - f_i\right)}{x_{i+1} - x_i}.
+\end{equation}
+Together with the extra condition that $s'(x_0) = 0$, we can write this as the
+matrix equation
+\begin{equation}
+  \label{eq:s_matrix}
+  \begin{bmatrix}
+1 & 0 & 0 & \hdots & 0 \\
+1 & 1 & 0 &        &  \\
+0 & 1 & 1 &        &  \\
+\vdots & & & \ddots &  \\
+0 & & & 1 & 1
+  \end{bmatrix}
+  \begin{bmatrix}
+s_0' \\
+s_1' \\
+s_2' \\
+\vdots \\
+s_n'
+  \end{bmatrix}
+  =
+  \begin{bmatrix}
+0 \\
+\frac{2\left(f_1 - f_0\right)}{x_1 - x_0} \\
+\frac{2\left(f_2 - f_1\right)}{x_2 - x_1} \\
+\frac{2\left(f_3 - f_2\right)}{x_3 - x_2} \\
+\vdots \\
+\frac{2\left(f_n - f_{n-1}\right)}{x_n - x_{n-1}}
+  \end{bmatrix}
+\end{equation}
+Inserting the interpolation data we obtain the derivatives of our spline, and
+table \ref{tab:data} shows what our spline has to satisfy.
+\begin{table}[h]
+  \caption{\sf Data determining our spline polynomials.}
+  \begin{center}
+    \begin{tabular}{c c c}
+      \hline
+      $x$ & $s(x)$ & $s'(x)$ \\
+      \hline
+      0 & 1 & 0 \\
+      0.5 & 2 & 4 \\
+      1 & 0.5 & -10 \\
+      \hline
+    \end{tabular}
+  \end{center}
+  \label{tab:data}
+\end{table}
+From table \ref{tab:data}, we easily derive the two quadratic polynomials:
+\begin{equation}
+  \label{eq:poly}
+  \begin{split}
+  p_1 &= 4x^2 + 1 \\
+  p_2 &= -14x^2 + 18x - \frac{7}{2}
+  \end{split}
+\end{equation}
+
+\subsubsection{b)}
+To find an error bound we define
+\begin{equation}
+  \label{eq:g_def}
+  g(x) = f(x) - s(x) - \frac{x-x_{j-1}}{\bar{x} - x_{j-1}}\left( f(\bar{x}) -
+    s(\bar{x}) \right)
+\end{equation}
+on the interval $I_j = [x_{j-1}, x_j]$ where $\bar{x} \in I_j$. Since this
+function is $0$ in both $x_{j-1}$ and $\bar{x}$, we know that $\exists \xi \in
+\left( x_{j-1}, \bar{x} \right)$ such that
+\begin{equation}
+  \label{eq:g_der_zero}
+  0 = g'(\xi) = f'(\xi) - s'(\xi) - \left(f(\bar{x}) - s(\bar{x})\right)
+    \frac{1}{\bar{x} - x_{j-i}},
+\end{equation}
+which gives
+\begin{equation}
+  \label{eq:xbar_error}
+  \left|f(\bar{x}) - s(\bar{x})\right| = \left(\bar{x} - x_{j-1}\right)
+    \left|f'(\xi) - s'(\xi)\right| \leq h\left(\|f'\|_{\infty} +
+    \max_i|s_i'|\right).
+\end{equation}
+If we choose $i$ such that $|s_i'| = \max_l|s_l'|$, we derive an upper bound for
+$|s_i'|$ using equation \eqref{eq:s_difference} by looking at
+\begin{equation}
+  \label{eq:2s_bound}
+  \begin{split}
+  2s_{i+1}' \leq s_i' + s_{i+1}' &= \frac{2(f_{i+1} - f_i)}{h} \\
+                                 &= 2f'(\eta) \\
+                                 &\leq 2\|f'\|_{\infty}
+  \end{split}
+\end{equation}
+which simplifies to
+\begin{equation}
+  \label{eq:si_bound}
+  \begin{split}
+  |s_i'| &= |2f'(\eta) - s_{i+1}'| \\
+         &\leq 2|f'(\eta)| + |s_{i+1}'| \\
+         &\leq 3|f'(\eta)| \leq 3\|f'\|_{\infty}
+  \end{split}
+\end{equation}
+Inserting into equation \eqref{eq:xbar_error} gives an upper bound for the error
+\begin{equation}
+  \label{eq:error_bound}
+  \left|f(x) - s(x)\right| \leq 4h \|f'\|_{\infty}, \forall x \in
+    [a,b].
+\end{equation}
+
+\subsection{Problem 2}
+\subsubsection{a)}
+In this problem we are looking at how to use the Romberg method to evaluate the
+following integral:
+\begin{equation}
+  \label{eq:integral}
+  \varphi = \int{0}{\varphi} \frac{\mathrm{d}\theta}{\sqrt{1 - k^2
+    \sin{\theta}^2}}.
+\end{equation}
+
+Our code for integrating functions using the Romberg method is shown in the file
+\emph{romberg.m}. Table \ref{tab:romberg_conv} shows the convergence of the
+Romberg method applied to the elliptic integral when $L$ increases.
+\begin{table}[h!]
+  \caption{\sf Showing the convergence for the Romberg method over the interval
+$[0, 5]$ with $k = 0.5$ as $L$ increases.}
+  \begin{center}
+    \begin{tabular}{c l c}
+      \hline
+      $L$ & Romberg \\
+      \hline
+      1 & 5.34 \\
+      2 & 5.27 \\
+      3 & 5.40 \\
+      5 & 5.3879 \\
+      7 & 5.3878724 \\
+      10 & 5.38787242753557 \\
+      \hline
+      quad() & 5.38787242753557 \\
+      \hline
+    \end{tabular}
+  \end{center}
+  \label{tab:romberg_conv}
+\end{table}
+
+For the complete elliptic integral of the first kind, we compare the error in
+the Romberg method with the error in the trapezoid method. We observe that as
+$L$ increases, the error in the trapezoid method decreases much faster than the
+error in the Romberg method. For example with $k = 0.5$ and $L = 4$ the error in
+the trapezoid method is $2.2e-16$ while the error in the Romberg method is
+$1.5e-06$.
+
+The small error in the trapezoid method can be explained using the
+Euler-Maclaurin formula which gives the error in terms of the derivatives of the
+function in the end points:
+\begin{equation}
+  \label{eq:euler_maclaurin}
+  S - I = \sum_{k=2}^p \frac{B_k}{k!} \left( f^{(k-1)}(n) - f^{(k-1)}(0) \right)
+    + R.
+\end{equation}
+One can easily derive that the all the odd derivatives of the function we are
+integrating, \eqref{eq:integral}, are periodic and equal to zero in
+$n \sfrac{\pi}{2}$. This, combined with the fact that all the odd Bernoulli
+numbers are zero except for $B_1$, makes the error in \eqref{eq:euler_maclaurin}
+disappear Q=EQE=WQR=)WQR)=.
+
+\subsubsection{b)}
+The file \emph{romberg.m} shows the use of the given estimate for the error.
+Although the accuracy increases when we decrease the given tolerance value, it
+does not match the number of correct decimals. This is shown in table
+\ref{tab:tol_test} where we have integrated with $k = 0.5$ from $0$ to $5$. 
+\begin{table}[h!]
+  \caption{\sf Estimated integral for decreasing values of tolerance limit.}
+  \begin{center}
+    \begin{tabular}{c l c}
+      \hline
+      Tolerance & Romberg \\
+      \hline
+      $10^{-1}$  & 5.28 \\
+      $10^{-3}$  & 5.39 \\
+      $10^{-5}$  & 5.38786 \\
+      $10^{-7}$  & 5.38786 \\
+      $10^{-9}$  & 5.38787243 \\
+      $10^{-11}$ & 5.38787242753 \\
+      \hline
+      quad() & 5.38787242753557 \\
+      \hline
+    \end{tabular}
+  \end{center}
+  \label{tab:tol_test}
+\end{table}
+
+\subsubsection{c)}
+The Octave file \emph{newton.m} shows an implementation of Newton's method to
+solve $\varphi = am(u,k)$ which is the inverse of the elliptic integral. As the
+Newton method is used to find the zero, we stop when the function is no further
+away from zero than the given tolerance.
+
+We ran this method on 100 values between -1 and 1 and compared it with the
+Octave function \emph{ellipj}. This gave an error of $C\cdot TOL$ where $C$ had
+a maximum value of 5.
+
+When choosing larger values for $|u|$ our code does not work as well. We have to
+increase our tolerance to get it to return something at all, and the error in
+the results varies a lot.
+
+\subsection{Problem 3}
+\subsubsection{a)}
+The mid-point Runge-Kutta method is implemented in the Octave file
+\emph{PENISPENIS.m}. This gives the relation between two succeeding function
+values on the following form:
+\begin{equation}
+  \label{eq:runge_kutta}
+  \mathbf{m}_{n+1} - \mathbf{m}_n = hf \left(t + \frac{1}{2} h, \frac{1}{2}
+(\mathbf{m}_{n+1} + \mathbf{m}_n) \right).
+\end{equation}
+Since this is an implicit method we use Newtons method to estimate $y_{n+1}$ for
+each step of Runge-Kutta. Rearranging so that we have something that can be
+solved by Newton gives
+\begin{equation}
+  \label{eq:runge_kutta_newton}
+  F(\mathbf{m}_{n+1}) = \mathbf{m}_{n+1} - \mathbf{m}_n - h
+\mathbf{\bar{m}}_{n+1}
+    \times \left(T^{-1} \mathbf{\bar{m}}_{n+1}\right) = 0,
+\end{equation}
+where $\mathbf{\bar{m}}_{n+1} = \frac{1}{2} \left(\mathbf{m}_{n} +
+\mathbf{m}_{n+1}\right)$.
+
+While $\mathbf{m}_n$ is a known constant calculated earlier, the
+$\mathbf{m}_{n+1}$ is a three-dimensional vector of unknowns. We need the
+Jacobian to use the Newton method:
+\begin{equation}
+  \label{eq:jacobian}
+  J(\mathbf{x}) =
+  \begin{bmatrix}
+1 &
+\frac{h}{2} \left(\frac{1}{I_2} - \frac{1}{I_3}\right) x_3 &
+\frac{h}{2} \left(\frac{1}{I_2} - \frac{1}{I_3}\right) x_2 \\
+\frac{h}{2} \left(\frac{1}{I_3} - \frac{1}{I_1}\right) x_3 &
+1 &
+\frac{h}{2} \left(\frac{1}{I_3} - \frac{1}{I_1}\right) x_1 \\
+\frac{h}{2} \left(\frac{1}{I_1} - \frac{1}{I_2}\right) x_2 &
+\frac{h}{2} \left(\frac{1}{I_1} - \frac{1}{I_2}\right) x_1 &
+1 \\
+  \end{bmatrix}.
+\end{equation}
+The Newton iteration is now given by
+\begin{equation}
+  \mathbf{m}_{n+1}^{k+1} = \mathbf{m}_{n+1}^k -
+    \frac{F(\mathbf{m}_{n+1}^k)}{J(\mathbf{\bar{m}}_{n+1}^k)},
+\end{equation}
+where we iterate over $k$ until we are pleased with our new approximation for
+$\mathbf{m}_{n+1}$.
+
+To find the order of our method we consider our means of solving the ODE with
+step sizes $\frac{1}{2^k}$ where $k = 1, 2, ..., 5$. For each $k$ we compute the
+values of our Runge-Kutta method and the provided elliptic method in the
+interval zero to one. The values of the Runge-Kutta method is subtracted from
+the elliptic method, and the norms of these give a sequence of errors. ***. The
+elements in the sequence are now on the form $C (\frac{1}{2^k})^p$ where $p$ is
+the order of the method. We now divide the first element by the second, the
+second by the third and so on.  Taking the base-two-logarithm of this gives us
+$p$. This is found numerically to be $2$ in the Octave function
+\emph{freerigid.m}.
+
+HER MÅ VI SETTE INN EN TABELL SOM SAMMENLIGNER LØSNINGENE
+
+\subsubsection{b)}
+We chose to use the Octave-forge function \emph{ode45} as a comparison against
+the other methods. With the time interval $[0, 50]$, the Octave script
+\emph{rigidbodysimulator.m} produced the plot showed in figure
+\ref{fig:ode_comparison}. PLX INSERT IGUURE. EXPLAIN ANALYZE. We observe that
+the \emph{ode45}-method, which is a Runge-Kutta-method of order (4, 5), has an
+error that often grows faster than the others.
+
+\subsubsection{c)}
+
+\end{document}
diff --git a/rigidbodysimulator.m b/rigidbodysimulator.m
new file mode 100644 (file)
index 0000000..4885802
--- /dev/null
@@ -0,0 +1,33 @@
+start = [1;1;1];
+interval = [0, 30];
+h = 1;
+tspan = [0:h:30];
+T = diag([3, 4, 5]);
+f = @(t,x) cross(x,T\x);
+
+midpoint = [];
+midpoint(1,:) = start;
+elliptic = [];
+elliptic(1,:) = start;
+ode = [];
+ode(1,:) = start;
+t = 0;
+i = 2;
+while t < interval(2)
+    midpoint(i,:) = newtfree(midpoint(i-1,:)', h, T);
+    elliptic(i,:) = freewR(h, T(1,1), T(2,2), T(3,3), elliptic(i-1,1), elliptic(i-1,2), elliptic(i-1,3));
+    t = t + h;
+    i = i + 1;
+end
+ode = ode45(f, interval, start');
+
+clf;
+hold off;
+figure(1);
+hold on;
+plot3(midpoint(:,1), midpoint(:,2), midpoint(:,3), 'r-');
+hold on;
+plot3(elliptic(:,1), elliptic(:,2), elliptic(:,3), 'b-');
+hold on;
+plot3(ode.y(:,1), ode.y(:,2), ode.y(:,3), 'g-');
+
diff --git a/romberg.m b/romberg.m
new file mode 100644 (file)
index 0000000..3d903d2
--- /dev/null
+++ b/romberg.m
@@ -0,0 +1,30 @@
+function integral = romberg(k, a, b, tol)
+
+f = @(x) 1/sqrt(1 - k^2 * sin(x)^2);
+
+R(1,1) = 0.5 * (b - a) * (f(a) + f(b));
+E(1,1) = 0;
+
+row = 2;
+while 1
+       hn = (b - a)/(2.0^(row-1));
+       R(row,1) = 0.5 * R(row-1,1);
+       s = 0;
+       for k = [1:2^(row-2)]
+               s += f(a + (2*k-1)*hn);
+       end
+       R(row,1) += hn * s;
+       E(row,1) = 0;
+
+       for col = [2:row]
+               R(row,col) = ((4^(col-1))*R(row,col-1) - R(row-1,col-1)) / (4**(col-1) - 1);
+               %est = R(row,col) - R(row,col-1);
+               est = (1.0/(4.0^col - 1)) * (R(row,col-1) - R(row-1,col-1));
+               E(row,col) = abs(est);
+               if abs(est) < tol
+                       integral = R(row,col);
+                       return
+               end
+       end
+       row++;
+end
diff --git a/romberg.py b/romberg.py
new file mode 100644 (file)
index 0000000..51e3d97
--- /dev/null
@@ -0,0 +1,26 @@
+import numpy as np
+
+def romberg(f, a, b, tol):
+
+    R = np.zeros((tol, tol))
+
+    R[0][0] = 0.5 * (b - a) * (f(a) + f(b))
+    for i in xrange(1, tol):
+        hn = float(b - a)/float(2**i)
+        R[i][0] =  0.5 * R[i-1][0]
+        R[i][0] += hn * sum([f(a + (2*k-1)*hn) for k in xrange(1, 2**(i-1)+1)])
+        print hn
+        print sum([f(a + (2*k-1)*hn) for k in xrange(1, 2**(i-1)+1)])
+
+    for i in xrange(1, tol):
+        for row in xrange(0, tol - i):
+            R[row][i] = ((4**i)*R[row+1][i-1] - R[row][i-1]) / (4**i - 1)
+
+    return R
+
+def main():
+
+    print romberg(lambda x: np.sqrt(x), 0, 5, 6)
+
+if __name__ == '__main__':
+    main()
diff --git a/rombergold.m b/rombergold.m
new file mode 100644 (file)
index 0000000..4b3a26d
--- /dev/null
@@ -0,0 +1,24 @@
+function [rll, rl0] = rombergold(f, a, b, L)
+
+R(1,1) = 0.5 * (b - a) * (f(a) + f(b));
+
+for i = [2:L]
+       hn = (b - a)/(2.0^(i-1));
+       R(i,1) = 0.5 * R(i-1,1);
+       s = 0;
+       for k = [1:2^(i-2)]
+               s += f(a + (2*k-1)*hn);
+       end
+       R(i,1) += hn * s;
+end
+
+for i = [2:L]
+       for row = [i:L]
+               R(row,i) = ((4^(i-1))*R(row,i-1) - R(row-1,i-1)) / (4**(i-1) - 1);
+       end
+end
+
+rll = R(L,L);
+rl0 = R(L,1);
+
+end