summaryrefslogtreecommitdiff
path: root/Master/texmf-dist
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2008-01-28 19:35:44 +0000
committerKarl Berry <karl@freefriends.org>2008-01-28 19:35:44 +0000
commit24078264b6352d3a11d7d4e8a8e3793528b76339 (patch)
tree6019bfec9bd87a484a288501c7e6a844e815d959 /Master/texmf-dist
parenta898113387e9657ab658eb9cccb60988c3a3a2cc (diff)
tablor update (25jan08)
git-svn-id: svn://tug.org/texlive/trunk@6436 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist')
-rw-r--r--Master/texmf-dist/doc/latex/tablor/tablor.html802
-rw-r--r--Master/texmf-dist/doc/latex/tablor/tablor.pdfbin137247 -> 156708 bytes
-rw-r--r--Master/texmf-dist/doc/latex/tablor/tablor.tex310
-rw-r--r--Master/texmf-dist/tex/latex/tablor/tablor.sty460
4 files changed, 1154 insertions, 418 deletions
diff --git a/Master/texmf-dist/doc/latex/tablor/tablor.html b/Master/texmf-dist/doc/latex/tablor/tablor.html
index 9505cccb01f..3a8dd19054a 100644
--- a/Master/texmf-dist/doc/latex/tablor/tablor.html
+++ b/Master/texmf-dist/doc/latex/tablor/tablor.html
@@ -85,7 +85,7 @@
<span class="font-latex-sedate">\NeedsTeXFormat</span>{LaTeX2e}[1995/12/01]
<span class="font-latex-sedate">\ProvidesPackage</span>{<span class="flyspell-incorrect">tablor</span>}
- [21/01/2008 v1.3
+ [23/01/2008 v1.4
la machine &#224; cr&#233;er des tableaux de signes et variations]
@@ -93,17 +93,17 @@
<span class="comment-delimiter">%% </span><span class="comment">Cr&#233;e 5 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"><span class="flyspell-duplicate">TSa</span></span><span class="comment">(-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="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([-2*x+3,x^2-1,x^2+1,x-1,x^2-2],</span><span class="font-latex-sedate"><span class="comment">\tv</span></span><span class="comment">);
+</span><span class="comment-delimiter">% </span><span class="comment">TS([-2*x+3,x^2-1,x^2+1,x-1,x^2-2],[a,b],</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],</span><span class="font-latex-sedate"><span class="comment">\tv</span></span><span class="comment">)
+</span><span class="comment-delimiter">%</span><span class="comment">TSq("Q",[-2*x+3,-4*x+5],[x^2-16,x-2],[a,b],</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">
@@ -120,11 +120,11 @@
<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>{
-<span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{rm XCasmp.mp* XCasmp.log XCasmp?.mp* XCasmp?.log XCasmpTV.mp* XCasmpTV.log *.out XCasmpTVI.mp* XCasmpTVI.log
- *.in *.meta *<span class="flyspell-incorrect">mpx</span>* *~}}
+<span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{rm XCasmp.mp* XCasmp.log XCasmp?.mp* XCasmp?.log XCasmpTV.mp* XCasmpTV.log *.user XCasmpTVI.mp* XCasmpTVI.log
+ *.giac *.cxx *<span class="flyspell-incorrect">mpx</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">\bouger</span></span><span class="function-name">}</span>[1]{
-<span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{cp <span class="flyspell-duplicate">XCas</span>* #1}}
+<span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{cp XCas* #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">\recup</span></span><span class="function-name">}</span>[2]{
@@ -132,7 +132,7 @@
-<span class="font-latex-sedate"><span class="keyword">\newcounter</span></span><span class="function-name">{</span><span class="function-name"><span class="flyspell-duplicate">TVn</span></span><span class="function-name">}</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>}
@@ -145,7 +145,7 @@
<span class="font-latex-sedate">\makeatother</span>
-<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>{XcasTV.meta}
+<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,nmr):={
nl:=size(L);
f:=unapply(f,x);
@@ -153,9 +153,9 @@ fp:=fonction_derivee(f);
Z:=concat(L,F);
S:=resoudre(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;=<span class="flyspell-duplicate">evalf</span>(L[<span class="flyspell-duplicate">nl</span>-1]));
+ kk:=(evalf(S[j])&gt;=evalf(L[0])) and (evalf(S[j])&lt;=evalf(L[<span class="flyspell-duplicate">nl</span>-1]));
if(kk==1){Z:=append(Z,simplifier(S[j]))};
- <span class="flyspell-duplicate">fpour</span>
+ fpour
fsi;
Z:=sort(Z);
@@ -175,8 +175,8 @@ pour m de 0 jusque nz-1 faire l0:=l0+"val(btex <span class="font-latex-math">$"+
kz:=evalf(limite(f(x),x=Z[nz-1],-1))&gt; evalf(limite(f(x),x=Z[nz-2],1));
lsi:="
-newLigneSignes(btex <span class="font-latex-math">$\\hbox{ Signe de }\\atop{\\displaystyle "+nom+"'("+nomv+")}$</span> <span class="flyspell-duplicate">etex</span>);"+
- if(Z[0]==-infinity){if(sign(evalf(fp(if(Z[1]==+infinity){0}else{Z[1]-10^(-5)})))==1){"plus;"}else{"moins;"}}else{if(member(Z[0],F)==0){
+newLigneSignes(btex <span class="font-latex-math">$\\hbox{ Signe de }\\atop{\\displaystyle "+nom+"'("+nomv+")}$</span> etex);"+
+ if(Z[0]==-infinity){if(sign(evalf(fp(if(Z[1]==+infinity){0}else{Z[1]-10^(-5)})))==1){"plus;"}<span class="flyspell-duplicate">else</span>{"moins;"}}else{if(member(Z[0],F)==0){
if(sign(fp(Z[0]+10^(-5)))==1){"plus;"}else{"moins;"}}else{"<span class="flyspell-duplicate">nonDefBarre</span>;"+
if(sign(fp((Z[0]+10^(-5))))==1){"plus;"}else{"moins;"} }}
@@ -185,19 +185,19 @@ if(nz&gt;2){ for(r:=1; r&lt;=nz-2;r++){ ksp:=evalf(fp(Z[r]+0.01))&gt;0;
if(ksp==1){"plus;"}else{"moins;"}
}; }
-lsf:=if(member(Z[nz-1],F)==0){""}else{"nomDefBarre;
+<span class="flyspell-duplicate">lsf</span>:=if(member(Z[nz-1],F)==0){""}else{"nomDefBarre;
"}
-lm0:=limite(f(x),x=Z[0],1)==-<span class="flyspell-duplicate">infinity</span>;
+lm0:=limite(f(x),x=Z[0],1)==-infinity;
li:="
newLigneVariations(btex <span class="font-latex-math">$\\hbox{\</span><span class="font-latex-bold"><span class="font-latex-math">\bf</span></span><span class="font-latex-math"> Variations de }\\atop{\\displaystyle \\Mathbold{"+nom+"}}$</span> <span class="flyspell-duplicate">etex</span>);"+
if(member(Z[0],F)==0){"valPos(btex <span class="font-latex-math">$"+if(lm0==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[0],1)))}+"$</span> etex,"}
else{"nonDefBarre;limDroite(btex <span class="font-latex-math">$"+if(lm0==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[0],1)))}+"$</span> etex,"}+
- if(k0==1){"1"}else{"0"}+
+ if(k0==1){"1"}<span class="flyspell-duplicate">else</span>{"0"}+
");";
if(nz&gt;2){ for(r:=1; r&lt;=nz-2;r++){ krm:=evalf(limite(f(x),x=Z[r-1],1))&lt; evalf(limite(f(x),x=Z[r],-1));
krp:=evalf(limite(f(x),x=Z[r],1))&gt; evalf(limite(f(x),x=Z[r+1],-1)) ;
- lmrm:=limite(f(x),x=Z[r],-1)==-infinity;lmrp:=limite(f(x),x=Z[r],1)==-infinity;
+ lmrm:=limite(f(x),x=Z[r],-1)==-infinity;lmrp:=limite(f(x),x=Z[r],1)==-<span class="flyspell-duplicate">infinity</span>;
lp:=lp+if(member(Z[r],F)){
"limGauche(btex <span class="font-latex-math">$"+if(lmrm==1){"-\\infty"}else{latex(simplifier(limite(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(simplifier(limite(f(x),x=Z[r],1)))}+"$</span> etex,"+if(krp==1){"1);"}else{"0);"}}
else{"valPos(btex <span class="font-latex-math">$"+latex(simplifier(f(Z[r])))+"$</span>
@@ -205,13 +205,13 @@ newLigneVariations(btex <span class="font-latex-math">$\\hbox{\</span><span clas
"}}}
}; }
-lnz:=limite(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(simplifier(limite(f(x),x=Z[nz-1],-1)))}+"$</span> etex,"}else{"nonDefBarre;limGauche(btex <span class="font-latex-math">$"+if(lnz==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[nz-1],-1)))}+"$</span> etex,"}+
+lnz:=limite(f(x),x=Z[nz-1],-1)==-<span class="flyspell-duplicate">infinity</span>;
+ lf:=if(member(Z[nz-1],F)==0){"valPos(btex <span class="font-latex-math">$"+if(lnz==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[nz-1],-1)))}+"$</span> etex,"}else{"<span class="flyspell-duplicate">nonDefBarre</span>;limGauche(btex <span class="font-latex-math">$"+if(lnz==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[nz-1],-1)))}+"$</span> etex,"}+
if(kz==1){"1);"}<span class="flyspell-duplicate">else</span>{"0);
"};
-intro:="input tableauVariation;
+intro:="input <span class="flyspell-duplicate">tableauVariation</span>;
verbatimtex
<span class="comment-delimiter">%</span><span class="comment">&amp;latex
</span> <span class="font-latex-warning">\</span><span class="keyword"><span class="font-latex-warning">\</span></span><span class="keyword">documentclass</span><span class="function-name">{article}</span>
@@ -224,58 +224,68 @@ intro:="input tableauVariation;
"
-MetaL:= if(ftt==0){if(nz&gt;2){intro+"beginTableau("+nmr+")"+
+<span class="flyspell-duplicate">MetaL</span>:=if(ftt==2){if(nz&gt;2){intro+"beginTableau("+nmr+")"+
+ l0+lsi+lsp+lsf+"
+endTableau;
+end";}else{
+intro+"beginTableau("+nmr+")"+
+ l0+
+<span class="flyspell-duplicate">lsi</span>+lsf+"
+endTableau;
+end";
+}
+}<span class="flyspell-duplicate">else</span>{ if(ftt==0){if(nz&gt;2){intro+"beginTableau("+nmr+")"+
l0+
li+
lp+
<span class="flyspell-duplicate">lf</span>
+"
-endTableau;
-end";}else{intro+"beginTableau("+nmr+")"+
+<span class="flyspell-duplicate">endTableau</span>;
+end";}else{intro+"beginTableau("+<span class="flyspell-duplicate">nmr</span>+")"+
l0+
li+
<span class="flyspell-duplicate">lf</span>
+"
-endTableau;
+<span class="flyspell-duplicate">endTableau</span>;
end";}}else{
if(nz&gt;2){intro+"beginTableau("+nmr+")"+
l0+
<span class="flyspell-duplicate">lsi</span>+lsp+lsf+
li+
lp+
-lf
+<span class="flyspell-duplicate">lf</span>
+"
endTableau;
<span class="flyspell-duplicate">end</span>";}else{intro+"beginTableau("+nmr+")"+
l0+
lsi+lsf+
li+
-lf
+<span class="flyspell-duplicate">lf</span>
+"
<span class="flyspell-duplicate">endTableau</span>;
-end";}
-}
+<span class="flyspell-duplicate">end</span>";}
+}}
-return(<span class="flyspell-duplicate">MetaL</span>);
+<span class="flyspell-duplicate">return</span>(<span class="flyspell-duplicate">MetaL</span>);
}:;
<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">\begin</span></span><span class="function-name">{VerbatimOut}</span>{XcasTVI.<span class="flyspell-duplicate">meta</span>}
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>{XcasTVI<span class="flyspell-duplicate">.cxx</span>}
-TVI(L,F,nom,nomv,f,ftt,ao,nmr):={
+<span class="flyspell-duplicate">TVI</span>(L,F,nom,nomv,f,ftt,ao,nmr):={
nl:=size(L);
f:=unapply(f,x);
-fp:=fonction_derivee(f);
+<span class="flyspell-duplicate">fp</span>:=fonction_derivee(f);
Z:=concat(L,F);
S:=resoudre(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]));
+ kk:=(evalf(S[j])&gt;=evalf(L[0])) and (evalf(S[j])&lt;=evalf(L[<span class="flyspell-duplicate">nl</span>-1]));
if(kk==1){Z:=append(Z,simplifier(S[j]))};
- fpour
+ <span class="flyspell-duplicate">fpour</span>
fsi;
Z:=sort(Z);
@@ -283,60 +293,60 @@ nz:=size(Z);
si Z[0]==Z[1] alors Z:=augment(Z[0],Z[2..nz-1]);nz:=<span class="flyspell-duplicate">nz</span>-1;
fsi;
pour u de 1 jusque nz-2 faire
- si Z[u]==Z[u+1] alors Z:=augment(Z[0..u-1],Z[u+1..nz-1]);nz:=nz-1;
+ si Z[u]==Z[u+1] alors Z:=augment(Z[0..u-1],Z[u+1..nz-1]);nz:=<span class="flyspell-duplicate">nz</span>-1;
fsi;
fpour;
-nz:=size(Z);
-l0:=" newLigneVariables(btex <span class="font-latex-math">$"+nomv+"$</span> etex);";lp:=" "; lf:=" ";lsp:=" ";
+<span class="flyspell-duplicate">nz</span>:=size(Z);
+l0:=" newLigneVariables(btex <span class="font-latex-math">$"+nomv+"$</span> etex);";lp:=" "; lf:=" ";<span class="flyspell-duplicate">lsp</span>:=" ";
LI:=limite(f(x),x,Z[0],1);
-LF:=limite(f(x),x,Z[nz-1],-1);
+<span class="flyspell-duplicate">LF</span>:=limite(f(x),x,Z[nz-1],-1);
<span class="flyspell-duplicate">LP</span>:=NULL;
if(nz&gt;2){ for(r:=1; r&lt;=nz-2;r++){LP:=LP,if(member(Z[r],F)){limite(f(x),x,Z[r],-1),limite(f(x),x,Z[r],1)}else{f(Z[r])}}};
-if(nz&gt;2){ LL:=[LI,LP,LF]}else{LL:=[LI,LF]};
+if(nz&gt;2){ LL:=[LI,LP,LF]}else{LL:=[LI,<span class="flyspell-duplicate">LF</span>]};
NL:=size(LL);
-A:=NULL;aa:=1;kk:=0;
+A:=NULL;aa:=1;<span class="flyspell-duplicate">kk</span>:=0;
-if(NL==nz){for(k:=0;k&lt;nz-1;k++){TestS:=(sign(evalf(LL[k]-ao))==sign(evalf(LL[k+1]-ao))) or (sign(evalf(LL[k]-ao))==0.0)or (sign(evalf(LL[k+1]-ao))==0.0);
+if(NL==nz){for(k:=0;k&lt;nz-1;k++){TestS:=(sign(evalf(LL[k]-ao))==sign(evalf(LL[k+1]-ao))) or (sign(evalf(<span class="flyspell-duplicate">LL</span>[k]-ao))==0.0)or (sign(evalf(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);"};
+l0:=l0+"val(btex <span class="font-latex-math">$"+latex(Z[nz-1])+"$</span> <span class="flyspell-duplicate">etex</span>);"};
-if(NL&gt;nz){for(k:=0;k&lt;NL-1;k++){TestS:=(sign(evalf(LL[k]-ao))==sign(evalf(LL[k+1]-ao))) or (sign(evalf(LL[k]-ao))==0.0)or (sign(evalf(LL[k+1]-ao))==0.0);
-TestL:=(abs(LL[k])==abs(LL[k+1]));
+if(NL&gt;nz){for(k:=0;k&lt;NL-1;k++){TestS:=(sign(evalf(LL[k]-ao))==sign(evalf(LL[k+1]-ao))) or (sign(evalf(<span class="flyspell-duplicate">LL</span>[k]-ao))==0.0)or (sign(evalf(LL[k+1]-ao))==0.0);
+<span class="flyspell-duplicate">TestL</span>:=(abs(LL[k])==abs(LL[k+1]));
if(TestS==0){ if( TestL==1 ){l0:=l0}else{
-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}}
+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:=<span class="flyspell-duplicate">kk</span>+1}}
l0:=l0+"val(btex <span class="font-latex-math">$"+latex(Z[nz-1])+"$</span> <span class="flyspell-duplicate">etex</span>);
"};
-TestS:=(sign(evalf(LL[0]-ao))==sign(evalf(LL[1]-ao))) or (sign(evalf(LL[0]-ao))==0.0) or (sign(evalf(LL[1]-ao))==0.0);
+<span class="flyspell-duplicate">TestS</span>:=(sign(evalf(LL[0]-ao))==sign(evalf(LL[1]-ao))) or (sign(evalf(LL[0]-ao))==0.0) or (sign(evalf(<span class="flyspell-duplicate">LL</span>[1]-<span class="flyspell-duplicate">ao</span>))==0.0);
k0:= evalf(limite(f(x),x=Z[0],1))&gt; evalf(limite(f(x),x=Z[1],-1));
kz:=evalf(limite(f(x),x=Z[nz-1],-1))&gt; evalf(limite(f(x),x=Z[<span class="flyspell-duplicate">nz</span>-2],1));
-lsi:="
-newLigneSignes(btex <span class="font-latex-math">$\\hbox{ Signe de }\\atop{\\displaystyle "+nom+"'("+nomv+")}$</span> etex);"+
- if(Z[0]==-infinity){if(sign(evalf(fp(if(Z[1]==+infinity){0}else{Z[1]-10^(-5)})))==1){"plus;"}else{"moins;"}}else{if(member(Z[0],F)==0){
- if(sign(fp((Z[0]+10^(-10))))==1){"plus;"}else{"moins;"}}else{"nonDefBarre;"+
- if(sign(fp(10^(-10)+Z[0]))==1){"plus;"}else{"moins;"} }}+if(TestS==0){"valBarre(btex<span class="font-latex-math">$ $</span> etex);"+ if(sign(fp(10^(-10)+Z[0]))==1){"plus;"}else{"moins;"}}<span class="flyspell-duplicate">else</span>{" "};
+<span class="flyspell-duplicate">lsi</span>:="
+<span class="flyspell-duplicate">newLigneSignes</span>(btex <span class="font-latex-math">$\\hbox{ Signe de }\\atop{\\displaystyle "+nom+"'("+nomv+")}$</span> <span class="flyspell-duplicate">etex</span>);"+
+ if(Z[0]==-infinity){if(sign(evalf(fp(if(Z[1]==+infinity){0}else{Z[1]-10^(-5)})))==1){"plus;"}<span class="flyspell-duplicate">else</span>{"moins;"}}else{if(member(Z[0],F)==0){
+ if(sign(fp((Z[0]+10^(-10))))==1){"plus;"}else{"moins;"}}else{"<span class="flyspell-duplicate">nonDefBarre</span>;"+
+ if(sign(fp(10^(-10)+Z[0]))==1){"plus;"}else{"moins;"} }}+if(TestS==0){"valBarre(btex<span class="font-latex-math">$ $</span> etex);"+ if(sign(<span class="flyspell-duplicate">fp</span>(10^(-10)+Z[0]))==1){"plus;"}else{"moins;"}}<span class="flyspell-duplicate">else</span>{" "};
-if(nz&gt;2){rr:=1; if(nz==NL){for(r:=1; r&lt;=NL-2;r++){ TestS:=(sign(evalf(LL[r]-ao))==sign(evalf(LL[r+1]-ao))) or (sign(evalf(LL[r]-ao))==0.0)or (sign(evalf(LL[r+1]-ao))==0.0);
+if(nz&gt;2){rr:=1; if(nz==NL){for(r:=1; r&lt;=NL-2;r++){ TestS:=(sign(evalf(LL[r]-ao))==sign(evalf(LL[r+1]-<span class="flyspell-duplicate">ao</span>))) or (sign(evalf(LL[r]-ao))==0.0)or (sign(evalf(LL[r+1]-<span class="flyspell-duplicate">ao</span>))==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(<span class="flyspell-duplicate">TestS</span>==0){"valBarre(btex <span class="font-latex-math">$ $</span> etex);"}else{" "}+if(TestS==0){if(ksp==1){"plus;"}else{"moins;"}}else{" "};
+ lsp:=lsp+if(member(Z[r],F)==0){"valBarre(btex 0 etex);"}else{"<span class="flyspell-duplicate">nonDefBarre</span>;"}+
+ if(ksp==1){"plus;"}else{"moins;"}+if(TestS==0){"valBarre(btex <span class="font-latex-math">$ $</span> <span class="flyspell-duplicate">etex</span>);"}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:=(sign(evalf(LL[r]-ao))==sign(evalf(LL[r+1]-ao))) or (sign(evalf(LL[r]-ao))==0.0)or (sign(evalf(LL[r+1]-ao))==0.0);
+<span class="flyspell-duplicate">else</span>{for(r:=1; r&lt;=NL-2;r++){kspp:=evalf(fp(Z[rr]+0.01))&gt;0;TestS:=(sign(evalf(LL[r]-ao))==sign(evalf(LL[r+1]-ao))) or (sign(evalf(LL[r]-ao))==0.0)or (sign(evalf(LL[r+1]-ao))==0.0);
TestL:=(abs(LL[r])==abs(LL[r+1]));
- if(TestS==0){if( TestL==1 ){lsp:=lsp}else{lsp:=lsp+if(member(Z[rr],F)==0){"valBarre(btex 0 etex);"}else{"nonDefBarre;"}+
- if(kspp==1){"plus;"}else{"moins;"}+"valBarre(btex <span class="font-latex-math">$ $</span> etex);"+if(kspp==1){"plus;"}else{"moins;"};rr:=rr+1;}
+ if(TestS==0){if( TestL==1 ){lsp:=lsp}else{lsp:=lsp+if(member(Z[rr],F)==0){"valBarre(btex 0 etex);"}else{"<span class="flyspell-duplicate">nonDefBarre</span>;"}+
+ if(kspp==1){"plus;"}else{"moins;"}+"valBarre(btex <span class="font-latex-math">$ $</span> etex);"+if(kspp==1){"plus;"}else{"moins;"};rr:=<span class="flyspell-duplicate">rr</span>+1;}
} else{lsp:=lsp+if(member(Z[rr],F)==0){"valBarre(btex 0 etex);"}else{"<span class="flyspell-duplicate">nonDefBarre</span>;"}+
if(kspp==1){"plus;"}else{"moins;"};rr:=<span class="flyspell-duplicate">rr</span>+1;}
}}
@@ -344,104 +354,115 @@ else{for(r:=1; r&lt;=NL-2;r++){kspp:=evalf(fp(Z[rr]+0.01))&gt;0;TestS:=(sign(eva
-lsf:=if(member(Z[nz-1],F)==0){""}else{"nomDefBarre;"}
+<span class="flyspell-duplicate">lsf</span>:=if(member(Z[nz-1],F)==0){""}else{"nomDefBarre;"}
lm0:=limite(f(x),x=Z[0],1)==-infinity;
-TestS:=(sign(evalf(LL[0]-ao))==sign(evalf(LL[1]-ao))) or (sign(evalf(LL[0]-ao))==0.0) or (sign(evalf(LL[1]-<span class="flyspell-duplicate">ao</span>))==0.0);
+<span class="flyspell-duplicate">TestS</span>:=(sign(evalf(LL[0]-ao))==sign(evalf(LL[1]-ao))) or (sign(evalf(LL[0]-ao))==0.0) or (sign(evalf(<span class="flyspell-duplicate">LL</span>[1]-<span class="flyspell-duplicate">ao</span>))==0.0);
li:="
-newLigneVariations(btex <span class="font-latex-math">$\\hbox{\</span><span class="font-latex-bold"><span class="font-latex-math">\bf</span></span><span class="font-latex-math"> Variations de }\\atop{\\displaystyle \\Mathbold{"+nom+"}}$</span> etex);
+<span class="flyspell-duplicate">newLigneVariations</span>(btex <span class="font-latex-math">$\\hbox{\</span><span class="font-latex-bold"><span class="font-latex-math">\bf</span></span><span class="font-latex-math"> Variations de }\\atop{\\displaystyle \\Mathbold{"+nom+"}}$</span> etex);
"+ if(member(Z[0],F)==0){"valPos(btex <span class="font-latex-math">$"+if(lm0==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[0],1)))}+"$</span> <span class="flyspell-duplicate">etex</span>,"}
- else{"nonDefBarre;limDroite(btex <span class="font-latex-math">$"+if(lm0==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[0],1)))}+"$</span> etex,"}+
+ else{"nonDefBarre;limDroite(btex <span class="font-latex-math">$"+if(lm0==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[0],1)))}+"$</span> <span class="flyspell-duplicate">etex</span>,"}+
if(k0==1){"1);"}else{"0);"}+if(TestS==0){"valPos(btex <span class="font-latex-math">$ "+ao+" $</span> etex,0.5);"}<span class="flyspell-duplicate">else</span>{" "};
- if(nz&gt;2){if(nz==NL){for(r:=1; r&lt;=nz-2;r++){TestS:=(sign(evalf(LL[r]-ao))==sign(evalf(LL[r+1]-ao))) or (sign(evalf(LL[r]-ao))==0.0)or (sign(evalf(LL[r+1]-ao))==0.0);
+ if(nz&gt;2){if(nz==NL){for(r:=1; r&lt;=nz-2;r++){TestS:=(sign(evalf(LL[r]-ao))==sign(<span class="flyspell-duplicate">evalf</span>(LL[r+1]-ao))) or (sign(evalf(LL[r]-ao))==0.0)or (sign(evalf(LL[r+1]-ao))==0.0);
krm:=evalf(limite(f(x),x=Z[r-1],1))&lt; evalf(limite(f(x),x=Z[r],-1));
krp:=evalf(limite(f(x),x=Z[r],1))&gt; evalf(limite(f(x),x=Z[r+1],-1)) ;
- lmrm:=limite(f(x),x=Z[r],-1)==-infinity;lmrp:=limite(f(x),x=Z[r],1)==-infinity;
+ lmrm:=limite(f(x),x=Z[r],-1)==-infinity;lmrp:=limite(f(x),x=Z[r],1)==-<span class="flyspell-duplicate">infinity</span>;
lp:=lp+if(member(Z[r],F)) {
- "limGauche(btex <span class="font-latex-math">$"+if(lmrm==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[r],-1)))}+"$</span> etex,"+if(krm==1){"1);"}<span class="flyspell-duplicate">else</span>{"0);"}+"nonDefBarre;limDroite(btex <span class="font-latex-math">$"+if(lmrp==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[r],1)))}+"$</span> etex,"+if(krp==1){"1);"}else{"0);"}}
+ "limGauche(btex <span class="font-latex-math">$"+if(lmrm==1){"-\\infty"}else{latex(simplifier(limite(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(simplifier(limite(f(x),x=Z[r],1)))}+"$</span> etex,"+if(krp==1){"1);"}<span class="flyspell-duplicate">else</span>{"0);"}}
else{"valPos(btex <span class="font-latex-math">$"+latex(simplifier(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);"}}}+if(<span class="flyspell-duplicate">TestS</span>==0){"valPos(btex
- <span class="font-latex-math">$ "+ao+" $</span> etex,0.5);"
+ etex,"+if(sign(evalf(fp(Z[r]-0.01)))==sign(fp(Z[r]+0.01))){"0.5);"}else{if(krp==1){"1);"}else{"0);"}}}+if(TestS==0){"<span class="flyspell-duplicate">valPos</span>(<span class="flyspell-duplicate">btex</span>
+ <span class="font-latex-math">$ "+ao+" $</span> <span class="flyspell-duplicate">etex</span>,0.5);"
}else{" "};
};//for
-}else{rr:=1;for(r:=1; r&lt;=NL-2;r++){TestS:=(sign(evalf(LL[r]-ao))==sign(evalf(LL[r+1]-ao))) or (sign(evalf(LL[r]-ao))==0.0)or (sign(evalf(LL[r+1]-<span class="flyspell-duplicate">ao</span>))==0.0);
- krm:=evalf(limite(f(x),x=Z[rr-1],1))&lt; evalf(limite(f(x),x=Z[rr],-1));
- krp:=evalf(limite(f(x),x=Z[rr],1))&gt; evalf(limite(f(x),x=Z[rr+1],-1)) ;
- lmrm:=limite(f(x),x=Z[rr],-1)==-infinity;lmrp:=limite(f(x),x=Z[rr],1)==-infinity; TestL:=(abs(LL[r])==abs(LL[r+1]));
+}else{rr:=1;for(r:=1; r&lt;=NL-2;r++){TestS:=(sign(evalf(LL[r]-ao))==sign(evalf(LL[r+1]-ao))) or (sign(<span class="flyspell-duplicate">evalf</span>(LL[r]-ao))==0.0)or (sign(evalf(LL[r+1]-<span class="flyspell-duplicate">ao</span>))==0.0);
+ krm:=evalf(limite(f(x),x=Z[rr-1],1))&lt; evalf(limite(f(x),x=Z[<span class="flyspell-duplicate">rr</span>],-1));
+ krp:=evalf(limite(f(x),x=Z[rr],1))&gt; evalf(limite(f(x),x=Z[<span class="flyspell-duplicate">rr</span>+1],-1)) ;
+ lmrm:=limite(f(x),x=Z[rr],-1)==-infinity;lmrp:=limite(f(x),x=Z[rr],1)==-<span class="flyspell-duplicate">infinity</span>; TestL:=(abs(LL[r])==abs(LL[r+1]));
if(TestS==0){if( TestL==1 ){lp:=lp}else{ lp:=lp+if(member(Z[rr],F)) {
- "limGauche(btex <span class="font-latex-math">$"+if(lmrm==1){"-\\infty"}else{latex(simplifier(limite(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(simplifier(limite(f(x),x=Z[rr],1)))}+"$</span> etex,"+if(krp==1){"1);"}else{"0);"}}
+ "limGauche(btex <span class="font-latex-math">$"+if(lmrm==1){"-\\infty"}else{latex(simplifier(limite(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(simplifier(limite(f(x),x=Z[rr],1)))}+"$</span> etex,"+if(krp==1){"1);"}<span class="flyspell-duplicate">else</span>{"0);"}}
else{"valPos(btex <span class="font-latex-math">$"+latex(simplifier(f(Z[rr])))+"$</span>
- etex,"+if(sign(evalf(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:=<span class="flyspell-duplicate">rr</span>+1;
-}// else testL==1
+ etex,"+if(sign(evalf(fp(Z[rr]-0.01)))==sign(fp(Z[rr]+0.01))){"0.5);"}else{if(krp==1){"1);"}else{"0);"}}}+"valPos(<span class="flyspell-duplicate">btex</span>
+ <span class="font-latex-math">$ "+ao+" $</span> <span class="flyspell-duplicate">etex</span>,0.5);
+ ";rr:=rr+1;
+}// else <span class="flyspell-incorrect">testL</span>==1
}//testS==0
-else{lp:=lp+if(member(Z[rr],F)){
- "limGauche(btex <span class="font-latex-math">$"+if(lmrm==1){"-\\infty"}else{latex(simplifier(limite(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(simplifier(limite(f(x),x=Z[rr],1)))}+"$</span> etex,"+if(krp==1){"1);"}else{"0);"}}
+<span class="flyspell-duplicate">else</span>{lp:=lp+if(member(Z[rr],F)){
+ "limGauche(btex <span class="font-latex-math">$"+if(lmrm==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[rr],-1)))}+"$</span> etex,"+if(krm==1){"1);"}<span class="flyspell-duplicate">else</span>{"0);"}+"nonDefBarre;limDroite(btex <span class="font-latex-math">$"+if(lmrp==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[rr],1)))}+"$</span> etex,"+if(krp==1){"1);"}<span class="flyspell-duplicate">else</span>{"0);"}}
else{"valPos(btex <span class="font-latex-math">$"+latex(simplifier(f(Z[rr])))+"$</span>
- etex,"+if(sign(evalf(fp(Z[rr]-0.01)))==sign(fp(Z[rr]+0.01))){"0.5);"}else{if(krp==1){"1);"}else{"0);
+ etex,"+if(sign(evalf(fp(Z[rr]-0.01)))==sign(fp(Z[<span class="flyspell-duplicate">rr</span>]+0.01))){"0.5);"}else{if(krp==1){"1);"}else{"0);
"}}};rr:=<span class="flyspell-duplicate">rr</span>+1;
-}//else testS==0
-}//for nz&lt;NL
-}// else nz&lt;NL
-//if nz=NL
+}//else <span class="flyspell-duplicate">testS</span>==0
+}//for nz&lt;<span class="flyspell-duplicate">NL</span>
+}// else nz&lt;<span class="flyspell-duplicate">NL</span>
+//if nz=<span class="flyspell-duplicate">NL</span>
};//if <span class="flyspell-duplicate">nz</span>&gt;2
-lnz:=limite(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(simplifier(limite(f(x),x=Z[nz-1],-1)))}+"$</span> etex,"}else{"nonDefBarre;limGauche(btex <span class="font-latex-math">$"+if(lnz==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[nz-1],-1)))}+"$</span> <span class="flyspell-duplicate">etex</span>,"}+
- if(kz==1){"1);"}else{"0);"};
+<span class="flyspell-duplicate">lnz</span>:=limite(f(x),x=Z[nz-1],-1)==-<span class="flyspell-duplicate">infinity</span>;
+ lf:=if(member(Z[nz-1],F)==0){"valPos(btex <span class="font-latex-math">$"+if(lnz==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[nz-1],-1)))}+"$</span> etex,"}else{"<span class="flyspell-duplicate">nonDefBarre</span>;limGauche(btex <span class="font-latex-math">$"+if(lnz==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[nz-1],-1)))}+"$</span> etex,"}+
+ if(kz==1){"1);"}<span class="flyspell-duplicate">else</span>{"0);"};
-intro:="
+<span class="flyspell-duplicate">intro</span>:="
input tableauVariation;
-<span class="flyspell-duplicate">verbatimtex</span>
+verbatimtex
<span class="comment-delimiter">%</span><span class="comment">&amp;latex
</span> <span class="font-latex-warning">\</span><span class="keyword"><span class="font-latex-warning">\</span></span><span class="keyword">documentclass</span><span class="function-name">{article}</span>
<span class="font-latex-warning">\</span><span class="keyword"><span class="font-latex-warning">\</span></span><span class="keyword">usepackage</span><span class="variable-name">[upright]</span><span class="function-name">{fourier}</span>
<span class="font-latex-warning">\</span><span class="keyword"><span class="font-latex-warning">\</span></span><span class="keyword">usepackage</span><span class="function-name">{amsmath}</span>
<span class="font-latex-warning">\</span><span class="keyword"><span class="font-latex-warning">\</span></span><span class="keyword">newcommand</span><span class="function-name">{</span><span class="function-name"><span class="font-latex-warning">\\</span></span><span class="function-name">Mathbold}</span>[1]{<span class="font-latex-warning">\</span><span class="keyword"><span class="font-latex-warning">\</span></span><span class="keyword">mbox</span><span class="function-name">{</span><span class="function-name"><span class="font-latex-warning">\\</span></span><span class="function-name">boldmath</span><span class="function-name"><span class="font-latex-math">$#1$</span></span><span class="function-name"><span class="font-latex-warning">\\</span></span><span class="function-name">unboldmath}</span>}
<span class="font-latex-warning">\</span><span class="keyword"><span class="font-latex-warning">\</span></span><span class="keyword">begin</span><span class="function-name">{document}</span>
- etex
+ <span class="flyspell-duplicate">etex</span>
";
-<span class="flyspell-duplicate">MetaL</span>:= if(ftt==0){if(nz&gt;2){intro+"beginTableau("+nmr+")"+
+MetaL:= if(<span class="flyspell-duplicate">ftt</span>==2){if(nz&gt;2){intro+"beginTableau("+nmr+")"+
+ l0+lsi+lsp+<span class="flyspell-duplicate">lsf</span>+"
+<span class="flyspell-duplicate">endTableau</span>;
+<span class="flyspell-duplicate">end</span>";}<span class="flyspell-duplicate">else</span>{
+<span class="flyspell-duplicate">intro</span>+"beginTableau("+<span class="flyspell-duplicate">nmr</span>+")"+
+ l0+
+lsi+<span class="flyspell-duplicate">lsf</span>+"
+endTableau;
+<span class="flyspell-duplicate">end</span>";
+}
+}<span class="flyspell-duplicate">else</span>{
+if(ftt==0){if(nz&gt;2){intro+"beginTableau("+nmr+")"+
l0+
li+
-lp+
-lf
+<span class="flyspell-duplicate">lp</span>+
+<span class="flyspell-duplicate">lf</span>
+"
<span class="flyspell-duplicate">endTableau</span>;
end";}else{intro+"beginTableau("+nmr+")"+
l0+
li+
-lf
+<span class="flyspell-duplicate">lf</span>
+"
<span class="flyspell-duplicate">endTableau</span>;
end";}}else{
-if(nz&gt;2){intro+"beginTableau("+nmr+")"+
+if(nz&gt;2){intro+"beginTableau("+<span class="flyspell-duplicate">nmr</span>+")"+
l0+
-lsi+lsp+lsf+
+<span class="flyspell-duplicate">lsi</span>+lsp+<span class="flyspell-duplicate">lsf</span>+
li+
<span class="flyspell-duplicate">lp</span>+
lf
+"
-endTableau;
-end";}else{intro+"beginTableau("+nmr+")"+
+<span class="flyspell-duplicate">endTableau</span>;
+<span class="flyspell-duplicate">end</span>";}else{intro+"beginTableau("+<span class="flyspell-duplicate">nmr</span>+")"+
l0+
-<span class="flyspell-duplicate">lsi</span>+lsf+
+<span class="flyspell-duplicate">lsi</span>+<span class="flyspell-duplicate">lsf</span>+
li+
-lf
+<span class="flyspell-duplicate">lf</span>
+"
-endTableau;
+<span class="flyspell-duplicate">endTableau</span>;
<span class="flyspell-duplicate">end</span>";}
-};
+}};
return(<span class="flyspell-duplicate">MetaL</span>);
}:;
@@ -459,72 +480,136 @@ return(<span class="flyspell-duplicate">MetaL</span>);
-<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>{XcasTabSignL.meta}
-TS(L,nmr):={
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>{XcasTabSignL<span class="flyspell-duplicate">.cxx</span>}
+
+
+<span class="flyspell-duplicate">TS</span>(L,D,nmr):={
L:=apply(f-&gt;unapply(f,x),L)
n:=size(L);
-Z:=<span class="flyspell-duplicate">NULL</span>;
+Z:=NULL;
+mini:=D[0]; maxi:=D[1];
pour k de 0 jusque n-1 faire
S:=resoudre(L[k](x),x);
si size(S)&gt;0 alors pour j de 0 jusque size(S)-1 faire
- Z:=Z,simplifier(S[j]);
+ if(S[j]&gt;mini and S[j]&lt;maxi){Z:=Z,simplifier(S[j]);}
<span class="flyspell-duplicate">fpour</span>;
fsi;
-fpour;
+<span class="flyspell-duplicate">fpour</span>;
Z:=sort(Z);
-nz:=size(Z);
-pour u de 1 jusque nz-2 faire
+<span class="flyspell-duplicate">nz</span>:=size(Z);
+if(nz&gt;2){pour u de 1 jusque nz-2 faire
si Z[u]==Z[u+1] alors Z:=Z[0..u-1],Z[u+1..nz-1];nz:=<span class="flyspell-duplicate">nz</span>-1;
fsi;
-fpour;
-nz:=size(Z);
-l0:=" ";li:=" ";lr:=" ";
-pour m de 0 jusque nz-1 faire l0:=l0+"val(btex <span class="font-latex-math">$"+latex(Z[m])+"$</span> etex);
-";<span class="flyspell-duplicate">fpour</span>;
+<span class="flyspell-duplicate">fpour</span>;};
+<span class="flyspell-duplicate">nz</span>:=size(Z);
+
+if(<span class="flyspell-duplicate">nz</span>==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> <span class="flyspell-duplicate">etex</span>);";
+ for(p:=0;p&lt;=n-1;p++){li:=li+"
+<span class="flyspell-duplicate">newLigneSignes</span>(btex <span class="font-latex-math">$\\hbox{\</span><span class="font-latex-bold"><span class="font-latex-math">\bf</span></span><span class="font-latex-math"> Signe de }\\atop{\\displaystyle \\Mathbold{"+latex(L[p](x))+"}}$</span> etex);"+
+if(mini!=-infinity and L[p](mini)==0){"
+ valBarre(btex 0 etex);"}<span class="flyspell-duplicate">else</span>{"
+ "}+
+if(L[p]((mini+maxi)*0.5&gt;0)){"plus;"}else{"moins;"}+if(maxi!=+infinity and L[p](maxi)==0){"
+ valBarre(btex 0 <span class="flyspell-duplicate">etex</span>);"}<span class="flyspell-duplicate">else</span>{"
+ "}
+
+}
+ lf:=if(product(L[s]((mini+maxi)*.5),s,0,n-1)&gt;0){"plus;"}else{"moins;"};
+
+MetaL:=" input <span class="flyspell-duplicate">tableauVariation</span>;
+ <span class="flyspell-duplicate">verbatimtex</span>
+<span class="comment-delimiter">%</span><span class="comment">&amp;latex
+</span> <span class="font-latex-warning">\</span><span class="keyword"><span class="font-latex-warning">\</span></span><span class="keyword">documentclass</span><span class="function-name">{article}</span>
+ <span class="font-latex-warning">\</span><span class="keyword"><span class="font-latex-warning">\</span></span><span class="keyword">usepackage</span><span class="variable-name">[upright]</span><span class="function-name">{fourier}</span>
+ <span class="font-latex-warning">\</span><span class="keyword"><span class="font-latex-warning">\</span></span><span class="keyword">usepackage</span><span class="function-name">{amsmath}</span>
+ <span class="font-latex-warning">\</span><span class="keyword"><span class="font-latex-warning">\</span></span><span class="keyword">newcommand</span><span class="function-name">{</span><span class="function-name"><span class="font-latex-warning">\\</span></span><span class="function-name">Mathbold}</span>[1]{<span class="font-latex-warning">\</span><span class="keyword"><span class="font-latex-warning">\</span></span><span class="keyword">mbox</span><span class="function-name">{</span><span class="function-name"><span class="font-latex-warning">\\</span></span><span class="function-name">boldmath</span><span class="function-name"><span class="font-latex-math">$#1$</span></span><span class="function-name"><span class="font-latex-warning">\\</span></span><span class="function-name">unboldmath}</span>}
+ <span class="font-latex-warning">\</span><span class="keyword"><span class="font-latex-warning">\</span></span><span class="keyword">begin</span><span class="function-name">{document}</span>
+ <span class="flyspell-duplicate">etex</span>
+ <span class="flyspell-duplicate">beginTableau</span>("+nmr+")
+<span class="flyspell-duplicate">newLigneVariables</span>(btex <span class="font-latex-math">$\\Mathbold{x}$</span> <span class="flyspell-duplicate">etex</span>);
+ "+l0+li+
+ "
+ newLigneSignes(btex <span class="font-latex-math">$\\hbox{\</span><span class="font-latex-bold"><span class="font-latex-math">\bf</span></span><span class="font-latex-math"> Signe du }\\atop{{\</span><span class="font-latex-bold"><span class="font-latex-math">\bf</span></span><span class="font-latex-math"> produit}}$</span> <span class="flyspell-duplicate">etex</span>);"+
+ if(mini!=-infinity and product(L[s](mini),s,0,n-1)==0){"
+ valBarre(btex 0 etex);"}<span class="flyspell-duplicate">else</span>{"
+ "}+ <span class="flyspell-duplicate">lf</span>+
+ if(maxi!=+infinity and product(L[s](maxi),s,0,n-1)==0){"
+ valBarre(btex 0 etex);"}<span class="flyspell-duplicate">else</span>{"
+ "}+"
+<span class="flyspell-duplicate">endTableau</span>;
+<span class="flyspell-duplicate">end</span>"
+;
+}<span class="flyspell-duplicate">else</span>{
+
+
-for(p:=0;p&lt;=n-1;p++){lp:=" ";
- li:=li+"newLigneSignes(btex <span class="font-latex-math">$\\hbox{\</span><span class="font-latex-bold"><span class="font-latex-math">\bf</span></span><span class="font-latex-math"> Signe de }\\atop{\\displaystyle \\Mathbold{"+latex(L[p](x))+"}}$</span> <span class="flyspell-duplicate">etex</span>);"+
- if(L[p](Z[0]-1.0)&gt;0){"plus;"}else{"moins;"}+
+l0:="val(btex <span class="font-latex-math">$"+latex(D[0])+"$</span> etex);";li:=" ";<span class="flyspell-duplicate">lr</span>:=" ";
+pour m de 0 jusque nz-1 faire l0:=l0+"val(btex <span class="font-latex-math">$"+latex(Z[m])+"$</span> <span class="flyspell-duplicate">etex</span>);
+";fpour;
+l0:=l0+"val(btex <span class="font-latex-math">$"+latex(D[1])+"$</span> <span class="flyspell-duplicate">etex</span>);";
+
+
+for(p:=0;p&lt;=n-1;p++){lp:="";
+ li:=li+"
+<span class="flyspell-duplicate">newLigneSignes</span>(btex <span class="font-latex-math">$\\hbox{\</span><span class="font-latex-bold"><span class="font-latex-math">\bf</span></span><span class="font-latex-math"> Signe de }\\atop{\\displaystyle \\Mathbold{"+latex(L[p](x))+"}}$</span> <span class="flyspell-duplicate">etex</span>);"+
+ if(mini!=-infinity and L[p](mini)==0){"
+ valBarre(btex 0 etex);"}<span class="flyspell-duplicate">else</span>{"
+ "}+
+ if(L[p](Z[0]-0.01)&gt;0){"plus;"}else{"moins;"};
+
for(r:=0; r&lt;=nz-2;r++){
- lp:=lp+if(simplifier(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;"}}+
- if(simplifier(L[p](Z[nz-1]))==0){"valBarre(btex 0 etex);"}else{"barre;"}+
+ lp:=lp+if(simplifier(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(simplifier(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](<span class="flyspell-duplicate">maxi</span>)==0){"
+ valBarre(btex 0 etex);"}<span class="flyspell-duplicate">else</span>{"
+ "}
};
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);"
- <span class="flyspell-duplicate">fpour</span>
+ lr:=lr+if(product(L[s]((Z[t]+Z[t+1])*.5),s,0,n-1)&gt;0){"plus;"}else{"moins;"}+"valBarre(btex 0 <span class="flyspell-duplicate">etex</span>);"
+ fpour
-MetaL:=" input tableauVariation;
- verbatimtex
+<span class="flyspell-duplicate">MetaL</span>:=" input <span class="flyspell-duplicate">tableauVariation</span>;
+ <span class="flyspell-duplicate">verbatimtex</span>
<span class="comment-delimiter">%</span><span class="comment">&amp;latex
</span> <span class="font-latex-warning">\</span><span class="keyword"><span class="font-latex-warning">\</span></span><span class="keyword">documentclass</span><span class="function-name">{article}</span>
<span class="font-latex-warning">\</span><span class="keyword"><span class="font-latex-warning">\</span></span><span class="keyword">usepackage</span><span class="variable-name">[upright]</span><span class="function-name">{fourier}</span>
<span class="font-latex-warning">\</span><span class="keyword"><span class="font-latex-warning">\</span></span><span class="keyword">usepackage</span><span class="function-name">{amsmath}</span>
<span class="font-latex-warning">\</span><span class="keyword"><span class="font-latex-warning">\</span></span><span class="keyword">newcommand</span><span class="function-name">{</span><span class="function-name"><span class="font-latex-warning">\\</span></span><span class="function-name">Mathbold}</span>[1]{<span class="font-latex-warning">\</span><span class="keyword"><span class="font-latex-warning">\</span></span><span class="keyword">mbox</span><span class="function-name">{</span><span class="function-name"><span class="font-latex-warning">\\</span></span><span class="function-name">boldmath</span><span class="function-name"><span class="font-latex-math">$#1$</span></span><span class="function-name"><span class="font-latex-warning">\\</span></span><span class="function-name">unboldmath}</span>}
<span class="font-latex-warning">\</span><span class="keyword"><span class="font-latex-warning">\</span></span><span class="keyword">begin</span><span class="function-name">{document}</span>
- etex
+ <span class="flyspell-duplicate">etex</span>
beginTableau("+nmr+")
-newLigneVariables(btex <span class="font-latex-math">$\\Mathbold{x}$</span> <span class="flyspell-duplicate">etex</span>);
- val(btex <span class="font-latex-math">$-\\infty$</span> etex);"+l0+"val(btex <span class="font-latex-math">$+\\infty$</span> etex);"+
+<span class="flyspell-duplicate">newLigneVariables</span>(btex <span class="font-latex-math">$\\Mathbold{x}$</span> etex);
+ "+l0+
li
+
- " newLigneSignes(btex <span class="font-latex-math">$\\hbox{\</span><span class="font-latex-bold"><span class="font-latex-math">\bf</span></span><span class="font-latex-math"> Signe du }\\atop{{\</span><span class="font-latex-bold"><span class="font-latex-math">\bf</span></span><span class="font-latex-math"> produit}}$</span> etex);"+
- if(product(L[s](Z[0]-1.0),s,0,n-1)&gt;0){"plus;"}else{"moins;"}+"valBarre(btex 0 etex);"+
- lr+
- if(product(L[s](Z[nz-1]+1.0),s,0,n-1)&gt;0){"plus;"}else{"moins;"}+"
-endTableau;
+ "
+ newLigneSignes(btex <span class="font-latex-math">$\\hbox{\</span><span class="font-latex-bold"><span class="font-latex-math">\bf</span></span><span class="font-latex-math"> Signe du }\\atop{{\</span><span class="font-latex-bold"><span class="font-latex-math">\bf</span></span><span class="font-latex-math"> produit}}$</span> <span class="flyspell-duplicate">etex</span>);"+
+ if(mini!=-infinity and product(L[s](mini),s,0,n-1)==0){"
+ valBarre(btex 0 etex);"}<span class="flyspell-duplicate">else</span>{"
+ "}+
+ if(product(L[s](Z[0]-0.01),s,0,n-1)&gt;0){"plus;"}else{"moins;"}+"valBarre(btex 0 <span class="flyspell-duplicate">etex</span>);"+
+ <span class="flyspell-duplicate">lr</span>+
+ 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);"}<span class="flyspell-duplicate">else</span>{"
+ "}+"
+<span class="flyspell-duplicate">endTableau</span>;
<span class="flyspell-duplicate">end</span>"
-;
-return(MetaL);
+;}
+<span class="flyspell-duplicate">return</span>(<span class="flyspell-duplicate">MetaL</span>);
}:;
+
<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
@@ -535,102 +620,167 @@ return(MetaL);
-<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>{XcasTabSignQ.meta}
-TSq(nomf,L,Fo,nmr):={
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>{XcasTabSignQ<span class="flyspell-duplicate">.cxx</span>}
+<span class="flyspell-duplicate">TSq</span>(nomf,L,Fo,D,nmr):={
L:=apply(f-&gt;unapply(f,x),L);
-Fo:=apply(f-&gt;unapply(f,x),Fo);
+<span class="flyspell-duplicate">Fo</span>:=<span class="flyspell-duplicate">apply</span>(f-&gt;unapply(f,x),Fo);
L:=concat(L,Fo);
n:=size(L);
Z:=NULL;
-m:=size(Fo);
-F:=<span class="flyspell-duplicate">NULL</span>;
-
+m:=size(<span class="flyspell-duplicate">Fo</span>);
+F:=<span class="flyspell-duplicate">NULL</span>;<span class="flyspell-duplicate">FF</span>:=NULL;
+mini:=D[0]; maxi:=D[1];
pour k de 0 jusque n-1 faire
S:=resoudre(L[k](x),x);
si size(S)&gt;0 alors pour j de 0 jusque size(S)-1 faire
- Z:=Z,simplifier(S[j]);
+ if(S[j]&gt;mini and S[j]&lt;maxi){Z:=Z,simplifier(S[j]);}
<span class="flyspell-duplicate">fpour</span>;
fsi;
-fpour;
+<span class="flyspell-duplicate">fpour</span>;
pour k de 0 jusque m-1 faire
SF:=resoudre(Fo[k](x),x);
si size(SF)&gt;0 alors pour j de 0 jusque size(SF)-1 faire
- F:=F,simplifier(SF[j]);
- fpour;
+ FF:=FF,simplifier(SF[j]);
+ if(SF[j]&gt;mini and SF[j]&lt;maxi){F:=F,simplifier(SF[j]);}
+ <span class="flyspell-duplicate">fpour</span>;
fsi;
<span class="flyspell-duplicate">fpour</span>;
Z:=sort(Z); // on classe les z&#233;ros dans l'ordre croissant
-nz:=size(Z);
-pour u de 1 jusque nz-2 faire
+<span class="flyspell-duplicate">nz</span>:=size(Z);
+if(nz&gt;2){pour u de 1 jusque nz-2 faire
si Z[u]==Z[u+1] alors Z:=Z[0..u-1],Z[u+1..nz-1];nz:=nz-1; // pour les z&#233;ros en double
fsi;
-fpour;
-nz:=size(Z);
-l0:=" ";li:=" ";lr:=" ";
+<span class="flyspell-duplicate">fpour</span>;}
+
+
+Z:=sort(Z);
+<span class="flyspell-duplicate">nz</span>:=size(Z);
+if(nz&gt;2){pour u de 1 jusque nz-2 faire
+ si Z[u]==Z[u+1] alors Z:=Z[0..u-1],Z[u+1..nz-1];nz:=<span class="flyspell-duplicate">nz</span>-1;
+ fsi;
+<span class="flyspell-duplicate">fpour</span>;};
+<span class="flyspell-duplicate">nz</span>:=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> <span class="flyspell-duplicate">etex</span>);";
+ for(p:=0;p&lt;=n-1;p++){li:=li+"
+<span class="flyspell-duplicate">newLigneSignes</span>(btex <span class="font-latex-math">$\\hbox{\</span><span class="font-latex-bold"><span class="font-latex-math">\bf</span></span><span class="font-latex-math"> Signe de }\\atop{\\displaystyle \\Mathbold{"+latex(L[p](x))+"}}$</span> etex);"+
+if(mini!=-infinity and L[p](mini)==0){"
+ valBarre(btex 0 etex);"}<span class="flyspell-duplicate">else</span>{"
+ "}+
+if(L[p]((mini+maxi)*0.5&gt;0)){"plus;"}else{"moins;"}+if(maxi!=+infinity and L[p](<span class="flyspell-duplicate">maxi</span>)==0){"
+ valBarre(btex 0 etex);"}<span class="flyspell-duplicate">else</span>{"
+ "}
+
+}
+ lf:=if(product(L[s]((mini+maxi)*.5),s,0,n-1)&gt;0){"plus;"}else{"moins;"};
+
+<span class="flyspell-duplicate">MetaL</span>:=" input <span class="flyspell-duplicate">tableauVariation</span>;
+ <span class="flyspell-duplicate">verbatimtex</span>
+<span class="comment-delimiter">%</span><span class="comment">&amp;latex
+</span> <span class="font-latex-warning">\</span><span class="keyword"><span class="font-latex-warning">\</span></span><span class="keyword">documentclass</span><span class="function-name">{article}</span>
+ <span class="font-latex-warning">\</span><span class="keyword"><span class="font-latex-warning">\</span></span><span class="keyword">usepackage</span><span class="variable-name">[upright]</span><span class="function-name">{fourier}</span>
+ <span class="font-latex-warning">\</span><span class="keyword"><span class="font-latex-warning">\</span></span><span class="keyword">usepackage</span><span class="function-name">{amsmath}</span>
+ <span class="font-latex-warning">\</span><span class="keyword"><span class="font-latex-warning">\</span></span><span class="keyword">newcommand</span><span class="function-name">{</span><span class="function-name"><span class="font-latex-warning">\\</span></span><span class="function-name">Mathbold}</span>[1]{<span class="font-latex-warning">\</span><span class="keyword"><span class="font-latex-warning">\</span></span><span class="keyword">mbox</span><span class="function-name">{</span><span class="function-name"><span class="font-latex-warning">\\</span></span><span class="function-name">boldmath</span><span class="function-name"><span class="font-latex-math">$#1$</span></span><span class="function-name"><span class="font-latex-warning">\\</span></span><span class="function-name">unboldmath}</span>}
+ <span class="font-latex-warning">\</span><span class="keyword"><span class="font-latex-warning">\</span></span><span class="keyword">begin</span><span class="function-name">{document}</span>
+ <span class="flyspell-duplicate">etex</span>
+
+<span class="flyspell-duplicate">beginTableau</span>("+nmr+")
+<span class="flyspell-duplicate">newLigneVariables</span>(btex <span class="font-latex-math">$\\Mathbold{x}$</span> <span class="flyspell-duplicate">etex</span>);
+ "+l0+li+
+ "
+ newLigneSignes(btex <span class="font-latex-math">$\\hbox{\</span><span class="font-latex-bold"><span class="font-latex-math">\bf</span></span><span class="font-latex-math"> Signe }\\atop{{\</span><span class="font-latex-bold"><span class="font-latex-math">\bf</span></span><span class="font-latex-math"> de "+nomf+"(x)}}$</span> <span class="flyspell-duplicate">etex</span>);"+
+ if(member(mini,FF)==0){if(mini!=-infinity and product(L[s](mini),s,0,n-1)==0){"
+ valBarre(btex 0 etex);"}<span class="flyspell-duplicate">else</span>{"
+ "}}else{"nonDefBarre;"}+ <span class="flyspell-duplicate">lf</span>+
+ if(member(maxi,FF)==0){if(maxi!=+infinity and product(L[s](maxi),s,0,n-1)==0){"
+ valBarre(btex 0 etex);"}<span class="flyspell-duplicate">else</span>{"
+ "}}else{"nonDefBarre;"}+"
+<span class="flyspell-duplicate">endTableau</span>;
+<span class="flyspell-duplicate">end</span>"
+;
+}<span class="flyspell-duplicate">else</span>{
+
+
+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> <span class="flyspell-duplicate">etex</span>);
";fpour;
+l0:=l0+"val(btex <span class="font-latex-math">$"+latex(D[1])+"$</span> <span class="flyspell-duplicate">etex</span>);";
-
-for(p:=0;p&lt;=n-1;p++){lp:=" ";
+for(p:=0;p&lt;=n-1;p++){<span class="flyspell-duplicate">lp</span>:="";
li:=li+"
-<span class="flyspell-duplicate">newLigneSignes</span>(btex <span class="font-latex-math">$\\hbox{\</span><span class="font-latex-bold"><span class="font-latex-math">\bf</span></span><span class="font-latex-math"> Signe de }\\atop{\\displaystyle \\Mathbold{"+latex(L[p](x))+"}}$</span> etex);"+
- if(L[p](Z[0]-1.0)&gt;0){"plus;"}else{"moins;"}+
+<span class="flyspell-duplicate">newLigneSignes</span>(btex <span class="font-latex-math">$\\hbox{\</span><span class="font-latex-bold"><span class="font-latex-math">\bf</span></span><span class="font-latex-math"> Signe de }\\atop{\\displaystyle \\Mathbold{"+latex(L[p](x))+"}}$</span> <span class="flyspell-duplicate">etex</span>);"+
+ if(mini!=-infinity and L[p](mini)==0){"
+ valBarre(btex 0 etex);"}<span class="flyspell-duplicate">else</span>{"
+ "}+
+ if(L[p](Z[0]-0.01)&gt;0){"plus;"}else{"moins;"};
+
for(r:=0; r&lt;=nz-2;r++){
lp:=lp+if(simplifier(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;"}}+
- if(simplifier(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;
- "}
+ valBarre(btex 0 etex);"}else{"barre;
+ "}+
+ if(L[p]((Z[r]+Z[r+1])*.5)&gt;0){"plus;"}else{"moins;"}};
+
+ li:=li+lp+ if(simplifier(L[p](Z[<span class="flyspell-duplicate">nz</span>-1]))==0){"valBarre(btex 0 <span class="flyspell-duplicate">etex</span>);"}else{"barre;"}+
+ if(L[p](Z[<span class="flyspell-duplicate">nz</span>-1]+1.0)&gt;0){"plus;"}<span class="flyspell-duplicate">else</span>{"moins;
+ "}+if(maxi!=+infinity and L[p](<span class="flyspell-duplicate">maxi</span>)==0){"
+ <span class="flyspell-duplicate">valBarre</span>(<span class="flyspell-duplicate">btex</span> 0 <span class="flyspell-duplicate">etex</span>);"}<span class="flyspell-duplicate">else</span>{" "}
+
};
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],F)==0){"valBarre(btex 0 etex);"}else{"nonDefBarre;"}
- fpour
+ 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],<span class="flyspell-duplicate">FF</span>)==0){"valBarre(btex 0 etex);"}else{ "<span class="flyspell-duplicate">nonDefBarre</span>;"}
+ <span class="flyspell-duplicate">fpour</span>
-MetaL:=" input tableauVariation;
- <span class="flyspell-duplicate">verbatimtex</span>
+<span class="flyspell-duplicate">MetaL</span>:=" input <span class="flyspell-duplicate">tableauVariation</span>;
+<span class="flyspell-duplicate">verbatimtex</span>
<span class="comment-delimiter">%</span><span class="comment">&amp;latex
</span> <span class="font-latex-warning">\</span><span class="keyword"><span class="font-latex-warning">\</span></span><span class="keyword">documentclass</span><span class="function-name">{article}</span>
<span class="font-latex-warning">\</span><span class="keyword"><span class="font-latex-warning">\</span></span><span class="keyword">usepackage</span><span class="variable-name">[upright]</span><span class="function-name">{fourier}</span>
<span class="font-latex-warning">\</span><span class="keyword"><span class="font-latex-warning">\</span></span><span class="keyword">usepackage</span><span class="function-name">{amsmath}</span>
<span class="font-latex-warning">\</span><span class="keyword"><span class="font-latex-warning">\</span></span><span class="keyword">newcommand</span><span class="function-name">{</span><span class="function-name"><span class="font-latex-warning">\\</span></span><span class="function-name">Mathbold}</span>[1]{<span class="font-latex-warning">\</span><span class="keyword"><span class="font-latex-warning">\</span></span><span class="keyword">mbox</span><span class="function-name">{</span><span class="function-name"><span class="font-latex-warning">\\</span></span><span class="function-name">boldmath</span><span class="function-name"><span class="font-latex-math">$#1$</span></span><span class="function-name"><span class="font-latex-warning">\\</span></span><span class="function-name">unboldmath}</span>}
<span class="font-latex-warning">\</span><span class="keyword"><span class="font-latex-warning">\</span></span><span class="keyword">begin</span><span class="function-name">{document}</span>
- etex
- beginTableau("+nmr+")
-newLigneVariables(btex <span class="font-latex-math">$\\Mathbold{x}$</span> etex);
- val(btex <span class="font-latex-math">$-\\infty$</span> etex);"+l0+"val(btex <span class="font-latex-math">$+\\infty$</span> etex);"+
+ <span class="flyspell-duplicate">etex</span>
+ beginTableau("+<span class="flyspell-duplicate">nmr</span>+")
+<span class="flyspell-duplicate">newLigneVariables</span>(btex <span class="font-latex-math">$\\Mathbold{x}$</span> <span class="flyspell-duplicate">etex</span>);
+ "+l0+
li
+
- " newLigneSignes(btex <span class="font-latex-math">$\\hbox{\</span><span class="font-latex-bold"><span class="font-latex-math">\bf</span></span><span class="font-latex-math"> Signe de }\\atop{\</span><span class="font-latex-bold"><span class="font-latex-math">\bf</span></span><span class="font-latex-math"> "+nomf+"(x) }$</span> etex);"+
- if(product(L[s](Z[0]-1.0),s,0,n-1)&gt;0){"plus;"}else{"moins;"}+if(member(Z[0],F)==0){"valBarre(btex 0 etex);"}else{"nonDefBarre;"}+
- lr+
- if(product(L[s](Z[nz-1]+1.0),s,0,n-1)&gt;0){"plus;"}else{"moins;"}+"
-endTableau;
-end"
-;
-return(<span class="flyspell-duplicate">MetaL</span>);
+ "
+ newLigneSignes(btex <span class="font-latex-math">$\\hbox{\</span><span class="font-latex-bold"><span class="font-latex-math">\bf</span></span><span class="font-latex-math"> Signe }\\atop{{\</span><span class="font-latex-bold"><span class="font-latex-math">\bf</span></span><span class="font-latex-math"> de"+nomf+"(x)}}$</span> <span class="flyspell-duplicate">etex</span>);"+
+ if(member(mini,<span class="flyspell-duplicate">FF</span>)==0){if(mini!=-infinity and product(L[s](mini),s,0,n-1)==0){"
+ valBarre(btex 0 etex);"}<span class="flyspell-duplicate">else</span>{"
+ "}}else{"<span class="flyspell-duplicate">nonDefBarre</span>;"}+
+ 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{ "<span class="flyspell-duplicate">nonDefBarre</span>;"}+
+ <span class="flyspell-duplicate">lr</span>+
+ if(product(L[s](Z[nz-1]+0.01),s,0,n-1)&gt;0){"plus;"}else{"moins;"}+
+ if(member(maxi,<span class="flyspell-duplicate">FF</span>)==0){if(<span class="flyspell-duplicate">maxi</span>!=+<span class="flyspell-duplicate">infinity</span> and product(L[s](maxi),s,0,n-1)==0){"
+ <span class="flyspell-duplicate">valBarre</span>(btex 0 <span class="flyspell-duplicate">etex</span>);"}<span class="flyspell-duplicate">else</span>{" "}}<span class="flyspell-duplicate">else</span>{"<span class="flyspell-duplicate">nonDefBarre</span>;"}+"
+<span class="flyspell-duplicate">endTableau</span>;
+<span class="flyspell-duplicate">end</span>"
+;}
+<span class="flyspell-duplicate">return</span>(<span class="flyspell-duplicate">MetaL</span>);
}:;
-
<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">\begin</span></span><span class="function-name">{VerbatimOut}</span>{XcasTabSign.meta}
-TSa(a,b,c,d,nmr):={
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>{<span class="flyspell-duplicate">XcasTabSign.cxx</span>}
+<span class="flyspell-duplicate">TSa</span>(a,b,c,d,<span class="flyspell-duplicate">nmr</span>):={
<span class="flyspell-duplicate">zA</span>:=resoudre(a*x+b=0,x)[0];
-zB:=resoudre(c*x+d=0,x)[0];
-zmin:=min(zA,zB);
-zmax:=max(zA,zB);
- Meta:= " input tableauVariation;
+<span class="flyspell-duplicate">zB</span>:=resoudre(c*x+d=0,x)[0];
+<span class="flyspell-duplicate">zmin</span>:=min(zA,<span class="flyspell-duplicate">zB</span>);
+<span class="flyspell-duplicate">zmax</span>:=max(zA,<span class="flyspell-duplicate">zB</span>);
+ Meta:= " input <span class="flyspell-duplicate">tableauVariation</span>;
<span class="flyspell-duplicate">verbatimtex</span>
<span class="comment-delimiter">%</span><span class="comment">&amp;latex
</span> <span class="font-latex-warning">\</span><span class="keyword"><span class="font-latex-warning">\</span></span><span class="keyword">documentclass</span><span class="function-name">{article}</span>
@@ -639,63 +789,173 @@ zmax:=max(zA,zB);
<span class="font-latex-warning">\</span><span class="keyword"><span class="font-latex-warning">\</span></span><span class="keyword">newcommand</span><span class="function-name">{</span><span class="function-name"><span class="font-latex-warning">\\</span></span><span class="function-name">Mathbold}</span>[1]{<span class="font-latex-warning">\</span><span class="keyword"><span class="font-latex-warning">\</span></span><span class="keyword">mbox</span><span class="function-name">{</span><span class="function-name"><span class="font-latex-warning">\\</span></span><span class="function-name">boldmath</span><span class="function-name"><span class="font-latex-math">$#1$</span></span><span class="function-name"><span class="font-latex-warning">\\</span></span><span class="function-name">unboldmath}</span>}
<span class="font-latex-warning">\</span><span class="keyword"><span class="font-latex-warning">\</span></span><span class="keyword">begin</span><span class="function-name">{document}</span>
etex
- beginTableau("+nmr+")
- newLigneVariables(btex <span class="font-latex-math">$\\Mathbold{x}$</span> etex);
+ beginTableau("+<span class="flyspell-duplicate">nmr</span>+")
+ newLigneVariables(btex <span class="font-latex-math">$\\Mathbold{x}$</span> <span class="flyspell-duplicate">etex</span>);
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> <span class="flyspell-duplicate">etex</span>);
newLigneSignes(btex <span class="font-latex-math">$\\hbox{\</span><span class="font-latex-bold"><span class="font-latex-math">\bf</span></span><span class="font-latex-math"> Signe de }\\atop{\\displaystyle \\Mathbold{"+if(a==1){"x+"}else{if(a==-1){"-x+"}else{a+"x+"}}+b+"}}$</span> 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(zmin==zA){si a&gt;0 alors "plus;"; sinon "moins;";<span class="flyspell-duplicate">fsi</span>}
+ else{si a&gt;0 alors "moins;"; sinon "plus;"; <span class="flyspell-duplicate">fsi</span>}+
+ if(zmin==zA){"barre;"}else{"valBarre(btex 0 <span class="flyspell-duplicate">etex</span>);"}+
if(a&gt;0){"plus;"}else{"moins;"}
+"
-newLigneSignes(btex <span class="font-latex-math">$\\hbox{\</span><span class="font-latex-bold"><span class="font-latex-math">\bf</span></span><span class="font-latex-math"> Signe de }\\atop{\\displaystyle \\Mathbold{"+if(c==1){"x+"}else{if(c==-1){"-x+"}else{c+"x+"}}+d+"}}$</span> etex);"
+<span class="flyspell-duplicate">newLigneSignes</span>(btex <span class="font-latex-math">$\\hbox{\</span><span class="font-latex-bold"><span class="font-latex-math">\bf</span></span><span class="font-latex-math"> Signe de }\\atop{\\displaystyle \\Mathbold{"+if(c==1){"x+"}else{if(c==-1){"-x+"}else{c+"x+"}}+d+"}}$</span> <span class="flyspell-duplicate">etex</span>);"
+ 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}
+ if(zmin==zB){si c&gt;0 alors "plus;"; sinon "moins;";<span class="flyspell-duplicate">fsi</span>}
else{si c&gt;0 alors "moins;"; sinon "plus;"; fsi}+
if(zmin==zB){"barre;"}else{"valBarre(btex 0 <span class="flyspell-duplicate">etex</span>);"}+
if(c&gt;0){"plus;"}else{"moins;"}
+"
-newLigneSignes(btex <span class="font-latex-math">$\\hbox{\</span><span class="font-latex-bold"><span class="font-latex-math">\bf</span></span><span class="font-latex-math"> Signe de }\\atop{\\displaystyle \\Mathbold{("+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> <span class="flyspell-duplicate">etex</span>);"
- + 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);"+
+<span class="flyspell-duplicate">newLigneSignes</span>(btex <span class="font-latex-math">$\\hbox{\</span><span class="font-latex-bold"><span class="font-latex-math">\bf</span></span><span class="font-latex-math"> Signe de }\\atop{\\displaystyle \\Mathbold{("+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> etex);"
+ + si a*c&gt;0 alors plus; sinon moins;<span class="flyspell-duplicate">fsi</span>+";"+
+ "valBarre(btex 0 <span class="flyspell-duplicate">etex</span>);"+
+ si a*c&gt;0 alors moins; sinon plus;<span class="flyspell-duplicate">fsi</span>+";"+
+ "valBarre(btex 0 <span class="flyspell-duplicate">etex</span>);"+
si a*c&gt;0 alors plus; sinon moins;fsi+";"+"
-endTableau;
+<span class="flyspell-duplicate">endTableau</span>;
<span class="flyspell-duplicate">end</span>"
;
-return(Meta);
+<span class="flyspell-duplicate">return</span>(<span class="flyspell-duplicate">Meta</span>);
}:;
<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">\begin</span></span><span class="function-name">{VerbatimOut}</span>{XCas.in}
-maple_mode(0);
-read("XcasTabSign.meta");
+
+
+
+
+
+
+
+
+
+
+
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>{<span class="flyspell-incorrect">XcasTSc</span>.<span class="flyspell-duplicate">cxx</span>}
+<span class="flyspell-duplicate">TSc</span>(g,D,nmr):={
+f:=unapply(g,x);
+Z:=NULL;
+mini:=D[0]; maxi:=D[1];<span class="flyspell-duplicate">lm</span>:=" ";
+S:=resoudre(f(x),x);
+if(size(S)==0){
+li:=if(f(0)&gt;0){"plus;"}<span class="flyspell-duplicate">else</span>{"moins;"};
+<span class="flyspell-duplicate">lm</span>:=" ";<span class="flyspell-duplicate">lf</span>:=" ";
+}
+else{pour j de 0 jusque size(S)-1 faire
+ if(S[j]&gt;mini and S[j]&lt;maxi){Z:=Z,simplifier(S[j])};
+ <span class="flyspell-duplicate">fpour</span>;
+
+
+Z:=sort(Z);
+nz:=size(Z);
+if(nz&gt;2){pour u de 1 jusque nz-2 faire
+ si Z[u]==Z[u+1] alors Z:=Z[0..u-1],Z[u+1..nz-1];nz:=<span class="flyspell-duplicate">nz</span>-1;
+ fsi;
+<span class="flyspell-duplicate">fpour</span>;}
+nz:=size(Z);
+l0:=" ";li:=" ";lr:=" ";
+if(nz==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(mini!=-infinity and f(mini)==0){"
+ valBarre(btex 0 etex);"}<span class="flyspell-duplicate">else</span>{"
+ "}+
+if(f((mini+maxi)*0.5&gt;0)){"plus;"}else{"moins;"};
+lf:=if(maxi!=+infinity and f(maxi)==0){"
+ valBarre(btex 0 etex);"}<span class="flyspell-duplicate">else</span>{"
+ "};
+
+}else{
+l0:="val(btex <span class="font-latex-math">$"+latex(D[0])+"$</span> etex);";li:=" ";
+pour m de 0 jusque nz-1 faire l0:=l0+"val(btex <span class="font-latex-math">$"+latex(Z[m])+"$</span> etex);
+";
+<span class="flyspell-duplicate">fpour</span>;
+l0:=l0+"val(btex <span class="font-latex-math">$"+latex(D[1])+"$</span> <span class="flyspell-duplicate">etex</span>);";
+
+li:= if(mini!=-infinity and f(mini)==0){"
+ <span class="flyspell-duplicate">valBarre</span>(btex 0 etex);"}<span class="flyspell-duplicate">else</span>{"
+ "}+
+if(f(Z[0]-0.01)&gt;0){"plus;"}<span class="flyspell-duplicate">else</span>{"moins;"}+if(simplifier(f(Z[0]))==0){"<span class="flyspell-duplicate">valBarre</span>(<span class="flyspell-duplicate">btex</span> 0 <span class="flyspell-duplicate">etex</span>);"}<span class="flyspell-duplicate">else</span>{"barre;"};
+
+<span class="flyspell-duplicate">lm</span>:=if(<span class="flyspell-duplicate">nz</span>&gt;=2){for(r:=0; r&lt;=nz-2;r++){if(f((Z[r]+Z[r+1])*.5)&gt;0){"plus;"}else{"moins;"}+
+ if(simplifier(f(Z[r+1]))==0){"valBarre(btex 0 etex);"}else{"barre;"}
+ }}<span class="flyspell-duplicate">else</span>{" "};
+
+<span class="flyspell-duplicate">lf</span>:=if(f(Z[nz-1]+1.0)&gt;0){"plus;"}else{"moins;"}+if(maxi!=+infinity and f(maxi)==0){"valBarre(btex 0 etex);"}<span class="flyspell-duplicate">else</span>{"
+ "};
+}};
+
+
+MetaL:=" input <span class="flyspell-duplicate">tableauVariation</span>;
+ <span class="flyspell-duplicate">verbatimtex</span>
+<span class="comment-delimiter">%</span><span class="comment">&amp;latex
+</span> <span class="font-latex-warning">\</span><span class="keyword"><span class="font-latex-warning">\</span></span><span class="keyword">documentclass</span><span class="function-name">{article}</span>
+ <span class="font-latex-warning">\</span><span class="keyword"><span class="font-latex-warning">\</span></span><span class="keyword">usepackage</span><span class="variable-name">[upright]</span><span class="function-name">{fourier}</span>
+ <span class="font-latex-warning">\</span><span class="keyword"><span class="font-latex-warning">\</span></span><span class="keyword">usepackage</span><span class="function-name">{amsmath}</span>
+ <span class="font-latex-warning">\</span><span class="keyword"><span class="font-latex-warning">\</span></span><span class="keyword">newcommand</span><span class="function-name">{</span><span class="function-name"><span class="font-latex-warning">\\</span></span><span class="function-name">Mathbold}</span>[1]{<span class="font-latex-warning">\</span><span class="keyword"><span class="font-latex-warning">\</span></span><span class="keyword">mbox</span><span class="function-name">{</span><span class="function-name"><span class="font-latex-warning">\\</span></span><span class="function-name">boldmath</span><span class="function-name"><span class="font-latex-math">$#1$</span></span><span class="function-name"><span class="font-latex-warning">\\</span></span><span class="function-name">unboldmath}</span>}
+ <span class="font-latex-warning">\</span><span class="keyword"><span class="font-latex-warning">\</span></span><span class="keyword">begin</span><span class="function-name">{document}</span>
+ etex
+<span class="flyspell-duplicate">beginTableau</span>("+nmr+")
+newLigneVariables(btex <span class="font-latex-math">$\\Mathbold{x}$</span> etex);
+ "+l0+"
+newLigneSignes(btex <span class="font-latex-math">$\\hbox{\</span><span class="font-latex-bold"><span class="font-latex-math">\bf</span></span><span class="font-latex-math"> Signe de }\\atop{\\displaystyle \\Mathbold{"+latex(f(x))+"}}$</span> <span class="flyspell-duplicate">etex</span>);"+
+ li+<span class="flyspell-duplicate">lm</span>+lf
+ +"
+<span class="flyspell-duplicate">endTableau</span>;
+end"
+;
+return(<span class="flyspell-duplicate">MetaL</span>);
+ }:;
+<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">les "</span><span class="comment"><span class="flyspell-duplicate">giac</span></span><span class="comment">"
+</span>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>{XCas.giac}
+<span class="flyspell-duplicate">maple</span>_mode(0);
+<span class="flyspell-duplicate">read</span>("XcasTabSign.cxx");
Sortie:=fopen("XCasmp.mp");
-vect.xcas.out := read("XCas.out");
-vxo := vect.xcas.out;
-dim.vxo := dim(vxo);
-nbr.line.vxo := dim.vxo;
-Resultat:=cat(" ");
-<span class="flyspell-duplicate">rslt</span> := vxo[0]; RslT:=cat(rslt);
+<span class="flyspell-duplicate">vect</span>.xcas.user := read("XCas.user");
+vxo := vect.xcas.user;
+<span class="flyspell-duplicate">dim</span>.vxo := dim(vxo);
+<span class="flyspell-duplicate">nbr</span>.line.vxo := dim.vxo;
+<span class="flyspell-duplicate">Resultat</span>:=cat(" ");
+rslt := vxo[0]; RslT:=cat(<span class="flyspell-duplicate">rslt</span>);
<span class="flyspell-duplicate">Resultat</span>:=cat(Resultat,RslT);
-<span class="flyspell-duplicate">fprint</span>(Sortie,Unquoted,Resultat);
-fclose(Sortie);
+fprint(Sortie,Unquoted,Resultat);
+<span class="flyspell-duplicate">fclose</span>(Sortie);
<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">{</span><span class="function-name"><span class="flyspell-duplicate">TSa</span></span><span class="function-name">}</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>&#163;&#181;]{XCas.out}}
+{<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>&#163;&#181;]{XCas.user}}
{<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
- <span class="font-latex-sedate">\executGiacmp</span>{XCas.in}
+ <span class="font-latex-sedate">\executGiacmp</span>{XCas.giac}
<span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{mpost <span class="flyspell-duplicate">XCasmp</span>}
@@ -706,25 +966,25 @@ fclose(Sortie);
}
-<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>{XCasQ.in}
-maple_mode(0);
-read("XcasTabSignQ.meta");
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>{XCasQ.giac}
+<span class="flyspell-duplicate">maple</span>_mode(0);
+<span class="flyspell-duplicate">read</span>("XcasTabSignQ.cxx");
Sortie:=fopen("XCasmpQ.mp");
-<span class="flyspell-duplicate">vect</span>.xcas.out := read("XCasQ.out");
-<span class="flyspell-duplicate">vxo</span> := vect.xcas.out;
-<span class="flyspell-duplicate">dim</span>.vxo := dim(vxo);
+vect.xcas.user := read("XCasQ.user");
+<span class="flyspell-duplicate">vxo</span> := vect.xcas.user;
+dim.vxo := dim(vxo);
nbr.line.vxo := dim.vxo;
-Resultat:=cat(" ");
-rslt := vxo[0]; RslT:=cat(rslt);
-<span class="flyspell-duplicate">Resultat</span>:=cat(Resultat,RslT);
+<span class="flyspell-duplicate">Resultat</span>:=cat(" ");
+<span class="flyspell-duplicate">rslt</span> := vxo[0]; RslT:=cat(rslt);
+Resultat:=cat(Resultat,RslT);
<span class="flyspell-duplicate">fprint</span>(Sortie,Unquoted,Resultat);
-<span class="flyspell-duplicate">fclose</span>(Sortie);
+fclose(Sortie);
<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">{</span><span class="function-name"><span class="flyspell-duplicate">TSq</span></span><span class="function-name">}</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>&#163;&#181;]{XCasQ.out}}
+<span class="font-latex-sedate"><span class="keyword">\newenvironment</span></span><span class="function-name">{TSq}</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>&#163;&#181;]{XCasQ.user}}
{<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
- <span class="font-latex-sedate">\executGiacmp</span>{XCasQ.in}
+ <span class="font-latex-sedate">\executGiacmp</span>{XCasQ.giac}
<span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{mpost <span class="flyspell-duplicate">XCasmpQ</span>}
@@ -736,25 +996,25 @@ rslt := vxo[0]; RslT:=cat(rslt);
-<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>{XCasL.in}
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>{XCasL.giac}
maple_mode(0);
-read("XcasTabSignL.meta");
+<span class="flyspell-duplicate">read</span>("XcasTabSignL.cxx");
Sortie:=fopen("XCasmpL.mp");
-<span class="flyspell-duplicate">vect</span>.xcas.out := read("XCasL.out");
-<span class="flyspell-duplicate">vxo</span> := vect.xcas.out;
-<span class="flyspell-duplicate">dim</span>.vxo := dim(vxo);
+<span class="flyspell-duplicate">vect</span>.xcas.user := read("XCasL.user");
+<span class="flyspell-duplicate">vxo</span> := vect.xcas.user;
+dim.vxo := dim(vxo);
nbr.line.vxo := dim.vxo;
-Resultat:=cat(" ");
-rslt := vxo[0]; RslT:=cat(rslt);
+<span class="flyspell-duplicate">Resultat</span>:=cat(" ");
+<span class="flyspell-duplicate">rslt</span> := vxo[0]; RslT:=cat(rslt);
<span class="flyspell-duplicate">Resultat</span>:=cat(Resultat,RslT);
<span class="flyspell-duplicate">fprint</span>(Sortie,Unquoted,Resultat);
-<span class="flyspell-duplicate">fclose</span>(Sortie);
+fclose(Sortie);
<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">{</span><span class="function-name"><span class="flyspell-duplicate">TS</span></span><span class="function-name">}</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>&#163;&#181;]{XCasL.out}}
+{<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>&#163;&#181;]{XCasL.user}}
{<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
- <span class="font-latex-sedate">\executGiacmp</span>{XCasL.in}
+ <span class="font-latex-sedate">\executGiacmp</span>{XCasL.giac}
<span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{mpost <span class="flyspell-duplicate">XCasmpL</span>}
@@ -764,31 +1024,59 @@ rslt := vxo[0]; RslT:=cat(rslt);
<span class="font-latex-sedate">\stepcounter</span>{<span class="flyspell-duplicate">TVn</span>}
}
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>{<span class="flyspell-duplicate">XCasTSc</span>.giac}
+<span class="flyspell-duplicate">maple</span>_mode(0);
+read("<span class="flyspell-duplicate">XcasTSc.cxx</span>");
+Sortie:=<span class="flyspell-duplicate">fopen</span>("<span class="flyspell-duplicate">XCasmpTSc</span>.<span class="flyspell-duplicate">mp</span>");
+<span class="flyspell-duplicate">vect</span>.xcas.user := read("<span class="flyspell-duplicate">XCasTSc</span>.user");
+vxo := vect.xcas.user;
+dim.vxo := dim(<span class="flyspell-duplicate">vxo</span>);
+<span class="flyspell-duplicate">nbr</span>.line.vxo := dim.<span class="flyspell-duplicate">vxo</span>;
+Resultat:=<span class="flyspell-duplicate">cat</span>(" ");
+rslt := vxo[0]; RslT:=cat(rslt);
+<span class="flyspell-duplicate">Resultat</span>:=cat(Resultat,RslT);
+fprint(Sortie,Unquoted,Resultat);
+fclose(Sortie);
+<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">{</span><span class="function-name"><span class="flyspell-duplicate">TSc</span></span><span class="function-name">}</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>[<span class="flyspell-duplicate">commandchars</span>=<span class="font-latex-warning">\\</span>&#163;&#181;]{<span class="flyspell-incorrect">XCasTSc</span>.user}}
+{<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
+ <span class="font-latex-sedate">\executGiacmp</span>{<span class="flyspell-duplicate">XCasTSc</span>.<span class="flyspell-duplicate">giac</span>}
+ <span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="flyspell-duplicate">mpost</span> <span class="flyspell-duplicate">XCasmpTSc</span>}
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{center}</span>
+ <span class="font-latex-sedate">\includegraphics</span>{<span class="flyspell-duplicate">XCasmpTSc</span>.<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>{<span class="flyspell-duplicate">TVn</span>}
+}
-<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>{XCasTV.in}
+
+
+
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>{XCasTV.giac}
<span class="flyspell-duplicate">maple</span>_mode(0);
-<span class="flyspell-duplicate">read</span>("XcasTV.meta");
+read("XcasTV.cxx");
Sortie:=fopen("XCasmpTV.mp");
-vect.xcas.out := read("XCasTV.out");
-vxo := vect.xcas.out;
-dim.vxo := dim(vxo);
+vect.xcas.user := read("XCasTV.user");
+vxo := vect.xcas.user;
+<span class="flyspell-duplicate">dim</span>.vxo := dim(vxo);
<span class="flyspell-duplicate">nbr</span>.line.vxo := dim.vxo;
-<span class="flyspell-duplicate">Resultat</span>:=cat(" ");
-<span class="flyspell-duplicate">rslt</span> := vxo[0]; RslT:=cat(rslt);
+Resultat:=cat(" ");
+rslt := vxo[0]; RslT:=cat(rslt);
Resultat:=cat(Resultat,RslT);
fprint(Sortie,Unquoted,Resultat);
-fclose(Sortie);
+<span class="flyspell-duplicate">fclose</span>(Sortie);
<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>&#163;&#181;]{XCasTV.out}}<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>&#163;&#181;]{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="comment">%
-</span> <span class="font-latex-sedate">\executGiacmp</span>{XCasTV.in}
- <span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{mpost <span class="flyspell-duplicate">XCasmpTV</span>}
+</span> <span class="font-latex-sedate">\executGiacmp</span>{XCasTV.giac}
+ <span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{mpost XCasmpTV}
<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{center}</span>
<span class="font-latex-sedate">\includegraphics</span>{XCasmpTV.<span class="font-latex-sedate">\theTVn</span>}
<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{center}</span>
@@ -798,26 +1086,26 @@ fclose(Sortie);
-<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>{XCasTVI.in}
-maple_mode(0);
-<span class="flyspell-duplicate">read</span>("XcasTVI.meta");
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>{XCasTVI.giac}
+<span class="flyspell-duplicate">maple</span>_mode(0);
+read("XcasTVI.<span class="flyspell-duplicate">cxx</span>");
Sortie:=fopen("XCasmpTVI.mp");
-<span class="flyspell-duplicate">vect</span>.xcas.out := read("XCasTVI.out");
-vxo := vect.xcas.out;
-dim.vxo := dim(<span class="flyspell-duplicate">vxo</span>);
-nbr.line.vxo := dim.<span class="flyspell-duplicate">vxo</span>;
-Resultat:=<span class="flyspell-duplicate">cat</span>(" ");
+<span class="flyspell-duplicate">vect</span>.xcas.user := read("XCasTVI.user");
+vxo := vect.xcas.user;
+dim.vxo := dim(vxo);
+<span class="flyspell-duplicate">nbr</span>.line.vxo := dim.vxo;
+Resultat:=cat(" ");
rslt := vxo[0]; RslT:=cat(rslt);
-<span class="flyspell-duplicate">Resultat</span>:=cat(Resultat,<span class="flyspell-duplicate">RslT</span>);
-fprint(Sortie,Unquoted,<span class="flyspell-duplicate">Resultat</span>);
-<span class="flyspell-duplicate">fclose</span>(Sortie);
+<span class="flyspell-duplicate">Resultat</span>:=cat(Resultat,RslT);
+fprint(Sortie,Unquoted,Resultat);
+fclose(Sortie);
<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">{</span><span class="function-name"><span class="flyspell-duplicate">TVI</span></span><span class="function-name">}</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>[<span class="flyspell-duplicate">commandchars</span>=<span class="font-latex-warning">\\</span>&#163;&#181;]{XCasTVI.out}}<span class="comment">%
+<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>&#163;&#181;]{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="comment">%
-</span> <span class="font-latex-sedate">\executGiacmp</span>{XCasTVI.in}
- <span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="flyspell-duplicate">mpost</span> XCasmpTVI}
+</span> <span class="font-latex-sedate">\executGiacmp</span>{XCasTVI.<span class="flyspell-duplicate">giac</span>}
+ <span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{mpost XCasmpTVI}
<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{center}</span>
<span class="font-latex-sedate">\includegraphics</span>{XCasmpTVI.<span class="font-latex-sedate">\theTVn</span>}
<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{center}</span>
@@ -832,7 +1120,7 @@ fprint(Sortie,Unquoted,<span class="flyspell-duplicate">Resultat</span>);
<span class="comment-delimiter">%%</span><span class="comment">
-</span><span class="comment-delimiter">%% </span><span class="comment">Zi </span><span class="comment"><span class="flyspell-duplicate">end</span></span><span class="comment">
+</span><span class="comment-delimiter">%% </span><span class="comment">Zi end
</span></pre>
</body>
</html>
diff --git a/Master/texmf-dist/doc/latex/tablor/tablor.pdf b/Master/texmf-dist/doc/latex/tablor/tablor.pdf
index e97809a956e..42f6060520b 100644
--- a/Master/texmf-dist/doc/latex/tablor/tablor.pdf
+++ b/Master/texmf-dist/doc/latex/tablor/tablor.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/tablor/tablor.tex b/Master/texmf-dist/doc/latex/tablor/tablor.tex
index ca2fe635dbb..34cb3be545c 100644
--- a/Master/texmf-dist/doc/latex/tablor/tablor.tex
+++ b/Master/texmf-dist/doc/latex/tablor/tablor.tex
@@ -2,13 +2,10 @@
\usepackage[height=250mm,width=183mm]{geometry}
\usepackage[upright]{fourier}
\usepackage{tablor}
-\usepackage{listings,amsmath,verbatim,graphicx,xcolor}
+\usepackage{preambule}
\usepackage[dvips,colorlinks=true]{hyperref}
-\definecolor{0.8white}{rgb}{0.8,0.8,0.8}
-\definecolor{0.2white}{rgb}{0.2,0.2,0.2}
-
\newcommand{\lat}{
\lstset{numbers=none,language=[LaTeX]{TeX},xleftmargin=10pt,%
@@ -16,14 +13,17 @@ keywordstyle =\color{0.2white}\usefont{OT1}{cmtt}{b}{n},basicstyle=\ttfamily,com
backgroundcolor=\color{0.8white},breaklines=true}
}
-
+\renewcommand{\xcas}{\lstset{numbers=none,language=XCAS,xleftmargin=10pt,%
+keywordstyle =\color{0.2white}\usefont{OT1}{cmtt}{b}{n},basicstyle=\ttfamily,commentstyle=\normalfont\scriptsize\slshape,
+ backgroundcolor=\color{0.8white},breaklines=true}
+}
\title{\texttt{tablor.sty} \\La machine à créer des tableaux de signes et de variations }
\author{Guillaume \textsc{Connan} \\ \href{http://gconnan.free.fr}{http://gconnan.free.fr}}
-\date{21 janvier 2008 - Version 1.3}
+\date{23 janvier 2008 - Version 1.4}
\begin{document}
@@ -33,32 +33,60 @@ keywordstyle =\color{0.2white}\usefont{OT1}{cmtt}{b}{n},basicstyle=\ttfamily,com
\section{Ça sert à quoi~?}
-Il s'agit d'obtenir rapidement un tableau de signes ou un tableau de variations en entrant un
+Il s'agit d'obtenir rapidement un tableau de signe ou un tableau de variation en entrant un
minimum de commandes.
\section{Comment ça marche~?}
-On entre une instruction qu'on envoie via \LaTeX{} à \texttt{XCAS} qui effectue un certain nombre de
-calculs (résolution d'équations, calcul de limites). \texttt{XCAS} renvoie un résultat sous la forme
-d'un script \texttt{MetaPOST} qui est compilé. Un tableau est créé et ensuite inséré dans le document
+\subsection{Principe général}
+
+On entre une instruction qu'on envoie via \LaTeX{} à \Prog{XCAS} qui effectue un certain nombre de
+calculs (résolution d'équations, calcul de limites). \Prog{XCAS} renvoie un résultat sous la forme
+d'un script \Prog{MetaPOST} qui est compilé. Un tableau est créé et ensuite inséré dans le document
\texttt{tex}.
+\subsection{Rentrons dans les détails}
+
+En utilisant un environnement \texttt{tablor}, de nombreux fichiers sont créés dans le répertoire
+courant puis effacés par la commande \texttt{nettoyer} si vous le souhaitez~:
+
+\bez
+\item des fichiers d'extension \texttt{.cxx}~:~il s'agit du fichier le plus important. C'est le
+ programme \Prog{XCAS} qui «~fabrique~» le tableau. Vous pouvez l'utilisez tel quel dans une
+ session \Prog{XCAS} ou \Prog{giac}.
+\item des fichiers d'extension \texttt{.giac} qui regroupent des instructions lues et exécutées par
+ \Prog{giac}.
+Les lignes importantes sont~:
+
+\begin{lstlisting}
+read("XcasTV.cxx"); // giac charge le programme
+Sortie:=fopen("XCasmpTV.mp"); // la sortie portera l'extension metapost
+vect.xcas.user := read("XCasTV.user"); // giac lit les paramètres rentrés dans le fichier tex
+\end{lstlisting}
+
+\item des fichiers d'extension \texttt{.user} qui sont créés par \LaTeX{} grâce à l'environnement
+ \texttt{VerbatimOut} de l'extension \texttt{fancyvrb} : il s'agit en fait de la commande qui se
+ trouve par exemple entre \verb+\begin{TVI}+ et \verb+\end{TVI}+.
+
+
+\ez
+
\section{De quoi a-t-on besoin~?}
-\begin{itemize}
+\bez
-\item Il faut avoir installé \texttt{XCAS}, logiciel multi-plateforme de calcul et de programmation~:
+\item Il faut avoir installé \Prog{XCAS}, logiciel multi-plateforme de calcul et de programmation~:
\href{http://www-fourier.ujf-grenoble.fr/\%7Eparisse/giac\_fr.html}{http://www-fourier.ujf-grenoble.fr/\%7Eparisse/giac\_fr.html};
-\item il faut avoir le fichier de macros \texttt{MetaPOST}
+\item il faut avoir le fichier de macros \Prog{MetaPOST}
\texttt{tableauVariation.mp} de Frédéric Mazoit~:
\href{http://frederic.mazoit.free.fr/LaTeX\_metapost/tableauVariations/}{http://frederic.mazoit.free.fr/LaTeX\_metapost/tableauVariations/};
-Pour ceux qui sont guère habitués à \texttt{MetaPOST}, cela ne pose aucun problème car les
-scripts et compilations \texttt{MetaPOST} se font automatiquement. Il suffit de créer dans son
+Pour ceux qui sont guère habitués à \Prog{MetaPOST}, cela ne pose aucun problème car les
+scripts et compilations \Prog{MetaPOST} se font automatiquement. Il suffit de créer dans son
\texttt{texmf} personnel une arborescence du style~: \texttt{./texmfperso/metapost/tablor/} et d'y
placer \texttt{tableauVariation.mp} puis un \texttt{rehash}. C'est exactement la même démarche que
pour installer une nouvelle extension \LaTeX{}.
@@ -66,60 +94,81 @@ pour installer une nouvelle extension \LaTeX{}.
\item il faut être en mode \texttt{shell-escape} pour autoriser
- les sorties de la compilation \texttt{tex}. Pour \texttt{emacs}, on rajoute en
- fin de fichier \verb+%%% mode: latex --shell-escape+; pour les autres éditeurs, il faut modifier
+ les sorties de la compilation \texttt{tex}. Pour \Prog{emacs}, on rajoute en
+ fin de fichier \verb+%%% LaTeX-command: "latex --shell-escape" ***+; pour les autres éditeurs, il faut modifier
la commande de compilation. Sinon, on peut modifier le fichier \texttt{texmf.cnf}
pour que le mode soit automatisé en modifiant la ligne suivante~:~\texttt{shell-escape t};
\item il faut avoir à disposition l'extension \texttt{fancyvrb};
\item pour ceux qui compilent avec \texttt{pdf\LaTeX{}}, il faut avoir effectué les petits réglages
- nécessaires à l'utilisation de figures produites par \texttt{MetaPOST}. Pour cela, il suffit de
+ nécessaires à l'utilisation de figures produites par \Prog{MetaPOST}; Pour cela, il suffit de
rajouter dans le préambule~:\\
\verb+\DeclareGraphicsRule{*}{mps}{*}{}+
-\item il faut enfin installer le fichier \texttt{tablor.sty} dans son \texttt{texmf} personnel.
+\item il faut installer le fichier \texttt{tablor.sty} dans son \texttt{texmf} personnel.
-\end{itemize}
+\ez
-\bigskip
-
- Pour les utilisateurs de Microsoft Windows, remplacer
- \verb+\immediate\write18{giac<#1 }+ par
- \verb+\immediate\write18{giac #1 }+ dans le fichier \texttt{tablor.sty}
- pour permettre le \texttt{shell-escape}\\
+\begin{figure}
+ \begin{DANGER}
+ Pour les utilisateurs de Microsoft Windows, remplacer \verb+\immediate\write18{giac<#1 }+ par \verb+\immediate\write18{giac #1 }+
+dans le fichier \texttt{tablor.sty}
+ pour permettre le \texttt{shell-escape}
\smallskip
Pour les utilisateurs de TeXnicCenter, observez cette
\href{http://img221.imageshack.us/img221/27/capture20080114215233hu7.png}{explication} du
paramétrage du \texttt{shell-escape}. On peut par exemple mettre~:\\
\texttt{-enable-write18 --shell-escape --src -interaction=nonstopmode "\%Wm"}.\\
-Sur TeXmaker, c'est \texttt{latex -enable-write18 --shell-escape -interaction=nonstopmode \%.tex}.\\
+Sur TeXmaker, c'est \texttt{latex -enable-write18 --shell-escape -interaction=nonstopmode \%.tex}.
+
+
\smallskip
-Pour faire comprendre à XP où trouver \texttt{giac}, vous pouvez modifier le \texttt{path} en suivant
+Pour faire comprendre à XP où trouver \Prog{giac}, vous pouvez modifier le \texttt{path} en suivant
ces instructions~: \\
Demarrer->Panneau de configuration->Système onglet Avancé->Variable d'environnement.\\
Le séparateur est le point virgule.
(Merci à Gaëtan et à Daniel).
-
-\bigskip
+ \end{DANGER}
+ \end{figure}
- L'extension \verb+fancybox+ rentre en conflit avec \verb+fancyvrb+ qu'utilise
+
+\begin{figure}
+ \begin{DANGER}
+ L'extension \verb+fancybox+ rentre en conflit avec \verb+fancyvrb+ qu'utilise
\verb+tablor+ car elles définissent toutes deux différemment l'environnement \verb+VerbatimOut+.
+ \end{DANGER}
+ \end{figure}
-\bigskip
-Quatre nouvelles commandes sont crées~:~\verb+\tv, \nettoyer, \bouger, \recup,\executGiacmp+.
- Attention aux conflits si de tels noms exustent quelque part dans vos
+\begin{figure}
+ \begin{DANGER}
+ Quatre nouvelles commandes sont crées~:~\verb+\tv, \nettoyer, \bouger, \recup,\executGiacmp+.
+ Attention aux conflits si de tels noms existent quelque part dans vos
fichiers personnels.
+ \end{DANGER}
+ \end{figure}
+
+
+
+
+\begin{figure}
+ \begin{DANGER}
+Le fichier \texttt{tablor.sty} est codé en \texttt{latin-1}. Certains devront donc le convertir en
+\texttt{utf-8}.
+ \end{DANGER}
+ \end{figure}
+
\section{Comment l'utiliser~?}
\subsection{Préambule}
-Les ECM donnés en exemple correspondent à une compilation \texttt{\LaTeX{}+dvi+dvips}.
+Les ECM donnés en exemple correspondent à une compilation \texttt{\LaTeX{}+dvi+dvips}. Pour \texttt{pdf\LaTeX{}},
+rajouter \verb+\DeclareGraphicsRule{*}{mps}{*}{}+.
Le préambule sera toujours~:
@@ -132,56 +181,73 @@ Le préambule sera toujours~:
\end{lstlisting}
+
+\begin{figure}
+ \begin{Idee}
+ Les fontes utilisées dans les tableaux sont \verb+[upright]{fourier}+. Il est tout à
+ fait possible d'utiliser d'autres fontes. Il suffit de modifier le fichier
+ \texttt{tablor.sty} en remplaçant partout où il apparaît \verb+[upright]{fourier}+ par \verb+lmodern+ ou ce
+ que vous voulez. Ce n'est pas très pratique, mais cela évite de le mettre en option à
+ chaque utilisation et on utilise souvent la même fonte dans ses documents.
+ \end{Idee}
+ \end{figure}
+
+
\subsection{Tableaux des variations}
L'environnement s'appelle \texttt{TV}. On utilise une commande au format \texttt{XCAS}~:
-%\xcas
+\xcas
\begin{lstlisting}
TV([borne inf,borne sup],[valeurs interdites],"nom fonction","nom variable",expression en fonction de x,t,\tv)
\end{lstlisting}
-\begin{itemize}
+\bez
\item \texttt{[borne inf,borne sup]} désigne les bornes de l'ensemble de définition. On note
$+\infty$~:~\texttt{+infinity} et $-\infty$~:~\texttt{-infinity}. N'oubliez pas
les crochets~!
\item \texttt{[valeurs interdites]} désigne la liste des valeurs interdites;
\item \texttt{"nom fonction"} désigne la lettre représentant la fonction telle que vous voulez
- qu'elle apparaisse : $f$, $g$, $h$, etc.
+ qu'elle apparaisse : $f$, $g$, $\f$, etc.
\item \texttt{"nom variable"}~:~même chose pour la variable, selon que vous voulez la désigner par
$x$, $t$, etc. N'oubliez pas les guillemets~!
\item \texttt{expression en fonction de x} désigne l'expression de la fonction. Attention~! Utilisez
ici toujours $x$ pour désigner la variable;
\item le paramètre \texttt{t} est à remplacer par 1 si vous voulez voir apparaître une ligne
- avec le signe de la dérivée et par 0 si vous ne voulez pas de cette ligne.
-\item on termine par \verb+\tv+, une commande permettant de numéroter les tableaux en interne.
-\end{itemize}
+ avec le signe de la dérivée, par 0 si vous ne voulez pas de cette ligne et par 2 si vous ne voulez
+ que le signe de la dérivée.
+\item on termine par \verb+\tv+, une commande permettant de numéroter les tableaux en interne.
+
+\ez
\lat
Voyons à présent quelques exemples.
\begin{enumerate}
-\item Le tableau de variation sans signe de la dérivée de la fonction $f~:~x\mapsto x^2$ sur $[-5 ; 7]$. On entre~:
+\item Le tableau de variation sans signe de la dérivée de la fonction $f~:~x\mapsto x^2$ sur $[-5\pv7]$.
+
+
+On obtient~:
- \begin{lstlisting}
\begin{TV}
-TV([-5,7],[],"f","x",x^2,0,\tv)
+TV([-5,7],[],"f","x",x^2,0,\tv);
\end{TV}
- \end{lstlisting}
-et on obtient~:
+après avoir entré~:
+
+\begin{lstlisting}
\begin{TV}
TV([-5,7],[],"f","x",x^2,0,\tv)
\end{TV}
+\end{lstlisting}
-
-\item Si on veut la même fonction sur $]-\infty;+\infty[$ avec le signe de la dérivée~:
+\item Si on veut la même fonction sur $\bbr$ avec le signe de la dérivée~:
\begin{lstlisting}
\begin{TV}
@@ -193,7 +259,24 @@ TV([-infinity,+infinity],[],"f","x",x^2,1,\tv)
TV([-infinity,+infinity],[],"f","x",x^2,1,\tv)
\end{TV}
-\item Voici ce que cela donne pour $g~:~t\mapsto \frac{t^2}{t^2-1}$ sur $[-10; +\infty[$~:
+\item Avec la même fonction sur $\bbr$ avec uniquement le signe de la dérivée~:
+
+
+
+ \begin{lstlisting}
+\begin{TV}
+TV([-infinity,+infinity],[],"f","x",x^2,2,\tv)
+\end{TV}
+ \end{lstlisting}
+
+\begin{TV}
+TV([-infinity,+infinity],[],"f","x",x^2,2,\tv)
+\end{TV}
+
+
+
+
+\item Voici ce que cela donne pour $g~:~t\mapsto \frac{t^2}{t^2-1}$ sur $[-10\pv +\infty[$~:
\begin{lstlisting}
\begin{TV}
@@ -211,7 +294,7 @@ TV([-10,+infinity],[-1,1],"g","t",x^2/(x^2-1),1,\tv)
\end{center}
-\item Il y aura des problèmes pour des équations $f'(x)=0$ que \texttt{XCAS} ne saurait pas résoudre
+\item Il y aura des problèmes pour des équations $f'(x)=0$ que \Prog{XCAS} ne saurait pas résoudre
de manière formelle. Il faudrait alors utiliser une résolution numérique et remplacer
\texttt{resoudre} par \texttt{fsolve}. Mais dans les études demandées au Bac, l'étude des signes
de la dérivée est possible formellement. Dans les cas plus exotiques, on peut faire le tableau «~à
@@ -227,9 +310,12 @@ Si l'on veut mettre en évidence les solutions de l'équation $f(x)=a$, on uti
La syntaxe est~:
\begin{lstlisting}
-TVI([borne inf,borne sup],[valeurs interdites],"nom fonction","nom variable",expression en fonction de x,t,a,numero du tableau)
+TVI([borne inf,borne sup],[valeurs interdites],"nom fonction","nom variable",expression en fonction de x,t,a,\tv)
\end{lstlisting}
+Les paramètres sont les mêmes que pour \texttt{TV} mais on ajoute la valeur \texttt{a} bien sûr.
+
+
Par exemple, pour $f~:~x\mapsto \frac{x^2}{x^2-1}$ et l'équation $f(x)=10$ on entre~:
\begin{lstlisting}
@@ -269,7 +355,7 @@ TVI([-10,+infinity],[-1,1],"f","x",x^2/(x^2-1),1,-1,\tv)
\subsubsection*{Cas du produit de deux facteurs affines}
-Pour étudier le signe de $(-2x+3)(-x+5)$, on entre~:
+Pour étudier le signe de $(-2x+3)(-x+5)$ sur $\bbr$, on entre~:
\begin{lstlisting}
\begin{TSa}
@@ -284,44 +370,60 @@ On obtient~:
TSa(-2,3,-1,5,\tv);
\end{TSa}
-\subsubsection*{Cas du produit d'un nombre quelconque de facteurs quelconques}
+\subsubsection*{Cas du produit d'un nombre quelconque de facteurs quelconques sur un intervalle quelconque}
Certains cas pathologiques ne vont pas fonctionner, mais sinon, pour étudier le signe de
-\[(-2x+3)(x^2-1)(x^2+1)(x-1)(x^2-2)\] On entre cette fois les expressions sous cette forme~:
+\[(-2x+3)(x^2-1)(x^2+1)(x-1)(x^2-2)\] on entre cette fois les expressions sous cette forme en
+précisant l'intervalle d'étude~:
\begin{lstlisting}
\begin{TS}
- TS([-2*x+3,x^2-1,x^2+1,x-1,x^2-2],\tv);
+ TS([-2*x+3,x^2-1,x^2+1,x-1,x^2-2],[-infinity,+infinity],\tv);
\end{TS}
\end{lstlisting}
- On obtient~:
+On obtient~:
+
+
+\begin{TS}
+ TS([-2*x+3,x^2-1,x^2+1,x-1,x^2-2],[-infinity,+infinity],\tv);
+\end{TS}
+
+
+
+Ou bien, sur un intervalle borné~:
+
+\begin{lstlisting}
+\begin{TS}
+TS([x-10,x+10],[-15,10],\tv)
+\end{TS}
+\end{lstlisting}
\begin{TS}
- TS([-2*x+3,x^2-1,x^2+1,x-1,x^2-2],\tv);
+TS([x-10,x+10],[-15,10],\tv)
\end{TS}
+
\subsubsection*{Signe d'un quotient}
-On entre~:
+On entre dans deux listes différentes les facteurs du numérateur et du dénominateur~:
\begin{lstlisting}
\begin{TSq}
-TSq("nom du quotient",[liste des facteurs du numérateur],[liste des facteurs du
-dénominateur],numéro du tableau dans le document)
+TSq("nom du quotient",[liste des facteurs du numérateur],[liste des facteurs du dénominateur],[inf,sup])
\end{TSq}
\end{lstlisting}
-Par exemple, pour étudier le signe de $\dfrac{(-2x+3)(-4x+5)}{(x^2-16)(x-2)}$~:
+Par exemple, pour étudier le signe de $\dfrac{(-2x+3)(-4x+5)}{(x^2-16)(x-2)}$ sur $\bbr$~:
\begin{lstlisting}
\begin{TSq}
-TSq("Q",[-2*x+3,-4*x+5],[x^2-16,x-2],\tv)
+TSq("Q",[-2*x+3,-4*x+5],[x^2-16,x-2],[-infinity,+infinity],\tv)
\end{TSq}
\end{lstlisting}
@@ -329,20 +431,62 @@ TSq("Q",[-2*x+3,-4*x+5],[x^2-16,x-2],\tv)
\begin{TSq}
-TSq("Q",[-2*x+3,-4*x+5],[x^2-16,x-2],\tv)
+TSq("Q",[-2*x+3,-4*x+5],[x^2-16,x-2],[-infinity,+infinity],\tv)
\end{TSq}
+Sur un intervalle borné~:
+
+\begin{lstlisting}
+\begin{TSq}
+TSq("Q",[x-10],[x+10],[-infinity,10],\tv)
+\end{TSq}
+\end{lstlisting}
+
+
+\begin{TSq}
+TSq("Q",[x-10],[x+10],[-infinity,10],\tv)
+\end{TSq}
+
+
+
+
+\subsubsection*{Signe d'une seule expression}
+
+
+On utilise l'environnement \texttt{TSc} comme \emph{Tableau de Signe court} en précisant
+l'expression étudiée et l'intervalle considéré~:
+
+\begin{lstlisting}
+\begin{TSc}
+TSc((x-10)*(x+5),[-10,10],\tv)
+\end{TSc}
+\end{lstlisting}
+
+
+
+\begin{TSc}
+TSc((x-10)*(x+5),[-10,10],\tv)
+\end{TSc}
+
+
+
+
+
+
+
\section{Nettoyage}
L'extension \texttt{tablor} contient également une commande \verb+\nettoyer+, qui, comme son nom
l'indique, fait le ménage~:~on efface tous les fichiers auxiliaires créés et on garde uniquement les
-fichiers eps créés par \texttt{MetaPOST} ayant une extension sous forme de numéro.
+fichiers eps créés par \Prog{MetaPOST} ayant une extension sous forme de numéro.
Il suffit de taper \verb+\nettoyer+ juste avant le \verb+\end{document}+
-\smallskip
-
-\fbox{ Pour les utilisateurs de Microsoft Windows, il faudra remplacer \texttt{rm} par \texttt{DEL}}
+\begin{figure}
+ \begin{DANGER}
+ Pour les utilisateurs de Microsoft Windows, il faudra remplacer \texttt{rm} par \texttt{DEL}
+ \end{DANGER}
+ \end{figure}
\smallskip
@@ -359,24 +503,26 @@ On peut également stocker les tableaux dans un autre dossier
\end{lstlisting}
+\begin{figure}
+ \begin{DANGER}
+ Pour les utilisateurs de Microsoft Windows, il faudra remplacer \texttt{cp} par \texttt{XCOPY}
+ \end{DANGER}
+ \end{figure}
-\fbox{ Pour les utilisateurs de Microsoft Windows, il faudra remplacer \texttt{cp} par \texttt{XCOPY}}
-
\section{Merci...}
-\begin{itemize}
+\bez
\item à \href{http://frederic.mazoit.free.fr/LaTeX\_metapost/tableauVariations/}{Frédéric \textsc{Mazoit}} pour son fichier \texttt{tableauVariation.mp};
\item à \href{http://www.yvesdelhaye.be/?Generateur-d-interrogations-le}{Yves \textsc{Delhaye}} pour ses idées sur le \texttt{shell-escape}
\item à \href{http://www-fourier.ujf-grenoble.fr/\%7Eparisse/giac\_fr.html}{Bernard
- \textsc{Parisse}} pour \texttt{XCAS}.
-
-\end{itemize}
+ \textsc{Parisse}} pour \Prog{XCAS}.
+\ez
\section{Galerie}
@@ -494,12 +640,12 @@ TV([-1,+infinity],[-1],"f","x",ln(1+x)-(x-x^2/2+x^3/3),1,\tv)
\begin{lstlisting}
\begin{TS}
-TS([-2*x+3,x-1,x+1,x^2+3*x+1],\tv);
+TS([-2*x+3,x-1,x+1,x^2+3*x+1],[-10,+infinity],\tv);
\end{TS}
\end{lstlisting}
\begin{TS}
-TS([-2*x+3,x-1,x+1,x^2+3*x+1],\tv);
+TS([-2*x+3,x-1,x+1,x^2+3*x+1],[-10,+infinity],\tv);
\end{TS}
\begin{lstlisting}
@@ -566,10 +712,24 @@ TVI([0,+infinity],[0],"f","x",ln(x)-(ln(x))^2,1,-1,\tv)
+\begin{lstlisting}
+\begin{TSc}
+TSc((x-10)*(x+10),[-10,10],\tv)
+\end{TSc}
+\end{lstlisting}
+
+
+
+\begin{TSc}
+TSc((x-10)*(x+10),[-10,10],\tv)
+\end{TSc}
+
+
\nettoyer
+
%\bouger{/home/moi/Desktop/}
\end{document}
diff --git a/Master/texmf-dist/tex/latex/tablor/tablor.sty b/Master/texmf-dist/tex/latex/tablor/tablor.sty
index 914fa524efa..19fe60c171b 100644
--- a/Master/texmf-dist/tex/latex/tablor/tablor.sty
+++ b/Master/texmf-dist/tex/latex/tablor/tablor.sty
@@ -1,7 +1,7 @@
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
\ProvidesPackage{tablor}
- [21/01/2008 v1.3
+ [23/01/2008 v1.4
la machine à créer des tableaux de signes et variations]
@@ -14,12 +14,12 @@
% %%%%%% Pour des tableaux de plus de 2 facteurs
%
% \begin{TS}
-% TS([-2*x+3,x^2-1,x^2+1,x-1,x^2-2],\tv);
+% TS([-2*x+3,x^2-1,x^2+1,x-1,x^2-2],[a,b],\tv);
% \end{TS}
%
% pour les tableaux de signes avec quotient
%\begin{TSq}
-%TSq("Q",[-2*x+3,-4*x+5],[x^2-16,x-2],\tv)
+%TSq("Q",[-2*x+3,-4*x+5],[x^2-16,x-2],[a,b],\tv)
%%\end{TSq}
% un tableau de variation :
%
@@ -36,8 +36,8 @@
\newcommand{\nettoyer}{
-\immediate\write18{rm XCasmp.mp* XCasmp.log XCasmp?.mp* XCasmp?.log XCasmpTV.mp* XCasmpTV.log *.out XCasmpTVI.mp* XCasmpTVI.log
- *.in *.meta *mpx* *~}}
+\immediate\write18{rm XCasmp.mp* XCasmp.log XCasmp?.mp* XCasmp?.log XCasmpTV.mp* XCasmpTV.log *.user XCasmpTVI.mp* XCasmpTVI.log
+ *.giac *.cxx *mpx* *~}}
\newcommand{\bouger}[1]{
\immediate\write18{cp XCas* #1}}
@@ -61,7 +61,7 @@
\makeatother
-\begin{VerbatimOut}{XcasTV.meta}
+\begin{VerbatimOut}{XcasTV.cxx}
TV(L,F,nom,nomv,f,ftt,nmr):={
nl:=size(L);
f:=unapply(f,x);
@@ -140,7 +140,17 @@ intro:="input tableauVariation;
"
-MetaL:= if(ftt==0){if(nz>2){intro+"beginTableau("+nmr+")"+
+MetaL:=if(ftt==2){if(nz>2){intro+"beginTableau("+nmr+")"+
+ l0+lsi+lsp+lsf+"
+endTableau;
+end";}else{
+intro+"beginTableau("+nmr+")"+
+ l0+
+lsi+lsf+"
+endTableau;
+end";
+}
+}else{ if(ftt==0){if(nz>2){intro+"beginTableau("+nmr+")"+
l0+
li+
lp+
@@ -170,7 +180,7 @@ lf
+"
endTableau;
end";}
-}
+}}
return(MetaL);
}:;
@@ -179,7 +189,7 @@ return(MetaL);
\end{VerbatimOut}
-\begin{VerbatimOut}{XcasTVI.meta}
+\begin{VerbatimOut}{XcasTVI.cxx}
TVI(L,F,nom,nomv,f,ftt,ao,nmr):={
@@ -327,7 +337,18 @@ verbatimtex
";
-MetaL:= if(ftt==0){if(nz>2){intro+"beginTableau("+nmr+")"+
+MetaL:= if(ftt==2){if(nz>2){intro+"beginTableau("+nmr+")"+
+ l0+lsi+lsp+lsf+"
+endTableau;
+end";}else{
+intro+"beginTableau("+nmr+")"+
+ l0+
+lsi+lsf+"
+endTableau;
+end";
+}
+}else{
+if(ftt==0){if(nz>2){intro+"beginTableau("+nmr+")"+
l0+
li+
lp+
@@ -357,7 +378,7 @@ lf
+"
endTableau;
end";}
-};
+}};
return(MetaL);
}:;
@@ -375,42 +396,98 @@ return(MetaL);
-\begin{VerbatimOut}{XcasTabSignL.meta}
-TS(L,nmr):={
+\begin{VerbatimOut}{XcasTabSignL.cxx}
+
+
+TS(L,D,nmr):={
L:=apply(f->unapply(f,x),L)
n:=size(L);
Z:=NULL;
+mini:=D[0]; maxi:=D[1];
pour k de 0 jusque n-1 faire
S:=resoudre(L[k](x),x);
si size(S)>0 alors pour j de 0 jusque size(S)-1 faire
- Z:=Z,simplifier(S[j]);
+ if(S[j]>mini and S[j]<maxi){Z:=Z,simplifier(S[j]);}
fpour;
fsi;
fpour;
Z:=sort(Z);
nz:=size(Z);
-pour u de 1 jusque nz-2 faire
+if(nz>2){pour u de 1 jusque nz-2 faire
si Z[u]==Z[u+1] alors Z:=Z[0..u-1],Z[u+1..nz-1];nz:=nz-1;
fsi;
-fpour;
+fpour;};
nz:=size(Z);
-l0:=" ";li:=" ";lr:=" ";
+
+if(nz==0){li:="";l0:="val(btex $"+latex(D[0])+"$ etex);val(btex $"+latex(D[1])+"$ etex);";
+ for(p:=0;p<=n-1;p++){li:=li+"
+newLigneSignes(btex $\\hbox{\\bf Signe de }\\atop{\\displaystyle \\Mathbold{"+latex(L[p](x))+"}}$ etex);"+
+if(mini!=-infinity and L[p](mini)==0){"
+ valBarre(btex 0 etex);"}else{"
+ "}+
+if(L[p]((mini+maxi)*0.5>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)>0){"plus;"}else{"moins;"};
+
+MetaL:=" input tableauVariation;
+ verbatimtex
+%&latex
+ \\documentclass{article}
+ \\usepackage[upright]{fourier}
+ \\usepackage{amsmath}
+ \\newcommand{\\Mathbold}[1]{\\mbox{\\boldmath$#1$\\unboldmath}}
+ \\begin{document}
+ etex
+ beginTableau("+nmr+")
+newLigneVariables(btex $\\Mathbold{x}$ etex);
+ "+l0+li+
+ "
+ newLigneSignes(btex $\\hbox{\\bf Signe du }\\atop{{\\bf produit}}$ 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;
+end"
+;
+}else{
+
+
+
+
+
+l0:="val(btex $"+latex(D[0])+"$ etex);";li:=" ";lr:=" ";
pour m de 0 jusque nz-1 faire l0:=l0+"val(btex $"+latex(Z[m])+"$ etex);
";fpour;
+l0:=l0+"val(btex $"+latex(D[1])+"$ etex);";
-
-for(p:=0;p<=n-1;p++){lp:=" ";
- li:=li+"newLigneSignes(btex $\\hbox{\\bf Signe de }\\atop{\\displaystyle \\Mathbold{"+latex(L[p](x))+"}}$ etex);"+
- if(L[p](Z[0]-1.0)>0){"plus;"}else{"moins;"}+
+for(p:=0;p<=n-1;p++){lp:="";
+ li:=li+"
+newLigneSignes(btex $\\hbox{\\bf Signe de }\\atop{\\displaystyle \\Mathbold{"+latex(L[p](x))+"}}$ etex);"+
+ if(mini!=-infinity and L[p](mini)==0){"
+ valBarre(btex 0 etex);"}else{"
+ "}+
+ if(L[p](Z[0]-0.01)>0){"plus;"}else{"moins;"};
+
for(r:=0; r<=nz-2;r++){
- lp:=lp+if(simplifier(L[p](Z[r]))==0){"valBarre(btex 0 etex);"}else{"barre;"}+
- if(L[p]((Z[r]+Z[r+1])*.5)>0){"plus;"}else{"moins;"}}+
- if(simplifier(L[p](Z[nz-1]))==0){"valBarre(btex 0 etex);"}else{"barre;"}+
+ lp:=lp+if(simplifier(L[p](Z[r]))==0){"
+ valBarre(btex 0 etex);"}else{"barre;
+ "}+
+ if(L[p]((Z[r]+Z[r+1])*.5)>0){"plus;"}else{"moins;"}};
+
+ li:=li+lp+ if(simplifier(L[p](Z[nz-1]))==0){"valBarre(btex 0 etex);"}else{"barre;"}+
if(L[p](Z[nz-1]+1.0)>0){"plus;"}else{"moins;
- "}
+ "}+if(maxi!=+infinity and L[p](maxi)==0){"
+ valBarre(btex 0 etex);"}else{"
+ "}
};
@@ -429,18 +506,26 @@ MetaL:=" input tableauVariation;
etex
beginTableau("+nmr+")
newLigneVariables(btex $\\Mathbold{x}$ etex);
- val(btex $-\\infty$ etex);"+l0+"val(btex $+\\infty$ etex);"+
+ "+l0+
li
+
- " newLigneSignes(btex $\\hbox{\\bf Signe du }\\atop{{\\bf produit}}$ etex);"+
- if(product(L[s](Z[0]-1.0),s,0,n-1)>0){"plus;"}else{"moins;"}+"valBarre(btex 0 etex);"+
+ "
+ newLigneSignes(btex $\\hbox{\\bf Signe du }\\atop{{\\bf produit}}$ 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)>0){"plus;"}else{"moins;"}+"valBarre(btex 0 etex);"+
lr+
- if(product(L[s](Z[nz-1]+1.0),s,0,n-1)>0){"plus;"}else{"moins;"}+"
+ if(product(L[s](Z[nz-1]+0.01),s,0,n-1)>0){"plus;"}else{"moins;"}+
+ if(maxi!=+infinity and product(L[s](maxi),s,0,n-1)==0){"
+ valBarre(btex 0 etex);"}else{"
+ "}+"
endTableau;
end"
-;
+;}
return(MetaL);
}:;
+
\end{VerbatimOut}
@@ -451,22 +536,22 @@ return(MetaL);
-\begin{VerbatimOut}{XcasTabSignQ.meta}
-TSq(nomf,L,Fo,nmr):={
+\begin{VerbatimOut}{XcasTabSignQ.cxx}
+TSq(nomf,L,Fo,D,nmr):={
L:=apply(f->unapply(f,x),L);
Fo:=apply(f->unapply(f,x),Fo);
L:=concat(L,Fo);
n:=size(L);
Z:=NULL;
m:=size(Fo);
-F:=NULL;
-
+F:=NULL;FF:=NULL;
+mini:=D[0]; maxi:=D[1];
pour k de 0 jusque n-1 faire
S:=resoudre(L[k](x),x);
si size(S)>0 alors pour j de 0 jusque size(S)-1 faire
- Z:=Z,simplifier(S[j]);
+ if(S[j]>mini and S[j]<maxi){Z:=Z,simplifier(S[j]);}
fpour;
fsi;
fpour;
@@ -475,7 +560,8 @@ fpour;
pour k de 0 jusque m-1 faire
SF:=resoudre(Fo[k](x),x);
si size(SF)>0 alors pour j de 0 jusque size(SF)-1 faire
- F:=F,simplifier(SF[j]);
+ FF:=FF,simplifier(SF[j]);
+ if(SF[j]>mini and SF[j]<maxi){F:=F,simplifier(SF[j]);}
fpour;
fsi;
fpour;
@@ -484,37 +570,95 @@ fpour;
Z:=sort(Z); // on classe les zéros dans l'ordre croissant
nz:=size(Z);
-pour u de 1 jusque nz-2 faire
+if(nz>2){pour u de 1 jusque nz-2 faire
si Z[u]==Z[u+1] alors Z:=Z[0..u-1],Z[u+1..nz-1];nz:=nz-1; // pour les zéros en double
fsi;
-fpour;
+fpour;}
+
+
+Z:=sort(Z);
nz:=size(Z);
-l0:=" ";li:=" ";lr:=" ";
+if(nz>2){pour u de 1 jusque nz-2 faire
+ si Z[u]==Z[u+1] alors Z:=Z[0..u-1],Z[u+1..nz-1];nz:=nz-1;
+ fsi;
+fpour;};
+nz:=size(Z);
+
+if(nz==0){li:="";l0:="val(btex $"+latex(D[0])+"$ etex);val(btex $"+latex(D[1])+"$ etex);";
+ for(p:=0;p<=n-1;p++){li:=li+"
+newLigneSignes(btex $\\hbox{\\bf Signe de }\\atop{\\displaystyle \\Mathbold{"+latex(L[p](x))+"}}$ etex);"+
+if(mini!=-infinity and L[p](mini)==0){"
+ valBarre(btex 0 etex);"}else{"
+ "}+
+if(L[p]((mini+maxi)*0.5>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)>0){"plus;"}else{"moins;"};
+
+MetaL:=" input tableauVariation;
+ verbatimtex
+%&latex
+ \\documentclass{article}
+ \\usepackage[upright]{fourier}
+ \\usepackage{amsmath}
+ \\newcommand{\\Mathbold}[1]{\\mbox{\\boldmath$#1$\\unboldmath}}
+ \\begin{document}
+ etex
+
+beginTableau("+nmr+")
+newLigneVariables(btex $\\Mathbold{x}$ etex);
+ "+l0+li+
+ "
+ newLigneSignes(btex $\\hbox{\\bf Signe }\\atop{{\\bf de "+nomf+"(x)}}$ 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;
+end"
+;
+}else{
+
+
+l0:="val(btex $"+latex(D[0])+"$ etex);";li:=" ";lr:=" ";
pour m de 0 jusque nz-1 faire l0:=l0+"val(btex $"+latex(Z[m])+"$ etex);
";fpour;
+l0:=l0+"val(btex $"+latex(D[1])+"$ etex);";
-
-for(p:=0;p<=n-1;p++){lp:=" ";
+for(p:=0;p<=n-1;p++){lp:="";
li:=li+"
newLigneSignes(btex $\\hbox{\\bf Signe de }\\atop{\\displaystyle \\Mathbold{"+latex(L[p](x))+"}}$ etex);"+
- if(L[p](Z[0]-1.0)>0){"plus;"}else{"moins;"}+
+ if(mini!=-infinity and L[p](mini)==0){"
+ valBarre(btex 0 etex);"}else{"
+ "}+
+ if(L[p](Z[0]-0.01)>0){"plus;"}else{"moins;"};
+
for(r:=0; r<=nz-2;r++){
lp:=lp+if(simplifier(L[p](Z[r]))==0){"
- valBarre(btex 0 etex);"}else{"barre;"}+
- if(L[p]((Z[r]+Z[r+1])*.5)>0){"plus;"}else{"moins;"}}+
- if(simplifier(L[p](Z[nz-1]))==0){"valBarre(btex 0 etex);"}else{"barre;"}+
+ valBarre(btex 0 etex);"}else{"barre;
+ "}+
+ if(L[p]((Z[r]+Z[r+1])*.5)>0){"plus;"}else{"moins;"}};
+
+ li:=li+lp+ if(simplifier(L[p](Z[nz-1]))==0){"valBarre(btex 0 etex);"}else{"barre;"}+
if(L[p](Z[nz-1]+1.0)>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)>0){"plus;"}else{"moins;"}+if(member(Z[t+1],F)==0){"valBarre(btex 0 etex);"}else{"nonDefBarre;"}
+ lr:=lr+if(product(L[s]((Z[t]+Z[t+1])*.5),s,0,n-1)>0){"plus;"}else{"moins;"}+
+ if(member(Z[t+1],FF)==0){"valBarre(btex 0 etex);"}else{ "nonDefBarre;"}
fpour
MetaL:=" input tableauVariation;
- verbatimtex
+verbatimtex
%&latex
\\documentclass{article}
\\usepackage[upright]{fourier}
@@ -524,23 +668,29 @@ MetaL:=" input tableauVariation;
etex
beginTableau("+nmr+")
newLigneVariables(btex $\\Mathbold{x}$ etex);
- val(btex $-\\infty$ etex);"+l0+"val(btex $+\\infty$ etex);"+
+ "+l0+
li
+
- " newLigneSignes(btex $\\hbox{\\bf Signe de }\\atop{\\bf "+nomf+"(x) }$ etex);"+
- if(product(L[s](Z[0]-1.0),s,0,n-1)>0){"plus;"}else{"moins;"}+if(member(Z[0],F)==0){"valBarre(btex 0 etex);"}else{"nonDefBarre;"}+
- lr+
- if(product(L[s](Z[nz-1]+1.0),s,0,n-1)>0){"plus;"}else{"moins;"}+"
+ "
+ newLigneSignes(btex $\\hbox{\\bf Signe }\\atop{{\\bf de"+nomf+"(x)}}$ 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)>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)>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;
end"
-;
+;}
return(MetaL);
}:;
-
\end{VerbatimOut}
-\begin{VerbatimOut}{XcasTabSign.meta}
+\begin{VerbatimOut}{XcasTabSign.cxx}
TSa(a,b,c,d,nmr):={
zA:=resoudre(a*x+b=0,x)[0];
zB:=resoudre(c*x+d=0,x)[0];
@@ -593,12 +743,122 @@ return(Meta);
-\begin{VerbatimOut}{XCas.in}
+
+
+
+
+
+
+
+
+
+
+
+\begin{VerbatimOut}{XcasTSc.cxx}
+TSc(g,D,nmr):={
+f:=unapply(g,x);
+Z:=NULL;
+mini:=D[0]; maxi:=D[1];lm:=" ";
+S:=resoudre(f(x),x);
+if(size(S)==0){
+li:=if(f(0)>0){"plus;"}else{"moins;"};
+lm:=" ";lf:=" ";
+}
+else{pour j de 0 jusque size(S)-1 faire
+ if(S[j]>mini and S[j]<maxi){Z:=Z,simplifier(S[j])};
+ fpour;
+
+
+Z:=sort(Z);
+nz:=size(Z);
+if(nz>2){pour u de 1 jusque nz-2 faire
+ si Z[u]==Z[u+1] alors Z:=Z[0..u-1],Z[u+1..nz-1];nz:=nz-1;
+ fsi;
+fpour;}
+nz:=size(Z);
+l0:=" ";li:=" ";lr:=" ";
+if(nz==0){l0:="val(btex $"+latex(D[0])+"$ etex);val(btex $"+latex(D[1])+"$ etex);";
+li:=if(mini!=-infinity and f(mini)==0){"
+ valBarre(btex 0 etex);"}else{"
+ "}+
+if(f((mini+maxi)*0.5>0)){"plus;"}else{"moins;"};
+lf:=if(maxi!=+infinity and f(maxi)==0){"
+ valBarre(btex 0 etex);"}else{"
+ "};
+
+}else{
+l0:="val(btex $"+latex(D[0])+"$ etex);";li:=" ";
+pour m de 0 jusque nz-1 faire l0:=l0+"val(btex $"+latex(Z[m])+"$ etex);
+";
+fpour;
+l0:=l0+"val(btex $"+latex(D[1])+"$ etex);";
+
+li:= if(mini!=-infinity and f(mini)==0){"
+ valBarre(btex 0 etex);"}else{"
+ "}+
+if(f(Z[0]-0.01)>0){"plus;"}else{"moins;"}+if(simplifier(f(Z[0]))==0){"valBarre(btex 0 etex);"}else{"barre;"};
+
+lm:=if(nz>=2){for(r:=0; r<=nz-2;r++){if(f((Z[r]+Z[r+1])*.5)>0){"plus;"}else{"moins;"}+
+ if(simplifier(f(Z[r+1]))==0){"valBarre(btex 0 etex);"}else{"barre;"}
+ }}else{" "};
+
+lf:=if(f(Z[nz-1]+1.0)>0){"plus;"}else{"moins;"}+if(maxi!=+infinity and f(maxi)==0){"valBarre(btex 0 etex);"}else{"
+ "};
+}};
+
+
+MetaL:=" input tableauVariation;
+ verbatimtex
+%&latex
+ \\documentclass{article}
+ \\usepackage[upright]{fourier}
+ \\usepackage{amsmath}
+ \\newcommand{\\Mathbold}[1]{\\mbox{\\boldmath$#1$\\unboldmath}}
+ \\begin{document}
+ etex
+beginTableau("+nmr+")
+newLigneVariables(btex $\\Mathbold{x}$ etex);
+ "+l0+"
+newLigneSignes(btex $\\hbox{\\bf Signe de }\\atop{\\displaystyle \\Mathbold{"+latex(f(x))+"}}$ etex);"+
+ li+lm+lf
+ +"
+endTableau;
+end"
+;
+return(MetaL);
+ }:;
+\end{VerbatimOut}
+
+
+
+
+
+
+
+
+
+%%% les "giac"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\begin{VerbatimOut}{XCas.giac}
maple_mode(0);
-read("XcasTabSign.meta");
+read("XcasTabSign.cxx");
Sortie:=fopen("XCasmp.mp");
-vect.xcas.out := read("XCas.out");
-vxo := vect.xcas.out;
+vect.xcas.user := read("XCas.user");
+vxo := vect.xcas.user;
dim.vxo := dim(vxo);
nbr.line.vxo := dim.vxo;
Resultat:=cat(" ");
@@ -609,9 +869,9 @@ fclose(Sortie);
\end{VerbatimOut}
\newenvironment{TSa}
-{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCas.out}}
+{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCas.user}}
{\end{VerbatimOut}
- \executGiacmp{XCas.in}
+ \executGiacmp{XCas.giac}
\immediate\write18{mpost XCasmp}
@@ -622,12 +882,12 @@ fclose(Sortie);
}
-\begin{VerbatimOut}{XCasQ.in}
+\begin{VerbatimOut}{XCasQ.giac}
maple_mode(0);
-read("XcasTabSignQ.meta");
+read("XcasTabSignQ.cxx");
Sortie:=fopen("XCasmpQ.mp");
-vect.xcas.out := read("XCasQ.out");
-vxo := vect.xcas.out;
+vect.xcas.user := read("XCasQ.user");
+vxo := vect.xcas.user;
dim.vxo := dim(vxo);
nbr.line.vxo := dim.vxo;
Resultat:=cat(" ");
@@ -638,9 +898,9 @@ fclose(Sortie);
\end{VerbatimOut}
\newenvironment{TSq}
-{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasQ.out}}
+{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasQ.user}}
{\end{VerbatimOut}
- \executGiacmp{XCasQ.in}
+ \executGiacmp{XCasQ.giac}
\immediate\write18{mpost XCasmpQ}
@@ -652,12 +912,12 @@ fclose(Sortie);
-\begin{VerbatimOut}{XCasL.in}
+\begin{VerbatimOut}{XCasL.giac}
maple_mode(0);
-read("XcasTabSignL.meta");
+read("XcasTabSignL.cxx");
Sortie:=fopen("XCasmpL.mp");
-vect.xcas.out := read("XCasL.out");
-vxo := vect.xcas.out;
+vect.xcas.user := read("XCasL.user");
+vxo := vect.xcas.user;
dim.vxo := dim(vxo);
nbr.line.vxo := dim.vxo;
Resultat:=cat(" ");
@@ -668,9 +928,9 @@ fclose(Sortie);
\end{VerbatimOut}
\newenvironment{TS}
-{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasL.out}}
+{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasL.user}}
{\end{VerbatimOut}
- \executGiacmp{XCasL.in}
+ \executGiacmp{XCasL.giac}
\immediate\write18{mpost XCasmpL}
@@ -680,17 +940,45 @@ fclose(Sortie);
\stepcounter{TVn}
}
+\begin{VerbatimOut}{XCasTSc.giac}
+maple_mode(0);
+read("XcasTSc.cxx");
+Sortie:=fopen("XCasmpTSc.mp");
+vect.xcas.user := read("XCasTSc.user");
+vxo := vect.xcas.user;
+dim.vxo := dim(vxo);
+nbr.line.vxo := dim.vxo;
+Resultat:=cat(" ");
+rslt := vxo[0]; RslT:=cat(rslt);
+Resultat:=cat(Resultat,RslT);
+fprint(Sortie,Unquoted,Resultat);
+fclose(Sortie);
+\end{VerbatimOut}
+
+\newenvironment{TSc}
+{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasTSc.user}}
+{\end{VerbatimOut}
+ \executGiacmp{XCasTSc.giac}
+
+ \immediate\write18{mpost XCasmpTSc}
+
+\begin{center}
+ \includegraphics{XCasmpTSc.\theTVn}
+\end{center}
+\stepcounter{TVn}
+}
+
-\begin{VerbatimOut}{XCasTV.in}
+\begin{VerbatimOut}{XCasTV.giac}
maple_mode(0);
-read("XcasTV.meta");
+read("XcasTV.cxx");
Sortie:=fopen("XCasmpTV.mp");
-vect.xcas.out := read("XCasTV.out");
-vxo := vect.xcas.out;
+vect.xcas.user := read("XCasTV.user");
+vxo := vect.xcas.user;
dim.vxo := dim(vxo);
nbr.line.vxo := dim.vxo;
Resultat:=cat(" ");
@@ -701,9 +989,9 @@ fclose(Sortie);
\end{VerbatimOut}
\newenvironment{TV}%
-{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasTV.out}}%
+{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasTV.user}}%
{\end{VerbatimOut}%
- \executGiacmp{XCasTV.in}
+ \executGiacmp{XCasTV.giac}
\immediate\write18{mpost XCasmpTV}
\begin{center}
\includegraphics{XCasmpTV.\theTVn}
@@ -714,12 +1002,12 @@ fclose(Sortie);
-\begin{VerbatimOut}{XCasTVI.in}
+\begin{VerbatimOut}{XCasTVI.giac}
maple_mode(0);
-read("XcasTVI.meta");
+read("XcasTVI.cxx");
Sortie:=fopen("XCasmpTVI.mp");
-vect.xcas.out := read("XCasTVI.out");
-vxo := vect.xcas.out;
+vect.xcas.user := read("XCasTVI.user");
+vxo := vect.xcas.user;
dim.vxo := dim(vxo);
nbr.line.vxo := dim.vxo;
Resultat:=cat(" ");
@@ -730,9 +1018,9 @@ fclose(Sortie);
\end{VerbatimOut}
\newenvironment{TVI}%
-{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasTVI.out}}%
+{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasTVI.user}}%
{\end{VerbatimOut}%
- \executGiacmp{XCasTVI.in}
+ \executGiacmp{XCasTVI.giac}
\immediate\write18{mpost XCasmpTVI}
\begin{center}
\includegraphics{XCasmpTVI.\theTVn}