summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/tablor/tablor.html
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/tablor/tablor.html')
-rw-r--r--macros/latex/contrib/tablor/tablor.html3321
1 files changed, 3321 insertions, 0 deletions
diff --git a/macros/latex/contrib/tablor/tablor.html b/macros/latex/contrib/tablor/tablor.html
new file mode 100644
index 0000000000..1d5c91754d
--- /dev/null
+++ b/macros/latex/contrib/tablor/tablor.html
@@ -0,0 +1,3321 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<!-- Created by htmlize-1.34 in css mode. -->
+<html>
+ <head>
+ <title>tablor.sty</title>
+ <style type="text/css">
+ <!--
+ body {
+ color: #cdba96;
+ background-color: #0d0d0d;
+ font-weight: bold;
+ }
+ .comment {
+ /* font-lock-comment-face */
+ color: #ffd700;
+ background-color: #525252;
+ }
+ .comment-delimiter {
+ /* font-lock-comment-delimiter-face */
+ color: #ffd700;
+ background-color: #525252;
+ }
+ .constant {
+ /* font-lock-constant-face */
+ color: #9932cc;
+ font-weight: bold;
+ }
+ .font-latex-math {
+ /* font-latex-math-face */
+ color: #436eee;
+ }
+ .font-latex-sedate {
+ /* font-latex-sedate-face */
+ color: #d3d3d3;
+ }
+ .font-latex-subscript {
+ /* font-latex-subscript-face */
+ font-size: 80%;
+ }
+ .font-latex-superscript {
+ /* font-latex-superscript-face */
+ font-size: 80%;
+ }
+ .font-latex-warning {
+ /* font-latex-warning-face */
+ color: #8b0000;
+ font-weight: bold;
+ }
+ .function-name {
+ /* font-lock-function-name-face */
+ color: #87ceeb;
+ }
+ .keyword {
+ /* font-lock-keyword-face */
+ color: #6495ed;
+ font-weight: bold;
+ }
+ .variable-name {
+ /* font-lock-variable-name-face */
+ color: #98fb98;
+ }
+
+ a {
+ color: inherit;
+ background-color: inherit;
+ font: inherit;
+ text-decoration: inherit;
+ }
+ a:hover {
+ text-decoration: underline;
+ }
+ -->
+ </style>
+ </head>
+ <body>
+ <pre>
+<span class="font-latex-sedate">\NeedsTeXFormat</span>{LaTeX2e}[1995/12/01]
+<span class="font-latex-sedate">\ProvidesPackage</span>{tablor}[09/05/2010 v4.07 la machine a creer des tableaux de signes et variations]
+
+<span class="comment-delimiter">% </span><span class="font-latex-sedate"><span class="comment">\copyleft</span></span><span class="comment"> Connan le Barbare (aka Guillaume Connan) </span><span class="font-latex-sedate"><span class="comment">\copyright</span></span><span class="comment">
+</span><span class="comment-delimiter">% </span><span class="comment">This work may be distributed and/or mofified under the conditions
+</span><span class="comment-delimiter">% </span><span class="comment">or the LaTeX Project Public Licence, either v1.3 or (at your option)
+</span><span class="comment-delimiter">% </span><span class="comment">any later version. The latest version is in
+</span><span class="comment-delimiter">% </span><span class="comment">http://www.latex-project.org/lppl/
+</span><span class="comment-delimiter">% </span><span class="comment">This work consists of the files tablor.sty, tablor-xetex.sty, tablor.cfg, tablor.tex,
+</span><span class="comment-delimiter">% </span><span class="comment">tablor.pdf and tablor.html
+</span>
+
+<span class="comment-delimiter">%% </span><span class="comment">Cree 16 environnements :
+</span><span class="comment-delimiter">%% </span><span class="comment">tableau de signes de 2 facteurs affines
+</span><span class="comment-delimiter">% </span><span class="font-latex-sedate"><span class="comment">\begin</span></span><span class="comment">{TSa}
+</span><span class="comment-delimiter">% </span><span class="comment">TSa(-2,3,-1,5,</span><span class="font-latex-sedate"><span class="comment">\tv</span></span><span class="comment">);
+</span><span class="comment-delimiter">% </span><span class="font-latex-sedate"><span class="comment">\end</span></span><span class="comment">{TSa}
+</span><span class="comment-delimiter">% </span><span class="comment">%%%%%% Pour des tableaux de plus de 2 facteurs
+</span><span class="comment-delimiter">%</span><span class="comment">
+</span><span class="comment-delimiter">% </span><span class="font-latex-sedate"><span class="comment">\begin</span></span><span class="comment">{TS}
+</span><span class="comment-delimiter">% </span><span class="comment">TS("P",[-2*x+3,x^2-1,x^2+1,x-1,x^2-2],[a,b],n,</span><span class="font-latex-sedate"><span class="comment">\tv</span></span><span class="comment">);
+</span><span class="comment-delimiter">% </span><span class="font-latex-sedate"><span class="comment">\end</span></span><span class="comment">{TS}
+</span><span class="comment-delimiter">%</span><span class="comment">
+</span><span class="comment-delimiter">% </span><span class="comment">pour les tableaux de signes avec quotient
+</span><span class="comment-delimiter">%</span><span class="font-latex-sedate"><span class="comment">\begin</span></span><span class="comment">{TSq}
+</span><span class="comment-delimiter">%</span><span class="comment">TSq("Q",[-2*x+3,-4*x+5],[x^2-16,x-2],[a,b],n,</span><span class="font-latex-sedate"><span class="comment">\tv</span></span><span class="comment">)
+</span><span class="comment-delimiter">%%</span><span class="font-latex-sedate"><span class="comment">\end</span></span><span class="comment">{TSq}
+</span><span class="comment-delimiter">% </span><span class="comment">un tableau de variation :
+</span><span class="comment-delimiter">%</span><span class="comment">
+</span><span class="comment-delimiter">% </span><span class="comment">pour les tableaux de signes &#224; une seule ligne
+</span><span class="comment-delimiter">% </span><span class="font-latex-sedate"><span class="comment">\begin</span></span><span class="comment">{TSc}
+</span><span class="comment-delimiter">% </span><span class="comment">TSc((x+10)/((x-5)*(x-2)),[-10,5],[2,5],n,0)
+</span><span class="comment-delimiter">% </span><span class="font-latex-sedate"><span class="comment">\end</span></span><span class="comment">{TSc}
+</span><span class="comment-delimiter">%</span><span class="comment">
+</span><span class="comment-delimiter">%</span><span class="comment">
+</span><span class="comment-delimiter">% </span><span class="font-latex-sedate"><span class="comment">\begin</span></span><span class="comment">{TV}
+</span><span class="comment-delimiter">% </span><span class="comment">TV([0,+infinity],[0],"h","x",ln(x)-(ln(x))^2,1,n,</span><span class="font-latex-sedate"><span class="comment">\tv</span></span><span class="comment">)
+</span><span class="comment-delimiter">% </span><span class="font-latex-sedate"><span class="comment">\end</span></span><span class="comment">{TV}
+</span><span class="comment-delimiter">%</span><span class="comment">
+</span><span class="comment-delimiter">% </span><span class="comment">tableau de variation avec liste de valeurs
+</span><span class="comment-delimiter">% </span><span class="font-latex-sedate"><span class="comment">\begin</span></span><span class="comment">{TVS}
+</span><span class="comment-delimiter">% </span><span class="comment">TVS([1,2,3,4],[-1,-infinity,+infinity,2,9],[2],"f","x",</span><span class="font-latex-sedate"><span class="comment">\tv</span></span><span class="comment">)
+</span><span class="comment-delimiter">% </span><span class="font-latex-sedate"><span class="comment">\end</span></span><span class="comment">{TVS}
+</span><span class="comment-delimiter">%</span><span class="comment">
+</span><span class="comment-delimiter">%</span><span class="comment">
+</span><span class="comment-delimiter">% </span><span class="comment">tableau de variation avec zones interdites
+</span><span class="comment-delimiter">%</span><span class="comment">
+</span><span class="comment-delimiter">% </span><span class="font-latex-sedate"><span class="comment">\begin</span></span><span class="comment">{TVZ}
+</span><span class="comment-delimiter">% </span><span class="comment">TVZ([-infinity,+infinity],[],[[-1,1]],"f","x",sqrt(x^2-1),1,n,</span><span class="font-latex-sedate"><span class="comment">\tv</span></span><span class="comment">)
+</span><span class="comment-delimiter">% </span><span class="font-latex-sedate"><span class="comment">\end</span></span><span class="comment">{TVZ}
+</span><span class="comment-delimiter">%</span><span class="comment">
+</span><span class="comment-delimiter">%</span><span class="comment">
+</span><span class="comment-delimiter">% </span><span class="comment">tableau avec valeurs intermediares
+</span><span class="comment-delimiter">%</span><span class="font-latex-sedate"><span class="comment">\begin</span></span><span class="comment">{TVI}
+</span><span class="comment-delimiter">%</span><span class="comment">TVI([-1,+infinity],[-1],"f","x",x2/sqrt(x+1)-1,1,2,n,</span><span class="font-latex-sedate"><span class="comment">\tv</span></span><span class="comment">)
+</span><span class="comment-delimiter">%</span><span class="font-latex-sedate"><span class="comment">\end</span></span><span class="comment">{TVI}
+</span><span class="comment-delimiter">%%%</span><span class="comment">
+</span><span class="comment-delimiter">% </span><span class="comment">tableau avec valeurs intermediares et racines exactes
+</span><span class="comment-delimiter">%</span><span class="font-latex-sedate"><span class="comment">\begin</span></span><span class="comment">{TVIex}
+</span><span class="comment-delimiter">%</span><span class="comment">TVIex([-1,+infinity],[-1],"f","x",x2/sqrt(x+1)-1,1,2,n,</span><span class="font-latex-sedate"><span class="comment">\tv</span></span><span class="comment">)
+</span><span class="comment-delimiter">%</span><span class="font-latex-sedate"><span class="comment">\end</span></span><span class="comment">{TVIex}
+</span><span class="comment-delimiter">%%%</span><span class="comment">
+</span><span class="comment-delimiter">%</span><span class="comment">
+</span><span class="comment-delimiter">%</span><span class="comment">
+</span><span class="comment-delimiter">% </span><span class="comment">tableau de variations avec f' sans zero formel
+</span><span class="comment-delimiter">%</span><span class="font-latex-sedate"><span class="comment">\begin</span></span><span class="comment">{TVapp}
+</span><span class="comment-delimiter">% </span><span class="comment">TVapp([0,+infinity],[0],"g","x",ln(x)-x*exp(2-x),1,</span><span class="font-latex-sedate"><span class="comment">\tv</span></span><span class="comment">)
+</span><span class="comment-delimiter">% </span><span class="font-latex-sedate"><span class="comment">\end</span></span><span class="comment">{TVapp}
+</span><span class="comment-delimiter">%</span><span class="comment">
+</span><span class="comment-delimiter">%</span><span class="comment">
+</span><span class="comment-delimiter">% </span><span class="comment">tableau de variations avec f' sans zero formel
+</span><span class="comment-delimiter">%</span><span class="font-latex-sedate"><span class="comment">\begin</span></span><span class="comment">{TVIapp}
+</span><span class="comment-delimiter">% </span><span class="comment">TVIapp([0,+infinity],[0],"g","x",ln(x)-x*exp(2-x),1,0,</span><span class="font-latex-sedate"><span class="comment">\tv</span></span><span class="comment">)
+</span><span class="comment-delimiter">% </span><span class="font-latex-sedate"><span class="comment">\end</span></span><span class="comment">{TVIapp}
+</span><span class="comment-delimiter">%</span><span class="comment">
+</span><span class="comment-delimiter">%</span><span class="comment">
+</span><span class="comment-delimiter">%%%</span><span class="comment">
+</span><span class="comment-delimiter">% </span><span class="comment">et leurs pendants etoiles qui permettent l'affichage intermediaire du
+</span><span class="comment-delimiter">% </span><span class="comment">fichier metapost pour le modifier
+</span><span class="comment-delimiter">%</span><span class="comment">
+</span><span class="comment-delimiter">%</span><span class="comment">
+</span><span class="comment-delimiter">% </span><span class="comment">Courbes parametrees
+</span><span class="comment-delimiter">% </span><span class="font-latex-sedate"><span class="comment">\begin</span></span><span class="comment">{TVP}
+</span><span class="comment-delimiter">% </span><span class="comment">TVP([-infinity,+infinity],[[-1,2],[-1]],["x","y"],"t",[t^2/((t+1)*(t-2)),t^2*(t+2)/(t+1)],1,n,</span><span class="font-latex-sedate"><span class="comment">\tv</span></span><span class="comment">)
+</span><span class="comment-delimiter">% </span><span class="font-latex-sedate"><span class="comment">\end</span></span><span class="comment">{TVP}
+</span><span class="comment-delimiter">%</span><span class="comment">
+</span><span class="comment-delimiter">%</span><span class="comment">
+</span><span class="comment-delimiter">% </span><span class="font-latex-sedate"><span class="comment">\begin</span></span><span class="comment">{TVP}
+</span><span class="comment-delimiter">% </span><span class="comment">TVP([0,pi/2],[[],[]],["x","y"],"t",[2*cos(t),sin(2*t)],1,t,</span><span class="font-latex-sedate"><span class="comment">\tv</span></span><span class="comment">)
+</span><span class="comment-delimiter">% </span><span class="font-latex-sedate"><span class="comment">\end</span></span><span class="comment">{TVP}
+</span><span class="comment-delimiter">% </span><span class="comment">%
+</span>
+<span class="comment-delimiter">% </span><span class="comment">Fonctions prolongeables par continuit&#233;
+</span><span class="comment-delimiter">% </span><span class="comment">TVP([intervalles d'&#233;tude],[valeurs prolongeables],[valeurs interdites pour f'],"g","t",e^(-1/x^2),1,n,</span><span class="font-latex-sedate"><span class="comment">\tv</span></span><span class="comment">);
+</span>
+
+<span class="comment-delimiter">% </span><span class="font-latex-sedate"><span class="comment">\begin</span></span><span class="comment">{TVPC}
+</span><span class="comment-delimiter">% </span><span class="comment">TVPC([-infinity,+infinity],[0],[0],"g","t",e^(-1/x^2),1,n,</span><span class="font-latex-sedate"><span class="comment">\tv</span></span><span class="comment">);
+</span><span class="comment-delimiter">% </span><span class="font-latex-sedate"><span class="comment">\end</span></span><span class="comment">{TVPC}
+</span>
+
+
+
+
+<span class="comment-delimiter">%% </span><span class="comment">extensions requises
+</span><span class="comment-delimiter">%% </span><span class="comment">Il faudra rajouter dans le preambule </span><span class="font-latex-sedate"><span class="comment">\usepackage</span></span><span class="comment">{graphicx} si vous
+</span><span class="comment-delimiter">%% </span><span class="comment">ne l'avez pas de base
+</span>
+
+<span class="font-latex-sedate">\RequirePackage</span>{filecontents}
+<span class="font-latex-sedate">\RequirePackage</span>{ifthen}
+<span class="font-latex-sedate">\RequirePackage</span>{fancyvrb}
+<span class="font-latex-sedate">\RequirePackage</span>{ifpdf}
+
+<span class="font-latex-sedate">\fvset</span>{gobble=0}
+
+<span class="comment-delimiter">% </span><span class="comment">option xcas present
+</span>
+
+<span class="font-latex-sedate">\newboolean</span>{xcas}<span class="font-latex-sedate">\setboolean</span>{xcas}{false}
+<span class="font-latex-sedate">\DeclareOption</span>{xcas}{<span class="font-latex-sedate">\setboolean</span>{xcas}{true}}
+
+<span class="comment-delimiter">%% </span><span class="comment">Initialisation du choix d'OS
+</span><span class="font-latex-sedate">\newboolean</span>{windows}<span class="font-latex-sedate">\setboolean</span>{windows}{false}
+<span class="font-latex-sedate">\DeclareOption</span>{windows}{<span class="font-latex-sedate">\setboolean</span>{windows}{true}}
+
+<span class="font-latex-sedate">\ProcessOptions</span><span class="font-latex-sedate">\relax</span>
+
+
+
+<span class="comment-delimiter">%% </span><span class="comment">on configure tablor dans un fichier exterieur pour la plateforme
+</span><span class="comment-delimiter">%% </span><span class="comment">et l'editeur
+</span>
+<span class="font-latex-sedate">\IfFileExists</span>{tablor.cfg}{<span class="font-latex-sedate"><span class="keyword">\input</span></span><span class="constant">{tablor.cfg}</span>}<span class="comment">%</span><span class="font-latex-sedate"><span class="comment">\typeout</span></span><span class="comment">{pas de fichier tablor.cfg}}
+</span>
+
+<span class="comment-delimiter">%% </span><span class="comment">Definit des commandes disque selon l'OS utilise
+</span><span class="font-latex-sedate">\ifthenelse</span>{<span class="font-latex-sedate">\boolean</span>{windows}}<span class="comment">%
+</span> {<span class="font-latex-sedate"><span class="keyword">\newcommand</span></span><span class="function-name">{</span><span class="font-latex-sedate"><span class="function-name">\rem</span></span><span class="function-name">}</span>{DEL } <span class="font-latex-sedate"><span class="keyword">\newcommand</span></span><span class="function-name">{</span><span class="font-latex-sedate"><span class="function-name">\cat</span></span><span class="function-name">}</span>{TYPE }
+ <span class="font-latex-sedate"><span class="keyword">\newcommand</span></span><span class="function-name">{</span><span class="font-latex-sedate"><span class="function-name">\cp</span></span><span class="function-name">}</span>{COPY } <span class="font-latex-sedate"><span class="keyword">\newcommand</span></span><span class="function-name">{</span><span class="font-latex-sedate"><span class="function-name">\echod</span></span><span class="function-name">}</span>{ECHO }
+ <span class="font-latex-sedate"><span class="keyword">\newcommand</span></span><span class="function-name">{</span><span class="font-latex-sedate"><span class="function-name">\echof</span></span><span class="function-name">}</span>{ }}<span class="comment">%
+</span> {<span class="font-latex-sedate"><span class="keyword">\newcommand</span></span><span class="function-name">{</span><span class="font-latex-sedate"><span class="function-name">\rem</span></span><span class="function-name">}</span>{rm }<span class="font-latex-sedate"><span class="keyword">\newcommand</span></span><span class="function-name">{</span><span class="font-latex-sedate"><span class="function-name">\cat</span></span><span class="function-name">}</span>{cat }
+ <span class="font-latex-sedate"><span class="keyword">\newcommand</span></span><span class="function-name">{</span><span class="font-latex-sedate"><span class="function-name">\cp</span></span><span class="function-name">}</span>{cp } <span class="font-latex-sedate"><span class="keyword">\newcommand</span></span><span class="function-name">{</span><span class="font-latex-sedate"><span class="function-name">\echod</span></span><span class="function-name">}</span>{echo "}
+ <span class="font-latex-sedate"><span class="keyword">\newcommand</span></span><span class="function-name">{</span><span class="font-latex-sedate"><span class="function-name">\echof</span></span><span class="function-name">}</span>{"}}
+
+
+
+
+
+
+
+<span class="comment-delimiter">%% </span><span class="comment">pour ceux compilant via pdflatex
+</span>
+<span class="font-latex-sedate">\ifpdf</span>
+<span class="font-latex-sedate">\DeclareGraphicsRule</span>{*}{mps}{*}{}
+<span class="font-latex-sedate">\fi</span>
+
+<span class="comment-delimiter">%% </span><span class="comment">pour nettoyer les fichiers auxiliaires
+</span>
+<span class="font-latex-sedate">\AtEndDocument</span>{<span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="font-latex-sedate">\rem</span> *.user XCas* Xcas* *.mpx}
+ }
+
+
+
+
+<span class="comment-delimiter">%% </span><span class="comment">Pour clore les fichiers metapost
+</span>
+
+ <span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>{queue.mp}
+
+ end
+
+ <span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
+
+
+
+<span class="comment-delimiter">%% </span><span class="comment">Nettoie les fichiers log dont le nom depend du choix de l'utilisateur
+</span><span class="comment-delimiter">%% </span><span class="comment">Par defaut, c'est le nom du fichier tex courant (</span><span class="font-latex-sedate"><span class="comment">\jobname</span></span><span class="comment">)
+</span><span class="comment-delimiter">%% </span><span class="comment">Cl&#244;t le fichier metapost contenant le recapitulatif de tous les tableaux
+</span>
+
+
+<span class="font-latex-sedate"><span class="keyword">\newcommand</span></span><span class="function-name">{</span><span class="font-latex-sedate"><span class="function-name">\nettoyer</span></span><span class="function-name">}</span>[1][<span class="font-latex-sedate">\jobname</span>]<span class="comment">%
+</span>{<span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="font-latex-sedate">\rem</span> #1.Tab.log queue.mp enteteMP.cfg session.tex config.cxx}
+}
+
+
+
+
+<span class="comment-delimiter">%% </span><span class="comment">Donne comme prefixe aux tableaux le prefixe courant
+</span><span class="comment-delimiter">%% </span><span class="comment">Peut-&#234;tre modifie par </span><span class="font-latex-sedate"><span class="comment">\initablor</span></span><span class="comment">
+</span>
+<span class="font-latex-sedate"><span class="keyword">\newcommand</span></span><span class="function-name">{</span><span class="font-latex-sedate"><span class="function-name">\nomtravail</span></span><span class="function-name">}</span>{<span class="font-latex-sedate">\jobname</span>}
+
+<span class="comment-delimiter">%% </span><span class="comment">initialise les compteurs
+</span>
+<span class="font-latex-sedate"><span class="keyword">\newcounter</span></span><span class="function-name">{TVn}</span>
+<span class="font-latex-sedate"><span class="keyword">\newcommand</span></span><span class="function-name">{</span><span class="font-latex-sedate"><span class="function-name">\tv</span></span><span class="function-name">}</span>{<span class="font-latex-sedate">\theTVn</span>}
+
+<span class="font-latex-sedate"><span class="keyword">\newcounter</span></span><span class="function-name">{TVnbis}</span>
+<span class="font-latex-sedate"><span class="keyword">\newcommand</span></span><span class="function-name">{</span><span class="font-latex-sedate"><span class="function-name">\tvbis</span></span><span class="function-name">}</span>{<span class="font-latex-sedate">\theTVnbis</span>}
+
+
+
+<span class="comment-delimiter">%% </span><span class="comment">permet de donner un prefixe aux tableaux produits (</span><span class="font-latex-sedate"><span class="comment">\jobname</span></span><span class="comment"> par defaut)
+</span><span class="comment-delimiter">%% </span><span class="comment">effectue quelques verifications :
+</span>
+
+<span class="font-latex-sedate"><span class="keyword">\newcommand</span></span><span class="function-name">{</span><span class="font-latex-sedate"><span class="function-name">\initablor</span></span><span class="function-name">}</span>[1][<span class="font-latex-sedate">\jobname</span>]{<span class="comment">%
+</span><span class="font-latex-sedate"><span class="keyword">\renewcommand</span></span><span class="function-name">{</span><span class="font-latex-sedate"><span class="function-name">\nomtravail</span></span><span class="function-name">}</span>{#1}<span class="comment">% Arret du nom des tableaux
+</span><span class="font-latex-sedate"><span class="keyword">\setcounter</span></span><span class="variable-name">{TVn}{0}</span><span class="comment">% Initialisation du compteur de tableaux.
+</span><span class="font-latex-sedate">\ifthenelse</span>{<span class="font-latex-sedate">\boolean</span>{xcas}}<span class="comment">% Avec l'option XCas
+</span>{<span class="font-latex-sedate">\IfFileExists</span>{<span class="font-latex-sedate">\nomtravail</span>_Tab.mp}<span class="comment">% Si Tableaux.mp est present...
+</span> {<span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="font-latex-sedate">\rem</span> <span class="font-latex-sedate">\nomtravail</span>_Tab.mp}}<span class="comment">% le detruire
+</span> {}<span class="comment">%
+</span> <span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="font-latex-sedate">\cp</span> enteteMP.cfg <span class="font-latex-sedate">\nomtravail</span>_Tab.mp}<span class="comment">% Reconstituer l'ent&#234;te de Tableaux.mp
+</span>}
+{<span class="font-latex-sedate">\IfFileExists</span>{<span class="font-latex-sedate">\nomtravail</span>_Tab.mp}<span class="comment">% Sans l'option XCas, si
+</span> <span class="comment">% Tableaux.mp existe
+</span>{<span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{mpost -interaction=batchmode <span class="font-latex-sedate">\nomtravail</span>_Tab}}<span class="comment">% l'executer pour reconstituer les figures
+</span>{<span class="font-latex-sedate">\PackageWarning</span>{tablor}{Pas de source metapost pour creer les tableaux.}}<span class="comment">% sinon message d'erreur
+</span> <span class="comment">% (mais pas d'arret car les tableaux
+</span> <span class="comment">% peuvent &#234;tre presents )
+</span>}}<span class="comment">%
+</span>
+
+
+<span class="comment-delimiter">%% </span><span class="comment">commande pour lancer giac selon l'OS
+</span>
+<span class="font-latex-sedate">\makeatletter</span>
+<span class="font-latex-sedate"><span class="keyword">\newcommand</span></span><span class="function-name">{</span><span class="font-latex-sedate"><span class="function-name">\executGiacmp</span></span><span class="function-name">}</span>[1]{<span class="comment">%
+</span><span class="font-latex-sedate">\ifthenelse</span>{<span class="font-latex-sedate">\boolean</span>{windows}}<span class="comment">%
+</span>{<span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{giac #1 }}<span class="comment">%
+</span>{<span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{giac &lt;#1 }}}
+<span class="font-latex-sedate">\makeatother</span>
+
+
+
+
+<span class="comment-delimiter">%%%</span><span class="comment">
+</span><span class="comment-delimiter">%</span><span class="comment">
+</span><span class="comment-delimiter">%%% </span><span class="comment">LES SCRIPTS GIAC/XCAS
+</span><span class="comment-delimiter">%</span><span class="comment">
+</span><span class="comment-delimiter">%%%</span><span class="comment">
+</span>
+
+
+
+<span class="comment-delimiter">%%</span><span class="comment">
+</span><span class="comment-delimiter">%% </span><span class="comment">Code giac/Xcas pour les Tableaux de Variations
+</span><span class="comment-delimiter">%%</span><span class="comment">
+</span>
+
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>{XcasTV.cxx}
+TV(L,F,nom,nomv,f,ftt,trigo,nmr):={
+nl:=size(L);
+f:=unapply(f,x);
+fp:=function_diff(f);
+Z:=concat(L,F);
+S:=[];
+
+
+if(trigo==t){
+all_trig_solutions:=1;
+reset_solve_counter(-1,-1);
+SS:=solve(factor(simplify(fp(x))),x);
+ns:=size(SS);
+for(k:=0;k&lt;ns;k++){
+m:=0;
+while(evalf(simplify(subst(SS[k],n_1=m)))&lt;=evalf(L[nl-1])){
+S:=concat(S,simplify(subst(SS[k],n_1=m)));m:=m+1;
+};m:=-1;
+while(evalf(subst(SS[k],n_1=m))&gt;=L[0]){
+S:=concat(S,simplify(subst(SS[k],n_1=m)));m:=m-1;
+}
+}
+}else{
+S:=solve(factor(simplify(fp(x))),x);
+}
+
+
+ si size(S)&gt;0 alors pour j de 0 jusque size(S)-1 faire
+ qq:=member(simplify(S[j]),Z)==0;
+ kk:=(evalf(S[j])&gt;=evalf(L[0])) and (evalf(S[j])&lt;=evalf(L[nl-1]));
+ if(kk==1){if(qq==1){Z:=append(Z,simplify(S[j]))}};
+ fpour
+ fsi;
+Z:=sort(Z);
+nz:=size(Z);
+
+
+ tantque evalf(Z[0])==evalf(Z[1]) faire Z:=Z[1..nz-1];nz:=size(Z);
+ ftantque;
+
+
+
+
+
+
+
+ si size(S)&gt;0 alors pour j de 0 jusque size(S)-1 faire
+ kk:=(evalf(S[j])&gt;=evalf(L[0])) and (evalf(S[j])&lt;=evalf(L[nl-1]));
+ if(kk==1){Z:=append(Z,simplify(S[j]))};
+ fpour
+ fsi;
+
+
+Z:=sort([op(set[op(Z)])]);
+
+nz:=size(Z);
+l0:=" newLigneVariables(btex <span class="font-latex-math">$"+nomv+"$</span> etex);";lp:=" "; lf:=" ";lsp:=" ";
+pour m de 0 jusque nz-1 faire l0:=l0+"val(btex <span class="font-latex-math">$"+latex(Z[m])+"$</span> etex);
+";fpour;
+
+ k0:= evalf(limit(f(x),x=Z[0],1))&gt; evalf(limit(f(x),x=Z[1],-1));
+ kz:=evalf(limit(f(x),x=Z[nz-1],-1))&gt; evalf(limit(f(x),x=Z[nz-2],1));
+
+lsi:=lsic+nom+"'("+nomv+")}<span class="font-latex-math">$ etex);"+
+ if(Z[0]==-infinity){if(sign(evalf(fp(if(Z[1]==+infinity){0}else{Z[1]-10^</span><span class="font-latex-superscript"><span class="font-latex-math">(</span></span><span class="font-latex-math">-5)})))==1.0){"plus;"}else{"moins;"}}else{if(member(Z[0],F)==0){
+ if(fp(Z[0])==0){"valBarre(btex 0 etex);"}else{" "}+
+ if(evalf(sign(fp(Z[0]+10^</span><span class="font-latex-superscript"><span class="font-latex-math">(</span></span><span class="font-latex-math">-5))))==1.0){"plus;"}else{"moins;"}}else{"nonDefBarre;"+
+ if(evalf(sign(fp((Z[0]+10^</span><span class="font-latex-superscript"><span class="font-latex-math">(</span></span><span class="font-latex-math">-5)))))==1.0){"plus;"}else{"moins;"} }}
+
+if(nz&gt;2){ for(r:=1; r&lt;=nz-2;r++){ ksp:=evalf(fp(Z[r]+0.1))&gt;0;
+ lsp:=lsp+if(member(Z[r],F)==0){"valBarre(btex 0 etex);"}else{"nonDefBarre;"}+
+ if(ksp==1){"plus;"}else{"moins;"}
+ }; }
+
+lsf:=if(member(Z[nz-1],F)==0){""}else{"nonDefBarre;
+"}
+lm0:=limit(f(x),x=Z[0],1)==-infinity;
+ li:=lvic+nom+"}$</span> etex);"+
+ if(member(Z[0],F)==0){"valPos(btex <span class="font-latex-math">$"+if(lm0==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[0],1)))}+"$</span> etex,"}
+ else{"nonDefBarre;limDroite(btex <span class="font-latex-math">$"+if(lm0==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[0],1)))}+"$</span> etex,"}+
+ if(k0==1){"1"}else{"0"}+
+ ");";
+
+ if(nz&gt;2){ for(r:=1; r&lt;=nz-2;r++){ krm:=evalf(limit(f(x),x=Z[r-1],1))&lt; evalf(limit(f(x),x=Z[r],-1));
+ krp:=evalf(limit(f(x),x=Z[r],1))&gt; evalf(limit(f(x),x=Z[r+1],-1)) ;
+ lmrm:=limit(f(x),x=Z[r],-1)==-infinity;lmrp:=limit(f(x),x=Z[r],1)==-infinity;
+ lp:=lp+if(member(Z[r],F)){
+ "limGauche(btex
+ <span class="font-latex-math">$"+if(lmrm==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[r],-1)))}+"$</span>
+ etex,"+if(krm==1){"1);"}else{"0);"}+"nonDefBarre;limDroite(btex <span class="font-latex-math">$"+if(lmrp==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[r],1)))}+"$</span> etex,"+if(krp==1){"1);"}else{"0);"}}
+ else{"valPos(btex <span class="font-latex-math">$"+latex(simplify(f(Z[r])))+"$</span>
+ etex,"+if(sign(evalf(fp(Z[r]-0.01)))==sign(fp(Z[r]+0.01))){"0.5);"}else{if(krp==1){"1);"}else{"0);
+"}}}
+ }; }
+
+lnz:=limit(f(x),x=Z[nz-1],-1)==-infinity;
+
+
+
+lf:=if(member(Z[nz-1],F)==0){"valPos(btex <span class="font-latex-math">$"+
+ if(lnz==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[nz-1],-1)))}+"$</span> etex,"+
+ if(kz==1){"1);"}else{"0);"}}
+ else{"limGauche(btex <span class="font-latex-math">$"+
+ if(lnz==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[nz-1],-1)))}+"$</span> etex,"+
+ if(kz==1){"1);nonDefBarre;"}else{"0);nonDefBarre;"}};
+
+
+
+
+
+MetaLfc:=if(ftt==2){if(nz&gt;2){"
+
+beginTableau("+nmr+")"+
+ l0+lsi+lsp+lsf+"
+endTableau;
+
+";}else{
+"beginTableau("+nmr+")"+
+ l0+
+lsi+lsf+"
+endTableau;
+
+";
+}
+}else{ if(ftt==0){if(nz&gt;2){"beginTableau("+nmr+")"+
+ l0+
+li+
+lp+
+lf
++"
+endTableau;
+
+";}else{"beginTableau("+nmr+")"+
+ l0+
+li+
+lf
++"
+endTableau;
+
+";}}else{
+if(nz&gt;2){"beginTableau("+nmr+")"+
+ l0+
+lsi+lsp+lsf+
+li+
+lp+
+lf
++"
+endTableau;
+
+";}else{"beginTableau("+nmr+")"+
+ l0+
+lsi+lsf+
+li+
+lf
++"
+endTableau;
+
+";}
+}}
+
+
+sortie:=fopen("XCasmpfc.mp");
+fprint(sortie,Unquoted,MetaLfc);
+fclose(sortie);
+
+
+ }:;
+
+<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
+
+
+
+
+
+
+<span class="comment-delimiter">%%%%</span><span class="comment">
+</span>
+
+<span class="comment-delimiter">%</span><span class="comment">
+</span><span class="comment-delimiter">%</span><span class="comment">
+</span><span class="comment-delimiter">% </span><span class="comment">TVPC : pour les fonctions prolongeables par continuit&#233;.
+</span><span class="comment-delimiter">%%</span><span class="comment">
+</span><span class="comment-delimiter">%%</span><span class="comment">
+</span>
+
+
+
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>{XcasTVPC.cxx}
+TVPC(L,F,FP,nom,nomv,f,ftt,trigo,nmr):={
+nl:=size(L);
+f:=unapply(f,x);
+fp:=function_diff(f);
+Z:=concat(L,F);
+Z:=concat(Z,FP);
+S:=[];
+
+
+if(trigo==t){
+all_trig_solutions:=1;
+reset_solve_counter(-1,-1);
+SS:=solve(factor(simplify(fp(x))),x);
+ns:=size(SS);
+for(k:=0;k&lt;ns;k++){
+m:=0;
+while(evalf(simplify(subst(SS[k],n_1=m)))&lt;=evalf(L[nl-1])){
+S:=concat(S,simplify(subst(SS[k],n_1=m)));m:=m+1;
+};m:=-1;
+while(evalf(subst(SS[k],n_1=m))&gt;=L[0]){
+S:=concat(S,simplify(subst(SS[k],n_1=m)));m:=m-1;
+}
+}
+}else{
+S:=solve(factor(simplify(fp(x))),x);
+}
+
+
+ si size(S)&gt;0 alors pour j de 0 jusque size(S)-1 faire
+ qq:=member(simplify(S[j]),Z)==0;
+ kk:=(evalf(S[j])&gt;=evalf(L[0])) and (evalf(S[j])&lt;=evalf(L[nl-1]));
+ if(kk==1){if(qq==1){Z:=append(Z,simplify(S[j]))}};
+ fpour
+ fsi;
+Z:=sort(Z);
+nz:=size(Z);
+
+
+ tantque evalf(Z[0])==evalf(Z[1]) faire Z:=Z[1..nz-1];nz:=size(Z);
+ ftantque;
+
+
+
+
+
+
+
+ si size(S)&gt;0 alors pour j de 0 jusque size(S)-1 faire
+ kk:=(evalf(S[j])&gt;=evalf(L[0])) and (evalf(S[j])&lt;=evalf(L[nl-1]));
+ if(kk==1){Z:=append(Z,simplify(S[j]))};
+ fpour
+ fsi;
+
+
+Z:=sort([op(set[op(Z)])]);
+
+nz:=size(Z);
+l0:=" newLigneVariables(btex <span class="font-latex-math">$"+nomv+"$</span> etex);";lp:=" "; lf:=" ";lsp:=" ";
+pour m de 0 jusque nz-1 faire l0:=l0+"val(btex <span class="font-latex-math">$"+latex(Z[m])+"$</span> etex);
+";fpour;
+
+ k0:= evalf(limit(f(x),x=Z[0],1))&gt; evalf(limit(f(x),x=Z[1],-1));
+ kz:=evalf(limit(f(x),x=Z[nz-1],-1))&gt; evalf(limit(f(x),x=Z[nz-2],1));
+
+lsi:=lsic+nom+"'("+nomv+")}<span class="font-latex-math">$ etex);"+
+ if(Z[0]==-infinity){if(sign(evalf(fp(if(Z[1]==+infinity){0}else{Z[1]-10^</span><span class="font-latex-superscript"><span class="font-latex-math">(</span></span><span class="font-latex-math">-5)})))==1.0){"plus;"}else{"moins;"}}else{if(member(Z[0],FP)==0){
+ if(fp(Z[0])==0){"valBarre(btex 0 etex);"}else{" "}+
+ if(evalf(sign(fp(Z[0]+10^</span><span class="font-latex-superscript"><span class="font-latex-math">(</span></span><span class="font-latex-math">-5))))==1.0){"plus;"}else{"moins;"}}else{"nonDefBarre;"+
+ if(evalf(sign(fp((Z[0]+10^</span><span class="font-latex-superscript"><span class="font-latex-math">(</span></span><span class="font-latex-math">-5)))))==1.0){"plus;"}else{"moins;"} }}
+
+if(nz&gt;2){ for(r:=1; r&lt;=nz-2;r++){ ksp:=evalf(fp(Z[r]+0.1))&gt;0;
+ lsp:=lsp+if(member(Z[r],FP)==0){"valBarre(btex 0 etex);"}else{"nonDefBarre;"}+
+ if(ksp==1){"plus;"}else{"moins;"}
+ }; }
+
+lsf:=if(member(Z[nz-1],FP)==0){""}else{"nonDefBarre;
+"}
+lm0:=limit(f(x),x=Z[0],1)==-infinity;
+ li:=lvic+nom+"}$</span> etex);"+
+ if(member(Z[0],F)==0){"valPos(btex <span class="font-latex-math">$"+if(lm0==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[0],1)))}+"$</span> etex,"}
+ else{"limDroite(btex <span class="font-latex-math">$"+if(lm0==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[0],1)))}+"$</span> etex,"}+
+ if(k0==1){"1"}else{"0"}+
+ ");";
+
+ if(nz&gt;2){ for(r:=1; r&lt;=nz-2;r++){ krm:=evalf(limit(f(x),x=Z[r-1],1))&lt; evalf(limit(f(x),x=Z[r],-1));
+ krp:=evalf(limit(f(x),x=Z[r],1))&gt; evalf(limit(f(x),x=Z[r+1],-1)) ;
+ lmrm:=limit(f(x),x=Z[r],-1)==-infinity;lmrp:=limit(f(x),x=Z[r],1)==-infinity;
+ lp:=lp+if(member(Z[r],F)){
+ "valPos(btex
+ <span class="font-latex-math">$"+if(lmrm==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[r],-1)))}+"$</span>
+ etex,"+if(krm==1){"1);"}else{"0);"} }
+ else{"valPos(btex <span class="font-latex-math">$"+latex(simplify(f(Z[r])))+"$</span>
+ etex,"+if(sign(evalf(fp(Z[r]-0.01)))==sign(fp(Z[r]+0.01))){"0.5);"}else{if(krp==1){"1);"}else{"0);
+"}}}
+ }; }
+
+lnz:=limit(f(x),x=Z[nz-1],-1)==-infinity;
+
+
+
+lf:=if(member(Z[nz-1],F)==0){"valPos(btex <span class="font-latex-math">$"+
+ if(lnz==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[nz-1],-1)))}+"$</span> etex,"+
+ if(kz==1){"1);"}else{"0);"}}
+ else{"limGauche(btex <span class="font-latex-math">$"+
+ if(lnz==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[nz-1],-1)))}+"$</span> etex,"+
+ if(kz==1){"1);"}else{"0);"}};
+
+
+
+
+
+MetaLfc:=if(ftt==2){if(nz&gt;2){"
+
+beginTableau("+nmr+")"+
+ l0+lsi+lsp+lsf+"
+endTableau;
+
+";}else{
+"beginTableau("+nmr+")"+
+ l0+
+lsi+lsf+"
+endTableau;
+
+";
+}
+}else{ if(ftt==0){if(nz&gt;2){"beginTableau("+nmr+")"+
+ l0+
+li+
+lp+
+lf
++"
+endTableau;
+
+";}else{"beginTableau("+nmr+")"+
+ l0+
+li+
+lf
++"
+endTableau;
+
+";}}else{
+if(nz&gt;2){"beginTableau("+nmr+")"+
+ l0+
+lsi+lsp+lsf+
+li+
+lp+
+lf
++"
+endTableau;
+
+";}else{"beginTableau("+nmr+")"+
+ l0+
+lsi+lsf+
+li+
+lf
++"
+endTableau;
+
+";}
+}}
+
+
+sortie:=fopen("XCasmpfc.mp");
+fprint(sortie,Unquoted,MetaLfc);
+fclose(sortie);
+
+
+ }:;
+
+<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
+
+
+
+
+
+
+
+
+
+
+
+
+<span class="comment-delimiter">%%</span><span class="comment">
+</span><span class="comment-delimiter">%%</span><span class="comment">
+</span><span class="comment-delimiter">%% </span><span class="comment">TV avec une zone interdite : on rajoute comme argument la liste des intervalles interdits
+</span><span class="comment-delimiter">%% </span><span class="comment">par exemple, pour sqrt(x^2-1) : TVZ([-infinity,100],[],[[-1,1]],"f","x",sqrt(x^2-1),1,1)
+</span><span class="comment-delimiter">%%</span><span class="comment">
+</span>
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>{XcasTVZ.cxx}
+
+
+TVZ(L,F,FF,nom,nomv,f,ftt,trigo,nmr):={
+nl:=size(L);
+nf:=size(FF);
+ Ff:=NULL;IMIN:=NULL;IMAX:=NULL;
+for(k:=0;k&lt;nf;k++){
+if(FF[k][0]&gt;L[0]){Imin[k]:=FF[k][0];LL:=L}else{Imin[k]:=L[0];LL:=[L[1]]};
+if(FF[k][1]&lt;L[1]){Imax[k]:=FF[k][1];LL:=L}else{Imax[k]:=L[1];LL:=[L[0]]};
+ Ff:=Ff,[Imin[k],Imax[k]];
+ IMIN:=IMIN,Imin[k];
+ IMAX:=IMAX,Imax[k];
+ }
+ FF:=[Ff];
+ IMIN:=[IMIN];
+ IMAX:=[IMAX];
+ f:=unapply(f,x);
+fp:=function_diff(f);
+Z:=concat(LL,F);
+
+for(k:=0;k&lt;nf;k++){
+Z:=concat(Z,FF[k]);
+}
+
+S:=[];
+
+
+if(trigo==t){
+all_trig_solutions:=1;
+reset_solve_counter(-1,-1);
+SS:=solve(factor(simplify(fp(x))),x);
+ns:=size(SS);
+for(k:=0;k&lt;ns;k++){
+m:=0;
+while(evalf(simplify(subst(SS[k],n_1=m)))&lt;=evalf(L[nl-1])){
+S:=concat(S,simplify(subst(SS[k],n_1=m)));m:=m+1;
+};m:=-1;
+while(evalf(subst(SS[k],n_1=m))&gt;=L[0]){
+S:=concat(S,simplify(subst(SS[k],n_1=m)));m:=m-1;
+}
+}
+}else{
+S:=solve(factor(simplify(fp(x))),x);
+}
+
+
+
+
+
+
+ si size(S)&gt;0 alors pour j de 0 jusque size(S)-1 faire
+ for(k:=0;k&lt;nf;k++){
+ kk:=(evalf(S[j])&gt;=evalf(L[0])) and (evalf(S[j])&lt;=evalf(L[nl-1]));
+ kK:=(evalf(S[j])&lt;evalf(Imin[k])) or (evalf(S[j])&gt;evalf(Imax[k]));
+ Kk:=(kk) and kK;
+ if(Kk==1){Z:=append(Z,simplify(S[j]))};
+ }
+ fpour
+ fsi;
+
+
+Z:=sort([op(set[op(Z)])]);
+
+nz:=size(Z);
+
+for(j:=0;j&lt;nf;j++){
+ for(k:=1;k&lt;nz;k++){
+ if ((Z[k]&gt;Imin[j])and(Z[k]&lt;Imax[j])){Z:=augment(Z[0..k-1],Z[k+1..nz-1]);nz:=nz-1;
+ }
+ }
+}
+nz:=size(Z);
+
+l0:=" newLigneVariables(btex <span class="font-latex-math">$"+nomv+"$</span> etex);";lp:=" "; lf:=" ";lsp:=" ";
+pour m de 0 jusque nz-1 faire l0:=l0+"val(btex <span class="font-latex-math">$"+latex(Z[m])+"$</span> etex);
+";fpour;
+
+ k0:= evalf(limit(f(x),x=Z[0],1))&gt; evalf(limit(f(x),x=Z[1],-1));
+ kz:=evalf(limit(f(x),x=Z[nz-1],-1))&gt; evalf(limit(f(x),x=Z[nz-2],1));
+
+lsi:=lsic+nom+"'("+nomv+")}<span class="font-latex-math">$ etex);"+
+if(member(Z[0],IMIN)!=0){if((member(Z[0],F)==0) and (fp(Z[0])!=undef)){"debutNonDef;"}else{"debutNonDefStrict;"}}else{if(Z[0]==-infinity){if(sign(evalf(fp(if(Z[1]==+infinity){0}else{Z[1]-10^</span><span class="font-latex-superscript"><span class="font-latex-math">(</span></span><span class="font-latex-math">-5)})))==1.0){"plus;"}else{"moins;"}}else{if(member(Z[0],F)==0){
+ if(fp(Z[0])==0){"valBarre(btex 0 etex);"}else{" "}+
+ if(evalf(sign(fp(Z[0]+10^</span><span class="font-latex-superscript"><span class="font-latex-math">(</span></span><span class="font-latex-math">-5))))==1.0){"plus;"}else{"moins;"}}else{"nonDefBarre;"+
+ if(evalf(sign(fp((Z[0]+10^</span><span class="font-latex-superscript"><span class="font-latex-math">(</span></span><span class="font-latex-math">-5)))))==1.0){"plus;"}else{"moins;"} }}}
+
+
+
+// modif 3 avril 2010
+
+if(nz&gt;2){ for(r:=1; r&lt;=nz-2;r++){
+ lsp:=lsp+
+ if(member(Z[r],IMIN)!=0){
+ if((member(Z[r],F)==0) and (fp(Z[r])!=undef)){"debutNonDef;"}
+ else{"debutNonDefStrict;"}}
+ else{if(member(Z[r],IMAX)!=0){if((member(Z[r],F)==0) and (fp(Z[r])!=undef)){"finNonDef;"}
+ else{"finNonDefStrict;"}+
+ if(evalf(fp(Z[r]+0.01))&gt;0){"plus;"}
+ else{"moins;"}}
+ else{if(member(Z[r],F)==0){"valBarre(btex 0 etex);"}
+ else{"nonDefBarre;"}+
+ if(evalf(fp(Z[r]+0.01))&gt;0){"plus;"}
+ else{"moins;"}
+ }}
+ }};
+
+// fin modif
+
+
+
+
+
+lsf:=if(member(Z[nz-1],IMAX)!=0){if((member(Z[nz-1],F)==0) and (fp(Z[nz-1])!=undef)){"finNonDef;"}else{"finNonDefStrict;"}}else{if(member(Z[nz-1],F)==0){""}else{"nonDefBarre;
+"}}
+
+
+lm0:=limit(f(x),x=Z[0],1)==-infinity;
+ li:=lvic +nom+"}$</span> etex);"+
+ if(member(Z[0],F)==0){"valPos(btex <span class="font-latex-math">$"+if(lm0==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[0],1)))}+"$</span> etex,"}
+ else{"nonDefBarre;limDroite(btex <span class="font-latex-math">$"+if(lm0==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[0],1)))}+"$</span> etex,"}+
+ if(k0==1){"1"}else{"0"}+
+ ");";
+
+if(nz&gt;2){
+ for(r:=1; r&lt;=nz-2;r++){
+ krm:=evalf(limit(f(x),x=Z[r-1],1))&lt; evalf(limit(f(x),x=Z[r],-1));
+ krp:=evalf(limit(f(x),x=Z[r],1))&gt; evalf(limit(f(x),x=Z[r+1],-1)) ;
+ lmrm:=limit(f(x),x=Z[r],-1)==-infinity;lmrp:=limit(f(x),x=Z[r],1)==-infinity;
+
+ lp:=lp+if(member(Z[r],IMIN)!=0){"limGauche(btex <span class="font-latex-math">$"+if(lmrm==1){
+ "-\\infty"}else{
+ latex(simplify(limit(f(x),x=Z[r],-1)))}
+ +"$</span> etex,"+if(krm==1){
+ "1);"}else{"0);"}
+ +if(member(Z[r],F)==0){"debutNonDef;"}else{"debutNonDefStrict;"}
+ }//fsi Zr=Imin
+ else{
+ if (member(Z[r],IMAX)!=0){if(member(Z[r],F)==0){"finNonDef;"}else{"finNonDefStrict;"}+"limDroite(btex <span class="font-latex-math">$"+if(lmrp==1){
+ "-\\infty"}else{latex(simplify(limit(f(x),x=Z[r],1)))}
+ +"$</span> etex,"+if(krp==1){
+ "1);"}else{"0);"}
+ }else{
+ if(member(Z[r],F)){
+ "limGauche(btex <span class="font-latex-math">$"+if(lmrm==1){
+ "-\\infty"}else{
+ latex(simplify(limit(f(x),x=Z[r],-1)))}
+ +"$</span> etex,"+if(krm==1){
+ "1);"}else{"0);"}
+ +"nonDefBarre;limDroite(btex <span class="font-latex-math">$"+if(lmrp==1){
+ "-\\infty"}else{latex(simplify(limit(f(x),x=Z[r],1)))}
+ +"$</span> etex,"+if(krp==1){
+ "1);"}else{"0);"}
+ }//fsi (member Zr F)
+ else{"valPos(btex<span class="font-latex-math">$"+latex(simplify(f(Z[r])))+"$</span>etex,"+
+ if(sign(evalf(fp(Z[r]-0.01)))==sign(fp(Z[r]+0.01))){
+ "0.5);"}else{
+ if(krp==1){
+ "1);"}else{"0);"}//felse(krp)
+ }//felse(valpos)
+ }//felse(member Zr F)
+ } //felse(Zr=Imax)
+ }//felse(Zr=Imin)
+ };//ffor
+ }//fsi nz
+
+lnz:=limit(f(x),x=Z[nz-1],-1)==-infinity;
+
+
+
+lf:=if(member(Z[nz-1],F)==0){"valPos(btex <span class="font-latex-math">$"+
+ if(lnz==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[nz-1],-1)))}+"$</span> etex,"+
+ if(kz==1){"1);"}else{"0);"}}
+ else{"limGauche(btex <span class="font-latex-math">$"+
+ if(lnz==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[nz-1],-1)))}+"$</span> etex,"+
+ if(kz==1){"1);nonDefBarre;"}else{"0);nonDefBarre;"}};
+
+
+
+
+
+MetaLfc:=if(ftt==2){if(nz&gt;2){"
+
+beginTableau("+nmr+")"+
+ l0+lsi+lsp+lsf+"
+endTableau;
+
+";}else{
+"beginTableau("+nmr+")"+
+ l0+
+lsi+lsf+"
+endTableau;
+
+";
+}
+}else{ if(ftt==0){if(nz&gt;2){"beginTableau("+nmr+")"+
+ l0+
+li+
+lp+
+lf
++"
+endTableau;
+
+";}else{"beginTableau("+nmr+")"+
+ l0+
+li+
+lf
++"
+endTableau;
+
+";}}else{
+if(nz&gt;2){"beginTableau("+nmr+")"+
+ l0+
+lsi+lsp+lsf+
+li+
+lp+
+lf
++"
+endTableau;
+
+";}else{"beginTableau("+nmr+")"+
+ l0+
+lsi+lsf+
+li+
+lf
++"
+endTableau;
+
+";}
+}}
+
+
+sortie:=fopen("XCasmpfc.mp");
+fprint(sortie,Unquoted,MetaLfc);
+fclose(sortie);
+
+ }
+:;
+
+
+<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
+
+
+<span class="comment-delimiter">%%</span><span class="comment">
+</span><span class="comment-delimiter">%%</span><span class="comment">
+</span><span class="comment-delimiter">%% </span><span class="comment">Quand les solutions formelles de f'(x)=0 ne sont pas calculables
+</span><span class="comment-delimiter">%%</span><span class="comment">
+</span>
+
+
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>{XcasTVapp.cxx}
+
+
+TVapp(L,F,nom,nomv,f,ftt,nmr):={
+local nl,fp,z0,z,nz,S,k,j,m,kk,kok,Z,l0,lp,lf,lsp,k0,kz,lsi,r,ksp,lsf,lm0,li,krm,krp,lmrm,lmrp,lnz;
+
+nl:=size(L);
+f:=unapply(f,x);
+fp:=function_diff(f);
+z0:=concat(L,F);z:=sort(z0);
+nz:=size(z);
+
+
+
+S:=NULL;
+
+
+
+if(L==[-infinity,+infinity]){j:=[seq(-50+2*k,k=0..50)]minus F;
+ for k in j do for(m:=-5;m&lt;=5;m++){S:=S,resoudre_numerique(fp(y),y,k+m*0.1,k+(m+1)*0.1,bisection_solver)};end_for}
+else{if(L[0]==-infinity){j:=[seq(2*k,k=-25..0.5*floor(L[1]))] minus F;
+ for k in j do for(m:=-5;m&lt;=5;m++){ S:=S,resoudre_numerique(fp(y),y,k+m*0.1,k+(m+1)*0.1,bisection_solver)};end_for}
+else{if(L[1]==+infinity){
+j:=[seq(2*k,k=floor(0.5*L[0])..0.5*50)] minus F;
+ for k in j do for(m:=-5;m&lt;=5;m++){ S:=S,resoudre_numerique(fp(y),y,k+m*0.1,k+(m+1)*0.1,bisection_solver)};end_for
+}
+else{ j:=[seq(2*k,k=0.5*floor(z[0])..0.5*floor(z[nz-1]))] minus F;
+ for k in j do for(m:=-5;m&lt;=5;m++){S:=S,resoudre_numerique(fp(y),y,k+m*0.1,k+(m+1)*0.1,bisection_solver)};end_for }
+ }};
+
+
+
+
+si size(S)&gt;0 alors pour j de 0 jusque size(S)-1 faire
+ kk:=(re(S[j])==S[j]);kok:=(evalf(S[j])&gt;=L[0]) and (evalf(S[j])&lt;=L[1]);
+ if(kk==1){if(kok==1){z:=append(z,simplify(S[j]))}};
+ fpour;
+fsi;
+
+
+S:=NULL;
+S:=S,z[0];
+for(j:=1;j&lt;size(z);j++){
+ if(z[j]!=undef and (abs(z[j])&gt;1e-15 or z[j]==0)){
+ S:=S,z[j]};
+}
+z:=[S];
+
+Z:=sort(z);
+nz:=size(Z);
+
+S:=NULL;
+S:=S,Z[0];
+for(j:=1;j&lt;nz;j++){
+ if(Z[j]!=S[size(S)-1]){
+ S:=S,Z[j]};
+}
+Z:=[S];
+
+
+nz:=size(Z);
+l0:=" newLigneVariables(btex <span class="font-latex-math">$"+nomv+"$</span> etex);";lp:=" "; lf:=" ";lsp:=" ";
+pour m de 0 jusque nz-1 faire l0:=l0+"val(btex <span class="font-latex-math">$"+latex(Z[m])+"$</span> etex);
+";fpour;
+
+ k0:= evalf(limit(f(x),x=Z[0],1))&gt; evalf(limit(f(x),x=Z[1],-1));
+ kz:=evalf(limit(f(x),x=Z[nz-1],-1))&gt; evalf(limit(f(x),x=Z[nz-2],1));
+
+lsi:=lsic+nom+"'("+nomv+")}<span class="font-latex-math">$ etex);"+
+ if(Z[0]==-infinity){if(sign(evalf(fp(if(Z[1]==+infinity){0}else{Z[1]-10^</span><span class="font-latex-superscript"><span class="font-latex-math">(</span></span><span class="font-latex-math">-5)})))==1.0){"plus;"}else{"moins;"}}else{if(member(Z[0],F)==0){
+ if(fp(Z[0])==0){"valBarre(btex 0 etex);"}else{" "}+
+ if(evalf(sign(fp(Z[0]+10^</span><span class="font-latex-superscript"><span class="font-latex-math">(</span></span><span class="font-latex-math">-5))))==1.0){"plus;"}else{"moins;"}}else{"nonDefBarre;"+
+ if(evalf(sign(fp((Z[0]+10^</span><span class="font-latex-superscript"><span class="font-latex-math">(</span></span><span class="font-latex-math">-5)))))==1.0){"plus;"}else{"moins;"} }}
+
+if(nz&gt;2){ for(r:=1; r&lt;=nz-2;r++){ ksp:=evalf(fp(Z[r]+0.01))&gt;0;
+ lsp:=lsp+if(member(Z[r],F)==0){"valBarre(btex 0 etex);"}else{"nonDefBarre;"}+
+ if(ksp==1){"plus;"}else{"moins;"}
+ }; }
+
+lsf:=if(member(Z[nz-1],F)==0){""}else{"nonDefBarre;
+"}
+lm0:=limit(f(x),x=Z[0],1)==-infinity;
+ li:=lvic+nom+"}$</span> etex);"+
+ if(member(Z[0],F)==0){"valPos(btex <span class="font-latex-math">$"+if(lm0==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[0],1)))}+"$</span> etex,"}
+ else{"nonDefBarre;limDroite(btex <span class="font-latex-math">$"+if(lm0==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[0],1)))}+"$</span> etex,"}+
+ if(k0==1){"1"}else{"0"}+
+ ");";
+
+ if(nz&gt;2){ for(r:=1; r&lt;=nz-2;r++){ krm:=evalf(limit(f(x),x=Z[r-1],1))&lt; evalf(limit(f(x),x=Z[r],-1));
+ krp:=evalf(limit(f(x),x=Z[r],1))&gt; evalf(limit(f(x),x=Z[r+1],-1)) ;
+ lmrm:=limit(f(x),x=Z[r],-1)==-infinity;lmrp:=limit(f(x),x=Z[r],1)==-infinity;
+ lp:=lp+if(member(Z[r],F)){
+ "limGauche(btex <span class="font-latex-math">$"+if(lmrm==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[r],-1)))}+"$</span> etex,"+if(krm==1){"1);"}else{"0);"}+"nonDefBarre;limDroite(btex <span class="font-latex-math">$"+if(lmrp==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[r],1)))}+"$</span> etex,"+if(krp==1){"1);"}else{"0);"}}
+ else{"valPos(btex <span class="font-latex-math">$"+latex(simplify(f(Z[r])))+"$</span>
+ etex,"+if(sign(evalf(fp(Z[r]-0.01)))==sign(fp(Z[r]+0.01))){"0.5);"}else{if(krp==1){"1);"}else{"0);
+"}}}
+ }; }
+
+lnz:=limit(f(x),x=Z[nz-1],-1)==-infinity;
+
+
+lf:=if(member(Z[nz-1],F)==0){"valPos(btex <span class="font-latex-math">$"+
+ if(lnz==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[nz-1],-1)))}+"$</span> etex,"+
+ if(kz==1){"1);"}else{"0);"}}
+ else{"limGauche(btex <span class="font-latex-math">$"+
+ if(lnz==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[nz-1],-1)))}+"$</span> etex,"+
+ if(kz==1){"1);nonDefBarre;"}else{"0);nonDefBarre;"}};
+
+
+
+MetaLfc:=if(ftt==2){if(nz&gt;2){"
+
+beginTableau("+nmr+")"+
+ l0+lsi+lsp+lsf+"
+endTableau;
+
+";}else{
+"beginTableau("+nmr+")"+
+ l0+
+lsi+lsf+"
+endTableau;
+
+";
+}
+}else{ if(ftt==0){if(nz&gt;2){"beginTableau("+nmr+")"+
+ l0+
+li+
+lp+
+lf
++"
+endTableau;
+
+";}else{"beginTableau("+nmr+")"+
+ l0+
+li+
+lf
++"
+endTableau;
+
+";}}else{
+if(nz&gt;2){"beginTableau("+nmr+")"+
+ l0+
+lsi+lsp+lsf+
+li+
+lp+
+lf
++"
+endTableau;
+
+";}else{"beginTableau("+nmr+")"+
+ l0+
+lsi+lsf+
+li+
+lf
++"
+endTableau;
+
+";}
+}}
+
+
+sortie:=fopen("XCasmpfc.mp");
+fprint(sortie,Unquoted,MetaLfc);
+fclose(sortie);
+
+
+ }:;
+
+
+
+
+
+
+
+<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
+
+
+
+
+
+
+
+<span class="comment-delimiter">%%</span><span class="comment">
+</span><span class="comment-delimiter">%% </span><span class="comment">Code giac/Xcas pour les Tableaux de Variations avec
+</span><span class="comment-delimiter">%% </span><span class="comment">Valeurs intermediaires
+</span><span class="comment-delimiter">%%</span><span class="comment">
+</span>
+
+
+
+
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>{XcasTVI.cxx}
+
+
+TVI(L,F,nom,nomv,f,ftt,ao,trigo,nmr):={
+nl:=size(L);
+f:=unapply(f,x);
+fp:=function_diff(f);
+Z:=concat(L,F);
+S:=[];
+
+
+if(trigo==t){
+all_trig_solutions:=1;
+reset_solve_counter(-1,-1);
+SS:=solve(factor(simplify(fp(x))),x);
+ns:=size(SS);
+for(k:=0;k&lt;ns;k++){
+m:=0;
+while(evalf(simplify(subst(SS[k],n_1=m)))&lt;=evalf(L[nl-1])){
+S:=concat(S,simplify(subst(SS[k],n_1=m)));m:=m+1;
+};m:=-1;
+while(evalf(subst(SS[k],n_1=m))&gt;=L[0]){
+S:=concat(S,simplify(subst(SS[k],n_1=m)));m:=m-1;
+}
+}
+}else{
+S:=solve(factor(simplify(fp(x))),x);
+}
+
+ si size(S)&gt;0 alors pour j de 0 jusque size(S)-1 faire
+ kk:=(evalf(S[j])&gt;=evalf(L[0])) and (evalf(S[j])&lt;=evalf(L[nl-1]));
+ if(kk==1){Z:=append(Z,simplify(S[j]))};
+ fpour
+ fsi;
+
+
+Z:=sort([op(set[op(Z)])]);
+
+
+
+nz:=size(Z);
+l0:=" newLigneVariables(btex <span class="font-latex-math">$"+nomv+"$</span> etex);";lp:=" "; lf:=" ";lsp:=" ";
+
+
+
+LI:=limit(f(x),x,Z[0],1);
+LF:=limit(f(x),x,Z[nz-1],-1);
+LP:=NULL;
+PB:=1;
+if(nz&gt;2){ for(r:=1;
+ r&lt;=nz-2;r++){LP:=LP,if(member(Z[r],F)){limit(f(x),x,Z[r],-1),limit(f(x),x,Z[r],1)}else{f(Z[r])};
+if(member(Z[r],F)){PB:=PB,0,1}else{PB:=PB,1};
+}
+};
+if(nz&gt;2){ LL:=[LI,LP,LF]; PB:=[PB,1]}else{LL:=[LI,LF];PB:=[1,1]};
+
+NL:=size(LL);
+A:=NULL;aa:=1;
+kk:=0;
+
+
+
+if(NL==nz){for(k:=0;k&lt;nz-1;k++){TestS:=(evalf(sign(LL[k]-ao))==evalf(sign(LL[k+1]-ao))) or (evalf(sign(LL[k]-ao))==0.0)or (evalf(sign(LL[k+1]-ao))==0.0);
+if(TestS==0){A:=A,aa;l0:=l0+"val(btex <span class="font-latex-math">$"+latex(Z[k])+"$</span> etex);"+"val(btex <span class="font-latex-math">$\\alpha_</span><span class="font-latex-subscript"><span class="font-latex-math">"</span></span><span class="font-latex-math">+aa+"$</span> etex);";aa:=aa+1;}else{l0:=l0+"val(btex <span class="font-latex-math">$"+latex(Z[k])+"$</span> etex);"}}
+l0:=l0+"val(btex <span class="font-latex-math">$"+latex(Z[nz-1])+"$</span> etex);"};
+//chgmt NL-&gt;nz
+if(NL&gt;nz){for(k:=0;k&lt;NL-1;k++){TestS:=(evalf(sign(LL[k]-ao))==evalf(sign(LL[k+1]-ao))) or (evalf(sign(LL[k]-ao))==0.0)or (evalf(sign(LL[k+1]-ao))==0.0);
+
+if(PB[k]==1){if(TestS==0){
+ A:=A,aa;l0:=l0+"val(btex <span class="font-latex-math">$"+latex(Z[kk])+"$</span> etex);"+"val(btex <span class="font-latex-math">$\\alpha_</span><span class="font-latex-subscript"><span class="font-latex-math">"</span></span><span class="font-latex-math">+aa+"$</span> etex);";aa:=aa+1;kk:=kk+1}
+else{l0:=l0+"val(btex <span class="font-latex-math">$"+latex(Z[kk])+"$</span> etex);";kk:=kk+1}};
+}
+
+ l0:=l0+"val(btex <span class="font-latex-math">$"+latex(Z[nz-1])+"$</span> etex);"
+
+ };
+
+
+TestS:=(evalf(sign(LL[0]-ao))==evalf(sign(LL[1]-ao))) or (evalf(sign(LL[0]-ao))==0.0) or (evalf(sign(LL[1]-ao))==0.0);
+ k0:= evalf(limit(f(x),x=Z[0],1))&gt; evalf(limit(f(x),x=Z[1],-1));
+ kz:=evalf(limit(f(x),x=Z[nz-1],-1))&gt; evalf(limit(f(x),x=Z[nz-2],1));
+
+lsi:=lsic+nom+"'("+nomv+")}<span class="font-latex-math">$ etex);"+
+ if(Z[0]==-infinity){if(evalf(sign(fp(if(Z[1]==+infinity){0}else{Z[1]-10^</span><span class="font-latex-superscript"><span class="font-latex-math">(</span></span><span class="font-latex-math">-5)})))==1.0){"plus;"}else{"moins;"}}else{if(member(Z[0],F)==0){
+ if(fp(Z[0])==0){"valBarre(btex 0 etex);"}else{" "}+
+ if(evalf(sign(fp((Z[0]+10^</span><span class="font-latex-superscript"><span class="font-latex-math">(</span></span><span class="font-latex-math">-3)))))==1.0){"plus;"}else{"moins;"}}else{"nonDefBarre;"+
+ if(evalf(sign(fp(10^</span><span class="font-latex-superscript"><span class="font-latex-math">(</span></span><span class="font-latex-math">-3)+Z[0])))==1.0){"plus;"}else{"moins;"} }}+if(TestS==0){"valBarre(btex$</span>
+ <span class="font-latex-math">$ etex);"+
+if(evalf(sign(fp(10^</span><span class="font-latex-superscript"><span class="font-latex-math">(</span></span><span class="font-latex-math">-3)+ifte(Z[0]==-infinity,ifte(Z[1]==+infinity,ifte(member(0,F)==0,0,0.01),ifte(member(Z[1]-1,F)==0,Z[1]-1,Z[1]-1.1)),Z[0]))))==1.0){"plus;"}else{"moins;"}}else{" "};
+
+
+
+
+
+if(nz&gt;2){rr:=1; if(nz==NL){for(r:=1; r&lt;=NL-2;r++){ TestS:=(evalf(sign(LL[r]-ao))==evalf(sign(LL[r+1]-ao))) or (evalf(sign(LL[r]-ao))==0.0)or (evalf(sign(LL[r+1]-ao))==0.0);
+ ksp:=evalf(fp(Z[r]+0.01))&gt;0;
+ TestL:=(abs(LL[r])==abs(LL[r+1]));
+ lsp:=lsp+if(member(Z[r],F)==0){"valBarre(btex 0 etex);"}else{"nonDefBarre;"}+
+ if(ksp==1){"plus;"}else{"moins;"}+if(TestS==0){"valBarre(btex $</span> <span class="font-latex-math">$ etex);"}else{" "}+if(TestS==0){if(ksp==1){"plus;"}else{"moins;"}}else{" "};
+ }}
+else{for(r:=1; r&lt;=NL-2;r++){kspp:=evalf(fp(Z[rr]+0.01))&gt;0;TestS:=(evalf(sign(LL[r]-ao))==evalf(sign(LL[r+1]-ao))) or (evalf(sign(LL[r]-ao))==0.0)or (evalf(sign(LL[r+1]-ao))==0.0);
+
+ if(PB[r]==1){if(TestS==0){lsp:=lsp+if(member(Z[rr],F)==0){"valBarre(btex 0 etex);"}else{"nonDefBarre;"}+
+ if(kspp==1){"plus;"}else{"moins;"}+"valBarre(btex $</span> <span class="font-latex-math">$ etex);"+if(kspp==1){"plus;"}else{"moins;"};rr:=rr+1;}
+ else{lsp:=lsp+if(member(Z[rr],F)==0){"valBarre(btex 0 etex);"}else{"nonDefBarre;"}+
+ if(kspp==1){"plus;"}else{"moins;"};rr:=rr+1;}
+}}}};
+
+
+
+
+ lsf:=if(member(Z[nz-1],F)==0){" "}else{"nonDefBarre;"}
+
+
+
+lm0:=limit(f(x),x=Z[0],1)==-infinity;
+
+
+
+
+TestS:=(evalf(sign(LL[0]-ao))==evalf(sign(LL[1]-ao))) or (evalf(sign(LL[0]-ao))==0.0) or (evalf(sign(LL[1]-ao))==0.0);
+
+ li:=lvic+nom+"}$</span> etex);
+"+ if(member(Z[0],F)==0){"valPos(btex <span class="font-latex-math">$"+if(lm0==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[0],1)))}+"$</span> etex,"}
+ else{"nonDefBarre;limDroite(btex <span class="font-latex-math">$"+if(lm0==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[0],1)))}+"$</span> etex,"}+
+ if(k0==1){"1);"}else{"0);"}+if(TestS==0){"valPos(btex <span class="font-latex-math">$ "+ao+" $</span> etex,0.5);"}else{" "};
+
+
+ if(nz&gt;2){if(nz==NL){for(r:=1; r&lt;=nz-2;r++){TestS:=(evalf(sign(LL[r]-ao))==evalf(sign(LL[r+1]-ao))) or (evalf(sign(LL[r]-ao))==0.0)or (evalf(sign(LL[r+1]-ao))==0.0);
+ krm:=evalf(limit(f(x),x=Z[r-1],1))&lt; evalf(limit(f(x),x=Z[r],-1));
+ krp:=evalf(limit(f(x),x=Z[r],1))&gt; evalf(limit(f(x),x=Z[r+1],-1)) ;
+ lmrm:=limit(f(x),x=Z[r],-1)==-infinity;lmrp:=limit(f(x),x=Z[r],1)==-infinity;
+ lp:=lp+if(member(Z[r],F)) {
+ "limGauche(btex <span class="font-latex-math">$"+if(lmrm==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[r],-1)))}+"$</span> etex,"+if(krm==1){"1);"}else{"0);"}+"nonDefBarre;limDroite(btex <span class="font-latex-math">$"+if(lmrp==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[r],1)))}+"$</span> etex,"+if(krp==1){"1);"}else{"0);"}}
+ else{"valPos(btex <span class="font-latex-math">$"+latex(simplify(f(Z[r])))+"$</span>
+ etex,"+if(evalf(sign(fp(Z[r]-0.01)))==sign(fp(Z[r]+0.01))){"0.5);"}else{if(krp==1){"1);"}else{"0);"}}}+if(TestS==0){"valPos(btex
+ <span class="font-latex-math">$ "+ao+" $</span> etex,0.5);"
+ }else{" "};
+};//for
+}else{rr:=1;for(r:=1; r&lt;=NL-2;r++){TestS:=(evalf(sign(LL[r]-ao))==evalf(sign(LL[r+1]-ao))) or (evalf(sign(LL[r]-ao))==0.0)or (evalf(sign(LL[r+1]-ao))==0.0);
+ krm:=evalf(limit(f(x),x=Z[rr-1],1))&lt; evalf(limit(f(x),x=Z[rr],-1));
+ krp:=evalf(limit(f(x),x=Z[rr],1))&gt; evalf(limit(f(x),x=Z[rr+1],-1)) ;
+ lmrm:=limit(f(x),x=Z[rr],-1)==-infinity;lmrp:=limit(f(x),x=Z[rr],1)==-infinity; TestL:=(abs(LL[r])==abs(LL[r+1]));
+
+if(PB[r]==1){if(TestS==0){lp:=lp+if(member(Z[rr],F)){
+ "limGauche(btex <span class="font-latex-math">$"+if(lmrm==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[rr],-1)))}+"$</span> etex,"+if(krm==1){"1);"}else{"0);"}+"nonDefBarre;limDroite(btex <span class="font-latex-math">$"+if(lmrp==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[rr],1)))}+"$</span> etex,"+if(krp==1){"1);"}else{"0);"}}
+ else{"valPos(btex <span class="font-latex-math">$"+latex(simplify(f(Z[rr])))+"$</span>
+ etex,"+if(evalf(sign(fp(Z[rr]-0.01)))==sign(fp(Z[rr]+0.01))){"0.5);"}else{if(krp==1){"1);"}else{"0);"}}}+"valPos(btex
+ <span class="font-latex-math">$ "+ao+" $</span> etex,0.5);
+ ";rr:=rr+1;
+}// testS==0
+else{lp:=lp+if(member(Z[rr],F)){
+ "limGauche(btex <span class="font-latex-math">$"+if(lmrm==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[rr],-1)))}+"$</span> etex,"+if(krm==1){"1);"}else{"0);"}+"nonDefBarre;limDroite(btex <span class="font-latex-math">$"+if(lmrp==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[rr],1)))}+"$</span> etex,"+if(krp==1){"1);"}else{"0);"}}
+ else{"valPos(btex <span class="font-latex-math">$"+latex(simplify(f(Z[rr])))+"$</span>
+ etex,"+if(evalf(sign(fp(Z[rr]-0.01)))==sign(fp(Z[rr]+0.01))){"0.5);"}else{if(krp==1){"1);"}else{"0);
+ "}}};rr:=rr+1;
+}//else testS==0
+}//PB[r]==1
+}//for nz&lt;NL
+}// else nz&lt;NL
+//if nz=NL
+};//if nz&gt;2
+
+
+
+lnz:=limit(f(x),x=Z[nz-1],-1)==-infinity;
+
+
+lf:=if(member(Z[nz-1],F)==0){"valPos(btex <span class="font-latex-math">$"+
+ if(lnz==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[nz-1],-1)))}+"$</span> etex,"+
+ if(kz==1){"1);"}else{"0);"}}
+ else{"limGauche(btex <span class="font-latex-math">$"+
+ if(lnz==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[nz-1],-1)))}+"$</span> etex,"+
+ if(kz==1){"1);nonDefBarre;"}else{"0);nonDefBarre;"}};
+
+
+
+
+
+
+
+MetaLfc:= if(ftt==2){if(nz&gt;2){"beginTableau("+nmr+")"+
+ l0+lsi+lsp+lsf+"
+endTableau;
+
+";}else{
+"beginTableau("+nmr+")"+
+ l0+
+lsi+lsf+"
+endTableau;
+
+";
+}
+}else{
+if(ftt==0){if(nz&gt;2){"beginTableau("+nmr+")"+
+ l0+
+li+
+lp+
+lf
++"
+endTableau;
+
+";}else{"beginTableau("+nmr+")"+
+ l0+
+li+
+lf
++"
+endTableau;
+";}}else{
+if(nz&gt;2){"beginTableau("+nmr+")"+
+ l0+
+lsi+lsp+lsf+
+li+
+lp+
+lf
++"
+endTableau;
+
+";}else{"beginTableau("+nmr+")"+
+ l0+
+lsi+lsf+
+li+
+lf
++"
+endTableau;
+
+";}
+}};
+
+
+
+
+
+
+
+sortie:=fopen("XCasmpfc.mp");
+fprint(sortie,Unquoted,MetaLfc);
+fclose(sortie);
+
+
+ }:;
+
+
+
+<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
+
+
+
+<span class="comment-delimiter">%%</span><span class="comment">
+</span><span class="comment-delimiter">%</span><span class="comment">
+</span><span class="comment-delimiter">%</span><span class="comment">
+</span><span class="comment-delimiter">%</span><span class="comment">
+</span><span class="comment-delimiter">% </span><span class="comment">Pour avoir les racines sous forme exacte.... quand c'est possible !
+</span><span class="comment-delimiter">%</span><span class="comment">
+</span><span class="comment-delimiter">%</span><span class="comment">
+</span><span class="comment-delimiter">%</span><span class="comment">
+</span><span class="comment-delimiter">%%%%%%%%%</span><span class="comment">
+</span>
+
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>{XcasTVIex.cxx}
+
+
+
+TVIex(L,F,nom,nomv,f,ftt,ao,trigo,nmr):={
+nl:=size(L);
+f:=unapply(f,x);
+fp:=function_diff(f);
+Z:=concat(L,F);
+S:=[];
+
+Sex:=NULL;
+Zex:=solve(f(x)=ao);
+Zex:=sort(Zex);
+for(j:=0;j&lt;size(Zex);j++){
+if((evalf(Zex[j])&gt;=evalf(L[0])) and (evalf(Zex[j])&lt;=evalf(L[nl-1]))){Sex:=Sex,Zex[j]};
+};
+Sex:=[Sex];
+
+
+
+
+
+
+
+
+if(trigo==t){
+all_trig_solutions:=1;
+reset_solve_counter(-1,-1);
+SS:=solve(factor(simplify(fp(x))),x);
+ns:=size(SS);
+for(k:=0;k&lt;ns;k++){
+m:=0;
+while(evalf(simplify(subst(SS[k],n_1=m)))&lt;=evalf(L[nl-1])){
+S:=concat(S,simplify(subst(SS[k],n_1=m)));m:=m+1;
+};m:=-1;
+while(evalf(subst(SS[k],n_1=m))&gt;=L[0]){
+S:=concat(S,simplify(subst(SS[k],n_1=m)));m:=m-1;
+}
+}
+}else{
+S:=solve(factor(simplify(fp(x))),x);
+}
+
+ si size(S)&gt;0 alors pour j de 0 jusque size(S)-1 faire
+ kk:=(evalf(S[j])&gt;=evalf(L[0])) and (evalf(S[j])&lt;=evalf(L[nl-1]));
+ if(kk==1){Z:=append(Z,simplify(S[j]))};
+ fpour
+ fsi;
+
+
+
+ Z:=sort([op(set[op(Z)])]);
+
+
+nz:=size(Z);
+l0:=" newLigneVariables(btex <span class="font-latex-math">$"+nomv+"$</span> etex);";lp:=" "; lf:=" ";lsp:=" ";
+
+
+
+LI:=limit(f(x),x,Z[0],1);
+LF:=limit(f(x),x,Z[nz-1],-1);
+LP:=NULL;
+PB:=1;
+if(nz&gt;2){ for(r:=1;
+ r&lt;=nz-2;r++){LP:=LP,if(member(Z[r],F)){limit(f(x),x,Z[r],-1),limit(f(x),x,Z[r],1)}else{f(Z[r])};
+if(member(Z[r],F)){PB:=PB,0,1}else{PB:=PB,1};
+}
+};
+if(nz&gt;2){ LL:=[LI,LP,LF]; PB:=[PB,1]}else{LL:=[LI,LF];PB:=[1,1]};
+
+NL:=size(LL);
+A:=NULL;aa:=0;
+kk:=0;
+
+
+
+if(NL==nz){for(k:=0;k&lt;nz-1;k++){TestS:=(evalf(sign(LL[k]-ao))==evalf(sign(LL[k+1]-ao))) or (evalf(sign(LL[k]-ao))==0.0)or (evalf(sign(LL[k+1]-ao))==0.0);
+if(TestS==0){A:=A,aa;l0:=l0+"val(btex <span class="font-latex-math">$"+latex(Z[k])+"$</span> etex);"+"val(btex <span class="font-latex-math">$"+latex(simplify(Sex[aa]))+"$</span> etex);";aa:=aa+1;}else{l0:=l0+"val(btex <span class="font-latex-math">$"+latex(Z[k])+"$</span> etex);"}}
+l0:=l0+"val(btex <span class="font-latex-math">$"+latex(Z[nz-1])+"$</span> etex);"};
+//chgmt NL-&gt;nz
+if(NL&gt;nz){for(k:=0;k&lt;NL-1;k++){TestS:=(evalf(sign(LL[k]-ao))==evalf(sign(LL[k+1]-ao))) or (evalf(sign(LL[k]-ao))==0.0)or (evalf(sign(LL[k+1]-ao))==0.0);
+
+if(PB[k]==1){if(TestS==0){
+ A:=A,aa;l0:=l0+"val(btex <span class="font-latex-math">$"+latex(Z[kk])+"$</span> etex);"+"val(btex <span class="font-latex-math">$"+latex(simplify(Sex[aa]))+"$</span> etex);";aa:=aa+1;kk:=kk+1}
+else{l0:=l0+"val(btex <span class="font-latex-math">$"+latex(Z[kk])+"$</span> etex);";kk:=kk+1}};
+}
+
+ l0:=l0+"val(btex <span class="font-latex-math">$"+latex(Z[nz-1])+"$</span> etex);"
+
+ };
+
+
+TestS:=(evalf(sign(LL[0]-ao))==evalf(sign(LL[1]-ao))) or (evalf(sign(LL[0]-ao))==0.0) or (evalf(sign(LL[1]-ao))==0.0);
+ k0:= evalf(limit(f(x),x=Z[0],1))&gt; evalf(limit(f(x),x=Z[1],-1));
+ kz:=evalf(limit(f(x),x=Z[nz-1],-1))&gt; evalf(limit(f(x),x=Z[nz-2],1));
+
+lsi:=lsic+nom+"'("+nomv+")}<span class="font-latex-math">$ etex);"+
+ if(Z[0]==-infinity){if(evalf(sign(fp(if(Z[1]==+infinity){0}else{Z[1]-10^</span><span class="font-latex-superscript"><span class="font-latex-math">(</span></span><span class="font-latex-math">-5)})))==1){"plus;"}else{"moins;"}}else{if(member(Z[0],F)==0){
+ if(fp(Z[0])==0){"valBarre(btex 0 etex);"}else{" "}+
+ if(sign(fp((Z[0]+10^</span><span class="font-latex-superscript"><span class="font-latex-math">(</span></span><span class="font-latex-math">-3))))==1){"plus;"}else{"moins;"}}else{"nonDefBarre;"+
+ if(sign(fp(10^</span><span class="font-latex-superscript"><span class="font-latex-math">(</span></span><span class="font-latex-math">-3)+Z[0]))==1){"plus;"}else{"moins;"} }}+if(TestS==0){"valBarre(btex$</span>
+ <span class="font-latex-math">$ etex);"+
+if(evalf(sign(fp(10^</span><span class="font-latex-superscript"><span class="font-latex-math">(</span></span><span class="font-latex-math">-3)+ifte(Z[0]==-infinity,ifte(Z[1]==+infinity,ifte(member(0,F)==0,0,0.01),ifte(member(Z[1]-1,F)==0,Z[1]-1,Z[1]-1.1)),Z[0]))))==1.0){"plus;"}else{"moins;"}}else{" "};
+
+
+
+
+if(nz&gt;2){rr:=1; if(nz==NL){for(r:=1; r&lt;=NL-2;r++){ TestS:=(evalf(sign(LL[r]-ao))==evalf(sign(LL[r+1]-ao))) or (evalf(sign(LL[r]-ao))==0.0)or (evalf(sign(LL[r+1]-ao))==0.0);
+ ksp:=evalf(fp(Z[r]+0.01))&gt;0;
+ TestL:=(abs(LL[r])==abs(LL[r+1]));
+ lsp:=lsp+if(member(Z[r],F)==0){"valBarre(btex 0 etex);"}else{"nonDefBarre;"}+
+ if(ksp==1){"plus;"}else{"moins;"}+if(TestS==0){"valBarre(btex $</span> <span class="font-latex-math">$ etex);"}else{" "}+if(TestS==0){if(ksp==1){"plus;"}else{"moins;"}}else{" "};
+ }}
+else{for(r:=1; r&lt;=NL-2;r++){kspp:=evalf(fp(Z[rr]+0.01))&gt;0;TestS:=(evalf(sign(LL[r]-ao))==evalf(sign(LL[r+1]-ao))) or (evalf(sign(LL[r]-ao))==0.0)or (evalf(sign(LL[r+1]-ao))==0.0);
+
+ if(PB[r]==1){if(TestS==0){lsp:=lsp+if(member(Z[rr],F)==0){"valBarre(btex 0 etex);"}else{"nonDefBarre;"}+
+ if(kspp==1){"plus;"}else{"moins;"}+"valBarre(btex $</span> <span class="font-latex-math">$ etex);"+if(kspp==1){"plus;"}else{"moins;"};rr:=rr+1;}
+ else{lsp:=lsp+if(member(Z[rr],F)==0){"valBarre(btex 0 etex);"}else{"nonDefBarre;"}+
+ if(kspp==1){"plus;"}else{"moins;"};rr:=rr+1;}
+}}}};
+
+
+
+
+ lsf:=if(member(Z[nz-1],F)==0){" "}else{"nonDefBarre;"}
+
+
+
+lm0:=limit(f(x),x=Z[0],1)==-infinity;
+
+
+
+
+TestS:=(evalf(sign(LL[0]-ao))==evalf(sign(LL[1]-ao))) or (evalf(sign(LL[0]-ao))==0.0) or (evalf(sign(LL[1]-ao))==0.0);
+
+ li:=lvic+nom+"}$</span> etex);
+"+ if(member(Z[0],F)==0){"valPos(btex <span class="font-latex-math">$"+if(lm0==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[0],1)))}+"$</span> etex,"}
+ else{"nonDefBarre;limDroite(btex <span class="font-latex-math">$"+if(lm0==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[0],1)))}+"$</span> etex,"}+
+ if(k0==1){"1);"}else{"0);"}+if(TestS==0){"valPos(btex <span class="font-latex-math">$ "+ao+" $</span> etex,0.5);"}else{" "};
+
+
+ if(nz&gt;2){if(nz==NL){for(r:=1; r&lt;=nz-2;r++){TestS:=(evalf(sign(LL[r]-ao))==evalf(sign(LL[r+1]-ao))) or (evalf(sign(LL[r]-ao))==0.0)or (evalf(sign(LL[r+1]-ao))==0.0);
+ krm:=evalf(limit(f(x),x=Z[r-1],1))&lt; evalf(limit(f(x),x=Z[r],-1));
+ krp:=evalf(limit(f(x),x=Z[r],1))&gt; evalf(limit(f(x),x=Z[r+1],-1)) ;
+ lmrm:=limit(f(x),x=Z[r],-1)==-infinity;lmrp:=limit(f(x),x=Z[r],1)==-infinity;
+ lp:=lp+if(member(Z[r],F)) {
+ "limGauche(btex <span class="font-latex-math">$"+if(lmrm==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[r],-1)))}+"$</span> etex,"+if(krm==1){"1);"}else{"0);"}+"nonDefBarre;limDroite(btex <span class="font-latex-math">$"+if(lmrp==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[r],1)))}+"$</span> etex,"+if(krp==1){"1);"}else{"0);"}}
+ else{"valPos(btex <span class="font-latex-math">$"+latex(simplify(f(Z[r])))+"$</span>
+ etex,"+if(evalf(sign(fp(Z[r]-0.01)))==sign(fp(Z[r]+0.01))){"0.5);"}else{if(krp==1){"1);"}else{"0);"}}}+if(TestS==0){"valPos(btex
+ <span class="font-latex-math">$ "+ao+" $</span> etex,0.5);"
+ }else{" "};
+};//for
+}else{rr:=1;for(r:=1; r&lt;=NL-2;r++){TestS:=(evalf(sign(LL[r]-ao))==evalf(sign(LL[r+1]-ao))) or (evalf(sign(LL[r]-ao))==0.0)or (evalf(sign(LL[r+1]-ao))==0.0);
+ krm:=evalf(limit(f(x),x=Z[rr-1],1))&lt; evalf(limit(f(x),x=Z[rr],-1));
+ krp:=evalf(limit(f(x),x=Z[rr],1))&gt; evalf(limit(f(x),x=Z[rr+1],-1)) ;
+ lmrm:=limit(f(x),x=Z[rr],-1)==-infinity;lmrp:=limit(f(x),x=Z[rr],1)==-infinity; TestL:=(abs(LL[r])==abs(LL[r+1]));
+
+if(PB[r]==1){if(TestS==0){lp:=lp+if(member(Z[rr],F)){
+ "limGauche(btex <span class="font-latex-math">$"+if(lmrm==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[rr],-1)))}+"$</span> etex,"+if(krm==1){"1);"}else{"0);"}+"nonDefBarre;limDroite(btex <span class="font-latex-math">$"+if(lmrp==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[rr],1)))}+"$</span> etex,"+if(krp==1){"1);"}else{"0);"}}
+ else{"valPos(btex <span class="font-latex-math">$"+latex(simplify(f(Z[rr])))+"$</span>
+ etex,"+if(evalf(sign(fp(Z[rr]-0.01)))==sign(fp(Z[rr]+0.01))){"0.5);"}else{if(krp==1){"1);"}else{"0);"}}}+"valPos(btex
+ <span class="font-latex-math">$ "+ao+" $</span> etex,0.5);
+ ";rr:=rr+1;
+}// testS==0
+else{lp:=lp+if(member(Z[rr],F)){
+ "limGauche(btex <span class="font-latex-math">$"+if(lmrm==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[rr],-1)))}+"$</span> etex,"+if(krm==1){"1);"}else{"0);"}+"nonDefBarre;limDroite(btex <span class="font-latex-math">$"+if(lmrp==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[rr],1)))}+"$</span> etex,"+if(krp==1){"1);"}else{"0);"}}
+ else{"valPos(btex <span class="font-latex-math">$"+latex(simplify(f(Z[rr])))+"$</span>
+ etex,"+if(evalf(sign(fp(Z[rr]-0.01)))==sign(fp(Z[rr]+0.01))){"0.5);"}else{if(krp==1){"1);"}else{"0);
+ "}}};rr:=rr+1;
+}//else testS==0
+}//PB[r]==1
+}//for nz&lt;NL
+}// else nz&lt;NL
+//if nz=NL
+};//if nz&gt;2
+
+
+
+lnz:=limit(f(x),x=Z[nz-1],-1)==-infinity;
+
+
+lf:=if(member(Z[nz-1],F)==0){"valPos(btex <span class="font-latex-math">$"+
+ if(lnz==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[nz-1],-1)))}+"$</span> etex,"+
+ if(kz==1){"1);"}else{"0);"}}
+ else{"limGauche(btex <span class="font-latex-math">$"+
+ if(lnz==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[nz-1],-1)))}+"$</span> etex,"+
+ if(kz==1){"1);nonDefBarre;"}else{"0);nonDefBarre;"}};
+
+
+
+
+
+
+
+MetaLfc:= if(ftt==2){if(nz&gt;2){"beginTableau("+nmr+")"+
+ l0+lsi+lsp+lsf+"
+endTableau;
+
+";}else{
+"beginTableau("+nmr+")"+
+ l0+
+lsi+lsf+"
+endTableau;
+
+";
+}
+}else{
+if(ftt==0){if(nz&gt;2){"beginTableau("+nmr+")"+
+ l0+
+li+
+lp+
+lf
++"
+endTableau;
+
+";}else{"beginTableau("+nmr+")"+
+ l0+
+li+
+lf
++"
+endTableau;
+";}}else{
+if(nz&gt;2){"beginTableau("+nmr+")"+
+ l0+
+lsi+lsp+lsf+
+li+
+lp+
+lf
++"
+endTableau;
+
+";}else{"beginTableau("+nmr+")"+
+ l0+
+lsi+lsf+
+li+
+lf
++"
+endTableau;
+
+";}
+}};
+
+
+
+
+
+
+sortie:=fopen("XCasmpfc.mp");
+fprint(sortie,Unquoted,MetaLfc);
+fclose(sortie);
+
+
+ }:;
+
+
+<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
+
+
+
+
+
+
+
+<span class="comment-delimiter">%%</span><span class="comment">
+</span><span class="comment-delimiter">%%</span><span class="comment">
+</span><span class="comment-delimiter">%% </span><span class="comment">Quand les solutions de f'(x)=0 ne sont pas formellement calculables
+</span><span class="comment-delimiter">%%</span><span class="comment">
+</span>
+
+
+
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>{XcasTVIapp.cxx}
+
+TVIapp(L,F,nom,nomv,f,ftt,ao,nmr):={
+
+
+nl:=size(L);
+f:=unapply(f,x);
+fp:=function_diff(f);
+z0:=concat(L,F);z:=sort(z0);
+nz:=size(z);
+
+
+
+
+
+
+
+S:=op(fsolve(fp(x),x));
+
+
+
+
+if(L==[-infinity,+infinity]){j:=[seq(-50+2*k,k=0..50)]minus F;
+ for k in j do for(m:=-5;m&lt;=5;m++){S:=S,resoudre_numerique(fp(y),y,k+m*0.1,k+(m+1)*0.1,bisection_solver)};end_for}
+else{if(L[0]==-infinity){j:=[seq(2*k,k=-25..0.5*floor(L[1]))] minus F;
+ for k in j do for(m:=-5;m&lt;=5;m++){ S:=S,resoudre_numerique(fp(y),y,k+m*0.1,k+(m+1)*0.1,bisection_solver)};end_for}
+else{if(L[1]==+infinity){
+j:=[seq(2*k,k=floor(0.5*L[0])..0.5*50)] minus F;
+ for k in j do for(m:=-5;m&lt;=5;m++){ S:=S,resoudre_numerique(fp(y),y,k+m*0.1,k+(m+1)*0.1,bisection_solver)};end_for
+}
+else{ j:=[seq(2*k,k=0.5*floor(z[0])..0.5*floor(z[nz-1]))] minus F;
+ for k in j do for(m:=-5;m&lt;=5;m++){S:=S,resoudre_numerique(fp(y),y,k+m*0.1,k+(m+1)*0.1,bisection_solver)};end_for }
+ }};
+
+
+
+
+
+
+
+
+
+
+
+
+
+si size(S)&gt;0 alors pour j de 0 jusque size(S)-1 faire
+ kk:=(re(S[j])==S[j]);kok:=(evalf(S[j])&gt;=L[0]) and (evalf(S[j])&lt;=L[1]);
+ if(kk==1){if(kok==1){z:=append(z,simplify(S[j]))}};
+ fpour;
+fsi;
+
+
+S:=NULL;
+S:=S,z[0];
+for(j:=1;j&lt;size(z);j++){
+ if(z[j]!=undef and (abs(z[j])&gt;1e-15 or z[j]==0)){
+ S:=S,z[j]};
+}
+z:=[S];
+
+
+
+Z:=sort(z);
+nz:=size(Z);
+
+S:=NULL;
+S:=S,Z[0];
+for(j:=1;j&lt;nz;j++){
+ if(Z[j]!=S[size(S)-1]){
+ S:=S,Z[j]};
+}
+Z:=[S];
+
+
+nz:=size(Z);
+l0:=" newLigneVariables(btex <span class="font-latex-math">$"+nomv+"$</span> etex);";lp:=" "; lf:=" ";lsp:=" ";
+
+
+
+LI:=limit(f(x),x,Z[0],1);
+LF:=limit(f(x),x,Z[nz-1],-1);
+LP:=NULL;
+PB:=1;
+if(nz&gt;2){ for(r:=1;
+ r&lt;=nz-2;r++){LP:=LP,if(member(Z[r],F)){limit(f(x),x,Z[r],-1),limit(f(x),x,Z[r],1)}else{f(Z[r])};
+if(member(Z[r],F)){PB:=PB,0,1}else{PB:=PB,1};
+}
+};
+if(nz&gt;2){ LL:=[LI,LP,LF]; PB:=[PB,1]}else{LL:=[LI,LF];PB:=[1,1]};
+
+NL:=size(LL);
+A:=NULL;aa:=1;
+kk:=0;
+
+
+if(NL==nz){for(k:=0;k&lt;nz-1;k++){TestS:=(evalf(sign(LL[k]-ao))==evalf(sign(LL[k+1]-ao))) or (evalf(sign(LL[k]-ao))==0.0)or (evalf(sign(LL[k+1]-ao))==0.0);
+if(TestS==0){A:=A,aa;l0:=l0+"val(btex <span class="font-latex-math">$"+latex(Z[k])+"$</span> etex);"+"val(btex <span class="font-latex-math">$\\alpha_</span><span class="font-latex-subscript"><span class="font-latex-math">"</span></span><span class="font-latex-math">+aa+"$</span> etex);";aa:=aa+1;}else{l0:=l0+"val(btex <span class="font-latex-math">$"+latex(Z[k])+"$</span> etex);"}}
+l0:=l0+"val(btex <span class="font-latex-math">$"+latex(Z[nz-1])+"$</span> etex);"};
+//chgmt NL-&gt;nz
+if(NL&gt;nz){for(k:=0;k&lt;NL-1;k++){TestS:=(evalf(sign(LL[k]-ao))==evalf(sign(LL[k+1]-ao))) or (evalf(sign(LL[k]-ao))==0.0)or (evalf(sign(LL[k+1]-ao))==0.0);
+
+if(PB[k]==1){if(TestS==0){
+ A:=A,aa;l0:=l0+"val(btex <span class="font-latex-math">$"+latex(Z[kk])+"$</span> etex);"+"val(btex <span class="font-latex-math">$\\alpha_</span><span class="font-latex-subscript"><span class="font-latex-math">"</span></span><span class="font-latex-math">+aa+"$</span> etex);";aa:=aa+1;kk:=kk+1}
+else{l0:=l0+"val(btex <span class="font-latex-math">$"+latex(Z[kk])+"$</span> etex);";kk:=kk+1}};
+}
+
+ l0:=l0+"val(btex <span class="font-latex-math">$"+latex(Z[nz-1])+"$</span> etex);"
+
+ };
+
+
+TestS:=(evalf(sign(LL[0]-ao))==evalf(sign(LL[1]-ao))) or (evalf(sign(LL[0]-ao))==0.0) or (evalf(sign(LL[1]-ao))==0.0);
+ k0:= evalf(limit(f(x),x=Z[0],1))&gt; evalf(limit(f(x),x=Z[1],-1));
+ kz:=evalf(limit(f(x),x=Z[nz-1],-1))&gt; evalf(limit(f(x),x=Z[nz-2],1));
+
+lsi:=lsic+nom+"'("+nomv+")}<span class="font-latex-math">$ etex);"+
+ if(Z[0]==-infinity){if(evalf(sign(fp(if(Z[1]==+infinity){0}else{Z[1]-10^</span><span class="font-latex-superscript"><span class="font-latex-math">(</span></span><span class="font-latex-math">-5)})))==1){"plus;"}else{"moins;"}}else{if(member(Z[0],F)==0){
+ if(fp(Z[0])==0){"valBarre(btex 0 etex);"}else{" "}+
+ if(sign(fp((Z[0]+10^</span><span class="font-latex-superscript"><span class="font-latex-math">(</span></span><span class="font-latex-math">-3))))==1){"plus;"}else{"moins;"}}else{"nonDefBarre;"+
+ if(sign(fp(10^</span><span class="font-latex-superscript"><span class="font-latex-math">(</span></span><span class="font-latex-math">-3)+Z[0]))==1){"plus;"}else{"moins;"} }}+if(TestS==0){"valBarre(btex$</span>
+ <span class="font-latex-math">$ etex);"+
+
+if(evalf(sign(fp(10^</span><span class="font-latex-superscript"><span class="font-latex-math">(</span></span><span class="font-latex-math">-3)+ifte(Z[0]==-infinity,ifte(Z[1]==+infinity,ifte(member(0,F)==0,0,0.01),ifte(member(Z[1]-1,F)==0,Z[1]-1,Z[1]-1.1)),Z[0]))))==1.0){"plus;"}else{"moins;"}}else{" "};
+
+
+
+if(nz&gt;2){rr:=1; if(nz==NL){for(r:=1; r&lt;=NL-2;r++){ TestS:=(evalf(sign(LL[r]-ao))==evalf(sign(LL[r+1]-ao))) or (evalf(sign(LL[r]-ao))==0.0)or (evalf(sign(LL[r+1]-ao))==0.0);
+ ksp:=evalf(fp(Z[r]+0.01))&gt;0;
+ TestL:=(abs(LL[r])==abs(LL[r+1]));
+ lsp:=lsp+if(member(Z[r],F)==0){"valBarre(btex 0 etex);"}else{"nonDefBarre;"}+
+ if(ksp==1){"plus;"}else{"moins;"}+if(TestS==0){"valBarre(btex $</span> <span class="font-latex-math">$ etex);"}else{" "}+if(TestS==0){if(ksp==1){"plus;"}else{"moins;"}}else{" "};
+ }}
+else{for(r:=1; r&lt;=NL-2;r++){kspp:=evalf(fp(Z[rr]+0.01))&gt;0;TestS:=(evalf(sign(LL[r]-ao))==evalf(sign(LL[r+1]-ao))) or (evalf(sign(LL[r]-ao))==0.0)or (evalf(sign(LL[r+1]-ao))==0.0);
+
+ if(PB[r]==1){if(TestS==0){lsp:=lsp+if(member(Z[rr],F)==0){"valBarre(btex 0 etex);"}else{"nonDefBarre;"}+
+ if(kspp==1){"plus;"}else{"moins;"}+"valBarre(btex $</span> <span class="font-latex-math">$ etex);"+if(kspp==1){"plus;"}else{"moins;"};rr:=rr+1;}
+ else{lsp:=lsp+if(member(Z[rr],F)==0){"valBarre(btex 0 etex);"}else{"nonDefBarre;"}+
+ if(kspp==1){"plus;"}else{"moins;"};rr:=rr+1;}
+}}}};
+
+
+
+
+ lsf:=if(member(Z[nz-1],F)==0){" "}else{"nonDefBarre;"}
+
+
+
+lm0:=limit(f(x),x=Z[0],1)==-infinity;
+
+
+
+
+TestS:=(evalf(sign(LL[0]-ao))==evalf(sign(LL[1]-ao))) or (evalf(sign(LL[0]-ao))==0.0) or (evalf(sign(LL[1]-ao))==0.0);
+
+ li:=lvic+nom+"}$</span> etex);
+"+ if(member(Z[0],F)==0){"valPos(btex <span class="font-latex-math">$"+if(lm0==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[0],1)))}+"$</span> etex,"}
+ else{"nonDefBarre;limDroite(btex <span class="font-latex-math">$"+if(lm0==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[0],1)))}+"$</span> etex,"}+
+ if(k0==1){"1);"}else{"0);"}+if(TestS==0){"valPos(btex <span class="font-latex-math">$ "+ao+" $</span> etex,0.5);"}else{" "};
+
+
+ if(nz&gt;2){if(nz==NL){for(r:=1; r&lt;=nz-2;r++){TestS:=(evalf(sign(LL[r]-ao))==evalf(sign(LL[r+1]-ao))) or (evalf(sign(LL[r]-ao))==0.0)or (evalf(sign(LL[r+1]-ao))==0.0);
+ krm:=evalf(limit(f(x),x=Z[r-1],1))&lt; evalf(limit(f(x),x=Z[r],-1));
+ krp:=evalf(limit(f(x),x=Z[r],1))&gt; evalf(limit(f(x),x=Z[r+1],-1)) ;
+ lmrm:=limit(f(x),x=Z[r],-1)==-infinity;lmrp:=limit(f(x),x=Z[r],1)==-infinity;
+ lp:=lp+if(member(Z[r],F)) {
+ "limGauche(btex <span class="font-latex-math">$"+if(lmrm==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[r],-1)))}+"$</span> etex,"+if(krm==1){"1);"}else{"0);"}+"nonDefBarre;limDroite(btex <span class="font-latex-math">$"+if(lmrp==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[r],1)))}+"$</span> etex,"+if(krp==1){"1);"}else{"0);"}}
+ else{"valPos(btex <span class="font-latex-math">$"+latex(simplify(f(Z[r])))+"$</span>
+ etex,"+if(evalf(sign(fp(Z[r]-0.01)))==sign(fp(Z[r]+0.01))){"0.5);"}else{if(krp==1){"1);"}else{"0);"}}}+if(TestS==0){"valPos(btex
+ <span class="font-latex-math">$ "+ao+" $</span> etex,0.5);"
+ }else{" "};
+};//for
+}else{rr:=1;for(r:=1; r&lt;=NL-2;r++){TestS:=(evalf(sign(LL[r]-ao))==evalf(sign(LL[r+1]-ao))) or (evalf(sign(LL[r]-ao))==0.0)or (evalf(sign(LL[r+1]-ao))==0.0);
+ krm:=evalf(limit(f(x),x=Z[rr-1],1))&lt; evalf(limit(f(x),x=Z[rr],-1));
+ krp:=evalf(limit(f(x),x=Z[rr],1))&gt; evalf(limit(f(x),x=Z[rr+1],-1)) ;
+ lmrm:=limit(f(x),x=Z[rr],-1)==-infinity;lmrp:=limit(f(x),x=Z[rr],1)==-infinity; TestL:=(abs(LL[r])==abs(LL[r+1]));
+
+if(PB[r]==1){if(TestS==0){lp:=lp+if(member(Z[rr],F)){
+ "limGauche(btex <span class="font-latex-math">$"+if(lmrm==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[rr],-1)))}+"$</span> etex,"+if(krm==1){"1);"}else{"0);"}+"nonDefBarre;limDroite(btex <span class="font-latex-math">$"+if(lmrp==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[rr],1)))}+"$</span> etex,"+if(krp==1){"1);"}else{"0);"}}
+ else{"valPos(btex <span class="font-latex-math">$"+latex(simplify(f(Z[rr])))+"$</span>
+ etex,"+if(evalf(sign(fp(Z[rr]-0.01)))==sign(fp(Z[rr]+0.01))){"0.5);"}else{if(krp==1){"1);"}else{"0);"}}}+"valPos(btex
+ <span class="font-latex-math">$ "+ao+" $</span> etex,0.5);
+ ";rr:=rr+1;
+}// testS==0
+else{lp:=lp+if(member(Z[rr],F)){
+ "limGauche(btex <span class="font-latex-math">$"+if(lmrm==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[rr],-1)))}+"$</span> etex,"+if(krm==1){"1);"}else{"0);"}+"nonDefBarre;limDroite(btex <span class="font-latex-math">$"+if(lmrp==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[rr],1)))}+"$</span> etex,"+if(krp==1){"1);"}else{"0);"}}
+ else{"valPos(btex <span class="font-latex-math">$"+latex(simplify(f(Z[rr])))+"$</span>
+ etex,"+if(evalf(sign(fp(Z[rr]-0.01)))==sign(fp(Z[rr]+0.01))){"0.5);"}else{if(krp==1){"1);"}else{"0);
+ "}}};rr:=rr+1;
+}//else testS==0
+}//PB[r]==1
+}//for nz&lt;NL
+}// else nz&lt;NL
+//if nz=NL
+};//if nz&gt;2
+
+
+
+lnz:=limit(f(x),x=Z[nz-1],-1)==-infinity;
+
+
+lf:=if(member(Z[nz-1],F)==0){"valPos(btex <span class="font-latex-math">$"+
+ if(lnz==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[nz-1],-1)))}+"$</span> etex,"+
+ if(kz==1){"1);"}else{"0);"}}
+ else{"limGauche(btex <span class="font-latex-math">$"+
+ if(lnz==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[nz-1],-1)))}+"$</span> etex,"+
+ if(kz==1){"1);nonDefBarre;"}else{"0);nonDefBarre;"}};
+
+
+
+
+
+
+
+MetaLfc:= if(ftt==2){if(nz&gt;2){"beginTableau("+nmr+")"+
+ l0+lsi+lsp+lsf+"
+endTableau;
+
+";}else{
+"beginTableau("+nmr+")"+
+ l0+
+lsi+lsf+"
+endTableau;
+
+";
+}
+}else{
+if(ftt==0){if(nz&gt;2){"beginTableau("+nmr+")"+
+ l0+
+li+
+lp+
+lf
++"
+endTableau;
+
+";}else{"beginTableau("+nmr+")"+
+ l0+
+li+
+lf
++"
+endTableau;
+";}}else{
+if(nz&gt;2){"beginTableau("+nmr+")"+
+ l0+
+lsi+lsp+lsf+
+li+
+lp+
+lf
++"
+endTableau;
+
+";}else{"beginTableau("+nmr+")"+
+ l0+
+lsi+lsf+
+li+
+lf
++"
+endTableau;
+
+";}
+}};
+
+
+
+
+sortie:=fopen("XCasmpfc.mp");
+fprint(sortie,Unquoted,MetaLfc);
+fclose(sortie);
+
+
+ }:;
+
+
+
+
+<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
+
+
+
+
+
+
+
+<span class="comment-delimiter">%%</span><span class="comment">
+</span><span class="comment-delimiter">%% </span><span class="comment">Code giac/Xcas pour les Tableaux de variations de courbes parametrees
+</span><span class="comment-delimiter">%%</span><span class="comment">
+</span>
+
+
+
+
+
+
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>{XcasTVP.cxx}
+TVP(L,F,nom,nomv,ff,ftt,trigo,nmr):={
+
+nl:=size(L);
+fp:=[];
+S:=[];
+f:=[unapply(ff[0],t),unapply(ff[1],t)];
+fp:=[function_diff(f[0]),function_diff(f[1])];
+Z:=[];
+LLL:=[];
+
+
+all_trig_solutions:=1;
+reset_solve_counter(-1,-1);
+
+for(d:=0;d&lt;=1;d++){
+LLL:=concat(L,F[d]);
+Z:=LLL union Z;
+SS:=solve(factor(simplify(fp[d](t))),t);
+ns:=size(SS);
+
+
+for(k:=0;k&lt;ns;k++){
+if(trigo==t){
+m:=0;
+while(evalf(simplify(subst(SS[k],n_1=m)))&lt;=evalf(L[nl-1])){
+
+S:=concat(S,simplify(subst(SS[k],n_1=m)));m:=m+1;
+
+};m:=-1;
+while(evalf(subst(SS[k],n_1=m))&gt;=L[0]){
+
+S:=concat(S,simplify(subst(SS[k],n_1=m)));m:=m-1;
+
+}
+}else{
+S:=concat(S,SS);
+}
+}
+
+
+ si size(S)&gt;0 alors pour j de 0 jusque size(S)-1 faire
+ qq:=member(simplify(S[j]),Z)==0;
+ kk:=(evalf(S[j])&gt;=evalf(L[0])) and (evalf(S[j])&lt;=evalf(L[nl-1]));
+ if(kk==1){if(qq==1){Z:=append(Z,simplify(S[j]))}};
+ fpour
+ fsi;
+Z:=sort(Z);
+nz:=size(Z);
+
+
+ tantque evalf(Z[0])==evalf(Z[1]) faire Z:=Z[1..nz-1];nz:=size(Z);
+ ftantque;
+
+
+
+
+nz:=size(Z);
+u:=1;
+ tantque (u&lt;nz-2) and (nz&gt;2) faire
+ tantque evalf(Z[u])==evalf(Z[u+1]) faire
+ Z:=augment(Z[0..u-1],Z[u+1..nz-1]);nz:=size(Z);
+ ftantque;
+ u:=u+1;
+ ftantque;
+
+
+ };
+
+Z:=sort(Z);
+nz:=size(Z);
+
+
+
+ l0:=" newLigneVariables(btex <span class="font-latex-math">$"+nomv+"$</span> etex);";lp:="",""; lf:="","";lsp:="","";
+pour m de 0 jusque nz-1 faire l0:=l0+"val(btex <span class="font-latex-math">$"+latex(Z[m])+"$</span> etex);
+";fpour;
+
+ lsi:="","";
+
+FFF:=[[],[]];
+
+for(d:=0;d&lt;=1;d++){
+FFF[d]:=concat(F[d],[-infinity,+infinity]);
+ k0:= evalf(limit(f[d](x),x=Z[0],1))&gt; evalf(limit(f[d](x),x=Z[1],-1));
+ kz:=evalf(limit(f[d](x),x=Z[nz-1],-1))&gt; evalf(limit(f[d](x),x=Z[nz-2],1));
+//}
+//<span class="font-latex-math">$
+ lsi[d]:=lsic+nom[d]+"'("+nomv+")}$</span> etex);"+if(member(Z[0],FFF[d])==0){"valBarre(btex <span class="font-latex-math">$"+latex(simplify(fp[d](Z[0])))+"$</span> etex);"}else{if(Z[0]==-infinity){" "}else{"nonDefBarre;
+"}}+
+ if(Z[0]==-infinity){if(sign(evalf(fp[d](if(Z[1]==+infinity){0}else{Z[1]-10^(-5)})))==1){"plus;"}else{"moins;"}}else{if(member(Z[0],F[d])==0){
+ if(sign(fp[d](Z[0]+10^(-5)))==1){"plus;"}else{"moins;"}}else{
+ if(sign(fp[d]((Z[0]+10^(-5))))==1){"plus;"}else{"moins;"} }}
+
+if(nz&gt;2){ for(r:=1; r&lt;=nz-2;r++){ ksp:=evalf(fp[d](Z[r]+0.01))&gt;0;
+ lsp[d]:=lsp[d]+if(member(Z[r],F[d])==0){"valBarre(btex <span class="font-latex-math">$"+latex(simplify(fp[d](Z[r])))+"$</span> etex);"}else{"nonDefBarre;"}+
+ if(ksp==1){"plus;"}else{"moins;"}
+ }; }
+
+lsf[d]:=if(member(Z[nz-1],FFF[d])==0){"valBarre(btex <span class="font-latex-math">$"+latex(simplify(fp[d](Z[nz-1])))+"$</span> etex);"}else{if(Z[nz-1]==+infinity){" "}else{"nonDefBarre;"}}
+
+
+
+
+ }
+
+
+
+
+
+
+
+
+
+
+
+ lm0:=1,2; li:=1,2; krm:=1,2; krp:=1,2; lmrm:=1,2; lmrp:=1,2; lp:="",""; lnz:=1,2; lf:=1,2; Kz:=1,2;K0:=1,2;
+
+
+for(d:=0;d&lt;=1;d++){
+ K0[d]:= evalf(limit(f[d](x),x=Z[0],1))&gt; evalf(limit(f[d](x),x=Z[1],-1));
+ Kz[d]:=evalf(limit(f[d](x),x,Z[nz-1],-1))&gt; evalf(limit(f[d](x),x,Z[nz-2],1));
+//{
+//<span class="font-latex-math">$
+lm0[d]:=limit(f[d](x),x,Z[0],1)==-infinity;
+ li[d]:=lvic+nom[d]+"}$</span> etex);"+
+ if(member(Z[0],F[d])==0){"valPos(btex <span class="font-latex-math">$"+if(lm0[d]==1){"-\\infty"}else{latex(simplify(limit(f[d](x),x,Z[0],1)))}+"$</span> etex,"}
+ else{"nonDefBarre;limDroite(btex <span class="font-latex-math">$"+if(lm0[d]==1){"-\\infty"}else{latex(simplify(limit(f[d](x),x,Z[0],1)))}+"$</span> etex,"}+
+ if(K0[d]==1){"1"}else{"0"}+
+ ");";
+
+ if(nz&gt;2){ for(r:=1; r&lt;=nz-2;r++){ krm[d]:=evalf(limit(f[d](x),x=Z[r-1],1))&lt; evalf(limit(f[d](x),x=Z[r],-1));
+ krp[d]:=evalf(limit(f[d](x),x=Z[r],1))&gt; evalf(limit(f[d](x),x,Z[r+1],-1)) ;
+ lmrm[d]:=limit(f[d](x),x,Z[r],-1)==-infinity;lmrp[d]:=limit(f[d](x),x,Z[r],1)==-infinity;
+ lp[d]:=lp[d]+if(member(Z[r],F[d])){
+ "limGauche(btex
+ <span class="font-latex-math">$"+if(lmrm[d]==1){"-\\infty"}else{latex(simplify(limit(f[d](x),x,Z[r],-1)))}+"$</span>
+ etex,"+if(krm[d]==1){"1);"}else{"0);"}+"nonDefBarre;limDroite(btex <span class="font-latex-math">$"+if(lmrp[d]==1){"-\\infty"}else{latex(simplify(limit(f[d](x),x,Z[r],1)))}+"$</span> etex,"+if(krp[d]==1){"1);"}else{"0);"}}
+ else{"valPos(btex <span class="font-latex-math">$"+latex(simplify(f[d](Z[r])))+"$</span>
+ etex,"+if(sign(evalf(fp[d](Z[r]-0.001)))==sign(evalf((fp[d](Z[r]+0.001))) )){"0.5);"}else{if(krp[d]==1){"1);"}else{"0);
+"}}}
+ }; }
+
+lnz[d]:=limit(f[d](x),x=Z[nz-1],-1)==-infinity;
+
+
+lf[d]:=if(member(Z[nz-1],F[d])==0){"valPos(btex <span class="font-latex-math">$"+
+ if(lnz[d]==1){"-\\infty"}else{latex(simplify(limit(f[d](x),x=Z[nz-1],-1)))}+"$</span> etex,"+
+ if(Kz[d]==1){"1);"}else{"0);"}}
+ else{"limGauche(btex <span class="font-latex-math">$"+
+ if(lnz[d]==1){"-\\infty"}else{latex(simplify(limit(f[d](x),x=Z[nz-1],-1)))}+"$</span> etex,"+
+ if(Kz[d]==1){"1);nonDefBarre;"}else{"0);nonDefBarre;"}};
+
+
+
+
+
+
+}
+
+
+
+
+
+
+
+
+MetaLfc:=if(ftt==2){if(nz&gt;2){"
+
+beginTableau("+nmr+")"+
+ l0+lsi[0]+lsp[0]+lsf[0]+lsi[1]+lsp[1]+lsf[1]+"
+endTableau;
+
+";}else{
+"beginTableau("+nmr+")"+
+ l0+
+lsi[0]+lsf[0]+lsi[1]+lsf[1]+"
+endTableau;
+
+";
+}
+}else{ if(ftt==0){if(nz&gt;2){"beginTableau("+nmr+")"+
+ l0+
+li[0]+
+lp[0]+
+lf[0]+
+li[1]+
+lp[1]+
+lf[1]
++"
+endTableau;
+
+";}else{"beginTableau("+nmr+")"+
+ l0+
+li[0]+
+lf[0]+
+li[1]+
+lf[1]
++"
+endTableau;
+
+";}}else{
+if(nz&gt;2){"beginTableau("+nmr+")"+
+ l0+
+lsi[0]+lsp[0]+lsf[0]+
+li[0]+
+lp[0]+
+lf[0]+
+lsi[1]+lsp[1]+lsf[1]+
+li[1]+
+lp[1]+
+lf[1]
++"
+endTableau;
+
+";}else{"beginTableau("+nmr+")"+
+ l0+
+lsi[0]+lsf[0]+
+li[0]+
+lf[0]+
+lsi[1]+lsf[1]+
+li[1]+
+lf[1]
++"
+endTableau;
+
+";}
+}
+}
+
+sortie:=fopen("XCasmpfc.mp");
+fprint(sortie,Unquoted,MetaLfc);
+fclose(sortie);
+
+}:;
+<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
+
+
+
+
+<span class="comment-delimiter">%%</span><span class="comment">
+</span><span class="comment-delimiter">%% </span><span class="comment">Code giac/Xcas pour les Tableaux de signes de produits
+</span><span class="comment-delimiter">%%</span><span class="comment">
+</span>
+
+
+
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>{XcasTabSignL.cxx}
+
+
+TS(nomf,L,D,trigo,nmr):={
+L:=apply(f-&gt;unapply(f,x),L)
+n:=size(L);
+Z:=NULL;
+nl:=size(L);
+S:=[];
+mini:=D[0]; maxi:=D[1];
+
+pour k de 0 jusque n-1 faire
+
+
+
+
+if(trigo==t){
+all_trig_solutions:=1;
+reset_solve_counter(-1,-1);
+SS:=solve(factor(simplify(L[k](x))),x);
+ns:=size(SS);
+for(j:=0;j&lt;ns;j++){
+m:=0;
+while(evalf(simplify(subst(SS[j],n_1=m)))&lt;=evalf(maxi)){
+S:=concat(S,simplify(subst(SS[j],n_1=m)));m:=m+1;
+};m:=-1;
+while(evalf(subst(SS[j],n_1=m))&gt;=evalf(mini)){
+S:=concat(S,simplify(subst(SS[j],n_1=m)));m:=m-1;
+}
+}
+
+}else{
+S:=solve(L[k](x),x);
+}
+
+
+
+
+ si size(S)&gt;0 alors pour j de 0 jusque size(S)-1 faire
+ if(S[j]&gt;mini and S[j]&lt;maxi){Z:=Z,simplify(S[j]);}
+ fpour;
+ fsi;
+fpour;
+
+
+
+
+
+Z:=sort(Z);
+nz:=size(Z);
+
+
+ Z:=sort([op(set[(Z)])]);
+
+
+nz:=size(Z);
+
+if(nz==0){li:="";l0:="val(btex <span class="font-latex-math">$"+latex(D[0])+"$</span> etex);val(btex <span class="font-latex-math">$"+latex(D[1])+"$</span> etex);";
+ for(p:=0;p&lt;=n-1;p++){li:=li+lsic+latex(L[p](x))+"}<span class="font-latex-math">$ etex);"+
+if(mini!=-infinity and L[p](mini)==0){"
+ valBarre(btex 0 etex);"}else{"
+ "}+
+if(L[p]((mini+maxi)*0.5&gt;0)){"plus;"}else{"moins;"}+if(maxi!=+infinity and L[p](maxi)==0){"
+ valBarre(btex 0 etex);"}else{"
+ "}
+
+}
+ lf:=if(product(L[s]((mini+maxi)*.5),s,0,n-1)&gt;0){"plus;"}else{"moins;"};
+
+
+MetaLfc:=" beginTableau("+nmr+")
+newLigneVariables(btex $</span> {x}<span class="font-latex-math">$ etex);
+ "+l0+li+ lsic+nomf+"(x)}$</span> etex);"+
+ if(mini!=-infinity and product(L[s](mini),s,0,n-1)==0){"
+ valBarre(btex 0 etex);"}else{"
+ "}+ lf+
+ if(maxi!=+infinity and product(L[s](maxi),s,0,n-1)==0){"
+ valBarre(btex 0 etex);"}else{"
+ "}+"
+endTableau;
+"
+;
+
+}else{
+
+l0:="val(btex <span class="font-latex-math">$"+latex(D[0])+"$</span> etex);";li:=" ";lr:=" ";
+pour m de 0 jusque nz-1 faire l0:=l0+"val(btex <span class="font-latex-math">$"+latex(Z[m])+"$</span> etex);
+";fpour;
+l0:=l0+"val(btex <span class="font-latex-math">$"+latex(D[1])+"$</span> etex);";
+
+
+for(p:=0;p&lt;=n-1;p++){lp:="";
+ li:=li+lsic+latex(L[p](x))+"}<span class="font-latex-math">$ etex);"+
+ if(mini!=-infinity and L[p](mini)==0){"
+ valBarre(btex 0 etex);"}else{"
+ "}+
+ if(L[p](Z[0]-0.01)&gt;0){"plus;"}else{"moins;"};
+
+ for(r:=0; r&lt;=nz-2;r++){
+ lp:=lp+if(simplify(L[p](Z[r]))==0){"
+ valBarre(btex 0 etex);"}else{"barre;
+ "}+
+ if(L[p]((Z[r]+Z[r+1])*.5)&gt;0){"plus;"}else{"moins;"}};
+
+ li:=li+lp+ if(simplify(L[p](Z[nz-1]))==0){"valBarre(btex 0 etex);"}else{"barre;"}+
+ if(L[p](Z[nz-1]+1.0)&gt;0){"plus;"}else{"moins;
+ "}+if(maxi!=+infinity and L[p](maxi)==0){"
+ valBarre(btex 0 etex);"}else{"
+ "}
+ };
+
+
+pour t de 0 jusque nz-2 faire
+ lr:=lr+if(product(L[s]((Z[t]+Z[t+1])*.5),s,0,n-1)&gt;0){"plus;"}else{"moins;"}+"valBarre(btex 0 etex);"
+ fpour
+
+MetaLfc:=" beginTableau("+nmr+")
+newLigneVariables(btex $</span> {x}<span class="font-latex-math">$ etex);
+ "+l0+
+ li
+ + lsic+nomf+"(x)}$</span> etex);"+
+ if(mini!=-infinity and product(L[s](mini),s,0,n-1)==0){"
+ valBarre(btex 0 etex);"}else{"
+ "}+
+ if(product(L[s](Z[0]-0.01),s,0,n-1)&gt;0){"plus;"}else{"moins;"}+"valBarre(btex 0 etex);"+
+ lr+
+ if(product(L[s](Z[nz-1]+0.01),s,0,n-1)&gt;0){"plus;"}else{"moins;"}+
+ if(maxi!=+infinity and product(L[s](maxi),s,0,n-1)==0){"
+ valBarre(btex 0 etex);"}else{"
+ "}+"
+endTableau;
+
+ ";
+}
+sortie:=fopen("XCasmpfc.mp");
+fprint(sortie,Unquoted,MetaLfc);
+fclose(sortie);
+
+ }:;
+
+<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
+
+
+
+
+<span class="comment-delimiter">%%</span><span class="comment">
+</span><span class="comment-delimiter">%% </span><span class="comment">Code giac/Xcas pour les Tableaux de signes de quotients
+</span><span class="comment-delimiter">%%</span><span class="comment">
+</span>
+
+
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>{XcasTabSignQ.cxx}
+TSq(nomf,L,Fo,D,trigo,nmr):={
+L:=apply(f-&gt;unapply(f,x),L);
+Fo:=apply(f-&gt;unapply(f,x),Fo);
+L:=concat(L,Fo);
+n:=size(L);
+Z:=NULL;
+m:=size(Fo);
+F:=NULL;FF:=NULL;
+mini:=D[0]; maxi:=D[1];
+S:=[];
+SF:=[];
+
+pour k de 0 jusque n-1 faire
+
+
+
+if(trigo==t){
+all_trig_solutions:=1;
+reset_solve_counter(-1,-1);
+SS:=solve(factor(simplify(L[k](x))),x);
+ns:=size(SS);
+for(j:=0;j&lt;ns;j++){
+mm:=0;
+while(evalf(simplify(subst(SS[j],n_1=mm)))&lt;=evalf(maxi)){
+S:=concat(S,simplify(subst(SS[j],n_1=mm)));mm:=mm+1;
+};mm:=-1;
+while(evalf(subst(SS[j],n_1=mm))&gt;=evalf(mini)){
+S:=concat(S,simplify(subst(SS[j],n_1=mm)));mm:=mm-1;
+}
+}
+
+}else{
+S:=concat(S,solve(L[k](x),x));
+}
+
+
+
+
+
+ si size(S)&gt;0 alors pour j de 0 jusque size(S)-1 faire
+ if(S[j]&gt;mini and S[j]&lt;maxi){Z:=Z,simplify(S[j]);}
+ fpour;
+ fsi;
+fpour;
+
+
+pour k de 0 jusque m-1 faire
+
+
+
+if(trigo==t){
+all_trig_solutions:=1;
+reset_solve_counter(-1,-1);
+SSF:=solve(factor(simplify(Fo[k](x))),x);
+nsf:=size(SSF);
+for(j:=0;j&lt;nsf;j++){
+mm:=0;
+while(evalf(simplify(subst(SSF[j],n_1=mm)))&lt;=evalf(maxi)){
+SF:=concat(SF,simplify(subst(SSF[j],n_1=mm)));mm:=mm+1;
+};mm:=-1;
+while(evalf(subst(SSF[j],n_1=mm))&gt;=evalf(mini)){
+SF:=concat(SF,simplify(subst(SSF[j],n_1=mm)));mm:=mm-1;
+}
+}
+
+}else{
+SF:=concat(SF,solve(Fo[k](x),x));
+}
+
+ si size(SF)&gt;0 alors pour j de 0 jusque size(SF)-1 faire
+ FF:=FF,simplify(SF[j]);
+ if(SF[j]&gt;mini and SF[j]&lt;maxi){F:=F,simplify(SF[j]);}
+ fpour;
+ fsi;
+fpour;
+
+
+
+Z:=[Z,F];
+
+
+Z:=sort([op(set[op(Z)])]);
+
+nz:=size(Z);
+
+if(nz==0){li:="";l0:="val(btex <span class="font-latex-math">$"+latex(D[0])+"$</span> etex);val(btex <span class="font-latex-math">$"+latex(D[1])+"$</span> etex);";
+ for(p:=0;p&lt;=n-1;p++){li:=li+lsic+latex(L[p](x))+"}<span class="font-latex-math">$ etex);"+
+if(mini!=-infinity and L[p](mini)==0){"
+ valBarre(btex 0 etex);"}else{"
+ "}+
+if(L[p]((mini+maxi)*0.5&gt;0)){"plus;"}else{"moins;"}+if(maxi!=+infinity and L[p](maxi)==0){"
+ valBarre(btex 0 etex);"}else{"
+ "}
+
+}
+ lf:=if(product(L[s]((mini+maxi)*.5),s,0,n-1)&gt;0){"plus;"}else{"moins;"};
+
+
+
+
+MetaLfc:="
+beginTableau("+nmr+")
+newLigneVariables(btex $</span> {x}<span class="font-latex-math">$ etex);
+ "+l0+li+
+ lsic+nomf+"(x)}$</span> etex);"+
+ if(member(mini,FF)==0){if((mini!=-infinity) and (product(L[s](mini),s,0,n-1)==0)){" valBarre(btex 0 etex);"}else{" "}}else{"nonDefBarre;"}+ lf+
+ if(member(maxi,FF)==0){if((maxi!=+infinity) and (product(L[s](maxi),s,0,n-1)==0)){" valBarre(btex 0 etex);"}else{" "}}else{"nonDefBarre;"}+"
+endTableau;
+
+"
+;
+
+
+
+
+}else{
+
+
+l0:="val(btex <span class="font-latex-math">$"+latex(D[0])+"$</span> etex);";li:=" ";lr:=" ";
+pour m de 0 jusque nz-1 faire l0:=l0+"val(btex <span class="font-latex-math">$"+latex(Z[m])+"$</span> etex);
+";fpour;
+l0:=l0+"val(btex <span class="font-latex-math">$"+latex(D[1])+"$</span> etex);";
+
+
+for(p:=0;p&lt;=n-1;p++){lp:="";
+ li:=li+lsic+latex(L[p](x))+"}<span class="font-latex-math">$ etex);"+
+ if(mini!=-infinity and L[p](mini)==0){" valBarre(btex 0 etex);"}else{" "}+
+ if(L[p](Z[0]-0.01)&gt;0){"plus;"}else{"moins;"};
+
+ for(r:=0; r&lt;=nz-2;r++){lp:=lp+if(simplify(L[p](Z[r]))==0){" valBarre(btex 0 etex);"}else{"barre;"}+
+ if(L[p]((Z[r]+Z[r+1])*.5)&gt;0){"plus;"}else{"moins;"}};
+
+ li:=li+lp+ if(simplify(L[p](Z[nz-1]))==0){"valBarre(btex 0 etex);"}else{"barre;"}+
+ if(L[p](Z[nz-1]+1.0)&gt;0){"plus;"}else{"moins;
+ "}+if(maxi!=+infinity and L[p](maxi)==0){"valBarre(btex 0 etex);"}else{" "}
+
+ };
+
+
+pour t de 0 jusque nz-2 faire
+ lr:=lr+if(product(L[s]((Z[t]+Z[t+1])*.5),s,0,n-1)&gt;0){"plus;"}else{"moins;"}+
+ if(member(Z[t+1],FF)==0){"valBarre(btex 0 etex);"}else{ "nonDefBarre;"}
+ fpour
+
+
+
+
+MetaLfc:="
+beginTableau("+nmr+")
+newLigneVariables(btex $</span> {x}<span class="font-latex-math">$ etex);
+ "+l0+
+ li
+ +
+ lsic+nomf+"(x)}$</span> etex);"+
+ if(member(mini,FF)==0){if((mini!=-infinity) and (product(L[s](mini),s,0,n-1)==0)){" valBarre(btex 0 etex);"}else{" "}}else{"nonDefBarre;"}+
+ if(product(L[s](Z[0]-0.01),s,0,n-1)&gt;0){"plus;"}else{"moins;"}+
+ if(member(Z[0],FF)==0){"valBarre(btex 0 etex);"}else{ "nonDefBarre;"}+
+ lr+
+ if(product(L[s](Z[nz-1]+0.01),s,0,n-1)&gt;0){"plus;"}else{"moins;"}+
+ if(member(maxi,FF)==0){if((maxi!=+infinity) and (product(L[s](maxi),s,0,n-1)==0)){"valBarre(btex 0 etex);"}else{" "}}else{"nonDefBarre;"}+"
+endTableau;
+
+"
+
+
+}
+
+
+
+
+sortie:=fopen("XCasmpfc.mp");
+fprint(sortie,Unquoted,MetaLfc);
+fclose(sortie);
+
+
+
+
+
+ }:;
+
+<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
+
+
+
+
+<span class="comment-delimiter">%% </span><span class="comment">Code giac/Xcas pour les Tableaux de signes du produit
+</span><span class="comment-delimiter">%% </span><span class="comment">de 2 facteurs affines
+</span><span class="comment-delimiter">%%</span><span class="comment">
+</span>
+
+
+
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>{XcasTabSigna.cxx}
+TSa(a,b,c,d,nmr):={
+zA:=solve(a*x+b=0,x)[0];
+zB:=solve(c*x+d=0,x)[0];
+zmin:=min(zA,zB);
+zmax:=max(zA,zB);
+ Meta:= "
+ beginTableau("+nmr+")
+ newLigneVariables(btex <span class="font-latex-math">$ {x}$</span> etex);
+ val(btex <span class="font-latex-math">$-\\infty$</span> etex);val(btex <span class="font-latex-math">$"+latex(zmin)+"$</span> etex);
+val(btex <span class="font-latex-math">$"+latex(zmax)+"$</span>etex);
+val(btex <span class="font-latex-math">$+\\infty$</span> etex);
+ "+lsic+if(a==1){"x+"}else{if(a==-1){"-x+"}else{a+"x+"}}+b+"}<span class="font-latex-math">$ etex);"
+ + if(a&gt;0){"moins;"}else{"plus;"}+
+ if(zmin==zA){"valBarre(btex 0 etex);"}else{"barre;"}+
+ if(zmin==zA){si a&gt;0 alors "plus;"; sinon "moins;";fsi}
+ else{si a&gt;0 alors "moins;"; sinon "plus;"; fsi}+
+ if(zmin==zA){"barre;"}else{"valBarre(btex 0 etex);"}+
+ if(a&gt;0){"plus;"}else{"moins;"}
+ +lsic+if(c==1){"x+"}else{if(c==-1){"-x+"}else{c+"x+"}}+d+"}$</span> etex);"
+ + if(c&gt;0){"moins"}else{"plus"}+";"+
+ if(zmin==zB){"valBarre(btex 0 etex);"}else{"barre;"}+
+ if(zmin==zB){si c&gt;0 alors "plus;"; sinon "moins;";fsi}
+ else{si c&gt;0 alors "moins;"; sinon "plus;"; fsi}+
+ if(zmin==zB){"barre;"}else{"valBarre(btex 0 etex);"}+
+ if(c&gt;0){"plus;"}else{"moins;"}
+
+ +lsic+"{("+if(a==1){"x+"}else{if(a==-1){"-x+"}else{a+"x+"}}+b+")("+if(c==1){"x+"}else{if(c==-1){"-x+"}else{c+"x+"}}+d+")}}<span class="font-latex-math">$ etex);"
+ + si a*c&gt;0 alors plus; sinon moins;fsi+";"+
+ "valBarre(btex 0 etex);"+
+ si a*c&gt;0 alors moins; sinon plus;fsi+";"+
+ "valBarre(btex 0 etex);"+
+ si a*c&gt;0 alors plus; sinon moins;fsi+";"+"
+endTableau;
+"
+;
+
+
+
+sortie:=fopen("XCasmpfc.mp");
+fprint(sortie,Unquoted,Meta);
+fclose(sortie);
+
+
+ }:;
+</span><span class="font-latex-sedate"><span class="keyword"><span class="font-latex-math">\end</span></span></span><span class="function-name"><span class="font-latex-math">{VerbatimOut}</span></span><span class="font-latex-math">
+
+
+
+
+
+
+%%$</span>
+<span class="comment-delimiter">%% </span><span class="comment">Code giac/Xcas pour les Tableaux de Signes d'expression ne contenant
+</span><span class="comment-delimiter">%% </span><span class="comment">qu'un seul terme
+</span>
+
+
+
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>{XcasTSc.cxx}
+
+TSc(g,D,F,trigo,nmr):={
+f:=unapply(g,x);
+mini:=D[0]; maxi:=D[1];lm:=" ";
+Z:=mini,maxi;
+S:=[];
+
+
+
+if(trigo==t){
+all_trig_solutions:=1;
+reset_solve_counter(-1,-1);
+SS:=solve(factor(simplify(f(x))),x);
+ns:=size(SS);
+for(j:=0;j&lt;ns;j++){
+m:=0;
+while(evalf(simplify(subst(SS[j],n_1=m)))&lt;=evalf(maxi)){
+S:=concat(S,simplify(subst(SS[j],n_1=m)));m:=m+1;
+};m:=-1;
+while(evalf(subst(SS[j],n_1=m))&gt;=evalf(mini)){
+S:=concat(S,simplify(subst(SS[j],n_1=m)));m:=m-1;
+}
+}
+
+}else{
+S:=solve(f(x),x);
+}
+
+
+
+
+
+if(size(S)==0 and size(F)==0){
+l0:="val(btex <span class="font-latex-math">$"+latex(D[0])+"$</span> etex);val(btex <span class="font-latex-math">$"+latex(D[1])+"$</span> etex);";
+li:=if(member(mini,F)!=0){"nonDefBarre;"}else{if(mini!=-infinity and f(mini)==0){"
+ valBarre(btex 0 etex);"}else{"
+ "}}+
+if(mini!=-infinity or maxi!=+infinity){if(f((mini+maxi)*0.5&gt;0)){"plus;"}else{"moins;"}}else{if(f(0.3145274774464545777744)&gt;0){"plus;"}else{"moins;"}};
+lf:=if(member(maxi,F)!=0){"nonDefBarre;"}else{if(maxi!=+infinity and f(maxi)==0){"
+ valBarre(btex 0 etex);"}else{"
+ "}};
+}else{
+if(size(S!=0)){pour j de 0 jusque size(S)-1 faire
+ if(S[j]&gt;mini and S[j]&lt;maxi){Z:=Z,simplify(S[j])};
+ fpour}
+
+Z:=concat([Z],F);
+
+ Z:=sort([op(set[op(Z)])]);
+
+
+nz:=size(Z);
+l0:=" ";li:=" ";lr:=" ";
+if(nz==2){l0:="val(btex <span class="font-latex-math">$"+latex(D[0])+"$</span> etex);val(btex <span class="font-latex-math">$"+latex(D[1])+"$</span> etex);";
+li:=if(mini!=-infinity and f(mini)==0){"
+ valBarre(btex 0 etex);"}else{if(member(mini,F)==0){"
+ "}else{"nonDefBarre;"}}+
+if(f((mini+maxi)*0.5)&gt;0){"plus;"}else{"moins;"};
+lf:=if(maxi!=+infinity and f(maxi)==0){"
+ valBarre(btex 0 etex);"}else{if(member(maxi,F)==0){"
+ "}else{"nonDefBarre;"}
+ };
+
+}else{
+l0:="val(btex <span class="font-latex-math">$"+latex(Z[0])+"$</span> etex);";li:=" ";
+pour m de 1 jusque nz-1 faire l0:=l0+"val(btex <span class="font-latex-math">$"+latex(Z[m])+"$</span> etex);
+";
+fpour;
+
+
+li:= if(mini!=-infinity and f(mini)==0){"
+ valBarre(btex 0 etex);"}else{if(member(mini,F)==0){"
+ "}else{"nonDefBarre;"}
+ }
+
+lm:=if(nz&gt;2){for(r:=0; r&lt;nz-2;r++){lm:=lm+if(Z[r]==-infinity){
+if(f((Z[r+1]-1))&gt;0){"plus;"}else{"moins;"}
+}else{if(f((Z[r]+Z[r+1])*.5)&gt;0){"plus;"}else{"moins;"}}
++
+ if(member(Z[r+1],F)==0){"valBarre(btex 0 etex);"}else{"nonDefBarre;"}
+ }}else{" "};
+
+lf:=if(f(Z[nz-2]+0.1)&gt;0){"plus;"}else{"moins;"}+if(maxi!=+infinity and f(maxi)==0){"valBarre(btex 0 etex);"}else{if(member(maxi,F)==0){"
+ "}else{"nonDefBarre;"}
+ };
+}
+};
+
+
+
+
+MetaLfc:="
+
+beginTableau("+nmr+")
+newLigneVariables(btex <span class="font-latex-math">$\\displaystyle {x}$</span> etex);
+ "+l0+lsic+latex(f(x))+"}<span class="font-latex-math">$ etex);"+
+ li+lm+lf
+ +"
+endTableau;
+
+"
+;
+
+
+
+
+sortie:=fopen("XCasmpfc.mp");
+fprint(sortie,Unquoted,MetaLfc);
+fclose(sortie);
+ }:;
+
+</span><span class="font-latex-sedate"><span class="keyword"><span class="font-latex-math">\end</span></span></span><span class="function-name"><span class="font-latex-math">{VerbatimOut}</span></span><span class="font-latex-math">
+
+
+
+
+
+
+
+%%$</span>
+
+
+
+
+
+
+<span class="comment-delimiter">%%%%</span><span class="comment">
+</span><span class="comment-delimiter">%%%</span><span class="comment">
+</span><span class="comment-delimiter">%%% </span><span class="comment">Pour des tableaux de variations simples sans fonctions
+</span><span class="comment-delimiter">%%%</span><span class="comment">
+</span><span class="comment-delimiter">%%%</span><span class="comment">
+</span>
+
+
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>{XcasTVS.cxx}
+TVS(La,Lo,F,nomf,nomv,nmr):={
+
+na:=size(La);
+f:=F;
+if(member(La[0],F)){f:=f[1..size(f)-1]};
+if(member(La[na-1],F)){f:=f[0..size(f)-2]};
+Z:=sort(concat(La,f));
+Zo:=sort([op(set[op(Z)])]);
+nz:=size(Z);
+nzo:=size(Zo);
+
+
+k0:= evalf(Lo[0])&gt; evalf(Lo[1]);
+kz:=evalf(Lo[nz-1])&gt; evalf(Lo[nz-2]);
+
+
+l0:=" newLigneVariables(btex <span class="font-latex-math">$"+nomv+"$</span> etex);";lp:=" "; lf:=" ";
+ for(m:=0;m&lt;=nzo-1;m++){l0:=l0+"val(btex <span class="font-latex-math">$"+latex(Zo[m])+"$</span> etex);"}
+
+li:=lvic+nomf+"}<span class="font-latex-math">$ etex);"+
+ if(member(Z[0],F)==0){"valPos(btex $</span>"+latex(Lo[0])+"<span class="font-latex-math">$ etex,"}
+ else{"nonDefBarre;limDroite(btex $</span>"+latex(Lo[0])+"<span class="font-latex-math">$ etex,"}+
+ if(k0==1){"1"}else{"0"}+
+ ");";
+
+ if(nz&gt;2){ for(r:=1; r&lt;=nz-2;r++){
+ krm:=evalf(Lo[r-1])&lt; evalf(Lo[r]);
+ krp:=evalf(Lo[r])&gt; evalf(Lo[r+1]) ;
+
+ lp:=lp+if(Z[r]==Z[r+1]){
+ "limGauche(btex$</span>"+latex(Lo[r])+"<span class="font-latex-math">$etex,"+
+ if(krm==1){"1);"}
+ else{"0);"}
+ }// fin if zr=zr+1
+ else{
+ if(Z[r]==Z[r-1]){
+ "nonDefBarre;limDroite(btex$</span>"+latex(Lo[r])+"<span class="font-latex-math">$etex,"+
+ if(krp==1){"1);"}
+ else{"0);"}
+ }//fin if zr=zr-1
+ else{
+ "valPos(btex $</span>"+latex(Lo[r])+"<span class="font-latex-math">$etex,"+
+ if(krp==1){"1);"}else{"0);"}
+}//fin else zr=zr-1
+}//fin else zr=zr+1
+}//fin for
+}//fin de if nz&gt;2
+
+
+
+lf:=if(member(Z[nz-1],F)==0){"valPos(btex $</span>"+latex(Lo[nz-1])+"<span class="font-latex-math">$ etex,"+
+ if(kz==1){"1);"}else{"0);"}}
+ else{"limGauche(btex $</span>"+latex(Lo[nz-1])+"<span class="font-latex-math">$ etex,"+
+ if(kz==1){"1);nonDefBarre;"}else{"0);nonDefBarre;"}};
+
+
+MetaLfc:=
+
+ if(nz&gt;2){"beginTableau("+nmr+")"+
+ l0+
+li+
+lp+
+lf
++"
+endTableau;
+
+";}else{"beginTableau("+nmr+")"+
+ l0+
+li+
+lf
++"
+endTableau;
+
+";}
+
+//return(MetaLfc);
+
+sortie:=fopen("XCasmpfc.mp");
+fprint(sortie,Unquoted,MetaLfc);
+fclose(sortie);
+
+
+}:;
+
+</span><span class="font-latex-sedate"><span class="keyword"><span class="font-latex-math">\end</span></span></span><span class="function-name"><span class="font-latex-math">{VerbatimOut}</span></span><span class="font-latex-math">
+
+%%$</span>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<span class="comment-delimiter">%%</span><span class="comment">
+</span><span class="comment-delimiter">%% </span><span class="comment">traitement des fichiers produits par giac/xcas
+</span><span class="comment-delimiter">%%</span><span class="comment">
+</span><span class="comment-delimiter">%%</span><span class="comment">
+</span>
+<span class="comment-delimiter">% </span><span class="comment">pour l'&#233;chelle des tableaux taper </span><span class="font-latex-sedate"><span class="comment">\ech</span></span><span class="comment">{facteur de r&#233;duction}
+</span>
+<span class="font-latex-sedate"><span class="keyword">\newcommand</span></span><span class="font-latex-sedate">\echelle</span>{1}
+<span class="font-latex-sedate"><span class="keyword">\newcommand</span></span><span class="font-latex-sedate">\ech</span>[1]{<span class="font-latex-sedate"><span class="keyword">\renewcommand</span></span><span class="font-latex-sedate">\echelle</span>{#1}}
+
+
+<span class="font-latex-sedate"><span class="keyword">\newcommand</span></span><span class="font-latex-sedate">\couleurtab</span>{black}
+<span class="font-latex-sedate"><span class="keyword">\newcommand</span></span><span class="font-latex-sedate">\coultab</span>[1]{<span class="font-latex-sedate"><span class="keyword">\renewcommand</span></span><span class="font-latex-sedate">\couleurtab</span>{#1}}
+
+
+<span class="font-latex-sedate"><span class="keyword">\newcommand</span></span><span class="function-name">{</span><span class="font-latex-sedate"><span class="function-name">\dresse</span></span><span class="function-name">}</span>[2]{<span class="comment">%
+</span><span class="font-latex-sedate">\ifthenelse</span>{<span class="font-latex-sedate">\boolean</span>{xcas}}{<span class="comment">% Avec l'option "XCas present"
+</span> <span class="font-latex-sedate">\executGiacmp</span>{XCas#2.giac}<span class="comment">% reconstituer le tableau
+</span> <span class="comment">% exporter le source mp
+</span> <span class="comment">% puis lancer metapost pour creer
+</span> <span class="comment">% l'image du tableau
+</span> <span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="font-latex-sedate">\cat</span> XCasmpfc.mp &gt;&gt; <span class="font-latex-sedate">\nomtravail</span>_Tab.mp}
+ <span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="font-latex-sedate">\cat</span> enteteMP.cfg &gt;&gt; <span class="font-latex-sedate">\nomtravail</span>_Tab#2.mp}
+ <span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="font-latex-sedate">\echod</span> def beginTableau(expr c) =<span class="font-latex-sedate">\echof</span> &gt;&gt; <span class="font-latex-sedate">\nomtravail</span>_Tab#2.mp}
+ <span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="font-latex-sedate">\echod</span> begingroup<span class="font-latex-sedate">\echof</span> &gt;&gt; <span class="font-latex-sedate">\nomtravail</span>_Tab#2.mp}
+ <span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="font-latex-sedate">\echod</span> charcode:=c;<span class="font-latex-sedate">\echof</span> &gt;&gt; <span class="font-latex-sedate">\nomtravail</span>_Tab#2.mp}
+ <span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="font-latex-sedate">\echod</span> clearxy; clearit; clearpen;<span class="font-latex-sedate">\echof</span> &gt;&gt; <span class="font-latex-sedate">\nomtravail</span>_Tab#2.mp}
+ <span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="font-latex-sedate">\echod</span> pickup defaultpen;<span class="font-latex-sedate">\echof</span> &gt;&gt; <span class="font-latex-sedate">\nomtravail</span>_Tab#2.mp}
+ <span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="font-latex-sedate">\echod</span> drawoptions(withcolor(#1));<span class="font-latex-sedate">\echof</span> &gt;&gt; <span class="font-latex-sedate">\nomtravail</span>_Tab#2.mp}
+ <span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="font-latex-sedate">\echod</span> initTableau;<span class="font-latex-sedate">\echof</span> &gt;&gt; <span class="font-latex-sedate">\nomtravail</span>_Tab#2.mp}
+ <span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="font-latex-sedate">\echod</span> enddef;<span class="font-latex-sedate">\echof</span> &gt;&gt; <span class="font-latex-sedate">\nomtravail</span>_Tab#2.mp}
+ <span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="font-latex-sedate">\cat</span> XCasmpfc.mp &gt;&gt; <span class="font-latex-sedate">\nomtravail</span>_Tab#2.mp}
+ <span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="font-latex-sedate">\cat</span> queue.mp &gt;&gt; <span class="font-latex-sedate">\nomtravail</span>_Tab#2.mp}
+ <span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{mpost -jobname=<span class="font-latex-sedate">\nomtravail</span>_Tab <span class="font-latex-sedate">\nomtravail</span>_Tab#2.mp}
+ <span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="font-latex-sedate">\rem</span> <span class="font-latex-sedate">\nomtravail</span>_Tab#2.mp}
+ }<span class="comment">%
+</span> {<span class="comment">% sinon, si le tableau est absent, alerte.
+</span> <span class="font-latex-sedate">\IfFileExists</span>{<span class="font-latex-sedate">\nomtravail</span>_Tab.<span class="font-latex-sedate">\theTVn</span>}{}{<span class="comment">%
+</span> <span class="font-latex-sedate">\PackageError</span>{tablor}{Tableau absent non
+ reconstituable.}{Pour compiler il faut, soit les fichiers de
+ tableaux, soit le fichier <span class="font-latex-sedate">\nomtravail</span>_Tab.mp, soit disposer de
+ XCas.}}}
+
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{center}</span>
+ <span class="font-latex-sedate">\includegraphics</span>[scale=<span class="font-latex-sedate">\echelle</span>]{<span class="font-latex-sedate">\nomtravail</span>_Tab.<span class="font-latex-sedate">\theTVn</span>}
+<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{center}</span>
+<span class="font-latex-sedate">\stepcounter</span>{TVn}
+}
+
+
+<span class="comment-delimiter">%%</span><span class="comment">
+</span><span class="comment-delimiter">%% </span><span class="comment">traitement des fichiers produits par giac/xcas avec possibilite
+</span><span class="comment-delimiter">%% </span><span class="comment">de modifier le fichier metapost (environnement etoile))
+</span><span class="comment-delimiter">%%</span><span class="comment">
+</span>
+
+
+<span class="font-latex-sedate"><span class="keyword">\newcommand</span></span><span class="function-name">{</span><span class="font-latex-sedate"><span class="function-name">\dressetoile</span></span><span class="function-name">}</span>[2]{<span class="comment">%
+</span><span class="font-latex-sedate">\IfFileExists</span>{<span class="font-latex-sedate">\nomtravail</span>_Tab.<span class="font-latex-sedate">\theTVn</span>}{<span class="comment">% Test sur l'existence du tableau
+</span><span class="comment-delimiter">% </span><span class="comment">Si oui, inclusion du fichier source de sauvegarde mp dans Tableaux
+</span><span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="font-latex-sedate">\cat</span> TSav-<span class="font-latex-sedate">\theTVn</span>.mp &gt;&gt; <span class="font-latex-sedate">\nomtravail</span>_Tab.mp}}
+<span class="comment-delimiter">% </span><span class="comment">Si non, lancement des operations de fabrication
+</span>{<span class="font-latex-sedate">\executGiacmp</span>{XCas#2.giac}<span class="comment">%
+</span><span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="font-latex-sedate">\editeur</span> XCasmpfc.mp }
+
+ <span class="comment">% Modification avec l'editeur choisi
+</span><span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="font-latex-sedate">\cat</span> XCasmpfc.mp &gt;&gt; <span class="font-latex-sedate">\nomtravail</span>_Tab.mp}
+<span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="font-latex-sedate">\cp</span> XCasmpfc.mp TSav-<span class="font-latex-sedate">\theTVn</span>.mp} <span class="comment">% Sauvegarde du
+</span> <span class="comment">% source mp sur le disque pour une
+</span> <span class="comment">% inclusion ulterieure dans Tableaux.mp.
+</span><span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="font-latex-sedate">\cat</span> enteteMP.cfg &gt;&gt; <span class="font-latex-sedate">\nomtravail</span>_Tab#2.mp}
+ <span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="font-latex-sedate">\echod</span> def beginTableau(expr c) =<span class="font-latex-sedate">\echof</span> &gt;&gt; <span class="font-latex-sedate">\nomtravail</span>_Tab#2.mp}
+ <span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="font-latex-sedate">\echod</span> begingroup<span class="font-latex-sedate">\echof</span> &gt;&gt; <span class="font-latex-sedate">\nomtravail</span>_Tab#2.mp}
+ <span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="font-latex-sedate">\echod</span> charcode:=c;<span class="font-latex-sedate">\echof</span> &gt;&gt; <span class="font-latex-sedate">\nomtravail</span>_Tab#2.mp}
+ <span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="font-latex-sedate">\echod</span> clearxy; clearit; clearpen;<span class="font-latex-sedate">\echof</span> &gt;&gt; <span class="font-latex-sedate">\nomtravail</span>_Tab#2.mp}
+ <span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="font-latex-sedate">\echod</span> pickup defaultpen;<span class="font-latex-sedate">\echof</span> &gt;&gt; <span class="font-latex-sedate">\nomtravail</span>_Tab#2.mp}
+ <span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="font-latex-sedate">\echod</span> drawoptions(withcolor(#1));<span class="font-latex-sedate">\echof</span> &gt;&gt; <span class="font-latex-sedate">\nomtravail</span>_Tab#2.mp}
+ <span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="font-latex-sedate">\echod</span> initTableau;<span class="font-latex-sedate">\echof</span> &gt;&gt; <span class="font-latex-sedate">\nomtravail</span>_Tab#2.mp}
+ <span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="font-latex-sedate">\echod</span> enddef;<span class="font-latex-sedate">\echof</span> &gt;&gt; <span class="font-latex-sedate">\nomtravail</span>_Tab#2.mp}
+<span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="font-latex-sedate">\cat</span> XCasmpfc.mp &gt;&gt; <span class="font-latex-sedate">\nomtravail</span>_Tab#2.mp}} <span class="comment">% Inclusion du
+</span> <span class="comment">% source dans le
+</span> <span class="comment">% fichier
+</span> <span class="comment">% Tableaux
+</span><span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="font-latex-sedate">\cat</span> queue.mp &gt;&gt; <span class="font-latex-sedate">\nomtravail</span>_Tab#2.mp}
+<span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{mpost -jobname=<span class="font-latex-sedate">\nomtravail</span>_Tab <span class="font-latex-sedate">\nomtravail</span>_Tab#2.mp}<span class="comment">% Reconstitution des tableaux
+</span> <span class="comment">% et creation du dernier. L'option
+</span> <span class="comment">% pallie l'absence de end en fin de
+</span> <span class="comment">% fichier
+</span><span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="font-latex-sedate">\rem</span> <span class="font-latex-sedate">\nomtravail</span>_Tab#2.mp}
+
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{center}</span>
+ <span class="font-latex-sedate">\includegraphics</span>[scale=<span class="font-latex-sedate">\echelle</span>]{<span class="font-latex-sedate">\nomtravail</span>_Tab.<span class="font-latex-sedate">\theTVn</span>}
+<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{center}</span>
+<span class="font-latex-sedate">\ech</span>{1}
+<span class="font-latex-sedate"><span class="keyword">\setcounter</span></span><span class="variable-name">{TVn}{</span><span class="font-latex-sedate"><span class="variable-name">\theTVnbis</span></span><span class="variable-name">}</span> <span class="comment">% Restauration du compteur TVn
+</span>}
+
+
+
+
+
+
+
+<span class="comment-delimiter">%%</span><span class="comment">
+</span><span class="comment-delimiter">%%</span><span class="comment">
+</span><span class="comment-delimiter">%%%</span><span class="comment">
+</span><span class="comment-delimiter">%%%</span><span class="comment">
+</span><span class="comment-delimiter">%%% </span><span class="comment">les "giac" qui permettent d'executer la commande rentree dans le fichier tex
+</span><span class="comment-delimiter">%%% </span><span class="comment">suivis des environnements qui permettront la saisie du code giac/xcas
+</span><span class="comment-delimiter">%%% </span><span class="comment">Les versions etoilees permettent de modifier le code metapost produit initialement
+</span><span class="comment-delimiter">%%%</span><span class="comment">
+</span>
+
+
+
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>{XCasa.giac}
+maple_mode(0);
+approx_mode:=0;
+read("config.cxx");
+read("XcasTabSigna.cxx");
+read("XCasa.user");
+<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
+
+<span class="font-latex-sedate"><span class="keyword">\newenvironment</span></span><span class="function-name">{TSa}</span>
+{<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>??]{XCasa.user}}
+{<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
+ <span class="font-latex-sedate">\dresse</span>{<span class="font-latex-sedate">\couleurtab</span>}{a}
+}
+
+
+
+
+
+
+
+
+
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>{XCasQ.giac}
+maple_mode(0);
+approx_mode:=0;
+read("config.cxx");
+read("XcasTabSignQ.cxx");
+read("XCasQ.user");
+<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
+
+<span class="font-latex-sedate"><span class="keyword">\newenvironment</span></span><span class="function-name">{TSq}</span><span class="comment">%
+</span>{<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>??]{XCasQ.user}}
+{<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span><span class="font-latex-sedate">\dresse</span>{<span class="font-latex-sedate">\couleurtab</span>}{Q}}
+
+
+
+<span class="font-latex-sedate"><span class="keyword">\newenvironment</span></span><span class="function-name">{TSq*}</span>[1]<span class="comment">%
+</span>{<span class="font-latex-sedate"><span class="keyword">\setcounter</span></span><span class="variable-name">{TVnbis}{</span><span class="font-latex-sedate"><span class="variable-name">\theTVn</span></span><span class="variable-name">}</span>
+<span class="font-latex-sedate"><span class="keyword">\setcounter</span></span><span class="variable-name">{TVn}{#1}</span>
+<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>??]{XCasQ.user}}
+{<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span><span class="font-latex-sedate">\dressetoile</span>{<span class="font-latex-sedate">\couleurtab</span>}{Q}}
+
+
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>{XCasL.giac}
+maple_mode(0);
+approx_mode:=0;
+read("config.cxx");
+read("XcasTabSignL.cxx");
+read("XCasL.user");
+<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
+
+<span class="font-latex-sedate"><span class="keyword">\newenvironment</span></span><span class="function-name">{TS}</span><span class="comment">%
+</span>{<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>??]{XCasL.user}}
+{<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span><span class="font-latex-sedate">\dresse</span>{<span class="font-latex-sedate">\couleurtab</span>}{L}}
+
+
+<span class="font-latex-sedate"><span class="keyword">\newenvironment</span></span><span class="function-name">{TS*}</span>[1]
+{<span class="font-latex-sedate"><span class="keyword">\setcounter</span></span><span class="variable-name">{TVnbis}{</span><span class="font-latex-sedate"><span class="variable-name">\theTVn</span></span><span class="variable-name">}</span>
+<span class="font-latex-sedate"><span class="keyword">\setcounter</span></span><span class="variable-name">{TVn}{#1}</span>
+<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>??]{XCasL.user}}
+{<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span><span class="font-latex-sedate">\dressetoile</span>{<span class="font-latex-sedate">\couleurtab</span>}{L}}
+
+
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>{XCasTSc.giac}
+maple_mode(0);
+approx_mode:=0;
+read("config.cxx");
+read("XcasTSc.cxx");
+read("XCasTSc.user");
+<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
+
+
+
+
+<span class="font-latex-sedate"><span class="keyword">\newenvironment</span></span><span class="function-name">{TSc*}</span>[1]<span class="comment">%
+</span>{<span class="font-latex-sedate"><span class="keyword">\setcounter</span></span><span class="variable-name">{TVnbis}{</span><span class="font-latex-sedate"><span class="variable-name">\theTVn</span></span><span class="variable-name">}</span>
+<span class="font-latex-sedate"><span class="keyword">\setcounter</span></span><span class="variable-name">{TVn}{#1}</span>
+<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>??]{XCasTSc.user}}
+{<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span><span class="font-latex-sedate">\dressetoile</span>{<span class="font-latex-sedate">\couleurtab</span>}{TSc}}
+
+
+<span class="font-latex-sedate"><span class="keyword">\newenvironment</span></span><span class="function-name">{TSc}</span><span class="comment">%
+</span>{<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>??]{XCasTSc.user}}
+{<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span><span class="font-latex-sedate">\dresse</span>{<span class="font-latex-sedate">\couleurtab</span>}{TSc}}
+
+
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>{XCasTV.giac}
+maple_mode(0);
+approx_mode:=0;
+read("config.cxx");
+read("XcasTV.cxx");
+read("XCasTV.user");
+<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
+
+
+
+<span class="font-latex-sedate"><span class="keyword">\newenvironment</span></span><span class="function-name">{TV}</span>{<span class="comment">%
+</span><span class="font-latex-sedate">\VerbatimEnvironment</span>
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>??]{XCasTV.user}}<span class="comment">%
+</span>{<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
+<span class="font-latex-sedate">\dresse</span>{<span class="font-latex-sedate">\couleurtab</span>}{TV}}
+
+<span class="font-latex-sedate"><span class="keyword">\newenvironment</span></span><span class="function-name">{TV*}</span>[1]{<span class="comment">%
+</span><span class="font-latex-sedate"><span class="keyword">\setcounter</span></span><span class="variable-name">{TVnbis}{</span><span class="font-latex-sedate"><span class="variable-name">\theTVn</span></span><span class="variable-name">}</span>
+<span class="font-latex-sedate"><span class="keyword">\setcounter</span></span><span class="variable-name">{TVn}{#1}</span>
+<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>??]{XCasTV.user}}<span class="comment">%
+</span>{<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span><span class="font-latex-sedate">\dressetoile</span>{<span class="font-latex-sedate">\couleurtab</span>}{TV}}
+
+
+
+
+
+
+
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>{XCasTVP.giac}
+maple_mode(0);
+approx_mode:=0;
+read("config.cxx");
+read("XcasTVP.cxx");
+read("XCasTVP.user");
+<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
+
+<span class="font-latex-sedate"><span class="keyword">\newenvironment</span></span><span class="function-name">{TVP}</span><span class="comment">%
+</span>{<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>??]{XCasTVP.user}}<span class="comment">%
+</span>{<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
+<span class="font-latex-sedate">\dresse</span>{<span class="font-latex-sedate">\couleurtab</span>}{TVP}}
+
+<span class="font-latex-sedate"><span class="keyword">\newenvironment</span></span><span class="function-name">{TVP*}</span>[1]{<span class="comment">%
+</span><span class="font-latex-sedate"><span class="keyword">\setcounter</span></span><span class="variable-name">{TVnbis}{</span><span class="font-latex-sedate"><span class="variable-name">\theTVn</span></span><span class="variable-name">}</span>
+<span class="font-latex-sedate"><span class="keyword">\setcounter</span></span><span class="variable-name">{TVn}{#1}</span>
+<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>??]{XCasTVP.user}}<span class="comment">%
+</span>{<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span><span class="font-latex-sedate">\dressetoile</span>{<span class="font-latex-sedate">\couleurtab</span>}{TVP}}
+
+
+
+
+
+
+
+
+
+
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>{XCasTVZ.giac}
+maple_mode(0);
+approx_mode:=0;
+read("config.cxx");
+read("XcasTVZ.cxx");
+read("XCasTVZ.user");
+<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
+
+<span class="font-latex-sedate"><span class="keyword">\newenvironment</span></span><span class="function-name">{TVZ}</span><span class="comment">%
+</span>{<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>??]{XCasTVZ.user}}<span class="comment">%
+</span>{<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
+<span class="font-latex-sedate">\dresse</span>{<span class="font-latex-sedate">\couleurtab</span>}{TVZ}}
+
+<span class="font-latex-sedate"><span class="keyword">\newenvironment</span></span><span class="function-name">{TVZ*}</span>[1]{<span class="comment">%
+</span><span class="font-latex-sedate"><span class="keyword">\setcounter</span></span><span class="variable-name">{TVnbis}{</span><span class="font-latex-sedate"><span class="variable-name">\theTVn</span></span><span class="variable-name">}</span>
+<span class="font-latex-sedate"><span class="keyword">\setcounter</span></span><span class="variable-name">{TVn}{#1}</span>
+<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>??]{XCasTVZ.user}}<span class="comment">%
+</span>{<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span><span class="font-latex-sedate">\dressetoile</span>{<span class="font-latex-sedate">\couleurtab</span>}{TVZ}}
+
+
+
+
+
+
+
+
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>{XCasTVapp.giac}
+maple_mode(0);
+approx_mode:=0;
+read("config.cxx");
+read("XcasTVapp.cxx");
+read("XCasTVapp.user");
+<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
+
+<span class="font-latex-sedate"><span class="keyword">\newenvironment</span></span><span class="function-name">{TVapp}</span><span class="comment">%
+</span>{<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>??]{XCasTVapp.user}}<span class="comment">%
+</span>{<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
+<span class="font-latex-sedate">\dresse</span>{<span class="font-latex-sedate">\couleurtab</span>}{TVapp}}
+
+<span class="font-latex-sedate"><span class="keyword">\newenvironment</span></span><span class="function-name">{TVapp*}</span>[1]{<span class="comment">%
+</span><span class="font-latex-sedate"><span class="keyword">\setcounter</span></span><span class="variable-name">{TVnbis}{</span><span class="font-latex-sedate"><span class="variable-name">\theTVn</span></span><span class="variable-name">}</span>
+<span class="font-latex-sedate"><span class="keyword">\setcounter</span></span><span class="variable-name">{TVn}{#1}</span>
+<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>??]{XCasTVapp.user}}<span class="comment">%
+</span>{<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span><span class="font-latex-sedate">\dressetoile</span>{<span class="font-latex-sedate">\couleurtab</span>}{TVapp}}
+
+
+
+
+
+
+
+
+
+
+
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>{XCasTVI.giac}
+maple_mode(0);
+approx_mode:=0;
+read("config.cxx");
+read("XcasTVI.cxx");
+read("XCasTVI.user");
+<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
+
+<span class="font-latex-sedate"><span class="keyword">\newenvironment</span></span><span class="function-name">{TVI}</span><span class="comment">%
+</span>{<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>??]{XCasTVI.user}}<span class="comment">%
+</span>{<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span><span class="font-latex-sedate">\dresse</span>{<span class="font-latex-sedate">\couleurtab</span>}{TVI}}
+
+
+<span class="font-latex-sedate"><span class="keyword">\newenvironment</span></span><span class="function-name">{TVI*}</span>[1]<span class="comment">%
+</span>{<span class="font-latex-sedate"><span class="keyword">\setcounter</span></span><span class="variable-name">{TVnbis}{</span><span class="font-latex-sedate"><span class="variable-name">\theTVn</span></span><span class="variable-name">}</span>
+<span class="font-latex-sedate"><span class="keyword">\setcounter</span></span><span class="variable-name">{TVn}{#1}</span>
+<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>??]{XCasTVI.user}}<span class="comment">%
+</span>{<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span><span class="font-latex-sedate">\dressetoile</span>{<span class="font-latex-sedate">\couleurtab</span>}{TVI}}
+
+
+
+
+
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>{XCasTVIex.giac}
+maple_mode(0);
+approx_mode:=0;
+read("config.cxx");
+read("XcasTVIex.cxx");
+read("XCasTVIex.user");
+<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
+
+<span class="font-latex-sedate"><span class="keyword">\newenvironment</span></span><span class="function-name">{TVIex}</span><span class="comment">%
+</span>{<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>??]{XCasTVIex.user}}<span class="comment">%
+</span>{<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span><span class="font-latex-sedate">\dresse</span>{<span class="font-latex-sedate">\couleurtab</span>}{TVIex}}
+
+
+<span class="font-latex-sedate"><span class="keyword">\newenvironment</span></span><span class="function-name">{TVIex*}</span>[1]<span class="comment">%
+</span>{<span class="font-latex-sedate"><span class="keyword">\setcounter</span></span><span class="variable-name">{TVnbis}{</span><span class="font-latex-sedate"><span class="variable-name">\theTVn</span></span><span class="variable-name">}</span>
+<span class="font-latex-sedate"><span class="keyword">\setcounter</span></span><span class="variable-name">{TVn}{#1}</span>
+<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>??]{XCasTVIex.user}}<span class="comment">%
+</span>{<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span><span class="font-latex-sedate">\dressetoile</span>{<span class="font-latex-sedate">\couleurtab</span>}{TVIex}}
+
+
+
+
+
+
+
+
+
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>{XCasTVIapp.giac}
+maple_mode(0);
+approx_mode:=0;
+read("config.cxx");
+read("XcasTVIapp.cxx");
+read("XCasTVIapp.user");
+<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
+
+<span class="font-latex-sedate"><span class="keyword">\newenvironment</span></span><span class="function-name">{TVIapp}</span><span class="comment">%
+</span>{<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>??]{XCasTVIapp.user}}<span class="comment">%
+</span>{<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span><span class="font-latex-sedate">\dresse</span>{<span class="font-latex-sedate">\couleurtab</span>}{TVIapp}}
+
+
+<span class="font-latex-sedate"><span class="keyword">\newenvironment</span></span><span class="function-name">{TVIapp*}</span>[1]<span class="comment">%
+</span>{<span class="font-latex-sedate"><span class="keyword">\setcounter</span></span><span class="variable-name">{TVnbis}{</span><span class="font-latex-sedate"><span class="variable-name">\theTVn</span></span><span class="variable-name">}</span>
+<span class="font-latex-sedate"><span class="keyword">\setcounter</span></span><span class="variable-name">{TVn}{#1}</span>
+<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>??]{XCasTVIapp.user}}<span class="comment">%
+</span>{<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span><span class="font-latex-sedate">\dressetoile</span>{<span class="font-latex-sedate">\couleurtab</span>}{TVIapp}}
+
+
+
+
+
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>{XCasTVPC.giac}
+maple_mode(0);
+approx_mode:=0;
+read("config.cxx");
+read("XcasTVPC.cxx");
+read("XCasTVPC.user");
+<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
+
+<span class="font-latex-sedate"><span class="keyword">\newenvironment</span></span><span class="function-name">{TVPC}</span><span class="comment">%
+</span>{<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>??]{XCasTVPC.user}}<span class="comment">%
+</span>{<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
+<span class="font-latex-sedate">\dresse</span>{<span class="font-latex-sedate">\couleurtab</span>}{TVPC}}
+
+<span class="font-latex-sedate"><span class="keyword">\newenvironment</span></span><span class="function-name">{TVPC*}</span>[1]{<span class="comment">%
+</span><span class="font-latex-sedate"><span class="keyword">\setcounter</span></span><span class="variable-name">{TVnbis}{</span><span class="font-latex-sedate"><span class="variable-name">\theTVn</span></span><span class="variable-name">}</span>
+<span class="font-latex-sedate"><span class="keyword">\setcounter</span></span><span class="variable-name">{TVn}{#1}</span>
+<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>??]{XCasTVPC.user}}<span class="comment">%
+</span>{<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span><span class="font-latex-sedate">\dressetoile</span>{<span class="font-latex-sedate">\couleurtab</span>}{TVPC}}
+
+
+
+
+
+
+
+
+
+
+
+
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>{XCasTVS.giac}
+maple_mode(0);
+approx_mode:=0;
+read("config.cxx");
+read("XcasTVS.cxx");
+read("XCasTVS.user");
+<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
+
+<span class="font-latex-sedate"><span class="keyword">\newenvironment</span></span><span class="function-name">{TVS}</span><span class="comment">%
+</span>{<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>??]{XCasTVS.user}}<span class="comment">%
+</span>{<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
+<span class="font-latex-sedate">\dresse</span>{<span class="font-latex-sedate">\couleurtab</span>}{TVS}}
+
+<span class="font-latex-sedate"><span class="keyword">\newenvironment</span></span><span class="function-name">{TVS*}</span>[1]{<span class="comment">%
+</span><span class="font-latex-sedate"><span class="keyword">\setcounter</span></span><span class="variable-name">{TVnbis}{</span><span class="font-latex-sedate"><span class="variable-name">\theTVn</span></span><span class="variable-name">}</span>
+<span class="font-latex-sedate"><span class="keyword">\setcounter</span></span><span class="variable-name">{TVn}{#1}</span>
+<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>??]{XCasTVS.user}}<span class="comment">%
+</span>{<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span><span class="font-latex-sedate">\dressetoile</span>{<span class="font-latex-sedate">\couleurtab</span>}{TVS}}
+
+
+
+
+
+
+
+
+
+
+<span class="comment-delimiter">%% </span><span class="comment">pour nettoyer les fichiers auxiliaires
+</span>
+<span class="font-latex-sedate">\AtEndDocument</span>{<span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="font-latex-sedate">\cat</span> queue.mp &gt;&gt; <span class="font-latex-sedate">\nomtravail</span>_Tab.mp}
+ }
+
+
+
+
+<span class="comment-delimiter">%%</span><span class="comment">
+</span><span class="comment-delimiter">%% </span><span class="comment">Zi end -&gt; enjoy :)
+</span></pre>
+ </body>
+</html>