diff options
Diffstat (limited to 'macros/generic/xlop/doc')
-rw-r--r-- | macros/generic/xlop/doc/history.txt | 107 | ||||
-rw-r--r-- | macros/generic/xlop/doc/xlop-doc-fr.pdf | bin | 394072 -> 389668 bytes | |||
-rw-r--r-- | macros/generic/xlop/doc/xlop-doc-fr.tex | 98 | ||||
-rw-r--r-- | macros/generic/xlop/doc/xlop-doc.pdf | bin | 373942 -> 369408 bytes | |||
-rw-r--r-- | macros/generic/xlop/doc/xlop-doc.tex | 17 |
5 files changed, 183 insertions, 39 deletions
diff --git a/macros/generic/xlop/doc/history.txt b/macros/generic/xlop/doc/history.txt new file mode 100644 index 0000000000..bcc7b35864 --- /dev/null +++ b/macros/generic/xlop/doc/history.txt @@ -0,0 +1,107 @@ +%% +%% xlop.tex: +%% eXtra Large OPeration macros for Generic TeX. +%% See `xlop-doc.pdf' for documentation; +%% `xlop-doc-fr.pdf' for french documentation. +%% +%% Copyright 2005-2020, by Jean-C\^ome Charpentier +%% Jean-Come.Charpentier@wanadoo.fr +%% +%% This program may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 2003/12/01 or later. + +10 janvier 2004 version 0.01-beta01 +--------------- + Division posée. + +28 janvier 2004 version 0.01-beta02 +--------------- + Quatre opérations posées et en ligne. + +5 février 2004 version 0.01-beta03 +-------------- + Ajout de la division euclidienne. + +3 mars 2004 version 0.01-beta04 +----------- + Ajout de plein de détails de présentations. + Changement complet de certains algorithmes et du codage interne des + nombres développés. + Manuel de l'utilisateur. + Première version envoyée aux beta-testeurs. Un grand merci à : + Pascal Chantriaux + Marc Chaudemanche + Olivier Deutsch + Paul Gaborit + Martine Gautier + Yvon Henel + Christophe Jorssen + Ahmed Kadi + Josselin Noirel + Olivier Viennet + Damien Wyard + +26 mai 2004 version 0.1 +----------- + Refonte complète du code + Ajout de certains détails de présentation. + syntaxe "à la keyval" des paramètres ; + correction de bogues de la version 0.01-beta04 ; + manipulations de chiffres ; + \opexpr ; + changement de codage des noms de nombre. + Première version publique. + +25 juin 2004 version 0.2 +------------ + Correction de bogues + Style pour le séparateur décimal + +6 avril 2005 version 0.21 +------------ + Correction d'un bogue sur la division + +4 janvier 2006 version 0.22 +-------------- + Correction d'un bogue sur l'affichage de la multiplication posée + +16 décembre 2010 version 0.23 +--------------- + Correction d'un bogue sur la division + Ajout de \opexport + Manuel en anglais + +15 avril 2011 version 0.24 +--------------- + Correction d'un bogue dans \opexport + Correction d'un bogue dans l'affichage des zéros dans la + multiplication + +26 février 2012 version 0.25 +--------------- + Ajout de la valeur None (N capital) pour le paramètre + displayintermediary. + Correction d'un bogue dans l'affichage des zéros dans la + multiplication + +7 janvier 2017 version 0.26 +--------------- + Correction d'un bogue sur \opexport + Ajout des commandes \opsqrt et \opgfsqrt pour les racines carrées + +28 avril 2020 version 0.27 +--------------- + Passage systématique de tous les fichiers en UTF-8. + Correction d'un bogue sur quelques macros de manipulation de + chiffres. + Ajout de \opmanyadd pour les additions à nombre quelconque + d'opérandes. +11 novembre 2020 version 0.28 +--------------- + Correction d'espace parasite (merci à Christian Tellechea) + Corrections mineures de la documentation diff --git a/macros/generic/xlop/doc/xlop-doc-fr.pdf b/macros/generic/xlop/doc/xlop-doc-fr.pdf Binary files differindex 0766e91477..ab528c746d 100644 --- a/macros/generic/xlop/doc/xlop-doc-fr.pdf +++ b/macros/generic/xlop/doc/xlop-doc-fr.pdf diff --git a/macros/generic/xlop/doc/xlop-doc-fr.tex b/macros/generic/xlop/doc/xlop-doc-fr.tex index de4a1b7785..731ea3c81b 100644 --- a/macros/generic/xlop/doc/xlop-doc-fr.tex +++ b/macros/generic/xlop/doc/xlop-doc-fr.tex @@ -1,3 +1,20 @@ +%% +%% xlop-doc-fr.tex: +%% eXtra Large OPeration macros for Generic TeX. +%% See `xlop-doc.pdf' for documentation; +%% `xlop-doc-fr.pdf' for french documentation. +%% +%% Copyright 2005-2020, by Jean-C\^ome Charpentier +%% Jean-Come.Charpentier@wanadoo.fr +%% +%% This program may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 2003/12/01 or later. + \documentclass[12pt]{report} \usepackage[T1]{fontenc} \usepackage[utf8]{inputenc} @@ -19,7 +36,7 @@ \fvset{label=source}% français -\fvset{xrightmargin=5cm,frame=single,fontsize=\small} +\fvset{xrightmargin=5cm, frame=single, fontsize=\small, gobble=2} \geometry{a4paper,left=4cm,right=4cm,top=3cm,bottom=3cm,nohead} \let\SBSori\SideBySideExample @@ -47,6 +64,7 @@ \newcommand\macro[1]{\texttt{$\backslash$#1}\index{#1@\texttt{\boi {#1}}}} \newcommand\parameter[1]{\texttt{#1}\index{#1@\texttt{#1}}% \index{parametre@paramètre!\texttt{#1}}} +\newcommand\keyword[1]{\texttt{#1}} \newcommand\bull{\vrule width3pt height4pt depth-1pt} @@ -126,7 +144,7 @@ la seconde possibilité étant en fait un raccourci pour : Dans cette liste d'affectation, on peut faire suivre les virgules par un ou plusieurs espaces mais il ne faut pas mettre d'espace de part et d'autre du signe égal ou avant la virgule : un paramètre ou une valeur -pouvant (potentiellement) comporter le caractère espace. +pouvant potentiellement comporter le caractère espace. Ainsi, si l'on veut un séparateur décimal qui soit une virgule, un symbole opératoire placé en face de la seconde opérande et en @@ -322,7 +340,7 @@ prudent de ne pas commencer un nom de variable par le caractère \label{sec:Parametres de xlop} \index{parametre@paramètre!syntaxe|(} Les affectations de paramètres restent locales à la macro lorsqu'elles -sont indiquées au niveau de son argument optionnel. Pour rendre de +sont indiquées au niveau de leurs arguments optionnels. Pour rendre de telles affectations globales, il faut utiliser la macro \macro{opset}. Par exemple \begin{Verbatim}[xrightmargin=0pt] @@ -367,8 +385,8 @@ défaut sont respectivement \verb!$+$!, \verb!$-$!, \verb!$\times$! et \label{subsec:Presentation generale} Le paramètre \parameter{voperation} indique la façon dont une opération posée sera placée par rapport à la ligne de base. Les -valeurs possibles sont \verb+top+, \verb+center+ et \verb+bottom+ -(valeur par défaut). +valeurs possibles sont \keyword{top}, \keyword{center} et +\keyword{bottom} (valeur par défaut). \begin{SideBySideExample} top\quad \opadd[voperation=top]{45}{172}\par @@ -380,7 +398,8 @@ valeurs possibles sont \verb+top+, \verb+center+ et \verb+bottom+ Le paramètre \parameter{voperator} indique comment sera placé le symbole opératoire par rapport aux opérandes. Les valeurs possibles -sont \verb+top+, \verb+center+ (valeur par défaut) et \verb+bottom+. +sont \keyword{top}, \keyword{center} (valeur par défaut) et +\keyword{bottom}. \begin{SideBySideExample} top\quad \opadd[voperator=top]{45}{172}\par @@ -397,10 +416,10 @@ l'opération et nous y reviendrons lors de la présentation des différentes opérations. Le paramètre \parameter{style} indique si l'opération doit être posée -(avec la valeur \verb+display+ qui est la valeur par défaut) ou bien -être affichée en ligne (valeur \verb+text+). On reviendra sur ce -paramètre lors de la présentation de la division car les possibilités -sont alors un peu plus nombreuses. +(avec la valeur \keyword{display} qui est la valeur par défaut) ou +bien être affichée en ligne (valeur \keyword{text}). On reviendra sur +ce paramètre lors de la présentation de la division car les +possibilités sont alors un peu plus nombreuses. \begin{SideBySideExample} \opadd[style=text]{45}{172} \end{SideBySideExample} @@ -446,11 +465,11 @@ Dans les opérations posées, les chiffres sont placés dans des boîtes de dimensions fixées. La largeur est donnée par le paramètre \parameter{columnwidth} et la hauteur par le paramètre \parameter{lineheight}. La valeur par défaut du paramètre -\texttt{lineheight} est \verb+\baselineskip+ ce qui fait que les -lignes des opérations seront espacées, par défaut, comme les lignes -d'un paragraphe. La valeur par défaut de \texttt{columnwidth} est de -\texttt{2ex} car la largeur \og normale \fg{} des chiffres aurait -donné des résultats peu lisibles. +\texttt{lineheight} est \keyword{\string\baselineskip} ce qui fait que +les lignes des opérations seront espacées, par défaut, comme les +lignes d'un paragraphe. La valeur par défaut de \texttt{columnwidth} +est de \texttt{2ex} car la largeur \og normale \fg{} des chiffres +aurait donné des résultats peu lisibles. \begin{SideBySideExample} \opadd[columnwidth=0.5em] {45.89}{127.5} @@ -459,7 +478,7 @@ Ce piètre résultat est dû en partie au fait que la virgule est placé dans une boîte dont la largeur est contrôlée par le paramètre \parameter{decimalsepwidth} dont la valeur par défaut est nulle. Un essai d'amélioration peut être effectué en donnant à ce paramètre la -largeur \og{} normale \fg d'une virgule. +largeur \og{} normale \fg{} d'une virgule. \begin{SideBySideExample} \opadd[columnwidth=0.5em, decimalsepwidth=0.27778em] @@ -623,7 +642,7 @@ maintenant écrire des nombres négatifs. \opadd[style=text]{-245}{72} \end{SideBySideExample} Outre les paramètres généraux décrits à la - section~\ref{sec:Parametres de xlop}, la macro \verb+\opadd+ est + section~\ref{sec:Parametres de xlop}, la macro \macro{opadd} est sensible aux paramètres \texttt{carryadd}, \texttt{lastcarry} et \texttt{deletezero}. @@ -707,7 +726,7 @@ vers le bas) et la deuxième le chiffre de l'opérande. Par exemple : \end{SideBySideExample} Cet exemple montre que les zéros non significatifs ne sont pas affichés. Ils peuvent l'être en utilisant le -paramètre \parameter{deletezero} avec se valeur false : +paramètre \parameter{deletezero} avec la valeur false : \begin{SideBySideExample} \opmanyadd[deletezero=false] {12.6}{853.3}{158.1} @@ -730,7 +749,7 @@ l'opérateur plus de six façons différentes. \end{CenterExample} On peut voir que la valeur par défaut est center. Les valeurs avec une première lettre minuscule affichent autant d'opérateurs qu'il y a -d'opérandes moins une. Les mêmes valeurs avec la premiyère lettre en +d'opérandes moins une. Les mêmes valeurs avec la première lettre en capitale affichent un unique signe opératoire: \begin{CenterExample} \opmanyadd[vmanyoperator=Center] @@ -770,7 +789,7 @@ Bien entendu, l'opération en ligne donnera le résultat exact. Outre les paramètres généraux vus à la section~\ref{sec:Parametres de - xlop}, \verb+\opsub+ est sensible à \texttt{carrysub}, + xlop}, \macro{opsub} est sensible à \texttt{carrysub}, \texttt{lastcarry}, \texttt{offsetcarry}, \texttt{deletezero} et \texttt{behaviorsub}. @@ -963,7 +982,7 @@ On notera l'emploi de \parameter{equalsymbol} ou troncature et non un arrondi. Nous verrons comment obtenir un arrondi à la section~\ref{sec:Operations evoluees} -L'affichage en ligne de \verb+\opdiv+ tient compte de +L'affichage en ligne de \macro{opdiv} tient compte de \parameter{maxdivstep}. Cela signifie que l'on peut obtenir des résultats vraiment faux avec des valeurs trop faible de ce paramètre et, contrairement à l'affichage posé, l'affichage en ligne ne @@ -987,17 +1006,18 @@ de la survenue d'une période. Pour cela, il suffit de donner la valeur \end{SideBySideExample} Pour ne pas avoir à effectuer des comparaisons de chaque reste avec -tous les restes précédents, \package{xlop} calcule dès le départ la -longueur de la période ce qui permet de n'effectuer qu'une seule -comparaison à chaque étape et donc d'accélérer notablement les -calculs\footnote{Je remercie à cette occasion Olivier Viennet pour ses - précisions mathématiques qui ont permis d'implanter correctement ces - calculs.}. Malheureusement, ces calculs se font avec des nombres -directement accessibles à \TeX{} ce qui a pour conséquence de ne pas -pouvoir utiliser d'opérandes dont la valeur absolue excède +l'ensemble de tous les restes précédents, \package{xlop} calcule dès +le départ la longueur de la période ce qui permet de n'effectuer +qu'une seule comparaison à chaque étape et donc d'accélérer +notablement les calculs\footnote{Je remercie à cette occasion Olivier + Viennet pour ses précisions mathématiques qui ont permis d'implanter + correctement ces calculs.}. Malheureusement, ces calculs se font +avec des nombres directement accessibles à \TeX{} ce qui a pour +conséquence de ne pas pouvoir utiliser d'opérandes dont la valeur +absolue excède $\left\lfloor\frac{2^{31}-1}{10}\right\rfloor = 214748364$. -Pour ne pas entraîner des calculs trop long, \package{xlop} ne +Pour ne pas entraîner des calculs trop longs, \package{xlop} ne dépassera pas la valeur du paramètre \parameter{safedivstep} dans les divisions avec détection de période. Sa valeur par défaut est égale à~50. Cependant, \package{xlop} signalera le problème. Par exemple si @@ -1601,7 +1621,7 @@ macros de division. Par exemple: \end{SideBySideExample} Pour la présentation à la \og grand-père \fg{}, je n'ai vraiment pas -le courage d'expliquer tout le processus. Il se base sur l'eidentioté +le courage d'expliquer tout le processus. Il se base sur l'identité remarquable $(a+b)^2=a^2+2ab+b^2$. Merci à Jean-Michel Sarlat d'avoir pris le temps de m'expliquer cette méthode afin que je puisse la coder dans \package{xlop}. @@ -1621,11 +1641,11 @@ deux paramètres : le premier est l'expression à calculer donnée sous forme infixe (la forme habituelle pour un humain) et le second est le nom de la variable qui contiendra le résultat. -Initialement, la formule devait être donnée sous forme polonaise -inverse (la notation des calculatrices HP ou du langage PostScript par -exemple) mais un travail commun avec Christophe Jorssen a finalement -abouti à la possibilité de donner l'expression sous une forme plus -agréable pour l'utilisateur. +Dans un premier temps, la formule devait être donnée sous forme +polonaise inverse (la notation des calculatrices HP ou du langage +PostScript par exemple) mais un travail commun avec Christophe Jorssen +a finalement abouti à la possibilité de donner l'expression sous une +forme plus agréable pour l'utilisateur. Les formules acceptent les opérateurs arithmétiques habituels \texttt{+}, \texttt{-}, \texttt{*} et \texttt{/} ainsi que l'opérateur @@ -1715,11 +1735,11 @@ compte. Les résultats sont donnés en millisecondes et sont évidemment Le tableau suivant donne le temps de compilation des opérations en millisecondes. Les opérandes utilisées l'ont été avec une écriture sous forme de chiffres mais des essais avec des opérandes sous forme -de noms de variable ont montré que les différences étaient vraiment +de noms de variables ont montré que les différences étaient vraiment minimes. La première ligne indique le nombre de chiffres des deux -opérandes. Ces nombres ont été construits de la façons suivantes : +opérandes. Ces nombres ont été construits de la façon suivante : \begin{itemize} \item $\mathrm{A} = 1$ et $\mathrm{B} = 9$ pour un chiffre ; \item $\mathrm{A} = 12$ et $\mathrm{B} = 98$ pour deux chiffres ; @@ -1793,7 +1813,7 @@ au fait d'avoir un quotient à un seul chiffre. Plus bizarre encore, l'explication est plus subtile : cela est dû à la présence de nombreux zéros au quotient. -Avec des opérandes de taille comparable, la division euclidienne est +Avec des opérandes de tailles comparables, la division euclidienne est très rapide par rapport à la division non euclidienne. Cela est dû au fait que le quotient n'aura que peu de chiffres (un seul avec tous les nombres \texttt{A} et \texttt{B}). La dernière ligne du tableau est diff --git a/macros/generic/xlop/doc/xlop-doc.pdf b/macros/generic/xlop/doc/xlop-doc.pdf Binary files differindex e0b0a4b699..ce6fc3022e 100644 --- a/macros/generic/xlop/doc/xlop-doc.pdf +++ b/macros/generic/xlop/doc/xlop-doc.pdf diff --git a/macros/generic/xlop/doc/xlop-doc.tex b/macros/generic/xlop/doc/xlop-doc.tex index 26581f844c..7530330415 100644 --- a/macros/generic/xlop/doc/xlop-doc.tex +++ b/macros/generic/xlop/doc/xlop-doc.tex @@ -1,3 +1,20 @@ +%% +%% xlop-doc.tex: +%% eXtra Large OPeration macros for Generic TeX. +%% See `xlop-doc.pdf' for documentation; +%% `xlop-doc-fr.pdf' for french documentation. +%% +%% Copyright 2005-2020, by Jean-C\^ome Charpentier +%% Jean-Come.Charpentier@wanadoo.fr +%% +%% This program may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 2003/12/01 or later. + \documentclass[12pt]{report} \usepackage[T1]{fontenc} \usepackage[utf8]{inputenc} |