--- /dev/null
+Let us first the basic recalls of the~\cite{HLG09} article.
+
+
+The precise the context of video sensor network as represeted for instance
+in figure~\ref{fig:sn}.
+
+\begin{figure}
+\begin{center}
+\includegraphics[scale=0.5]{reseau.png}
+\caption{SN with 10 sensor}\label{fig:sn}.
+\end{center}
+\end{figure}
+
+
+Let us give a formalisation of such a wideo network sensor.
+We start with the flow formalising:
+
+The video sensor network is represented as a strongly
+connected oriented labelled graph.
+In this one,
+the nodes, in a set $N$ are sensors, links, or the sink.
+Furtheremore, there is an edge from $i$ to $j$ if $i$ can
+send a mesage to $j$. The set of all edges is further denoted as
+$L$ .
+This boolean information is stored as a
+matrix $A=(a_{il})_{i \in N, l \in L}$,
+where
+$a_{il} =
+\left\{
+ \begin{array}{rl}
+ 1 & \textrm{if $l$ starts with $i$ } \\
+ -1 & \textrm{si $l$ ends width $i$ } \\
+ 0 & \textrm{otherwise}
+ \end{array}
+ \right.$.
+
+
+Let $V \subset N $ be the set of the video sensors of $N$.
+Let thus $R_h$, $R_h \geq 0$ be the encoding rate of video sensor $h$, $h \in V$.
+Let $\eta_{hi}$ be the production rate of the $i$ node, for the $h$ session. More precisely, we have
+ $$
+\eta_{hi} =
+\left\{
+ \begin{array}{rl}
+ R_h & \textrm{si $i$ est $h$} \\
+ -R_h & \textrm{si $i$ est le puits} \\
+ 0 & \textrm{sinon}
+ \end{array}
+ \right.$$
+
+We are then left to focus on the flows in this network.
+Let $x_{hl}$, $x_{hl}\geq 0$, be the flow inside the edge $l$ that
+issued from the $h$ sesssion and
+let $y_l = \sum_{h \in V}x_{hl} $ the sum of all the flows inside $l$.
+Thus, what is produced inside the $i^{th}$ sensor for session $h$
+is $ \eta_{hi} = \sum_{l \in L }a_{il}x_{hl} $.
+
+
+The encoding power of the $i$ node is $P_{si}$, $P_{si} > 0$.
+
+The distortion is bounded $\sigma^2 e^{-\gamma . R_h.P_{sh}^{}2/3} \leq D_h$.
+
+The initial energy of the $i$ node is $B_i$.
+
+The overall consumed powed of the $i$ node is
+$P_{si}+ P_{ti} + P_{ri}=
+P_{si}+ \sum_{l \in L}a_{il}^{+}.c^s_l.y_l +
+\sum_{l \in L} a_{il}^{-}.c^r.y_l \leq q.B_i.
+$
+
+The objective is thus to find $R$, $x$, $P_s$ which minimize
+ $q$ under the following set of constraints
+\begin{enumerate}
+\item $\sum_{l \in L }a_{il}x_{hl} = \eta_{hi},\forall h \in V, \forall i \in N $
+\item $ \sum_{h \in V}x_{hl} = y_l,\forall l \in L$
+\item $\dfrac{\ln(\sigma^2/D_h)}{\gamma.P_{sh}^{2/3}} \leq R_h \forall h \in V$
+\item \label{itm:q} $P_{si}+ \sum_{l \in L}a_{il}^{+}.c^s_l.y_l +
+\sum_{l \in L} a_{il}^{-}.c^r.y_l \leq q.B_i, \forall i \in N$
+\item $x_{hl}\geq0, \forall h \in V, \forall l \in L$
+\item $R_h \geq 0, \forall h \in V$
+\item $P_{sh} > 0,\forall h \in V$
+\end{enumerate}
+
+
+To achieve a local optimisation, the problem is translated into an
+equivalent one:
+
+\begin{itemize}
+The objective is thus to find $R$, $x$, $P_s$ which minimize
+$\sum_{i \in N }q_i^2$ with the same set of constraints, but
+item \ref{itm:q}, which is replaced by:
+
+$$P_{si}+ \sum_{l \in L}a_{il}^{+}.c^s_l.\left( \sum_{h \in V}x_{hl} \right) +
+\sum_{l \in L} a_{il}^{-}.c^r.\left( \sum_{h \in V}x_{hl} \right) \leq q.B_i, \forall i \in N$$
+
+\JFC{Vérifier l'inéquation précédente}
+
+The authors then aplly a dual based approach with Lagrange multiplier
+to solve such a problem.
+
+
+
+
+\inputFrameb{Formulation simplifiée}{formalisationsimplifiee}
\ No newline at end of file
--- /dev/null
+
+\inputFrameb{Contexte: réseau de capteurs vidéos}{cv}
+\inputFrameb{Formalisation: réseau et flux}{formalisationflux}
+\inputFrameb{Formalisation: énergie}{formalisationenergie}
+\inputFrameb{Formulation globale}{formalisationglobale}
+\inputFrameb{Formulation simplifiée}{formalisationsimplifiee}
\ No newline at end of file
--- /dev/null
+ \iffalse; awk '/S[H]ELL1/' lineno.sty|sh;exit;
+ ... see bottom for .tex documentation ...
+
+Macro file lineno.sty for LaTeX: attach line numbers, refer to them.
+ \fi
+\def\fileversion{v4.41} \def\filedate{2005/11/02} %VERSION
+
+%%% Copyright 1995--2003 Stephan I. B"ottcher <boettcher@physik.uni-kiel.de>;
+%%% Copyright 2002--2005 Uwe L"uck, http://www.contact-ednotes.sty.de.vu
+%%% for version 4 and code from former Ednotes bundle
+%%% --author-maintained.
+%%%
+%%% This file can be redistributed and/or modified under
+%%% the terms of the LaTeX Project Public License; either
+%%% version 1.3a of the License, or any later version.
+%%% The latest version of this license is in
+%%% http://www.latex-project.org/lppl.txt
+%%% We did our best to help you, but there is NO WARRANTY.
+%
+%%% $Id: lineno.sty,v 3.14.2.2 2004/09/13 19:30:39 stephan Exp $ %% was v4.00.
+% \title{\texttt{\itshape
+%% %% (UL 2004/10/09:) Italic TT is evil
+%% %% ... or nice front page layout!?
+%%
+% lineno.sty \ \fileversion\ \filedate
+% \unskip}\\\ \\
+% A \LaTeX\ package to attach
+% \\ line numbers to paragraphs
+% \unskip}\author{%
+% Stephan I. B\"ottcher
+% \\ Uwe L\"uck
+% \unskip}\date{%
+% boettcher@physik.uni-kiel.de
+% \\ http://contact-ednotes.sty.de.vu
+%% \\ stephan@nevis.columbia.edu
+%% \\ Stephan.Boettcher@cern.ch
+% \\}
+%
+% \documentclass[a4paper,12pt]{article}%D
+% \usepackage{lineno}%D
+%% %% (New v4.00)
+% \catcode`\_\active\let_~
+%% %% Beware math!? (/New v4.00)
+% \def~{\verb~}
+% \let\lessthan<
+% \catcode`\<\active
+% \def<#1>{$\langle${\itshape#1}\/$\rangle$}
+% \catcode`\|\active
+%% (New v4.1: \tt star; in box anyway.)
+% \def|#1{\ttfamily\string#1}
+%% \def|#1{{\ttfamily\string#1}}
+%% (/New v4.1)
+% \newenvironment{code}
+% {\par\runninglinenumbers
+% \modulolinenumbers[1]%
+% \linenumbersep.3em
+% \footnotesize
+% \def\linenumberfont
+% {\normalfont\tiny\itshape}}
+% {}
+%% %% (New v4.00)
+% {\makeatletter \gdef\scs#1{\texttt
+% {\protect\@backslashchar#1}}}
+% \def\old{\par\footnotesize}
+%% %% (/New v4.00)
+%% %% (New v4.1)
+% {\catcode`\/\active
+% \gdef\path{\begingroup\catcode`\/\active
+% \let/\slash\dopath}
+% \gdef\dopath#1{\slash\unpenalty#1\endgroup}}
+%% %% (/New v4.1)
+%
+% \begin{document}%D
+%% \DocInput{lineno}%D
+% \pagewiselinenumbers
+% \maketitle
+% \pagestyle{headings}
+% \tableofcontents
+% \sloppy
+%
+%% %% New v4.00: `...section{%' + \unskip
+% \section{%
+% Introductions
+%% %% New v4.00: `s'
+% \unskip}
+%
+% (New v4.00) Parts of former first section
+% have been rendered separate subsections for package
+% version_v4.00. (/New v4.00)
+%
+% \subsection{%
+% Introduction to versions $\textrm{v}\lessthan4$
+% \unskip}
+%
+% This package provides line numbers on paragraphs.
+% After \TeX\ has broken a paragraph into lines there will
+% be line numbers attached to them, with the possibility to
+% make references through the \LaTeX\ ~\ref~, ~\pageref~
+% cross reference mechanism. This includes four issues:
+% \begin{itemize}
+% \item attach a line number on each line,
+% \item create references to a line number,
+% \item control line numbering mode,
+% \item count the lines and print the numbers.
+% \end{itemize}
+% The first two points are implemented through patches to
+% the output routine. The third by redefining ~\par~, ~\@par~
+% and ~\@@par~. The counting is easy, as long as you want
+% the line numbers run through the text. If they shall
+% start over at the top of each page, the aux-file as well
+% as \TeX s memory have to carry a load for each counted line.
+%
+% I wrote this package for my wife Petra, who needs it for
+% transcriptions of interviews. This allows her to
+% precisely refer to passages in the text. It works well
+% together with ~\marginpar~s, but not too well with displaymath.
+% ~\footnote~s are a problem, especially when they
+% are split, but we may get there.
+% (New v4.00 UL) Version v4.00 overcomes the problem, I believe.
+% (/UL /New v4.00)
+%
+% lineno.sty works
+% surprisingly well with other packages, for
+% example, ~wrapfig.sty~. So please try if it
+% works with whatever you need, and if it does,
+% please tell me, and if it does not, tell me as
+% well, so I can try to fix it.
+%
+% \subsection{%
+% Introduction to versions v4.00ff. (UL)
+% \unskip}
+%
+% ~lineno.sty~ has been maintained by Stephan until version_v3.14.
+% From version_v4.00 onwards, maintenance is shifting towards
+% Uwe L\"uck (UL), who is the author of v4\dots code and of v4\dots
+% changes in documentation. This came about as follows.
+%
+% Since late 2002, Christian Tapp and Uwe L\"uck have employed
+% ~lineno.sty~ for their ~ednotes.sty~, a package supporting
+% critical editions---cf.
+% \[\mbox{\tt
+% http://ednotes.sty.de.vu
+% \unskip}\]
+% ---while you find ~ednotes.sty~ and surrounding files in
+% CTAN folder \path{macros/latex/contrib/ednotes}.
+%
+% Soon, some weaknesses of ~lineno.sty~ showed up, mainly since
+% Christian's critical editions (using ~ednotes.sty~) needed lots
+% of ~\linelabel~s and footnotes. (These weaknesses are due to
+% weaknesses of \LaTeX's ~\marginpar~ mechanism that Stephan
+% used for ~\linelabel~.) So we changed some ~lineno.sty~
+% definitions in some extra files, which moreover offered new
+% features. We sent these files to Stephan, hoping he would take
+% the changes into ~lineno.sty~. However, he was too short of time.
+%
+% Writing a TUGboat article on Ednotes in 2004, we hoped to
+% reduce the number of files in the Ednotes bundle and so asked
+% Stephan again. Now he generously offered maintenance to me, so
+% I could execute the changes on my own.
+%
+% The improvements are as follows:
+% \begin{itemize}\item
+% [(i)] Footnotes placement approaches intentions better
+% (footnotes formerly liked to pile up at late pages).
+% \item
+% [(ii)] The number of ~\linelabel~s in one paragraph is no longer
+% limited to 18.
+% \item
+% [(iii)] ~\pagebreak~, ~\nopagebreak~, ~\vspace~, and the star
+% and optional versions of ~\\~ work as one would expect
+% (section_\ref{s:MVadj}). %% Added for v4.1
+% \item
+% [(iv)] A command is offered which chooses the first line number
+% to be printed in the margin
+% (subsection_\ref{ss:Mod}). %% Added for v4.1
+% \item
+% [(v)] (New v4.1) \LaTeX\ tabular environments (optionally)
+% get line numbers as well, and you can refer to them in the
+% usual automatic way. (It may be considered a shortcoming that,
+% precisely, \emph{rows} are numbered, not lines.---See
+% subsection_\ref{ss:Tab}.)
+% \item
+% [(vi)] We are moving towards referring to math items
+% (subsection_\ref{ss:MathRef} and the hooks in
+% subsection_\ref{ss:LL}).
+% (/New v4.1)
+% \end{itemize}
+% (Thanks to Stephan for making this possible!)
+%
+%% Unpublish:
+%% You may trace the earlier developments of these changes by
+%% requesting our files ~linenox0.sty~, ~linenox1.sty~, and
+%% ~lnopatch.sty~. Most of our changes have been in ~linenox0.sty~.
+%% Our ~linenox1.sty~ has extended ~linenox0.sty~ for one single
+%% purpose in a not very stable way.
+%%% (See ~\linenumberpar~ below).
+%% ~lnopatch.sty~ has done the first line number thing referred
+%% to in case_(iv) up to now.
+%% (New v4.1)
+%% Case_(v) earlier was provided by our ~edtab02.sty~---now
+%% called ~edtable.sty~.
+%% (/New v4.1)
+%
+% Ednotes moreover profits from Stephan's offer with regard
+% to the documentation of our code which yielded these
+% improvements formerly. This documentation now becomes
+% printable, being part of the ~lineno.sty~ documentation.
+%
+% Of course, Stephan's previous ~lineno.sty~ versions were a great
+% and ingenious work and exhibit greatest \TeX pertise. I never
+% could have done this. I learnt a lot in studying the code when
+% Christian pointed out strange output results and error
+% messages, and there are still large portions of ~lineno.sty~
+% which I don't understand (consider only pagewise numbering of
+% lines). Fortunately, Stephan has offered future help if
+% needed.---My code for attaching line numbers to \emph{tabular
+% environments} (as mentioned above, now still in
+% ~edtable.sty~) %% %% TODO
+% developed from macros which Stephan and Christian experimented
+% with in December 2002. Stephan built the basics.
+% (However, I then became too proud to follow his advice only to
+% use and modify ~longtable.sty~.)
+%
+% There are some issues concerning use of counters on which I
+% don't agree with Stephan and where I would like to change the
+% code if ~lineno.sty~ is ``mine'' as Stephan offered. However,
+% Stephan is afraid of compatibility problems from which, in
+% particular, his wife could suffer in the near future. So he
+% demanded that I change as little as possible for my first
+% version. Instead of executing changes that I plan I just offer
+% my opinions at the single occasions. I hope to get in touch
+% this way with users who consider subtle features vital which I
+% consider strange.
+%
+% On the other hand, the sections on improvements of the
+% implementation have been blown up very much and may be tiring
+% and litte understandable for mere \emph{users}. These users
+% may profit from the present presentation just by jumping to
+% sections_\ref{s:Opts} and_\ref{s:UserCmds}. There is a user's
+% guide ulineno.tex which may be even more helpful, but it has
+% not been updated for a while. %% TODO
+%
+% \subsection{%
+% Availability
+% \unskip}
+%
+% In case you have found the present file otherwise than from
+% CTAN: A recent version and documentation of this package
+% should be available from CTAN folder
+% \path{macros/latex/contrib/lineno}.
+% Or mail to one of the addresses at top of file.
+%
+% \subsection{%
+% Introductory code
+% \unskip}
+%
+% This style option is written for \LaTeXe, November 1994 or later,
+% since we need the ~\protected@write~ macro.
+%
+% (New v4.00) And we use ~\newcommand*~ for
+% controlling length of user macro arguments, which has been
+% available since December 1994.
+%%
+
+\NeedsTeXFormat{LaTeX2e}[1994/12/01]
+%% [1994/11/04]
+\ProvidesPackage{lineno}
+ [\filedate\space line numbers on paragraphs \fileversion]
+% (/New v4.00)
+%%
+%% History of versions:
+%% v1.00 1995/03/31 SIB: first release for Petra's interview transcriptions
+%% v1.01 1995/10/28 SIB: added ~pagewise~ mode
+%% v1.02 1995/11/15 SIB: added ~modulo~ option
+%% v1.03 1995/12/05 SIB: pagewise: try to reduce the hash-size requirements
+%% v2.00 1995/12/06 SIB: .. it works, new user interface
+%% v2.01 1996/09/17 SIB: put into CVS
+%% v2.02 1997/03/17 SIB: add: \@reinserts, for footnotes
+%% v2.04 1998/03/09 SIB: add: linenomath environment
+%% v2.05 1998/04/26 SIB: add: prevgraf test
+%% v2.06 1999/03/02 SIB: LPPL added
+%% v3.00 1999/06/11 SiB: include the extension in the main file
+%% v3.01 1999/08/28 SiB: \@reinserts -> \holdinginserts
+%% v3.02 2000/03/10 SiB: \@LN@output
+%% v3.03 2000/07/01 SiB: \@LN@ExtraLabelItems, hyperref
+%% v3.04 2000/12/17 SiB: longtable compatibility.
+%% v3.05 2001/01/02 SiB: [fleqn] detection.
+%% v3.05a 2001/01/04 SiB: [fleqn] detection reverted for eqnarray.
+%% v3.06 2001/01/17 SiB: [twocolumn] mode support.
+%% v3.07 2001/07/30 SiB: [hyperref] option obsoleted.
+%% v3.08 2001/08/02 SiB: linenomath wrapping for \[ \]
+%% v3.08a 2001/08/04 SiB: linenomath wrapping for \[ \] fixed
+%% v3.08b 2002/01/27 SiB: enquotation typo fix
+%% v3.09 2003/01/14 SIB: hyperref detection fix
+%% v3.10 2003/04/15 FMi: \MakeLineNo fix for deep boxes
+%% v3.10a 2003/11/12 Uwe Lück: \lineref typo fix
+%% v4.00 2004/09/02 UL: included linenox0, linenox1, lnopatch code with
+%% documentation, usually indicated by `New v4.00';
+%% discussions of old code, indicated by `UL';
+%% LPPL v.1 -> LPPL v1.3, `program' -> `file';
+%% first lines with \filedate and \fileversion,
+%% according nawk lines; `November 1994 or later',
+%% some earlier documentation typos (including a few
+%% bad minus signs), { -> {% and } -> \unskip} at
+%% line ends (so, e.g., alignment in TOC works); \scs.
+%% 2004/09/03 UL: removed everything which indicated that the
+%% present file were named `lineno4.sty'.
+%% v4.1 2004/09/19 UL: Inserted Stephan's identification line, removed
+%% some TODOs and remarks from v4.00.
+%% 2004/10/04 UL: Added acknowledgement for Daniel Doherty;
+%% `(New v4.00)' with [|\firstlinenumber]; changed
+%% TODOs; Refining -> Redefining (\vadjust).
+%% 2004/10/05 UL: ednmath0 -> mathrefs; \catcode`\~ -> \active;
+%% \path; refined section on options `mathrefs';
+%% changes in introduction.
+%% 2004/10/06 UL: Changed/removed TODOs, e.g., for edtable.sty.
+%% 2004/10/11 UL: Reminders: linenox0/1/lnopatch.sty obsolete;
+%% \tt star in list of commands.
+%% 2004/10/12 UL: Corrected blank lines in lineno.tex.
+%% 2004/10/19 UL: Fixed minor typos; remark on \if@LN@edtable.
+%% v4.1a 2004/11/07 UL: LPPL v1.3a.
+%% v4.1b 2004/11/13 UL: Comment on \outputpenalty values.
+%% v4.1c 2005/01/10 UL: Contact via http.
+%% v4.11 2005/02/20 UL: Error message with \linelabel when not numbering.
+%% 2005/03/07 UL: Removed \linelabel from ss:Tab heading, consider
+%% marginal line numbers as well, revised ss:Tab.
+%% Added a few lines on missing explanations to
+%% s:UserCmds. Corrected some code alignments.
+%% 2005/03/08 UL: Require recent edtable.sty.
+%%
+
+%% v4.2 2005/03/21 UL: "Physical page" counter works with \include.
+%% 2005/04/17 UL: Raised options section above extensions section
+%% (v4.00 disabled `displaymath' option);
+%% third arg for \@ifundefined{mathindent};
+%% "bunch of options";
+%% 2005/04/24 UL: compatibility with tamefloats; vplref.sty.
+%% 2005/04/25 UL: \number -> \the; wondered -> $$; subsec. appbas;
+%% CrtlLN sec -> subsec.; \newcommand* wherever ...;
+%% doc. on `other output routines' and `addpageno'
+%% (this changed from `varioref').
+%% 2005/04/27 UL: =1\relax -> =\@ne, 0\relax ..., \hb@xt@,
+%% \ifx\@@par\@@@par -> \ifLineNumbers, typos,
+%% \pagestyle{headings}, LaTeX -> \LaTeX.
+%% v4.21 2005/04/28 UL: linenomath section: removed wrong \else's,
+%% \holding...: \thr@@, \@LN@outer@holdins, \global.
+%% v4.22 2005/05/01 UL: \unvbox\@outputbox; \@LN@col without #1,
+%% 2005/05/08 UL: global/local \internall..., \resetl... global,
+%% shortened discussions of this and of \newcounter.
+%% 2005/05/09 UL: corr.: doc. typo, version history, bad lines;
+%% percent; \chardef for modulo,
+%% \value{firstlinenumber}.
+%% v4.3 2005/05/10 UL: \@backslashchar -> \char`\\ in \scs.
+%% 2005/05/11 UL: \linenumbers sets ...outer@holdins; tidied up
+%% documentation regarding earlier versions.
+%% 2005/05/12 UL: `linenomath' without spurious number above;
+%% `displaymath' default; edmac homepage ->
+%% ednotes.sty.de.vu, \endlinenomath without
+%% numbers: no change of \holdinginserts;
+%% \linelabel doesn't go to .aux or mark,
+%% hyperref detected; undone 2005/05/10 (bad mark).
+%% 2005/05/13 UL: Reworked hyperref detection (new subsec.).
+%% 2005/05/15 UL: More typo fixes, corrected terrible confusions in
+%% the discussion (v4.22/v4.3) of \new/\stepcounter;
+%% new subsec. in `Line number ...'; another
+%% implementation of `hyperref' detection.
+%% 2005/05/16 UL: Final minor changes.
+%% v4.31b /06/14 UL: Extended explanation of \firstlinenumbers
+%% and package options; \@LN@ifgreat@critical;
+%% \modulolinenumbers*. Sent to Ednotes.news only.
+%% v4.31 2005/06/15 UL: \modulolinenumbers* with \firstlinenumber{1};
+%% " -> ``/''; more doc. on \firstlinenumber .
+%% 2005/06/20 UL: Typo fix.
+%% 2005/10/01 UL: Warning about \mod...* with pagewise mode.
+%% v4.31a /10/02 UL: Minor changes of appearance of doc., e.g.,
+%% \[ for $$.
+%% v4.32b /10/15 UL: Support for \addvspace; removed comments that
+%% had been invisible already for some time;
+%% made clear with which environments the
+%% linenomath environment is not needed.
+%% v4.32ab /10/15 UL: Observe \if@nobreak with support for \addvspace.
+%% v4.32 2005/10/17 UL: Just made it official and sent it to CTAN.
+%% v4.33b /10/23 UL: \if@nobreak\nobreak\fi -> \nobreak .
+%% v4.33ab /10/24 UL: \LineNoLaTeXOutput without \@tempswafalse;
+%% undid v4.22: \[unv]box\@outputbox (space is OK,
+%% \unvbox pushes short columns down); \@LN@kern@z@ .
+%% v4.4b 2005/10/24 UL: Another tidying-up of the discussion of
+%% \stepcounter{linenumber}; \@LN@screenoff@pen
+%% replaces \@LN@kern@z@, \@LN@depthbox .
+%% v4.4 2005/10/27 UL: Just made official for CTAN.
+%% v4.4a 2005/10/29 UL: Undid change of discussion of
+%% \stepcounter{linenumber} (confusion again).
+%% v4.41 2005/11/02 UL: Raised \CheckCommand*.
+%%
+%% Acknowledgements:
+%% v3.06: Donald Arseneau, pointed to mparhack.sty.
+%% v3.07+: Frank Mittelbach, points out inconsistencies in the
+%% user interface.
+%% v3.10: Frank Mittelbach \MakeLineNo fix for deep boxes
+%% v4.00: Daniel Doherty points out clash of \pagewise... with resetting
+%% page number.
+%% v4.21: Much testing work by Erik Luijten.
+%% v4.3: `displaymath' default by Erik Luijten's suggestion.
+%% v4.31: \modulolinenumbers* is an idea of Hillel Chayim Yisraeli's.
+%% v4.32: Support for \addvspace due to Saravanan M.'s observation.
+%% v4.33: Different support for \addvspace due to bug reports by
+%% Saravanan M.'s and David Josef Dev.
+%% v4.4: David Josef Dev points out that \kern\z@ after a paragraph
+%% tends to place its final baseline wrongly.
+%
+%
+% \section{%
+% Put the line numbers to the lines
+% \unskip}
+%
+% (New v4.00) This section contained the most
+% basic package code previously. For various purposes of
+% version_4\dots, much of these basics have been to be modified.
+% Much of my (UL's) reasoning on these modifications has been to
+% be reported. Sorry, the present section has been blown up
+% awfully thus and contains ramifications that may be difficult
+% to trace. We add some ~\subsection~ commands in order to cope
+% with the new situation. (/New v4.00)
+%
+% \subsection{%
+% Basic code of \texttt{lineno.sty} \scs{output}
+% \unskip}\label{ss:output}
+%
+% The line numbers have to be attached by the output
+% routine. We simply set the ~\interlinepenalty~ to $-100000$.
+% The output routine will be called after each line in the
+% paragraph, except the last, where we trigger by ~\par~.
+% The ~\linenopenalty~ is small enough to compensate a bunch of
+% penalties (e.g., with ~\samepage~).
+%
+% (New v3.04) Longtable uses
+% ~\penalty~$-30000$. The lineno penalty range was
+% shrunk to $-188000 \dots -32000$. (/New v3.04)
+% (New v4.00) New values are listed below (11111f.). (/New v4.00)
+
+\newcount\linenopenalty\linenopenalty=-100000
+
+%% TODO v4.4+:
+% (UL) Hm. It is never needed below
+% that this is a counter. ~\def\linenopenalty{-100000\relax}~
+% would do. (I guess this consumes more memory, but it
+% is more important to save counters than to save memory.)
+% I was frightened by ~-\linenopenalty~ below, but indeed
+% \TeX\ interprets the string ~--100000~ as 100000.
+% Has any user or extension package writer ever called
+% ~\linenopenalty=xxx~, or could I really change this?---The
+% counter is somewhat faster than the macro. Together with the
+% compatibility question this seems to support keeping the
+% counter. (???)
+%% Note that Stephan chose ~\mathchardef~ below,
+%% so his choice above seems to have been deliberate.
+%% <- no point, \mathchardef token is fast.
+% (/UL)
+
+\mathchardef\linenopenaltypar=32000
+
+% So let's make a hook to ~\output~, the direct way. The \LaTeX\
+% macro ~\@reinserts~ puts the footnotes back on the page.
+%
+% (New v3.01) ~\@reinserts~ badly
+% screws up split footnotes. The bottom part is
+% still on the recent contributions list, and the
+% top part will be put back there after the bottom
+% part. Thus, since lineno.sty does not play well
+% with ~\inserts~ anyway, we can safely experiment
+% with ~\holdinginserts~, without making things
+% much worse.
+%
+% Or that's what I thought, but: Just activating
+% ~\holdinginserts~ while doing the ~\par~ will
+% not do the trick: The ~\output~ routine may be
+% called for a real page break before all line
+% numbers are done, and how can we get control
+% over ~\holdinginserts~ at that point?
+%
+% Let's try this: When the ~\output~ routine is
+% run with ~\holdinginserts=3~ for a real page
+% break, then we reset ~\holdinginserts~ and
+% restart ~\output~.
+%
+% Then, again, how do we keep the remaining
+% ~\inserts~ while doing further line numbers?
+%
+% If we find ~\holdinginserts~=$-3$ we activate it again
+% after doing ~\output~. (/New v3.01)
+%
+% (New v3.02) To work with
+% multicol.sty, the original output routine is now
+% called indirectly, instead of being replaced.
+% When multicol.sty changes ~\output~, it is a
+% toks register, not the real thing. (/New v3.02)
+%
+% (New v4.00) Two further complications are added.
+%%
+%% TODO v4.3+: Or three, ~\@nobreakfalse~ after ~\MakeLineNo~
+%% for getting rid of ~\@LN@nopagebreak~.
+% \begin{itemize}\item
+% [(i)] Problems with footnotes formerly resulted from
+% \LaTeX's ~\@reinserts~ in ~\@specialoutput~ which Stephan's
+% ~\linelabel~ called via the ~\marginpar~ mechanism.
+% \item
+% [(ii)] \LaTeX\ commands using ~\vadjust~ formerly didn't work
+% as one would have hoped. The problem is as follows:
+% Printing the line number results from
+% a box that the output routine inserts at the place of the
+% ~\interlinepenalty~. ~\vadjust~ items appear \emph{above} the
+% ~\interlinepenalty~ (\TeX book p._105). So ~\pagebreak~, e.g.,
+% formerly sent the line number to the next page, while the
+% penalty from ~\nopagebreak~ could not tie the following line,
+% since it was screened off by the line number box.---Our trick
+% is putting the ~\vadjust~ items into a list macro from which
+% the output routine transfers them into the vertical list,
+% below the line number box.
+% \end{itemize}
+% In this case_(ii), like in case_(i), footnotes would suffer
+% if ~\holdinginserts~ were non-positive. Indeed, in both
+% cases_(i) and_(ii) we tackle the footnote problem by extending
+% that part of Stephan's output routine that is active when
+% ~\holdinginserts~ is positive. This extension writes the line
+% number ~\newlabel~ to the .aux file (which was formerly done
+% under $~\holdinginserts~=-3$) and handles the ~\vadjust~
+% items.---To trigger ~\output~ and its ~\linelabel~ or, resp.,
+% ~\vadjust~ part, the list of signal penalties started
+% immediately before is increased here (first for ~\linelabel~,
+% second for postponed ~\vadjust~ items):
+
+\mathchardef\@Mllbcodepen=11111
+\mathchardef\@Mppvacodepen=11112
+
+% (/New v4.00) (New v4.2) David Kastrup urges to use a private
+% name instead of ~\the\output~ (LaTeX-L-list). Otherwise an
+% ~\output~ routine loaded later and using ~\newtoks\output~
+% again may get lost entirely. So we change use of ~\@LN@output~,
+% using it for the former purpose. Reference to what appeared
+% with the name of ~\output~ here lasts for a few lines and then
+% is given away.
+
+\let\@tempa\output
+\newtoks\output
+\let\@LN@output\output
+\output=\expandafter{\the\@tempa}
+
+% Now we add two cases to Stephan's output routine. (New v4.00)
+
+\@tempa={%
+% (/New 4.2)
+ \LineNoTest
+ \if@tempswa
+%%
+%% (UL) Learnt that even in def.s blank line means ~\par~.
+%% to leave visual space in present file with having a
+%% blank line neither in present nor in .tex file,
+%% use double comment mark (`%%'). (/UL)
+%%
+% (New v4.00)
+% We insert recognition of waiting ~\linelabel~ items---
+%%
+ \ifnum\outputpenalty=-\@Mllbcodepen
+ \WriteLineNo
+%%
+% ---and of waiting ~\vadjust~ items:
+%%
+ \else
+ \ifnum\outputpenalty=-\@Mppvacodepen
+ \PassVadjustList
+ \else
+%%
+%% Now we give control back to Stephan.
+% (/New v4.00) (New v4.2) Outsource ``Standard'' output
+% ---which occurs so rarely---to subsection_\ref{ss:LLO}:
+%%
+ \LineNoLaTeXOutput
+% (/New v4.2) (New v4.00)
+% Two new ~\fi~s for the ~\linelabel~ and ~\vadjust~ tests---
+%%
+ \fi
+ \fi
+%%
+% ---and the remaining is
+%%%next three lines are
+% Stephan's code again:
+% (/New v4.00)
+%%
+ \else
+ \MakeLineNo
+ \fi
+ }
+
+% (New v4.00) Our new macros
+% ~\WriteLineNo~ and ~\PassVadjustList~ will be dealt with in
+% sections_\ref{s:LNref} and_\ref{ss:PVadj}. (/New v4.00)
+%
+% \subsection{%
+% \scs{LineNoTest}
+% \unskip}
+%
+% The float mechanism inserts ~\interlinepenalty~s during
+% ~\output~. So carefully reset it before going on. Else
+% we get doubled line numbers on every float placed in
+% horizontal mode, e.g, from ~\linelabel~.
+%
+% Sorry, neither a ~\linelabel~ nor a ~\marginpar~ should
+% insert a penalty, else the following linenumber
+% could go to the next page. Nor should any other
+% float. So let us suppress the ~\interlinepenalty~
+% altogether with the ~\@nobreak~ switch.
+%
+% Since (ltspace.dtx, v1.2p)[1996/07/26], the ~\@nobreaktrue~ does
+% it's job globally. We need to do it locally here.
+
+\def\LineNoTest{%
+ \let\@@par\@@@par
+ \ifnum\interlinepenalty<-\linenopenaltypar
+ \advance\interlinepenalty-\linenopenalty
+ \@LN@nobreaktrue
+ \fi
+ \@tempswatrue
+ \ifnum\outputpenalty>-\linenopenaltypar\else
+ \ifnum\outputpenalty>-188000\relax
+ \@tempswafalse
+ \fi
+ \fi
+ }
+
+\def\@LN@nobreaktrue{\let\if@nobreak\iftrue} % renamed v4.33
+
+% (UL) I thought here were
+% another case of the save stack problem explained in \TeX book,
+% p._301, namely through both local and global changing
+% ~\if@nobreak~. However, ~\@LN@nobreak~ is called during
+% ~\@LN@output~ only, while ~\@nobreaktrue~ is called by \LaTeX's
+% ~\@startsection~ only. The latter never happens during
+% ~\@LN@output~. So there is no local value of ~\if@nobreak~ on
+% save stack when ~\@nobreaktrue~ acts, since ~\the\@LN@output~
+% (where ~\@LN@output~ is a new name for the original ~\output~)
+% is executed within a group (\TeX book p._21).
+%%
+%% 2004/09/19 Removed nonsense here according to Stephan 2004/09/04.
+%%
+% (/UL)
+%
+% \subsection{%
+% Other output routines (v4.2)
+% \unskip}\label{ss:LLO}
+%
+% I had thought of dealing with bad interference of footnotes
+% (and ~\enlargethispage~) with (real) ~\marginpar~s and floats
+% \emph{here}. Yet this is done in
+% \[
+% ~http://~\mbox{[CTAN]}
+% ~/macros/latex/contrib/tamefloats/tameflts.sty~
+% \]
+% now, and I prefer striving for compatibility with the latter.
+% (See there for expanding on the problem.)
+% This requires returning the special absolute value of
+% ~\holdinginserts~ that ~lineno.sty~ finds at the end of a newly
+% typeset paragraph---now done in subsection_\ref{ss:calls}
+% (~\linenumberpar~).
+% The former ~\LineNoHoldInsertsTest~ has been filled into here.
+%% ---`3' is replaced by ~\thr@@~ for a while. ~\thr@@~ is
+%% useful practice since plain \TeX, but Stephan may have been
+%% wise in suspecting that \LaTeX\ once could forsake ~\thr@@~.
+%% The same holds for ~\@M=10000~.
+% Note: when the following code is invoked, we have
+% ~\if@tempswa~_ =_~\iftrue~.
+% WARNING: I am still not sure whether the present code is good
+% for cooperating with other packages that use ~\holdinginserts~.
+
+\def\LineNoLaTeXOutput{%
+ \ifnum \holdinginserts=\thr@@ % v4.33 without \@tempswafalse
+ \global\holdinginserts-\thr@@
+ \unvbox\@cclv
+ \ifnum \outputpenalty=\@M \else \penalty\outputpenalty \fi
+ \else
+ \if@twocolumn \let\@makecol\@LN@makecol \fi
+ \the\@LN@output % finally following David Kastrup's advice.
+ \ifnum \holdinginserts=-\thr@@
+ \global\holdinginserts\thr@@ \fi
+ \fi
+}
+
+% \textit{More on dealing with output routines from other
+% packages:}
+% Since ~lineno.sty~'s output routine is called at least once
+% for each output line, I think it should be in \TeX's
+% original ~\output~, while output routines dealing with
+% building pages and with floats etc.\ should be filled into
+% registers addressed by ~\output~ after ~\newtoks\output~.
+% Therefore \begin{enumerate}
+% \item
+% ~tameflts.sty~ should be loaded \emph{after} ~lineno.sty~;
+% \item
+% if a class changes ~\output~ (APS journal class revtex4,
+% e.g.), ~lineno.sty~ should be loaded by ~\RequirePackage~
+% [here presumably following some options in
+% brackets]~{lineno}~ \emph{preceding} ~\documentclass~.
+% \item
+% If you actually maintain such a class, please consider
+% loading ~lineno.sty~ on some draft option. The bunch of
+% lineno's package options may be a problem, but perhaps the
+% purpose of your class is offering only very few of lineno's
+% options anyway, maybe just one.
+% \end{enumerate}
+% The latter may also be needed with classes that don't follow
+% David Kastrup's rule on changing ~\output~.
+%
+% \subsection{%
+% \scs{MakeLineNo}: Actually attach line number
+% \unskip}\label{ss:MLN}
+%
+% We have to return all the page to the current page, and
+% add a box with the line number, without adding
+% breakpoints, glue or space. The depth of our line number
+% should be equal to the previous depth of the page, in
+% case the page breaks here, and the box has to be moved up
+% by that depth.
+%
+% The ~\interlinepenalty~ comes after the ~\vadjust~ from a
+% ~\linelabel~, so we increment the line number \emph{after}
+% printing it. The macro ~\makeLineNumber~ produces the
+% text of the line number, see section \ref{appearance}.
+%
+% (UL) I needed a while to understand
+% the sentence on incrementing. Correctly: writing the
+% ~\newlabel~ to the .aux file is triggered by the signal
+% penalty that ~\end@float~ inserts via ~\vadjust~.
+% However, this could be changed by our new ~\PostponeVadjust~.
+% After ~\c@linenumber~ has been introduced as a \LaTeX\
+% counter, it might be preferable that it behaved like standard
+% \LaTeX\ counters which are incremented shortly before printing.
+% But this may be of little practical relevance in this case,
+% as ~\c@linenumber~ is driven in a very non-standard
+% way.---However still, this behaviour of ~\c@linenumber~
+% generates a problem with our ~edtable.sty~.
+%% \unskip---Before,
+%% I thought that Stephan had reported his reasoning incorrectly
+%% and rather did this because of his ~\resetlinenumber~ which
+%% initializes ~\c@linenumber~ to 1 instead of 0---the latter is
+%% usual with \LaTeX\ counters. Cf._additional comment at
+%% ~\resetlinenumber~.
+% (/UL).
+%
+% Finally we put in the natural ~\interlinepenalty~, except
+% after the last line.
+%
+% (New v3.10) Frank Mittelbach points out that box255 may be
+% less deep than the last box inside, so he proposes to
+% measure the page depth with ~\boxmaxdepth=\maxdimen~.
+% (/New v3.10)
+%
+% (UL, New v4.00) We also resume the matter of
+% ~\vadjust~ items that was started in section_\ref{ss:output}.
+%
+% \TeX\ puts only nonzero interline
+% penalties into the vertical list (\TeX book p._105), while
+% ~lineno.sty~ formerly replaced the signal interline penalty by
+% something closing with an explicit penalty of the value that
+% the interline penalty would have without ~lineno.sty~.
+% This is usually 0. Now, explicit vertical penalties can be
+% very nasty with respect to ~\nopagebreak~, e.g., a low (even
+% positive) ~\widowpenalty~ may force a widow where you
+% explicitly tried to forbid it by ~\nopagebreak~
+% (see explanation soon below).
+% The ~\nopagebreak~ we create here would never work if all
+% those zero penalties were present.---On
+% the other hand, we cannot just omit Stephan's zero penalties,
+% because \TeX\ puts a penalty of 10000 after what ~lineno.sty~
+% inserts (\TeX book p._125). This penalty must be overridden
+% to allow page breaks between ordinary lines. To revive
+% ~\nopagebreak~, we therefore replace those zero (or low)
+% penalties by penalties that the user demanded by
+% ~\nopagebreak~.---This mechanism is not perfect and does not
+% exactly restore the original \LaTeX\ working of ~\pagebreak~
+% and ~\nopagebreak~. Viz., if there are several vertical
+% penalties after a line which were produced by closely sitting
+% ~\[no]pagebreak~s, without ~lineno.sty~ the lowest penalty would
+% be effective (cf._\TeX book exercise_14.10). Our mechanism, by
+% contrast, chooses the \emph{last} user-set penalty of the line
+% as the effective one. It would not be very difficult to come
+% more close to the original mechanism, but until someone urges
+% us we will cling to the present simple way. You may consider an
+% advantage of the difference between our mechanism and the
+% original one that the user here can actually override low
+% penalties by ~\nopagebreak~, which may be what a lay \LaTeX\
+% user would expect.
+%% ---Zero glue would do instead of zero
+%% penalty! This could make things easier. Maybe next time.
+%% <- v4.4: No, problem with column depth.
+% (/UL, /New v4.00)
+
+\def\MakeLineNo{%
+ \@LN@maybe@normalLineNumber % v4.31
+ \boxmaxdepth\maxdimen\setbox\z@\vbox{\unvbox\@cclv}%
+ \@tempdima\dp\z@ \unvbox\z@
+ \sbox\@tempboxa{\hb@xt@\z@{\makeLineNumber}}%
+%%
+% (New v4.00) Previously,
+% \begin{old}\begin{verbatim}
+% % \stepcounter{linenumber}%
+% \end{verbatim}
+% \end{old}
+%% %% TODO: Still first `\begin{old}'?
+% followed. (Of course, there was no
+% comment mark; I put it there to make
+% reading the actual code easy.)
+%
+% (New v4.22: improved) Why not just
+% \[~\global\advance\c@linenumber\@ne~?\]
+% ~\stepcounter~ additionally resets ``subordinate''
+% counters, but which could these (usefully) be?
+% Again, may be column counters with ~edtable.sty~!?
+%
+% But then, our ~edtable.sty~ and its ~longtable~ option
+% should use it as well. So use a shorthand supporting
+% uniformity. You can even use it as a hook for choosing
+% ~\global\advance\c@linenumber\@ne~ instead of our choice.
+% (/New v4.22)
+%%
+ \stepLineNumber
+%%
+% (New v4.4) Now
+%%
+ \ht\@tempboxa\z@ \@LN@depthbox
+%%
+% appends the box containing the line number without changing
+% ~\prevdepth~---see end of section.
+% Now is the time for inserting the $\dots$ (/New v4.4)
+%% The line number has now been placed (it may be invisible
+%% depending on the modulo feature), so
+%% we can insert the
+% ~\vadjust~ items. We cannot do this much later, because
+% their right place is above the artificial interline
+% penalty which Stephan's code will soon insert
+% (cf._\TeX book p._105). The next command is just ~\relax~
+% if no ~\vadjust~ items have been accumulated for the
+% current line. Otherwise it is a list macro inserting
+% the ~\vadjust~ items and finally resetting itself.
+% (This is made in section_\ref{ss:PVadj} below.)
+% If the final item is a penalty, it is stored so it can
+% compete with other things about page breaking.
+%%
+ \@LN@do@vadjusts
+ \count@\lastpenalty
+%%
+% At this place,
+% \begin{old}\begin{verbatim}
+% % \ifnum\outputpenalty=-\linenopenaltypar\else
+% \end{verbatim}
+% \end{old}
+% originally followed. We need something \emph{before} the
+% ~\else~:
+%%
+ \ifnum\outputpenalty=-\linenopenaltypar
+ \ifnum\count@=\z@ \else
+%%
+% So final ~\pagebreak[0]~ or ~\nopagebreak[0]~ has no
+% effect---but this will make a difference after headings only,
+% where nobody should place such a thing anyway.
+%%
+ \xdef\@LN@parpgbrk{%
+ \penalty\the\count@
+ \global\let\noexpand\@LN@parpgbrk
+ \noexpand\@LN@screenoff@pen}% v4.4
+%%
+% That penalty will replace former ~\kern\z@~ in
+% ~\linenumberpar~, see subsection_\ref{ss:calls}.---A
+% few days earlier, I tried to send just a penalty value.
+% However, the ~\kern\z@~ in ~\linenumberpar~ is crucial,
+% as I then found out. See below.---The final penalty is
+% repeated, but this does no harm. (It would not be very
+% difficult to avoid the repeating, but it may even be
+% less efficient.) It may be repeated due to the previous
+% ~\xdef~, but it may be repeated as well below in the
+% present macro where artificial interline penalty is to
+% be overridden.
+%%
+ \fi
+ \else
+%%
+% (/New v4.00)
+%% Corrected code alignment with v4.11.
+ \@tempcnta\outputpenalty
+ \advance\@tempcnta -\linenopenalty
+%%
+% (New v4.00)
+% \begin{old}\begin{verbatim}
+% % \penalty\@tempcnta
+% \end{verbatim}
+% \end{old}
+% followed previously. To give ~\nopagebreak~ a chance,
+% we do
+%% Corrected code alignment with v4.11.
+ \penalty \ifnum\count@<\@tempcnta \@tempcnta \else \count@ \fi
+%%
+% instead.---In ~linenox0.sty~, the ~\else~ thing once was omitted.
+% Sergei Mariev's complaint (thanks!) showed that it is vital
+% (see comment before ~\MakeLineNo~).
+% The remaining ~\fi~ from previous package version closes the
+% ~\ifnum\outputpenalty~\dots
+% (/New v4.00)
+%%
+ \fi
+ }
+
+% (New v4.00)
+
+\newcommand\stepLineNumber{\stepcounter{linenumber}}
+
+% For reason, see use above. (/New v4.00)
+%% %% TODO v4.4+: ~\newcommand~ more often!?
+%
+% (New v4.4) The depth preserving trick is drawn here from
+% ~\MakeLineNo~ because it will be used again in
+% section_\ref{ss:calls}.
+
+\def\@LN@depthbox{%
+ \dp\@tempboxa=\@tempdima
+ \nointerlineskip \kern-\@tempdima \box\@tempboxa}
+
+% (/New v4.4)
+%
+% \section{%
+% Control line numbering
+% \unskip}
+% \subsection{%
+% Inserting \scs{output} calls %% own subsec. v4.4.
+% \unskip}\label{ss:calls}
+% The line numbering is controlled via ~\par~. \LaTeX\
+% saved the \TeX-primitive ~\par~ in ~\@@par~. We push it
+% one level further out, and redefine ~\@@par~ to insert
+% the ~\interlinepenalty~ needed to trigger the
+% line numbering. And we need to allow pagebreaks after a
+% paragraph.
+%
+% New (2.05beta): the prevgraf test. A paragraph that ends with a
+% displayed equation, a ~\noindent\par~ or ~wrapfig.sty~ produce empty
+% paragraphs. These should not get a spurious line number via
+% ~\linenopenaltypar~.
+
+\let\@@@par\@@par
+\newcount\linenoprevgraf
+
+% (UL) And needs ~\linenoprevgraf~
+% to be a counter? Perhaps there may be a paragraph having
+% thousands of lines, so ~\mathchardef~ doesn't suffice (really??).
+%%
+%% %% TODO: limitations of lines per paragraph elsewhere?
+%% %% Signal penalties, e.g.!? ~\deadcycles~!?
+%%
+% A macro ending on ~\relax~ might suffice, but would be
+% somewhat slow. I think I will use ~\mathchardef~ next time.
+% Or has any user used ~\linenoprevgraf~? (/UL)
+
+%% v4.33: changed code alignment for better understanding.
+\def\linenumberpar{%
+ \ifvmode \@@@par \else
+ \ifinner \@@@par \else
+ \xdef\@LN@outer@holdins{\the\holdinginserts}% v4.2
+ \advance \interlinepenalty \linenopenalty
+ \linenoprevgraf \prevgraf
+ \global \holdinginserts \thr@@
+ \@@@par
+ \ifnum\prevgraf>\linenoprevgraf
+ \penalty-\linenopenaltypar
+ \fi
+%%
+% (New v4.00)
+% \begin{old}\begin{verbatim}
+% % \kern\z@
+% \end{verbatim}
+% \end{old}
+% was here previously. What for?
+% According to \TeX book p._125, Stephan's
+% interline penalty is changed into 10000. At the end of a
+% paragraph, the ~\parskip~ would follow that penalty of 10000,
+% so there could be a page break neither at the
+% ~\parskip~ nor at the ~\baselineskip~ (\TeX book p._110)---so
+% there could never be a page break between two paragraphs.
+% So something must screen off the 10000 penalty.
+% Indeed, the ~\kern~ is a place to break.
+% (Stephan once knew this: see `allow pagebreaks' above.)
+%
+% Formerly, I tried to replace ~\kern\z@~ by
+% \begin{old}\begin{verbatim}
+% % \penalty\@LN@parpgpen\relax
+% \end{verbatim}
+% \end{old}
+% ---but this allows a page break after heading. So:
+%%
+ \@LN@parpgbrk
+%%
+%% After heading, ~\kern\z@~ resulting from previous line
+%% (see below) is followed by ~\write~ or ~\penalty10000~,
+%% so causes no page break.
+%
+% These and similar changes were formerly done by ~linenox1.sty~.
+% (/New v4.00)
+%
+% (New v4.4)
+% A ~\belowdisplayskip~ may precede the previous when the paragraph
+% ends on a display-math; or there may be a ~\topsep~ from a list, etc.
+% ~\addvspace~ couldn't take account for it with ~\kern\z@~
+% here. v4.32 therefore moved the space down -- with at least two
+% bad consequences.
+% Moreover, David Josef Dev observes that ~\kern\z@~ may
+% inappropriately yield column depth 0pt.
+% For these reasons, we introduce ~\@LN@screenoff@pen~ below.
+% (/New v4.4)
+%%
+ \global\holdinginserts\@LN@outer@holdins % v4.2
+ \advance\interlinepenalty -\linenopenalty
+ \fi % from \ifinner ... \else
+ \fi} % from \ifvmode ... \else
+
+% (New v4.00, v4.4) Initialize ~\@LN@parpgbrk~, accounting
+% for earlier space and for appropriate columndepth.
+% We use former ~\MakeLineNo~'s depth-preverving trick
+% ~\@LN@depthbox~ again:
+
+\def\@LN@screenoff@pen{%
+ \ifdim\lastskip=\z@
+ \@tempdima\prevdepth \setbox\@tempboxa\null
+ \@LN@depthbox \fi}
+
+\global\let\@LN@parpgbrk\@LN@screenoff@pen
+
+% (/New v4.4, v4.00)
+% \subsection{%
+% Turning on/off %% own subsec. v4.4.
+% \unskip}\label{ss:OnOff}
+% The basic commands to enable and disable line numbers.
+% ~\@par~ and ~\par~ are only touched, when they are ~\let~
+% to ~\@@@par~/~\linenumberpar~. The line number may be
+% reset to 1 with the star-form, or set by an optional
+% argument ~[~<number>~]~.
+%
+% (New v4.00) We add ~\ifLineNumbers~ etc.\ since
+% a number of our new adjustments need to know whether
+% linenumbering is active. This just provides a kind of
+% shorthand for ~\ifx\@@par\linenumberpar~; moreover it is
+% more stable: who knows what may happen to ~\@@par~?---A
+% caveat: ~\ifLineNumbers~ may be wrong. E.g., it may be
+% ~\iffalse~ where it acts, while a ~\linenumbers~ a few
+% lines below---in the same paragraph---brings about that
+% the line where the ~\ifLineNumbers~ appears gets a
+% marginal number.
+%% Better implementation suggested below.
+%%
+% (New v4.3) Just noticed: Such tricks have been
+% disallowed with v4.11, see subsections_\ref{ss:LL}
+% and_\ref{ss:OnOff}.---Moreover, the switching between
+% meanings of ~\linelabel~ for a possible error message
+% as of v4.11 is removed. Speed is difficult to esteem
+% and also depends on applications. Just use the most
+% simple code you find. (/New v4.3)
+
+\newif\ifLineNumbers \LineNumbersfalse
+
+% (/New v4.00)
+
+\def\linenumbers{%
+ \LineNumberstrue % v4.00
+ \xdef\@LN@outer@holdins{\the\holdinginserts}% v4.3
+%%
+% (New v4.3) The previous line is for ~{linenomath}~
+% in a first numbered paragraph. (/New v4.3)
+%%
+ \let\@@par\linenumberpar
+ % \let\linelabel\@LN@linelabel % v4.11, removed v4.3
+ \ifx\@par\@@@par\let\@par\linenumberpar\fi
+ \ifx\par\@@@par\let\par\linenumberpar\fi
+ \@LN@maybe@moduloresume % v4.31
+ \@ifnextchar[{\resetlinenumber}%]
+ {\@ifstar{\resetlinenumber}{}}%
+ }
+
+\def\nolinenumbers{%
+ \LineNumbersfalse % v4.00
+ \let\@@par\@@@par
+ % \let\linelabel\@LN@LLerror % v4.11, removed v4.3
+ \ifx\@par\linenumberpar\let\@par\@@@par\fi
+ \ifx\par\linenumberpar\let\par\@@@par\fi
+ }
+
+% (New v4.00) Moreover, it is useful to switch to
+% ~\nolinenumbers~ in ~\@arrayparboxrestore~. We postpone this
+% to section_\ref{ss:ReDef} where we'll have an appending macro
+% for doing this. (/New v4.00)
+%
+% What happens with a display math? Since ~\par~ is not executed,
+% when breaking the lines before a display, they will not get
+% line numbers. Sorry, but I do not dare to change
+% ~\interlinepenalty~ globally, nor do I want to redefine
+% the display math environments here.
+% \begin{displaymath}
+% display \ math
+% \end{displaymath}
+% See the subsection below, for a wrapper environment to make
+% it work. But that requires to wrap each and every display
+% in your \LaTeX\ source %%.
+%% v4.3:
+% (see option ~displaymath~ in subsections_\ref{ss:v3opts}
+% and_\ref{ss:display} for some relief [UL]).
+%
+% The next two commands are provided to turn on line
+% numbering in a specific mode. Please note the difference:
+% for pagewise numbering, ~\linenumbers~ comes first to
+% inhibit it from seeing optional arguments, since
+% re-/presetting the counter is useless.
+
+\def\pagewiselinenumbers{\linenumbers\setpagewiselinenumbers}
+\def\runninglinenumbers{\setrunninglinenumbers\linenumbers}
+
+% Finally, it is a \LaTeX\ style, so we provide for the use
+% of environments, including the suppression of the
+% following paragraph's indentation.
+%
+%% TODO: v4.4+:
+% (UL) I am drawing the following
+% private thoughts of Stephan's to publicity so that others may
+% think about them---or to remind myself of them in an efficient
+% way. (/UL)
+%% UL changed `%%%' to `% %' below.
+%% TODO: add \par to \linenumbers, if called from an environment. %% v4.3
+%% ToDO: add an \@endpe hack if \linenumbers are turned on
+% \begin{old}\begin{verbatim}
+% % TO DO: add \par to \linenumbers, if called from an environment.
+% % To DO: add an \@endpe hack if \linenumbers are turned on
+% % in horizontal mode. {\par\parskip\z@\noindent} or
+% % something.
+% \end{verbatim}
+% \end{old}
+% (UL) However, I rather think that ~\linenumbers~ and %% v4.31
+% ~\nolinenumbers~ should execute a ~\par~ already. (Then the
+% ~\par~s in the following definitions should be removed.) (/UL)
+
+\@namedef{linenumbers*}{\par\linenumbers*}
+\@namedef{runninglinenumbers*}{\par\runninglinenumbers*}
+
+\def\endlinenumbers{\par\@endpetrue}
+\let\endrunninglinenumbers\endlinenumbers
+\let\endpagewiselinenumbers\endlinenumbers
+\expandafter\let\csname endlinenumbers*\endcsname\endlinenumbers
+\expandafter\let\csname endrunninglinenumbers*\endcsname\endlinenumbers
+\let\endnolinenumbers\endlinenumbers
+
+%
+% \subsection{%
+% Display math
+% \unskip}\label{ss:DM}
+%
+% Now we tackle the problem to get display math working.
+% There are different options.
+% \begin{enumerate}\item[
+% 1.] Precede every display math with a ~\par~.
+% Not too good.
+% \item[
+% 2.] Change ~\interlinepenalty~ and associates globally.
+% Unstable.
+% \item[
+% 3.] Wrap each display math with a ~{linenomath}~
+% environment.
+% \end{enumerate}
+% We'll go for option 3. See if it works:
+% \begin{linenomath}
+% \begin{equation}
+% display \ math
+% \end{equation}
+% \end{linenomath}
+% The star form ~{linenomath*}~ should also number the lines
+% of the display itself,
+% \begin{linenomath*}
+% \begin{eqnarray}
+% multi && line \\
+% display && math \\
+% &
+% \begin{array}{c}
+% with \\
+% array
+% \end{array}
+% &
+% \end{eqnarray}
+% \end{linenomath*}
+% including multline displays.
+%
+% First, here are two macros to turn
+% on linenumbering on paragraphs preceeding displays, with
+% numbering the lines of the display itself, or without.
+% The ~\ifx..~ tests if line numbering is turned on. It
+% does not harm to add these wrappers in sections that are
+% not numbered. Nor does it harm to wrap a display
+% twice, e.q, in case you have some ~{equation}~s wrapped
+% explicitely, and later you redefine ~\equation~ to do it
+% automatically.
+%
+% (New v4.3) To avoid the spurious line number above a
+% display in vmode, I insert ~\ifhmode~. (/New v4.3)
+
+\newcommand\linenomathNonumbers{%
+ \ifLineNumbers
+%% \ifx\@@par\@@@par\else
+ \ifnum\interlinepenalty>-\linenopenaltypar
+ \global\holdinginserts\thr@@
+ \advance\interlinepenalty \linenopenalty
+ \ifhmode % v4.3
+ \advance\predisplaypenalty \linenopenalty
+ \fi
+ \fi
+ \fi
+ \ignorespaces
+ }
+
+\newcommand\linenomathWithnumbers{%
+ \ifLineNumbers
+%% \ifx\@@par\@@@par\else
+ \ifnum\interlinepenalty>-\linenopenaltypar
+ \global\holdinginserts\thr@@
+ \advance\interlinepenalty \linenopenalty
+ \ifhmode % v4.3
+ \advance\predisplaypenalty \linenopenalty
+ \fi
+ \advance\postdisplaypenalty \linenopenalty
+ \advance\interdisplaylinepenalty \linenopenalty
+ \fi
+ \fi
+ \ignorespaces
+ }
+
+% The ~{linenomath}~ environment has two forms, with and
+% without a star. The following two macros define the
+% environment, where the stared/non-stared form does/doesn't number the
+% lines of the display or vice versa.
+
+\newcommand\linenumberdisplaymath{%
+ \def\linenomath{\linenomathWithnumbers}%
+ \@namedef{linenomath*}{\linenomathNonumbers}%
+ }
+
+\newcommand\nolinenumberdisplaymath{%
+ \def\linenomath{\linenomathNonumbers}%
+ \@namedef{linenomath*}{\linenomathWithnumbers}%
+ }
+
+\def\endlinenomath{%
+ \ifLineNumbers % v4.3
+ \global\holdinginserts\@LN@outer@holdins % v4.21
+ \fi
+ \global % v4.21 support for LaTeX2e earlier than 1996/07/26.
+ \@ignoretrue
+}
+\expandafter\let\csname endlinenomath*\endcsname\endlinenomath
+
+% The default is not to number the lines of a display. But
+% the package option ~mathlines~ may be used to switch
+% that behavior.
+
+\nolinenumberdisplaymath
+
+%
+% \section{%
+% Line number references
+% \unskip}\label{s:LNref}
+% \subsection{%
+% Internals %% New subsec. v4.3.
+% \unskip}
+% The only way to get a label to a line number in a
+% paragraph is to ask the output routine to mark it.
+%
+% (New v4.00) The following two paragraphs don't hold any
+% longer, see below. (/New v4.00)
+% \begin{old}\begin{verbatim}
+% % We use the marginpar mechanism to hook to ~\output~ for a
+% % second time. Marginpars are floats with number $-1$, we
+% % fake marginpars with No $-2$. Originally, every negative
+% % numbered float was considered to be a marginpar.
+% %
+% % The float box number ~\@currbox~ is used to transfer the
+% % label name in a macro called ~\@LNL@~<box-number>.
+% \end{verbatim}
+% \end{old}
+% A ~\newlabel~ is written to the aux-file. The reference
+% is to ~\theLineNumber~, \emph{not} ~\thelinenumber~.
+% This allows to hook in, as done below for pagewise line
+% numbering.
+%
+% (New v3.03) The ~\@LN@ExtraLabelItems~ are added for a hook
+% to keep packages like ~{hyperref}~ happy. (/New v3.03)
+%
+% (New v4.00)
+% We fire the ~\marginpar~ mechanism, so we leave \LaTeX's
+% ~\@addmarginpar~ untouched.
+% \begin{old}\begin{verbatim}
+% % \let\@LN@addmarginpar\@addmarginpar
+% % \def\@addmarginpar{%
+% % \ifnum\count\@currbox>-2\relax
+% % \expandafter\@LN@addmarginpar
+% % \else
+% % \@cons\@freelist\@currbox
+% % \protected@write\@auxout{}{%
+% % \string\newlabel
+% % {\csname @LNL@\the\@currbox\endcsname}%
+% % {{\theLineNumber}{\thepage}\@LN@ExtraLabelItems}}%
+% % \fi}
+% \end{verbatim}
+% \end{old}
+% OK, we keep Stephan's ~\@LN@ExtraLabelItems~:
+% (/New v4.00)
+
+\let\@LN@ExtraLabelItems\@empty
+
+% (New v4.00)
+% We imitate the ~\marginpar~ mechanism without using the
+% ~\@freelist~ boxes. ~\linelabel~ will indeed place a signal
+% penalty (~\@Mllbcodepen~, new), and it will put a label into
+% some list macro ~\@LN@labellist~. A new part of the output
+% routine will take the labels from the list and will write
+% ~\newlabel~s to the .aux file.
+%
+% The following is a version of \LaTeX's ~\@xnext~.
+
+\def\@LN@xnext#1\@lt#2\@@#3#4{\def#3{#1}\gdef#4{#2}}
+
+% This takes an item ~#1~ from a list ~#4~ into ~#3~;
+% to be used as ~\expandafter\@LN@xnext#4\@@#3#4~.
+% Our lists use ~\@lt~ after each item for separating.
+% Indeed, there will be another list macro which can
+% appear as argument ~#4~, this will be used for moving
+% ~\vadjust~ items (section_\ref{ss:PVadj}).
+% The list for ~\linelabel~s is the following:
+
+\global\let\@LN@labellist\@empty
+
+% The next is the new part of the output routine writing the
+% ~\newlabel~ to the .aux file. Since it is no real page output,
+% the page is put back to top of the main vertical list.
+
+\def\WriteLineNo{%
+ \unvbox\@cclv
+ \expandafter \@LN@xnext \@LN@labellist \@@
+ \@LN@label \@LN@labellist
+ \protected@write\@auxout{}{\string\newlabel{\@LN@label}%
+ {{\theLineNumber}{\thepage}\@LN@ExtraLabelItems}}%
+}
+
+% (/New v4.00)
+%
+% \subsection{%
+% The \scs{linelabel} command
+% \unskip}\label{ss:LL}
+% To refer to a place in line ~\ref{~<foo>~}~ at page
+% ~\pageref{~<foo>~}~ you place a ~\linelabel{~<foo>~}~ at
+% that place.
+%
+% \linelabel{demo}
+% \marginpar{\tiny\raggedright
+% See if it works: This paragraph
+% starts on page \pageref{demo}, line
+% \ref{demo}.
+% \unskip}%
+% (New v4.11)
+% \begin{old}\begin{verbatim}
+% % If you use this command outside a ~\linenumbers~
+% % paragraph, you will get references to some bogus
+% % line numbers, sorry. But we don't disable the command,
+% % because only the ~\par~ at the end of a paragraph may
+% % decide whether to print line numbers on this paragraph
+% % or not. A ~\linelabel~ may legally appear earlier than
+% % ~\linenumbers~.
+% \end{verbatim}
+% \end{old}
+% This trick is better not allowed---see subsections_\ref{ss:LL}
+% and_\ref{ss:OnOff}.
+% (/New v4.11)
+%
+% ~\linelabel~
+% \begin{old}\begin{verbatim}
+% %, via a fake float number $-2$, %% new mechanism v4.00
+% \end{verbatim}
+% \end{old}
+% puts a
+% ~\penalty~ into a ~\vadjust~, which triggers the
+% pagebuilder after putting the current line to the main
+% vertical list. A ~\write~ is placed on the main vertical
+% list, which prints a reference to the current value of
+% ~\thelinenumber~ and ~\thepage~ at the time of the
+% ~\shipout~.
+%
+% A ~\linelabel~ is allowed only in outer horizontal mode.
+% In outer vertical mode we start a paragraph, and ignore
+% trailing spaces (by fooling ~\@esphack~).
+%
+% (New v4.00) We aim at relaxing the previous condition.
+% We insert a hook ~\@LN@mathhook~ and a shorthand
+% ~\@LN@postlabel~ to support the ~mathrefs~ option which
+% allows ~\linelabel~ in math mode.
+%
+% The next paragraph is no longer valid.
+% \begin{old}\begin{verbatim}
+% % The argument of ~\linelabel~ is put into a macro with a
+% % name derived from the number of the allocated float box.
+% % Much of the rest is dummy float setup.
+% \end{verbatim}
+% \end{old}
+% (/New v4.00)
+%
+% (New v4.11)
+% \begin{old}\begin{verbatim}
+% % \def\linelabel#1{%
+% \end{verbatim}
+% \end{old}
+% I forgot ~\linenumbers~ today, costed me hours or so.
+
+\def\@LN@LLerror{\PackageError{lineno}{%
+ \string\linelabel\space without \string\linenumbers}{%
+ Just see documentation. (New feature v4.11)}\@gobble}
+
+% (New v4.3) Here some things have changed for v4.3.
+% The previous ~#1~ has been replaced by ~\@gobble~.
+% Ensuing, the ~\linelabel~ error message is re-implemented.
+% I find it difficult to compare efficiency of slight
+% alternatives---so choose an easy one. Explicit switching
+% in ~\linenumbers~ and ~\nolinenumbers~ is an additional
+% command that may better be avoided.
+
+\newcommand\linelabel{%
+ \ifLineNumbers \expandafter \@LN@linelabel
+ \else \expandafter \@LN@LLerror \fi}
+%%\let\linelabel\@LN@LLerror
+
+\gdef\@LN@linelabel#1{%
+%%
+% ~\gdef~ for hyperref ``symbolically''. (/New v4.11)
+%%
+ \ifx\protect\@typeset@protect
+%%
+% $\gets$ And a ~\linelabel~ should never be replicated in a
+% mark or a TOC entry. (/New v4.3)
+%%
+ \ifvmode
+ \ifinner \else
+ \leavevmode \@bsphack \@savsk\p@
+ \fi
+ \else
+ \@bsphack
+ \fi
+ \ifhmode
+ \ifinner
+ \@parmoderr
+ \else
+%%
+% (New v4.00)
+%%
+ \@LN@postlabel{#1}%
+% \begin{old}\begin{verbatim}
+% % \@floatpenalty -\@Mii
+% % \@next\@currbox\@freelist
+% % {\global\count\@currbox-2%
+% % \expandafter\gdef\csname @LNL@\the\@currbox\endcsname{#1}}%
+% % {\@floatpenalty\z@ \@fltovf \def\@currbox{\@tempboxa}}%
+% % \begingroup
+% % \setbox\@currbox \color@vbox \vbox \bgroup \end@float
+% % \endgroup
+% % \@ignorefalse \@esphack
+% \end{verbatim}
+% \end{old}
+% (/New v4.00)
+%%
+ \@esphack
+%%
+% (New v4.00)
+% The ~\@ignorefalse~ was appropriate before because the
+% ~\@Esphack~ in ~\end@float~ set ~\@ignoretrue~. Cf._\LaTeX's
+% ~\@xympar~. (/New v4.00)
+%%
+ \fi
+ \else
+%%
+% (New v4.00)
+%%
+ \@LN@mathhook{#1}%
+% \begin{old}\begin{verbatim}
+% % \@parmoderr
+% \end{verbatim}
+% \end{old}
+% Instead of complaining, you may just do your job.
+% (/New v4.00)
+%%
+ \fi
+ \fi
+ }
+
+% (New v4.00) The shorthand just does what happened
+% with ~linenox0.sty~ before ~ednmath0.sty~ (New v4.1:
+% now ~mathrefs~ option) appeared, and
+% the hook is initialized to serve the same purpose.
+% So errors come just where Stephan had built them in,
+% and this is just the \LaTeX\ ~\marginpar~ behaviour.
+
+\def\@LN@postlabel#1{\g@addto@macro\@LN@labellist{#1\@lt}%
+ \vadjust{\penalty-\@Mllbcodepen}}
+\def\@LN@mathhook#1{\@parmoderr}
+
+% (/New v4.00)
+%
+% \modulolinenumbers[3]
+% \firstlinenumber{1}
+% \section{%
+% The appearance of the line numbers
+% \unskip}\label{appearance}
+% \subsection{%
+% Basic code %% own subsec. v4.2.
+% \unskip}
+%
+% The line numbers are set as ~\tiny\sffamily\arabic{linenumber}~,
+% $10pt$ left of the text. With options to place it
+% right of the text, or . . .
+%
+% . . . here are the hooks:
+
+\def\makeLineNumberLeft{%
+ \hss\linenumberfont\LineNumber\hskip\linenumbersep}
+
+\def\makeLineNumberRight{%
+ \linenumberfont\hskip\linenumbersep\hskip\columnwidth
+ \hb@xt@\linenumberwidth{\hss\LineNumber}\hss}
+
+\def\linenumberfont{\normalfont\tiny\sffamily}
+
+\newdimen\linenumbersep
+\newdimen\linenumberwidth
+
+\linenumberwidth=10pt
+\linenumbersep=10pt
+
+% Margin switching requires ~pagewise~ numbering mode, but
+% choosing the left or right margin for the numbers always
+% works.
+
+\def\switchlinenumbers{\@ifstar
+ {\let\makeLineNumberOdd\makeLineNumberRight
+ \let\makeLineNumberEven\makeLineNumberLeft}%
+ {\let\makeLineNumberOdd\makeLineNumberLeft
+ \let\makeLineNumberEven\makeLineNumberRight}%
+ }
+
+\def\setmakelinenumbers#1{\@ifstar
+ {\let\makeLineNumberRunning#1%
+ \let\makeLineNumberOdd#1%
+ \let\makeLineNumberEven#1}%
+ {\ifx\c@linenumber\c@runninglinenumber
+ \let\makeLineNumberRunning#1%
+ \else
+ \let\makeLineNumberOdd#1%
+ \let\makeLineNumberEven#1%
+ \fi}%
+ }
+
+\def\leftlinenumbers{\setmakelinenumbers\makeLineNumberLeft}
+\def\rightlinenumbers{\setmakelinenumbers\makeLineNumberRight}
+
+\leftlinenumbers*
+
+% ~\LineNumber~ is a hook which is used for the modulo stuff.
+% It is the command to use for the line number, when you
+% customize ~\makeLineNumber~. Use ~\thelinenumber~ to
+% change the outfit of the digits.
+%
+%
+% We will implement two modes of operation:
+% \begin{itemize}
+% \item numbers ~running~ through (parts of) the text
+% \item ~pagewise~ numbers starting over with one on top of
+% each page.
+% \end{itemize}
+% Both modes have their own count register, but only one is
+% allocated as a \LaTeX\ counter, with the attached
+% facilities serving both.
+
+\newcounter{linenumber}
+\newcount\c@pagewiselinenumber
+\let\c@runninglinenumber\c@linenumber
+
+% Only the running mode counter may be reset, or preset,
+% for individual paragraphs. The pagewise counter must
+% give a unique anonymous number for each line.
+%
+% (New v4.3) ~\newcounter{linenumber}~
+% was the only ~\newcounter~ in the whole package, and
+% formerly I was near using ~\newcount~ instead. Yet
+% ~\newcounter~ may be quite useful for ~\includeonly~.
+% It also supports resetting ``subcounters'', but what
+% could these be? Well, ~edtable~ might introduce a
+% subcounter for columns.
+% (Note that \LaTeX's setting commands would work with
+% ~\newcount\c@linenumber~ already, apart from this.
+% And perhaps sometimes ~\refstepcounter{linenumber}~
+% wouldn't work---cf._my discussion of ~\stepcounter~ in
+% subsection_\ref{ss:MLN}, similarly ~\refstep...~ would
+% be quite useless.
+% Even the usual redefinitions of ~\thelinenumber~ would
+% work. It is nice, on the other hand, that
+% ~\thelinenumber~ is predefined here. \LaTeX's
+% initialization of the value perhaps just serves making
+% clear \LaTeX\ counters should always be changed
+% globally.---Shortened and improved the discussion here.)
+% (/New v4.3)
+%
+% (New v4.22)
+% ~\c@linenumber~ usually is---globally---incremented by
+% ~\stepcounter~ (at present), so resetting it locally would
+% raise the save stack problem of \TeX book p._301, moreover
+% it would be is useless, there is no hope of keeping the
+% values local (but see subsection_\ref{ss:ILN}). So I insert
+% ~\global~: (/New v4.22)
+
+\newcommand*\resetlinenumber[1][\@ne]{%
+ \global % v4.22
+ \c@runninglinenumber#1\relax}
+
+% (New v4.00)
+% \begin{old}\begin{verbatim}
+% % \newcommand\resetlinenumber[1][1]{\c@runninglinenumber#1}
+% \end{verbatim}
+% \end{old}
+% Added ~\relax~, being quite sure that this does no harm
+% and is quite important, as with ~\setcounter~ etc.
+% I consider this a bug fix (although perhaps no user has
+% ever had a problem with this). (/New v4.00)
+%
+% (v4.22: I had made much fuss about resetting subordinate
+% counters here---removed, somewhat postponed.)
+%
+%% TODO v4.4+:
+%% \newcommand*\resetlinenumber[1][\@ne]{%
+%% \ifx\c@linenumber\c@runninglinenumber
+%% \global\c@linenumber#1\relax
+%% \global\advance\c@linenumber\m@ne
+%% \stepLineNumber
+%% \else
+%% \PackageError{lineno}%% Shorthand!?
+%% {You can't reset line number in pagewise mode}%
+%% {This should suffice.}%
+%% \fi
+%% }
+%
+% \subsection{%
+% Running line numbers
+% \unskip}
+%
+% Running mode is easy, ~\LineNumber~ and ~\theLineNumber~
+% produce ~\thelinenumber~, which defaults to
+% ~\arabic{linenumber}~, using the ~\c@runninglinenumber~
+% counter. This is the default mode of operation.
+
+\def\makeRunningLineNumber{\makeLineNumberRunning}
+
+\def\setrunninglinenumbers{%
+ \def\theLineNumber{\thelinenumber}%
+ \let\c@linenumber\c@runninglinenumber
+ \let\makeLineNumber\makeRunningLineNumber
+ }
+
+\setrunninglinenumbers\resetlinenumber
+
+%
+% \subsection{%
+% Pagewise line numbers
+% \unskip}\label{ss:PW}
+%
+% Difficult, if you think about it. The number has to be
+% printed when there is no means to know on which page it
+% will end up, except through the aux-file. My solution
+% is really expensive, but quite robust.
+%
+% With version ~v2.00~ the hashsize requirements are
+% reduced, because we do not need one controlsequence for
+% each line any more. But this costs some computation time
+% to find out on which page we are.
+%
+% ~\makeLineNumber~ gets a hook to log the line and page
+% number to the aux-file. Another hook tries to find out
+% what the page offset is, and subtracts it from the counter
+% ~\c@linenumber~. Additionally, the switch
+% ~\ifoddNumberedPage~ is set true for odd numbered pages,
+% false otherwise.
+
+\def\setpagewiselinenumbers{%
+ \let\theLineNumber\thePagewiseLineNumber
+ \let\c@linenumber\c@pagewiselinenumber
+ \let\makeLineNumber\makePagewiseLineNumber
+ }
+
+\def\makePagewiseLineNumber{\logtheLineNumber\getLineNumber
+ \ifoddNumberedPage
+ \makeLineNumberOdd
+ \else
+ \makeLineNumberEven
+ \fi
+ }
+
+% Each numbered line gives a line to the aux file
+% \begin{verse}
+% ~\@LN{~<line>~}{~<page>~}~
+% \end{verse}
+% very similar to the ~\newlabel~ business, except that we need
+% an arabic representation of the page number, not what
+% there might else be in ~\thepage~.
+
+\def\logtheLineNumber{\protected@write\@auxout{}{%
+%%
+% (New v4.00) (UL)
+% As Daniel Doherty observed, the earlier line
+% \begin{old}\begin{verbatim}
+% % \string\@LN{\the\c@linenumber}{\noexpand\the\c@page}}}
+% \end{verbatim}
+% \end{old}
+% here may lead into an infinite loop when the user resets
+% the page number (think of ~\pagenumbering~, e.g.).
+% Stephan and I brief\/ly discussed the matter and decided
+% to introduce a ``physical''-page counter to which
+% ~\logtheLineNumber~ refers. It was Stephan's idea to use
+% ~\cl@page~ for reliably augmenting the ``physical''-page
+% counter. However, this relies on the output routine once
+% doing ~\stepcounter{page}~. Before Stephan's
+% suggestion, I had thought of appending the stepping to
+% \LaTeX's ~\@outputpage~.---So the macro definition ends
+% as follows.
+%%
+ \string\@LN{\the\c@linenumber}{%
+%%
+% (New v4.2)
+%% \noexpand\number\n@LN@truepage}}}
+%%
+% The `truepage' counter must start with ~\c@~ so it works
+% with ~\include~, and the ~\@addtoreset~ below is needed
+% for the same purpose.
+%%
+ \noexpand\the\c@LN@truepage}}}
+
+%% \newcount\n@LN@truepage
+%% \g@addto@macro\cl@page{\global\advance\n@LN@truepage\@ne}
+\newcount\c@LN@truepage
+\g@addto@macro\cl@page{\global\advance\c@LN@truepage\@ne}
+\@addtoreset{LN@truepage}{@ckpt}
+
+% (/New v4.2) I had thought of offering more
+% features of a \LaTeX\ counter. However, the user should
+% better \emph{not} have access to this counter. ~\c@page~
+% should suffice as a pagewise master counter.---To be sure,
+% along the present lines the user \emph{can} manipulate
+% ~\c@LN@truepage~ by ~\stepcounter{page}~. E.g., she might
+% do this in order to manually insert a photograph. Well,
+% seems not to harm.
+%
+% The above usage of ~\g@addto@macro~ and ~\cl@page~ may be
+% not as stable as Stephan intended. His proposal used
+% ~\xdef~ directly. But he used ~\cl@page~ as well, and who
+% knows \dots{} And as to ~\g@addto@macro~, I have introduced
+% it for list macros anyway.
+% (/UL) (/New v4.00)
+%
+% From the aux-file we get one macro ~\LN@P~<page> for each
+% page with line numbers on it. This macro calls four other
+% macros with one argument each. These macros are
+% dynamically defined to do tests and actions, to find out
+% on which page the current line number is located.
+%
+% We need sort of a pointer to the first page with line
+% numbers, initiallized to point to nothing:
+
+\def\LastNumberedPage{first}
+\def\LN@Pfirst{\nextLN\relax}
+
+% The four dynamic macros are initiallized to reproduce
+% themselves in an ~\xdef~
+
+\let\lastLN\relax % compare to last line on this page
+\let\firstLN\relax % compare to first line on this page
+\let\pageLN\relax % get the page number, compute the linenumber
+\let\nextLN\relax % move to the next page
+
+% During the end-document run through the aux-files, we
+% disable ~\@LN~. I may put in a check here later, to give
+% a rerun recommendation.
+
+\AtEndDocument{\let\@LN\@gobbletwo}
+
+% Now, this is the tricky part. First of all, the whole
+% definition of ~\@LN~ is grouped, to avoid accumulation
+% on the save stack. Somehow ~\csname~<cs>~\endcsname~ pushes
+% an entry, which stays after an ~\xdef~ to that <cs>.
+%
+% If ~\LN@P~<page> is undefined, initialize it with the
+% current page and line number, with the
+% \emph{pointer-to-the-next-page} pointing to nothing. And
+% the macro for the previous page will be redefined to point
+% to the current one.
+%
+% If the macro for the current page already exists, just
+% redefine the \emph{last-line-number} entry.
+%
+% Finally, save the current page number, to get the pointer to the
+% following page later.
+
+\def\@LN#1#2{{\expandafter\@@LN
+ \csname LN@P#2C\@LN@column\expandafter\endcsname
+ \csname LN@PO#2\endcsname
+ {#1}{#2}}}
+
+\def\@@LN#1#2#3#4{\ifx#1\relax
+ \ifx#2\relax\gdef#2{#3}\fi
+ \expandafter\@@@LN\csname LN@P\LastNumberedPage\endcsname#1%
+ \xdef#1{\lastLN{#3}\firstLN{#3}%
+ \pageLN{#4}{\@LN@column}{#2}\nextLN\relax}%
+ \else
+ \def\lastLN##1{\noexpand\lastLN{#3}}%
+ \xdef#1{#1}%
+ \fi
+ \xdef\LastNumberedPage{#4C\@LN@column}}
+
+% The previous page macro gets its pointer to the
+% current one, replacing the ~\relax~ with the cs-token
+% ~\LN@P~<page>.
+
+\def\@@@LN#1#2{{\def\nextLN##1{\noexpand\nextLN\noexpand#2}%
+ \xdef#1{#1}}}
+
+% Now, to print a line number, we need to find the page,
+% where it resides. This will most probably be the page where
+% the last one came from, or maybe the next page. However, it can
+% be a completely different one. We maintain a cache,
+% which is ~\let~ to the last page's macro. But for now
+% it is initialized to expand ~\LN@first~, where the poiner
+% to the first numbered page has been stored in.
+
+\def\NumberedPageCache{\LN@Pfirst}
+
+% To find out on which page the current ~\c@linenumber~ is,
+% we define the four dynamic macros to do something usefull
+% and execute the current cache macro. ~\lastLN~ is run
+% first, testing if the line number in question may be on a
+% later page. If so, disable ~\firstLN~, and go on to the
+% next page via ~\nextLN~.
+
+\def\testLastNumberedPage#1{\ifnum#1<\c@linenumber
+ \let\firstLN\@gobble
+ \fi}
+
+% Else, if ~\firstLN~ finds out that we need an earlier
+% page, we start over from the beginning. Else, ~\nextLN~
+% will be disabled, and ~\pageLN~ will run
+% ~\gotNumberedPage~ with four arguments: the first line
+% number on this column, the page number, the column
+% number, and the first line on the page.
+
+\def\testFirstNumberedPage#1{\ifnum#1>\c@linenumber
+ \def\nextLN##1{\testNextNumberedPage\LN@Pfirst}%
+ \else
+ \let\nextLN\@gobble
+ \def\pageLN{\gotNumberedPage{#1}}%
+ \fi}
+
+% We start with ~\pageLN~ disabled and ~\nextLN~ defined to
+% continue the search with the next page.
+
+\long\def \@gobblethree #1#2#3{}
+
+\def\testNumberedPage{%
+ \let\lastLN\testLastNumberedPage
+ \let\firstLN\testFirstNumberedPage
+ \let\pageLN\@gobblethree
+ \let\nextLN\testNextNumberedPage
+ \NumberedPageCache
+ }
+
+% When we switch to another page, we first have to make
+% sure that it is there. If we are done with the last
+% page, we probably need to run \TeX\ again, but for the
+% rest of this run, the cache macro will just return four
+% zeros. This saves a lot of time, for example if you have
+% half of an aux-file from an aborted run, in the next run
+% the whole page-list would be searched in vain again and
+% again for the second half of the document.
+%
+% If there is another page, we iterate the search.
+
+\def\testNextNumberedPage#1{\ifx#1\relax
+ \global\def\NumberedPageCache{\gotNumberedPage0000}%
+ \PackageWarningNoLine{lineno}%
+ {Linenumber reference failed,
+ \MessageBreak rerun to get it right}%
+ \else
+ \global\let\NumberedPageCache#1%
+ \fi
+ \testNumberedPage
+ }
+
+% \linelabel{demo2}
+% \marginpar{\tiny\raggedright
+% Let's see if it finds the label
+% on page \pageref{demo},
+% line \ref{demo}, and back here
+% on page \pageref{demo2}, line
+% \ref{demo2}.
+% \unskip}%
+% To separate the official hooks from the internals there is
+% this equivalence, to hook in later for whatever purpose:
+
+\let\getLineNumber\testNumberedPage
+
+% So, now we got the page where the number is on. We
+% establish if we are on an odd or even page, and calculate
+% the final line number to be printed.
+
+\newif\ifoddNumberedPage
+\newif\ifcolumnwiselinenumbers
+\columnwiselinenumbersfalse
+
+\def\gotNumberedPage#1#2#3#4{\oddNumberedPagefalse
+ \ifodd \if@twocolumn #3\else #2\fi\relax\oddNumberedPagetrue\fi
+ \advance\c@linenumber\@ne
+ \ifcolumnwiselinenumbers
+ \subtractlinenumberoffset{#1}%
+ \else
+ \subtractlinenumberoffset{#4}%
+ \fi
+ }
+
+% You might want to run the pagewise mode with running line
+% numbers, or you might not. It's your choice:
+
+\def\runningpagewiselinenumbers{%
+ \let\subtractlinenumberoffset\@gobble
+ }
+
+\def\realpagewiselinenumbers{%
+ \def\subtractlinenumberoffset##1{\advance\c@linenumber-##1\relax}%
+ }
+
+\realpagewiselinenumbers
+
+% For line number references, we need a protected call to
+% the whole procedure, with the requested line number stored
+% in the ~\c@linenumber~ counter. This is what gets printed
+% to the aux-file to make a label:
+
+\def\thePagewiseLineNumber{\protect
+ \getpagewiselinenumber{\the\c@linenumber}}%
+
+% And here is what happens when the label is refered to:
+
+\def\getpagewiselinenumber#1{{%
+ \c@linenumber #1\relax\testNumberedPage
+ \thelinenumber
+ }}
+
+% %
+% A summary of all per line expenses:
+% \begin{description}\item
+% [CPU:] The ~\output~ routine is called for each line,
+% and the page-search is done.
+% \item
+% [DISK:] One line of output to the aux-file for each
+% numbered line
+% \item
+% [MEM:] One macro per page. Great improvement over v1.02,
+% which had one control sequence per line in
+% addition. It blew the hash table after some five
+% thousand lines.
+% \end{description}
+%
+% \subsection{%
+% Twocolumn mode (New v3.06)
+% \unskip}
+%
+% Twocolumn mode requires another patch to the ~\output~
+% routine, in order to print a column tag to the .aux
+% file.
+
+\AtBeginDocument{% v4.2, revtex4.cls (e.g.).
+ % <- TODO v4.4+: Or better in \LineNoLaTeXOutput!?
+ \let\@LN@orig@makecol\@makecol}
+\def\@LN@makecol{%
+ \@LN@orig@makecol
+ \setbox\@outputbox \vbox{%
+ \boxmaxdepth \@maxdepth
+ \protected@write\@auxout{}{%
+ \string\@LN@col{\if@firstcolumn1\else2\fi}%
+ }%
+ \box\@outputbox
+ }% \vbox
+} %% TODO cf. revtexln.sty.
+
+\def\@LN@col{\def\@LN@column} % v4.22, removed #1.
+\@LN@col{1}
+
+%
+% \subsection{%
+% Numbering modulo $m$, starting at $f$
+%% Numbering modulo 5
+% \unskip}\label{ss:Mod}
+%
+% Most users want to have only one in five lines numbered.
+% ~\LineNumber~ is supposed to produce the outfit of the
+% line number attached to the line, while ~\thelinenumber~
+% is used also for references, which should appear even if
+% they are not multiples of five.
+%
+% (New v4.00) Moreover, some users want to
+% control which line number should be printed first. Support
+% of this is now introduced here---see ~\firstlinenumber~
+% below.---~numline.sty~ by Michael Jaegermann and
+% James Fortune offers controlling which \emph{final}
+% line numbers should not be printed. What is
+% it good for? We ignore this here until some user demands
+% it.---Peter Wilson's ~ledmac.sty~ offers much different
+% choices of line numbers to be printed, due to Wayne Sullivan.
+% (/New v4.00)
+%
+% (New v4.22) ~\c@linenumbermodulo~ is rendered a
+% fake counter, as discussed since v4.00. So it can
+% no longer be set by ~\setcounter~. ~\modulolinenumbers~
+% serves this purpose. Well, does anybody want to do
+% what worked with ~\addtocounter~? (Then please tell
+% me.)---At least, ~\value~ still works. For the same
+% purpose I rename the fake `firstlinenumber' counter
+% ~\n@...~ to ~\c@...~. (/New v4.22)
+% \begin{old}\begin{verbatim}
+% % \newcount\c@linenumbermodulo % removed for v4.22
+% \end{verbatim}
+% \end{old}
+%
+%% Removed for v4.22:
+%% (UL) On my question why, e.g.,
+%% ~\chardef~ would not have sufficed, Stephan couldn't remember
+%% exactly; guessed that he wanted to offer \LaTeX\ counter
+%% facilities. However, the typical ones don't come this way.
+%% So I'm quite sure that I will change this next time.
+%%
+%% However, I observed at least two times that users gave a very
+%% high value to ~\c@linenumbermodulo~ in order to suppress
+%% printing of the line number. One of these users preferred an
+%% own way of handling line numbers, just wanted to use
+%% ~\linelabel~ and ~ednotes.sty~ features. Should we support this?
+%% I rather would like to advise them to
+%% ~\let\makeLineNumber\relax~. (/UL)
+%
+% (New v4.00) \par
+% ~\themodulolinenumber~ waits for being declared
+% ~\LineNumber~ by ~\modulolinenumbers~. (This has
+% been so before, no change.) Here is how it
+% looked before:
+% \begin{old}\begin{verbatim}
+% % \def\themodulolinenumber{{\@tempcnta\c@linenumber
+% % \divide\@tempcnta\c@linenumbermodulo
+% % \multiply\@tempcnta\c@linenumbermodulo
+% % \ifnum\@tempcnta=\c@linenumber\thelinenumber\fi
+% % }}
+% \end{verbatim}
+% \end{old}
+% (UL) This was somewhat slow. This arithmetic
+% happens at every line. This time I tend to declare an extra
+%% TODO v4.4+
+% line counter (as opposed to my usual recommendations to use
+% counters as rarely as possible) which is stepped every line.
+% It could be incremented in the same way as ~\c@LN@truepage~
+% is incremented via ~\cl@page~! This is another point in favour
+% of ~{linenumber}~ being a \LaTeX\ counter!
+% When this new counter equals ~\c@linenumbermodulo~, it is reset,
+% and ~\thelinenumber~ is executed.---It gets much slower by my
+% support of controlling the first line number below. I should
+% improve this.---On
+%% %% TODO v4.4+--pagewise!?
+% the other hand, time expense means very little nowadays,
+% while the number of \TeX\ counters still is limited.
+%
+% For the same purpose, moreover, attaching the line number
+% box could be intercepted earlier (in ~\MakeLineNo~),
+% without changing ~\LineNumber~. However, this may be
+% bad for the latter's announcement as a wizard interface
+% in section_\ref{s:UserCmds}.
+%%
+%% I wonder about Stephan's group. Its only effect is that
+%% ~\@tempcnta~ is restored after using it. What for is this?
+%% I tend to remove the group braces. %% TODO v4.4+
+% (/UL)
+%
+% Here is the new code. It is very near to my ~lnopatch.sty~
+% code which introduced the first line number feature
+% before.---I add starting with a ~\relax~ which is so often
+% recommended---without understanding this really. At least,
+% it will not harm.---Former group braces appear as
+% ~\begingroup~/~\endgroup~ here.
+
+\def\themodulolinenumber{\relax
+ \ifnum\c@linenumber<\c@firstlinenumber \else
+ \begingroup
+ \@tempcnta\c@linenumber
+ \advance\@tempcnta-\c@firstlinenumber
+ \divide\@tempcnta\c@linenumbermodulo
+ \multiply\@tempcnta\c@linenumbermodulo
+ \advance\@tempcnta\c@firstlinenumber
+ \ifnum\@tempcnta=\c@linenumber \thelinenumber \fi
+ \endgroup
+ \fi
+}
+
+% (/New v4.00)
+%
+% The user command to set the modulo counter:
+% (New v4.31) \dots\ a star variant is introduced to implement
+% Hillel Chayim Yisraeli's idea to print the first line number
+% after an interruption of the edited text by some editor's
+% text, regardless of the modulo. If it is 1, it is printed only
+% with ~\firstlinenumber{1}~. I.e., you use ~\modulolinenumbers*~
+% for the new feature, without the star you get the simpler
+% behaviour that we have had so far. And you can switch back
+% from the refined behaviour to the simple one by using
+% ~\modulolinenumbers~ without the star.---This enhancement
+% is accompanied by a new package option ~modulo*~ which just
+% executes ~\modulolinenumbers*~
+% (subsection_\ref{ss:v3opts}).---`With ~\firstlinenumber{1}~'
+% exactly means: `1' is printed if and only if the last
+% ~\firstlinenumber~ before or in the paragraph that follows
+% the ``interruption'' has argument `1' (or something
+% \emph{expanding} to `1', or (to) something that \TeX\
+% ``reads'' as 1, e.g.: a \TeX\ count register storing
+% 1).---At present, this behaviour may be unsatisfactory with
+% pagewise line-numbering $\dots$ I'll make an experimental
+% extra package if someone complains \dots
+
+\newcommand\modulolinenumbers{%
+ \@ifstar
+ {\def\@LN@maybe@moduloresume{%
+ \global\let\@LN@maybe@normalLineNumber
+ \@LN@normalLineNumber}%
+ \@LN@modulolinenos}%
+ {\let\@LN@maybe@moduloresume\relax \@LN@modulolinenos}%
+}
+
+\global\let\@LN@maybe@normalLineNumber\relax
+\let\@LN@maybe@moduloresume\relax
+\gdef\@LN@normalLineNumber{%
+ \ifnum\c@linenumber=\c@firstlinenumber \else
+ \ifnum\c@linenumber>\@ne
+ \def\LineNumber{\thelinenumber}%
+ \fi
+ \fi
+%%
+% ~\def~ instead of ~\let~ enables taking account of a
+% redefinition of ~\thelinenumber~ in a present numbering
+% environment (e.g.).
+%%
+ \global\let\@LN@maybe@normalLineNumber\relax}
+
+% Instead of changing ~\LineNumber~ directly by
+% ~LN@moduloresume~, these tricks enable ~\modulolinenumbers*~
+% to act as locally as I can make it. I don't know how to
+% avoid that the output routine switches back to the normal
+% modulo behaviour by a global change. (An ~\aftergroup~ may
+% fail in admittedly improbable cases.)
+
+\newcommand*\@LN@modulolinenos[1][\z@]{%
+%%
+% The definition of this macro is that of the former
+% ~\modulolinenumbers~. (/New v4.31)
+%%
+ \let\LineNumber\themodulolinenumber
+ \ifnum#1>\@ne
+ \chardef % v4.22, note below
+ \c@linenumbermodulo#1\relax
+ \else\ifnum#1=\@ne
+% \begin{old}\begin{verbatim}
+% % \def\LineNumber{\thelinenumber}%
+% \end{verbatim}
+% \end{old}
+% (New v4.00) I am putting something here to enable
+% ~\firstlinenumber~ with $~\c@linenumbermodulo~=1$.
+% With ~lnopatch.sty~, a trick was offered for this purpose.
+% It is now obsolete.
+%
+ \def\LineNumber{\@LN@ifgreat\thelinenumber}%
+%%
+% (/New v4.00)
+%%
+ \fi\fi
+ }
+
+% (New v4.00) The default of ~\@LN@ifgreat~ is
+
+\let\@LN@ifgreat\relax
+
+% The previous changes as soon as ~\firstlinenumber~ is used:
+
+\newcommand*\firstlinenumber[1]{%
+ \chardef\c@firstlinenumber#1\relax
+%%
+% No counter, little values allowed only---OK?---(UL)
+% The change is local---OK? The good thing is that
+% ~\global\firstlinenumber{~<number>~}~ works. Moreover,
+% ~\modulolinenumbers~ acts locally as well. (/UL)
+%
+% (New v4.31)
+%%
+ \let\@LN@ifgreat\@LN@ifgreat@critical}
+
+\def\@LN@ifgreat@critical{%
+ \ifnum\c@linenumber<\c@firstlinenumber
+ \expandafter \@gobble
+ \fi}%
+
+% (/New v4.31)
+%
+% The default
+% value of ~\c@firstlinenumber~ %% v4.31
+% is 0. This is best for what one would expect from modulo
+% printing.
+
+\let\c@firstlinenumber=\z@
+
+%
+% For usage and effects of ~\modulolinenumbers~ and %% v4.31
+% ~\firstlinenumbers~, please consult section_\ref{s:UserCmds}.
+% Two details on ~\firstlinenumbers~ here:
+% (i)_~\firstlinenumber~ acts on a paragraph if and only if
+% (a)_the paragraph is broken into lines ``in line-numbering
+% mode'' (after ~\linenumbers~, e.g.);
+% (b)_it is the last occurrence of a ~\firstlinenumbers~
+% before or in the paragraph.
+% (The practical applications of this that I can imagine
+% don't seem appealing to me.)
+% Cf._the explanation above of how ~\modulolinenumbers~ and
+% ~\firstlinenumbers~ interact---for this and for (ii),
+% which is concerned with possible arguments for
+% ~\firstlinenumbers~.
+%
+% Note that the line numbers of the present section
+% demonstrate the two devices. (/New v4.00)
+
+%%\setcounter{linenumbermodulo}{5}
+\chardef\c@linenumbermodulo=5 % v4.2; ugly?
+\modulolinenumbers[1]
+
+% (New v4.22) The new implementation through ~\chardef~
+% decreases the functionality and raises certain compatibility
+% problems. I face this without fear. The maximum modulo value
+% is now ~255~. I expect that this suffices for usual applications.
+% However, some users have ``abused'' ~lineno.sty~ to get
+% ~ednotes.sty~ features without line numbers, so have set the
+% modulo to a value beyond the total number of lines in their
+% edition. This ought to be replaced by
+% ~\let\makeLineNumber\relax~. (/New v4.22)
+%
+% \section{%
+% Package options
+% \unskip}\label{s:Opts}
+%
+% (New v4.1)
+% The last heading formerly was the heading of what is now
+% subsection_\ref{ss:v3opts}. The options declared there were
+% said to execute user commands only. This was wrong already
+% concerning ~displaymath~ and ~hyperref~. At least, however,
+% these options were no or almost no occasion to skip definitions
+% or allocations. This is different with the options that we now
+% insert.
+%
+%% (New v4.2) v4.00 moved the ``options'' below the
+%% ``extensions''. This was bad with ~\do@mlineno~ in
+%% subsection_\ref{ss:v3opts} which is to control
+%% subsection_\ref{ss:display}---undone here. (/New v4.2)
+%
+% \subsection{%
+% Extended referencing to line numbers. (v4.2)
+% \unskip}
+% This subsection explains and declares package option ~addpageno~. %% v4.31
+%
+% If a line to whose number you refer by ~\ref~ is not on the
+% present page, it may be useful to add the number of the page
+% on which the line occurs---and perhaps it should not be added
+% otherwise. In general, you could use the Standard \LaTeX\
+% package varioref for this. However, the latter usually
+% produces verbose output like `on the preceding page'---
+% unless costumized---, while in critical editions, e.g., one
+% may prefer just adding the page number and some mark on the
+% left of the line number, irrespectively of how far the page is
+% apart etc. To support this, package option ~addpageno~
+% provides a command ~\vpagelineref~ to be used in place of
+% ~\ref~. This produces, e.g., `34.15' when referring to line_15
+% on page_34 while the present page is not 34. You can customize
+% the outcome, see the package file ~vplref.sty~ where the code
+% and further details are. You may conceive of
+% ~\vpagelineref~ as a certain customization of varioref's
+% ~\vref~.
+%
+% This implies that option ~addpageno~ requires the files
+% ~vplref.sty~ and ~varioref.sty~. ~addpageno~ automatically
+% loads both of them. Yet you can also load ~varioref.sty~
+% on your own to use its package options.
+%
+% Of course, you might better introduce a shorter command name
+% for ~\vpagelineref~ for your work, while we cannot predict
+% here what shorthand will fit your work. E.g.,
+% ~\newcommand{\lref}{\vpagelineref}~.
+%
+% If you really want to add the page number in \emph{any} case,
+% use, e.g., some ~\myref~ instead of ~\ref~, after
+% \[~newcommand*{\myref}{\pageref{#1}.\ref{#1}}~\]
+% or what you like. You don't need the ~addpageno~ option in
+% this case.
+%
+% ~addpageno~ is due to a suggestion by Sergei Mariev.
+
+\DeclareOption{addpageno}{%
+ \AtEndOfPackage{\RequirePackage{vplref}[2005/04/25]}}
+
+% \subsection{%
+% \scs{linelabel} in math mode
+% \unskip}\label{ss:MathRef}
+%
+% We have made some first steps towards allowing ~\linelabel~ in
+% math mode. Because our code for this is presently experimental,
+% we leave it to the user to decide for the experiment by calling
+% option ~mathrefs~. We are in a hurry now and thus leave the
+% code, explanations, and discussion in the separate package
+% ~ednmath0.sty~. Maybe we later find the time to improve the
+% code and move the relevant content of ~ednmath0.sty~ to here.
+% The optimal situation would be to define ~\linelabel~ from
+% the start so it works in math mode, omitting the ~mathrefs~
+% option.
+%
+% Actually, this package even provides adjustments for analogously
+% allowing ~ednotes.sty~ commands in math mode. Loading the package
+% is postponed to ~\AtBeginDocument~ when we know whether these
+% adjustments are needed.
+
+\DeclareOption{mathrefs}{\AtBeginDocument
+ {\RequirePackage{ednmath0}[2004/08/20]}}
+
+%
+% \subsection{%
+% Arrays, tabular environments (Revised v4.11)
+% \unskip}\label{ss:Tab}
+%
+% This subsection explains and declares package options %% v4.31
+% ~edtable~, ~longtable~, and ~nolongtablepatch~.
+%
+% The standard \LaTeX\ tabular environments come as single
+% boxes, so the ~lineno.sty~ versions before v4.00 treated them as
+% (parts of) single lines, printing (at most) one line number
+% beside each and stepping the line number counter once only.
+% Moreover, ~\linelabel~s got lost. Of course, tables are
+% usually so high that you will want to treat each row like a
+% line. (Christian Tapp even desires that the lines of table
+% entries belonging to a single row are treated like ordinary
+% lines.) Footnotes get lost in such environments as well, which
+% was bad for ~ednotes.sty~.
+%
+% We provide adjustments to count lines, print their numbers
+% etc.\ as desired at least for \emph{some} \LaTeX\ tabular
+% environments. (Like with other details, ``some'' is to some
+% extent explained in ~edtable.sty~.) We do this similarly as
+% with option ~mathrefs~ before. We leave code
+% and explanations in the separate package ~edtable.sty~.
+% (For wizards: this package provides adjustments for
+% ~ednotes.sty~ as well. However, in the present case we don't try
+% to avoid them unless ~ednotes.sty~ is loaded.)
+% Package option ~edtable~
+% defines---by loading ~edtable.sty~---an environment ~{edtable}~
+% which is able to change some \LaTeX\ tabular environments
+% with the desired effects. (v4.11: ~edtable.sty~ v1.3 counts
+% \LaTeX's ~{array}~ [etc.\@] as a ``tabular environment'' as
+% well.)
+%
+% The ~{edtable}~ environment doesn't help with ~longtable.sty~,
+% however. To make up for this, ~{longtable}~ is adjusted in a
+% different way---and this happens only when another ~lineno.sty~
+% option ~longtable~ is called. In this case, option ~edtable~
+% needn't be called explicitly: option ~longtable~ works as if
+% ~edtable~ had been called.
+%
+% Now, we are convinced that vertical spacing around
+% ~{longtable}~ works wrongly---see \LaTeX\ bugs database
+% tools/3180 and 3485, or see explanations in the package
+% ~ltabptch.sty~ (which is to be obtained from CTAN folder
+% \path{macros/latex/ltabptch}). Our conviction is so strong
+% that the ~longtable~ option loads---after ~longtable.sty~---the
+% patch package ~ltabptch.sty~. If the user doesn't want this
+% (maybe preferring her own arrangement with the vertical
+% spacing), she can forbid it by calling ~nolongtablepatch~.
+%
+% The following code just collects some choices, which are
+% then executed in section_\ref{ss:ExOpt}. We use an ~\if...~
+% without ~\newif~ since ~\if...true~ and ~\if...false~
+% would occur at most two times and only within the present
+% package. (~\AtEndOfClass{\RequirePackage{edtable}}~
+% could be used instead, I just overlooked this. Now I don't
+% change it because it allows to change the version requirement
+% at one place only.)
+
+\let\if@LN@edtable\iffalse
+
+\DeclareOption{edtable}{\let\if@LN@edtable\iftrue}
+
+\DeclareOption{longtable}{\let\if@LN@edtable\iftrue
+ \PassOptionsToPackage{longtable}{edtable}}
+
+\DeclareOption{nolongtablepatch}{%
+ \PassOptionsToPackage{nolongtablepatch}{edtable}}
+
+% (/New v4.1)
+%
+% \subsection{%
+% Switch among settings
+% \unskip}\label{ss:v3opts}
+%
+% There is a bunch of package options that execute %% v4.2
+%% There is a bunch of package options, all of them executing
+%% executing only user commands (see below). %% Cf. start of section.
+% user commands only.
+%
+% Options ~left~ (~right~) put the line numbers on the left
+% (right) margin. This works in all modes. ~left~ is the
+% default.
+
+\DeclareOption{left}{\leftlinenumbers*}
+
+\DeclareOption{right}{\rightlinenumbers*}
+
+% Option ~switch~ (~switch*~) puts the line numbers on the
+% outer (inner) margin of the text. This requires running
+% the pagewise mode, but we turn off the page offset
+% subtraction, getting sort of running numbers again. The
+% ~pagewise~ option may restore true pagewise mode later.
+
+\DeclareOption{switch}{\setpagewiselinenumbers
+ \switchlinenumbers
+ \runningpagewiselinenumbers}
+
+\DeclareOption{switch*}{\setpagewiselinenumbers
+ \switchlinenumbers*%
+ \runningpagewiselinenumbers}
+
+% In twocolumn mode, we can switch the line numbers to
+% the outer margin, and/or start with number 1 in each
+% column. Margin switching is covered by the ~switch~
+% options.
+
+\DeclareOption{columnwise}{\setpagewiselinenumbers
+ \columnwiselinenumberstrue
+ \realpagewiselinenumbers}
+
+% The options ~pagewise~ and ~running~ select the major
+% linenumber mechanism. ~running~ line numbers refer to a real
+% counter value, which can be reset for any paragraph,
+% even getting multiple paragraphs on one page starting
+% with line number one. ~pagewise~ line numbers get a
+% unique hidden number within the document, but with the
+% opportunity to establish the page on which they finally
+% come to rest. This allows the subtraction of the page
+% offset, getting the numbers starting with 1 on top of each
+% page, and margin switching in twoside formats becomes
+% possible. The default mode is ~running~.
+%
+% The order of declaration of the options is important here
+% ~pagewise~ must come after ~switch~, to overide running
+% pagewise mode. ~running~ comes last, to reset the running
+% line number mode, e.g, after selecting margin switch mode
+% for ~pagewise~ running. Once more, if you specify all
+% three of the options ~[switch,pagewise,running]~, the
+% result is almost nothing, but if you later say
+% ~\pagewiselinenumbers~, you get margin switching, with
+% real pagewise line numbers.
+%
+\DeclareOption{pagewise}{\setpagewiselinenumbers
+ \realpagewiselinenumbers}
+
+\DeclareOption{running}{\setrunninglinenumbers}
+
+% The option ~modulo~ causes only those linenumbers to be
+% printed which are multiples of five.
+
+\DeclareOption{modulo}{\modulolinenumbers\relax}
+
+% Option ~modulo*~ modifies ~modulo~ in working like
+% ~\modulolinenumbers*~---see section_\ref{s:UserCmds}.
+
+\DeclareOption{modulo*}{\modulolinenumbers*\relax}
+
+% The package option ~mathlines~ switches the behavior of
+% the ~{linenomath}~ environment with its star-form.
+% Without this option, the ~{linenomath}~ environment does
+% not number the lines of the display, while the star-form
+% does. With this option, its just the opposite.
+%
+%%% 1999-06-10: renamed ~displaymath~ to ~mathlines~.
+
+\DeclareOption{mathlines}{\linenumberdisplaymath}
+
+% ~displaymath~ now calls for wrappers of the standard
+% \LaTeX\ display math environment. This was previously
+% done by ~mlineno.sty~.
+%
+% (New v4.3) Option `displaymath' becomes default according
+% to Erik \mbox{Luijten}'s suggestion. I was finally convinced
+% of this as soon as I discovered how to avoid a spurious line
+% number above ~\begin{linenomath}~ (subsection_\ref{ss:DM}).
+% ~\endlinenomath~ provides ~\ignorespaces~, so what could go
+% wrong now?
+
+\DeclareOption{displaymath}{\PackageWarningNoLine{lineno}{%
+ Option [displaymath] is obsolete -- default now!}}
+%%
+%%\let\do@mlineno\relax
+%%\DeclareOption{displaymath}{\let\do@mlineno\@empty}
+% (/New v4.3)
+%
+% \subsection{%
+% Compatibility with \texttt{hyperref} %% own subsec. v4.3.
+% \unskip}
+% The ~hyperref~ package, via ~nameref~, requires three more
+% groups in the second argment of a ~\newlabel~. Well, why
+% shouldn't it get them? (New v3.07) The presence of the
+% ~nameref~ package is now detected automatically
+% ~\AtBeginDocument~. (/New v3.07) (Fixed in v3.09) We try
+% to be smart, and test ~\AtBeginDocument~ if the ~nameref~
+% package is loaded, but ~hyperref~ postpones the loading of
+% ~nameref~ too, so this is all in vain.
+%
+% (New v4.3) But we can also test at the first ~\linelabel~.
+% Regarding the error-message for misplaced ~\linelabel~ from v4.11:
+% previously, ~\linenumbers~ rendered ~\linelabel~ the genuine
+% version of ~\linelabel~ from the start on. This doesn't work
+% now, since ~\@LN@linelabel~ may change its meaning after the
+% first ~\linenumbers~ and before a next one (if there is some).
+% (/New v4.3)
+
+\DeclareOption{hyperref}{\PackageWarningNoLine{lineno}{%
+ Option [hyperref] is obsolete.
+ \MessageBreak The hyperref package is detected automatically.}}
+
+\AtBeginDocument{%
+ \@ifpackageloaded{nameref}{%
+%%
+% (New v4.3) ``Global'' is merely ``symbolic'' ~\AtBeginDoc...~.
+% If ~nameref~ is not detected here, the next ~\@LN@linelabel~
+% will do almost the same, then globally indeed.
+%%
+ \gdef\@LN@ExtraLabelItems{{}{}{}}%
+ }{%
+ \global\let\@LN@@linelabel\@LN@linelabel
+ \gdef\@LN@linelabel{%
+%%
+% ~\@ifpackageloaded~ is ``preamble only'', its---very
+% internal---preamble definition is replicated here:
+%%
+ \expandafter
+ \ifx\csname ver@nameref.sty\endcsname\relax \else
+ \gdef\@LN@ExtraLabelItems{{}{}{}}%
+ \fi
+%%
+% Now aim at the ``usual'' behaviour:
+%%
+ \global\let\@LN@linelabel\@LN@@linelabel
+ \global\let\@LN@@linelabel\relax
+ \@LN@linelabel
+ }%
+ }%
+}
+
+% (/New v4.3)
+%
+% (New v4.1)
+% \subsection{%
+% A note on calling so many options
+% \unskip}
+%
+% The number of package options may stimulate worrying about how to
+% \emph{enter} all the options that one would like to use---they may
+% not fit into one line. Fortunately, you can safely break code lines
+% after the commas separating the option names in the ~\usepackage~
+% command (no comment marks needed).
+%
+% \subsection{%
+% Execute options
+% \unskip}\label{ss:ExOpt}
+%
+% We stop declaring options and execute the ones that are
+% called by the user. (/New v4.1)
+
+\ProcessOptions
+
+% (New v4.1) Now we know whether ~edtable.sty~ is wanted
+% and (if it is) with which options it is to be called.
+
+\if@LN@edtable \RequirePackage{edtable}[2005/03/07] \fi
+
+% (/New v4.1)
+%
+% \section{%
+% Former package extensions
+% \label{s:Xt}\unskip}
+%
+% The extensions in this section were previously supplied
+% in separate ~.sty~ files.
+%
+% \subsection{%
+% $display math$
+% \unskip}\label{ss:display}
+%% (New v4.32)
+% (New v4.3) From now on, you no longer need to type
+% the ~{linenomath}~ environment with the ~\[~, ~{equation}~,
+% and ~{eqnarray}~ environments---and you no longer need to
+% use the former package option ~displaymath~ for this feature.
+% (/New v4.3)
+%% (/New v4.32)
+%
+% The standard \LaTeX\ display math environments are
+% wrapped in a ~{linenomath}~ environment.
+%
+% (New 3.05) The ~[fleqn]~ option of the standard
+% \LaTeX\ classes defines the display math
+% environments such that line numbers appear just
+% fine. Thus, we need not do any tricks when
+% ~[fleqn]~ is loaded, as indicated by presents of
+% the ~\mathindent~ register. (/New 3.05)
+%
+% (New 3.05a) for ~{eqnarray}~s we rather keep the
+% old trick. (/New 3.05a)
+%
+% (New 3.08) Wrap ~\[~ and ~\]~ into ~{linenomath}~,
+% instead of ~{displaymath}~. Also save the definition
+% of ~\equation~, instead of replicating the current
+% \LaTeX\ definition. (/New 3.08)
+
+%%\ifx\do@mlineno\@empty
+ \@ifundefined{mathindent}{
+
+%% \AtBeginDocument{%
+ \let\LN@displaymath\[%
+ \let\LN@enddisplaymath\]%
+ \renewcommand\[{\begin{linenomath}\LN@displaymath}%
+ \renewcommand\]{\LN@enddisplaymath\end{linenomath}}%
+%
+ \let\LN@equation\equation
+ \let\LN@endequation\endequation
+ \renewenvironment{equation}%
+ {\linenomath\LN@equation}%
+ {\LN@endequation\endlinenomath}%
+%% }
+
+ }{}% \@ifundefined{mathindent} -- 3rd arg v4.2, was \par!
+
+%%\AtBeginDocument{%
+ \let\LN@eqnarray\eqnarray
+ \let\LN@endeqnarray\endeqnarray
+ \renewenvironment{eqnarray}%
+ {\linenomath\LN@eqnarray}%
+ {\LN@endeqnarray\endlinenomath}%
+%%}
+
+%%\fi
+
+% (UL) Indeed. The \LaTeX\ macros are saved for
+% unnumbered mode, which is detected by ~\linenomath~.
+% (/UL)
+%
+% \subsection{%
+% Line numbers in internal vertical mode
+% \unskip}\label{ss:ILN}
+%
+% The command ~\internallinenumbers~ adds line numbers in
+% internal vertical mode, but with limitations: we assume
+% fixed baseline skip.
+%
+% (v4.22) v3.10 provided a global (~\global\advance~)
+% as well as a local version (star-form, using
+% ~\c@internallinenumber~). ~\resetlinenumbers~ acted
+% locally and was here used with the global version---save
+% stack danger, \TeX book p._301---in v4.00 I
+% disabled the global version therefore. Now I find that
+% it is better to keep a global version, and the now global
+% ~\resetlinenumbers~ is perfect for this. The global version
+% allows continuing the ``internal'' numbers in the ensuing
+% ``external'' text, and---unless reset by brackets
+% argument---continuing the above series of line numbers.
+% As with v3.10, the local version always starts with
+% line number one. A new ~\@LN@iglobal~ steps ~\global~ly
+% in the global version, otherwise it is ~\relax~.
+% (I also remove all my stupid discussions as of v4.00.
+% And I use ~\newcommand~.) (v4.22)
+
+\let\@LN@iglobal\global % v4.22
+
+\newcommand\internallinenumbers{\setrunninglinenumbers
+ \let\@@par\internallinenumberpar
+ \ifx\@par\@@@par\let\@par\internallinenumberpar\fi
+ \ifx\par\@@@par\let\par\internallinenumberpar\fi
+ \ifx\@par\linenumberpar\let\@par\internallinenumberpar\fi
+ \ifx\par\linenumberpar\let\par\internallinenumberpar\fi
+ \@ifnextchar[{\resetlinenumber}%]
+ {\@ifstar{\let\c@linenumber\c@internallinenumber
+ \let\@LN@iglobal\relax % v4.22
+ \c@linenumber\@ne}{}}%
+ }
+
+\let\endinternallinenumbers\endlinenumbers
+\@namedef{internallinenumbers*}{\internallinenumbers*}
+\expandafter\let\csname endinternallinenumbers*\endcsname\endlinenumbers
+
+\newcount\c@internallinenumber
+\newcount\c@internallinenumbers
+
+\newcommand\internallinenumberpar{%
+ \ifvmode\@@@par\else\ifinner\@@@par\else\@@@par
+ \begingroup
+ \c@internallinenumbers\prevgraf
+ \setbox\@tempboxa\hbox{\vbox{\makeinternalLinenumbers}}%
+ \dp\@tempboxa\prevdepth
+ \ht\@tempboxa\z@
+ \nobreak\vskip-\prevdepth
+ \nointerlineskip\box\@tempboxa
+ \endgroup
+ \fi\fi
+ }
+
+\newcommand\makeinternalLinenumbers{%
+ \ifnum\c@internallinenumbers>\z@ % v4.2
+ \hb@xt@\z@{\makeLineNumber}%
+ \@LN@iglobal % v4.22
+ \advance\c@linenumber\@ne
+ \advance\c@internallinenumbers\m@ne
+ \expandafter\makeinternalLinenumbers\fi
+ }
+ % TODO v4.4+: star: line numbers right!? cf. lnocapt.sty
+
+%
+% \subsection{%
+% Line number references with offset
+% \unskip}
+%
+% This extension defines macros to refer to line
+% numbers with an offset, e.g., to refer to a line
+% which cannot be labeled directly (display math).
+% This was formerly knows as ~rlineno.sty~.
+%
+% To refer to a pagewise line number with offset:
+% \begin{quote}
+% ~\linerefp[~<OFFSET>~]{~<LABEL>~}~
+% \end{quote}
+% To refer to a running line number with offset:
+% \begin{quote}
+% ~\linerefr[~<OFFSET>~]{~<LABEL>~}~
+% \end{quote}
+% To refer to a line number labeled in the same mode as currently
+% selected:
+% \begin{quote}
+% ~\lineref[~<OFFSET>~]{~<LABEL>~}~
+% \end{quote}
+
+\newcommand\lineref{%
+ \ifx\c@linenumber\c@runninglinenumber
+ \expandafter\linerefr
+ \else
+ \expandafter\linerefp
+ \fi
+}
+
+\newcommand*\linerefp[2][\z@]{{%
+ \let\@thelinenumber\thelinenumber
+ \edef\thelinenumber{\advance\c@linenumber#1\relax
+ \noexpand\@thelinenumber}%
+ \ref{#2}%
+}}
+
+% This goes deep into \LaTeX's internals.
+
+\newcommand*\linerefr[2][\z@]{{%
+ \def\@@linerefadd{\advance\c@linenumber#1}%
+ \expandafter\@setref\csname r@#2\endcsname
+ \@linerefadd{#2}%
+}}
+
+\newcommand*\@linerefadd[2]{\c@linenumber=#1\@@linerefadd\relax
+ \thelinenumber}
+
+%% TODO v4.4+: Insert `LN' in internal command names?
+%
+% \subsection{%
+% Numbered quotation environments
+% \unskip}
+%
+% The ~{numquote}~ and ~{numquotation}~
+% environments are like ~{quote}~ and
+% ~{quotation}~, except there will be line
+% numbers.
+%
+% An optional argument gives the number to count
+% from. A star ~*~ (inside or outside the closing
+% ~}~) prevent the reset of the line numbers.
+% Default is to count from one.
+%
+% (v4.22: A local version using ~\c@internallinenumber~
+% might be useful, see subsection_\ref{ss:ILN}.) %% TODO v4.4+
+
+\newcommand\quotelinenumbers
+ {\@ifstar\linenumbers{\@ifnextchar[\linenumbers{\linenumbers*}}}
+
+\newdimen\quotelinenumbersep
+\quotelinenumbersep=\linenumbersep
+\let\quotelinenumberfont\linenumberfont
+
+\newcommand\numquotelist
+ {\leftlinenumbers
+ \linenumbersep\quotelinenumbersep
+ \let\linenumberfont\quotelinenumberfont
+ \addtolength{\linenumbersep}{-\@totalleftmargin}%
+ \quotelinenumbers
+ }
+
+\newenvironment{numquote} {\quote\numquotelist}{\endquote}
+\newenvironment{numquotation} {\quotation\numquotelist}{\endquotation}
+\newenvironment{numquote*} {\quote\numquotelist*}{\endquote}
+\newenvironment{numquotation*}{\quotation\numquotelist*}{\endquotation}
+
+%
+% \subsection{%
+% Frame around a paragraph
+% \unskip}
+%
+% The ~{bframe}~ environment draws a frame around
+% some text, across page breaks, if necessary.
+%
+% This works only for plain text paragraphs,
+% without special height lines. All lines must be
+% ~\baselineskip~ apart, no display math.
+
+\newenvironment{bframe}
+ {\par
+ \@tempdima\textwidth
+ \advance\@tempdima 2\bframesep
+ \setbox\bframebox\hb@xt@\textwidth{%
+ \hskip-\bframesep
+ \vrule\@width\bframerule\@height\baselineskip\@depth\bframesep
+ \advance\@tempdima-2\bframerule
+ \hskip\@tempdima
+ \vrule\@width\bframerule\@height\baselineskip\@depth\bframesep
+ \hskip-\bframesep
+ }%
+ \hbox{\hskip-\bframesep
+ \vrule\@width\@tempdima\@height\bframerule\@depth\z@}%
+ \nointerlineskip
+ \copy\bframebox
+ \nobreak
+ \kern-\baselineskip
+ \runninglinenumbers
+ \def\makeLineNumber{\copy\bframebox\hss}%
+ }
+ {\par
+ \kern-\prevdepth
+ \kern\bframesep
+ \nointerlineskip
+ \@tempdima\textwidth
+ \advance\@tempdima 2\bframesep
+ \hbox{\hskip-\bframesep
+ \vrule\@width\@tempdima\@height\bframerule\@depth\z@}%
+ }
+
+\newdimen\bframerule
+\bframerule=\fboxrule
+
+\newdimen\bframesep
+\bframesep=\fboxsep
+
+\newbox\bframebox
+
+%
+%
+% \section{%
+% Move \scs{vadjust} items (New v4.00)
+% \unskip}\label{s:MVadj}
+%
+% This section completes reviving ~\pagebreak~, ~\nopagebreak~,
+% ~\vspace~, and the star and optional form of ~\\~. This was
+% started in section_\ref{ss:output} and resumed in
+% section_\ref{ss:MLN} and subsection_\ref{ss:calls}.
+% The problem was explained in section_\ref{ss:output}:
+% ~\vadjust~ items come out at a bad position, and the
+% \LaTeX\ commands named before work with ~\vadjust~ indeed.
+% Our solution was sketched there as well.
+%
+% According to the caveat in subsection_\ref{ss:OnOff} concerning
+% ~\ifLineNumbers~, the \LaTeX\ commands enumerated may go
+% wrong if you switch line numbering inside or at the end of
+% a paragraph.
+%% %% TODO v4.4+
+%
+% \subsection{%
+% Redefining \scs{vadjust}
+% \unskip}\label{ss:PVadj}
+%
+% ~\vadjust~ will temporarily be changed into the following
+% command.
+
+\def\PostponeVadjust#1{%
+ \global\let\vadjust\@LN@@vadjust
+%%
+% This undoes a ~\global\let\vadjust\PostponeVadjust~ which will
+% start each of the refined \LaTeX\ commands. The ~\global~s
+% are most probably superfluous. They might be useful should one
+% ~\vadjust~ appear in a group starting after the change of
+% ~\vadjust~ into ~\PostponeVadjust~.
+% (UL) Even the undoing may be superfluous, cf._discussion
+% in section_\ref{ss:ReDef} below. (UL)
+%%
+ \vadjust{\penalty-\@Mppvacodepen}%
+ \g@addto@macro\@LN@vadjustlist{#1\@lt}%
+}
+\let\@LN@@vadjust\vadjust
+\global\let\@LN@vadjustlist\@empty
+\global\let\@LN@do@vadjusts\relax
+
+% These ~\global~s are just to remind that
+% all the changes of the strings after ~\let~ should be
+% ~\global~ (\TeX book p._301). ~\@LN@vadjustlist~ collects
+% the ~\vadjust~ items of a paragraph. ~\PassVadjustList~
+% tears one ~\vadjust~ item for the current line out of
+% ~\@LN@vadjustlist~ and puts it into ~\@LN@do@vadjusts~.
+% The latter is encountered each line in ~\MakeLineNo~
+% (section_\ref{ss:MLN}), while those \LaTeX\ ~\vadjust~
+% commands will come rather rarely. So I decided that
+% ~\@LN@do@vadjust~ is ~\relax~ until a ~\vadjust~ item
+% is waiting. In the latter case, ~\@LN@do@vadjusts~
+% is turned into a list macro which resets itself to
+% ~\relax~ when the other contents have been placed in
+% the vertical list.---~\PassVadjustList~ is invoked by
+% the output routine (section_\ref{ss:output}), so the
+% ~\box255~ must be put back.
+
+\def\PassVadjustList{%
+ \unvbox\@cclv
+ \expandafter \@LN@xnext \@LN@vadjustlist \@@
+ \@tempa \@LN@vadjustlist
+ \ifx\@LN@do@vadjusts\relax
+ \gdef\@LN@do@vadjusts{\global\let\@LN@do@vadjusts\relax}%
+ \fi
+ \expandafter \g@addto@macro \expandafter \@LN@do@vadjusts
+ \expandafter {\@tempa}%
+}
+
+%
+% \subsection{%
+% Redefining the \LaTeX\ commands
+% \unskip}\label{ss:ReDef}
+%
+% Now we change ~\pagebreak~ etc.\
+% so that they use ~\PostponeVadjust~ in place of ~\vadjust~.
+% We try to do this as independently as possible of the
+% implementation of the \LaTeX\ commands to be redefined.
+% Therefore, we don't just copy macro definition code from any
+% single implementation (say, latest \LaTeX) and insert our
+% changes, but attach a conditional
+% ~\global\let\vadjust\PostponeVadjust~
+% to their left ends in a way which should work rather
+% independantly of their actual code.
+% However, ~\vadjust~ should be the primitive again after
+% execution of the command. So the ~\global\let...~ may be used
+% only if it's guaranteed that a ~\vadjust~ is near.---(UL)
+% Sure? In line numbering mode, probably each ~\vadjust~
+% coming from a \LaTeX\ command should be ~\PostponeVadjust~.
+% ~\marginpar~s and floats seem to be the only cases which
+% are not explicitly dealt with in the present section.
+% This would be a way to avoid ~\@LN@nobreaktrue~!
+% Of course, the ~\vadjust~s that the present package uses
+% then must be replaced by ~\@LN@@vadjust~.---Maybe
+% next time. (/UL)
+%% %% TODO v4.4+
+%
+% The next command and something else will be added to the
+% \LaTeX\ commands we are concerned with here.
+
+\DeclareRobustCommand\@LN@changevadjust{%
+ \ifvmode\else\ifinner\else
+ \global\let\vadjust\PostponeVadjust
+ \fi\fi
+}
+
+% (UL) What about math mode? Math display? Warn? (/UL)
+%% %% TODO v4.4+
+%
+% ~\@tempa~ will now become a two place macro which adds first
+% argument (single token), enclosed by ~\ifLineNumbers~\,\dots
+% ~\fi~ to the left of second argument. As long as we need it,
+% we can't use the star form of ~\DeclareRobustCommand~ or
+% the like, because AMS-\LaTeX\ uses ~\@tempa~ for ~\@ifstar~.
+% (New v4.41) And for the same reason, that ~\CheckCommand*~
+% had to be raised! (/New v4.41)
+
+\CheckCommand*\@parboxrestore{\@arrayparboxrestore\let\\\@normalcr}
+
+\def\@tempa#1#2{%
+ \expandafter \def \expandafter#2\expandafter{\expandafter
+ \ifLineNumbers\expandafter#1\expandafter\fi#2}%
+}
+
+% (UL) This ~\ifLineNumber~ can be fooled by
+% ~\linenumbers~ ahead etc. It might be better to place
+% a signal penalty in any case and let the output routine
+% decide what to do.
+%%
+%% And when this has been done, remove warnings about this.
+% (/UL)
+%
+% We use the occasion to switch off linenumbers where they
+% don't work anyway and where we don't want them,
+% especially in footnotes:
+
+\@tempa\nolinenumbers\@arrayparboxrestore
+
+% We hope this suffices $\dots$ let's check one thing
+% at least: [(New v4.41) see ~\CheckCommand~ above (/New v4.41)]
+%
+% Now for the main theme of the section.
+% The next lines assume that ~\vspace~, ~\pagebreak~, and
+% ~\nopagebreak~ use ~\vadjust~ whenever they occur outside
+% vertical mode; moreover, that they don't directly read
+% an argument. Indeed ~\pagebreak~ and ~\nopagebreak~ first
+% call something which tests for a left bracket ahead,
+% while ~\vspace~ first tests for a star.
+
+\@tempa\@LN@changevadjust\vspace
+\@tempa\@LN@changevadjust\pagebreak
+\@tempa\@LN@changevadjust\nopagebreak
+
+% ~\\~, however, uses ~\vadjust~ only in star or optional form.
+% We relax independency of implementation in assuming
+% that ~\@normalcr~ is the fragile version of ~\\~
+% (and we use ~\@ifstar~!).
+%%
+%% \@ifstar reimplemented 1995/10/16, but seems to be much older.
+%% TODO v4.4+:
+%% \def\@LN@cr{%
+%% \@ifnextchar*{\@LN@changevadjust\@normalcr}%
+%% {\@ifnextchar[{\@LN@changevadjust\@normalcr}\@normalcr}%
+%% }
+%% ---same number of tokens, expansion step less.
+%%
+% (Using a copy of ~\\~ would be safer, but an ugly repetition
+% of ~\protect~.)
+%% %% TODO v4.4+
+
+\DeclareRobustCommand\\{%
+ \ifLineNumbers
+ \expandafter \@LN@cr
+ \else
+ \expandafter \@normalcr
+ \fi
+}
+\def\@LN@cr{%
+ \@ifstar{\@LN@changevadjust\@normalcr*}%
+ {\@ifnextchar[{\@LN@changevadjust\@normalcr}\@normalcr}%
+}
+
+% Moreover we hope that ~\newline~ never leads to a ~\vadjust~,
+% although names of some commands invoked by ~\\~ contain
+% ~newline~. At last, this seems to have been OK since 1989 or
+% even earlier.
+%
+% \modulolinenumbers[1]
+% \firstlinenumber{0}
+% Let's have a few tests.\vspace*{.5\baselineskip}
+% Testing ~\pagebreak~ and ~\nopagebreak~ would be too expensive
+% here, but---oops!---we have just experienced a successful
+% ~\vspace*{.5\baselineskip}~. A
+% ~\\*[.5\baselineskip]~\\*[.5\baselineskip] may look even more
+% drastical, but this time we are happy about it. Note that the
+% line numbers have moved with the lines. Without our changes,
+% one line number\vadjust{\kern.5\baselineskip} would have
+% ``anticipated'' the move of the next line, just as you can
+% observe it now.
+% (/New v4.00)
+%
+% \switchlinenumbers
+%
+% \subsection{%
+% Reminder on obsoleteness
+% \unskip}
+%
+% (New v4.1) We have completed inclusion of the earlier
+% extension packages ~linenox0.sty~, ~linenox1.sty~, and
+% ~lnopatch.sty~. If one of them is loaded, though,
+% we produce an error message before something weird happens.
+% We avoid ~\newif~ because the switchings occur so rarely.
+
+\AtBeginDocument{%
+ \let\if@LN@obsolete\iffalse
+ \@ifpackageloaded{linenox0}{\let\if@LN@obsolete\iftrue}\relax
+ \@ifpackageloaded{linenox1}{\let\if@LN@obsolete\iftrue}\relax
+ \@ifpackageloaded{lnopatch}{\let\if@LN@obsolete\iftrue}\relax
+ \if@LN@obsolete
+ \PackageError{lineno}{Obsolete extension package(s)}{%
+ With lineno.sty version 4.00 or later,\MessageBreak
+ linenox0/linenox1/lnopatch.sty must no longer be loaded.}%
+ \fi
+}
+
+%
+% \modulolinenumbers[1]
+% \section{%
+% The final touch
+% \unskip}
+%
+% There is one deadcycle for each line number.
+
+\advance\maxdeadcycles 100
+
+\endinput
+
+%
+% \section{%
+% The user commands
+% \unskip}\label{s:UserCmds}
+%
+% The user commands to turn on and off line numbering
+% are
+% \begin{description}\item
+% [|\linenumbers] \ \par
+% Turn on line numbering in the current mode.
+%
+% \item
+% [|\linenumbers*] \ \par$\qquad$
+% and reset the line number to 1.
+% \def\NL{<number>]}\item
+%% %% Boldface italic occurs here, which is evil. (UL)
+% [|\linenumbers[\NL] \ \par$\qquad$
+% and start with <number>.
+% \item
+% [|\nolinenumbers] \ \par
+% Turn off line numbering.
+% \item
+% [|\runninglinenumbers*[\NL] \ \par
+% Turn on ~running~ line numbers, with the same optional
+% arguments as ~\linenumbers~. The numbers are running
+% through the text over pagebreaks. When you turn
+% numbering off and on again, the numbers will continue,
+% except, of cause, if you ask to reset or preset the
+% counter.
+% \item
+% [|\pagewiselinenumbers] \ \par
+% Turn on ~pagewise~ line numbers. The lines on each
+% page are numbered beginning with one at the first
+% ~pagewise~ numbered line.
+% \item
+% [|\resetlinenumber[\NL] \ \par
+% Reset ~[~Set~]~ the line number to 1
+% ~[~<number>~]~.
+% \item
+% [|\setrunninglinenumbers] \ \par
+% Switch to ~running~ line number mode. Do \emph{not}
+% turn it on or off.
+% \item
+% [|\setpagewiselinenumbers] \ \par
+% Switch to ~pagewise~ line number mode. Do \emph{not}
+% turn it on or off.
+% \item
+% [|\switchlinenumbers*] \ \par
+% Causes margin switching in pagewise modes. With the
+% star, put the line numbers on the inner margin.
+% \item
+% [|\leftlinenumbers*] \ \par
+% \item
+% [|\rightlinenumbers*] \ \par
+% Set the line numbers in the left/right margin. With the
+% star this works for both modes of operation, without
+% the star only for the currently selected mode.
+% \item
+% [|\runningpagewiselinenumbers] \ \par
+% When using the pagewise line number mode, do not
+% subtract the page offset. This results in running
+% line numbers again, but with the possibility to switch
+% margins. Be careful when doing line number
+% referencing, this mode status must be the same while
+% setting the paragraph and during references.
+% \item
+% [|\realpagewiselinenumbers] \ \par
+% Reverses the effect of ~\runningpagewiselinenumbers~.
+% \item
+% [|\modulolinenumbers[\NL] \ \par
+% Give a number only to lines which are multiples of
+% ~[~<number>~]~. If <number> is not specified, the
+% current value in the counter ~linenumbermodulo~ is
+% retained. <number>=1 turns this off without changing
+% ~linenumbermodulo~. The counter is initialized to 5.
+%%
+%% %% TODO v4.4+: `counter', he says. Cf._above.
+%%
+%% (New v4.31)
+% \item
+% [|\modulolinenumbers*[\NL] \ \par
+% Like ~\modulolinenumbers~, the only difference being
+% that the first line number after a ~\linenumbers~
+% (or ~\runninglinenumbers~, ~\pagewiselinenumbers~,
+% ~\quotelinenumbers~) is printed regardless of the
+% modulo---yet `1' is printed only after (or \dots)
+% ~\firstlinenumber{1}~.
+% This also applies to the first line of a
+% ~{linenumbers}~ or respective environment.
+% See subsection_\ref{ss:Mod} for another explanation.
+% The behaviour may be unsatisfactory with pagewise
+% line-numbering.
+%% (/New v4.31)
+%% (New v4.00)
+% \item
+% [|\firstlinenumber] \ \par
+% ~\firstlinenumber{~<filino>~}~ brings about that
+% (after it) line numbers less than <filino> do
+% \emph{not} appear in the margin. Moreover, with
+% ~\modulolinenumbers[~<number>~]~, just the line
+% numbers which are <filino> plus a multiple of
+% <number> are printed.---If you had
+% ~\firstlinenumber{~<pos>~}~ with some $\mbox{<pos>}>0$
+% and want to switch to printing multiples of, e.g.,
+% 4, you best do ~\modulolinenumbers[4]~ and
+% ~\firstlinenumber{0}~. (See subsection_\ref{ss:Mod}
+% for technical details.)
+%% (/New v4.00)
+% \item
+% [|\linenumberdisplaymath] \ \par
+% Number the lines of a display math in a ~{linenomath}~
+% environment, but do not in a ~{linenomath*}~
+% environment. This is used by the package option
+% ~[mathlines]~.
+% \item
+% [|\nolinenumberdisplaymath] \ \par
+% Do not Number the lines of a display math in a
+% ~{linenomath}~ environment, but do in a
+% ~{linenomath*}~ environment. This is the default.
+% \item
+% [|\linelabel] \ \par
+% Set a ~\linelabel{~<foo>~}~ to the line number where
+% this commands is in. Refer to it with the \LaTeX\
+% referencing commands ~\ref{~<foo>~}~ and
+% ~\pageref{~<foo>~}~.
+% \end{description}
+% The commands can be used globally, locally within groups
+% or as environments. It is important to know that they
+%%
+%% %% TODO: \linelabel? others?
+%%
+% take action only when the ~\par~ is executed. The
+%%
+%% %% TODO: sure? ~\modulo...~, e.g.? well, in a sense ...
+%%
+% ~\end{~<mode>~linenumbers}~ commands provide a ~\par~.
+% Examples:
+% \begin{verse}
+% ~{\linenumbers~ <text> ~\par}~ \\
+% \ \\
+% ~\begin{linenumbers}~ \\
+% <text> \\
+% ~\end{linenumbers}~ \\
+% \ \\
+% <paragraph> ~{\linenumbers\par}~ \\
+% \ \\
+% ~\linenumbers~ \\
+% <text> ~\par~ \\
+% ~\nolinenumbers~ \\
+% \ \\
+% ~\linenumbers~ \\
+% <paragraph> ~{\nolinenumbers\par}~ \\
+% \end{verse}
+% (New v4.00)
+% However, the examples containing <paragraph> show what you
+% should \emph{not} do, at least if you use ~\pagebreak~,
+% ~\nopagebreak~, ~\vspace~, ~\\*~ or
+% ~\\[~<space>~]~---cf._section_\ref{s:MVadj}.
+%
+% The same care should be applied to the ``wizard'' devices
+% ~\ifLineNumbers~ (subsection_\ref{ss:OnOff}) and
+% ~\PostponeVadjust~ (section_\ref{ss:PVadj}).
+% (/New v4.00)
+%
+% (New v4.11) Oh, and the commands and environments of
+% section_{s:Xt} are missing. Sorry, I am in a hurry now.
+% May be next time.% %% TODO v4.4+
+% ---And the environments ~{linenomath}~ and ~{linenomath*}~should
+% get an own paragraph. In short, each math display, equation,
+% or ~{eqnarray}~ should be ``wrapped'' in one of ~{linenomath}~
+% and ~{linenomath*}~.
+%
+% \subsection{%
+% Customization hooks
+% \unskip}
+%
+% There are several hooks to customize the appearance of the
+% line numbers, and some low level hooks for special
+% effects.
+% \begin{description}\item
+% [|\thelinenumber] \ \par
+% This macro should give the representation of the line
+% number in the \LaTeX-counter ~linenumber~. The
+% default is provided by \LaTeX: \par$\qquad$
+% ~\arabic{linenumber}~
+% \item
+% [|\makeLineNumberLeft] \ \par
+% This macro is used to attach a line number to the left
+% of the text page. This macro should fill an ~\hbox to 0pt~
+% which will be placed at the left margin of the
+% page, with the reference point aligned to the line to
+% which it should give a number. Please use the macro
+% ~\LineNumber~ to refer to the line number.
+%
+% The default definition is \par$\qquad$
+% ~\hss\linenumberfont\LineNumber\hskip\linenumbersep~
+% \item
+% [|\makeLineNumberRight] \ \par
+% Like ~\makeLineNumberLeft~, but for line numbers on
+% the right margin.
+%
+% The default definition is \par$\qquad$
+% ~\linenumberfont\hskip\linenumbersep\hskip\textwidth~ \par$\qquad$
+% ~\hbox to\linenumberwidth{\hss\LineNumber}\hss~
+% \item
+% [|\linenumberfont] \ \par
+% This macro is initialized to \par$\qquad$
+% ~\normalfont\tiny\sffamily~
+% \item
+% [|\linenumbersep] \ \par
+% This dimension register sets the separation of the
+% linenumber to the text. Default value is ~10pt~.
+% \item
+% [|\linenumberwidth] \ \par
+% This dimension register sets the width of the line
+% number box on the right margin. The distance of the
+% right edge of the text to the right edge of the line
+% number is ~\linenumbersep~ + ~\linenumberwidth~. The
+% default value is ~10pt~.
+% \item
+% [|\theLineNumber] (for wizards) \ \par
+% This macro is called for printing a ~\newlabel~ entry
+% to the aux-file. Its definition depends on the mode.
+% For running line numbers it's just ~\thelinenumber~,
+% while in pagewise mode, the page offset subtraction
+% is done in here.
+% \item
+% [|\makeLineNumber] (for wizards) \ \par
+% This macro produces the line numbers. The definition
+% depends on the mode. In the running line numbers
+% mode it just expands ~\makeLineNumberLeft~.
+% \item
+% [|\LineNumber] (for wizards) \ \par
+% This macro is called by ~\makeLineNumber~ to typeset
+% the line number. This hook is changed by the modulo
+% mechanism
+%% %%%.
+% and by ~\firstlinenumber~.
+%% %% New v4.00
+% \end{description}
+%%
+%% TODO: \stepLineNumber---another wizard command!?
+%% Not sure, may be retreated.
+% \end{document}%D
+------------------------------------------------------------------------------
+ %SSTOPP
+%% TODO v4.4+: Check for unwanted comment marks in new comments
+%% (resulting from manual aligning): search `New v4.2'
+%% and/or ` % '!
+%% TODO v4.4+: Check for missing comment marks where a paragraph
+%% should end/start. Also to prevent empty "code" lines.
+%% Especially, new comments at section ends must be
+%% followed by comment mark lines.
+%% And prevent ~\par~s from blank lines in definitions!
+%% See `visual space' above.
+%% For proper appearance in lineno.tex, note that a comment
+%% in a final code line changes behaviour.
+%% TODO v4.4+: Require README for redistribution?
+%% TODO v4.4+: Since discussions of code have increased so much, it
+%% would be appropriate not to give to this file
+%% extension `.sty' (e.g., `dty'!??). ?? Is quickly read though!
+%% A .sty extraction may be possible even if the present
+%% file is neither a .doc nor a .dtx. (!???)
+%% Use awk line below (etc.) for .doc at least; + .ins or so.
+%% ^ must not be caps! To escape awk.
+%% TODO v4.4+: Underfull lines!? (due to long code quotations)
+%% TODO v4.4+: Sometimes paragraph indents may be appropriate.
+%% TODO Swap first line (`\iffalse...') with corresponding below.
+ Or do *not* swap, maybe nawk is more reliable.
+%% TODO v4.4+: Ponder Stephan's mail from 2004/09/02.
+%% TODO v4.4+:
+%% use \@ET@makeLineNumber.
+%% plus almost all `(UL)'
+%% plus lots of bad boxes messages
+%% change v4.3 TODOs when postponed
+%% remove {old} environments.
+
+------------------------------------------------------------------------------
+
+# awk command lines for v4.00, mixed with former ones:
+
+echo "Don't bother about unknown 'iffalse'." # SHELL1
+nawk '/A[W]K/' lineno.sty | nawk -f - lineno.sty >lineno.tex; # SHELL1
+latex lineno; latex lineno; latex lineno; latex lineno; # SHELL1
+
+BEGIN{DOC=-1; # AWK DOC A W K
+ BEGINCODE = "\\begin{code}\\begin{verbatim}"; # AWK
+ ENDCODE = "\\end{verbatim}\n\\end{code}"; } # AWK
+ BEGINCODE = "% \\begin{macrocode}"; # DOC A W K
+ ENDCODE = "% \\end{macrocode}"; } # DOC A W K
+/^[ \t]*$/ { ECNT++; next; } # AWK DOC A W K
+/\\documentclass/{ sub("article","ltxdoc") } # DOC A W K
+/%D$/ { sub("^%* *",""); sub("%D$",""); # DOC A W K
+ print > "lineno.drv"; next } # DOC A W K
+/^%%/ { next; } # AWK DOC A W K
+/^%/ { if (!DOC) { print ENDCODE; } # AWK DOC A W K
+ DOC=1; ECNT=0; # AWK DOC A W K
+ sub("^% *",""); # AWK
+ sub("^% *","% "); # DOC A W K
+ print; next; } # AWK DOC A W K
+/%VERSION/ { sub("%VERSION",""); print; next; } # AWK
+/%SSTOPP/ { exit } # AWK
+DOC<0 { next } # AWK DOC A W K
+/^-+-$/ { if (!DOC) print ENDCODE; exit } # AWK DOC A W K
+{ if (DOC) { ECNT=DOC=0; print BEGINCODE; } # AWK DOC A W K
+ while (ECNT>0) { print " "; ECNT--; } # AWK DOC A W K
+ print $0; } # AWK DOC A W K
+
+# New v4.00, UL: know nothing about awk; found present solution
+# in hours of trial and error.
+
+% Earlier (should be inhibited by %SSTOPP above and otherwise):
+echo "expect errors for unknown commands 'iffalse' and 'fi'";# SHELL0 SHELL#1
+awk '/A[W]K/' lineno.sty | awk -f - lineno.sty >lineno.tex; # SHELL0
+latex lineno; latex lineno; latex lineno; latex lineno; # SHELL0
+nawk '/A[W]K/' lineno4.sty | nawk -f - lineno4.sty >lineno4.tex; # SHELL#1
+latex lineno4; latex lineno4; latex lineno4; latex lineno4; # SHELL#1
+
+awk '/DOC A [W] K/' lineno.sty | awk -f - lineno.sty >lineno.doc; # DOC SH
+
+BEGIN{DOC=-1; # A#WK DOC A W K
+ BEGINCODE = "\\begin{code}\\begin{verbatim}"; # A#WK
+ ENDCODE = "\\end{verbatim}\n\\end{code}"; } # A#WK
+ BEGINCODE = "% \\begin{macrocode}"; # DOC A W K
+ ENDCODE = "% \\end{macrocode}"; } # DOC A W K
+/^[ \t]*$/ { ECNT++; next; } # A#WK DOC A W K
+/\\documentclass/{ sub("article","ltxdoc") } # DOC A W K
+/%D$/ { sub("^%* *",""); sub("%D$",""); # DOC A W K
+ print > "lineno.drv"; next } # DOC A W K
+/^%%/ { next; } # A#WK DOC A W K
+/^%/ { if (!DOC) { print ENDCODE; } # A#WK DOC A W K
+ DOC=1; ECNT=0; # A#WK DOC A W K
+ sub("^% *",""); # A#WK
+ sub("^% *","% "); # DOC A W K
+ print; next; } # A#WK DOC A W K
+DOC<0 { next } # A#WK DOC A W K
+/^-+-$/ { if (!DOC) print ENDCODE; exit } # A#WK DOC A W K
+{ if (DOC) { ECNT=DOC=0; print BEGINCODE; } # A#WK DOC A W K
+ while (ECNT>0) { print " "; ECNT--; } # A#WK DOC A W K
+ print $0; } # A#WK DOC A W K
+
+
+------------------------------------------------------------------------------
+
+If you are looking here because of the two top lines of the file:
+
+A .tex documentation of this macro file can be obtained by
+
+ sh lineno.sty
+
+under UNIX.--You may find this hint little helpful. One
+reason may be that the awk versions to which you have access
+don't work suitably. Another reason may be that you don't have
+access to UNIX (in some sense). However, a .tex, .dvi, or .pdf
+version of such a documentation should be available from CTAN,
+in the same folder as the present file. When we typed this, that
+folder was /macros/latex/contrib/lineno. If this has changed in
+the meantime, a CTAN search should lead you to a folder
+containing such a documentation. Or you may get help from one of
+the e-mail addresses above.
+
+
--- /dev/null
+\documentclass{IEEEtran}
+\usepackage[utf8]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage[english]{babel}
+%\usepackage{ntheorem}
+\usepackage{amsmath,amssymb}
+\usepackage{epsfig,psfrag}
+\usepackage{graphics,graphicx}
+\usepackage{color}
+\usepackage{dsfont}
+\usepackage{graphicx}
+\usepackage{subfigure}
+\usepackage{stmaryrd}
+\usepackage{color}
+\usepackage{cite}
+\usepackage{url}
+\usepackage{booktabs}
+\usepackage{epstopdf}
+
+\newcommand{\JFC}[1]{\begin{color}{green}\textit{#1}\end{color}}
+\newcommand{\CG}[1]{\begin{color}{blue}\textit{}\end{color}}
+
+
+
+
+\author{
+ Jean-Fran\c cois Couchot, \and
+ Ahmed Mostefaoui\\
+ FEMTO-ST Institute, UMR 6174 CNRS\\
+ DISC Department, University of Franche-Comt\'{e}\\
+ Belfort, France\\
+ \{jean-francois.couchot, christophe.guyeux, jacques.bahi\}@femto-st.fr\\
+}
+
+
+\input{macroE}
+
+
+\title{}
+
+
+
+
+\begin{document}
+\maketitle
+
+\newcommand{\ie}{\textit{i.e.}}
+%\newcommand{\Nats}[0]{\ensuremath{\mathds{N}}}
+%\newcommand{\R}[0]{\ensuremath{\mathds{R}}}
+%\newcommand{\Bool}[0]{\ensuremath{\mathds{B}}}
+
+
+
+\begin{abstract}
+\end{abstract}
+
+
+
+\begin{IEEEkeywords}
+\end{IEEEkeywords}
+
+
+
+
+
+
+
+
+\section{Introduction}
+\input{intro}
+
+
+
+
+
+\section{Improving an Existing Scheme}
+\input{HLG}
+
+
+\subsection{A closer look to convexity}
+
+\subsection{Directly retreiving the argmin}
+
+\subsection{Convergence Detection}
+
+\section{Fault-Tolerence Considerations}
+
+\
+
+
+\section{Discussion and Future Work}
+\input{conclusion}
+
+
+%\bibliographystyle{compj}
+\bibliographystyle{IEEEtran}
+\bibliography{forensicsVer4}
+
+
+
+
+\end{document}
--- /dev/null
+\documentclass[journal]{IEEEtran}
+\usepackage[utf8]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage[english]{babel}
+%\usepackage{ntheorem}
+\usepackage{amsmath,amssymb}
+\usepackage{epsfig,psfrag}
+\usepackage{graphics,graphicx}
+\usepackage{color}
+\usepackage{dsfont}
+\usepackage{graphicx}
+\usepackage{subfigure}
+\usepackage{stmaryrd}
+\usepackage{color}
+\usepackage{cite}
+\usepackage{url}
+\usepackage{booktabs}
+\usepackage{epstopdf}
+
+\newcommand{\JFC}[1]{\begin{color}{green}\textit{#1}\end{color}}
+\newcommand{\CG}[1]{\begin{color}{blue}\textit{}\end{color}}
+
+
+
+
+\author{
+ Jean-Fran\c cois Couchot, Christophe Guyeux, and
+ Jacques M. Bahi,~\IEEEmembership{Senior Member,~IEEE}\\
+ FEMTO-ST Institute, UMR 6174 CNRS\\
+ DISC Department, University of Franche-Comt\'{e}\\
+ Belfort, France\\
+ \{jean-francois.couchot, christophe.guyeux, jacques.bahi\}@femto-st.fr\\
+}
+
+
+\input{macroE}
+
+
+\title{Mathematical topology: a new practicable framework for
+studying information-hiding security.
+Application to Spread-Spectrum schemes.}
+
+
+
+
+\begin{document}
+\maketitle
+
+\newcommand{\ie}{\textit{i.e.}}
+%\newcommand{\Nats}[0]{\ensuremath{\mathds{N}}}
+%\newcommand{\R}[0]{\ensuremath{\mathds{R}}}
+%\newcommand{\Bool}[0]{\ensuremath{\mathds{B}}}
+
+
+
+\begin{abstract}
+Information hiding security is often expressed as a probability problem.
+However, various classes of attacks cannot currently be addressed,
+due to strong hypotheses not compatible with a probabilistic approach.
+In this work, a complementary theoretical framework is presented to
+improve security. Contrary to existing ones, it is not based
+on probability theory, but on mathematical topology.
+It addresses thus security issues in classes of
+attacks that are not currently studied.
+It can also be used to reinforce the
+confidence in a new scheme.
+In this paper, first the theoretical framework of the study is presented,
+then some concrete examples are detailed in order to show how our approach
+can be applied.
+\end{abstract}
+
+
+
+\begin{IEEEkeywords}
+Information Hiding Security,
+ Mathematical Theory of Chaos,
+Spread-Spectrum, Discrete Dynamical Systems,
+Chaotic Iterations
+\end{IEEEkeywords}
+
+
+
+
+
+
+
+
+\section{Introduction}
+\input{intro}
+
+
+
+
+\section{Related Work and Contributions}
+\label{Refs}
+\input{refs}
+
+
+
+
+
+%\JFC{
+%Reprendre les contributions.}
+%\input{contribs}
+
+
+
+\section{Chaos for Data Hiding Security}
+\label{section:Chaos}
+
+This section starts with a state of the art in chaos-based information hiding
+(Sec.~\ref{subsection:ChaosInComputerScience}).
+It reminds the readers of the theory of chaos as introduced by Devaney
+(Sec.~\ref{subsection:Devaney}).
+Other qualitative and quantitative properties are next introduced
+(Sec.~\ref{subsection:properties}).
+Their application to information hiding concludes this section (Sec.~\ref{subsection:links}).
+
+\subsection{State of the Art}
+\label{subsection:ChaosInComputerScience}
+\input{art.tex}
+
+\subsection{Devaney's Chaotic Dynamical Systems}
+\label{subsection:Devaney}
+\input{devaney}
+
+\subsection{Qualitative and Quantitative
+Properties of Discrete Dynamical Systems}
+\label{subsection:properties}
+\input{properties}
+
+\subsection{Chaos Properties and Information Hiding Security}
+\label{subsection:links}
+\input{relations}
+
+
+\section{Chaos-Security of two Data Hiding Schemes}
+\label{CS}
+
+To check whether an existing data hiding scheme is chaos-secure, we
+first write it as an iterate process $X^{n+1}=f(X^n)$
+defined on the set $\mathcal{X}$, with $X^0$ as the initial
+configuration of the machine.
+Let then $\mathcal{T}(S)$ be the iterative process of a data hiding scheme $S$
+and $\tau$ be a topology on the topological space $\mathcal{X}$.
+If $\mathcal{T}(S)$ has a chaotic behavior on $\mathcal{X}$,
+as defined by Devaney, $S$ is said
+to be \emph{chaos-secure} on $(\mathcal{X},\tau)$.
+
+This section studies two classes of
+data hiding schemes in the perspective
+of chaos theory.
+
+
+
+
+\subsection{Spread-Spectrum Data Hiding Schemes}
+\label{SS}
+\input{spreadspectrum}
+
+
+\subsection{dhCI: Chaos-based Expansive Data Hiding Schemes}
+\label{sec:Algo}
+\input{dhci}
+
+
+
+\section{Discussion and Future Work}
+\input{conclusion}
+
+
+%\bibliographystyle{compj}
+\bibliographystyle{IEEEtran}
+\bibliography{forensicsVer4}
+
+
+
+
+\end{document}
--- /dev/null
+[{0: 0.18074828754835925, 1: 0.19083463851139618, 2: 0.18625471780939198, 3: 0.17325361733712263, 4: 0.1678845138572425, 5: 0.19556898924169167, 6: 0.1757247696573775, 7: 0.15470870092240857, 8: 0.1706397233176451, 9: 0.19080518909669428}, {0: 0.2418934256468288, 1: 0.39037872898466114, 2: 0.3266504857619158, 3: 0.3653054621355456, 4: 0.2634621351443713, 5: 0.4989859229706304, 6: 0.2583177249187363, 7: 0.3784170297205348, 8: 0.26716667010745854}, {0: 0.17136262718775253, 1: 0.10118810112903638, 2: 0.11947767111214498, 3: 0.19108481056086954, 4: 0.1873494247955736, 5: 0.12726097446740187, 6: 0.19969976592294947, 7: 0.1021370416462077, 8: 0.12453109808724712}, {(7, 3): 0, (6, 9): -0.19969976592294947, (0, 7): 0, (1, 6): 0, (3, 7): 0, (2, 5): 0, (8, 5): 0, (5, 8): 0, (4, 0): 0, (6, 7): 0, (5, 5): 0.12726097446740187, (7, 6): 0, (0, 4): 0, (1, 1): 0.10118810112903638, (3, 2): 0, (2, 6): 0, (8, 2): 0, (4, 5): 0, (6, 0): 0, (7, 5): 0, (0, 1): 0, (3, 1): 0, (7, 8): 0, (2, 1): 0, (8, 9): -0.12453109808724712, (5, 1): 0, (7, 2): 0, (1, 5): 0, (3, 6): 0, (2, 2): 0.11947767111214498, (8, 6): 0, (4, 1): 0, (6, 4): 0, (5, 4): 0, (7, 1): 0, (0, 5): 0, (1, 0): 0, (0, 8): 0, (3, 5): 0, (2, 7): 0, (8, 3): 0, (4, 6): 0, (6, 1): 0, (5, 7): 0, (7, 4): 0, (0, 2): 0, (1, 3): 0, (4, 8): 0, (3, 0): 0, (2, 8): 0, (8, 0): 0, (6, 2): 0, (5, 0): 0, (1, 4): 0, (3, 9): -0.19108481056086954, (2, 3): 0, (1, 9): -0.10118810112903638, (8, 7): 0, (4, 2): 0, (6, 5): 0, (5, 3): 0, (7, 0): 0, (6, 8): 0, (0, 6): 0, (1, 7): 0, (0, 9): -0.17136262718775253, (3, 4): 0, (2, 4): 0, (8, 4): 0, (5, 9): -0.12726097446740187, (4, 7): 0, (6, 6): 0.19969976592294947, (5, 6): 0, (7, 7): 0.1021370416462077, (0, 3): 0, (1, 2): 0, (4, 9): -0.1873494247955736, (3, 3): 0.19108481056086954, (2, 9): -0.11947767111214498, (8, 1): 0, (4, 4): 0.1873494247955736, (6, 3): 0, (0, 0): 0.17136262718775253, (7, 9): -0.1021370416462077, (3, 8): 0, (2, 0): 0, (1, 8): 0, (8, 8): 0.12453109808724712, (4, 3): 0, (5, 2): 0}, {(7, 3): 0, (5, 31): 0, (3, 35): 0, (6, 28): 0, (4, 36): 0, (8, 63): 0, (7, 25): 0, (5, 57): 0, (6, 54): 0, (4, 66): 0, (1, 64): 0, (8, 5): 0, (7, 55): 0, (0, 17): 0, (1, 28): 0, (2, 27): 0, (0, 55): 0, (3, 2): 0, (1, 54): 0, (4, 5): 0, (2, 53): 0, (0, 45): 0, (5, 24): 0, (3, 40): 0, (1, 40): 0, (6, 23): 0, (4, 35): 0, (2, 47): 0, (8, 38): 0, (0, 67): 0, (5, 34): 0, (6, 41): 0, (8, 12): 0, (7, 44): 0, (6, 67): 0, (8, 18): 0, (1, 21): 0, (2, 18): 0, (0, 14): 0, (3, 11): 0, (1, 15): 0, (4, 12): 0, (2, 12): 0, (0, 36): 0, (5, 1): 0, (3, 17): 0, (1, 33): 0, (6, 14): 0, (4, 42): 0, (2, 38): 0, (8, 45): 0, (7, 15): 0, (5, 43): 0, (3, 55): 0, (6, 32): 0, (4, 48): 0, (2, 64): 0, (8, 51): 0, (7, 37): 0, (5, 53): 0, (6, 58): 0, (3, 68): 0, (8, 25): 0, (0, 5): 0, (1, 0): 0, (8, 69): 0, (4, 11): 0, (2, 7): 0, (0, 59): 0, (5, 10): 0, (3, 22): 0, (1, 58): 0, (6, 1): 0, (4, 17): 0, (2, 33): 0, (7, 4): 0, (5, 20): 0, (3, 60): 0, (6, 27): 0, (4, 63): 0, (8, 58): 0, (7, 34): 0, (5, 62): 0, (6, 61): 0, (4, 69): 0, (8, 0): 0, (7, 56): 0, (0, 28): 0, (7, 68): 0, (1, 25): 0, (2, 30): 0, (0, 50): 0, (3, 31): 0, (1, 51): 0, (4, 24): 0, (2, 56): 0, (0, 40): 0, (5, 29): 0, (3, 37): 0, (6, 18): 0, (4, 38): 0, (8, 33): 0, (7, 27): 0, (5, 39): 0, (6, 52): 0, (8, 7): 0, (7, 49): 0, (0, 19): 0, (1, 18): 0, (2, 25): 0, (0, 9): 0, (7, 16): 0, (3, 4): 0, (1, 52): 0, (4, 7): 0, (2, 51): 0, (0, 47): 0, (5, 6): 0, (3, 42): 0, (1, 46): 0, (6, 21): 0, (4, 45): 0, (2, 45): 0, (8, 40): 0, (0, 69): 0, (5, 32): 0, (3, 48): 0, (6, 47): 0, (8, 14): 0, (7, 46): 0, (6, 65): 0, (3, 65): 0, (8, 20): 0, (2, 16): 0, (0, 0): 0, (3, 13): 0, (1, 13): 0, (8, 64): 0, (4, 14): 0, (2, 10): 0, (0, 38): 0, (5, 15): 0, (3, 19): 0, (1, 39): 0, (6, 12): 0, (4, 20): 0, (2, 36): 0, (8, 47): 0, (7, 9): 0, (5, 41): 0, (3, 57): 0, (6, 38): 0, (4, 50): 0, (8, 53): 0, (7, 39): 0, (5, 51): 0, (6, 56): 0, (8, 27): 0, (7, 61): 0, (5, 68): 0, (0, 7): 0, (1, 6): 0, (2, 5): 0, (0, 61): 0, (7, 22): 0, (5, 8): 0, (3, 24): 0, (1, 56): 0, (6, 7): 0, (4, 19): 0, (2, 63): 0, (7, 6): 0, (5, 18): 0, (3, 62): 0, (6, 25): 0, (4, 57): 0, (8, 60): 0, (7, 28): 0, (5, 60): 0, (6, 51): 0, (1, 67): 0, (8, 2): 0, (7, 58): 0, (0, 30): 0, (1, 31): 0, (2, 28): 0, (0, 52): 0, (3, 1): 0, (1, 49): 0, (4, 26): 0, (2, 54): 0, (0, 42): 0, (5, 27): 0, (3, 39): 0, (1, 43): 0, (6, 16): 0, (4, 32): 0, (8, 35): 0, (0, 64): 0, (5, 37): 0, (6, 42): 0, (1, 68): 0, (8, 9): 0, (7, 51): 0, (0, 21): 0, (1, 16): 0, (2, 23): 0, (0, 11): 0, (3, 6): 0, (1, 10): 0, (4, 1): 0, (2, 49): 0, (0, 33): 0, (0, 65): 0, (5, 4): 0, (3, 44): 0, (1, 44): 0, (6, 11): 0, (4, 47): 0, (2, 43): 0, (8, 42): 0, (7, 18): 0, (5, 46): 0, (3, 50): 0, (6, 45): 0, (4, 53): 0, (2, 69): 0, (8, 48): 0, (7, 40): 0, (3, 67): 0, (8, 22): 0, (0, 2): 0, (3, 15): 0, (1, 3): 0, (8, 66): 0, (4, 8): 0, (2, 8): 0, (0, 56): 0, (5, 13): 0, (3, 21): 0, (1, 37): 0, (6, 2): 0, (4, 22): 0, (2, 34): 0, (7, 11): 0, (5, 23): 0, (3, 59): 0, (6, 36): 0, (4, 60): 0, (8, 55): 0, (7, 33): 0, (5, 49): 0, (6, 62): 0, (8, 29): 0, (7, 63): 0, (5, 66): 0, (0, 25): 0, (1, 4): 0, (2, 3): 0, (0, 63): 0, (3, 26): 0, (1, 62): 0, (6, 5): 0, (4, 29): 0, (2, 61): 0, (7, 0): 0, (5, 16): 0, (3, 32): 0, (6, 31): 0, (4, 59): 0, (8, 62): 0, (7, 30): 0, (5, 58): 0, (6, 49): 0, (4, 65): 0, (1, 65): 0, (8, 4): 0, (7, 52): 0, (0, 22): 0, (0, 16): 0, (1, 29): 0, (2, 26): 0, (0, 54): 0, (3, 3): 0, (1, 55): 0, (4, 4): 0, (2, 52): 0, (0, 44): 0, (5, 25): 0, (3, 41): 0, (1, 41): 0, (6, 22): 0, (4, 34): 0, (2, 46): 0, (8, 37): 0, (0, 66): 0, (5, 35): 0, (6, 40): 0, (8, 11): 0, (7, 45): 0, (6, 66): 0, (8, 17): 0, (0, 23): 0, (1, 22): 0, (2, 21): 0, (0, 13): 0, (3, 8): 0, (1, 8): 0, (4, 3): 0, (2, 15): 0, (0, 35): 0, (5, 2): 0, (3, 46): 0, (1, 34): 0, (6, 9): 0, (4, 41): 0, (2, 41): 0, (8, 44): 0, (7, 12): 0, (5, 44): 0, (3, 52): 0, (6, 35): 0, (4, 55): 0, (2, 67): 0, (8, 50): 0, (7, 42): 0, (5, 54): 0, (6, 69): 0, (3, 69): 0, (8, 24): 0, (0, 20): 0, (0, 4): 0, (1, 1): 0, (8, 68): 0, (4, 10): 0, (2, 6): 0, (0, 58): 0, (5, 11): 0, (3, 23): 0, (1, 59): 0, (6, 0): 0, (4, 16): 0, (2, 32): 0, (7, 5): 0, (5, 21): 0, (3, 61): 0, (6, 26): 0, (4, 62): 0, (8, 57): 0, (7, 35): 0, (5, 63): 0, (6, 60): 0, (4, 68): 0, (8, 31): 0, (7, 57): 0, (5, 64): 0, (0, 27): 0, (1, 26): 0, (2, 1): 0, (0, 49): 0, (3, 28): 0, (1, 60): 0, (4, 31): 0, (2, 59): 0, (7, 2): 0, (5, 30): 0, (3, 34): 0, (6, 29): 0, (4, 37): 0, (8, 32): 0, (7, 24): 0, (5, 56): 0, (6, 55): 0, (4, 67): 0, (8, 6): 0, (7, 54): 0, (0, 18): 0, (1, 19): 0, (2, 24): 0, (0, 8): 0, (3, 5): 0, (1, 53): 0, (4, 6): 0, (2, 50): 0, (0, 46): 0, (5, 7): 0, (3, 43): 0, (1, 47): 0, (6, 20): 0, (4, 44): 0, (2, 44): 0, (8, 39): 0, (0, 68): 0, (5, 33): 0, (3, 49): 0, (6, 46): 0, (8, 13): 0, (7, 47): 0, (6, 64): 0, (8, 19): 0, (1, 20): 0, (2, 19): 0, (0, 15): 0, (3, 10): 0, (1, 14): 0, (4, 13): 0, (2, 13): 0, (0, 37): 0, (5, 0): 0, (3, 16): 0, (1, 32): 0, (6, 15): 0, (4, 43): 0, (2, 39): 0, (8, 46): 0, (7, 14): 0, (5, 42): 0, (3, 54): 0, (6, 33): 0, (4, 49): 0, (2, 65): 0, (8, 52): 0, (7, 36): 0, (5, 52): 0, (6, 59): 0, (8, 26): 0, (5, 69): 0, (0, 6): 0, (7, 69): 0, (1, 7): 0, (2, 4): 0, (0, 60): 0, (5, 9): 0, (3, 25): 0, (1, 57): 0, (6, 6): 0, (4, 18): 0, (2, 62): 0, (7, 7): 0, (5, 19): 0, (3, 63): 0, (6, 24): 0, (4, 56): 0, (8, 59): 0, (7, 29): 0, (5, 61): 0, (6, 50): 0, (8, 1): 0, (7, 59): 0, (0, 29): 0, (1, 24): 0, (2, 31): 0, (0, 51): 0, (7, 17): 0, (3, 30): 0, (1, 50): 0, (4, 25): 0, (2, 57): 0, (0, 41): 0, (5, 28): 0, (3, 36): 0, (6, 19): 0, (4, 39): 0, (8, 34): 0, (7, 26): 0, (5, 38): 0, (6, 53): 0, (1, 69): 0, (8, 8): 0, (7, 48): 0, (7, 65): 0, (1, 17): 0, (2, 22): 0, (0, 10): 0, (3, 7): 0, (1, 11): 0, (4, 0): 0, (2, 48): 0, (0, 32): 0, (5, 5): 0, (3, 45): 0, (1, 45): 0, (6, 10): 0, (4, 46): 0, (2, 42): 0, (8, 41): 0, (7, 19): 0, (5, 47): 0, (3, 51): 0, (6, 44): 0, (4, 52): 0, (2, 68): 0, (8, 15): 0, (7, 41): 0, (3, 64): 0, (8, 21): 0, (2, 17): 0, (0, 1): 0, (3, 12): 0, (1, 12): 0, (8, 65): 0, (4, 15): 0, (2, 11): 0, (0, 39): 0, (7, 23): 0, (5, 14): 0, (3, 18): 0, (1, 38): 0, (6, 13): 0, (4, 21): 0, (2, 37): 0, (7, 8): 0, (5, 40): 0, (3, 56): 0, (6, 39): 0, (4, 51): 0, (8, 54): 0, (7, 38): 0, (5, 50): 0, (6, 57): 0, (8, 28): 0, (7, 60): 0, (5, 67): 0, (0, 24): 0, (1, 5): 0, (2, 2): 0, (0, 62): 0, (3, 27): 0, (1, 63): 0, (6, 4): 0, (4, 28): 0, (2, 60): 0, (7, 1): 0, (5, 17): 0, (3, 33): 0, (6, 30): 0, (4, 58): 0, (8, 61): 0, (7, 31): 0, (5, 59): 0, (6, 48): 0, (4, 64): 0, (1, 66): 0, (8, 3): 0, (7, 53): 0, (0, 31): 0, (1, 30): 0, (2, 29): 0, (0, 53): 0, (3, 0): 0, (1, 48): 0, (4, 27): 0, (2, 55): 0, (0, 43): 0, (7, 21): 0, (5, 26): 0, (3, 38): 0, (5, 65): 0, (1, 42): 0, (6, 17): 0, (4, 33): 0, (8, 36): 0, (7, 20): 0, (5, 36): 0, (6, 43): 0, (8, 10): 0, (7, 50): 0, (7, 66): 0, (8, 16): 0, (7, 67): 0, (1, 23): 0, (2, 20): 0, (0, 12): 0, (3, 9): 0, (1, 9): 0, (4, 2): 0, (2, 14): 0, (0, 34): 0, (5, 3): 0, (3, 47): 0, (1, 35): 0, (6, 8): 0, (4, 40): 0, (2, 40): 0, (8, 43): 0, (7, 13): 0, (5, 45): 0, (3, 53): 0, (6, 34): 0, (4, 54): 0, (2, 66): 0, (8, 49): 0, (7, 43): 0, (5, 55): 0, (6, 68): 0, (3, 66): 0, (8, 23): 0, (0, 3): 0, (3, 14): 0, (1, 2): 0, (8, 67): 0, (4, 9): 0, (2, 9): 0, (0, 57): 0, (5, 12): 0, (3, 20): 0, (1, 36): 0, (6, 3): 0, (4, 23): 0, (2, 35): 0, (7, 10): 0, (5, 22): 0, (3, 58): 0, (6, 37): 0, (4, 61): 0, (8, 56): 0, (7, 32): 0, (5, 48): 0, (6, 63): 0, (8, 30): 0, (7, 62): 0, (7, 64): 0, (0, 26): 0, (1, 27): 0, (2, 0): 0, (0, 48): 0, (3, 29): 0, (1, 61): 0, (4, 30): 0, (2, 58): 0}, {(7, 3): 0.049278795144300225, (6, 9): 0.010051396848782757, (0, 7): 0.28869126898449293, (1, 6): 0.7953821666603123, (3, 7): 0.18039472837943882, (2, 5): 0.08401854487242666, (8, 5): 0.5063968949484626, (5, 8): 0.6737496734656315, (4, 0): 0.8037811571406756, (6, 7): 0.7544213725447123, (5, 5): 0.2928613623790248, (7, 6): 0.7917665389259329, (0, 4): 0.2977175276245042, (1, 1): 0.6125960431554089, (3, 2): 0.6809438383219367, (2, 6): 0.3970514094664075, (8, 2): 0.3444285795303108, (4, 5): 0.8846695172744765, (6, 0): 0.5614100109243334, (7, 5): 0.03797765629844285, (0, 1): 0.2087383946159015, (3, 1): 0.6233108363867792, (7, 8): 0.8224774088745009, (2, 1): 0.8134328128828687, (8, 9): 0.1504269241100672, (5, 1): 0.6267387535535983, (7, 2): 0.30565667049319445, (1, 5): 0.6847187812096047, (3, 6): 0.6967424633484247, (2, 2): 0.3941849938888923, (8, 6): 0.6894925560803226, (4, 1): 0.04984744360461635, (6, 4): 0.780422354345547, (5, 4): 0.3409584122152942, (7, 1): 0.6612523938736645, (0, 5): 0.6847627200437773, (1, 0): 0.9709150974948633, (0, 8): 0.20265511784958268, (3, 5): 0.14340734866425164, (2, 7): 0.7840248939125836, (8, 3): 0.35991708865704897, (4, 6): 0.35600042521538033, (6, 1): 0.34403592199796185, (5, 7): 0.2060960504691426, (7, 4): 0.5353525708183022, (0, 2): 0.24252987510078183, (1, 3): 0.054570563674991024, (4, 8): 0.9993360474904499, (3, 0): 0.7907407367199143, (2, 8): 0.327349062617582, (8, 0): 0.5990815227175489, (6, 2): 0.33164628362700266, (5, 0): 0.7321619949810647, (1, 4): 0.005381342591492366, (3, 9): 0.9633526268583869, (2, 3): 0.5783868857729323, (1, 9): 0.8784572188888577, (8, 7): 0.7756364173714229, (4, 2): 0.9142452882168264, (6, 5): 0.7377579550438217, (5, 3): 0.5658679664906601, (7, 0): 0.5475153593689351, (6, 8): 0.10002238596784807, (0, 6): 0.1314224891736836, (1, 7): 0.5021560836228396, (0, 9): 0.45558300946652497, (3, 4): 0.1586849753770142, (2, 4): 0.06820570568945761, (8, 4): 0.5473403277630758, (5, 9): 0.14382605398169102, (4, 7): 0.028137709217451623, (6, 6): 0.08302749695625589, (5, 6): 0.8189336900019373, (7, 7): 0.3250250656970306, (0, 3): 0.762001689955991, (1, 2): 0.31298595892224523, (4, 9): 0.006595642313717787, (3, 3): 0.0907816960867156, (2, 9): 0.97578355427596, (8, 1): 0.6430312257740721, (4, 4): 0.04655557595867521, (6, 3): 0.43678746490113374, (0, 0): 0.7193546563564629, (7, 9): 0.8483566471785475, (3, 8): 0.8906902666418179, (2, 0): 0.21408380226765056, (1, 8): 0.7044971272064283, (8, 8): 0.311763480170997, (4, 3): 0.21870047279811444, (5, 2): 0.46088121078034894}, {0: 0.17136262718775253, 1: 0.10118810112903638, 2: 0.11947767111214498, 3: 0.19108481056086954, 4: 0.1873494247955736, 5: 0.12726097446740187, 6: 0.19969976592294947, 7: 0.1021370416462077, 8: 0.12453109808724712}, {0: 0.7462470336002633, 1: 0.02214176340327867, 2: 0.7077002753129825, 3: 0.45806157997848396, 4: 0.678514141240499, 5: 0.36568814872314703, 6: 0.5245306172939272, 7: 0.15528740623933213, 8: 0.5700539257444325, 9: 0.7131147842927804}, {0: 0.003365897202354806, 1: 0.3463886498500619, 2: 0.21699272618878207, 3: 0.43576124465935395, 4: 0.8133352919860429, 5: 0.960894452521986, 6: 0.842379556061987, 7: 0.9695218568248749, 8: 0.06274767331001241, 9: 0.5385193154789347, 10: 0.49960903877748053, 11: 0.8013167605659509, 12: 0.8650967667329721, 13: 0.01031310669685681, 14: 0.6440152595587728, 15: 0.879431795297725, 16: 0.5163674824884243, 17: 0.6623786759745407, 18: 0.33772854125393403, 19: 0.7423226994145022, 20: 0.5068713396711859, 21: 0.8371070073294941, 22: 0.29280144336696756, 23: 0.8713284452838311, 24: 0.779329040519086, 25: 0.46625232631738645, 26: 0.9615383181249267, 27: 0.9213767165419512, 28: 0.17699269214893243, 29: 0.5354212965190674, 30: 0.20984132284900647, 31: 0.8543577534711831, 32: 0.7162313570792331, 33: 0.8906697756440575, 34: 0.6435704983867423, 35: 0.5926004913817045, 36: 0.08448219628494757, 37: 0.3483195151225278, 38: 0.2588395968676833, 39: 0.8268454431342359, 40: 0.7799298863567447, 41: 0.9250764100293891, 42: 0.3611682302769068, 43: 0.8515625441079303, 44: 0.6246945514575584, 45: 0.8970249372866925, 46: 0.6535029664405683, 47: 0.5730931023695143, 48: 0.6866754618589381, 49: 0.6955032235616848, 50: 0.5240343275229231, 51: 0.6647687556711611, 52: 0.5412151175215661, 53: 0.8804686667748076, 54: 0.23584611766813812, 55: 0.8102054994838637, 56: 0.9415978647921003, 57: 0.7587671450760821, 58: 0.6481179526923484, 59: 0.711298539005794, 60: 0.257078246830746, 61: 0.3658233485274327, 62: 0.3717501782287307, 63: 0.896074586149179, 64: 0.04871679807666984, 65: 0.23778119615958881, 66: 0.4092891148712009, 67: 0.007449099678760063, 68: 0.2256639233061669, 69: 0.9469613945140087}]
--- /dev/null
+source [0, 1, 2, 3, 4, 5, 6, 7, 8]
+ds calcul u 0.171362627188 0
+ds calcul u 0.191084810561 0
+ds calcul u 0.199699765923 0
+ds calcul la 0.661848012095 0 0
+ds calcul la 0.954025945483 0 9
++ ds calcul u 1.80390928494 0
+ds calcul u 3.32818998838 0
+ds calcul u 3.81662795353 0
+ds calcul u 5.49033614759 0
+ds calcul la 7.53342334576 0 0
+ds calcul la 9.29374704351 0 1
++ ds calcul la 12.2305464282 0 1
++ ds calcul la 25.4207440304 0 1
++ ds calcul la 41.8893545454 0 1
++ - + - - + + - - - - - - - - - - - - + + - + - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 100 erreur sur q 1.37697263031 et q: {0: 0.21184661605605143, 1: 0.10481005857687054, 2: 0.2084682193818586, 3: 0.20854117659628582, 4: 0.213510510217915, 5: 0.1203187460761112, 6: 0.21273850773495534, 7: 0.24913064061808984, 8: 0.21566250812215926, 9: 0.20837553403646153}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 200 erreur sur q 0.889641159002 et q: {0: 0.16108972017655693, 1: 0.09486957764420367, 2: 0.1576077854574201, 3: 0.15761123591148185, 4: 0.1611423190998158, 5: 0.1102144125509333, 6: 0.15686476331265534, 7: 0.17926945865361082, 8: 0.16237428180182323, 9: 0.15818739449740604}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 300 erreur sur q 0.787478516503 et q: {0: 0.13787962659402397, 1: 0.08411913593610065, 2: 0.13534713303056323, 3: 0.13534759984329986, 4: 0.13788511962232122, 5: 0.10009823467859073, 6: 0.134430803089173, 7: 0.1503611483125675, 8: 0.1387818243161894, 9: 0.1357917401690652}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 400 erreur sur q 0.733691325149 et q: {0: 0.12315931709019257, 1: 0.07662205441703807, 2: 0.12118970510917361, 3: 0.12118980590820816, 4: 0.12316029138588572, 5: 0.09214824787577745, 6: 0.12039902560834237, 7: 0.13283899105793712, 8: 0.12385676903360998, 9: 0.12319218705262776}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 500 erreur sur q 0.688051743314 et q: {0: 0.11308285259503326, 1: 0.07153310139169211, 2: 0.11148845061779515, 3: 0.11148847919779195, 4: 0.11308308776345247, 5: 0.08744555556346119, 6: 0.11082329530295551, 7: 0.12075157650889598, 8: 0.11364845156994535, 9: 0.11613716666813706}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 600 erreur sur q 0.647428862934 et q: {0: 0.10584632020572587, 1: 0.06791978936466536, 2: 0.10453926096204016, 3: 0.10453927067220029, 4: 0.10584638984399636, 5: 0.08473751733974683, 6: 0.1039777076403228, 7: 0.11189302136375137, 8: 0.10631619760063332, 9: 0.11117337203123262}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 700 erreur sur q 0.647277970184 et q: {0: 0.10045069144348051, 1: 0.06524721426083979, 2: 0.09937837821482941, 3: 0.09937838197185805, 4: 0.10045071532582181, 5: 0.08345332540799316, 6: 0.098902607159158, 7: 0.10514389978658481, 8: 0.10084509599106034, 9: 0.10748029866777527}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 800 erreur sur q 0.653861452424 et q: {0: 0.09635853159173799, 1: 0.06329119993931509, 2: 0.09548603400085379, 3: 0.09548603560499425, 4: 0.09635854074551467, 5: 0.08351507244648913, 6: 0.09508292206585622, 7: 0.09986505318977307, 8: 0.09669030225470565, 9: 0.10467487585729324}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 900 erreur sur q 0.651534784925 et q: {0: 0.09324604030987438, 1: 0.06211779756770652, 2: 0.09254975399204259, 3: 0.09254975473219704, 4: 0.09324604413930299, 5: 0.08414657887173499, 6: 0.09220975441474072, 7: 0.09568136861365245, 8: 0.09352386474174235, 9: 0.10258970344601884}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 1000 erreur sur q 0.644680644675 et q: {0: 0.09085205566887808, 1: 0.061379389199482604, 2: 0.09031348875949696, 3: 0.09031348912315865, 4: 0.09085205738861954, 5: 0.0846636629864424, 6: 0.09002950488911937, 7: 0.09234677715949555, 8: 0.0910821522463765, 9: 0.10094949339835063}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 1100 erreur sur q 0.629160273661 et q: {0: 0.0889830538200149, 1: 0.06122868443775509, 2: 0.08858498349234241, 3: 0.08858498368057807, 4: 0.08898305463907552, 5: 0.08495550573608036, 6: 0.08835128738211878, 7: 0.08966993892652209, 8: 0.0891703733159337, 9: 0.09975134029450591}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 1200 erreur sur q 0.617848274337 et q: {0: 0.08749428460346553, 1: 0.061015472204295707, 2: 0.08722000363128028, 3: 0.08722000373309474, 4: 0.08749428501339679, 5: 0.08485639711951914, 6: 0.08703158570825498, 7: 0.0875126113370101, 8: 0.0876431568704194, 9: 0.09871377641357956}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 1300 erreur sur q 0.614400793106 et q: {0: 0.0862513152627129, 1: 0.060598468938496186, 2: 0.08608424998981996, 3: 0.08608425004700518, 4: 0.08625131547678735, 5: 0.0845265228092359, 6: 0.08593645746364975, 7: 0.08573094860860953, 8: 0.08636578378190352, 9: 0.09783021631532372}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 1400 erreur sur q 0.614334701303 et q: {0: 0.08517778239617155, 1: 0.06012779513650801, 2: 0.08510238097254098, 3: 0.08510238100572787, 4: 0.08517778251216532, 5: 0.08406106865541887, 6: 0.08499079347897959, 7: 0.0842258939973502, 8: 0.08526170476743894, 9: 0.09706638620171253}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 1500 erreur sur q 0.615469525432 et q: {0: 0.08423057810635451, 1: 0.05966935827983055, 2: 0.08423296969557852, 3: 0.08423296971539701, 4: 0.0842305781712698, 5: 0.08353442086469205, 6: 0.08415342878644327, 7: 0.08293195485099902, 8: 0.08428758434273836, 9: 0.09639402990317099}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 1600 erreur sur q 0.617001537482 et q: {0: 0.08338311477193014, 1: 0.05924177635960126, 2: 0.08345134088327735, 3: 0.08345134089541867, 4: 0.08338311480931479, 5: 0.08298848835603874, 6: 0.08340001217850607, 7: 0.08180363272196106, 8: 0.08341654216450217, 9: 0.09579404345661957}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 1700 erreur sur q 0.61863048326 et q: {0: 0.0826173448781578, 1: 0.058848024999094695, 2: 0.08274130676319327, 3: 0.08274130677080069, 4: 0.08261734490024372, 5: 0.08244565100576944, 6: 0.08271472363400054, 7: 0.08080802791600064, 8: 0.08263019567893937, 9: 0.09525320714315572}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 1800 erreur sur q 0.620239939621 et q: {0: 0.0819201510222155, 1: 0.058486314951061824, 2: 0.08209141818240571, 3: 0.0820914181872707, 4: 0.08192015103556594, 5: 0.08191762241589026, 6: 0.08208649612335522, 7: 0.07992067530244057, 8: 0.08191508034859396, 9: 0.09476186340498371}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 1900 erreur sur q 0.621784066022 et q: {0: 0.08128153618475278, 1: 0.05815364128959355, 2: 0.08149310983636959, 3: 0.081493109839539, 4: 0.08128153619299189, 5: 0.08141022444711907, 6: 0.08150713671609341, 7: 0.0791229817812572, 8: 0.08126086328091453, 9: 0.09431264882459296}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 2000 erreur sur q 0.623245630105 et q: {0: 0.08069362129044808, 1: 0.05784692514849543, 2: 0.08093970116437141, 3: 0.08093970116647045, 4: 0.08069362129562982, 5: 0.08092599231828113, 6: 0.08097031204577346, 7: 0.07840055488725092, 8: 0.08065935494861837, 9: 0.09389976846232478}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 2100 erreur sur q 0.624619577291 et q: {0: 0.08015004194133488, 1: 0.05756335432655957, 2: 0.0804258172693328, 3: 0.08042581727074388, 4: 0.08015004194464995, 5: 0.08046562415064169, 6: 0.08047096130644793, 7: 0.0777420715380979, 8: 0.08010391265406053, 9: 0.09351855237349235}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 2200 erreur sur q 0.625906230662 et q: {0: 0.07964556039673507, 1: 0.05730045572470288, 2: 0.07994703148817169, 3: 0.07994703148913382, 4: 0.07964556039889095, 5: 0.08002880190490717, 6: 0.0800049361691059, 7: 0.07713849222784197, 8: 0.07958905426628676, 9: 0.09316516798259472}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 2300 erreur sur q 0.627108319695 et q: {0: 0.07917580248408773, 1: 0.057056081034865036, 2: 0.07949963245890031, 3: 0.07949963245956543, 4: 0.07917580248550926, 5: 0.07961466272488268, 6: 0.07956876846259028, 7: 0.07658250393920199, 8: 0.07911019394647018, 9: 0.09283642414099255}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 2400 erreur sur q 0.628229614962 et q: {0: 0.07873707160772114, 1: 0.05682836831092919, 2: 0.07908046503744123, 3: 0.07908046503790711, 4: 0.07873707160867113, 5: 0.07922207187882835, 6: 0.07915951350927122, 7: 0.07606811827485196, 8: 0.07866345344367448, 9: 0.09252963225379499}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 2500 erreur sur q 0.629274273129 et q: {0: 0.0783262128130072, 1: 0.056615700743101405, 2: 0.0786868171975571, 3: 0.07868681719788634, 4: 0.07832621281365115, 5: 0.07884978111519612, 6: 0.07877464028465483, 7: 0.0755903770037957, 8: 0.07824552281345243, 9: 0.09224250467590067}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 2600 erreur sur q 0.630246512685 et q: {0: 0.07794051073866776, 1: 0.05641666933368239, 2: 0.07831633683391574, 3: 0.07831633683415126, 4: 0.07794051073910888, 5: 0.07849651988657112, 6: 0.07841195173026508, 7: 0.07514513319416125, 8: 0.07785355491730811, 9: 0.09197307843856076}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 2700 erreur sur q 0.631150451318 et q: {0: 0.07757761132010405, 1: 0.056230041010640885, 2: 0.07796696878320442, 3: 0.07796696878336992, 4: 0.07757761132041155, 5: 0.07816104681858899, 6: 0.07806952519798874, 7: 0.0747288863405948, 8: 0.0774850838495662, 9: 0.09171965677211874}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 2800 erreur sur q 0.63199002578 et q: {0: 0.07723546062438363, 1: 0.056054731975144656, 2: 0.0776369059967768, 3: 0.07763690599689987, 4: 0.07723546062459632, 5: 0.07784217747959714, 6: 0.07774566678510236, 7: 0.07433865660162678, 8: 0.07713796080709406, 9: 0.09148076348120088}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 2900 erreur sur q 0.632768955399 et q: {0: 0.07691225634234328, 1: 0.05588978558006785, 2: 0.07732455092553178, 3: 0.07732455092562926, 4: 0.07691225634249069, 5: 0.07753879799993632, 6: 0.07743887554541076, 7: 0.07397188773652214, 8: 0.07681030297497249, 9: 0.09125510681906135}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 3000 erreur sur q 0.633490729261 et q: {0: 0.07660640882271966, 1: 0.055734353975999795, 2: 0.0770284844727283, 3: 0.07702848447280627, 4: 0.07660640882282829, 5: 0.07724987028486155, 6: 0.07714781491464487, 7: 0.07362637136200584, 8: 0.07650045231225255, 9: 0.09104155052112958}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 3100 erreur sur q 0.634155540664 et q: {0: 0.07631650990219277, 1: 0.05558778647566459, 2: 0.07674744116344248, 3: 0.07674744116350649, 4: 0.0763165099022727, 5: 0.07697443257400952, 6: 0.07687129001258261, 7: 0.07330018771521862, 8: 0.07620694246646559, 9: 0.09083908926244014}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 3200 erreur sur q 0.634754099022 et q: {0: 0.07604131812102366, 1: 0.0554498184541895, 2: 0.07648029943754836, 3: 0.07648029943760018, 4: 0.07604131812108594, 5: 0.07671160740510881, 6: 0.07660823975793576, 7: 0.07299166971578289, 8: 0.07592848237070554, 9: 0.0906468180079997}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 3300 erreur sur q 0.635304691821 et q: {0: 0.07577972071263439, 1: 0.055319327782090755, 2: 0.07622604770580209, 3: 0.07622604770584446, 4: 0.07577972071268421, 5: 0.07646058785861946, 6: 0.0763577044702729, 7: 0.07269934809748407, 8: 0.07566391687352075, 9: 0.09046395627043813}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 3400 erreur sur q 0.635814270773 et q: {0: 0.0755307083783002, 1: 0.055195634104108715, 2: 0.07598376243286586, 3: 0.07598376243290053, 4: 0.07553070837834008, 5: 0.07622061553846782, 6: 0.0761188052598617, 7: 0.07242191196974473, 8: 0.07541220037448071, 9: 0.09028980595187291}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 3500 erreur sur q 0.636284973353 et q: {0: 0.07529337192632932, 1: 0.05507826056661763, 2: 0.07575260745562824, 3: 0.07575260745565682, 4: 0.07529337192636038, 5: 0.07599098909234606, 6: 0.07589074444949662, 7: 0.07215819567521134, 8: 0.0751723925092127, 9: 0.09012373012356156}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 3600 erreur sur q 0.636718090121 et q: {0: 0.07506689163540292, 1: 0.05496679742448518, 2: 0.07553182550343247, 3: 0.07553182550345489, 4: 0.07506689163542707, 5: 0.07577106387799293, 6: 0.07567279802435051, 7: 0.071907160347634, 8: 0.07494364671508047, 9: 0.08996515170068459}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 3700 erreur sur q 0.637114857064 et q: {0: 0.07485052639864018, 1: 0.05486087198090239, 2: 0.07532072909309856, 3: 0.07532072909311624, 4: 0.07485052639865947, 5: 0.07556024744497142, 6: 0.0754643073090703, 7: 0.07166787664640525, 8: 0.07472519870899358, 9: 0.08981354859143098}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 3800 erreur sur q 0.637476575838 et q: {0: 0.07464360417484242, 1: 0.0547601408136113, 2: 0.07511869241087445, 3: 0.07511869241088895, 4: 0.0746436041748578, 5: 0.07535799462938664, 6: 0.07526467150774482, 7: 0.0714395100023294, 8: 0.07451635638185178, 9: 0.08966844787188422}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 3900 erreur sur q 0.637804597283 et q: {0: 0.07444551380368228, 1: 0.054664286803531914, 2: 0.07492514430213401, 3: 0.07492514430214575, 4: 0.0744455138036933, 5: 0.07516380304045214, 6: 0.07507334124767065, 7: 0.07122130821079176, 8: 0.07431649114780065, 9: 0.08952942023402921}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 4000 erreur sur q 0.638100285969 et q: {0: 0.0742556980014773, 1: 0.05457301716268259, 2: 0.07473956223518521, 3: 0.07473956223519523, 4: 0.07425569800148574, 5: 0.07497720902362502, 6: 0.07488981301031061, 7: 0.07101259099291485, 8: 0.07412503054943292, 9: 0.08939607502035965}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 4100 erreur sur q 0.638364990567 et q: {0: 0.07407364734365757, 1: 0.054486061645346806, 2: 0.07456146708458897, 3: 0.07456146708459693, 4: 0.07407364734366415, 5: 0.07479778406092596, 6: 0.07471362430906797, 7: 0.0708127411714469, 8: 0.07394145191223445, 9: 0.08926805587360084}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 4200 erreur sur q 0.63860000989 et q: {0: 0.07389889522892293, 1: 0.05440317087222818, 2: 0.07439041876064298, 3: 0.07439041876064936, 4: 0.07389889522893, 5: 0.07462517956655977, 6: 0.07454434965238818, 7: 0.07062119717142651, 8: 0.07376527703268543, 9: 0.08914503632926235}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 4300 erreur sur q 0.638806333361 et q: {0: 0.07373101808980251, 1: 0.0543241173123748, 2: 0.07422601702540808, 3: 0.07422601702541362, 4: 0.0737310180898085, 5: 0.07445927257122704, 6: 0.0743816016433208, 7: 0.07043744679993635, 8: 0.0735960721551791, 9: 0.0890267075057814}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 4400 erreur sur q 0.638985239097 et q: {0: 0.07356962549208146, 1: 0.054248691480848266, 2: 0.0740678921275013, 3: 0.07406789212750575, 4: 0.07356962549208623, 5: 0.07429947142658337, 6: 0.07422502185956853, 7: 0.07026102207906801, 8: 0.0734334378694802, 9: 0.08891280457744466}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 4500 erreur sur q 0.6391380717 et q: {0: 0.0734143525885719, 1: 0.05417669606768655, 2: 0.07391569748358467, 3: 0.07391569748358831, 4: 0.07341435258857637, 5: 0.0741453734334866, 6: 0.07407427374036332, 7: 0.07009149394874706, 8: 0.07327700139672838, 9: 0.08880308512344084}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ds calcul la 25077.3123764 0 4
++ - - + - - k: 4600 erreur sur q 269.894002813 et q: {0: 0.08789130809790305, 1: 0.06869332517051807, 2: 0.08839434076143263, 3: 0.08839434076143607, 4: 18.60860982198988, 5: 0.08858224986642826, 6: 0.07393511243946865, 7: 0.084554930096297, 8: 0.08775286443193414, 9: 0.10315717802555988}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 4700 erreur sur q 107.025246191 et q: {0: 0.46351204605064306, 1: 0.38719432875112436, 2: 0.4588921380662337, 3: 0.45889213806623536, 4: 10.776578144157956, 5: 0.44309909527473124, 6: 0.09975981100843581, 7: 0.46110119597098564, 8: 0.4634641227309195, 9: 0.42745126869148226}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 4800 erreur sur q 40.7187625774 et q: {0: 0.6636598045469577, 1: 0.5041682041780908, 2: 0.6492708329324107, 3: 0.649270832932412, 4: 6.357461569339593, 5: 0.6364318066625234, 6: 0.15238854598206344, 7: 0.6643034791748498, 8: 0.664069049465394, 9: 0.5614704987474473}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 4900 erreur sur q 17.1217717612 et q: {0: 0.7648744755712553, 1: 0.5463906024630713, 2: 0.7404974169576213, 3: 0.7404974169576216, 4: 3.8379920880548166, 5: 0.7307982709425253, 6: 0.21178900929925448, 7: 0.7702410813438324, 8: 0.7661372389434968, 9: 0.6126768579432684}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 5000 erreur sur q 7.8692062114 et q: {0: 0.8104128415067544, 1: 0.5619825778207026, 2: 0.7776102261319436, 3: 0.7776102261319442, 4: 2.386552562632441, 5: 0.7705986600784995, 6: 0.26908299409744874, 7: 0.8214678852186039, 8: 0.8128114999978588, 9: 0.6241829818430222}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 5100 erreur sur q 3.80111924353 et q: {0: 0.8252603564371084, 1: 0.5639734821548498, 2: 0.7861173718778407, 3: 0.786117371877842, 4: 1.5418466253828367, 5: 0.7814070987510191, 6: 0.3211431641613739, 7: 0.8418321638064914, 8: 0.8289370344891078, 9: 0.6629062358205073}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 5200 erreur sur q 1.8462361759 et q: {0: 0.8236877604486267, 1: 0.563978336879762, 2: 0.7802580987865967, 3: 0.7802580987865972, 4: 1.0451654709193425, 5: 0.7775054764264633, 6: 0.36720967844079166, 7: 0.8448327528443789, 8: 0.8286629146198761, 9: 0.6826810858900993}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + k: 5300 erreur sur q 1.05865688537 et q: {0: 0.8136043306724794, 1: 0.5901463231972488, 2: 0.7676779976574585, 3: 0.767677997657459, 4: 0.7498839635143639, 5: 0.7665732077372479, 6: 0.40729405955713505, 7: 0.8384787200789049, 8: 0.8198080799698924, 9: 0.6904512188573286}
+maxg= 25077.3123764
++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 5400 erreur sur q 0.871784027719 et q: {0: 0.799767334928421, 1: 0.6154435697749505, 2: 0.7528010865792357, 3: 0.7528010865792364, 4: 0.5724605923923649, 5: 0.7530652532207285, 6: 0.4421510810805612, 7: 0.8276113314051814, 8: 0.8070705806801147, 9: 0.6917673052673619}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 5500 erreur sur q 0.754272996671 et q: {0: 0.7843903549717959, 1: 0.6319067282308376, 2: 0.7375162454096111, 3: 0.7375162454096116, 4: 0.4643075424739509, 5: 0.738900410477807, 6: 0.47211494849953306, 7: 0.8145221839125079, 8: 0.7926306308889586, 9: 0.6893914243141384}
+maxg= 25077.3123764
+- - - - + + - - - + + + - - + - + - - - - + - + - - - - - - - - - - - - + - + - + - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 5600 erreur sur q 1.01523168678 et q: {0: 0.768657118785566, 1: 0.6410700013870307, 2: 0.7227224474478433, 3: 0.7227224474478442, 4: 0.3972102067421597, 5: 0.7250067118809638, 6: 0.497633388989122, 7: 0.8004705949397971, 8: 0.7776580673877951, 9: 0.684903133341876}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 5700 erreur sur q 1.21668528998 et q: {0: 0.753153782275837, 1: 0.6466884442184442, 2: 0.708769772844691, 3: 0.7087697728446922, 4: 0.35463583785423847, 5: 0.7117620453662736, 6: 0.5191583786574341, 7: 0.7861160450700219, 8: 0.7627388180895875, 9: 0.6791855808168814}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 5800 erreur sur q 1.3612890474 et q: {0: 0.738220737872565, 1: 0.6490366299990962, 2: 0.6958096195408746, 3: 0.6958096195408758, 4: 0.3268846032699555, 5: 0.6993439007206042, 6: 0.5371993125997518, 7: 0.7718690334658042, 8: 0.7482219950339215, 9: 0.6728095101790028}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 5900 erreur sur q 1.45942439569 et q: {0: 0.723996045170884, 1: 0.6490373476510122, 2: 0.6838324107803037, 3: 0.6838324107803044, 4: 0.3081751300160551, 5: 0.6877667211842444, 6: 0.552202945449985, 7: 0.7579334329078122, 8: 0.7342597500707873, 9: 0.6660965164849417}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 6000 erreur sur q 1.52304377804 et q: {0: 0.7105224326892505, 1: 0.6473412270286065, 2: 0.6727677555362777, 3: 0.6727677555362787, 4: 0.29504548182537693, 5: 0.6769818597630916, 6: 0.5645719068675952, 7: 0.7444126671583051, 8: 0.7209116945923865, 9: 0.6592386707791282}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 6100 erreur sur q 1.56250441578 et q: {0: 0.6977913216716305, 1: 0.6444142207472751, 2: 0.6625218830037627, 3: 0.6625218830037631, 4: 0.28540565545669505, 5: 0.6669149482458175, 6: 0.5746621603220845, 7: 0.7313532523957822, 8: 0.7081871355086033, 9: 0.6523508801724448}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 6200 erreur sur q 1.58565908389 et q: {0: 0.6857679163341026, 1: 0.6405945542099392, 2: 0.652996943067402, 3: 0.6529969430674025, 4: 0.2779831742548451, 5: 0.6574852393941706, 6: 0.5827848357178209, 7: 0.7187697196801102, 8: 0.696068981281398, 9: 0.6455016995176743}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 6300 erreur sur q 1.59804576247 et q: {0: 0.6744054143403181, 1: 0.6361305558946908, 2: 0.6441003724384775, 3: 0.6441003724384777, 4: 0.271996327028325, 5: 0.6486150889133889, 6: 0.589210028768318, 7: 0.7066589048422214, 8: 0.6845272106402603, 9: 0.6387316207370348}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 6400 erreur sur q 1.60341479445 et q: {0: 0.6636529456555724, 1: 0.6312062802660459, 2: 0.6357488971611723, 3: 0.6357488971611719, 4: 0.2669602029027667, 5: 0.6402341195666724, 6: 0.5941712883730835, 7: 0.6950081417665304, 8: 0.6735263845045254, 9: 0.6320640241157867}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 6500 erreur sur q 1.60425033289 et q: {0: 0.6534598925207926, 1: 0.6259591836131172, 2: 0.6278697137372774, 3: 0.6278697137372774, 4: 0.26257074452754914, 5: 0.6322805877690265, 6: 0.5978701349008753, 7: 0.6837999488438534, 8: 0.6630297568169331, 9: 0.6255117933228429}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 6600 erreur sur q 1.60217993393 et q: {0: 0.6437781256330473, 1: 0.6204925261981413, 2: 0.6204002542557059, 3: 0.6204002542557057, 4: 0.25863495649023527, 5: 0.6247013422270866, 6: 0.6004802927598731, 7: 0.6730146939910325, 8: 0.6530014476758488, 9: 0.6190813461773226}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 6700 erreur sur q 1.59826576663 et q: {0: 0.6345630485017223, 1: 0.6148842093430524, 2: 0.613287303199619, 3: 0.6132873031996193, 4: 0.25502860484519196, 5: 0.6174511315381612, 6: 0.6021515047423744, 7: 0.662632093481086, 8: 0.6434075189417832, 9: 0.6127751119894402}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 6800 erreur sur q 1.59320141453 et q: {0: 0.6257739695940743, 1: 0.6091931597898335, 2: 0.606485876448673, 3: 0.606485876448673, 4: 0.25167040046766775, 5: 0.6104916644123886, 6: 0.6030128928067782, 7: 0.6526320384889605, 8: 0.6342164352614461, 9: 0.6065930669066149}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 6900 erreur sur q 1.58744133068 et q: {0: 0.6173741051011782, 1: 0.6034639987746245, 2: 0.5999580739597106, 3: 0.5999580739597106, 4: 0.24850613134478383, 5: 0.6037906300175007, 6: 0.60317587899712, 7: 0.6429950351688705, 8: 0.6253991878925174, 9: 0.6005336929206803}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 7000 erreur sur q 1.58128481098 et q: {0: 0.6093303883537609, 1: 0.5977304934178183, 2: 0.5936720077869639, 3: 0.5936720077869636, 4: 0.24549883884079104, 5: 0.5973207781489981, 6: 0.6027367028303134, 7: 0.6337024238139256, 8: 0.6169292400897419, 9: 0.5945945810489108}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 7100 erreur sur q 1.57493012708 et q: {0: 0.6016131874830646, 1: 0.5920181318908228, 2: 0.5876008475589322, 3: 0.5876008475589316, 4: 0.24262268959348354, 5: 0.5910591007605305, 6: 0.6017785798812727, 7: 0.6247364729483282, 8: 0.6087823842488347, 9: 0.5887728128174101}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 7200 erreur sur q 1.56850937651 et q: {0: 0.5941959891382014, 1: 0.5863460603941533, 2: 0.5817219942068779, 3: 0.5817219942068778, 4: 0.2398591219350097, 5: 0.5849861259613157, 6: 0.6003735472737055, 7: 0.6160804037325163, 8: 0.6009365613740433, 9: 0.5830652023544811}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 7300 erreur sur q 1.56211096329 et q: {0: 0.5870550803180982, 1: 0.580728550310983, 2: 0.5760163771279684, 3: 0.5760163771279683, 4: 0.23719440151254378, 5: 0.5790853205236133, 6: 0.5985840391191684, 7: 0.6077183765459884, 8: 0.593371670576867, 9: 0.5774684500623464}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 7400 erreur sur q 1.55579416299 et q: {0: 0.580169245273892, 1: 0.5751761162070426, 2: 0.5704678629727535, 3: 0.5704678629727544, 4: 0.23461805595999508, 5: 0.5733425902557081, 6: 0.5964642307095505, 7: 0.5996354579556431, 8: 0.5860693831957973, 9: 0.5719792397245163}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 7500 erreur sur q 1.55926426276 et q: {0: 0.5735194856472556, 1: 0.5696963722005521, 2: 0.5650627618651676, 3: 0.5650627618651681, 4: 0.23212186182149086, 5: 0.5677458653548522, 6: 0.5940611855658764, 7: 0.5918175783626174, 8: 0.5790129686691592, 9: 0.5665942991513941}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 7600 erreur sur q 1.57474072042 et q: {0: 0.5670887669657197, 1: 0.5642946908621134, 2: 0.5597894168456169, 3: 0.5597894168456172, 4: 0.2296991810307718, 5: 0.562284757868708, 6: 0.5914158348460181, 7: 0.5842514860520225, 8: 0.5721871351198057, 9: 0.5613104371719417}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 7700 erreur sur q 1.58886298759 et q: {0: 0.5608617917943703, 1: 0.5589747121230915, 2: 0.554637863428211, 3: 0.5546378634282112, 4: 0.2273445204341895, 5: 0.5569502794567571, 6: 0.5885638143825807, 7: 0.5769247007499463, 8: 0.5655778853362479, 9: 0.5561245652102729}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 7800 erreur sur q 1.60176744921 et q: {0: 0.5548247983355946, 1: 0.5537387376208054, 2: 0.5495995477054999, 3: 0.5495995477054996, 4: 0.22505323488468942, 5: 0.5517346091070141, 6: 0.5855361808630317, 7: 0.5698254683041117, 8: 0.5591723876511177, 9: 0.5510337087968713}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 7900 erreur sur q 1.61357403259 et q: {0: 0.5489653825320686, 1: 0.5485880371123425, 2: 0.5446670930639262, 3: 0.5446670930639259, 4: 0.22282132364837537, 5: 0.546630901992534, 6: 0.5823600253940056, 7: 0.5629427172715249, 8: 0.5529588606531055, 9: 0.5460350125190823}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 8000 erreur sur q 1.62438869568 et q: {0: 0.5432723414377285, 1: 0.5435230871068943, 2: 0.539834107115961, 3: 0.5398341071159608, 4: 0.22064528811524386, 5: 0.541633132085103, 6: 0.5790589998844684, 7: 0.5562660177396694, 8: 0.5469264704482207, 9: 0.5411257407254457}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 8100 erreur sur q 1.63430542252 et q: {0: 0.5377355355827251, 1: 0.538543757050185, 2: 0.5350950218350213, 3: 0.5350950218350212, 4: 0.21852203027456518, 5: 0.5367359624128534, 6: 0.5756537692928145, 7: 0.5497855424651278, 8: 0.5410652391517539, 9: 0.5363032755229789}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 8200 erreur sur q 1.6434078505 et q: {0: 0.5323457681554034, 1: 0.5336494547891054, 2: 0.5304449610739301, 3: 0.5304449610739307, 4: 0.21644877866705237, 5: 0.5319346379363494, 6: 0.5721624007598429, 7: 0.5434920302908368, 8: 0.5353659633526056, 9: 0.5315651130961636}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 8300 erreur sur q 1.65177061725 et q: {0: 0.527094678988816, 1: 0.5288392403279611, 2: 0.5258796306606872, 3: 0.5258796306606877, 4: 0.21442303314005784, 5: 0.5272248969312368, 6: 0.5686006989423966, 7: 0.5373767517463492, 8: 0.5298201413952723, 9: 0.5269088590372475}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 8400 erreur sur q 1.65946048972 et q: {0: 0.5219746515310234, 1: 0.5241119148284367, 2: 0.5213952271130874, 3: 0.521395227113088, 4: 0.2124425226879083, 5: 0.5226028975222504, 6: 0.5649824954246034, 7: 0.5314314767137375, 8: 0.5244199084434533, 9: 0.5223322231500619}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 8500 erreur sur q 1.66653732082 et q: {0: 0.5169787311748786, 1: 0.5194660902364077, 2: 0.5169883617170052, 3: 0.5169883617170059, 4: 0.2105051725661644, 5: 0.5180651566349707, 6: 0.5613198988738668, 7: 0.5256484440377076, 8: 0.5191579784078756, 9: 0.5178330140357745}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 8600 erreur sur q 1.67305486726 et q: {0: 0.5121005535117402, 1: 0.5149002437175545, 2: 0.5126559972933122, 3: 0.512655997293312, 4: 0.20860907810808982, 5: 0.5136084991392238, 6: 0.5576235115909405, 7: 0.5200203329627506, 8: 0.5140275919320849, 9: 0.5134091336643032}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 8700 erreur sur q 1.67906149378 et q: {0: 0.5073342812482692, 1: 0.5104127601603285, 2: 0.5083953954552115, 3: 0.508395395455212, 4: 0.20675248348438569, 5: 0.5092300153710178, 6: 0.553902617247015, 7: 0.5145402362875564, 8: 0.5090224697305443, 9: 0.5090585720634879}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 8800 erreur sur q 1.68460078342 et q: {0: 0.5026745486835921, 1: 0.5060019652921572, 2: 0.5042040725489361, 3: 0.5042040725489377, 4: 0.20493376418463427, 5: 0.5049270255552407, 6: 0.5501653438796029, 7: 0.5092016351351304, 8: 0.5041367706624522, 9: 0.5047794022088596}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 8900 erreur sur q 1.68971206879 et q: {0: 0.49811641278520186, 1: 0.5016661514029256, 2: 0.5000797627911087, 3: 0.500079762791111, 4: 0.20315141235813083, 5: 0.5006970499232984, 6: 0.5464188056112718, 7: 0.5039983752446885, 8: 0.4993650540026916, 9: 0.5005697751630784}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 9000 erreur sur q 1.69443089667 et q: {0: 0.4936553100263952, 1: 0.4974035972409692, 2: 0.49602038737851284, 3: 0.4960203873785153, 4: 0.20140402439468374, 5: 0.49653778354050965, 6: 0.542669226042515, 7: 0.4989246446982833, 8: 0.49470224543908103, 9: 0.4964279154908905}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 9100 erreur sur q 1.69878943562 et q: {0: 0.48928701825726983, 1: 0.4932125833127934, 2: 0.4920240285609675, 3: 0.49202402856096983, 4: 0.19969029029200414, 5: 0.4924470750369669, 6: 0.5389220458369478, 7: 0.4939749530009507, 8: 0.4901436063837801, 9: 0.49235211695971454}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 9200 erreur sur q 1.70281683469 et q: {0: 0.4850076229765586, 1: 0.48909140355668346, 2: 0.48808890784416514, 3: 0.4880889078441677, 4: 0.1980089844716053, 5: 0.4884229085809, 6: 0.5351820166506792, 7: 0.4891441114382146, 8: 0.4856847062374622, 9: 0.4883407385253475}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 9300 erreur sur q 1.70653953982 et q: {0: 0.4808134874544603, 1: 0.48503837415599116, 2: 0.4842133676338387, 3: 0.4842133676338407, 4: 0.1963589577863054, 5: 0.48446338855165594, 6: 0.5314532832474101, 7: 0.4844272146391084, 8: 0.481321397288758, 9: 0.4843922005953297}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 9400 erreur sur q 1.70998157364 et q: {0: 0.47670122622862415, 1: 0.48105184009739926, 2: 0.48039585575130817, 3: 0.48039585575130933, 4: 0.1947391305205226, 5: 0.4805667264655388, 6: 0.5277394553776604, 7: 0.4798196232766795, 8: 0.47704979196943254, 9: 0.4805049815581076}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 9500 erreur sur q 1.71316478329 et q: {0: 0.4726676815577808, 1: 0.47713017995321666, 2: 0.4766349123480173, 3: 0.47663491234801797, 4: 0.1931484862267414, 5: 0.4767312297861509, 6: 0.524043670776967, 7: 0.4753169478413243, 8: 0.47286624221872137, 9: 0.4766776145634855}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 9600 erreur sur q 1.71610906039 et q: {0: 0.4687099024716098, 1: 0.4732718092672759, 2: 0.47292915882700104, 3: 0.4729291588270023, 4: 0.19158606627294184, 5: 0.4729552923148278, 6: 0.5203686504477361, 7: 0.4709150334254103, 8: 0.46876732073886496, 9: 0.47290868453854285}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 9700 erreur sur q 1.71883253647 et q: {0: 0.46482512610218996, 1: 0.4694751828454034, 2: 0.46927728844544153, 3: 0.46927728844544236, 4: 0.19005096499923635, 5: 0.46923738590916236, 6: 0.5167167472274364, 7: 0.46660994546053547, 8: 0.46474980394880094, 9: 0.46919682542262026}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 9800 erreur sur q 1.72135175706 et q: {0: 0.4610107610229328, 1: 0.46573879618928177, 2: 0.46567805832713965, 3: 0.4656780583271405, 4: 0.18854232540014948, 5: 0.4655760533205271, 6: 0.5130899885076096, 7: 0.46239795635154624, 8: 0.4608106564647322, 9: 0.4655407176051269}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 9900 erreur sur q 1.72368183675 et q: {0: 0.4572643723560004, 1: 0.4620611862632664, 2: 0.46213028265894224, 3: 0.46213028265894285, 4: 0.187059335263001, 5: 0.46196990197670373, 6: 0.5094901138500642, 7: 0.4582755329540436, 8: 0.45694701695531365, 9: 0.4619390855503469}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 10000 erreur sur q 1.72583659767 et q: {0: 0.45358366843957376, 1: 0.45844093174468337, 2: 0.4586328268825643, 3: 0.4586328268825661, 4: 0.185601223704019, 5: 0.45841759856481357, 6: 0.5059186081455924, 7: 0.45423932484470386, 8: 0.45315618523592016, 9: 0.458390695594186}
+maxg= 25077.3123764
+nbre d'iteration trop grand
+init
+[{0: 0.18074828754835925, 1: 0.19083463851139618, 2: 0.18625471780939198, 3: 0.17325361733712263, 4: 0.1678845138572425, 5: 0.19556898924169167, 6: 0.1757247696573775, 7: 0.15470870092240857, 8: 0.1706397233176451, 9: 0.19080518909669428}, {0: 0.2418934256468288, 1: 0.39037872898466114, 2: 0.3266504857619158, 3: 0.3653054621355456, 4: 0.2634621351443713, 5: 0.4989859229706304, 6: 0.2583177249187363, 7: 0.3784170297205348, 8: 0.26716667010745854}, {0: 0.17136262718775253, 1: 0.10118810112903638, 2: 0.11947767111214498, 3: 0.19108481056086954, 4: 0.1873494247955736, 5: 0.12726097446740187, 6: 0.19969976592294947, 7: 0.1021370416462077, 8: 0.12453109808724712}, {(7, 3): 0, (6, 9): -0.19969976592294947, (0, 7): 0, (1, 6): 0, (3, 7): 0, (2, 5): 0, (8, 5): 0, (5, 8): 0, (4, 0): 0, (6, 7): 0, (5, 5): 0.12726097446740187, (7, 6): 0, (0, 4): 0, (1, 1): 0.10118810112903638, (3, 2): 0, (2, 6): 0, (8, 2): 0, (4, 5): 0, (6, 0): 0, (7, 5): 0, (0, 1): 0, (3, 1): 0, (7, 8): 0, (2, 1): 0, (8, 9): -0.12453109808724712, (5, 1): 0, (7, 2): 0, (1, 5): 0, (3, 6): 0, (2, 2): 0.11947767111214498, (8, 6): 0, (4, 1): 0, (6, 4): 0, (5, 4): 0, (7, 1): 0, (0, 5): 0, (1, 0): 0, (0, 8): 0, (3, 5): 0, (2, 7): 0, (8, 3): 0, (4, 6): 0, (6, 1): 0, (5, 7): 0, (7, 4): 0, (0, 2): 0, (1, 3): 0, (4, 8): 0, (3, 0): 0, (2, 8): 0, (8, 0): 0, (6, 2): 0, (5, 0): 0, (1, 4): 0, (3, 9): -0.19108481056086954, (2, 3): 0, (1, 9): -0.10118810112903638, (8, 7): 0, (4, 2): 0, (6, 5): 0, (5, 3): 0, (7, 0): 0, (6, 8): 0, (0, 6): 0, (1, 7): 0, (0, 9): -0.17136262718775253, (3, 4): 0, (2, 4): 0, (8, 4): 0, (5, 9): -0.12726097446740187, (4, 7): 0, (6, 6): 0.19969976592294947, (5, 6): 0, (7, 7): 0.1021370416462077, (0, 3): 0, (1, 2): 0, (4, 9): -0.1873494247955736, (3, 3): 0.19108481056086954, (2, 9): -0.11947767111214498, (8, 1): 0, (4, 4): 0.1873494247955736, (6, 3): 0, (0, 0): 0.17136262718775253, (7, 9): -0.1021370416462077, (3, 8): 0, (2, 0): 0, (1, 8): 0, (8, 8): 0.12453109808724712, (4, 3): 0, (5, 2): 0}, {(7, 3): 0, (5, 31): 0, (3, 35): 0, (6, 28): 0, (4, 36): 0, (8, 63): 0, (7, 25): 0, (5, 57): 0, (6, 54): 0, (4, 66): 0, (1, 64): 0, (8, 5): 0, (7, 55): 0, (0, 17): 0, (1, 28): 0, (2, 27): 0, (0, 55): 0, (3, 2): 0, (1, 54): 0, (4, 5): 0, (2, 53): 0, (0, 45): 0, (5, 24): 0, (3, 40): 0, (1, 40): 0, (6, 23): 0, (4, 35): 0, (2, 47): 0, (8, 38): 0, (0, 67): 0, (5, 34): 0, (6, 41): 0, (8, 12): 0, (7, 44): 0, (6, 67): 0, (8, 18): 0, (1, 21): 0, (2, 18): 0, (0, 14): 0, (3, 11): 0, (1, 15): 0, (4, 12): 0, (2, 12): 0, (0, 36): 0, (5, 1): 0, (3, 17): 0, (1, 33): 0, (6, 14): 0, (4, 42): 0, (2, 38): 0, (8, 45): 0, (7, 15): 0, (5, 43): 0, (3, 55): 0, (6, 32): 0, (4, 48): 0, (2, 64): 0, (8, 51): 0, (7, 37): 0, (5, 53): 0, (6, 58): 0, (3, 68): 0, (8, 25): 0, (0, 5): 0, (1, 0): 0, (8, 69): 0, (4, 11): 0, (2, 7): 0, (0, 59): 0, (5, 10): 0, (3, 22): 0, (1, 58): 0, (6, 1): 0, (4, 17): 0, (2, 33): 0, (7, 4): 0, (5, 20): 0, (3, 60): 0, (6, 27): 0, (4, 63): 0, (8, 58): 0, (7, 34): 0, (5, 62): 0, (6, 61): 0, (4, 69): 0, (8, 0): 0, (7, 56): 0, (0, 28): 0, (7, 68): 0, (1, 25): 0, (2, 30): 0, (0, 50): 0, (3, 31): 0, (1, 51): 0, (4, 24): 0, (2, 56): 0, (0, 40): 0, (5, 29): 0, (3, 37): 0, (6, 18): 0, (4, 38): 0, (8, 33): 0, (7, 27): 0, (5, 39): 0, (6, 52): 0, (8, 7): 0, (7, 49): 0, (0, 19): 0, (1, 18): 0, (2, 25): 0, (0, 9): 0, (7, 16): 0, (3, 4): 0, (1, 52): 0, (4, 7): 0, (2, 51): 0, (0, 47): 0, (5, 6): 0, (3, 42): 0, (1, 46): 0, (6, 21): 0, (4, 45): 0, (2, 45): 0, (8, 40): 0, (0, 69): 0, (5, 32): 0, (3, 48): 0, (6, 47): 0, (8, 14): 0, (7, 46): 0, (6, 65): 0, (3, 65): 0, (8, 20): 0, (2, 16): 0, (0, 0): 0, (3, 13): 0, (1, 13): 0, (8, 64): 0, (4, 14): 0, (2, 10): 0, (0, 38): 0, (5, 15): 0, (3, 19): 0, (1, 39): 0, (6, 12): 0, (4, 20): 0, (2, 36): 0, (8, 47): 0, (7, 9): 0, (5, 41): 0, (3, 57): 0, (6, 38): 0, (4, 50): 0, (8, 53): 0, (7, 39): 0, (5, 51): 0, (6, 56): 0, (8, 27): 0, (7, 61): 0, (5, 68): 0, (0, 7): 0, (1, 6): 0, (2, 5): 0, (0, 61): 0, (7, 22): 0, (5, 8): 0, (3, 24): 0, (1, 56): 0, (6, 7): 0, (4, 19): 0, (2, 63): 0, (7, 6): 0, (5, 18): 0, (3, 62): 0, (6, 25): 0, (4, 57): 0, (8, 60): 0, (7, 28): 0, (5, 60): 0, (6, 51): 0, (1, 67): 0, (8, 2): 0, (7, 58): 0, (0, 30): 0, (1, 31): 0, (2, 28): 0, (0, 52): 0, (3, 1): 0, (1, 49): 0, (4, 26): 0, (2, 54): 0, (0, 42): 0, (5, 27): 0, (3, 39): 0, (1, 43): 0, (6, 16): 0, (4, 32): 0, (8, 35): 0, (0, 64): 0, (5, 37): 0, (6, 42): 0, (1, 68): 0, (8, 9): 0, (7, 51): 0, (0, 21): 0, (1, 16): 0, (2, 23): 0, (0, 11): 0, (3, 6): 0, (1, 10): 0, (4, 1): 0, (2, 49): 0, (0, 33): 0, (0, 65): 0, (5, 4): 0, (3, 44): 0, (1, 44): 0, (6, 11): 0, (4, 47): 0, (2, 43): 0, (8, 42): 0, (7, 18): 0, (5, 46): 0, (3, 50): 0, (6, 45): 0, (4, 53): 0, (2, 69): 0, (8, 48): 0, (7, 40): 0, (3, 67): 0, (8, 22): 0, (0, 2): 0, (3, 15): 0, (1, 3): 0, (8, 66): 0, (4, 8): 0, (2, 8): 0, (0, 56): 0, (5, 13): 0, (3, 21): 0, (1, 37): 0, (6, 2): 0, (4, 22): 0, (2, 34): 0, (7, 11): 0, (5, 23): 0, (3, 59): 0, (6, 36): 0, (4, 60): 0, (8, 55): 0, (7, 33): 0, (5, 49): 0, (6, 62): 0, (8, 29): 0, (7, 63): 0, (5, 66): 0, (0, 25): 0, (1, 4): 0, (2, 3): 0, (0, 63): 0, (3, 26): 0, (1, 62): 0, (6, 5): 0, (4, 29): 0, (2, 61): 0, (7, 0): 0, (5, 16): 0, (3, 32): 0, (6, 31): 0, (4, 59): 0, (8, 62): 0, (7, 30): 0, (5, 58): 0, (6, 49): 0, (4, 65): 0, (1, 65): 0, (8, 4): 0, (7, 52): 0, (0, 22): 0, (0, 16): 0, (1, 29): 0, (2, 26): 0, (0, 54): 0, (3, 3): 0, (1, 55): 0, (4, 4): 0, (2, 52): 0, (0, 44): 0, (5, 25): 0, (3, 41): 0, (1, 41): 0, (6, 22): 0, (4, 34): 0, (2, 46): 0, (8, 37): 0, (0, 66): 0, (5, 35): 0, (6, 40): 0, (8, 11): 0, (7, 45): 0, (6, 66): 0, (8, 17): 0, (0, 23): 0, (1, 22): 0, (2, 21): 0, (0, 13): 0, (3, 8): 0, (1, 8): 0, (4, 3): 0, (2, 15): 0, (0, 35): 0, (5, 2): 0, (3, 46): 0, (1, 34): 0, (6, 9): 0, (4, 41): 0, (2, 41): 0, (8, 44): 0, (7, 12): 0, (5, 44): 0, (3, 52): 0, (6, 35): 0, (4, 55): 0, (2, 67): 0, (8, 50): 0, (7, 42): 0, (5, 54): 0, (6, 69): 0, (3, 69): 0, (8, 24): 0, (0, 20): 0, (0, 4): 0, (1, 1): 0, (8, 68): 0, (4, 10): 0, (2, 6): 0, (0, 58): 0, (5, 11): 0, (3, 23): 0, (1, 59): 0, (6, 0): 0, (4, 16): 0, (2, 32): 0, (7, 5): 0, (5, 21): 0, (3, 61): 0, (6, 26): 0, (4, 62): 0, (8, 57): 0, (7, 35): 0, (5, 63): 0, (6, 60): 0, (4, 68): 0, (8, 31): 0, (7, 57): 0, (5, 64): 0, (0, 27): 0, (1, 26): 0, (2, 1): 0, (0, 49): 0, (3, 28): 0, (1, 60): 0, (4, 31): 0, (2, 59): 0, (7, 2): 0, (5, 30): 0, (3, 34): 0, (6, 29): 0, (4, 37): 0, (8, 32): 0, (7, 24): 0, (5, 56): 0, (6, 55): 0, (4, 67): 0, (8, 6): 0, (7, 54): 0, (0, 18): 0, (1, 19): 0, (2, 24): 0, (0, 8): 0, (3, 5): 0, (1, 53): 0, (4, 6): 0, (2, 50): 0, (0, 46): 0, (5, 7): 0, (3, 43): 0, (1, 47): 0, (6, 20): 0, (4, 44): 0, (2, 44): 0, (8, 39): 0, (0, 68): 0, (5, 33): 0, (3, 49): 0, (6, 46): 0, (8, 13): 0, (7, 47): 0, (6, 64): 0, (8, 19): 0, (1, 20): 0, (2, 19): 0, (0, 15): 0, (3, 10): 0, (1, 14): 0, (4, 13): 0, (2, 13): 0, (0, 37): 0, (5, 0): 0, (3, 16): 0, (1, 32): 0, (6, 15): 0, (4, 43): 0, (2, 39): 0, (8, 46): 0, (7, 14): 0, (5, 42): 0, (3, 54): 0, (6, 33): 0, (4, 49): 0, (2, 65): 0, (8, 52): 0, (7, 36): 0, (5, 52): 0, (6, 59): 0, (8, 26): 0, (5, 69): 0, (0, 6): 0, (7, 69): 0, (1, 7): 0, (2, 4): 0, (0, 60): 0, (5, 9): 0, (3, 25): 0, (1, 57): 0, (6, 6): 0, (4, 18): 0, (2, 62): 0, (7, 7): 0, (5, 19): 0, (3, 63): 0, (6, 24): 0, (4, 56): 0, (8, 59): 0, (7, 29): 0, (5, 61): 0, (6, 50): 0, (8, 1): 0, (7, 59): 0, (0, 29): 0, (1, 24): 0, (2, 31): 0, (0, 51): 0, (7, 17): 0, (3, 30): 0, (1, 50): 0, (4, 25): 0, (2, 57): 0, (0, 41): 0, (5, 28): 0, (3, 36): 0, (6, 19): 0, (4, 39): 0, (8, 34): 0, (7, 26): 0, (5, 38): 0, (6, 53): 0, (1, 69): 0, (8, 8): 0, (7, 48): 0, (7, 65): 0, (1, 17): 0, (2, 22): 0, (0, 10): 0, (3, 7): 0, (1, 11): 0, (4, 0): 0, (2, 48): 0, (0, 32): 0, (5, 5): 0, (3, 45): 0, (1, 45): 0, (6, 10): 0, (4, 46): 0, (2, 42): 0, (8, 41): 0, (7, 19): 0, (5, 47): 0, (3, 51): 0, (6, 44): 0, (4, 52): 0, (2, 68): 0, (8, 15): 0, (7, 41): 0, (3, 64): 0, (8, 21): 0, (2, 17): 0, (0, 1): 0, (3, 12): 0, (1, 12): 0, (8, 65): 0, (4, 15): 0, (2, 11): 0, (0, 39): 0, (7, 23): 0, (5, 14): 0, (3, 18): 0, (1, 38): 0, (6, 13): 0, (4, 21): 0, (2, 37): 0, (7, 8): 0, (5, 40): 0, (3, 56): 0, (6, 39): 0, (4, 51): 0, (8, 54): 0, (7, 38): 0, (5, 50): 0, (6, 57): 0, (8, 28): 0, (7, 60): 0, (5, 67): 0, (0, 24): 0, (1, 5): 0, (2, 2): 0, (0, 62): 0, (3, 27): 0, (1, 63): 0, (6, 4): 0, (4, 28): 0, (2, 60): 0, (7, 1): 0, (5, 17): 0, (3, 33): 0, (6, 30): 0, (4, 58): 0, (8, 61): 0, (7, 31): 0, (5, 59): 0, (6, 48): 0, (4, 64): 0, (1, 66): 0, (8, 3): 0, (7, 53): 0, (0, 31): 0, (1, 30): 0, (2, 29): 0, (0, 53): 0, (3, 0): 0, (1, 48): 0, (4, 27): 0, (2, 55): 0, (0, 43): 0, (7, 21): 0, (5, 26): 0, (3, 38): 0, (5, 65): 0, (1, 42): 0, (6, 17): 0, (4, 33): 0, (8, 36): 0, (7, 20): 0, (5, 36): 0, (6, 43): 0, (8, 10): 0, (7, 50): 0, (7, 66): 0, (8, 16): 0, (7, 67): 0, (1, 23): 0, (2, 20): 0, (0, 12): 0, (3, 9): 0, (1, 9): 0, (4, 2): 0, (2, 14): 0, (0, 34): 0, (5, 3): 0, (3, 47): 0, (1, 35): 0, (6, 8): 0, (4, 40): 0, (2, 40): 0, (8, 43): 0, (7, 13): 0, (5, 45): 0, (3, 53): 0, (6, 34): 0, (4, 54): 0, (2, 66): 0, (8, 49): 0, (7, 43): 0, (5, 55): 0, (6, 68): 0, (3, 66): 0, (8, 23): 0, (0, 3): 0, (3, 14): 0, (1, 2): 0, (8, 67): 0, (4, 9): 0, (2, 9): 0, (0, 57): 0, (5, 12): 0, (3, 20): 0, (1, 36): 0, (6, 3): 0, (4, 23): 0, (2, 35): 0, (7, 10): 0, (5, 22): 0, (3, 58): 0, (6, 37): 0, (4, 61): 0, (8, 56): 0, (7, 32): 0, (5, 48): 0, (6, 63): 0, (8, 30): 0, (7, 62): 0, (7, 64): 0, (0, 26): 0, (1, 27): 0, (2, 0): 0, (0, 48): 0, (3, 29): 0, (1, 61): 0, (4, 30): 0, (2, 58): 0}, {(7, 3): 0.049278795144300225, (6, 9): 0.010051396848782757, (0, 7): 0.28869126898449293, (1, 6): 0.7953821666603123, (3, 7): 0.18039472837943882, (2, 5): 0.08401854487242666, (8, 5): 0.5063968949484626, (5, 8): 0.6737496734656315, (4, 0): 0.8037811571406756, (6, 7): 0.7544213725447123, (5, 5): 0.2928613623790248, (7, 6): 0.7917665389259329, (0, 4): 0.2977175276245042, (1, 1): 0.6125960431554089, (3, 2): 0.6809438383219367, (2, 6): 0.3970514094664075, (8, 2): 0.3444285795303108, (4, 5): 0.8846695172744765, (6, 0): 0.5614100109243334, (7, 5): 0.03797765629844285, (0, 1): 0.2087383946159015, (3, 1): 0.6233108363867792, (7, 8): 0.8224774088745009, (2, 1): 0.8134328128828687, (8, 9): 0.1504269241100672, (5, 1): 0.6267387535535983, (7, 2): 0.30565667049319445, (1, 5): 0.6847187812096047, (3, 6): 0.6967424633484247, (2, 2): 0.3941849938888923, (8, 6): 0.6894925560803226, (4, 1): 0.04984744360461635, (6, 4): 0.780422354345547, (5, 4): 0.3409584122152942, (7, 1): 0.6612523938736645, (0, 5): 0.6847627200437773, (1, 0): 0.9709150974948633, (0, 8): 0.20265511784958268, (3, 5): 0.14340734866425164, (2, 7): 0.7840248939125836, (8, 3): 0.35991708865704897, (4, 6): 0.35600042521538033, (6, 1): 0.34403592199796185, (5, 7): 0.2060960504691426, (7, 4): 0.5353525708183022, (0, 2): 0.24252987510078183, (1, 3): 0.054570563674991024, (4, 8): 0.9993360474904499, (3, 0): 0.7907407367199143, (2, 8): 0.327349062617582, (8, 0): 0.5990815227175489, (6, 2): 0.33164628362700266, (5, 0): 0.7321619949810647, (1, 4): 0.005381342591492366, (3, 9): 0.9633526268583869, (2, 3): 0.5783868857729323, (1, 9): 0.8784572188888577, (8, 7): 0.7756364173714229, (4, 2): 0.9142452882168264, (6, 5): 0.7377579550438217, (5, 3): 0.5658679664906601, (7, 0): 0.5475153593689351, (6, 8): 0.10002238596784807, (0, 6): 0.1314224891736836, (1, 7): 0.5021560836228396, (0, 9): 0.45558300946652497, (3, 4): 0.1586849753770142, (2, 4): 0.06820570568945761, (8, 4): 0.5473403277630758, (5, 9): 0.14382605398169102, (4, 7): 0.028137709217451623, (6, 6): 0.08302749695625589, (5, 6): 0.8189336900019373, (7, 7): 0.3250250656970306, (0, 3): 0.762001689955991, (1, 2): 0.31298595892224523, (4, 9): 0.006595642313717787, (3, 3): 0.0907816960867156, (2, 9): 0.97578355427596, (8, 1): 0.6430312257740721, (4, 4): 0.04655557595867521, (6, 3): 0.43678746490113374, (0, 0): 0.7193546563564629, (7, 9): 0.8483566471785475, (3, 8): 0.8906902666418179, (2, 0): 0.21408380226765056, (1, 8): 0.7044971272064283, (8, 8): 0.311763480170997, (4, 3): 0.21870047279811444, (5, 2): 0.46088121078034894}, {0: 0.17136262718775253, 1: 0.10118810112903638, 2: 0.11947767111214498, 3: 0.19108481056086954, 4: 0.1873494247955736, 5: 0.12726097446740187, 6: 0.19969976592294947, 7: 0.1021370416462077, 8: 0.12453109808724712}, {0: 0.7462470336002633, 1: 0.02214176340327867, 2: 0.7077002753129825, 3: 0.45806157997848396, 4: 0.678514141240499, 5: 0.36568814872314703, 6: 0.5245306172939272, 7: 0.15528740623933213, 8: 0.5700539257444325, 9: 0.7131147842927804}, {0: 0.003365897202354806, 1: 0.3463886498500619, 2: 0.21699272618878207, 3: 0.43576124465935395, 4: 0.8133352919860429, 5: 0.960894452521986, 6: 0.842379556061987, 7: 0.9695218568248749, 8: 0.06274767331001241, 9: 0.5385193154789347, 10: 0.49960903877748053, 11: 0.8013167605659509, 12: 0.8650967667329721, 13: 0.01031310669685681, 14: 0.6440152595587728, 15: 0.879431795297725, 16: 0.5163674824884243, 17: 0.6623786759745407, 18: 0.33772854125393403, 19: 0.7423226994145022, 20: 0.5068713396711859, 21: 0.8371070073294941, 22: 0.29280144336696756, 23: 0.8713284452838311, 24: 0.779329040519086, 25: 0.46625232631738645, 26: 0.9615383181249267, 27: 0.9213767165419512, 28: 0.17699269214893243, 29: 0.5354212965190674, 30: 0.20984132284900647, 31: 0.8543577534711831, 32: 0.7162313570792331, 33: 0.8906697756440575, 34: 0.6435704983867423, 35: 0.5926004913817045, 36: 0.08448219628494757, 37: 0.3483195151225278, 38: 0.2588395968676833, 39: 0.8268454431342359, 40: 0.7799298863567447, 41: 0.9250764100293891, 42: 0.3611682302769068, 43: 0.8515625441079303, 44: 0.6246945514575584, 45: 0.8970249372866925, 46: 0.6535029664405683, 47: 0.5730931023695143, 48: 0.6866754618589381, 49: 0.6955032235616848, 50: 0.5240343275229231, 51: 0.6647687556711611, 52: 0.5412151175215661, 53: 0.8804686667748076, 54: 0.23584611766813812, 55: 0.8102054994838637, 56: 0.9415978647921003, 57: 0.7587671450760821, 58: 0.6481179526923484, 59: 0.711298539005794, 60: 0.257078246830746, 61: 0.3658233485274327, 62: 0.3717501782287307, 63: 0.896074586149179, 64: 0.04871679807666984, 65: 0.23778119615958881, 66: 0.4092891148712009, 67: 0.007449099678760063, 68: 0.2256639233061669, 69: 0.9469613945140087}]
--- /dev/null
+[{0: 0.0734143525885719, 1: 0.05417669606768655, 2: 0.07391569748358467, 3: 0.07391569748358831, 4: 0.07341435258857637, 5: 0.0741453734334866, 6: 0.07407427374036332, 7: 0.07009149394874706, 8: 0.07327700139672838, 9: 0.08880308512344084}, {0: 0.1073673871626299, 1: 0.060245244213785895, 2: 0.10736751622178042, 3: 0.10736753181202333, 4: 0.10736753199356547, 5: 0.24806052916995233, 6: 0.10736750855987409, 7: 0.10736750148634085, 8: 0.10736749207392943}, {0: 0.1346847903053506, 1: 0.16710946336724097, 2: 0.13468495220092322, 3: 0.13468497175777983, 4: 0.1346849719855116, 5: 0.1011744730759659, 6: 0.13468494258960384, 7: 0.1346849337163569, 8: 0.13468492190915274}, {(7, 3): 0, (6, 9): -0.1346849426792142, (0, 7): 0, (1, 6): 0, (3, 7): 0, (2, 5): 0, (8, 5): 0, (5, 8): 0, (4, 0): 0, (6, 7): 0, (5, 5): 0.10117399122603164, (7, 6): 0, (0, 4): 0, (1, 1): 0.16711206902440018, (3, 2): 0, (2, 6): 0, (8, 2): 0, (4, 5): 0, (6, 0): 0, (7, 5): 0, (0, 1): 0, (3, 1): 0, (7, 8): 0, (2, 1): 0, (8, 9): -0.13468492197989923, (5, 1): 0, (7, 2): 0, (1, 5): 0, (3, 6): 0, (2, 2): 0.13468495229930058, (8, 6): 0, (4, 1): 0, (6, 4): 0, (5, 4): 0, (7, 1): 0, (0, 5): 0, (1, 0): 0, (0, 8): 0, (3, 5): 0, (2, 7): 0, (8, 3): 0, (4, 6): 0, (6, 1): 0, (5, 7): 0, (7, 4): 0, (0, 2): 0, (1, 3): 0, (4, 8): 0, (3, 0): 0, (2, 8): 0, (8, 0): 0, (6, 2): 0, (5, 0): 0, (1, 4): 0, (3, 9): -0.1346849718739961, (2, 3): 0, (1, 9): -0.16711206902440018, (8, 7): 0, (4, 2): 0, (6, 5): 0, (5, 3): 0, (7, 0): 0, (6, 8): 0, (0, 6): 0, (1, 7): 0, (0, 9): -0.13468479025605373, (3, 4): 0, (2, 4): 0, (8, 4): 0, (5, 9): -0.10117399122603164, (4, 7): 0, (6, 6): 0.1346849426792142, (5, 6): 0, (7, 7): 0.13468493379787344, (0, 3): 0, (1, 2): 0, (4, 9): -0.1346849721019356, (3, 3): 0.1346849718739961, (2, 9): -0.13468495229930058, (8, 1): 0, (4, 4): 0.1346849721019356, (6, 3): 0, (0, 0): 0.13468479025605373, (7, 9): -0.13468493379787344, (3, 8): 0, (2, 0): 0, (1, 8): 0, (8, 8): 0.13468492197989923, (4, 3): 0, (5, 2): 0}, {(7, 3): -0.0, (5, 31): 2.0102009931632914e-07, (3, 35): 0, (6, 28): 0, (4, 36): 0.013843652416331703, (8, 63): 0, (7, 25): 0, (5, 57): 0, (6, 54): 0, (4, 66): 0, (1, 64): 0, (8, 5): 0, (7, 55): 0.04152922757056393, (0, 17): 0, (1, 28): 0, (2, 27): 0.0008361308376154952, (0, 55): 0.004345234434932621, (3, 2): 0, (1, 54): 0.00327612496357349, (4, 5): 0, (2, 53): 0.001597014952880449, (0, 45): 0, (5, 24): 0.0002154705067740348, (3, 40): 0, (1, 40): 0, (6, 23): 0.015327209812991145, (4, 35): 0.009615339468819775, (2, 47): 0.004060658131814637, (8, 38): 0.016713765040153056, (0, 67): 0, (5, 34): 0, (6, 41): 0, (8, 12): 0, (7, 44): 0, (6, 67): 0, (8, 18): 0, (1, 21): 0, (2, 18): 0.022084747564743157, (0, 14): 0, (3, 11): 0, (1, 15): 0.02109707890876094, (4, 12): 0, (2, 12): 0, (0, 36): 0, (5, 1): 0, (3, 17): 0.0016364696022561076, (1, 33): 0.0006414311691710362, (6, 14): 0, (4, 42): 0, (2, 38): 0.013534173546295315, (8, 45): 0, (7, 15): 0, (5, 43): 0.012664608472184171, (3, 55): 0.002221173092335771, (6, 32): 0, (4, 48): 0, (2, 64): 0, (8, 51): 0.006114812246472302, (7, 37): 0, (5, 53): 0, (6, 58): 0, (3, 68): 0, (8, 25): 0, (0, 5): 0.012634282294248511, (1, 0): 0, (8, 69): 0, (4, 11): 0, (2, 7): 0.013534173546295315, (0, 59): 0, (5, 10): 0, (3, 22): 0, (1, 58): 0.00012613722374710257, (6, 1): 0, (4, 17): 0, (2, 33): 0, (7, 4): 0.0008728531726304319, (5, 20): 0.0002152696245331931, (3, 60): 0, (6, 27): 0.007042809279130119, (4, 63): 0, (8, 58): 0.02687713960163221, (7, 34): 0.010590680866652824, (5, 62): 0, (6, 61): 0.005933774778975349, (4, 69): 0, (8, 0): 0, (7, 56): 0.003527575117358711, (0, 28): 0, (7, 68): 0, (1, 25): 0, (2, 30): 0.01437030438391081, (0, 50): 0, (3, 31): -0.0, (1, 51): 0.016384096639209412, (4, 24): 0, (2, 56): 0, (0, 40): 0, (5, 29): 0, (3, 37): 0.004804515702370171, (6, 18): 0, (4, 38): 0.03174059720800025, (8, 33): 0.007563952781724226, (7, 27): 0, (5, 39): 0.012663190103479818, (6, 52): 0, (8, 7): 0.016713765040153056, (7, 49): 0, (0, 19): -0.0, (1, 18): 0, (2, 25): 0.003727828878084538, (0, 9): 0, (7, 16): 0, (3, 4): 0, (1, 52): 0.0033958051055033023, (4, 7): 0.014049776001482401, (2, 51): 0.014703133637640909, (0, 47): 0, (5, 6): 7.888481624557242e-05, (3, 42): 0, (1, 46): 0.0065800539160073244, (6, 21): 0, (4, 45): 0, (2, 45): 0, (8, 40): 0, (0, 69): 0, (5, 32): 0, (3, 48): 0.0008152694771665359, (6, 47): 0, (8, 14): 0, (7, 46): 0.0033603665655166336, (6, 65): 0, (3, 65): 0, (8, 20): 0, (2, 16): 0, (0, 0): 0, (3, 13): 0, (1, 13): 0.02259918105072603, (8, 64): 0, (4, 14): 0, (2, 10): 0, (0, 38): 0.016405232722439007, (5, 15): 0, (3, 19): 0, (1, 39): 0, (6, 12): 0, (4, 20): 0, (2, 36): 0.001294683087588594, (8, 47): 0, (7, 9): 0, (5, 41): 0.012603026722259962, (3, 57): 0, (6, 38): 0.008284400533861026, (4, 50): 0, (8, 53): 0, (7, 39): 0, (5, 51): 0.009360190652608503, (6, 56): 0, (8, 27): 0, (7, 61): 0.026978022871122238, (5, 68): 0, (0, 7): 0.03433935279678378, (1, 6): 0, (2, 5): 0.001294683087588594, (0, 61): 0.017359836067602653, (7, 22): 0.005289370874727584, (5, 8): 0, (3, 24): 0.02241190682524208, (1, 56): 0.0002458173656769147, (6, 7): 0.008284199513760044, (4, 19): 4.2253003497416675e-06, (2, 63): 0, (7, 6): 0, (5, 18): 0, (3, 62): 0, (6, 25): 0, (4, 57): 0, (8, 60): 0.01891821860702289, (7, 28): 0, (5, 60): 0.0009157105590208714, (6, 51): 0.04774789521074853, (1, 67): 0, (8, 2): 0.007563952814120534, (7, 58): 0.003527575117358711, (0, 30): 0.014019388286438967, (1, 31): 0.00011968014192981213, (2, 28): 0, (0, 52): 0, (3, 1): 0, (1, 49): 0, (4, 26): 0, (2, 54): 0, (0, 42): 0, (5, 27): 0.00021526948667471846, (3, 39): 0, (1, 43): 0, (6, 16): 0, (4, 32): 0, (8, 35): 0, (0, 64): 0, (5, 37): 7.908583634488875e-05, (6, 42): 0, (1, 68): 0, (8, 9): 0, (7, 51): 0.007570396012383119, (0, 21): 0, (1, 16): 0.03925963092960859, (2, 23): 0.032727223070569425, (0, 11): 0, (3, 6): 0.004804515702370171, (1, 10): 0.022087490838398754, (4, 1): 0.00126668172588551, (2, 49): 0.0003328292537300992, (0, 33): 0.0023858444360000397, (0, 65): 0, (5, 4): 0, (3, 44): 0, (1, 44): 0, (6, 11): 0, (4, 47): 0, (2, 43): 0, (8, 42): 0, (7, 18): 0, (5, 46): 0.021888397017782082, (3, 50): 0, (6, 45): 0.0035110601609408256, (4, 53): 0, (2, 69): 0, (8, 48): 0, (7, 40): 0, (3, 67): 0, (8, 22): 0.003035000011956529, (0, 2): 0.020319964510344818, (3, 15): 0, (1, 3): 0, (8, 66): 0, (4, 8): 0.0011107833063186967, (2, 8): 0, (0, 56): 0, (5, 13): 0, (3, 21): 0, (1, 37): 0, (6, 2): 0, (4, 22): 0.0039700535908339385, (2, 34): 0, (7, 11): 0, (5, 23): 0.009285464875734024, (3, 59): 0, (6, 36): 0.0017389852120357208, (4, 60): 0, (8, 55): 0, (7, 33): 0.010590680866652824, (5, 49): 7.472591473295376e-05, (6, 62): 0, (8, 29): 0.003034999979560221, (7, 63): 0, (5, 66): 0, (0, 25): 0, (1, 4): 0, (2, 3): -0.0, (0, 63): 0, (3, 26): 0.02077543722298597, (1, 62): 0, (6, 5): 0.001738784191934739, (4, 29): 0.003965828290484197, (2, 61): 0.010124598882350778, (7, 0): 0, (5, 16): 0, (3, 32): 0, (6, 31): 2.0102010098166367e-07, (4, 59): 0, (8, 62): 0, (7, 30): 0.012859766887110703, (5, 58): 0, (6, 49): 0.03242068539775739, (4, 65): 0, (1, 65): 0, (8, 4): 0, (7, 52): 0.04505680268792264, (0, 22): 0.005672422194646365, (0, 16): 0, (1, 29): 0.00016206946913899234, (2, 26): 0, (0, 54): 0.005299837780096267, (3, 3): -0.0, (1, 55): 0.0031499877398263876, (4, 4): 0, (2, 52): 0, (0, 44): 0, (5, 25): 0, (3, 41): 0, (1, 41): 0, (6, 22): 0, (4, 34): 0.018961728232753106, (2, 46): 0.007371105145808684, (8, 37): 0, (0, 66): 0, (5, 35): 0, (6, 40): 0, (8, 11): 0, (7, 45): 0, (6, 66): 0, (8, 17): 0, (0, 23): 0.014019388286438967, (1, 22): 0.00016629476948915034, (2, 21): 0.006138889909144283, (0, 13): 0, (3, 8): 0, (1, 8): 0.02092366059249881, (4, 3): 0, (2, 15): 0, (0, 35): 0, (5, 2): 0, (3, 46): 0.0069006460719150085, (1, 34): 0.0006456564695211942, (6, 9): 0, (4, 41): 0, (2, 41): 0, (8, 44): 0.0029336275799892917, (7, 12): 0, (5, 44): 0.012474992749935371, (3, 52): 0, (6, 35): 0, (4, 55): 0.003354850344566701, (2, 67): 0, (8, 50): 0, (7, 42): 0, (5, 54): 0, (6, 69): 0, (3, 69): 0, (8, 24): 0, (0, 20): 0, (0, 4): 0.009076526560077305, (1, 1): 0.000521751027241224, (8, 68): 0, (4, 10): 0.0030195442508625103, (2, 6): 0.003409574663944537, (0, 58): 0.000954603345163646, (5, 11): 0, (3, 23): 0.015294035763623471, (1, 59): 0, (6, 0): 0, (4, 16): 0.01642438720897109, (2, 32): 0.002891698040469043, (7, 5): 0, (5, 21): 0, (3, 61): 0.008853050458997192, (6, 26): -0.0, (4, 62): 0, (8, 57): 0, (7, 35): 0.0008728531726304319, (5, 63): 0, (6, 60): 0, (4, 68): 0, (8, 31): -0.0, (7, 57): 0, (5, 64): 0, (0, 27): 0, (1, 26): 0, (2, 1): 0, (0, 49): 0, (3, 28): 0.00995159889907797, (1, 60): 0, (4, 31): 0.017690821206517854, (2, 59): 0, (7, 2): 0.010590680866652824, (5, 30): 0.009285464737875549, (3, 34): 0, (6, 29): 0, (4, 37): 0.017198502760898404, (8, 32): 0, (7, 24): 0, (5, 56): 0, (6, 55): 0.0006116405428499561, (4, 67): 0, (8, 6): 0, (7, 54): 0.04505680268792264, (0, 18): 0, (1, 19): 4.225300350158001e-06, (2, 24): 0.0008361308376154952, (0, 8): 0, (3, 5): 0.0025833426100344004, (1, 53): 0, (4, 6): 0, (2, 50): 0, (0, 46): 0.006045598221090017, (5, 7): 0.009069994231101514, (3, 43): 0, (1, 47): 0, (6, 20): 0.007042809279130119, (4, 44): 0, (2, 44): 0, (8, 39): 0, (0, 68): 0, (5, 33): 0, (3, 49): 0, (6, 46): 0.009646500751594091, (8, 13): 0, (7, 47): 0, (6, 64): 0, (8, 19): 3.239630785856207e-11, (1, 20): 0, (2, 19): 0.01835691868665862, (0, 15): 0, (3, 10): 0, (1, 14): 0.01633874400353414, (4, 13): 0.007334993284534991, (2, 13): 0, (0, 37): 0, (5, 0): 0, (3, 16): 0, (1, 32): 0, (6, 15): 0, (4, 43): 0, (2, 39): 0, (8, 46): 0.0091016534416998, (7, 14): 0, (5, 42): 0.012603025887390373, (3, 54): 0, (6, 33): 0, (4, 49): 0, (2, 65): 0, (8, 52): 0.00795892099460932, (7, 36): 0, (5, 52): 0, (6, 59): 0, (8, 26): 0, (5, 69): 0, (0, 6): 0.016979516729181132, (7, 69): 0, (1, 7): 0.017072142435939786, (2, 4): 0, (0, 60): 0, (5, 9): 0, (3, 25): 0, (1, 57): 0, (6, 6): 0.002350424734784695, (4, 18): 0, (2, 62): 0, (7, 7): 0.023450447753763527, (5, 19): 1.3785847463587686e-10, (3, 63): 0, (6, 24): 0.0070430102992311006, (4, 56): 0.0004923184456194496, (8, 59): 0.015272023184469005, (7, 29): 0.005289370874727584, (5, 61): 0.008991109414855942, (6, 50): 0.018884166443537978, (8, 1): 0.007563952781724226, (7, 59): 0.004400428289989143, (0, 29): 0.005672422194646365, (1, 24): 0, (2, 31): -0.0, (0, 51): 0.008346966091792602, (7, 17): 0, (3, 30): 0.03606947298660944, (1, 50): 0, (4, 25): 0, (2, 57): 0, (0, 41): 0, (5, 28): 0, (3, 36): 0.0025833426100344004, (6, 19): -0.0, (4, 39): 0, (8, 34): 0.007563952814120534, (7, 26): -0.0, (5, 38): 0.00907019525120083, (6, 53): 0, (1, 69): 0, (8, 8): 0, (7, 48): 0, (7, 65): 0, (1, 17): 0, (2, 22): 0.01802408943292852, (0, 10): 0, (3, 7): 0.013657566161367363, (1, 11): 0.021742272513094185, (4, 0): 0, (2, 48): 0, (0, 32): 0, (5, 5): 0.0009945953752664438, (3, 45): 0, (1, 45): 0, (6, 10): 0, (4, 46): 0.002908029723564017, (2, 42): 0, (8, 41): 0, (7, 19): -0.0, (5, 47): 0, (3, 51): 0.016109305240790007, (6, 44): 0, (4, 52): 0.0038471687901861507, (2, 68): 0, (8, 15): 0, (7, 41): 0, (3, 64): 0, (8, 21): 0, (2, 17): 0.019193049524274114, (0, 1): 0.020319964510344818, (3, 12): 0, (1, 12): 0.01311380474353991, (8, 65): 0, (4, 15): 0.001037700542638291, (2, 11): 0, (0, 39): 0, (7, 23): 0.012859766887110703, (5, 14): 0, (3, 18): 0, (1, 38): 0.0171918225778696, (6, 13): 0, (4, 21): 0, (2, 37): 0.003409574663944537, (7, 8): 0, (5, 40): 0, (3, 56): 0, (6, 39): 0.0012070885546332992, (4, 51): 0.008813040684762952, (8, 54): 0.00795892099460932, (7, 38): 0.023450447753763527, (5, 50): 0, (6, 57): 0, (8, 28): 0, (7, 60): 0, (5, 67): 0, (0, 24): 0, (1, 5): 0, (2, 2): 0, (0, 62): 0, (3, 27): 0.02241190682524208, (1, 63): 0, (6, 4): 0, (4, 28): 0, (2, 60): 0, (7, 1): 0.010590680866652824, (5, 17): 0.00021547064463250942, (3, 33): 0, (6, 30): 0.015327209812991145, (4, 58): 0, (8, 61): 0.043590904641785264, (7, 31): -0.0, (5, 59): 0, (6, 48): 0.03242068539775739, (4, 64): 0, (1, 66): 0, (8, 3): -0.0, (7, 53): 0, (0, 31): 0, (1, 30): 0.016546166108348404, (2, 29): 0, (0, 53): 0, (3, 0): 0, (1, 48): 0, (4, 27): 0, (2, 55): 0.002114891576355943, (0, 43): 0, (7, 21): 0, (5, 26): 0, (3, 38): 0.013657566161367363, (5, 65): 0, (1, 42): 0, (6, 17): 0.0070430102992311006, (4, 33): 0.018957502932403364, (8, 36): 0, (7, 20): 0, (5, 36): 0.0009947963953657601, (6, 43): 0.001208506923335987, (8, 10): 0, (7, 50): 0, (7, 66): 0, (8, 16): 0, (7, 67): 0, (1, 23): 0.016550391408698562, (2, 20): 0.019193049524274114, (0, 12): 0, (3, 9): 0, (1, 9): 0.022112167775319783, (4, 2): 0.0012709070262352518, (2, 14): 0, (0, 34): 0.0023858444360000397, (5, 3): 0, (3, 47): 0, (1, 35): 0, (6, 8): 0, (4, 40): 0, (2, 40): 0, (8, 43): 0, (7, 13): 0, (5, 45): 0.012695621791248222, (3, 53): 0, (6, 34): 0, (4, 54): 0, (2, 66): 0, (8, 49): 0, (7, 43): 0, (5, 55): 0, (6, 68): 0, (3, 66): 0, (8, 23): 0.00914981225842883, (0, 3): 0.017934120074344778, (3, 14): 0, (1, 2): 0.000525976327591382, (8, 67): 0, (4, 9): 0.003044221187783955, (2, 9): 0, (0, 57): 0, (5, 12): 0, (3, 20): 0.0016364696022561076, (1, 36): 0, (6, 3): 0, (4, 23): 0.01278309427559689, (2, 35): 0, (7, 10): 0, (5, 22): 0, (3, 58): 0, (6, 37): 0.002350625754885677, (4, 61): 0.01454209444710185, (8, 56): 0.02687713960163221, (7, 32): 0, (5, 48): 7.472577687447912e-05, (6, 63): 0, (8, 30): 0.009149812226032523, (7, 62): 0, (7, 64): 0, (0, 26): -0.0, (1, 27): 0, (2, 0): 0.002891698040469043, (0, 48): 0, (3, 29): 0.019960167745819435, (1, 61): 0.0173179598016167, (4, 30): 0.01277886897524715, (2, 58): 0}, {(7, 3): 0.48799878015309295, (6, 9): 0.46443286885202845, (0, 7): 0.38629757013768773, (1, 6): 0.557261545892707, (3, 7): 0.5112268145273312, (2, 5): 0.4482145917506345, (8, 5): 0.4827301428269752, (5, 8): 0.4867497825517715, (4, 0): 0.4353988257995859, (6, 7): 0.4136319388715813, (5, 5): 0.47774722914939155, (7, 6): 0.49011453502430247, (0, 4): 0.3884174991211892, (1, 1): 0.45422872987228163, (3, 2): 0.5095388682742847, (2, 6): 0.4491252018540244, (8, 2): 0.48655442465488125, (4, 5): 0.43601201725007577, (6, 0): 0.4129364105079186, (7, 5): 0.48795514248160643, (0, 1): 0.4471974250910344, (3, 1): 0.58244816301504, (7, 8): 0.48235146044353316, (2, 1): 0.5445657860531777, (8, 9): 0.5383971389647463, (5, 1): 0.43863044953954977, (7, 2): 0.48799878015309295, (1, 5): 0.557339700520293, (3, 6): 0.509212757242962, (2, 2): 0.4419155552876686, (8, 6): 0.4877684394706067, (4, 1): 0.3405663298489655, (6, 4): 0.41293633009681163, (5, 4): 0.4867181470983266, (7, 1): 0.5136501325852662, (0, 5): 0.3887178825384859, (1, 0): 0.5569863216624013, (0, 8): 0.3880356581461235, (3, 5): 0.5090527516003995, (2, 7): 0.4501106727853254, (8, 3): 0.4865544246677864, (4, 6): 0.4374935461166179, (6, 1): 0.3958313707449266, (5, 7): 0.48711607815747776, (7, 4): 0.483762494835918, (0, 2): 0.38937183625060123, (1, 3): 0.5571967149192222, (4, 8): 0.43520189762545086, (3, 0): 0.5101934617918527, (2, 8): 0.45095664799226287, (8, 0): 0.4835288295251821, (6, 2): 0.41011918242087964, (5, 0): 0.48671822750943294, (1, 4): 0.5569384548355174, (3, 9): 0.5638392920915026, (2, 3): 0.449258335771853, (1, 9): 0.6119978810541848, (8, 7): 0.48034525949117474, (4, 2): 0.4359055101506583, (6, 5): 0.4085479180816473, (5, 3): 0.486632036387057, (7, 0): 0.483762494835918, (6, 8): 0.4138765885748083, (0, 6): 0.3916408095308855, (1, 7): 0.5556280128020835, (0, 9): 0.4431623999751225, (3, 4): 0.5101934617918527, (2, 4): 0.4495927936518971, (8, 4): 0.4835288295251821, (5, 9): 0.5385290366110771, (4, 7): 0.4338599342739244, (6, 6): 0.3971508525859204, (5, 6): 0.4866021449823929, (7, 7): 0.46573978403678384, (0, 3): 0.38937183625060123, (1, 2): 0.5571950249833976, (4, 9): 0.4892015543842985, (3, 3): 0.501228671329913, (2, 9): 0.503189286848022, (8, 1): 0.5253295966833841, (4, 4): 0.4283224636943163, (6, 3): 0.41011918242087964, (0, 0): 0.3812438321299712, (7, 9): 0.5413255021233382, (3, 8): 0.512115275119539, (2, 0): 0.4495927936518971, (1, 8): 0.5568879968849513, (8, 8): 0.47277793131341284, (4, 3): 0.4359072000864828, (5, 2): 0.4866320363319115}, {0: 0.053873916141837744, 1: 0.06684274321432337, 2: 0.05387398084106077, 3: 0.05387398865667553, 4: 0.053873988747685245, 5: 0.040469981970734245, 6: 0.05387397700003605, 7: 0.053873973453971304, 8: 0.053873968735393005}, {0: 0, 1: 0.18763281620901204, 2: 0, 3: 0, 4: 0, 5: 0.0076871397326001055, 6: 0, 7: 0, 8: 0, 9: 0.09636565330275065}, {0: -0.03349956165508951, 1: 0.38978182165602854, 2: 0.3104390653086893, 3: 0.43745632605469376, 4: 0.9284364869667817, 5: 1.0193536991863996, 6: 0.7806644649224843, 7: 0.9083855790842001, 8: 0.09961313216745758, 9: 0.6187779461423425, 10: 0.6299208367548368, 11: 0.8398773008187295, 12: 1.0170634205711515, 13: 0.23829897330605593, 14: 0.7393399650806333, 15: 0.8545821630156629, 16: 0.4920966636051983, 17: 0.6189855041685773, 18: 0.25746991059052415, 19: 0.7923758667284659, 20: 0.4651732492605544, 21: 0.9088150305042684, 22: 0.4405286793127558, 23: 0.7667989957371908, 24: 0.6858827013991752, 25: 0.3359405283400326, 26: 0.9114851508109629, 27: 0.8296254588173775, 28: 0.19864754800976117, 29: 0.6330953651509058, 30: 0.05525870598842497, 31: 0.8526626720758355, 32: 0.6776708168264558, 33: 0.9323678660546908, 34: 0.7353217561113159, 35: 0.7060066049671108, 36: 0.14124636155402828, 37: 0.28490934258769146, 38: 0.1960082377316794, 39: 0.7117442481534971, 40: 0.6279632325185587, 41: 0.8533683868546151, 42: 0.3395133744160758, 43: 0.7381564305225239, 44: 0.7007137642285746, 45: 0.7202086511664497, 46: 0.4772654937191584, 47: 0.345107235760314, 48: 0.5389482259131465, 49: 0.5978291549298463, 50: 0.44801511475191025, 51: 0.4125120701787372, 52: 0.4827558708571534, 53: 0.7851439612529475, 54: 0.17908195239905741, 55: 0.6900311616799454, 56: 1.0033129559316019, 57: 0.7836167773581445, 58: 0.7115281252271864, 59: 0.8881148251260368, 60: 0.37725258463466127, 61: 0.3664021619262664, 62: 0.43288645596940123, 63: 0.9203454050324068, 64: 0.15324624762330444, 65: 0.39236381302017087, 66: 0.47212047400720486, 67: 0.18368657240017094, 68: 0.4779206087985909, 69: 0.9463825811151743}]
--- /dev/null
+source [0, 1, 2, 3, 4, 5, 6, 7, 8]
+ds calcul u 0.171362627188 0
+ds calcul u 0.191084810561 0
+ds calcul u 0.199699765923 0
+ds calcul la 0.661848012095 0 0
+ds calcul la 0.954025945483 0 9
++ ds calcul u 1.80390928494 0
+ds calcul u 3.32818998838 0
+ds calcul u 3.81662795353 0
+ds calcul u 5.49033614759 0
+ds calcul la 7.53342334576 0 0
+ds calcul la 9.29374704351 0 1
++ ds calcul la 12.2305464282 0 1
++ ds calcul la 25.4207440304 0 1
++ ds calcul la 41.8893545454 0 1
++ - + - - + + - - - - - - - - - - - - + + - + - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 100 erreur sur q 1.37697263031 et q: {0: 0.21184661605605143, 1: 0.10481005857687054, 2: 0.2084682193818586, 3: 0.20854117659628582, 4: 0.213510510217915, 5: 0.1203187460761112, 6: 0.21273850773495534, 7: 0.24913064061808984, 8: 0.21566250812215926, 9: 0.20837553403646153}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 200 erreur sur q 0.889641159002 et q: {0: 0.16108972017655693, 1: 0.09486957764420367, 2: 0.1576077854574201, 3: 0.15761123591148185, 4: 0.1611423190998158, 5: 0.1102144125509333, 6: 0.15686476331265534, 7: 0.17926945865361082, 8: 0.16237428180182323, 9: 0.15818739449740604}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 300 erreur sur q 0.787478516503 et q: {0: 0.13787962659402397, 1: 0.08411913593610065, 2: 0.13534713303056323, 3: 0.13534759984329986, 4: 0.13788511962232122, 5: 0.10009823467859073, 6: 0.134430803089173, 7: 0.1503611483125675, 8: 0.1387818243161894, 9: 0.1357917401690652}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 400 erreur sur q 0.733691325149 et q: {0: 0.12315931709019257, 1: 0.07662205441703807, 2: 0.12118970510917361, 3: 0.12118980590820816, 4: 0.12316029138588572, 5: 0.09214824787577745, 6: 0.12039902560834237, 7: 0.13283899105793712, 8: 0.12385676903360998, 9: 0.12319218705262776}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 500 erreur sur q 0.688051743314 et q: {0: 0.11308285259503326, 1: 0.07153310139169211, 2: 0.11148845061779515, 3: 0.11148847919779195, 4: 0.11308308776345247, 5: 0.08744555556346119, 6: 0.11082329530295551, 7: 0.12075157650889598, 8: 0.11364845156994535, 9: 0.11613716666813706}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 600 erreur sur q 0.647428862934 et q: {0: 0.10584632020572587, 1: 0.06791978936466536, 2: 0.10453926096204016, 3: 0.10453927067220029, 4: 0.10584638984399636, 5: 0.08473751733974683, 6: 0.1039777076403228, 7: 0.11189302136375137, 8: 0.10631619760063332, 9: 0.11117337203123262}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 700 erreur sur q 0.647277970184 et q: {0: 0.10045069144348051, 1: 0.06524721426083979, 2: 0.09937837821482941, 3: 0.09937838197185805, 4: 0.10045071532582181, 5: 0.08345332540799316, 6: 0.098902607159158, 7: 0.10514389978658481, 8: 0.10084509599106034, 9: 0.10748029866777527}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 800 erreur sur q 0.653861452424 et q: {0: 0.09635853159173799, 1: 0.06329119993931509, 2: 0.09548603400085379, 3: 0.09548603560499425, 4: 0.09635854074551467, 5: 0.08351507244648913, 6: 0.09508292206585622, 7: 0.09986505318977307, 8: 0.09669030225470565, 9: 0.10467487585729324}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 900 erreur sur q 0.651534784925 et q: {0: 0.09324604030987438, 1: 0.06211779756770652, 2: 0.09254975399204259, 3: 0.09254975473219704, 4: 0.09324604413930299, 5: 0.08414657887173499, 6: 0.09220975441474072, 7: 0.09568136861365245, 8: 0.09352386474174235, 9: 0.10258970344601884}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 1000 erreur sur q 0.644680644675 et q: {0: 0.09085205566887808, 1: 0.061379389199482604, 2: 0.09031348875949696, 3: 0.09031348912315865, 4: 0.09085205738861954, 5: 0.0846636629864424, 6: 0.09002950488911937, 7: 0.09234677715949555, 8: 0.0910821522463765, 9: 0.10094949339835063}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 1100 erreur sur q 0.629160273661 et q: {0: 0.0889830538200149, 1: 0.06122868443775509, 2: 0.08858498349234241, 3: 0.08858498368057807, 4: 0.08898305463907552, 5: 0.08495550573608036, 6: 0.08835128738211878, 7: 0.08966993892652209, 8: 0.0891703733159337, 9: 0.09975134029450591}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 1200 erreur sur q 0.617848274337 et q: {0: 0.08749428460346553, 1: 0.061015472204295707, 2: 0.08722000363128028, 3: 0.08722000373309474, 4: 0.08749428501339679, 5: 0.08485639711951914, 6: 0.08703158570825498, 7: 0.0875126113370101, 8: 0.0876431568704194, 9: 0.09871377641357956}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 1300 erreur sur q 0.614400793106 et q: {0: 0.0862513152627129, 1: 0.060598468938496186, 2: 0.08608424998981996, 3: 0.08608425004700518, 4: 0.08625131547678735, 5: 0.0845265228092359, 6: 0.08593645746364975, 7: 0.08573094860860953, 8: 0.08636578378190352, 9: 0.09783021631532372}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 1400 erreur sur q 0.614334701303 et q: {0: 0.08517778239617155, 1: 0.06012779513650801, 2: 0.08510238097254098, 3: 0.08510238100572787, 4: 0.08517778251216532, 5: 0.08406106865541887, 6: 0.08499079347897959, 7: 0.0842258939973502, 8: 0.08526170476743894, 9: 0.09706638620171253}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 1500 erreur sur q 0.615469525432 et q: {0: 0.08423057810635451, 1: 0.05966935827983055, 2: 0.08423296969557852, 3: 0.08423296971539701, 4: 0.0842305781712698, 5: 0.08353442086469205, 6: 0.08415342878644327, 7: 0.08293195485099902, 8: 0.08428758434273836, 9: 0.09639402990317099}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 1600 erreur sur q 0.617001537482 et q: {0: 0.08338311477193014, 1: 0.05924177635960126, 2: 0.08345134088327735, 3: 0.08345134089541867, 4: 0.08338311480931479, 5: 0.08298848835603874, 6: 0.08340001217850607, 7: 0.08180363272196106, 8: 0.08341654216450217, 9: 0.09579404345661957}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 1700 erreur sur q 0.61863048326 et q: {0: 0.0826173448781578, 1: 0.058848024999094695, 2: 0.08274130676319327, 3: 0.08274130677080069, 4: 0.08261734490024372, 5: 0.08244565100576944, 6: 0.08271472363400054, 7: 0.08080802791600064, 8: 0.08263019567893937, 9: 0.09525320714315572}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 1800 erreur sur q 0.620239939621 et q: {0: 0.0819201510222155, 1: 0.058486314951061824, 2: 0.08209141818240571, 3: 0.0820914181872707, 4: 0.08192015103556594, 5: 0.08191762241589026, 6: 0.08208649612335522, 7: 0.07992067530244057, 8: 0.08191508034859396, 9: 0.09476186340498371}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 1900 erreur sur q 0.621784066022 et q: {0: 0.08128153618475278, 1: 0.05815364128959355, 2: 0.08149310983636959, 3: 0.081493109839539, 4: 0.08128153619299189, 5: 0.08141022444711907, 6: 0.08150713671609341, 7: 0.0791229817812572, 8: 0.08126086328091453, 9: 0.09431264882459296}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 2000 erreur sur q 0.623245630105 et q: {0: 0.08069362129044808, 1: 0.05784692514849543, 2: 0.08093970116437141, 3: 0.08093970116647045, 4: 0.08069362129562982, 5: 0.08092599231828113, 6: 0.08097031204577346, 7: 0.07840055488725092, 8: 0.08065935494861837, 9: 0.09389976846232478}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 2100 erreur sur q 0.624619577291 et q: {0: 0.08015004194133488, 1: 0.05756335432655957, 2: 0.0804258172693328, 3: 0.08042581727074388, 4: 0.08015004194464995, 5: 0.08046562415064169, 6: 0.08047096130644793, 7: 0.0777420715380979, 8: 0.08010391265406053, 9: 0.09351855237349235}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 2200 erreur sur q 0.625906230662 et q: {0: 0.07964556039673507, 1: 0.05730045572470288, 2: 0.07994703148817169, 3: 0.07994703148913382, 4: 0.07964556039889095, 5: 0.08002880190490717, 6: 0.0800049361691059, 7: 0.07713849222784197, 8: 0.07958905426628676, 9: 0.09316516798259472}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 2300 erreur sur q 0.627108319695 et q: {0: 0.07917580248408773, 1: 0.057056081034865036, 2: 0.07949963245890031, 3: 0.07949963245956543, 4: 0.07917580248550926, 5: 0.07961466272488268, 6: 0.07956876846259028, 7: 0.07658250393920199, 8: 0.07911019394647018, 9: 0.09283642414099255}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 2400 erreur sur q 0.628229614962 et q: {0: 0.07873707160772114, 1: 0.05682836831092919, 2: 0.07908046503744123, 3: 0.07908046503790711, 4: 0.07873707160867113, 5: 0.07922207187882835, 6: 0.07915951350927122, 7: 0.07606811827485196, 8: 0.07866345344367448, 9: 0.09252963225379499}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 2500 erreur sur q 0.629274273129 et q: {0: 0.0783262128130072, 1: 0.056615700743101405, 2: 0.0786868171975571, 3: 0.07868681719788634, 4: 0.07832621281365115, 5: 0.07884978111519612, 6: 0.07877464028465483, 7: 0.0755903770037957, 8: 0.07824552281345243, 9: 0.09224250467590067}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 2600 erreur sur q 0.630246512685 et q: {0: 0.07794051073866776, 1: 0.05641666933368239, 2: 0.07831633683391574, 3: 0.07831633683415126, 4: 0.07794051073910888, 5: 0.07849651988657112, 6: 0.07841195173026508, 7: 0.07514513319416125, 8: 0.07785355491730811, 9: 0.09197307843856076}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 2700 erreur sur q 0.631150451318 et q: {0: 0.07757761132010405, 1: 0.056230041010640885, 2: 0.07796696878320442, 3: 0.07796696878336992, 4: 0.07757761132041155, 5: 0.07816104681858899, 6: 0.07806952519798874, 7: 0.0747288863405948, 8: 0.0774850838495662, 9: 0.09171965677211874}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 2800 erreur sur q 0.63199002578 et q: {0: 0.07723546062438363, 1: 0.056054731975144656, 2: 0.0776369059967768, 3: 0.07763690599689987, 4: 0.07723546062459632, 5: 0.07784217747959714, 6: 0.07774566678510236, 7: 0.07433865660162678, 8: 0.07713796080709406, 9: 0.09148076348120088}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 2900 erreur sur q 0.632768955399 et q: {0: 0.07691225634234328, 1: 0.05588978558006785, 2: 0.07732455092553178, 3: 0.07732455092562926, 4: 0.07691225634249069, 5: 0.07753879799993632, 6: 0.07743887554541076, 7: 0.07397188773652214, 8: 0.07681030297497249, 9: 0.09125510681906135}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 3000 erreur sur q 0.633490729261 et q: {0: 0.07660640882271966, 1: 0.055734353975999795, 2: 0.0770284844727283, 3: 0.07702848447280627, 4: 0.07660640882282829, 5: 0.07724987028486155, 6: 0.07714781491464487, 7: 0.07362637136200584, 8: 0.07650045231225255, 9: 0.09104155052112958}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 3100 erreur sur q 0.634155540664 et q: {0: 0.07631650990219277, 1: 0.05558778647566459, 2: 0.07674744116344248, 3: 0.07674744116350649, 4: 0.0763165099022727, 5: 0.07697443257400952, 6: 0.07687129001258261, 7: 0.07330018771521862, 8: 0.07620694246646559, 9: 0.09083908926244014}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 3200 erreur sur q 0.634754099022 et q: {0: 0.07604131812102366, 1: 0.0554498184541895, 2: 0.07648029943754836, 3: 0.07648029943760018, 4: 0.07604131812108594, 5: 0.07671160740510881, 6: 0.07660823975793576, 7: 0.07299166971578289, 8: 0.07592848237070554, 9: 0.0906468180079997}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 3300 erreur sur q 0.635304691821 et q: {0: 0.07577972071263439, 1: 0.055319327782090755, 2: 0.07622604770580209, 3: 0.07622604770584446, 4: 0.07577972071268421, 5: 0.07646058785861946, 6: 0.0763577044702729, 7: 0.07269934809748407, 8: 0.07566391687352075, 9: 0.09046395627043813}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 3400 erreur sur q 0.635814270773 et q: {0: 0.0755307083783002, 1: 0.055195634104108715, 2: 0.07598376243286586, 3: 0.07598376243290053, 4: 0.07553070837834008, 5: 0.07622061553846782, 6: 0.0761188052598617, 7: 0.07242191196974473, 8: 0.07541220037448071, 9: 0.09028980595187291}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 3500 erreur sur q 0.636284973353 et q: {0: 0.07529337192632932, 1: 0.05507826056661763, 2: 0.07575260745562824, 3: 0.07575260745565682, 4: 0.07529337192636038, 5: 0.07599098909234606, 6: 0.07589074444949662, 7: 0.07215819567521134, 8: 0.0751723925092127, 9: 0.09012373012356156}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 3600 erreur sur q 0.636718090121 et q: {0: 0.07506689163540292, 1: 0.05496679742448518, 2: 0.07553182550343247, 3: 0.07553182550345489, 4: 0.07506689163542707, 5: 0.07577106387799293, 6: 0.07567279802435051, 7: 0.071907160347634, 8: 0.07494364671508047, 9: 0.08996515170068459}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 3700 erreur sur q 0.637114857064 et q: {0: 0.07485052639864018, 1: 0.05486087198090239, 2: 0.07532072909309856, 3: 0.07532072909311624, 4: 0.07485052639865947, 5: 0.07556024744497142, 6: 0.0754643073090703, 7: 0.07166787664640525, 8: 0.07472519870899358, 9: 0.08981354859143098}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 3800 erreur sur q 0.637476575838 et q: {0: 0.07464360417484242, 1: 0.0547601408136113, 2: 0.07511869241087445, 3: 0.07511869241088895, 4: 0.0746436041748578, 5: 0.07535799462938664, 6: 0.07526467150774482, 7: 0.0714395100023294, 8: 0.07451635638185178, 9: 0.08966844787188422}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 3900 erreur sur q 0.637804597283 et q: {0: 0.07444551380368228, 1: 0.054664286803531914, 2: 0.07492514430213401, 3: 0.07492514430214575, 4: 0.0744455138036933, 5: 0.07516380304045214, 6: 0.07507334124767065, 7: 0.07122130821079176, 8: 0.07431649114780065, 9: 0.08952942023402921}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 4000 erreur sur q 0.638100285969 et q: {0: 0.0742556980014773, 1: 0.05457301716268259, 2: 0.07473956223518521, 3: 0.07473956223519523, 4: 0.07425569800148574, 5: 0.07497720902362502, 6: 0.07488981301031061, 7: 0.07101259099291485, 8: 0.07412503054943292, 9: 0.08939607502035965}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 4100 erreur sur q 0.638364990567 et q: {0: 0.07407364734365757, 1: 0.054486061645346806, 2: 0.07456146708458897, 3: 0.07456146708459693, 4: 0.07407364734366415, 5: 0.07479778406092596, 6: 0.07471362430906797, 7: 0.0708127411714469, 8: 0.07394145191223445, 9: 0.08926805587360084}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 4200 erreur sur q 0.63860000989 et q: {0: 0.07389889522892293, 1: 0.05440317087222818, 2: 0.07439041876064298, 3: 0.07439041876064936, 4: 0.07389889522893, 5: 0.07462517956655977, 6: 0.07454434965238818, 7: 0.07062119717142651, 8: 0.07376527703268543, 9: 0.08914503632926235}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 4300 erreur sur q 0.638806333361 et q: {0: 0.07373101808980251, 1: 0.0543241173123748, 2: 0.07422601702540808, 3: 0.07422601702541362, 4: 0.0737310180898085, 5: 0.07445927257122704, 6: 0.0743816016433208, 7: 0.07043744679993635, 8: 0.0735960721551791, 9: 0.0890267075057814}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 4400 erreur sur q 0.638985239097 et q: {0: 0.07356962549208146, 1: 0.054248691480848266, 2: 0.0740678921275013, 3: 0.07406789212750575, 4: 0.07356962549208623, 5: 0.07429947142658337, 6: 0.07422502185956853, 7: 0.07026102207906801, 8: 0.0734334378694802, 9: 0.08891280457744466}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 4500 erreur sur q 0.6391380717 et q: {0: 0.0734143525885719, 1: 0.05417669606768655, 2: 0.07391569748358467, 3: 0.07391569748358831, 4: 0.07341435258857637, 5: 0.0741453734334866, 6: 0.07407427374036332, 7: 0.07009149394874706, 8: 0.07327700139672838, 9: 0.08880308512344084}
+maxg= 41.8893545454
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ds calcul la 25077.3123764 0 4
++ - - + - - k: 4600 erreur sur q 269.894002813 et q: {0: 0.08789130809790305, 1: 0.06869332517051807, 2: 0.08839434076143263, 3: 0.08839434076143607, 4: 18.60860982198988, 5: 0.08858224986642826, 6: 0.07393511243946865, 7: 0.084554930096297, 8: 0.08775286443193414, 9: 0.10315717802555988}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 4700 erreur sur q 107.025246191 et q: {0: 0.46351204605064306, 1: 0.38719432875112436, 2: 0.4588921380662337, 3: 0.45889213806623536, 4: 10.776578144157956, 5: 0.44309909527473124, 6: 0.09975981100843581, 7: 0.46110119597098564, 8: 0.4634641227309195, 9: 0.42745126869148226}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 4800 erreur sur q 40.7187625774 et q: {0: 0.6636598045469577, 1: 0.5041682041780908, 2: 0.6492708329324107, 3: 0.649270832932412, 4: 6.357461569339593, 5: 0.6364318066625234, 6: 0.15238854598206344, 7: 0.6643034791748498, 8: 0.664069049465394, 9: 0.5614704987474473}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 4900 erreur sur q 17.1217717612 et q: {0: 0.7648744755712553, 1: 0.5463906024630713, 2: 0.7404974169576213, 3: 0.7404974169576216, 4: 3.8379920880548166, 5: 0.7307982709425253, 6: 0.21178900929925448, 7: 0.7702410813438324, 8: 0.7661372389434968, 9: 0.6126768579432684}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 5000 erreur sur q 7.8692062114 et q: {0: 0.8104128415067544, 1: 0.5619825778207026, 2: 0.7776102261319436, 3: 0.7776102261319442, 4: 2.386552562632441, 5: 0.7705986600784995, 6: 0.26908299409744874, 7: 0.8214678852186039, 8: 0.8128114999978588, 9: 0.6241829818430222}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 5100 erreur sur q 3.80111924353 et q: {0: 0.8252603564371084, 1: 0.5639734821548498, 2: 0.7861173718778407, 3: 0.786117371877842, 4: 1.5418466253828367, 5: 0.7814070987510191, 6: 0.3211431641613739, 7: 0.8418321638064914, 8: 0.8289370344891078, 9: 0.6629062358205073}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 5200 erreur sur q 1.8462361759 et q: {0: 0.8236877604486267, 1: 0.563978336879762, 2: 0.7802580987865967, 3: 0.7802580987865972, 4: 1.0451654709193425, 5: 0.7775054764264633, 6: 0.36720967844079166, 7: 0.8448327528443789, 8: 0.8286629146198761, 9: 0.6826810858900993}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + k: 5300 erreur sur q 1.05865688537 et q: {0: 0.8136043306724794, 1: 0.5901463231972488, 2: 0.7676779976574585, 3: 0.767677997657459, 4: 0.7498839635143639, 5: 0.7665732077372479, 6: 0.40729405955713505, 7: 0.8384787200789049, 8: 0.8198080799698924, 9: 0.6904512188573286}
+maxg= 25077.3123764
++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 5400 erreur sur q 0.871784027719 et q: {0: 0.799767334928421, 1: 0.6154435697749505, 2: 0.7528010865792357, 3: 0.7528010865792364, 4: 0.5724605923923649, 5: 0.7530652532207285, 6: 0.4421510810805612, 7: 0.8276113314051814, 8: 0.8070705806801147, 9: 0.6917673052673619}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 5500 erreur sur q 0.754272996671 et q: {0: 0.7843903549717959, 1: 0.6319067282308376, 2: 0.7375162454096111, 3: 0.7375162454096116, 4: 0.4643075424739509, 5: 0.738900410477807, 6: 0.47211494849953306, 7: 0.8145221839125079, 8: 0.7926306308889586, 9: 0.6893914243141384}
+maxg= 25077.3123764
+- - - - + + - - - + + + - - + - + - - - - + - + - - - - - - - - - - - - + - + - + - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 5600 erreur sur q 1.01523168678 et q: {0: 0.768657118785566, 1: 0.6410700013870307, 2: 0.7227224474478433, 3: 0.7227224474478442, 4: 0.3972102067421597, 5: 0.7250067118809638, 6: 0.497633388989122, 7: 0.8004705949397971, 8: 0.7776580673877951, 9: 0.684903133341876}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 5700 erreur sur q 1.21668528998 et q: {0: 0.753153782275837, 1: 0.6466884442184442, 2: 0.708769772844691, 3: 0.7087697728446922, 4: 0.35463583785423847, 5: 0.7117620453662736, 6: 0.5191583786574341, 7: 0.7861160450700219, 8: 0.7627388180895875, 9: 0.6791855808168814}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 5800 erreur sur q 1.3612890474 et q: {0: 0.738220737872565, 1: 0.6490366299990962, 2: 0.6958096195408746, 3: 0.6958096195408758, 4: 0.3268846032699555, 5: 0.6993439007206042, 6: 0.5371993125997518, 7: 0.7718690334658042, 8: 0.7482219950339215, 9: 0.6728095101790028}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 5900 erreur sur q 1.45942439569 et q: {0: 0.723996045170884, 1: 0.6490373476510122, 2: 0.6838324107803037, 3: 0.6838324107803044, 4: 0.3081751300160551, 5: 0.6877667211842444, 6: 0.552202945449985, 7: 0.7579334329078122, 8: 0.7342597500707873, 9: 0.6660965164849417}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 6000 erreur sur q 1.52304377804 et q: {0: 0.7105224326892505, 1: 0.6473412270286065, 2: 0.6727677555362777, 3: 0.6727677555362787, 4: 0.29504548182537693, 5: 0.6769818597630916, 6: 0.5645719068675952, 7: 0.7444126671583051, 8: 0.7209116945923865, 9: 0.6592386707791282}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 6100 erreur sur q 1.56250441578 et q: {0: 0.6977913216716305, 1: 0.6444142207472751, 2: 0.6625218830037627, 3: 0.6625218830037631, 4: 0.28540565545669505, 5: 0.6669149482458175, 6: 0.5746621603220845, 7: 0.7313532523957822, 8: 0.7081871355086033, 9: 0.6523508801724448}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 6200 erreur sur q 1.58565908389 et q: {0: 0.6857679163341026, 1: 0.6405945542099392, 2: 0.652996943067402, 3: 0.6529969430674025, 4: 0.2779831742548451, 5: 0.6574852393941706, 6: 0.5827848357178209, 7: 0.7187697196801102, 8: 0.696068981281398, 9: 0.6455016995176743}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 6300 erreur sur q 1.59804576247 et q: {0: 0.6744054143403181, 1: 0.6361305558946908, 2: 0.6441003724384775, 3: 0.6441003724384777, 4: 0.271996327028325, 5: 0.6486150889133889, 6: 0.589210028768318, 7: 0.7066589048422214, 8: 0.6845272106402603, 9: 0.6387316207370348}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 6400 erreur sur q 1.60341479445 et q: {0: 0.6636529456555724, 1: 0.6312062802660459, 2: 0.6357488971611723, 3: 0.6357488971611719, 4: 0.2669602029027667, 5: 0.6402341195666724, 6: 0.5941712883730835, 7: 0.6950081417665304, 8: 0.6735263845045254, 9: 0.6320640241157867}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 6500 erreur sur q 1.60425033289 et q: {0: 0.6534598925207926, 1: 0.6259591836131172, 2: 0.6278697137372774, 3: 0.6278697137372774, 4: 0.26257074452754914, 5: 0.6322805877690265, 6: 0.5978701349008753, 7: 0.6837999488438534, 8: 0.6630297568169331, 9: 0.6255117933228429}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 6600 erreur sur q 1.60217993393 et q: {0: 0.6437781256330473, 1: 0.6204925261981413, 2: 0.6204002542557059, 3: 0.6204002542557057, 4: 0.25863495649023527, 5: 0.6247013422270866, 6: 0.6004802927598731, 7: 0.6730146939910325, 8: 0.6530014476758488, 9: 0.6190813461773226}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 6700 erreur sur q 1.59826576663 et q: {0: 0.6345630485017223, 1: 0.6148842093430524, 2: 0.613287303199619, 3: 0.6132873031996193, 4: 0.25502860484519196, 5: 0.6174511315381612, 6: 0.6021515047423744, 7: 0.662632093481086, 8: 0.6434075189417832, 9: 0.6127751119894402}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 6800 erreur sur q 1.59320141453 et q: {0: 0.6257739695940743, 1: 0.6091931597898335, 2: 0.606485876448673, 3: 0.606485876448673, 4: 0.25167040046766775, 5: 0.6104916644123886, 6: 0.6030128928067782, 7: 0.6526320384889605, 8: 0.6342164352614461, 9: 0.6065930669066149}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 6900 erreur sur q 1.58744133068 et q: {0: 0.6173741051011782, 1: 0.6034639987746245, 2: 0.5999580739597106, 3: 0.5999580739597106, 4: 0.24850613134478383, 5: 0.6037906300175007, 6: 0.60317587899712, 7: 0.6429950351688705, 8: 0.6253991878925174, 9: 0.6005336929206803}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 7000 erreur sur q 1.58128481098 et q: {0: 0.6093303883537609, 1: 0.5977304934178183, 2: 0.5936720077869639, 3: 0.5936720077869636, 4: 0.24549883884079104, 5: 0.5973207781489981, 6: 0.6027367028303134, 7: 0.6337024238139256, 8: 0.6169292400897419, 9: 0.5945945810489108}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 7100 erreur sur q 1.57493012708 et q: {0: 0.6016131874830646, 1: 0.5920181318908228, 2: 0.5876008475589322, 3: 0.5876008475589316, 4: 0.24262268959348354, 5: 0.5910591007605305, 6: 0.6017785798812727, 7: 0.6247364729483282, 8: 0.6087823842488347, 9: 0.5887728128174101}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 7200 erreur sur q 1.56850937651 et q: {0: 0.5941959891382014, 1: 0.5863460603941533, 2: 0.5817219942068779, 3: 0.5817219942068778, 4: 0.2398591219350097, 5: 0.5849861259613157, 6: 0.6003735472737055, 7: 0.6160804037325163, 8: 0.6009365613740433, 9: 0.5830652023544811}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 7300 erreur sur q 1.56211096329 et q: {0: 0.5870550803180982, 1: 0.580728550310983, 2: 0.5760163771279684, 3: 0.5760163771279683, 4: 0.23719440151254378, 5: 0.5790853205236133, 6: 0.5985840391191684, 7: 0.6077183765459884, 8: 0.593371670576867, 9: 0.5774684500623464}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 7400 erreur sur q 1.55579416299 et q: {0: 0.580169245273892, 1: 0.5751761162070426, 2: 0.5704678629727535, 3: 0.5704678629727544, 4: 0.23461805595999508, 5: 0.5733425902557081, 6: 0.5964642307095505, 7: 0.5996354579556431, 8: 0.5860693831957973, 9: 0.5719792397245163}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 7500 erreur sur q 1.55926426276 et q: {0: 0.5735194856472556, 1: 0.5696963722005521, 2: 0.5650627618651676, 3: 0.5650627618651681, 4: 0.23212186182149086, 5: 0.5677458653548522, 6: 0.5940611855658764, 7: 0.5918175783626174, 8: 0.5790129686691592, 9: 0.5665942991513941}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 7600 erreur sur q 1.57474072042 et q: {0: 0.5670887669657197, 1: 0.5642946908621134, 2: 0.5597894168456169, 3: 0.5597894168456172, 4: 0.2296991810307718, 5: 0.562284757868708, 6: 0.5914158348460181, 7: 0.5842514860520225, 8: 0.5721871351198057, 9: 0.5613104371719417}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 7700 erreur sur q 1.58886298759 et q: {0: 0.5608617917943703, 1: 0.5589747121230915, 2: 0.554637863428211, 3: 0.5546378634282112, 4: 0.2273445204341895, 5: 0.5569502794567571, 6: 0.5885638143825807, 7: 0.5769247007499463, 8: 0.5655778853362479, 9: 0.5561245652102729}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 7800 erreur sur q 1.60176744921 et q: {0: 0.5548247983355946, 1: 0.5537387376208054, 2: 0.5495995477054999, 3: 0.5495995477054996, 4: 0.22505323488468942, 5: 0.5517346091070141, 6: 0.5855361808630317, 7: 0.5698254683041117, 8: 0.5591723876511177, 9: 0.5510337087968713}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 7900 erreur sur q 1.61357403259 et q: {0: 0.5489653825320686, 1: 0.5485880371123425, 2: 0.5446670930639262, 3: 0.5446670930639259, 4: 0.22282132364837537, 5: 0.546630901992534, 6: 0.5823600253940056, 7: 0.5629427172715249, 8: 0.5529588606531055, 9: 0.5460350125190823}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 8000 erreur sur q 1.62438869568 et q: {0: 0.5432723414377285, 1: 0.5435230871068943, 2: 0.539834107115961, 3: 0.5398341071159608, 4: 0.22064528811524386, 5: 0.541633132085103, 6: 0.5790589998844684, 7: 0.5562660177396694, 8: 0.5469264704482207, 9: 0.5411257407254457}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 8100 erreur sur q 1.63430542252 et q: {0: 0.5377355355827251, 1: 0.538543757050185, 2: 0.5350950218350213, 3: 0.5350950218350212, 4: 0.21852203027456518, 5: 0.5367359624128534, 6: 0.5756537692928145, 7: 0.5497855424651278, 8: 0.5410652391517539, 9: 0.5363032755229789}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 8200 erreur sur q 1.6434078505 et q: {0: 0.5323457681554034, 1: 0.5336494547891054, 2: 0.5304449610739301, 3: 0.5304449610739307, 4: 0.21644877866705237, 5: 0.5319346379363494, 6: 0.5721624007598429, 7: 0.5434920302908368, 8: 0.5353659633526056, 9: 0.5315651130961636}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 8300 erreur sur q 1.65177061725 et q: {0: 0.527094678988816, 1: 0.5288392403279611, 2: 0.5258796306606872, 3: 0.5258796306606877, 4: 0.21442303314005784, 5: 0.5272248969312368, 6: 0.5686006989423966, 7: 0.5373767517463492, 8: 0.5298201413952723, 9: 0.5269088590372475}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 8400 erreur sur q 1.65946048972 et q: {0: 0.5219746515310234, 1: 0.5241119148284367, 2: 0.5213952271130874, 3: 0.521395227113088, 4: 0.2124425226879083, 5: 0.5226028975222504, 6: 0.5649824954246034, 7: 0.5314314767137375, 8: 0.5244199084434533, 9: 0.5223322231500619}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 8500 erreur sur q 1.66653732082 et q: {0: 0.5169787311748786, 1: 0.5194660902364077, 2: 0.5169883617170052, 3: 0.5169883617170059, 4: 0.2105051725661644, 5: 0.5180651566349707, 6: 0.5613198988738668, 7: 0.5256484440377076, 8: 0.5191579784078756, 9: 0.5178330140357745}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 8600 erreur sur q 1.67305486726 et q: {0: 0.5121005535117402, 1: 0.5149002437175545, 2: 0.5126559972933122, 3: 0.512655997293312, 4: 0.20860907810808982, 5: 0.5136084991392238, 6: 0.5576235115909405, 7: 0.5200203329627506, 8: 0.5140275919320849, 9: 0.5134091336643032}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 8700 erreur sur q 1.67906149378 et q: {0: 0.5073342812482692, 1: 0.5104127601603285, 2: 0.5083953954552115, 3: 0.508395395455212, 4: 0.20675248348438569, 5: 0.5092300153710178, 6: 0.553902617247015, 7: 0.5145402362875564, 8: 0.5090224697305443, 9: 0.5090585720634879}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 8800 erreur sur q 1.68460078342 et q: {0: 0.5026745486835921, 1: 0.5060019652921572, 2: 0.5042040725489361, 3: 0.5042040725489377, 4: 0.20493376418463427, 5: 0.5049270255552407, 6: 0.5501653438796029, 7: 0.5092016351351304, 8: 0.5041367706624522, 9: 0.5047794022088596}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 8900 erreur sur q 1.68971206879 et q: {0: 0.49811641278520186, 1: 0.5016661514029256, 2: 0.5000797627911087, 3: 0.500079762791111, 4: 0.20315141235813083, 5: 0.5006970499232984, 6: 0.5464188056112718, 7: 0.5039983752446885, 8: 0.4993650540026916, 9: 0.5005697751630784}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 9000 erreur sur q 1.69443089667 et q: {0: 0.4936553100263952, 1: 0.4974035972409692, 2: 0.49602038737851284, 3: 0.4960203873785153, 4: 0.20140402439468374, 5: 0.49653778354050965, 6: 0.542669226042515, 7: 0.4989246446982833, 8: 0.49470224543908103, 9: 0.4964279154908905}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 9100 erreur sur q 1.69878943562 et q: {0: 0.48928701825726983, 1: 0.4932125833127934, 2: 0.4920240285609675, 3: 0.49202402856096983, 4: 0.19969029029200414, 5: 0.4924470750369669, 6: 0.5389220458369478, 7: 0.4939749530009507, 8: 0.4901436063837801, 9: 0.49235211695971454}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 9200 erreur sur q 1.70281683469 et q: {0: 0.4850076229765586, 1: 0.48909140355668346, 2: 0.48808890784416514, 3: 0.4880889078441677, 4: 0.1980089844716053, 5: 0.4884229085809, 6: 0.5351820166506792, 7: 0.4891441114382146, 8: 0.4856847062374622, 9: 0.4883407385253475}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 9300 erreur sur q 1.70653953982 et q: {0: 0.4808134874544603, 1: 0.48503837415599116, 2: 0.4842133676338387, 3: 0.4842133676338407, 4: 0.1963589577863054, 5: 0.48446338855165594, 6: 0.5314532832474101, 7: 0.4844272146391084, 8: 0.481321397288758, 9: 0.4843922005953297}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 9400 erreur sur q 1.70998157364 et q: {0: 0.47670122622862415, 1: 0.48105184009739926, 2: 0.48039585575130817, 3: 0.48039585575130933, 4: 0.1947391305205226, 5: 0.4805667264655388, 6: 0.5277394553776604, 7: 0.4798196232766795, 8: 0.47704979196943254, 9: 0.4805049815581076}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 9500 erreur sur q 1.71316478329 et q: {0: 0.4726676815577808, 1: 0.47713017995321666, 2: 0.4766349123480173, 3: 0.47663491234801797, 4: 0.1931484862267414, 5: 0.4767312297861509, 6: 0.524043670776967, 7: 0.4753169478413243, 8: 0.47286624221872137, 9: 0.4766776145634855}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 9600 erreur sur q 1.71610906039 et q: {0: 0.4687099024716098, 1: 0.4732718092672759, 2: 0.47292915882700104, 3: 0.4729291588270023, 4: 0.19158606627294184, 5: 0.4729552923148278, 6: 0.5203686504477361, 7: 0.4709150334254103, 8: 0.46876732073886496, 9: 0.47290868453854285}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 9700 erreur sur q 1.71883253647 et q: {0: 0.46482512610218996, 1: 0.4694751828454034, 2: 0.46927728844544153, 3: 0.46927728844544236, 4: 0.19005096499923635, 5: 0.46923738590916236, 6: 0.5167167472274364, 7: 0.46660994546053547, 8: 0.46474980394880094, 9: 0.46919682542262026}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 9800 erreur sur q 1.72135175706 et q: {0: 0.4610107610229328, 1: 0.46573879618928177, 2: 0.46567805832713965, 3: 0.4656780583271405, 4: 0.18854232540014948, 5: 0.4655760533205271, 6: 0.5130899885076096, 7: 0.46239795635154624, 8: 0.4608106564647322, 9: 0.4655407176051269}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 9900 erreur sur q 1.72368183675 et q: {0: 0.4572643723560004, 1: 0.4620611862632664, 2: 0.46213028265894224, 3: 0.46213028265894285, 4: 0.187059335263001, 5: 0.46196990197670373, 6: 0.5094901138500642, 7: 0.4582755329540436, 8: 0.45694701695531365, 9: 0.4619390855503469}
+maxg= 25077.3123764
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - k: 10000 erreur sur q 1.72583659767 et q: {0: 0.45358366843957376, 1: 0.45844093174468337, 2: 0.4586328268825643, 3: 0.4586328268825661, 4: 0.185601223704019, 5: 0.45841759856481357, 6: 0.5059186081455924, 7: 0.45423932484470386, 8: 0.45315618523592016, 9: 0.458390695594186}
+maxg= 25077.3123764
+nbre d'iteration trop grand
+init
+[{0: 0.18074828754835925, 1: 0.19083463851139618, 2: 0.18625471780939198, 3: 0.17325361733712263, 4: 0.1678845138572425, 5: 0.19556898924169167, 6: 0.1757247696573775, 7: 0.15470870092240857, 8: 0.1706397233176451, 9: 0.19080518909669428}, {0: 0.2418934256468288, 1: 0.39037872898466114, 2: 0.3266504857619158, 3: 0.3653054621355456, 4: 0.2634621351443713, 5: 0.4989859229706304, 6: 0.2583177249187363, 7: 0.3784170297205348, 8: 0.26716667010745854}, {0: 0.17136262718775253, 1: 0.10118810112903638, 2: 0.11947767111214498, 3: 0.19108481056086954, 4: 0.1873494247955736, 5: 0.12726097446740187, 6: 0.19969976592294947, 7: 0.1021370416462077, 8: 0.12453109808724712}, {(7, 3): 0, (6, 9): -0.19969976592294947, (0, 7): 0, (1, 6): 0, (3, 7): 0, (2, 5): 0, (8, 5): 0, (5, 8): 0, (4, 0): 0, (6, 7): 0, (5, 5): 0.12726097446740187, (7, 6): 0, (0, 4): 0, (1, 1): 0.10118810112903638, (3, 2): 0, (2, 6): 0, (8, 2): 0, (4, 5): 0, (6, 0): 0, (7, 5): 0, (0, 1): 0, (3, 1): 0, (7, 8): 0, (2, 1): 0, (8, 9): -0.12453109808724712, (5, 1): 0, (7, 2): 0, (1, 5): 0, (3, 6): 0, (2, 2): 0.11947767111214498, (8, 6): 0, (4, 1): 0, (6, 4): 0, (5, 4): 0, (7, 1): 0, (0, 5): 0, (1, 0): 0, (0, 8): 0, (3, 5): 0, (2, 7): 0, (8, 3): 0, (4, 6): 0, (6, 1): 0, (5, 7): 0, (7, 4): 0, (0, 2): 0, (1, 3): 0, (4, 8): 0, (3, 0): 0, (2, 8): 0, (8, 0): 0, (6, 2): 0, (5, 0): 0, (1, 4): 0, (3, 9): -0.19108481056086954, (2, 3): 0, (1, 9): -0.10118810112903638, (8, 7): 0, (4, 2): 0, (6, 5): 0, (5, 3): 0, (7, 0): 0, (6, 8): 0, (0, 6): 0, (1, 7): 0, (0, 9): -0.17136262718775253, (3, 4): 0, (2, 4): 0, (8, 4): 0, (5, 9): -0.12726097446740187, (4, 7): 0, (6, 6): 0.19969976592294947, (5, 6): 0, (7, 7): 0.1021370416462077, (0, 3): 0, (1, 2): 0, (4, 9): -0.1873494247955736, (3, 3): 0.19108481056086954, (2, 9): -0.11947767111214498, (8, 1): 0, (4, 4): 0.1873494247955736, (6, 3): 0, (0, 0): 0.17136262718775253, (7, 9): -0.1021370416462077, (3, 8): 0, (2, 0): 0, (1, 8): 0, (8, 8): 0.12453109808724712, (4, 3): 0, (5, 2): 0}, {(7, 3): 0, (5, 31): 0, (3, 35): 0, (6, 28): 0, (4, 36): 0, (8, 63): 0, (7, 25): 0, (5, 57): 0, (6, 54): 0, (4, 66): 0, (1, 64): 0, (8, 5): 0, (7, 55): 0, (0, 17): 0, (1, 28): 0, (2, 27): 0, (0, 55): 0, (3, 2): 0, (1, 54): 0, (4, 5): 0, (2, 53): 0, (0, 45): 0, (5, 24): 0, (3, 40): 0, (1, 40): 0, (6, 23): 0, (4, 35): 0, (2, 47): 0, (8, 38): 0, (0, 67): 0, (5, 34): 0, (6, 41): 0, (8, 12): 0, (7, 44): 0, (6, 67): 0, (8, 18): 0, (1, 21): 0, (2, 18): 0, (0, 14): 0, (3, 11): 0, (1, 15): 0, (4, 12): 0, (2, 12): 0, (0, 36): 0, (5, 1): 0, (3, 17): 0, (1, 33): 0, (6, 14): 0, (4, 42): 0, (2, 38): 0, (8, 45): 0, (7, 15): 0, (5, 43): 0, (3, 55): 0, (6, 32): 0, (4, 48): 0, (2, 64): 0, (8, 51): 0, (7, 37): 0, (5, 53): 0, (6, 58): 0, (3, 68): 0, (8, 25): 0, (0, 5): 0, (1, 0): 0, (8, 69): 0, (4, 11): 0, (2, 7): 0, (0, 59): 0, (5, 10): 0, (3, 22): 0, (1, 58): 0, (6, 1): 0, (4, 17): 0, (2, 33): 0, (7, 4): 0, (5, 20): 0, (3, 60): 0, (6, 27): 0, (4, 63): 0, (8, 58): 0, (7, 34): 0, (5, 62): 0, (6, 61): 0, (4, 69): 0, (8, 0): 0, (7, 56): 0, (0, 28): 0, (7, 68): 0, (1, 25): 0, (2, 30): 0, (0, 50): 0, (3, 31): 0, (1, 51): 0, (4, 24): 0, (2, 56): 0, (0, 40): 0, (5, 29): 0, (3, 37): 0, (6, 18): 0, (4, 38): 0, (8, 33): 0, (7, 27): 0, (5, 39): 0, (6, 52): 0, (8, 7): 0, (7, 49): 0, (0, 19): 0, (1, 18): 0, (2, 25): 0, (0, 9): 0, (7, 16): 0, (3, 4): 0, (1, 52): 0, (4, 7): 0, (2, 51): 0, (0, 47): 0, (5, 6): 0, (3, 42): 0, (1, 46): 0, (6, 21): 0, (4, 45): 0, (2, 45): 0, (8, 40): 0, (0, 69): 0, (5, 32): 0, (3, 48): 0, (6, 47): 0, (8, 14): 0, (7, 46): 0, (6, 65): 0, (3, 65): 0, (8, 20): 0, (2, 16): 0, (0, 0): 0, (3, 13): 0, (1, 13): 0, (8, 64): 0, (4, 14): 0, (2, 10): 0, (0, 38): 0, (5, 15): 0, (3, 19): 0, (1, 39): 0, (6, 12): 0, (4, 20): 0, (2, 36): 0, (8, 47): 0, (7, 9): 0, (5, 41): 0, (3, 57): 0, (6, 38): 0, (4, 50): 0, (8, 53): 0, (7, 39): 0, (5, 51): 0, (6, 56): 0, (8, 27): 0, (7, 61): 0, (5, 68): 0, (0, 7): 0, (1, 6): 0, (2, 5): 0, (0, 61): 0, (7, 22): 0, (5, 8): 0, (3, 24): 0, (1, 56): 0, (6, 7): 0, (4, 19): 0, (2, 63): 0, (7, 6): 0, (5, 18): 0, (3, 62): 0, (6, 25): 0, (4, 57): 0, (8, 60): 0, (7, 28): 0, (5, 60): 0, (6, 51): 0, (1, 67): 0, (8, 2): 0, (7, 58): 0, (0, 30): 0, (1, 31): 0, (2, 28): 0, (0, 52): 0, (3, 1): 0, (1, 49): 0, (4, 26): 0, (2, 54): 0, (0, 42): 0, (5, 27): 0, (3, 39): 0, (1, 43): 0, (6, 16): 0, (4, 32): 0, (8, 35): 0, (0, 64): 0, (5, 37): 0, (6, 42): 0, (1, 68): 0, (8, 9): 0, (7, 51): 0, (0, 21): 0, (1, 16): 0, (2, 23): 0, (0, 11): 0, (3, 6): 0, (1, 10): 0, (4, 1): 0, (2, 49): 0, (0, 33): 0, (0, 65): 0, (5, 4): 0, (3, 44): 0, (1, 44): 0, (6, 11): 0, (4, 47): 0, (2, 43): 0, (8, 42): 0, (7, 18): 0, (5, 46): 0, (3, 50): 0, (6, 45): 0, (4, 53): 0, (2, 69): 0, (8, 48): 0, (7, 40): 0, (3, 67): 0, (8, 22): 0, (0, 2): 0, (3, 15): 0, (1, 3): 0, (8, 66): 0, (4, 8): 0, (2, 8): 0, (0, 56): 0, (5, 13): 0, (3, 21): 0, (1, 37): 0, (6, 2): 0, (4, 22): 0, (2, 34): 0, (7, 11): 0, (5, 23): 0, (3, 59): 0, (6, 36): 0, (4, 60): 0, (8, 55): 0, (7, 33): 0, (5, 49): 0, (6, 62): 0, (8, 29): 0, (7, 63): 0, (5, 66): 0, (0, 25): 0, (1, 4): 0, (2, 3): 0, (0, 63): 0, (3, 26): 0, (1, 62): 0, (6, 5): 0, (4, 29): 0, (2, 61): 0, (7, 0): 0, (5, 16): 0, (3, 32): 0, (6, 31): 0, (4, 59): 0, (8, 62): 0, (7, 30): 0, (5, 58): 0, (6, 49): 0, (4, 65): 0, (1, 65): 0, (8, 4): 0, (7, 52): 0, (0, 22): 0, (0, 16): 0, (1, 29): 0, (2, 26): 0, (0, 54): 0, (3, 3): 0, (1, 55): 0, (4, 4): 0, (2, 52): 0, (0, 44): 0, (5, 25): 0, (3, 41): 0, (1, 41): 0, (6, 22): 0, (4, 34): 0, (2, 46): 0, (8, 37): 0, (0, 66): 0, (5, 35): 0, (6, 40): 0, (8, 11): 0, (7, 45): 0, (6, 66): 0, (8, 17): 0, (0, 23): 0, (1, 22): 0, (2, 21): 0, (0, 13): 0, (3, 8): 0, (1, 8): 0, (4, 3): 0, (2, 15): 0, (0, 35): 0, (5, 2): 0, (3, 46): 0, (1, 34): 0, (6, 9): 0, (4, 41): 0, (2, 41): 0, (8, 44): 0, (7, 12): 0, (5, 44): 0, (3, 52): 0, (6, 35): 0, (4, 55): 0, (2, 67): 0, (8, 50): 0, (7, 42): 0, (5, 54): 0, (6, 69): 0, (3, 69): 0, (8, 24): 0, (0, 20): 0, (0, 4): 0, (1, 1): 0, (8, 68): 0, (4, 10): 0, (2, 6): 0, (0, 58): 0, (5, 11): 0, (3, 23): 0, (1, 59): 0, (6, 0): 0, (4, 16): 0, (2, 32): 0, (7, 5): 0, (5, 21): 0, (3, 61): 0, (6, 26): 0, (4, 62): 0, (8, 57): 0, (7, 35): 0, (5, 63): 0, (6, 60): 0, (4, 68): 0, (8, 31): 0, (7, 57): 0, (5, 64): 0, (0, 27): 0, (1, 26): 0, (2, 1): 0, (0, 49): 0, (3, 28): 0, (1, 60): 0, (4, 31): 0, (2, 59): 0, (7, 2): 0, (5, 30): 0, (3, 34): 0, (6, 29): 0, (4, 37): 0, (8, 32): 0, (7, 24): 0, (5, 56): 0, (6, 55): 0, (4, 67): 0, (8, 6): 0, (7, 54): 0, (0, 18): 0, (1, 19): 0, (2, 24): 0, (0, 8): 0, (3, 5): 0, (1, 53): 0, (4, 6): 0, (2, 50): 0, (0, 46): 0, (5, 7): 0, (3, 43): 0, (1, 47): 0, (6, 20): 0, (4, 44): 0, (2, 44): 0, (8, 39): 0, (0, 68): 0, (5, 33): 0, (3, 49): 0, (6, 46): 0, (8, 13): 0, (7, 47): 0, (6, 64): 0, (8, 19): 0, (1, 20): 0, (2, 19): 0, (0, 15): 0, (3, 10): 0, (1, 14): 0, (4, 13): 0, (2, 13): 0, (0, 37): 0, (5, 0): 0, (3, 16): 0, (1, 32): 0, (6, 15): 0, (4, 43): 0, (2, 39): 0, (8, 46): 0, (7, 14): 0, (5, 42): 0, (3, 54): 0, (6, 33): 0, (4, 49): 0, (2, 65): 0, (8, 52): 0, (7, 36): 0, (5, 52): 0, (6, 59): 0, (8, 26): 0, (5, 69): 0, (0, 6): 0, (7, 69): 0, (1, 7): 0, (2, 4): 0, (0, 60): 0, (5, 9): 0, (3, 25): 0, (1, 57): 0, (6, 6): 0, (4, 18): 0, (2, 62): 0, (7, 7): 0, (5, 19): 0, (3, 63): 0, (6, 24): 0, (4, 56): 0, (8, 59): 0, (7, 29): 0, (5, 61): 0, (6, 50): 0, (8, 1): 0, (7, 59): 0, (0, 29): 0, (1, 24): 0, (2, 31): 0, (0, 51): 0, (7, 17): 0, (3, 30): 0, (1, 50): 0, (4, 25): 0, (2, 57): 0, (0, 41): 0, (5, 28): 0, (3, 36): 0, (6, 19): 0, (4, 39): 0, (8, 34): 0, (7, 26): 0, (5, 38): 0, (6, 53): 0, (1, 69): 0, (8, 8): 0, (7, 48): 0, (7, 65): 0, (1, 17): 0, (2, 22): 0, (0, 10): 0, (3, 7): 0, (1, 11): 0, (4, 0): 0, (2, 48): 0, (0, 32): 0, (5, 5): 0, (3, 45): 0, (1, 45): 0, (6, 10): 0, (4, 46): 0, (2, 42): 0, (8, 41): 0, (7, 19): 0, (5, 47): 0, (3, 51): 0, (6, 44): 0, (4, 52): 0, (2, 68): 0, (8, 15): 0, (7, 41): 0, (3, 64): 0, (8, 21): 0, (2, 17): 0, (0, 1): 0, (3, 12): 0, (1, 12): 0, (8, 65): 0, (4, 15): 0, (2, 11): 0, (0, 39): 0, (7, 23): 0, (5, 14): 0, (3, 18): 0, (1, 38): 0, (6, 13): 0, (4, 21): 0, (2, 37): 0, (7, 8): 0, (5, 40): 0, (3, 56): 0, (6, 39): 0, (4, 51): 0, (8, 54): 0, (7, 38): 0, (5, 50): 0, (6, 57): 0, (8, 28): 0, (7, 60): 0, (5, 67): 0, (0, 24): 0, (1, 5): 0, (2, 2): 0, (0, 62): 0, (3, 27): 0, (1, 63): 0, (6, 4): 0, (4, 28): 0, (2, 60): 0, (7, 1): 0, (5, 17): 0, (3, 33): 0, (6, 30): 0, (4, 58): 0, (8, 61): 0, (7, 31): 0, (5, 59): 0, (6, 48): 0, (4, 64): 0, (1, 66): 0, (8, 3): 0, (7, 53): 0, (0, 31): 0, (1, 30): 0, (2, 29): 0, (0, 53): 0, (3, 0): 0, (1, 48): 0, (4, 27): 0, (2, 55): 0, (0, 43): 0, (7, 21): 0, (5, 26): 0, (3, 38): 0, (5, 65): 0, (1, 42): 0, (6, 17): 0, (4, 33): 0, (8, 36): 0, (7, 20): 0, (5, 36): 0, (6, 43): 0, (8, 10): 0, (7, 50): 0, (7, 66): 0, (8, 16): 0, (7, 67): 0, (1, 23): 0, (2, 20): 0, (0, 12): 0, (3, 9): 0, (1, 9): 0, (4, 2): 0, (2, 14): 0, (0, 34): 0, (5, 3): 0, (3, 47): 0, (1, 35): 0, (6, 8): 0, (4, 40): 0, (2, 40): 0, (8, 43): 0, (7, 13): 0, (5, 45): 0, (3, 53): 0, (6, 34): 0, (4, 54): 0, (2, 66): 0, (8, 49): 0, (7, 43): 0, (5, 55): 0, (6, 68): 0, (3, 66): 0, (8, 23): 0, (0, 3): 0, (3, 14): 0, (1, 2): 0, (8, 67): 0, (4, 9): 0, (2, 9): 0, (0, 57): 0, (5, 12): 0, (3, 20): 0, (1, 36): 0, (6, 3): 0, (4, 23): 0, (2, 35): 0, (7, 10): 0, (5, 22): 0, (3, 58): 0, (6, 37): 0, (4, 61): 0, (8, 56): 0, (7, 32): 0, (5, 48): 0, (6, 63): 0, (8, 30): 0, (7, 62): 0, (7, 64): 0, (0, 26): 0, (1, 27): 0, (2, 0): 0, (0, 48): 0, (3, 29): 0, (1, 61): 0, (4, 30): 0, (2, 58): 0}, {(7, 3): 0.049278795144300225, (6, 9): 0.010051396848782757, (0, 7): 0.28869126898449293, (1, 6): 0.7953821666603123, (3, 7): 0.18039472837943882, (2, 5): 0.08401854487242666, (8, 5): 0.5063968949484626, (5, 8): 0.6737496734656315, (4, 0): 0.8037811571406756, (6, 7): 0.7544213725447123, (5, 5): 0.2928613623790248, (7, 6): 0.7917665389259329, (0, 4): 0.2977175276245042, (1, 1): 0.6125960431554089, (3, 2): 0.6809438383219367, (2, 6): 0.3970514094664075, (8, 2): 0.3444285795303108, (4, 5): 0.8846695172744765, (6, 0): 0.5614100109243334, (7, 5): 0.03797765629844285, (0, 1): 0.2087383946159015, (3, 1): 0.6233108363867792, (7, 8): 0.8224774088745009, (2, 1): 0.8134328128828687, (8, 9): 0.1504269241100672, (5, 1): 0.6267387535535983, (7, 2): 0.30565667049319445, (1, 5): 0.6847187812096047, (3, 6): 0.6967424633484247, (2, 2): 0.3941849938888923, (8, 6): 0.6894925560803226, (4, 1): 0.04984744360461635, (6, 4): 0.780422354345547, (5, 4): 0.3409584122152942, (7, 1): 0.6612523938736645, (0, 5): 0.6847627200437773, (1, 0): 0.9709150974948633, (0, 8): 0.20265511784958268, (3, 5): 0.14340734866425164, (2, 7): 0.7840248939125836, (8, 3): 0.35991708865704897, (4, 6): 0.35600042521538033, (6, 1): 0.34403592199796185, (5, 7): 0.2060960504691426, (7, 4): 0.5353525708183022, (0, 2): 0.24252987510078183, (1, 3): 0.054570563674991024, (4, 8): 0.9993360474904499, (3, 0): 0.7907407367199143, (2, 8): 0.327349062617582, (8, 0): 0.5990815227175489, (6, 2): 0.33164628362700266, (5, 0): 0.7321619949810647, (1, 4): 0.005381342591492366, (3, 9): 0.9633526268583869, (2, 3): 0.5783868857729323, (1, 9): 0.8784572188888577, (8, 7): 0.7756364173714229, (4, 2): 0.9142452882168264, (6, 5): 0.7377579550438217, (5, 3): 0.5658679664906601, (7, 0): 0.5475153593689351, (6, 8): 0.10002238596784807, (0, 6): 0.1314224891736836, (1, 7): 0.5021560836228396, (0, 9): 0.45558300946652497, (3, 4): 0.1586849753770142, (2, 4): 0.06820570568945761, (8, 4): 0.5473403277630758, (5, 9): 0.14382605398169102, (4, 7): 0.028137709217451623, (6, 6): 0.08302749695625589, (5, 6): 0.8189336900019373, (7, 7): 0.3250250656970306, (0, 3): 0.762001689955991, (1, 2): 0.31298595892224523, (4, 9): 0.006595642313717787, (3, 3): 0.0907816960867156, (2, 9): 0.97578355427596, (8, 1): 0.6430312257740721, (4, 4): 0.04655557595867521, (6, 3): 0.43678746490113374, (0, 0): 0.7193546563564629, (7, 9): 0.8483566471785475, (3, 8): 0.8906902666418179, (2, 0): 0.21408380226765056, (1, 8): 0.7044971272064283, (8, 8): 0.311763480170997, (4, 3): 0.21870047279811444, (5, 2): 0.46088121078034894}, {0: 0.17136262718775253, 1: 0.10118810112903638, 2: 0.11947767111214498, 3: 0.19108481056086954, 4: 0.1873494247955736, 5: 0.12726097446740187, 6: 0.19969976592294947, 7: 0.1021370416462077, 8: 0.12453109808724712}, {0: 0.7462470336002633, 1: 0.02214176340327867, 2: 0.7077002753129825, 3: 0.45806157997848396, 4: 0.678514141240499, 5: 0.36568814872314703, 6: 0.5245306172939272, 7: 0.15528740623933213, 8: 0.5700539257444325, 9: 0.7131147842927804}, {0: 0.003365897202354806, 1: 0.3463886498500619, 2: 0.21699272618878207, 3: 0.43576124465935395, 4: 0.8133352919860429, 5: 0.960894452521986, 6: 0.842379556061987, 7: 0.9695218568248749, 8: 0.06274767331001241, 9: 0.5385193154789347, 10: 0.49960903877748053, 11: 0.8013167605659509, 12: 0.8650967667329721, 13: 0.01031310669685681, 14: 0.6440152595587728, 15: 0.879431795297725, 16: 0.5163674824884243, 17: 0.6623786759745407, 18: 0.33772854125393403, 19: 0.7423226994145022, 20: 0.5068713396711859, 21: 0.8371070073294941, 22: 0.29280144336696756, 23: 0.8713284452838311, 24: 0.779329040519086, 25: 0.46625232631738645, 26: 0.9615383181249267, 27: 0.9213767165419512, 28: 0.17699269214893243, 29: 0.5354212965190674, 30: 0.20984132284900647, 31: 0.8543577534711831, 32: 0.7162313570792331, 33: 0.8906697756440575, 34: 0.6435704983867423, 35: 0.5926004913817045, 36: 0.08448219628494757, 37: 0.3483195151225278, 38: 0.2588395968676833, 39: 0.8268454431342359, 40: 0.7799298863567447, 41: 0.9250764100293891, 42: 0.3611682302769068, 43: 0.8515625441079303, 44: 0.6246945514575584, 45: 0.8970249372866925, 46: 0.6535029664405683, 47: 0.5730931023695143, 48: 0.6866754618589381, 49: 0.6955032235616848, 50: 0.5240343275229231, 51: 0.6647687556711611, 52: 0.5412151175215661, 53: 0.8804686667748076, 54: 0.23584611766813812, 55: 0.8102054994838637, 56: 0.9415978647921003, 57: 0.7587671450760821, 58: 0.6481179526923484, 59: 0.711298539005794, 60: 0.257078246830746, 61: 0.3658233485274327, 62: 0.3717501782287307, 63: 0.896074586149179, 64: 0.04871679807666984, 65: 0.23778119615958881, 66: 0.4092891148712009, 67: 0.007449099678760063, 68: 0.2256639233061669, 69: 0.9469613945140087}]
from itertools import *
from scipy import optimize as opt
from copy import deepcopy
+import sys as sy
+
+
error = 0.1
epsilon = 1E-10
vrate = 0.8
POS_NUL = 2
POSINF1 = 3
init = []
+fichier_init="config_initiale_default.txt"
beta = 1.3E-8
gamma = 55.54
delta = 0.2
+zeta = 0.1
amplifieur = 1
sigma2 = 3500
Bi = 5
vp = {}
for h in V:
if not ASYNC or random() < taux_succes:
- s = Rh[h]- mt.log(float(sigma2)/D)/(gamma*mt.pow(Ps[h],float(1)/3))
+ s = Rh[h]- mt.log(float(sigma2)/D)/(gamma*mt.pow(Ps[h],float(2)/3))
if abs(s) > mxg :
print "ds calcul v",abs(s),idxexp
mxg = abs(s)
Psp={}
#print "maj des des Psh"
def f_Ps(psh,h):
- #print "ds f_ps",psh, v[h]* mt.log(float(sigma2)/D)/(gamma*((psh**2)**(float(1)/3))) +la[h]*psh
- return v[h]* mt.log(float(sigma2)/D)/(gamma*mt.pow(float(2)/3)) +la[h]*psh
- for h in V:
- if not ASYNC or random() < taux_succes:
- lah = 0.05 if la[h] == 0 else la[h]
- rep = (float(2*v[h]*mt.log(float(sigma2)/D))/mt.pow(3*gamma*lah,float(3)/5))
- Psp[h] = epsilon if rep <= 0 else rep
- else :
+ #print "ds f_ps",psh, v[h]* mt.log(float(sigma2)/D)/(gamma*((psh**2)**(float(2)/3))) +la[h]*psh
+ return v[h]* mt.log(float(sigma2)/D)/(gamma*mt.pow(float(2)/3)) +la[h]*psh
+ for h in V:
+ if not ASYNC or random() < taux_succes:
+ """
+ lah = 0.05 if la[h] == 0 else la[h]
+ rep = mt.pow(float(2*v[h]*mt.log(float(sigma2)/D))/(3*gamma*lah),float(3)/5)
+ Psp[h] = epsilon if rep <= 0 else rep
+ """
+ t= float(-3*la[h]+mt.sqrt(9*(la[h]**2)+64*zeta*v[h]*mt.log(float(sigma2)/D)/gamma))/(16*zeta)
+ #print t
+ rep = mt.pow(t,float(3)/5)
+ Psp[h]=rep
+ else :
Psp[h] = Ps[h]
-def __evalue_maj_theta__():
+def initialisation_():
+ global u, v, la, w, theta , q, Ps, Rh, eta, x,init
+ fd = open(fichier_init,"r")
+ l= fd.readline()
+ init_p = eval(l)
+ print init_p
+ theta = omega
+ (q,Ps,Rh,eta,x,u,v,la,w) = tuple([deepcopy(x) for x in init_p])
+ init = [deepcopy(q),deepcopy(Ps),deepcopy(Rh),deepcopy(eta),
+ deepcopy(x),deepcopy(u),deepcopy(v),deepcopy(la),deepcopy(w)]
+
+
+
+def __evalue_maj_theta__(nbexp,out=False):
global u, v, la, w, theta , q, Ps, Rh, eta, x, valeurFonctionDuale
nbexp = 10
res = {}
itermax = 100000
def __maj_theta(k):
+ mem = []
om = omega/(mt.pow(k,0.75))
return om
for idxexp in range(nbexp):
mxg = 0
- initialisation()
+ if not(out):
+ initialisation()
+ else :
+ initialisation_()
+
k = 1
arret = False
sm = 0
if k%100 ==0 :
print "k:",k,"erreur sur q", errorq, "et q:",q
print "maxg=", mxg
+ mem = [deepcopy(q),deepcopy(Ps),deepcopy(Rh),deepcopy(eta),
+ deepcopy(x),deepcopy(u),deepcopy(v),deepcopy(la),deepcopy(w)]
+ if k%4500 == 0 :
+ print "#########\n",mem,"\#########\n"
+ if k%4600 == 0 :
+ print "#########\n",mem,"\#########\n"
+
+
+
if smax - sm > 500:
print "variation trop grande"
print "init"
print "nbre d'iteration trop grand"
print "init"
print init
- exit
+ sy.exit(1)
print "###############"
print k
import pylab as pb
from itertools import *
from scipy import optimize as opt
+from copy import deepcopy
+import sys as sy
-error = 0.01
+
+error = 0.1
epsilon = 1E-10
vrate = 0.8
p = 0.7
POS = 1
POS_NUL = 2
POSINF1 = 3
-
+init = []
+fichier_init="config_initiale_default.txt"
beta = 1.3E-8
gamma = 55.54
delta = 0.2
+zeta = 0.1
amplifieur = 1
sigma2 = 3500
Bi = 5
-def maj(k,maj_theta):
+def maj(k,maj_theta,mxg,idxexp):
# initialisation des operateurs lagrangiens
- global u, v, la, w, theta , q, Ps, Rh, eta, x, valeurFonctionDuale
-
-
+ global u, v, la, w, theta , q, Ps, Rh, eta, x, valeurFonctionDuale
+
+ smax = 0
#print "iteration",k
up = {}
for h in V:
for i in N:
- if not ASYNC or random() < taux_perte:
- up[(h,i)] = u[(h,i)]-theta*(eta[(h,i)]-sum([a[i][l]*x[(h,l)] for l in L]))
+ if not ASYNC or random() < taux_succes:
+ s = eta[(h,i)]-sum([a[i][l]*x[(h,l)] for l in L])
+ if abs(s) > mxg :
+ print "ds calcul u",abs(s),idxexp
+ mxg = abs(s)
+ smax = max(smax,abs(s))
+ up[(h,i)] = u[(h,i)]-theta*s
else :
up[(h,i)] = u[(h,i)]
vp = {}
for h in V:
- #print "vp",gamma*mt.pow(Ps[h],float(1)/3)
- #vp[h] = max(0,v[h]-theta*(Rh[h]- mt.log(float(sigma2)/D)/(gamma*mt.pow(Ps[h],float(1)/3))))
- if not ASYNC or random() < taux_perte:
- vp[h] = max(0,v[h]-theta*(Rh[h]- mt.log(float(sigma2)/D)/(gamma*mt.pow(Ps[h],float(1)/3))))
+ if not ASYNC or random() < taux_succes:
+ s = Rh[h]- mt.log(float(sigma2)/D)/(gamma*mt.pow(Ps[h],float(1)/3))
+ if abs(s) > mxg :
+ print "ds calcul v",abs(s),idxexp
+ mxg = abs(s)
+ smax = max(smax,abs(s))
+ vp[h] = max(0,v[h]-theta*s)
else :
vp[h] = v[h]
lap={}
for i in N:
- if not ASYNC or random() < taux_perte:
- resla = la[i]-theta*((q[i]*Bi -sum([aplus[i][l]*cs[l]*sum([x[(h,l)] for h in V]) for l in L])-cr*sum([amoins[i][l]*sum([x[(h,l)] for h in V]) for l in L])-psi(Ps,i)))
+ if not ASYNC or random() < taux_succes:
+ s = q[i]*Bi -sum([aplus[i][l]*cs[l]*sum([x[(h,l)] for h in V]) for l in L])-cr*sum([amoins[i][l]*sum([x[(h,l)] for h in V]) for l in L])-psi(Ps,i)
+ if abs(s) > mxg :
+ print "ds calcul la",abs(s),idxexp,i
+ mxg = abs(s)
+ smax = max(smax,abs(s))
+ resla = la[i]-theta*s
lap[i] = max(0,resla)
else :
lap[i] = la[i]
wp={}
for l in L:
- if not ASYNC or random() < taux_perte:
- wp[l] = w[l] + theta*(sum([a[i][l]*q[i] for i in N]))
+ if not ASYNC or random() < taux_succes:
+ s = sum([a[i][l]*q[i] for i in N])
+ if abs(s) > mxg :
+ print "ds calcul w",abs(s),idxexp
+ mxg = abs(s)
+ smax = max(smax,abs(s))
+ wp[l] = w[l] + theta*s
else :
wp[l] = w[l]
thetap = maj_theta(k)
- #print "k",k,"maj theta", thetap
-
qp={}
def f_q(qi,i):
return qi*qi + qi*fa
for i in N:
- if not ASYNC or random() < taux_perte:
+ if not ASYNC or random() < taux_succes:
c = -float(sum([a[i][l]*w[l] for l in L]) - la[i]*Bi)/(2*amplifieur)
rep = epsilon if c <= 0 else c
qp[i] = rep
#print "ds f_ps",psh, v[h]* mt.log(float(sigma2)/D)/(gamma*((psh**2)**(float(1)/3))) +la[h]*psh
return v[h]* mt.log(float(sigma2)/D)/(gamma*mt.pow(float(2)/3)) +la[h]*psh
for h in V:
- if not ASYNC or random() < taux_perte:
+ if not ASYNC or random() < taux_succes:
+
lah = 0.05 if la[h] == 0 else la[h]
- rep = (float(2*v[h]*mt.log(float(sigma2)/D))/mt.pow(3*gamma*lah,float(3)/5))
+ rep = mt.pow(float(2*v[h]*mt.log(float(sigma2)/D))/(3*gamma*lah),float(3)/5)
Psp[h] = epsilon if rep <= 0 else rep
+ """
+ t= float(-3*la[h]+mt.sqrt(9*la[h]**2+64*zeta*v[h]*mt.log(float(sigma2)/D)/gamma))/float(16*zeta)
+ #print t
+ rep = mt.pow(t,float(3)/5)
+ Psp[h]=rep
+ """
+############reprendre ici
+
else :
Psp[h] = Ps[h]
return delta*rh*rh-v[h]*rh-sum([u[(h,i)]*eta[(h,i)] for i in N])
for h in V:
- if not ASYNC or random() < taux_perte:
+ if not ASYNC or random() < taux_succes:
rep = float(v[h])/(2*delta)
Rhp[h] = 0 if rep < 0 else rep
else :
for h in V:
for l in L:
- if not ASYNC or random() < taux_perte:
+ if not ASYNC or random() < taux_succes:
rep = -float(cs[l]*sum([la[i]*aplus[i][l] for i in N]) +cr*sum([la[i]*amoins[i][l] for i in N])+sum([u[(h,i)]*a[i][l] for i in N]))/(2*delta)
xp[(h,l)] = 0 if rep < 0 else rep
else :
arret = abs(valeurFonctionDuale-valeurFonctionDualep) < error
- return (up,vp,lap,wp,thetap,etap,qp,Psp,Rhp,xp,valeurFonctionDualep,arret)
+ return (up,vp,lap,wp,thetap,etap,qp,Psp,Rhp,xp,valeurFonctionDualep,arret,mxg,smax)
def initialisation():
- global u, v, la, w, theta , q, Ps, Rh, eta, x, valeurFonctionDuale
+ global u, v, la, w, theta , q, Ps, Rh, eta, x,init
theta = omega
-
- # TODO Ahmed : initialiser avec qi >0 et somme (ail.qi) = 0 Ei/i = Ti
- #q = [0 for i in N]
q = {}
for i in N :
q[i] = 0.15 + random()*0.05
-
-
-
- #TODO Ahmed doit donner les valeurs initiales pour Ps
Ps= {}
for h in V :
Ps[h] = 0.2+random()*0.3
-
-
-
- #TODO Ahmed doit donner les valeurs initiales pour Rh
Rh = {}
for vi in V:
Rh[vi] = 0.1 + random()*0.1
-
-
eta = {}
for h in V :
for i in N:
eta[(h,i)]= etahi(h,i,Rh)
-
-
- # Ok pour 0
x={}
for h in V :
for l in L:
- x[(h,l)]=0#random()
+ x[(h,l)]=0
for l in L:
w[l] = random()
+ init = [deepcopy(q),deepcopy(Ps),deepcopy(Rh),deepcopy(eta),
+ deepcopy(x),deepcopy(u),deepcopy(v),deepcopy(la),deepcopy(w)]
-def __evalue_maj_theta__():
+
+def initialisation_():
+ global u, v, la, w, theta , q, Ps, Rh, eta, x,init
+ fd = open(fichier_init,"r")
+ l= fd.readline()
+ init_p = eval(l)
+ print init_p
+ theta = omega
+ (q,Ps,Rh,eta,x,u,v,la,w) = tuple([deepcopy(x) for x in init_p])
+ init = [deepcopy(q),deepcopy(Ps),deepcopy(Rh),deepcopy(eta),
+ deepcopy(x),deepcopy(u),deepcopy(v),deepcopy(la),deepcopy(w)]
+
+
+
+def __evalue_maj_theta__(nbexp,out=False):
global u, v, la, w, theta , q, Ps, Rh, eta, x, valeurFonctionDuale
- nbexp = 50
res = {}
m = []
+ itermax = 100000
+
def __maj_theta(k):
+ mem = []
om = omega/(mt.pow(k,0.75))
return om
for idxexp in range(nbexp):
-
- initialisation()
+ mxg = 0
+ if not(out):
+ initialisation()
+ else :
+ initialisation_()
+
k = 1
arret = False
- while k < 1000000 and not arret :
- (u,v,la,w,theta,eta,q,Ps,Rh,x,valeurFonctionDuale,ar)=maj(k,__maj_theta)
- errorq = abs(min(q.values())-max(q.values()))
+ sm = 0
+ while k < itermax and not arret :
+ (u,v,la,w,theta,eta,q,Ps,Rh,x,valeurFonctionDuale,ar,mxg,smax)=maj(k,__maj_theta,mxg,idxexp)
+ errorq = (max(q.values()) - min(q.values()))/min(q.values())
arret = errorq < error
k+=1
- if k%5000 ==0 :
+ variation = "+" if smax > sm else "-"
+ sm = smax
+ print variation,
+ if k%100 ==0 :
print "k:",k,"erreur sur q", errorq, "et q:",q
+ print "maxg=", mxg
+ mem = [deepcopy(q),deepcopy(Ps),deepcopy(Rh),deepcopy(eta),
+ deepcopy(x),deepcopy(u),deepcopy(v),deepcopy(la),deepcopy(w)]
+ if k%4500 == 0 :
+ print "#########\n",mem,"\#########\n"
+ if k%4600 == 0 :
+ print "#########\n",mem,"\#########\n"
+
+
+
+ if smax - sm > 500:
+ print "variation trop grande"
+ print "init"
+ print init
+ sy.exit(0)
+ if k == itermax:
+ print "nbre d'iteration trop grand"
+ print "init"
+ print init
+ sy.exit(1)
+
print "###############"
print k
print "###############"
m += [k]
+
print (min(m),max(m),float(sum(m))/nbexp,m),m
-#ASYNC = False
-#__evalue_maj_theta()
-ASYNC = True
-taux_perte = 0.9
-__evalue_maj_theta__()
+ASYNC = False
+__evalue_maj_theta__(1,True)
+
+
+
+#ASYNC = True
+#taux_succes = 0.9
+#__evalue_maj_theta__()
"""