summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryfixedpointarithmetic.code.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryfixedpointarithmetic.code.tex')
-rw-r--r--Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryfixedpointarithmetic.code.tex881
1 files changed, 450 insertions, 431 deletions
diff --git a/Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryfixedpointarithmetic.code.tex b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryfixedpointarithmetic.code.tex
index 50a7521f826..b860192f45c 100644
--- a/Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryfixedpointarithmetic.code.tex
+++ b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryfixedpointarithmetic.code.tex
@@ -9,131 +9,132 @@
\pgfkeys{/pgf/.cd,
- fixed point arithmetic/.code={%
- \pgfmathfp@plots@install%
- \pgfmathfp@parser@install%
- \let\pgfmathparse=\pgfmathfpparse%
- \pgfkeys{/pgf/fixed point/.cd, #1}%
- },%
- fixed point/.cd,
- scale results/.code={%
- \pgfmathfpparse{#1}%
- \let\pgfmathfpscale=\pgfmathresult%
- }%
-}
-
-\def\pgfmathfpscale{1}
+ fixed point arithmetic/.code={%
+ \pgfmathfp@plots@install%
+ \pgfmathfp@parser@install%
+ \let\pgfmathparse=\pgfmathfpparse%
+ \pgfkeys{/pgf/fixed point/.cd, #1}%
+ },%
+ fixed point/.cd,
+ scale results/.code={%
+ \pgfmathfpparse{#1}%
+ \let\pgfmathfpscale=\pgfmathresult%
+ }%
+}%
+
+\def\pgfmathfpscale{1}%
\def\pgfmathfpparse{%
- \begingroup%
- \let\pgfmathpostparse=\relax%
- \pgfmath@catcodes%
- \pgfmath@quickparsefalse%
- \pgfmathfpparse@}
+ \begingroup%
+ \let\pgfmathpostparse=\relax%
+ \pgfmath@catcodes%
+ \pgfmath@quickparsefalse%
+ \pgfmathfpparse@}%
\def\pgfmathfpparse@#1{%
- \edef\pgfmathfp@expression{#1}%
- \expandafter\pgfmathfpparse@@\pgfmathfp@expression\pgfmathfp@}
+ \edef\pgfmathfp@expression{#1}%
+ \expandafter\pgfmathfpparse@@\pgfmathfp@expression\pgfmathfp@}%
-\def\pgfmathfp@char@asterisk{*}
+\def\pgfmathfp@char@asterisk{*}%
\def\pgfmathfpparse@@#1#2\pgfmathfp@{%
- \def\pgfmathfp@test{#1}%
- \ifx\pgfmathfp@test\pgfmathfp@char@asterisk%
- \edef\pgfmathfp@expression{\pgfmathfpscale#1#2}%
- \else%
- \edef\pgfmathfp@expression{#1#2}%
- \fi%
- \expandafter\pgfmathparse@\expandafter{\pgfmathfp@expression}%
- % \endgroup provided by \pgfpathmarse@end
-}
+ \def\pgfmathfp@test{#1}%
+ \ifx\pgfmathfp@test\pgfmathfp@char@asterisk%
+ \edef\pgfmathfp@expression{\pgfmathfpscale#1#2}%
+ \else%
+ \edef\pgfmathfp@expression{#1#2}%
+ \fi%
+ \expandafter\pgfmathparse@\expandafter{\pgfmathfp@expression}%
+ % \endgroup provided by \pgfpathmarse@end
+}%
% Crude handling of file plots
%
\pgfkeys{/pgf/fixed point/.cd,
scale file plot x/.code=\pgfmathfpparse{#1}\edef\pgfmathfpplotscalex{\pgfmathresult*},
scale file plot y/.code=\pgfmathfpparse{#1}\edef\pgfmathfpplotscaley{\pgfmathresult*},
- scale file plot z/.code=\pgfmathfpparse{#1}\edef\pgfmathfpplotscalez{\pgfmathresult*}
-}
+ scale file plot z/.code=\pgfmathfpparse{#1}\edef\pgfmathfpplotscalez{\pgfmathresult*},
+}%
\def\pgfmathfp@plots@install{%
- \let\pgfmathfpplotscalex=\pgfutil@empty
- \let\pgfmathfpplotscaley=\pgfutil@empty
- \let\pgfmathfpplotscalez=\pgfutil@empty
- \let\pgf@parsexyline=\pgfmathfp@parsexyline%
- \let\pgf@parsexyzline=\pgfmathfp@parsexyzline%
-}
+ \let\pgfmathfpplotscalex=\pgfutil@empty
+ \let\pgfmathfpplotscaley=\pgfutil@empty
+ \let\pgfmathfpplotscalez=\pgfutil@empty
+ \let\pgf@parsexyline=\pgfmathfp@parsexyline%
+ \let\pgf@parsexyzline=\pgfmathfp@parsexyzline%
+}%
\def\pgfmathfp@parsexyline#1 #2 #3\pgf@stop{%
- \edef\pgfmathfp@marshal{%
- \noexpand\pgfplotstreampoint{\noexpand\pgfpointxy{\pgfmathfpplotscalex#1}{\pgfmathfpplotscaley#2}}%
- }%
- \pgfmathfp@marshal%
-}
+ \edef\pgfmathfp@marshal{%
+ \noexpand\pgfplotstreampoint{\noexpand\pgfpointxy{\pgfmathfpplotscalex#1}{\pgfmathfpplotscaley#2}}%
+ }%
+ \pgfmathfp@marshal%
+}%
\def\pgfmathfp@parsexyzline#1 #2 #3 #4\pgf@stop{%
- \edef\pgfmathfp@marshal{%
- \noexpand\pgfplotstreampoint{%
- \noexpand\pgfpointxyz{\pgfmathfpplotscalex#1}{\pgfmathfpplotscaley#2}{\pgfmathfpplotscalez#3}%
- }%
- }%
- \pgfmathfp@marshal%
-}
-
-%
+ \edef\pgfmathfp@marshal{%
+ \noexpand\pgfplotstreampoint{%
+ \noexpand\pgfpointxyz{\pgfmathfpplotscalex#1}{\pgfmathfpplotscaley#2}{\pgfmathfpplotscalez#3}%
+ }%
+ }%
+ \pgfmathfp@marshal%
+}%
+
+%
\def\pgfmathfp@parser@install{%
- %
- \expandafter\ifx\csname FP@version\endcsname\relax%
- \pgferror{You need to say `\string\usepackage{fp}' to use %
- fixed point arithmetic}%
- \else%
- %
- % Don't want messages.
- %
- \FPmessagesfalse%
- \FPdebugfalse%
- %
- % Install float commands...
- %
- \let\pgfmathadd@=\pgfmathfpadd@%
- \let\pgfmathsubtract@=\pgfmathfpsubtract@%
- \let\pgfmathmultiply@=\pgfmathfpmultiply@%
- \let\pgfmathdivide@=\pgfmathfpdivide@%
- \let\pgfmathabs@=\pgfmathfpabs@%
- \let\pgfmathround@=\pgfmathfpround@%
- \let\pgfmathfloor@=\pgfmathfpfloor@%
- \let\pgfmathceil@=\pgfmathfpceil@%
- \let\pgfmathmod@=\pgfmathfpmod@%
- \let\pgfmathmax@=\pgfmathfpmax@%
- \let\pgfmathmin@=\pgfmathfpmin@%
- \let\pgfmathsin@=\pgfmathfpsin@%
- \let\pgfmathcos@=\pgfmathfpcos@%
- \let\pgfmathtan@=\pgfmathfptan@%
- \let\pgfmathdeg@=\pgfmathfpdeg@%
- \let\pgfmathrad@=\pgfmathfprad@%
- \let\pgfmathatan@=\pgfmathfpatan@%
- \let\pgfmathasin@=\pgfmathfpasin@%
- \let\pgfmathacos@=\pgfmathfpacos@%
- \let\pgfmathcot@=\pgfmathfpcot@%
- \let\pgfmathsec@=\pgfmathfpsec@%
- \let\pgfmathcosec@=\pgfmathfpcosec@%
- \let\pgfmathpow@=\pgfmathfppow@%
- \let\pgfmathexp@=\pgfmathfpexp@%
- \let\pgfmathln@=\pgfmathfpln@%
- \let\pgfmathsqrt@=\pgfmathfpsqrt@%
- \let\pgfmath@pi=\pgfmathfppi@%
- \let\pgfmathveclen@=\pgfmathfpveclen@%
- \let\pgfmathe@=\pgfmathfpe@%
- %
- \let\pgfmathlessthan@=\pgfmathfplessthan@%
- \let\pgfmathgreaterthan@=\pgfmathfpgreaterthan@%
- \let\pgfmathequalto@=\pgfmathfpequalto@%
- %
- \let\pgfmathrnd=\pgfmathfprnd%
- \let\pgfmathrand=\pgfmathfprand%
- \let\pgfmathsetseed=\pgfmathfpsetseed%
- %
- \let\pgfmathscientific=\pgfmathfpscientific%
- \fi%
+ %
+ \expandafter\ifx\csname FP@version\endcsname\relax%
+ \pgferror{You need to say `\string\usepackage{fp}' to use %
+ fixed point arithmetic}%
+ \else%
+ %
+ % Don't want messages.
+ %
+ \FPmessagesfalse%
+ \FPdebugfalse%
+ %
+ % Install float commands...
+ %
+ \let\pgfmathadd@=\pgfmathfpadd@%
+ \let\pgfmathsubtract@=\pgfmathfpsubtract@%
+ \let\pgfmathmultiply@=\pgfmathfpmultiply@%
+ \let\pgfmathdivide@=\pgfmathfpdivide@%
+ \let\pgfmathabs@=\pgfmathfpabs@%
+ \let\pgfmathneg@=\pgfmathfpneg@%
+ \let\pgfmathround@=\pgfmathfpround@%
+ \let\pgfmathfloor@=\pgfmathfpfloor@%
+ \let\pgfmathceil@=\pgfmathfpceil@%
+ \let\pgfmathmod@=\pgfmathfpmod@%
+ \let\pgfmathmax@=\pgfmathfpmax@%
+ \let\pgfmathmin@=\pgfmathfpmin@%
+ \let\pgfmathsin@=\pgfmathfpsin@%
+ \let\pgfmathcos@=\pgfmathfpcos@%
+ \let\pgfmathtan@=\pgfmathfptan@%
+ \let\pgfmathdeg@=\pgfmathfpdeg@%
+ \let\pgfmathrad@=\pgfmathfprad@%
+ \let\pgfmathatan@=\pgfmathfpatan@%
+ \let\pgfmathasin@=\pgfmathfpasin@%
+ \let\pgfmathacos@=\pgfmathfpacos@%
+ \let\pgfmathcot@=\pgfmathfpcot@%
+ \let\pgfmathsec@=\pgfmathfpsec@%
+ \let\pgfmathcosec@=\pgfmathfpcosec@%
+ \let\pgfmathpow@=\pgfmathfppow@%
+ \let\pgfmathexp@=\pgfmathfpexp@%
+ \let\pgfmathln@=\pgfmathfpln@%
+ \let\pgfmathsqrt@=\pgfmathfpsqrt@%
+ \let\pgfmath@pi=\pgfmathfppi@%
+ \let\pgfmathveclen@=\pgfmathfpveclen@%
+ \let\pgfmathe@=\pgfmathfpe@%
+ %
+ \let\pgfmathlessthan@=\pgfmathfplessthan@%
+ \let\pgfmathgreaterthan@=\pgfmathfpgreaterthan@%
+ \let\pgfmathequalto@=\pgfmathfpequalto@%
+ %
+ \let\pgfmathrnd=\pgfmathfprnd%
+ \let\pgfmathrand=\pgfmathfprand%
+ \let\pgfmathsetseed=\pgfmathfpsetseed%
+ %
+ \let\pgfmathscientific=\pgfmathfpscientific%
+ \fi%
}%
\def\pgfmathfpe@{let\pgfmathresult=\FPe}%
@@ -143,495 +144,513 @@
% Scientific notation.
\def\pgfmathfpscientific#1#2{%
- \begingroup%
- \FPpow\pgfmathresult{10}{#2}\unskip% Needed.
- \FPmul\pgfmathresult{#1}{\pgfmathresult}%
- \pgfmath@smuggleone\pgfmathresult%
- \endgroup%
-}
+ \begingroup%
+ \FPpow\pgfmathresult{10}{#2}\unskip% Needed.
+ \FPmul\pgfmathresult{#1}{\pgfmathresult}%
+ \pgfmath@smuggleone\pgfmathresult%
+ \endgroup%
+}%
% Comparison stuff...
% lessthan
%
\def\pgfmathfplessthan#1#2{%
- \pgfmathfpparse{#2}\let\pgfmath@result=\pgfmathresult%
- \pgfmathfpparse{#1}%
- \pgfmathfplessthan@{\pgfmathresult}{\pgfmath@result}%
-}
+ \pgfmathfpparse{#2}\let\pgfmath@result=\pgfmathresult%
+ \pgfmathfpparse{#1}%
+ \pgfmathfplessthan@{\pgfmathresult}{\pgfmath@result}%
+}%
\def\pgfmathfplessthan@#1#2{%
- \begingroup%
- \FPiflt{#1}{#2}%
- \def\pgfmathresult{1.0}%
- \else%
- \def\pgfmathresult{0.0}%
- \fi%
- \pgfmath@smuggleone\pgfmathresult%
- \endgroup%
-}
+ \begingroup%
+ \FPiflt{#1}{#2}%
+ \def\pgfmathresult{1.0}%
+ \else%
+ \def\pgfmathresult{0.0}%
+ \fi%
+ \pgfmath@smuggleone\pgfmathresult%
+ \endgroup%
+}%
% greaterthan
%
\def\pgfmathfpgreaterthan#1#2{%
- \pgfmathfpparse{#2}\let\pgfmath@result=\pgfmathresult%
- \pgfmathfpparse{#1}%
- \pgfmathfpgreaterthan@{\pgfmathresult}{\pgfmath@result}%
-}
+ \pgfmathfpparse{#2}\let\pgfmath@result=\pgfmathresult%
+ \pgfmathfpparse{#1}%
+ \pgfmathfpgreaterthan@{\pgfmathresult}{\pgfmath@result}%
+}%
\def\pgfmathfpgreaterthan@#1#2{%
- \begingroup%
- \FPifgt{#1}{#2}%
- \def\pgfmathresult{1.0}%
- \else%
- \def\pgfmathresult{0.0}%
- \fi%
- \pgfmath@smuggleone\pgfmathresult%
- \endgroup%
-}
+ \begingroup%
+ \FPifgt{#1}{#2}%
+ \def\pgfmathresult{1.0}%
+ \else%
+ \def\pgfmathresult{0.0}%
+ \fi%
+ \pgfmath@smuggleone\pgfmathresult%
+ \endgroup%
+}%
% equalto
%
\def\pgfmathfpequalto#1#2{%
- \pgfmathfpparse{#2}\let\pgfmath@result=\pgfmathresult%
- \pgfmathfpparse{#1}%
- \pgfmathfpequalto@{\pgfmathresult}{\pgfmath@result}%
-}
+ \pgfmathfpparse{#2}\let\pgfmath@result=\pgfmathresult%
+ \pgfmathfpparse{#1}%
+ \pgfmathfpequalto@{\pgfmathresult}{\pgfmath@result}%
+}%
\def\pgfmathfpequalto@#1#2{%
- \begingroup%
- \FPifeq{#1}{#2}%
- \def\pgfmathresult{1.0}%
- \else%
- \def\pgfmathresult{0.0}%
- \fi%
- \pgfmath@smuggleone\pgfmathresult%
- \endgroup%
-}
-
-
+ \begingroup%
+ \FPifeq{#1}{#2}%
+ \def\pgfmathresult{1.0}%
+ \else%
+ \def\pgfmathresult{0.0}%
+ \fi%
+ \pgfmath@smuggleone\pgfmathresult%
+ \endgroup%
+}%
+
+
% Basic arithmetic stuff...
% add
%
\def\pgfmathfpadd#1#2{%
- \pgfmathfpparse{#2}\let\pgfmath@result=\pgfmathresult%
- \pgfmathfpparse{#1}%
- \pgfmathfpadd@{\pgfmathresult}{\pgfmath@result}%
-}
+ \pgfmathfpparse{#2}\let\pgfmath@result=\pgfmathresult%
+ \pgfmathfpparse{#1}%
+ \pgfmathfpadd@{\pgfmathresult}{\pgfmath@result}%
+}%
\def\pgfmathfpadd@#1#2{%
- \begingroup%
- \FPadd\pgfmathresult{#1}{#2}%
- \pgfmath@smuggleone\pgfmathresult%
- \endgroup%
-}
+ \begingroup%
+ \FPadd\pgfmathresult{#1}{#2}%
+ \pgfmath@smuggleone\pgfmathresult%
+ \endgroup%
+}%
% subtract
%
\def\pgfmathfpsubtract#1#2{%
- \pgfmathfpparse{#2}\let\pgfmath@result=\pgfmathresult%
- \pgfmathfpparse{#1}%
- \pgfmathfpsubtract@{\pgfmathresult}{\pgfmath@result}%
-}
+ \pgfmathfpparse{#2}\let\pgfmath@result=\pgfmathresult%
+ \pgfmathfpparse{#1}%
+ \pgfmathfpsubtract@{\pgfmathresult}{\pgfmath@result}%
+}%
\def\pgfmathfpsubtract@#1#2{%
- \begingroup%
- \FPsub\pgfmathresult{#1}{#2}%
- \pgfmath@smuggleone\pgfmathresult%
- \endgroup%
-}
+ \begingroup%
+ \FPsub\pgfmathresult{#1}{#2}%
+ \pgfmath@smuggleone\pgfmathresult%
+ \endgroup%
+}%
% multiply
%
\def\pgfmathfpmultiply#1#2{%
- \pgfmathfpparse{#2}\let\pgfmath@result=\pgfmathresult%
- \pgfmathfpparse{#1}%
- \pgfmathfpmultiply@{\pgfmathresult}{\pgfmath@result}%
-}
+ \pgfmathfpparse{#2}\let\pgfmath@result=\pgfmathresult%
+ \pgfmathfpparse{#1}%
+ \pgfmathfpmultiply@{\pgfmathresult}{\pgfmath@result}%
+}%
\def\pgfmathfpmultiply@#1#2{%
- \begingroup%
- \FPmul\pgfmathresult{#1}{#2}%
- \pgfmath@smuggleone\pgfmathresult%
- \endgroup%
-}
+ \begingroup%
+ \FPmul\pgfmathresult{#1}{#2}%
+ \pgfmath@smuggleone\pgfmathresult%
+ \endgroup%
+}%
% divide
%
\def\pgfmathfpdivide#1#2{%
- \pgfmathfpparse{#2}\let\pgfmath@result=\pgfmathresult%
- \pgfmathfpparse{#1}%
- \pgfmathfpdivide@{\pgfmathresult}{\pgfmath@result}%
-}
+ \pgfmathfpparse{#2}\let\pgfmath@result=\pgfmathresult%
+ \pgfmathfpparse{#1}%
+ \pgfmathfpdivide@{\pgfmathresult}{\pgfmath@result}%
+}%
\def\pgfmathfpdivide@#1#2{%
- \begingroup%
- \FPdiv\pgfmathresult{#1}{#2}%
- \pgfmath@smuggleone\pgfmathresult%
- \endgroup%
-}
+ \begingroup%
+ \FPdiv\pgfmathresult{#1}{#2}%
+ \pgfmath@smuggleone\pgfmathresult%
+ \endgroup%
+}%
% abs
%
\def\pgfmathfpabs#1{%
- \pgfmathfpparse{#1}%
- \pgfmathfpabs@{\pgfmathresult}%
-}
+ \pgfmathfpparse{#1}%
+ \pgfmathfpabs@{\pgfmathresult}%
+}%
\def\pgfmathfpabs@#1{%
- \begingroup%
- \FPabs\pgfmathresult{#1}%
- \pgfmath@smuggleone\pgfmathresult%
- \endgroup%
-}
+ \begingroup%
+ \FPabs\pgfmathresult{#1}%
+ \pgfmath@smuggleone\pgfmathresult%
+ \endgroup%
+}%
+
+% neg
+%
+\def\pgfmathfpneg#1{%
+ \pgfmathfpparse{#1}%
+ \pgfmathfpneg@{\pgfmathresult}%
+}%
+\def\pgfmathfpneg@#1{%
+ \begingroup%
+ \FPneg\pgfmathresult{#1}%
+ \pgfmath@smuggleone\pgfmathresult
+ \endgroup%
+}%
% round
%
\def\pgfmathfpround#1{%
- \pgfmathfpparse{#1}%
- \pgfmathfpround@{\pgfmathresult}%
-}
+ \pgfmathfpparse{#1}%
+ \pgfmathfpround@{\pgfmathresult}%
+}%
\def\pgfmathfpround@#1{%
- \begingroup%
- \FPround\pgfmathresult{#1}{0}%
- \edef\pgfmathresult{\pgfmathresult.0}%
- \pgfmath@smuggleone\pgfmathresult%
- \endgroup%
-}
+ \begingroup%
+ \FPround\pgfmathresult{#1}{0}%
+ \edef\pgfmathresult{\pgfmathresult.0}%
+ \pgfmath@smuggleone\pgfmathresult%
+ \endgroup%
+}%
% floor
%
\def\pgfmathfpfloor#1{%
- \pgfmathfpparse{#1}%
- \pgfmathfpfloor@{\pgfmathresult}%
-}
+ \pgfmathfpparse{#1}%
+ \pgfmathfpfloor@{\pgfmathresult}%
+}%
\def\pgfmathfpfloor@#1{%
- \begingroup%
- \FPtrunc\pgfmathresult{#1}{0}%
- \FPifneg{#1}%
- \FPsub\pgfmathresult{\pgfmathresult}{1}%
- \fi%
- \edef\pgfmathresult{\pgfmathresult.0}%
- \pgfmath@smuggleone\pgfmathresult%
- \endgroup%
-}
+ \begingroup%
+ \FPtrunc\pgfmathresult{#1}{0}%
+ \FPifneg{#1}%
+ \FPsub\pgfmathresult{\pgfmathresult}{1}%
+ \fi%
+ \edef\pgfmathresult{\pgfmathresult.0}%
+ \pgfmath@smuggleone\pgfmathresult%
+ \endgroup%
+}%
% ceil
%
\def\pgfmathfpceil#1{%
- \pgfmathfpparse{#1}%
- \pgfmathfpceil@{\pgfmathresult}%
-}
+ \pgfmathfpparse{#1}%
+ \pgfmathfpceil@{\pgfmathresult}%
+}%
\def\pgfmathfpceil@#1{%
- \begingroup%
- \FPtrunc\pgfmathresult{#1}{0}%
- \FPifpos{#1}%
- \FPadd\pgfmathresult{\pgfmathresult}{1}%
- \fi%
- \edef\pgfmathresult{\pgfmathresult.0}%
- \pgfmath@smuggleone\pgfmathresult%
- \endgroup%
-}
+ \begingroup%
+ \FPtrunc\pgfmathresult{#1}{0}%
+ \FPifpos{#1}%
+ \FPadd\pgfmathresult{\pgfmathresult}{1}%
+ \fi%
+ \edef\pgfmathresult{\pgfmathresult.0}%
+ \pgfmath@smuggleone\pgfmathresult%
+ \endgroup%
+}%
% mod
%
\def\pgfmathfpmod#1#2{%
- \pgfmathfpparse{#2}\let\pgfmath@result=\pgfmathresult%
- \pgfmathfpparse{#1}%
- \pgfmathfpmod@{\pgfmathresult}{\pgfmath@result}%
-}
+ \pgfmathfpparse{#2}\let\pgfmath@result=\pgfmathresult%
+ \pgfmathfpparse{#1}%
+ \pgfmathfpmod@{\pgfmathresult}{\pgfmath@result}%
+}%
\def\pgfmathfpmod@#1#2{%
- \begingroup%
- \FPdiv\pgfmathresult{#1}{#2}%
- \FPtrunc\pgfmathresult{\pgfmathresult}{0}%
- \FPmul\pgfmathresult{\pgfmathresult}{#2}%
- \FPsub\pgfmathresult{#1}{\pgfmathresult}%
- \pgfmath@smuggleone\pgfmathresult%
- \endgroup%
-}
+ \begingroup%
+ \FPdiv\pgfmathresult{#1}{#2}%
+ \FPtrunc\pgfmathresult{\pgfmathresult}{0}%
+ \FPmul\pgfmathresult{\pgfmathresult}{#2}%
+ \FPsub\pgfmathresult{#1}{\pgfmathresult}%
+ \pgfmath@smuggleone\pgfmathresult%
+ \endgroup%
+}%
% max
%
\def\pgfmathfpmax#1#2{%
- \pgfmathfpparse{#2}\let\pgfmath@result=\pgfmathresult%
- \pgfmathfpparse{#1}%
- \pgfmathfpmax@{\pgfmathresult}{\pgfmath@result}%
-}
-\def\pgfmathfpmax@#1#2{%
- \begingroup%
- \FPifgt{#1}{#2}%
- \def\pgfmathresult{#1}%
- \else%
- \def\pgfmathresult{#2}%
- \fi%
- \pgfmath@smuggleone\pgfmathresult%
- \endgroup%
-}
+ \pgfmathfpparse{#2}\let\pgfmath@result=\pgfmathresult%
+ \pgfmathfpparse{#1}%
+ \pgfmathfpmax@@{\pgfmathresult}{\pgfmath@result}%
+}%
+\def\pgfmathfpmax@#1{%
+ \pgfmathfpmax@@#1%
+}%
+\def\pgfmathfpmax@@#1#2{%
+ \begingroup%
+ \FPifgt{#1}{#2}%
+ \def\pgfmathresult{#1}%
+ \else%
+ \def\pgfmathresult{#2}%
+ \fi%
+ \pgfmath@smuggleone\pgfmathresult%
+ \endgroup%
+}%
% min
%
\def\pgfmathfpmin#1#2{%
- \pgfmathfpparse{#2}\let\pgfmath@result=\pgfmathresult%
- \pgfmathfpparse{#1}%
- \pgfmathfpmin@{\pgfmathresult}{\pgfmath@result}%
-}
-\def\pgfmathfpmin@#1#2{%
- \begingroup%
- \FPiflt{#1}{#2}%
- \def\pgfmathresult{#1}%
- \else%
- \def\pgfmathresult{#2}%
- \fi%
- \pgfmath@smuggleone\pgfmathresult%
- \endgroup%
-}
+ \pgfmathfpparse{#2}\let\pgfmath@result=\pgfmathresult%
+ \pgfmathfpparse{#1}%
+ \pgfmathfpmin@@{\pgfmathresult}{\pgfmath@result}%
+}%
+\def\pgfmathfpmin@#1{%
+ \pgfmathfpmin@@#1%
+}%
+\def\pgfmathfpmin@@#1#2{%
+ \begingroup%
+ \FPiflt{#1}{#2}%
+ \def\pgfmathresult{#1}%
+ \else%
+ \def\pgfmathresult{#2}%
+ \fi%
+ \pgfmath@smuggleone\pgfmathresult%
+ \endgroup%
+}%
% Functions...
% pow
%
\def\pgfmathfppow#1#2{%
- \pgfmathfpparse{#2}\let\pgfmath@result=\pgfmathresult%
- \pgfmathfpparse{#1}%
- \pgfmathfppow@{\pgfmathresult}{\pgfmath@result}%
-}
+ \pgfmathfpparse{#2}\let\pgfmath@result=\pgfmathresult%
+ \pgfmathfpparse{#1}%
+ \pgfmathfppow@{\pgfmathresult}{\pgfmath@result}%
+}%
\def\pgfmathfppow@#1#2{%
- \begingroup%
- \FPpow\pgfmathresult{#1}{#2}\unskip%
- \pgfmath@smuggleone\pgfmathresult%
- \endgroup%
-}
+ \begingroup%
+ \FPpow\pgfmathresult{#1}{#2}\unskip%
+ \pgfmath@smuggleone\pgfmathresult%
+ \endgroup%
+}%
% exp
%
\def\pgfmathfpexp#1{%
- \pgfmathfpparse{#1}%
- \pgfmathfpexp@{\pgfmathresult}%
-}
+ \pgfmathfpparse{#1}%
+ \pgfmathfpexp@{\pgfmathresult}%
+}%
\def\pgfmathfpexp@#1{%
- \begingroup%
- \FPexp\pgfmathresult{#1}%
- \pgfmath@smuggleone\pgfmathresult%
- \endgroup%
-}
+ \begingroup%
+ \FPexp\pgfmathresult{#1}%
+ \pgfmath@smuggleone\pgfmathresult%
+ \endgroup%
+}%
% ln
%
\def\pgfmathfpln#1{%
- \pgfmathfpparse{#1}%
- \pgfmathfpln@{\pgfmathresult}%
-}
+ \pgfmathfpparse{#1}%
+ \pgfmathfpln@{\pgfmathresult}%
+}%
\def\pgfmathfpln@#1{%
- \begingroup%
- \FPln\pgfmathresult{#1}%
- \pgfmath@smuggleone\pgfmathresult%
- \endgroup%
-}
+ \begingroup%
+ \FPln\pgfmathresult{#1}%
+ \pgfmath@smuggleone\pgfmathresult%
+ \endgroup%
+}%
% sqrt
%
\def\pgfmathfpsqrt#1{%
- \pgfmathfpparse{#1}%
- \pgfmathfpsqrt@{\pgfmathresult}%
-}
+ \pgfmathfpparse{#1}%
+ \pgfmathfpsqrt@{\pgfmathresult}%
+}%
\def\pgfmathfpsqrt@#1{%
- \begingroup%
- \FProot\pgfmathresult{#1}{2}%
- \pgfmath@smuggleone\pgfmathresult%
- \endgroup%
-}
+ \begingroup%
+ \FProot\pgfmathresult{#1}{2}%
+ \pgfmath@smuggleone\pgfmathresult%
+ \endgroup%
+}%
% veclen
%
\def\pgfmathfpveclen#1#2{%
- \pgfmathfpparse{#2}\let\pgfmath@result=\pgfmathresult%
- \pgfmathfpparse{#1}%
- \pgfmathfpveclen@{\pgfmathresult}{\pgfmath@result}%
-}
+ \pgfmathfpparse{#2}\let\pgfmath@result=\pgfmathresult%
+ \pgfmathfpparse{#1}%
+ \pgfmathfpveclen@{\pgfmathresult}{\pgfmath@result}%
+}%
\def\pgfmathfpveclen@#1#2{%
- \begingroup%
- \FPmul\pgfmath@result{#1}{#1}%
- \FPmul\pgfmath@@result{#2}{#2}%
- \FPadd\pgfmathresult{\pgfmath@result}{\pgfmath@@result}%
- \FProot\pgfmathresult{\pgfmathresult}{2}%
- \pgfmath@smuggleone\pgfmathresult%
- \endgroup%
-}
+ \begingroup%
+ \FPmul\pgfmath@result{#1}{#1}%
+ \FPmul\pgfmath@@result{#2}{#2}%
+ \FPadd\pgfmathresult{\pgfmath@result}{\pgfmath@@result}%
+ \FProot\pgfmathresult{\pgfmathresult}{2}%
+ \pgfmath@smuggleone\pgfmathresult%
+ \endgroup%
+}%
% Trigonometric stuff...
% sin
%
\def\pgfmathfpsin#1{%
- \pgfmathfpparse{#1}%
- \pgfmathfpsin@{\pgfmathresult}%
-}
+ \pgfmathfpparse{#1}%
+ \pgfmathfpsin@{\pgfmathresult}%
+}%
\def\pgfmathfpsin@#1{%
- \begingroup%
- \FPmul\pgfmathresult{#1}{0.017453292519943295}%
- \FPsin\pgfmathresult{\pgfmathresult}%
- \pgfmath@smuggleone\pgfmathresult%
- \endgroup%
-}
+ \begingroup%
+ \FPmul\pgfmathresult{#1}{0.017453292519943295}%
+ \FPsin\pgfmathresult{\pgfmathresult}%
+ \pgfmath@smuggleone\pgfmathresult%
+ \endgroup%
+}%
% cos
%
\def\pgfmathfpcos#1{%
- \pgfmathfpparse{#1}%
- \pgfmathfpcos@{\pgfmathresult}%
-}
+ \pgfmathfpparse{#1}%
+ \pgfmathfpcos@{\pgfmathresult}%
+}%
\def\pgfmathfpcos@#1{%
- \begingroup%
- \FPmul\pgfmathresult{#1}{0.017453292519943295}%
- \FPcos\pgfmathresult{\pgfmathresult}%
- \pgfmath@smuggleone\pgfmathresult%
- \endgroup%
-}
+ \begingroup%
+ \FPmul\pgfmathresult{#1}{0.017453292519943295}%
+ \FPcos\pgfmathresult{\pgfmathresult}%
+ \pgfmath@smuggleone\pgfmathresult%
+ \endgroup%
+}%
% tan
%
\def\pgfmathfptan#1{%
- \pgfmathfpparse{#1}%
- \pgfmathfptan@{\pgfmathresult}%
-}
+ \pgfmathfpparse{#1}%
+ \pgfmathfptan@{\pgfmathresult}%
+}%
\def\pgfmathfptan@#1{%
- \begingroup%
- \FPmul\pgfmathresult{#1}{0.017453292519943295}%
- \FPtan\pgfmathresult{\pgfmathresult}%
- \pgfmath@smuggleone\pgfmathresult%
- \endgroup%
-}
+ \begingroup%
+ \FPmul\pgfmathresult{#1}{0.017453292519943295}%
+ \FPtan\pgfmathresult{\pgfmathresult}%
+ \pgfmath@smuggleone\pgfmathresult%
+ \endgroup%
+}%
% acos
%
\def\pgfmathfpacos#1{%
- \pgfmathfpparse{#1}%
- \pgfmathfpacos@{\pgfmathresult}%
-}
+ \pgfmathfpparse{#1}%
+ \pgfmathfpacos@{\pgfmathresult}%
+}%
\def\pgfmathfpacos@#1{%
- \begingroup%
- \FParccos\pgfmathresult{#1}%
- \FPmul\pgfmathresult{\pgfmathresult}{57.295779513082320885}%
- \pgfmath@smuggleone\pgfmathresult%
- \endgroup%
-}
+ \begingroup%
+ \FParccos\pgfmathresult{#1}%
+ \FPmul\pgfmathresult{\pgfmathresult}{57.295779513082320885}%
+ \pgfmath@smuggleone\pgfmathresult%
+ \endgroup%
+}%
% asin
%
\def\pgfmathfpasin#1{%
- \pgfmathfpparse{#1}%
- \pgfmathfpasin@{\pgfmathresult}%
-}
+ \pgfmathfpparse{#1}%
+ \pgfmathfpasin@{\pgfmathresult}%
+}%
\def\pgfmathfpasin@#1{%
- \begingroup%
- \FParcsin\pgfmathresult{#1}%
- \FPmul\pgfmathresult{\pgfmathresult}{57.295779513082320885}%
- \pgfmath@smuggleone\pgfmathresult%
- \endgroup%
-}
+ \begingroup%
+ \FParcsin\pgfmathresult{#1}%
+ \FPmul\pgfmathresult{\pgfmathresult}{57.295779513082320885}%
+ \pgfmath@smuggleone\pgfmathresult%
+ \endgroup%
+}%
% atan
%
\def\pgfmathfpatan#1{%
- \pgfmathfpparse{#1}%
- \pgfmathfpatan@{\pgfmathresult}%
-}
+ \pgfmathfpparse{#1}%
+ \pgfmathfpatan@{\pgfmathresult}%
+}%
\def\pgfmathfpatan@#1{%
- \begingroup%
- \FParctan\pgfmathresult{#1}%
- \FPmul\pgfmathresult{\pgfmathresult}{57.295779513082320885}%
- \pgfmath@smuggleone\pgfmathresult%
- \endgroup%
-}
+ \begingroup%
+ \FParctan\pgfmathresult{#1}%
+ \FPmul\pgfmathresult{\pgfmathresult}{57.295779513082320885}%
+ \pgfmath@smuggleone\pgfmathresult%
+ \endgroup%
+}%
% cot
%
\def\pgfmathfpcot#1{%
- \pgfmathfpparse{#1}%
- \pgfmathfpcot@{\pgfmathresult}%
-}
+ \pgfmathfpparse{#1}%
+ \pgfmathfpcot@{\pgfmathresult}%
+}%
\def\pgfmathfpcot@#1{%
- \begingroup%
- \FPmul\pgfmathresult{#1}{0.017453292519943295}%
- \FPcot\pgfmathresult{\pgfmathresult}%
- \pgfmath@smuggleone\pgfmathresult%
- \endgroup%
-}
+ \begingroup%
+ \FPmul\pgfmathresult{#1}{0.017453292519943295}%
+ \FPcot\pgfmathresult{\pgfmathresult}%
+ \pgfmath@smuggleone\pgfmathresult%
+ \endgroup%
+}%
% sec
%
\def\pgfmathfpsec#1{%
- \pgfmathfpparse{#1}%
- \pgfmathfpsec@{\pgfmathresult}%
-}
+ \pgfmathfpparse{#1}%
+ \pgfmathfpsec@{\pgfmathresult}%
+}%
\def\pgfmathfpsec@#1{%
- \begingroup%
- \FPmul\pgfmathresult{#1}{0.017453292519943295}%
- \FPcos\pgfmathresult{\pgfmathresult}%
- \FPdiv\pgfmathresult{1}{\pgfmathresult}%
- \pgfmath@smuggleone\pgfmathresult%
- \endgroup%
-}
+ \begingroup%
+ \FPmul\pgfmathresult{#1}{0.017453292519943295}%
+ \FPcos\pgfmathresult{\pgfmathresult}%
+ \FPdiv\pgfmathresult{1}{\pgfmathresult}%
+ \pgfmath@smuggleone\pgfmathresult%
+ \endgroup%
+}%
% cosec
%
\def\pgfmathfpcosec#1{%
- \pgfmathfpparse{#1}%
- \pgfmathfpcosec@{\pgfmathresult}%
-}
+ \pgfmathfpparse{#1}%
+ \pgfmathfpcosec@{\pgfmathresult}%
+}%
\def\pgfmathfpcosec@#1{%
- \begingroup%
- \FPmul\pgfmathresult{#1}{0.017453292519943295}%
- \FPsin\pgfmathresult{\pgfmathresult}%
- \FPdiv\pgfmathresult{1}{\pgfmathresult}%
- \pgfmath@smuggleone\pgfmathresult%
- \endgroup%
-}
+ \begingroup%
+ \FPmul\pgfmathresult{#1}{0.017453292519943295}%
+ \FPsin\pgfmathresult{\pgfmathresult}%
+ \FPdiv\pgfmathresult{1}{\pgfmathresult}%
+ \pgfmath@smuggleone\pgfmathresult%
+ \endgroup%
+}%
% deg
%
\def\pgfmathfpdeg#1{%
- \pgfmathfpparse{#1}%
- \pgfmathfpdeg@{\pgfmathresult}%
-}
+ \pgfmathfpparse{#1}%
+ \pgfmathfpdeg@{\pgfmathresult}%
+}%
\def\pgfmathfpdeg@#1{%
- \begingroup%
- \FPmul\pgfmathresult{#1}{57.295779513082320885}%
- \pgfmath@smuggleone\pgfmathresult%
- \endgroup%
-}
+ \begingroup%
+ \FPmul\pgfmathresult{#1}{57.295779513082320885}%
+ \pgfmath@smuggleone\pgfmathresult%
+ \endgroup%
+}%
% rad
%
\def\pgfmathfprad#1{%
- \pgfmathfpparse{#1}%
- \pgfmathfprad@{\pgfmathresult}%
-}
+ \pgfmathfpparse{#1}%
+ \pgfmathfprad@{\pgfmathresult}%
+}%
\def\pgfmathfprad@#1{%
- \begingroup%
- \FPmul\pgfmathresult{#1}{0.01745329251994325}%
- \pgfmath@smuggleone\pgfmathresult%
- \endgroup%
-}
+ \begingroup%
+ \FPmul\pgfmathresult{#1}{0.01745329251994325}%
+ \pgfmath@smuggleone\pgfmathresult%
+ \endgroup%
+}%
% Random stuff...
\def\pgfmathfpsetseed#1{%
- \pgfmathfpparse{#1}%
- \afterassignment\pgfmath@gobbletilpgfmath@%
- \FPseed\pgfmathresult\relax\pgfmath@%
-}
+ \pgfmathfpparse{#1}%
+ \afterassignment\pgfmath@gobbletilpgfmath@%
+ \FPseed\pgfmathresult\relax\pgfmath@%
+}%
% rnd
%
\def\pgfmathfprnd{%
- \begingroup%
- \FPrandom\pgfmathresult%
- \pgfmath@smuggleone\pgfmathresult%
- \endgroup%
-}
+ \begingroup%
+ \FPrandom\pgfmathresult%
+ \pgfmath@smuggleone\pgfmathresult%
+ \endgroup%
+}%
% rand
%
\def\pgfmathfprand{%
- \begingroup%
- \FPrandom\pgfmathresult%
- \FPmul\pgfmathresult{2}{\pgfmathresult}%
- \FPsub\pgfmathresult{\pgfmathresult}{1}%
- \pgfmath@smuggleone\pgfmathresult%
- \endgroup%
-}
-
+ \begingroup%
+ \FPrandom\pgfmathresult%
+ \FPmul\pgfmathresult{2}{\pgfmathresult}%
+ \FPsub\pgfmathresult{\pgfmathresult}{1}%
+ \pgfmath@smuggleone\pgfmathresult%
+ \endgroup%
+}%