summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/fp
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/latex/fp')
-rw-r--r--Master/texmf-dist/doc/latex/fp/README459
-rw-r--r--Master/texmf-dist/doc/latex/fp/fp.tex49
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