summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/tablor
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2010-11-18 00:34:44 +0000
committerKarl Berry <karl@freefriends.org>2010-11-18 00:34:44 +0000
commit7d032e771f747f72d3d21ae40681f362a0416243 (patch)
treea605409d3fefe5109596c9009c663ae82d636de5 /Master/texmf-dist/tex/latex/tablor
parent32b992616e0edeae8f7cb513fb6416d1ebbc1ea7 (diff)
tablor (17nov10)
git-svn-id: svn://tug.org/texlive/trunk@20473 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/tablor')
-rw-r--r--Master/texmf-dist/tex/latex/tablor/tablor-xetex.sty201
-rw-r--r--Master/texmf-dist/tex/latex/tablor/tablor.sty213
2 files changed, 260 insertions, 154 deletions
diff --git a/Master/texmf-dist/tex/latex/tablor/tablor-xetex.sty b/Master/texmf-dist/tex/latex/tablor/tablor-xetex.sty
index a41e846c597..e8053508653 100644
--- a/Master/texmf-dist/tex/latex/tablor/tablor-xetex.sty
+++ b/Master/texmf-dist/tex/latex/tablor/tablor-xetex.sty
@@ -1,5 +1,5 @@
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
-\ProvidesPackage{tablor-xetex}[08/05/2010 v4.07 la machine a creer des
+\ProvidesPackage{tablor-xetex}[16/11/2010 v4.07-d la machine a creer des
tableaux de signes et variations compatible xetex]
% \copyleft Connan le Barbare (aka Guillaume Connan) \copyright
@@ -275,18 +275,19 @@ epstopdf $1.eps;
-%%%
-%
-%%% LES SCRIPTS GIAC/XCAS
-%
-%%%
+%%%//
+%//
+%%%// LES SCRIPTS GIAC/XCAS
+%//
+%%%//
+%%//
+%%// Code giac/Xcas pour les Tableaux de Variations
+%//
+
-%%
-%% Code giac/Xcas pour les Tableaux de Variations
-%%
\begin{VerbatimOut}{XcasTV.cxx}
@@ -356,8 +357,8 @@ pour m de 0 jusque nz-1 faire l0:=l0+"val(btex $"+latex(Z[m])+"$ etex);
lsi:=lsic+nom+"'("+nomv+")}$ etex);"+
if(Z[0]==-infinity){if(sign(evalf(fp(if(Z[1]==+infinity){0}else{Z[1]-10^(-5)})))==1.0){"plus;"}else{"moins;"}}else{if(member(Z[0],F)==0){
if(fp(Z[0])==0){"valBarre(btex 0 etex);"}else{" "}+
- if(evalf(sign(fp(Z[0]+10^(-5))))==1.0){"plus;"}else{"moins;"}}else{"nonDefBarre;"+
- if(evalf(sign(fp((Z[0]+10^(-5)))))==1.0){"plus;"}else{"moins;"} }}
+ if(evalf(sign(fp(Z[0]+10^(-5))))==1.0 or ((evalf(sign(fp(Z[0]+10^(-5))))==0.0)and (evalf(sign(fp(Z[0]+10^(-1))))==1.0))){"plus;"}else{"moins;"}}else{"nonDefBarre;"+
+ if(evalf(sign(fp(Z[0]+10^(-5))))==1.0 or ((evalf(sign(fp(Z[0]+10^(-5))))==0.0)and (evalf(sign(fp(Z[0]+10^(-1))))==1.0))){"plus;"}else{"moins;"} }}
if(nz>2){ for(r:=1; r<=nz-2;r++){ ksp:=evalf(fp(Z[r]+0.1))>0;
lsp:=lsp+if(member(Z[r],F)==0){"valBarre(btex 0 etex);"}else{"nonDefBarre;"}+
@@ -465,14 +466,14 @@ fclose(sortie);
-%%%%
+%%%%//
-%
-%
-% TVPC : pour les fonctions prolongeables par continuité.
-%%
-%%
+%//
+%//
+%// TVPC : pour les fonctions prolongeables par continuité.
+%%//
+%%//
@@ -525,10 +526,11 @@ nz:=size(Z);
- si size(S)>0 alors pour j de 0 jusque size(S)-1 faire
- kk:=(evalf(S[j])>=evalf(L[0])) and (evalf(S[j])<=evalf(L[nl-1]));
- if(kk==1){Z:=append(Z,simplify(S[j]))};
- fpour
+ si size(S)>0 alors
+ pour j de 0 jusque size(S)-1 faire
+ kk:=(evalf(S[j])>=evalf(L[0])) and (evalf(S[j])<=evalf(L[nl-1]));
+ if(kk==1){Z:=append(Z,simplify(S[j]))};
+ fpour
fsi;
@@ -537,43 +539,86 @@ Z:=sort([op(set[op(Z)])]);
nz:=size(Z);
l0:=" newLigneVariables(btex $"+nomv+"$ etex);";lp:=" "; lf:=" ";lsp:=" ";
pour m de 0 jusque nz-1 faire l0:=l0+"val(btex $"+latex(Z[m])+"$ etex);
-";fpour;
+";
+fpour;
- k0:= evalf(limit(f(x),x=Z[0],1))> evalf(limit(f(x),x=Z[1],-1));
- kz:=evalf(limit(f(x),x=Z[nz-1],-1))> evalf(limit(f(x),x=Z[nz-2],1));
-
-lsi:=lsic+nom+"'("+nomv+")}$ etex);"+
- if(Z[0]==-infinity){if(sign(evalf(fp(if(Z[1]==+infinity){0}else{Z[1]-10^(-5)})))==1.0){"plus;"}else{"moins;"}}else{if(member(Z[0],FP)==0){
- if(fp(Z[0])==0){"valBarre(btex 0 etex);"}else{" "}+
- if(evalf(sign(fp(Z[0]+10^(-5))))==1.0){"plus;"}else{"moins;"}}else{"nonDefBarre;"+
- if(evalf(sign(fp((Z[0]+10^(-5)))))==1.0){"plus;"}else{"moins;"} }}
+k0:= evalf(limit(f(x),x=Z[0],1))> evalf(limit(f(x),x=Z[1],-1));
+kz:=evalf(limit(f(x),x=Z[nz-1],-1))> evalf(limit(f(x),x=Z[nz-2],1));
+ Deriv0:=type(evalf(limit((f(x)-limit(f(x),x=Z[0],1))/(x-Z[0]),x=Z[0],1)))==DOM_FLOAT;
+Derivf:=type(evalf(limit((f(x)-limit(f(x),x=Z[nz-1],-1))/(x-Z[nz-1]),x=Z[nz-1],-1)))==DOM_FLOAT;
+lsi:=lsic+nom+"'("+nomv+")}$ etex);
+"+
+
+if(Z[0]==-infinity){
+ if(sign(evalf(fp(
+ if(Z[1]==+infinity){0}
+ else{Z[1]-10^(-5)})))==1.0){"plus;
+"}
+ else{"moins;"}}
+ else{
+ if(member(Z[0],FP)==0){
+ if(fp(Z[0])==0){"valBarre(btex 0 etex);
+"}
+ else{" "}+
+ if(evalf(sign(fp(Z[0]+10^(-5))))==1.0 or ((evalf(sign(fp(Z[0]+10^(-5))))==0.0)and (evalf(sign(fp(Z[0]+10^(-1))))==1.0))){"plus;
+"}
+ else{"moins;
+"}}
+ else{
+ if(Deriv0){"valBarre(btex $"+latex(limit((f(x)-limit(f(x),x=Z[0],1))/(x-Z[0]),x=Z[0],1))+"$ etex);
+"}else{"nonDefBarre;
+"}+
+ if(evalf(sign(fp(Z[0]+10^(-5))))==1.0 or ((evalf(sign(fp(Z[0]+10^(-5))))==0.0)and (evalf(sign(fp(Z[0]+10^(-1))))==1.0))){"plus;
+"}
+ else{"moins;
+"}
+ }
+ }
-if(nz>2){ for(r:=1; r<=nz-2;r++){ ksp:=evalf(fp(Z[r]+0.1))>0;
- lsp:=lsp+if(member(Z[r],FP)==0){"valBarre(btex 0 etex);"}else{"nonDefBarre;"}+
- if(ksp==1){"plus;"}else{"moins;"}
- }; }
-
-lsf:=if(member(Z[nz-1],FP)==0){""}else{"nonDefBarre;
+if(nz>2) { for(r:=1; r<=nz-2;r++){
+ Derivr:=type(evalf(limit((f(x)-limit(f(x),x=Z[r],1))/(x-Z[r]),x=Z[r],1)))==DOM_FLOAT;
+ ksp:=evalf(fp(Z[r]+0.1))>0;
+ lsp:=lsp+if(member(Z[r],FP)==0){"valBarre(btex 0 etex);
+"}else{
+ if(Derivr){"valBarre(btex $"+latex(limit((f(x)-limit(f(x),x=Z[r],1))/(x-Z[r]),x=Z[r],1))+"$ etex);
+"}else{"nonDefBarre;
+"}}+if(ksp==1){"plus;
+"}else{"moins;
"}
+ }}
+
+lsf:=if(member(Z[nz-1],FP)==0){""}else{
+ if(Derivf){"valBarre(btex $"+latex(limit((f(x)-limit(f(x),x=Z[nz-1],-1))/(x-Z[nz-1]),x=Z[nz-1],-1))+"$ etex);
+"}else{"nonDefBarre;
+"}}
lm0:=limit(f(x),x=Z[0],1)==-infinity;
- li:=lvic+nom+"}$ etex);"+
- if(member(Z[0],F)==0){"valPos(btex $"+if(lm0==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[0],1)))}+"$ etex,"}
- else{"limDroite(btex $"+if(lm0==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[0],1)))}+"$ etex,"}+
- if(k0==1){"1"}else{"0"}+
- ");";
-
- if(nz>2){ for(r:=1; r<=nz-2;r++){ krm:=evalf(limit(f(x),x=Z[r-1],1))< evalf(limit(f(x),x=Z[r],-1));
- krp:=evalf(limit(f(x),x=Z[r],1))> evalf(limit(f(x),x=Z[r+1],-1)) ;
- lmrm:=limit(f(x),x=Z[r],-1)==-infinity;lmrp:=limit(f(x),x=Z[r],1)==-infinity;
- lp:=lp+if(member(Z[r],F)){
- "valPos(btex
- $"+if(lmrm==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[r],-1)))}+"$
- etex,"+if(krm==1){"1);"}else{"0);"} }
- else{"valPos(btex $"+latex(simplify(f(Z[r])))+"$
- etex,"+if(sign(evalf(fp(Z[r]-0.01)))==sign(fp(Z[r]+0.01))){"0.5);"}else{if(krp==1){"1);"}else{"0);
-"}}}
+li:=lvic+nom+"}$ etex);
+"+
+if(member(Z[0],F)==0 or member(Z[0],FP)==1){"valPos(btex $"+
+ if(lm0==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[0],1)))}+"$ etex,"}
+ else{"limDroite(btex $"+
+ if(lm0==1){"-\\infty"}
+ else{latex(simplify(limit(f(x),x=Z[0],1)))}+"$ etex,"}+
+if(k0==1){"1"}else{"0"}+");";
+
+if(nz>2){ for(r:=1; r<=nz-2;r++){
+ krm:=evalf(limit(f(x),x=Z[r-1],1))< evalf(limit(f(x),x=Z[r],-1));
+ krp:=evalf(limit(f(x),x=Z[r],1))> evalf(limit(f(x),x=Z[r+1],-1)) ;
+ lmrm:=limit(f(x),x=Z[r],-1)==-infinity;
+ lmrp:=limit(f(x),x=Z[r],1)==-infinity;
+ lp:=lp+if(member(Z[r],F)){"valPos(btex $"+
+ if(lmrm==1){"-\\infty"}
+ else{latex(simplify(limit(f(x),x=Z[r],-1)))}+"$ etex,"+
+ if(sign(evalf(fp(Z[r]-0.01)))==sign(fp(Z[r]+0.01))){"0.5);"}
+ else{if(krm==1){"1);"}else{"0);"}
+ }
+ }
+ else{"valPos(btex $"+latex(simplify(f(Z[r])))+"$ etex,"+
+ if(sign(evalf(fp(Z[r]-0.01)))==sign(fp(Z[r]+0.01))){"0.5);"}
+ else{if(krp==1){"1);"}else{"0);"}}}
}; }
+
lnz:=limit(f(x),x=Z[nz-1],-1)==-infinity;
@@ -645,7 +690,7 @@ fprint(sortie,Unquoted,MetaLfc);
fclose(sortie);
- }:;
+ }:;
\end{VerbatimOut}
@@ -750,17 +795,11 @@ pour m de 0 jusque nz-1 faire l0:=l0+"val(btex $"+latex(Z[m])+"$ etex);
lsi:=lsic+nom+"'("+nomv+")}$ etex);"+
if(member(Z[0],IMIN)!=0){if((member(Z[0],F)==0) and (fp(Z[0])!=undef)){"debutNonDef;"}else{"debutNonDefStrict;"}}else{if(Z[0]==-infinity){if(sign(evalf(fp(if(Z[1]==+infinity){0}else{Z[1]-10^(-5)})))==1.0){"plus;"}else{"moins;"}}else{if(member(Z[0],F)==0){
if(fp(Z[0])==0){"valBarre(btex 0 etex);"}else{" "}+
- if(evalf(sign(fp(Z[0]+10^(-5))))==1.0){"plus;"}else{"moins;"}}else{"nonDefBarre;"+
+ if(evalf(sign(fp(Z[0]+10^(-5))))==1.0 or ((evalf(sign(fp(Z[0]+10^(-5))))==0.0)and (evalf(sign(fp(Z[0]+10^(-1))))==1.0))){"plus;"}else{"moins;"}}else{"nonDefBarre;"+
if(evalf(sign(fp((Z[0]+10^(-5)))))==1.0){"plus;"}else{"moins;"} }}}
-
-
-
-
-
-
// modif 3 avril 2010
if(nz>2){ for(r:=1; r<=nz-2;r++){
@@ -785,9 +824,6 @@ if(nz>2){ for(r:=1; r<=nz-2;r++){
-
-
-
lsf:=if(member(Z[nz-1],IMAX)!=0){if((member(Z[nz-1],F)==0) and (fp(Z[nz-1])!=undef)){"finNonDef;"}else{"finNonDefStrict;"}}else{if(member(Z[nz-1],F)==0){""}else{"nonDefBarre;
"}}
@@ -928,13 +964,8 @@ fclose(sortie);
\begin{VerbatimOut}{XcasTVapp.cxx}
-
-
-
-
-
-TVapp(L,F,nom,nomv,f,ftt,nmr):={
-
+TVapp(L,F,nom,nomv,f,ftt,trigo,nmr):={
+local nl,fp,z0,z,nz,S,k,j,m,kk,kok,Z,l0,lp,lf,lsp,k0,kz,lsi,r,ksp,lsf,lm0,li,krm,krp,lmrm,lmrp,lnz;
nl:=size(L);
f:=unapply(f,x);
@@ -944,10 +975,11 @@ nz:=size(z);
+S:=NULL;
+
-S:=op(fsolve(fp(x),x));
@@ -968,7 +1000,6 @@ else{ j:=[seq(2*k,k=0.5*floor(z[0])..0.5*floor(z[nz-1]))] minus F;
-
si size(S)>0 alors pour j de 0 jusque size(S)-1 faire
kk:=(re(S[j])==S[j]);kok:=(evalf(S[j])>=L[0]) and (evalf(S[j])<=L[1]);
if(kk==1){if(kok==1){z:=append(z,simplify(S[j]))}};
@@ -1007,7 +1038,7 @@ pour m de 0 jusque nz-1 faire l0:=l0+"val(btex $"+latex(Z[m])+"$ etex);
lsi:=lsic+nom+"'("+nomv+")}$ etex);"+
if(Z[0]==-infinity){if(sign(evalf(fp(if(Z[1]==+infinity){0}else{Z[1]-10^(-5)})))==1.0){"plus;"}else{"moins;"}}else{if(member(Z[0],F)==0){
if(fp(Z[0])==0){"valBarre(btex 0 etex);"}else{" "}+
- if(evalf(sign(fp(Z[0]+10^(-5))))==1.0){"plus;"}else{"moins;"}}else{"nonDefBarre;"+
+ if(evalf(sign(fp(Z[0]+10^(-5))))==1.0 or ((evalf(sign(fp(Z[0]+10^(-5))))==0.0)and (evalf(sign(fp(Z[0]+10^(-1))))==1.0))){"plus;"}else{"moins;"}}else{"nonDefBarre;"+
if(evalf(sign(fp((Z[0]+10^(-5)))))==1.0){"plus;"}else{"moins;"} }}
if(nz>2){ for(r:=1; r<=nz-2;r++){ ksp:=evalf(fp(Z[r]+0.01))>0;
@@ -1680,7 +1711,6 @@ S:=op(fsolve(fp(x),x));
-
if(L==[-infinity,+infinity]){j:=[seq(-50+2*k,k=0..50)]minus F;
for k in j do for(m:=-5;m<=5;m++){S:=S,resoudre_numerique(fp(y),y,k+m*0.1,k+(m+1)*0.1,bisection_solver)};end_for}
else{if(L[0]==-infinity){j:=[seq(2*k,k=-25..0.5*floor(L[1]))] minus F;
@@ -1700,6 +1730,11 @@ else{ j:=[seq(2*k,k=0.5*floor(z[0])..0.5*floor(z[nz-1]))] minus F;
+
+
+
+
+
si size(S)>0 alors pour j de 0 jusque size(S)-1 faire
kk:=(re(S[j])==S[j]);kok:=(evalf(S[j])>=L[0]) and (evalf(S[j])<=L[1]);
if(kk==1){if(kok==1){z:=append(z,simplify(S[j]))}};
@@ -2598,6 +2633,7 @@ fclose(sortie);
\begin{VerbatimOut}{XcasTSc.cxx}
+
TSc(g,D,F,trigo,nmr):={
f:=unapply(g,x);
mini:=D[0]; maxi:=D[1];lm:=" ";
@@ -2708,7 +2744,6 @@ fprint(sortie,Unquoted,MetaLfc);
fclose(sortie);
}:;
-
\end{VerbatimOut}
@@ -2717,8 +2752,6 @@ fclose(sortie);
-
-
%%$
@@ -2726,8 +2759,6 @@ fclose(sortie);
-
-
%%%%
%%%
%%% Pour des tableaux de variations simples sans fonctions
@@ -2841,12 +2872,14 @@ fclose(sortie);
-%%
-%% traitement des fichiers produits par giac/xcas
-%%
-%%
-% pour l'échelle des tableaux taper \ech{facteur de réduction}
+
+%%//
+%%// traitement des fichiers produits par giac/xcas
+%%//
+%%//
+
+%// pour l'échelle des tableaux taper \ech{facteur de réduction}
\newcommand\echelle{1}
\newcommand\ech[1]{\renewcommand\echelle{#1}}
diff --git a/Master/texmf-dist/tex/latex/tablor/tablor.sty b/Master/texmf-dist/tex/latex/tablor/tablor.sty
index b1d3ec7797d..50ca9ca3242 100644
--- a/Master/texmf-dist/tex/latex/tablor/tablor.sty
+++ b/Master/texmf-dist/tex/latex/tablor/tablor.sty
@@ -1,5 +1,5 @@
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
-\ProvidesPackage{tablor}[09/05/2010 v4.07 la machine a creer des tableaux de signes et variations]
+\ProvidesPackage{tablor}[16/11/2010 v4.07-e la machine a creer des tableaux de signes et variations]
% \copyleft Connan le Barbare (aka Guillaume Connan) \copyright
% This work may be distributed and/or mofified under the conditions
@@ -138,7 +138,7 @@
\ifthenelse{\boolean{windows}}%
{\newcommand{\rem}{DEL } \newcommand{\cat}{TYPE }
\newcommand{\cp}{COPY } \newcommand{\echod}{ECHO }
- \newcommand{\echof}{ }}%
+ \newcommand{echof}{}}%
{\newcommand{\rem}{rm }\newcommand{\cat}{cat }
\newcommand{\cp}{cp } \newcommand{\echod}{echo "}
\newcommand{\echof}{"}}
@@ -318,8 +318,8 @@ pour m de 0 jusque nz-1 faire l0:=l0+"val(btex $"+latex(Z[m])+"$ etex);
lsi:=lsic+nom+"'("+nomv+")}$ etex);"+
if(Z[0]==-infinity){if(sign(evalf(fp(if(Z[1]==+infinity){0}else{Z[1]-10^(-5)})))==1.0){"plus;"}else{"moins;"}}else{if(member(Z[0],F)==0){
if(fp(Z[0])==0){"valBarre(btex 0 etex);"}else{" "}+
- if(evalf(sign(fp(Z[0]+10^(-5))))==1.0){"plus;"}else{"moins;"}}else{"nonDefBarre;"+
- if(evalf(sign(fp((Z[0]+10^(-5)))))==1.0){"plus;"}else{"moins;"} }}
+ if(evalf(sign(fp(Z[0]+10^(-5))))==1.0 or ((evalf(sign(fp(Z[0]+10^(-5))))==0.0)and (evalf(sign(fp(Z[0]+10^(-1))))==1.0))){"plus;"}else{"moins;"}}else{"nonDefBarre;"+
+ if(evalf(sign(fp(Z[0]+10^(-5))))==1.0 or ((evalf(sign(fp(Z[0]+10^(-5))))==0.0)and (evalf(sign(fp(Z[0]+10^(-1))))==1.0))){"plus;"}else{"moins;"} }}
if(nz>2){ for(r:=1; r<=nz-2;r++){ ksp:=evalf(fp(Z[r]+0.1))>0;
lsp:=lsp+if(member(Z[r],F)==0){"valBarre(btex 0 etex);"}else{"nonDefBarre;"}+
@@ -330,33 +330,54 @@ lsf:=if(member(Z[nz-1],F)==0){""}else{"nonDefBarre;
"}
lm0:=limit(f(x),x=Z[0],1)==-infinity;
li:=lvic+nom+"}$ etex);"+
- if(member(Z[0],F)==0){"valPos(btex $"+if(lm0==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[0],1)))}+"$ etex,"}
- else{"nonDefBarre;limDroite(btex $"+if(lm0==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[0],1)))}+"$ etex,"}+
- if(k0==1){"1"}else{"0"}+
- ");";
+ if(member(Z[0],F)==0){"valPos(btex $"+
+ if(lm0==1){"-\\infty"}
+ else{latex(simplify(limit(f(x),x=Z[0],1)))}+"$ etex,"}
+ else{"nonDefBarre;limDroite(btex $"+
+ if(lm0==1){"-\\infty"}
+ else{latex(simplify(limit(f(x),x=Z[0],1)))}+"$ etex,"}+
+if(k0==1){"1"}else{"0"}+");";
- if(nz>2){ for(r:=1; r<=nz-2;r++){ krm:=evalf(limit(f(x),x=Z[r-1],1))< evalf(limit(f(x),x=Z[r],-1));
- krp:=evalf(limit(f(x),x=Z[r],1))> evalf(limit(f(x),x=Z[r+1],-1)) ;
- lmrm:=limit(f(x),x=Z[r],-1)==-infinity;lmrp:=limit(f(x),x=Z[r],1)==-infinity;
- lp:=lp+if(member(Z[r],F)){
- "limGauche(btex
- $"+if(lmrm==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[r],-1)))}+"$
- etex,"+if(krm==1){"1);"}else{"0);"}+"nonDefBarre;limDroite(btex $"+if(lmrp==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[r],1)))}+"$ etex,"+if(krp==1){"1);"}else{"0);"}}
- else{"valPos(btex $"+latex(simplify(f(Z[r])))+"$
- 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(nz>2){ for(r:=1; r<=nz-2;r++){
+ krm:=evalf(limit(f(x),x=Z[r-1],1))< evalf(limit(f(x),x=Z[r],-1));
+ krp:=evalf(limit(f(x),x=Z[r],1))> evalf(limit(f(x),x=Z[r+1],-1)) ;
+ lmrm:=limit(f(x),x=Z[r],-1)==-infinity;
+ lmrp:=limit(f(x),x=Z[r],1)==-infinity;
+ lp:=lp+
+ if(member(Z[r],F)){"limGauche(btex $"+
+ if(lmrm==1){"-\\infty"}
+ else{latex(simplify(limit(f(x),x=Z[r],-1)))}+"$ etex,"+
+ if(krm==1){"1);"}
+ else{"0);"}+"nonDefBarre;limDroite(btex $"+
+ if(lmrp==1){"-\\infty"}
+ else{latex(simplify(limit(f(x),x=Z[r],1)))}+
+ "$ etex,"+
+ if(krp==1){"1);"}
+ else{"0);"}}
+ else{"valPos(btex $"+latex(simplify(f(Z[r])))+"$ etex,"+
+ if(sign(evalf(fp(Z[r]-0.01)))==sign(fp(Z[r]+0.01))){"0.5);"}
+ else{if(krp==1){"1);"}else{"0);"
+ }
+ }
+ }
+ };
+ }
lnz:=limit(f(x),x=Z[nz-1],-1)==-infinity;
lf:=if(member(Z[nz-1],F)==0){"valPos(btex $"+
- if(lnz==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[nz-1],-1)))}+"$ etex,"+
- if(kz==1){"1);"}else{"0);"}}
- else{"limGauche(btex $"+
- if(lnz==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[nz-1],-1)))}+"$ etex,"+
- if(kz==1){"1);nonDefBarre;"}else{"0);nonDefBarre;"}};
+ if(lnz==1){"-\\infty"}
+ else{latex(simplify(limit(f(x),x=Z[nz-1],-1)))}+"$ etex,"+
+ if(kz==1){"1);"}
+ else{"0);"}
+}
+ else{"limGauche(btex $"+
+ if(lnz==1){"-\\infty"}
+ else{latex(simplify(limit(f(x),x=Z[nz-1],-1)))}+"$ etex,"+
+ if(kz==1){"1);nonDefBarre;"}
+ else{"0);nonDefBarre;"}};
@@ -427,14 +448,14 @@ fclose(sortie);
-%%%%
+%%%%//
-%
-%
-% TVPC : pour les fonctions prolongeables par continuit.
-%%
-%%
+%//
+%//
+%// TVPC : pour les fonctions prolongeables par continuit.
+%%//
+%%//
@@ -487,10 +508,11 @@ nz:=size(Z);
- si size(S)>0 alors pour j de 0 jusque size(S)-1 faire
- kk:=(evalf(S[j])>=evalf(L[0])) and (evalf(S[j])<=evalf(L[nl-1]));
- if(kk==1){Z:=append(Z,simplify(S[j]))};
- fpour
+ si size(S)>0 alors
+ pour j de 0 jusque size(S)-1 faire
+ kk:=(evalf(S[j])>=evalf(L[0])) and (evalf(S[j])<=evalf(L[nl-1]));
+ if(kk==1){Z:=append(Z,simplify(S[j]))};
+ fpour
fsi;
@@ -499,43 +521,88 @@ Z:=sort([op(set[op(Z)])]);
nz:=size(Z);
l0:=" newLigneVariables(btex $"+nomv+"$ etex);";lp:=" "; lf:=" ";lsp:=" ";
pour m de 0 jusque nz-1 faire l0:=l0+"val(btex $"+latex(Z[m])+"$ etex);
-";fpour;
+";
+fpour;
- k0:= evalf(limit(f(x),x=Z[0],1))> evalf(limit(f(x),x=Z[1],-1));
- kz:=evalf(limit(f(x),x=Z[nz-1],-1))> evalf(limit(f(x),x=Z[nz-2],1));
-
-lsi:=lsic+nom+"'("+nomv+")}$ etex);"+
- if(Z[0]==-infinity){if(sign(evalf(fp(if(Z[1]==+infinity){0}else{Z[1]-10^(-5)})))==1.0){"plus;"}else{"moins;"}}else{if(member(Z[0],FP)==0){
- if(fp(Z[0])==0){"valBarre(btex 0 etex);"}else{" "}+
- if(evalf(sign(fp(Z[0]+10^(-5))))==1.0){"plus;"}else{"moins;"}}else{"nonDefBarre;"+
- if(evalf(sign(fp((Z[0]+10^(-5)))))==1.0){"plus;"}else{"moins;"} }}
+k0:= evalf(limit(f(x),x=Z[0],1))> evalf(limit(f(x),x=Z[1],-1));
+kz:=evalf(limit(f(x),x=Z[nz-1],-1))> evalf(limit(f(x),x=Z[nz-2],1));
+ Deriv0:=type(evalf(limit((f(x)-limit(f(x),x=Z[0],1))/(x-Z[0]),x=Z[0],1)))==DOM_FLOAT;
+Derivf:=type(evalf(limit((f(x)-limit(f(x),x=Z[nz-1],-1))/(x-Z[nz-1]),x=Z[nz-1],-1)))==DOM_FLOAT;
+lsi:=lsic+nom+"'("+nomv+")}$ etex);
+"+
+
+if(Z[0]==-infinity){
+ if(sign(evalf(fp(
+ if(Z[1]==+infinity){0}
+ else{Z[1]-10^(-5)})))==1.0){"plus;
+"}
+ else{"moins;"}}
+ else{
+ if(member(Z[0],FP)==0){
+ if(fp(Z[0])==0){"valBarre(btex 0 etex);
+"}
+ else{" "}+
+ if(evalf(sign(fp(Z[0]+10^(-5))))==1.0 or ((evalf(sign(fp(Z[0]+10^(-5))))==0.0)and (evalf(sign(fp(Z[0]+10^(-1))))==1.0))){"plus;
+"}
+ else{"moins;
+"}}
+ else{
+ if(Deriv0){"valBarre(btex $"+latex(limit((f(x)-limit(f(x),x=Z[0],1))/(x-Z[0]),x=Z[0],1))+"$ etex);
+"}else{"nonDefBarre;
+"}+
+ if(evalf(sign(fp(Z[0]+10^(-5))))==1.0 or ((evalf(sign(fp(Z[0]+10^(-5))))==0.0)and (evalf(sign(fp(Z[0]+10^(-1))))==1.0))){"plus;
+"}
+ else{"moins;
+"}
+ }
+ }
-if(nz>2){ for(r:=1; r<=nz-2;r++){ ksp:=evalf(fp(Z[r]+0.1))>0;
- lsp:=lsp+if(member(Z[r],FP)==0){"valBarre(btex 0 etex);"}else{"nonDefBarre;"}+
- if(ksp==1){"plus;"}else{"moins;"}
- }; }
+if(nz>2) { for(r:=1; r<=nz-2;r++){
+ Derivr:=(type(evalf(limit((f(x)-limit(f(x),x=Z[r],1))/(x-Z[r]),x=Z[r],1)))==DOM_FLOAT) and (evalf(limit((f(x)-limit(f(x),x=Z[r],1))/(x-Z[r]),x=Z[r],1))==evalf(limit((f(x)-limit(f(x),x=Z[r],-1))/(x-Z[r]),x=Z[r],-1)));
+ ksp:=evalf(fp(Z[r]+0.1))>0;
+ lsp:=lsp+if(member(Z[r],FP)==0){"valBarre(btex 0 etex);
+"}else{
+ if(Derivr){"valBarre(btex $"+latex(limit((f(x)-limit(f(x),x=Z[r],1))/(x-Z[r]),x=Z[r],1))+"$ etex);
+"}else{"nonDefBarre;
+"}}+if(ksp==1){"plus;
+"}else{"moins;
+"}
+ }}
-lsf:=if(member(Z[nz-1],FP)==0){""}else{"nonDefBarre;
+lsf:=if(member(Z[nz-1],FP)==0){""}else{
+ if(Derivf){"valBarre(btex $"+latex(limit((f(x)-limit(f(x),x=Z[nz-1],-1))/(x-Z[nz-1]),x=Z[nz-1],-1))+"$ etex);
+"}else{"nonDefBarre;
"}
+}
+
lm0:=limit(f(x),x=Z[0],1)==-infinity;
- li:=lvic+nom+"}$ etex);"+
- if(member(Z[0],F)==0){"valPos(btex $"+if(lm0==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[0],1)))}+"$ etex,"}
- else{"limDroite(btex $"+if(lm0==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[0],1)))}+"$ etex,"}+
- if(k0==1){"1"}else{"0"}+
- ");";
-
- if(nz>2){ for(r:=1; r<=nz-2;r++){ krm:=evalf(limit(f(x),x=Z[r-1],1))< evalf(limit(f(x),x=Z[r],-1));
- krp:=evalf(limit(f(x),x=Z[r],1))> evalf(limit(f(x),x=Z[r+1],-1)) ;
- lmrm:=limit(f(x),x=Z[r],-1)==-infinity;lmrp:=limit(f(x),x=Z[r],1)==-infinity;
- lp:=lp+if(member(Z[r],F)){
- "valPos(btex
- $"+if(lmrm==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[r],-1)))}+"$
- etex,"+if(krm==1){"1);"}else{"0);"} }
- else{"valPos(btex $"+latex(simplify(f(Z[r])))+"$
- etex,"+if(sign(evalf(fp(Z[r]-0.01)))==sign(fp(Z[r]+0.01))){"0.5);"}else{if(krp==1){"1);"}else{"0);
-"}}}
+li:=lvic+nom+"}$ etex);
+"+
+if(member(Z[0],F)==0 or member(Z[0],FP)==1){"valPos(btex $"+
+ if(lm0==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[0],1)))}+"$ etex,"}
+ else{"limDroite(btex $"+
+ if(lm0==1){"-\\infty"}
+ else{latex(simplify(limit(f(x),x=Z[0],1)))}+"$ etex,"}+
+if(k0==1){"1"}else{"0"}+");";
+
+if(nz>2){ for(r:=1; r<=nz-2;r++){
+ krm:=evalf(limit(f(x),x=Z[r-1],1))< evalf(limit(f(x),x=Z[r],-1));
+ krp:=evalf(limit(f(x),x=Z[r],1))> evalf(limit(f(x),x=Z[r+1],-1)) ;
+ lmrm:=limit(f(x),x=Z[r],-1)==-infinity;
+ lmrp:=limit(f(x),x=Z[r],1)==-infinity;
+ lp:=lp+if(member(Z[r],F)){"valPos(btex $"+
+ if(lmrm==1){"-\\infty"}
+ else{latex(simplify(limit(f(x),x=Z[r],-1)))}+"$ etex,"+
+ if(sign(evalf(fp(Z[r]-0.01)))==sign(fp(Z[r]+0.01))){"0.5);"}
+ else{if(krm==1){"1);"}else{"0);"}
+ }
+ }
+ else{"valPos(btex $"+latex(simplify(f(Z[r])))+"$ etex,"+
+ if(sign(evalf(fp(Z[r]-0.01)))==sign(fp(Z[r]+0.01))){"0.5);"}
+ else{if(krp==1){"1);"}else{"0);"}}}
}; }
+
lnz:=limit(f(x),x=Z[nz-1],-1)==-infinity;
@@ -607,7 +674,7 @@ fprint(sortie,Unquoted,MetaLfc);
fclose(sortie);
- }:;
+ }:;
\end{VerbatimOut}
@@ -712,7 +779,7 @@ pour m de 0 jusque nz-1 faire l0:=l0+"val(btex $"+latex(Z[m])+"$ etex);
lsi:=lsic+nom+"'("+nomv+")}$ etex);"+
if(member(Z[0],IMIN)!=0){if((member(Z[0],F)==0) and (fp(Z[0])!=undef)){"debutNonDef;"}else{"debutNonDefStrict;"}}else{if(Z[0]==-infinity){if(sign(evalf(fp(if(Z[1]==+infinity){0}else{Z[1]-10^(-5)})))==1.0){"plus;"}else{"moins;"}}else{if(member(Z[0],F)==0){
if(fp(Z[0])==0){"valBarre(btex 0 etex);"}else{" "}+
- if(evalf(sign(fp(Z[0]+10^(-5))))==1.0){"plus;"}else{"moins;"}}else{"nonDefBarre;"+
+ if(evalf(sign(fp(Z[0]+10^(-5))))==1.0 or ((evalf(sign(fp(Z[0]+10^(-5))))==0.0)and (evalf(sign(fp(Z[0]+10^(-1))))==1.0))){"plus;"}else{"moins;"}}else{"nonDefBarre;"+
if(evalf(sign(fp((Z[0]+10^(-5)))))==1.0){"plus;"}else{"moins;"} }}}
@@ -881,7 +948,7 @@ fclose(sortie);
\begin{VerbatimOut}{XcasTVapp.cxx}
-TVapp(L,F,nom,nomv,f,ftt,nmr):={
+TVapp(L,F,nom,nomv,f,ftt,trigo,nmr):={
local nl,fp,z0,z,nz,S,k,j,m,kk,kok,Z,l0,lp,lf,lsp,k0,kz,lsi,r,ksp,lsf,lm0,li,krm,krp,lmrm,lmrp,lnz;
nl:=size(L);
@@ -896,6 +963,10 @@ S:=NULL;
+
+
+
+
if(L==[-infinity,+infinity]){j:=[seq(-50+2*k,k=0..50)]minus F;
for k in j do for(m:=-5;m<=5;m++){S:=S,resoudre_numerique(fp(y),y,k+m*0.1,k+(m+1)*0.1,bisection_solver)};end_for}
else{if(L[0]==-infinity){j:=[seq(2*k,k=-25..0.5*floor(L[1]))] minus F;
@@ -911,6 +982,8 @@ else{ j:=[seq(2*k,k=0.5*floor(z[0])..0.5*floor(z[nz-1]))] minus F;
+
+
si size(S)>0 alors pour j de 0 jusque size(S)-1 faire
kk:=(re(S[j])==S[j]);kok:=(evalf(S[j])>=L[0]) and (evalf(S[j])<=L[1]);
if(kk==1){if(kok==1){z:=append(z,simplify(S[j]))}};
@@ -949,7 +1022,7 @@ pour m de 0 jusque nz-1 faire l0:=l0+"val(btex $"+latex(Z[m])+"$ etex);
lsi:=lsic+nom+"'("+nomv+")}$ etex);"+
if(Z[0]==-infinity){if(sign(evalf(fp(if(Z[1]==+infinity){0}else{Z[1]-10^(-5)})))==1.0){"plus;"}else{"moins;"}}else{if(member(Z[0],F)==0){
if(fp(Z[0])==0){"valBarre(btex 0 etex);"}else{" "}+
- if(evalf(sign(fp(Z[0]+10^(-5))))==1.0){"plus;"}else{"moins;"}}else{"nonDefBarre;"+
+ if(evalf(sign(fp(Z[0]+10^(-5))))==1.0 or ((evalf(sign(fp(Z[0]+10^(-5))))==0.0)and (evalf(sign(fp(Z[0]+10^(-1))))==1.0))){"plus;"}else{"moins;"}}else{"nonDefBarre;"+
if(evalf(sign(fp((Z[0]+10^(-5)))))==1.0){"plus;"}else{"moins;"} }}
if(nz>2){ for(r:=1; r<=nz-2;r++){ ksp:=evalf(fp(Z[r]+0.01))>0;
@@ -2866,7 +2939,7 @@ fclose(sortie);
\immediate\write18{\echod drawoptions(withcolor(#1));\echof >> \nomtravail_Tab#2.mp}
\immediate\write18{\echod initTableau;\echof >> \nomtravail_Tab#2.mp}
\immediate\write18{\echod enddef;\echof >> \nomtravail_Tab#2.mp}
-\immediate\write18{\cat XCasmpfc.mp >> \nomtravail_Tab#2.mp}} % Inclusion du
+\immediate\write18{\cat XCasmpfc.mp >> \nomtravail_Tab#2.mp} % Inclusion du
% source dans le
% fichier
% Tableaux
@@ -2875,7 +2948,7 @@ fclose(sortie);
% et creation du dernier. L'option
% pallie l'absence de end en fin de
% fichier
-\immediate\write18{\rem \nomtravail_Tab#2.mp}
+\immediate\write18{\rem \nomtravail_Tab#2.mp}}
\begin{center}
\includegraphics[scale=\echelle]{\nomtravail_Tab.\theTVn}