diff options
Diffstat (limited to 'Master/texmf-dist/doc/latex/fp')
-rw-r--r-- | Master/texmf-dist/doc/latex/fp/README | 459 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/fp/fp.tex | 49 |
2 files changed, 508 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/fp/README b/Master/texmf-dist/doc/latex/fp/README new file mode 100644 index 00000000000..18a8e590525 --- /dev/null +++ b/Master/texmf-dist/doc/latex/fp/README @@ -0,0 +1,459 @@ +fp-package + +(c) Michael Mehlich 1994 -- 1999 +contributions by: Denis Girou +acknowledgment to: Denis Girou, Miroslav Balda, Ricardo Sanchez Carmenes + +% Copyright 1994 -- 1999 Michael Mehlich +% This package can be redistributed and/or modified under the terms +% of the LaTeX Project Public License Distributed from CTAN +% archives at http://www.latex-project.org/lppl.txt either +% version 1 of the License, or any later version. + +(current) e-mail: mmehlich@semdesigns.com; michael@mehlich.com + +Fixed point arithmetic for TeX with numbers ranging from + -999999999999999999.999999999999999999 +to + +999999999999999999.999999999999999999 + +TODO: + - better documentation (it is really bad) + +USAGE: + - LaTeX2e: + \usepackage[<options>]{fp} + where the following options are known: + nomessages: don't print messages about the functions that are + just computed + debug: print debug messages (mainly for \FPupn) + - LaTeX2.09: + include lfp.sty in the document preamble, i.e. + \documentstyle[...,lfp,...]{...} + - TeX: + \input fp.tex + +MsDos/Windows Users: + It may be necessary to rename some files such that they just have a length of + eight characters (plus a three character suffix). + The following renaming e.g. works for emtex: + Original name Name for emtex + defpattern.sty defpaern.sty + fp-addons.sty fp-adons.sty + fp-random.sty fp-radom.sty + +FILES AND THEIR CONTENTS: + - readme.fp: + this file + - fp.sty + includes all files + - defpattern.sty: + only for internal usage + - fp-basic.sty: + The following macros are public ones to be used in the document: + %controlling messages + \FPmessagestrue % print standard FP-messages (default) + \FPmessagesfalse % suppress standard FP-messages + \FPdebugtrue % print debug messages (mainly for upn) + \FPdebugfalse % suppress debug messages (default) + %introduction of new values + \FPset#1#2 % #1 := #2 (#1 may be macro or string) + %print values + \FPprint#1 % prints #1 (#1 may be macro or string) + %binary operations + \FPadd#1#2#3 % #1 := #2+#3 + \FPdiv#1#2#3 % #1 := #2/#3 + \FPmul#1#2#3 % #1 := #2*#3 + \FPsub#1#2#3 % #1 := #2-#3 + %unary operations + \FPabs#1#2 % #1 := abs(#2) + \FPneg#1#2 % #1 := -#2 + %binary relations + \FPiflt#1#2...\else...\fi % #1 < #2 ? + \FPifeq#1#2...\else...\fi % #1 = #2 ? + \FPifgt#1#2...\else...\fi % #1 > #2 ? + %unary relations + \FPifneg#1 ...\else...\fi % #1 < 0 ? + \FPifpos#1 ...\else...\fi % #1 >= 0 ? + \FPifzero#1...\else...\fi % #1 = 0 ? + \FPifint#1 ...\else...\fi % #1 is integer ? + %repeat last test + \ifFPtest ...\else...\fi % repeat last test + - fp-addons.sty + The following macros are public ones to be used in the document: + %binary operations + \FPmin#1#2#3 % #1 = min(#2,#3) + \FPmax#1#2#3 % #1 = max(#2,#3) + - fp-eqn.sty (No warranty on correctness and especially on numerical problems!) + The following macros are public ones to be used in the document: + \FPlsolve#1#2#3 + % #1 := x with #2*x+#3=0 + \FPqsolve#1#2#3#4#5 + % #1,#2 := x with #3*x^2+#4*x+#5 = 0 + \FPcsolve#1#2#3#4#5#6#7 + % #1,#2,#3 := x with #4*x^3+#5*x^2+#6*x+#7 = 0 + \FPqqsolve#1#2#3#4#5#6#7#8#9 + % #1,#2,#3,#4 := x with #5*x^4+#6*x^3+#7*x^2+#8*x+#9 = 0 + The resulting solutions are all real values. If there do not + exist as much solutions you get a warning message and some + other solutions occur several times in the solution vector. + - fp-exp.sty + The following macros are public ones to be used in the document: + \FPe % 2.718281828459045235 + \FPexp#1#2 % #1 := e^(#2) + \FPln#1#2 % #1 := ln(#2) + \FPpow#1#2#3 % #1 := (#2)^(#3) + \FProot#1#2#3 % #1 := (#2)^(1/#3) + - fp-random.sty + The following macros are public ones to be used in the document: + \FPseed=#1 % set seed counter for random number generation + \FPrandom#1 % #1 := a random number between 0 and 1 + - fp-pas.sty + The following macros are public ones to be used in the document: + \FPpascal#1#2 % #1 := #2-th line of the pascal triangle + - fp-snap.sty: + The following macros are public ones to be used in the document: + \FPround#1#2#3 % #1 := #2 rounded to #3 digits after '.' + \FPtrunc#1#2#3 % #1 := #2 truncated to #3 digits after '.' + \FPclip#1#2 % #1 := #2 with all unnecessary 0's removed + - fp-trigo.sty: + The following macros are public ones to be used in the document: + \FPpi % 3.141592653589793238 + \FPsin#1#2 % #1 := sin(#2) + \FPcos#1#2 % #1 := cos(#2) + \FPsincos#1#2#3 % #1 := sin(#3), #2 := cos(#3) + \FPtan#1#2 % #1 := tan(#2) + \FPcot#1#2 % #1 := cot(#2) + \FPtancot#1#2#3 % #1 := tan(#3), #2 := cot(#3) + \FParcsin#1#2 % #1 := arcsin(#2) + \FParccos#1#2 % #1 := arccos(#2) + \FParcsincos#1#2#3 % #1 := arcsin(#3), #2 := arccos(#3) + \FParctan#1#2 % #1 := arctan(#2) + \FParccot#1#2 % #1 := arccot(#2) + \FParctancot#1#2#3 % #1 := arctan(#3), #2 := arccot(#3) + - fp-upn.sty: + The following macros are public ones to be used in the document: + \FPupn#1#2 % #1 := eval(#2) where eval evaluates the + upn-expression #2 + Known operations are: + +,add,-,sub,*,mul,/,div,abs,neg,min,max, + round,trunc,clip,e,exp,ln,pow,root,pi,sin,cos, + sincos,tan,cot,tancot,arcsin,arccos,arcsincos, + arctan,arccot,arctancot,pop,swap,copy + where + pop removes the top element + swap exchanges the first two elements + copy copies the top element + Example 1: + The macro call + \FPupn\result{17 2.5 + 17.5 - 2 1 + * 2 swap /} + is equivalent to + \result := ((17.5 - (17 + 2.5)) * (2 + 1)) / 2 + and evaluates to + \def\result{-3.000000000000000000} + Afterwards the macro call + \FPupn\result{\result{} -1 * 0.2 + sin 2 round} + ^^ the "{}" is necessary! + is equivalent to + \result := round_2(sin((\result * -1) + 0.2)) + and evaluates to + \def\result{-0.06} + Example 2: + As "result" is an abbreviation of "\result{}" you may + write + \FPupn{result}{17 2.5 + 17.5 - 2 1 + * 2 swap /} + and + \FPupn{result}{result -1 * 0.2 + sin 2 round} + instead leading to the same results. + This is even true for other macro names using e.g. "x" for "\x{}" + and so on. But be careful with it. We may introduce new constants + in further versions overwriting these abbreviations. + - fp-eval.sty: + The following macros are public ones to be used in the document: + \FPeval#1#2 % #1 := eval(#2) where eval evaluates the + expression #2 + ATTENTION: Do not use macro names with \. for its own + Use only the name or the macro surrounded by (, and ) instead, + i.e. do not write "\value{}" but "value" or "(\value)". + This is needed to avoid problems with a prefix "-" of numbers. + (I do not intend to write a more complex parsing routine in future. + But if you do so, just send it to me. + ) + Known infix operations are + +, -, *, /, ^ for add, sub, mul, div, pow + Each other operation is a prefix one that needs + a (comma or colon seperated) list of subexpressions. + Exception: The unary prefix operation - is not known! + (Use the function neg instead.) + Example 1: + With + \edef\result{11} + and + \FPeval\result{round(root(2,sin(result + 2.5)):2)} + or + \FPeval{result}{round(root(2,sin(result + 2.5)):2)} + \result becomes the value 0.90 + Example 2: + \FPeval\result{clip(2*3+5*6)} results to 36 + \FPeval\result{clip(2*(3+5)*6)} results to 96 + +KNOWN BUGS: + - does not work with multido.sty/multido.tex + Reason: + multido uses the same macro names \FPadd and \FPsub + Recommended Solution: + Patch multido.tex, i.e. apply the following substitutions: + FPadd -> mdo@FPadd + FPsub -> mdo@FPsub + + - incompatibility with french style of babel + this only affects macros using the colon (:) + Recommended Solution: + Load the fp-package before babel with french style + Other Possible Solution: + Use \catcode`\:=12 after loading babel with french style + + - others: + Currently not known, but, though we do not, we could give + a warranty of their existence ... + +HISTORY: + Date By File New Version + + Oct. 21, 1996 Michael Mehlich fp-upn.sty V2.1c + better debug messages (especially giving results of one step computations) + + May. 13, 1996 Michael Mehlich fp-basic.sty V1.2d + \newcount and \countdef have interfered each other + when the first newcount uses a counter number less + than 60, the result has been wrong results when using + the package with plain tex (a problem that has been + reported by Ricardo Sanchez Carmenes) + + May. 13, 1996 Michael Mehlich all files - + problems with unwanted spaces removed + (bug reported by Ricardo Sanchez Carmenes) + + May. 28, 1995 Michael Mehlich fp-basic.sty V1.2c + modified \FPset and added \FPprint + + Apr. 27, 1995 Michael Mehliche fp-trigo.sty V0.9e + incorrect result of sine for 3/2pi fixed + (bug reported by Miroslav Balda) + + Apr. 14, 1995 Michael Mehlich fp-trigo.sty V0.9d + infinite loop in computing sine and cosine fixed + (bug reported by Miroslav Balda) + + Apr. 05, 1995 Michael Mehlich fp-snap.sty V1.0a + rounding bug in FPround fixed + (bug reported by Miroslav Balda) + + Apr. 04, 1995 Michael Mehlich fp.tex - + lfp.sty - + a redefinition of \loop..\repeat added not to get into + trouble with its behaviour within my macros + (bug reported by Miroslav Balda) + + Apr. 04, 1995 Michael Mehlich fp-basic.sty V1.2b + added a value introduction command FPset + + Apr. 03, 1995 Michael Mehlich fp-eqn.sty V0.4 + added solution algorithms for cubic and 4-th degree equations + + Apr. 03, 1995 Michael Mehlich fp-trigo.sty V0.9c + added some % at end of lines not to introduce unwanted spaces + removed some debug informations that have accidently been left in + + Apr. 03, 1995 Michael Mehlich fp-exp.sty V0.7e + added some % at end of lines not to introduce unwanted spaces + + Apr. 03, 1995 Michael Mehlich fp-upn.sty V2.1b + fp-eval.sty V0.9a + added support of sgn + + Apr. 03, 1995 Michael Mehlich fp-basic.sty V1.2a + added new command \FPsgn + + Apr. 02, 1995 Michael Mehlich fp-exp.sty V0.7d + bug corrected, power of 0 by f # 0 now is 0 and no longer + leads to an error message + + Apr. 02, 1995 Michael Mehlich fp.sty V0.8 + added fp-eval.sty to list of required packages + + Apr. 02, 1995 Michael Mehlich fp-upn.sty V2.1a + some modifications to work with fp-eval.sty + + Apr. 02, 1995 Michael Mehlich fp-eval.sty V0.9 + inital version + + Mar. 15, 1995 Michael Mehlich fp.sty V0.7a + added fp-addons.sty, fp-eqn.sty to list of required packages + + Mar. 15, 1995 Michael Mehlich fp-eqn.sty V0.2 + initial version + + Mar. 15, 1995 Michael Mehlich fp-exp.sty V0.7c + bug corrected, root of 0 now is 0 and no longer leads to + an error message + + Mar. 15, 1995 Michael Mehlich fp-upn.sty V2.1 + allow macros to be given without \ and {} surrounding + support of min, max added + + Mar. 15, 1995 Michael Mehlich fp-addons.sty V0.1 + initial version + + Feb. 23, 1995 Denis Girou fp-random.sty V1.0a + more elaborated comments + + Feb. 21, 1995 Michael Mehlich fp-trigo.sty V0.9b + corrected overflow test for arcsin and arccos + + Feb. 18, 1995 Michael Mehlich fp-upn.sty V2.0 + added debug messages for fp-upn.sty + (recommended by Denis Girou) + + Feb. 18, 1995 Michael Mehlich fp.sty V0.7 + added fp-random.sty to list of required packages + + Feb. 18, 1995 Michael Mehlich fp-basic.sty V1.2 + printing fp-messages is conditional only (default: true) + introduced macro for printing debug messages (default: do not print) + (recommmended by Denis Girou) + + Feb. 18, 1995 Michael Mehlich fp-exp.sty V0.7c + corrected bugs in \FP@pow and \FP@root writing messages to + ordinary text + (reported by Denis Girou) + + Feb. 17, 1995 Denis Girou fp-random.sty V1.0 + introduced + + Feb. 17, 1995 Michael Mehlich fp-basic.sty V1.1f + corrected \FP@strip introduced in version V1.1e + as it has to but did not hande + and - + + Feb. 17, 1995 Michael Mehlich fp-basic.sty V1.1e + corrected \FP@strip introduced in version V1.1d + as it has to but did not hande empty parameters + + Feb. 17, 1995 Michael Mehlich fp-basic.sty V1.1d + bug in scanning numbers by \FP@readvalue in connection + with number-macros of \FPupn corrected + (thanks for Denis Girou reporting this bug) + + Nov. 19, 1994 Michael Mehlich fp.sty V0.6 + package date changed + + Nov. 19, 1994 Michael Mehlich fp-basic.sty V1.1c + bug in \FP@correctintcounter corrected + + Nov. 19, 1994 Michael Mehlich fp-upn.sty V1.1 + handling of arctan, arccot, arctancot added + + Nov. 19, 1994 Michael Mehlich fp-trigo.sty V0.9a + \FParctan, \FParccot, \FParctancot added + + Oct. 27, 1994 Michael Mehlich lfp.sty - + introduced + + Oct. 27, 1994 Michael Mehlich fp.tex - + introduced + + Oct. 15, 1994 Michael Mehlich readme.fp - + this history changed for better readability + + Oct. 15, 1994 Michael Mehlich fp-exp.sty V0.7b + subtraction bug in \FP@@exp corrected + + Oct. 15, 1994 Michael Mehlich fp-basic.sty V1.1b + subtraction in \FP@counttimes changed + + Oct. 15, 1994 Michael Mehlich fp-trigo.sty V0.7b + error message, if \FP@modtwopi does not lead to correct result + (this shouldn't be possible) + subtraction in \FP@@cos corrected + + Oct. 12, 1994 Michael Mehlich fp.sty V0.5b + prevent files included from sending messages + + Oct. 12, 1994 Michael Mehlich readme.fp - + changed entry for defpattern.sty in this history to reflect + original source for defpattern.sty + + Oct. 12, 1994 Michael Mehlich defpattern.sty - + source notice in message corrected + + Oct. 12, 1994 Michael Mehlich fp-exp.sty - + start message for \FPpow changed + + Oct. 12, 1994 Michael Mehlich fp-trigo.sty - + unnecessary \typeout removed + + Oct. 3, 1994 Michael Mehlich, fp.sty V0.5 + additional styles included by fp.sty + + Oct. 3, 1994 Michael Mehlich fp-upn.sty V1.0 + first version + + Oct. 3, 1994 Michael Mehlich defpattern.sty - + modification of the \howto-macro in TeX and TUG NEWS + from an article by Alan Jeffrey + no version number, no copyright (public domain) + TeX and TUG News 2(2) writes in the section "Mission Statement": + "The entire contents of this newsletter are being placed in + the public domain." + + Oct. 3, 1994 Michael Mehlich fp-basic.sty V1.1 + bug in \FPadd corrected + + Aug. 29, 1994 Michael Mehlich fp.sty V0.3 + additional styles included by fp.sty + + Aug. 29, 1994 Michael Mehlich fp-trigo.sty V0.7 + first version + + Aug. 29, 1994 Michael Mehlich fp-pas.sty V1.0 + first version + + Aug. 29, 1994 Michael Mehlich fp-exp.sty V0.7 + first version + + Aug. 12, 1994 Michael Mehlich fp.sty V0.2 + first version + + Aug. 10, 1994 Michael Mehlich fp-snap.sty V1.0 + first version + + Apr. 20, 1994 Michael Mehlich fp-basic.sty V1.0 + \FPabs added + + Apr. 12, 1994 Michael Mehlich fp-basic.sty V0.99 + division algorithm added + + Feb. 03, 1994 Michael Mehlich fp-basic.sty V0.8 + all macros are completely rewritten to be able to use an increased + range of numbers + + Jan. 18, 1994 Michael Mehlich fp-basic.sty V0.2 + bug in \FP@store corrected + + Jan. 17, 1994 Michael Mehlich fp-basic.sty V0.1 + the file realcalc.tex V1.0, (C) Frank Buchholz has been renamed to + fp-basic.sty V0.1 with all macros renamed, \@trunc removed + +COPYING: + - Permission to use, copy, modify, and distribute this software and its + documentation for any purpose and without fee is hereby granted, + provided that the above copyright notice, the above history with your + modifications added, and this permission notice appear in all copies + and modified versions. + - The copyright holder disclaim all warranties with regard to this + software, including all implied warranties of merchantability and + fitness, in no event shall the copyright holder be liable for any + special, indirect or consequential damages or any damages whatsoever + resulting from loss of use, data or profits, whether in an action of + contract, negligence or other tortious action, arising out of or in + connection with the use or performance of this software. diff --git a/Master/texmf-dist/doc/latex/fp/fp.tex b/Master/texmf-dist/doc/latex/fp/fp.tex new file mode 100644 index 00000000000..39f62d60b38 --- /dev/null +++ b/Master/texmf-dist/doc/latex/fp/fp.tex @@ -0,0 +1,49 @@ +%load the fp-package for TeX +\chardef\FPcatamp=\the\catcode`\@ +\catcode`@=11 + +\def\NeedsTeXFormat#1{} +\def\ProvidesPackage#1[#2]{} +\def\DeclareOption#1#2{} +\let\ProcessOptions\relax + +%the for-loop of latex2e +\def\@nnil{\@nil} +\def\@empty{} +\def\@fornoop#1\@@#2#3{} + +\def\@for#1:=#2\do#3{\edef\@fortmp{#2}\ifx\@fortmp\@empty \else + \expandafter\@forloop#2,\@nil,\@nil\@@#1{#3}\fi} + +\def\@forloop#1,#2,#3\@@#4#5{\def#4{#1}\ifx #4\@nnil \else + #5\def#4{#2}\ifx #4\@nnil \else#5\@iforloop #3\@@#4{#5}\fi\fi} + +\def\@iforloop#1,#2\@@#3#4{\def#3{#1}\ifx #3\@nnil + \let\@nextwhile\@fornoop \else + #4\relax\let\@nextwhile\@iforloop\fi\@nextwhile#2\@@#3{#4}} + +\edef\FP@loadedfiles{fp.tex} + +\def\FP@alreadyloaded#1{} +\def\FP@notyetloaded#1{ + \edef\FP@loadedfiles{\FP@loadedfiles,#1} + \input #1.sty +} +\def\RequirePackage#1{% + \let\FP@in@\FP@notyetloaded% + \edef\@tempb{#1}% + \@for\@tempa:=\FP@loadedfiles\do{% + \ifx\@tempa\@tempb% + \let\FP@in@\FP@alreadyloaded% + \fi% + }% + \FP@in@{#1}% +} + +\def\loop#1\repeat{\def\iterate{#1\relax\expandafter\iterate\fi}% + \iterate \let\iterate\relax} +\let\repeat=\fi + +\RequirePackage{fp} + +\catcode`\@=\FPcatamp |