diff options
author | Karl Berry <karl@freefriends.org> | 2019-05-12 20:23:02 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2019-05-12 20:23:02 +0000 |
commit | 22cbaf8cd711b82b3fe4b387a7e72b58409ecdbd (patch) | |
tree | 0b785b59273566c030b567add8671b7f06167054 /Master/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.basic.code.tex | |
parent | 692a797099b0acfd35d4bbd6a322acdc87c2c3a8 (diff) |
pgf
git-svn-id: svn://tug.org/texlive/trunk@51107 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.basic.code.tex')
-rw-r--r-- | Master/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.basic.code.tex | 1086 |
1 files changed, 543 insertions, 543 deletions
diff --git a/Master/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.basic.code.tex b/Master/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.basic.code.tex index b6ac16c8bf3..2dbf154d8be 100644 --- a/Master/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.basic.code.tex +++ b/Master/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.basic.code.tex @@ -14,7 +14,7 @@ % add function. % \pgfmathdeclarefunction{add}{2}{% - \begingroup% + \begingroup% \pgfmath@x=#1pt\relax% \pgfmath@y=#2pt\relax% \advance\pgfmath@x by\pgfmath@y% @@ -26,7 +26,7 @@ % subtract function. % \pgfmathdeclarefunction{subtract}{2}{% - \begingroup% + \begingroup% \pgfmath@x=#1pt\relax% \pgfmath@y=#2pt\relax% \advance\pgfmath@x by-\pgfmath@y% @@ -37,11 +37,11 @@ % neg function. % \pgfmathdeclarefunction{neg}{1}{% - \begingroup% - \pgfmath@x=-#1pt\relax% - \edef\pgfmathresult{\pgfmath@tonumber{\pgfmath@x}}% - \pgfmath@smuggleone\pgfmathresult% - \endgroup% + \begingroup% + \pgfmath@x=-#1pt\relax% + \edef\pgfmathresult{\pgfmath@tonumber{\pgfmath@x}}% + \pgfmath@smuggleone\pgfmathresult% + \endgroup% } % change the precedence for neg. % Otherwise, unary minus and exponentiation won't have the correct precedence @@ -64,206 +64,206 @@ \newif\ifpgfmath@divide@period \pgfmathdeclarefunction{divide}{2}{% - \begingroup% - \pgfmath@x=#1pt\relax% - \pgfmath@y=#2pt\relax% - \let\pgfmath@sign=\pgfmath@empty% - \ifdim0pt=\pgfmath@y% - \pgfmath@error{You've asked me to divide `#1' by `#2', % - but I cannot divide any number by `#2'}% - \fi% - \afterassignment\pgfmath@xa% - \c@pgfmath@counta\the\pgfmath@y\relax% - \ifdim0pt=\pgfmath@xa% - \divide\pgfmath@x by\c@pgfmath@counta% - \else% - \ifdim0pt>\pgfmath@x% - \def\pgfmath@sign{-}% - \pgfmath@x=-\pgfmath@x% - \fi% - \ifdim0pt>\pgfmath@y% - \expandafter\def\expandafter\pgfmath@sign\expandafter{\pgfmath@sign-}% - \pgfmath@y=-\pgfmath@y% - \fi% - \ifdim1pt>\pgfmath@y% - \pgfmathreciprocal@{\pgfmath@tonumber{\pgfmath@y}}% - \pgfmath@x=\pgfmath@sign\pgfmathresult\pgfmath@x% - \else% - \def\pgfmathresult{0}% - \pgfmath@divide@periodtrue% - \c@pgfmath@counta=0\relax% - \pgfmathdivide@@% - \pgfmath@x=\pgfmath@sign\pgfmathresult pt\relax% - \fi% - \fi% - \pgfmath@returnone\pgfmath@x% - \endgroup% + \begingroup% + \pgfmath@x=#1pt\relax% + \pgfmath@y=#2pt\relax% + \let\pgfmath@sign=\pgfmath@empty% + \ifdim0pt=\pgfmath@y% + \pgfmath@error{You've asked me to divide `#1' by `#2', % + but I cannot divide any number by `#2'}% + \fi% + \afterassignment\pgfmath@xa% + \c@pgfmath@counta\the\pgfmath@y\relax% + \ifdim0pt=\pgfmath@xa% + \divide\pgfmath@x by\c@pgfmath@counta% + \else% + \ifdim0pt>\pgfmath@x% + \def\pgfmath@sign{-}% + \pgfmath@x=-\pgfmath@x% + \fi% + \ifdim0pt>\pgfmath@y% + \expandafter\def\expandafter\pgfmath@sign\expandafter{\pgfmath@sign-}% + \pgfmath@y=-\pgfmath@y% + \fi% + \ifdim1pt>\pgfmath@y% + \pgfmathreciprocal@{\pgfmath@tonumber{\pgfmath@y}}% + \pgfmath@x=\pgfmath@sign\pgfmathresult\pgfmath@x% + \else% + \def\pgfmathresult{0}% + \pgfmath@divide@periodtrue% + \c@pgfmath@counta=0\relax% + \pgfmathdivide@@% + \pgfmath@x=\pgfmath@sign\pgfmathresult pt\relax% + \fi% + \fi% + \pgfmath@returnone\pgfmath@x% + \endgroup% } \def\pgfmath@small@number{0.00002} \def\pgfmathdivide@@{% - \let\pgfmath@next=\relax% - \ifdim\pgfmath@small@number pt<\pgfmath@x% - \ifdim\pgfmath@small@number pt<\pgfmath@y% - \ifdim\pgfmath@y>\pgfmath@x% - \ifpgfmath@divide@period% - \expandafter\def\expandafter\pgfmathresult\expandafter{\pgfmathresult.}% - \pgfmath@divide@periodfalse% - \fi% - \pgfmathdivide@dimenbyten\pgfmath@y% - \ifdim\pgfmath@y>\pgfmath@x% - \expandafter\def\expandafter\pgfmathresult\expandafter{\pgfmathresult0}% - \fi% - \else% - \c@pgfmath@counta=\pgfmath@x% - \c@pgfmath@countb=\pgfmath@y% - \divide\c@pgfmath@counta by\c@pgfmath@countb% - \pgfmath@ya=\c@pgfmath@counta\pgfmath@y% - \advance\pgfmath@x by-\pgfmath@ya% - \def\pgfmath@next{% - \toks0=\expandafter{\pgfmathresult}% - \edef\pgfmathresult{\the\toks0 \the\c@pgfmath@counta}% - }% - \ifpgfmath@divide@period - \else - % we are behind the period. It may happen that the - % result is more than one digit - in that case, - % introduce special handling: - \ifnum\c@pgfmath@counta>9 % - \expandafter\pgfmathdivide@advance@last@digit\pgfmathresult CCCCC\@@ - \advance\c@pgfmath@counta by-10 % - \ifnum\c@pgfmath@counta=0 - \let\pgfmath@next=\relax - \fi - \fi - \fi - \pgfmath@next - \fi% - \let\pgfmath@next=\pgfmathdivide@@% - \fi% - \fi% - \pgfmath@next% + \let\pgfmath@next=\relax% + \ifdim\pgfmath@small@number pt<\pgfmath@x% + \ifdim\pgfmath@small@number pt<\pgfmath@y% + \ifdim\pgfmath@y>\pgfmath@x% + \ifpgfmath@divide@period% + \expandafter\def\expandafter\pgfmathresult\expandafter{\pgfmathresult.}% + \pgfmath@divide@periodfalse% + \fi% + \pgfmathdivide@dimenbyten\pgfmath@y% + \ifdim\pgfmath@y>\pgfmath@x% + \expandafter\def\expandafter\pgfmathresult\expandafter{\pgfmathresult0}% + \fi% + \else% + \c@pgfmath@counta=\pgfmath@x% + \c@pgfmath@countb=\pgfmath@y% + \divide\c@pgfmath@counta by\c@pgfmath@countb% + \pgfmath@ya=\c@pgfmath@counta\pgfmath@y% + \advance\pgfmath@x by-\pgfmath@ya% + \def\pgfmath@next{% + \toks0=\expandafter{\pgfmathresult}% + \edef\pgfmathresult{\the\toks0 \the\c@pgfmath@counta}% + }% + \ifpgfmath@divide@period + \else + % we are behind the period. It may happen that the + % result is more than one digit - in that case, + % introduce special handling: + \ifnum\c@pgfmath@counta>9 % + \expandafter\pgfmathdivide@advance@last@digit\pgfmathresult CCCCC\@@ + \advance\c@pgfmath@counta by-10 % + \ifnum\c@pgfmath@counta=0 + \let\pgfmath@next=\relax + \fi + \fi + \fi + \pgfmath@next + \fi% + \let\pgfmath@next=\pgfmathdivide@@% + \fi% + \fi% + \pgfmath@next% } % advances the last digit found in the number. Any missing digits are % supposed to be filled with 'C'. \def\pgfmathdivide@advance@last@digit#1.#2#3#4#5#6#7\@@{% - \pgfmath@ya=\pgfmathresult pt % - \if#2C% - \pgfmath@xa=1pt % - \else - \if#3C% - \pgfmath@xa=0.1pt % - \else - \if#4C% - \pgfmath@xa=0.01pt % - \else - \if#5C% - \pgfmath@xa=0.001pt % - \else - \if#6C% - \pgfmath@xa=0.0001pt % - \else - \pgfmath@xa=0.00001pt % - \fi - \fi - \fi - \fi - \fi - \advance\pgfmath@ya by\pgfmath@xa - \edef\pgfmathresult{\pgfmath@tonumber@notrailingzero\pgfmath@ya}% + \pgfmath@ya=\pgfmathresult pt % + \if#2C% + \pgfmath@xa=1pt % + \else + \if#3C% + \pgfmath@xa=0.1pt % + \else + \if#4C% + \pgfmath@xa=0.01pt % + \else + \if#5C% + \pgfmath@xa=0.001pt % + \else + \if#6C% + \pgfmath@xa=0.0001pt % + \else + \pgfmath@xa=0.00001pt % + \fi + \fi + \fi + \fi + \fi + \advance\pgfmath@ya by\pgfmath@xa + \edef\pgfmathresult{\pgfmath@tonumber@notrailingzero\pgfmath@ya}% }% { \catcode`\p=12 \catcode`\t=12 \gdef\Pgf@geT@NO@TRAILING@ZERO#1.#2pt{% - #1.% - \ifnum#2=0 \else #2\fi + #1.% + \ifnum#2=0 \else #2\fi } } \def\pgfmath@tonumber@notrailingzero#1{\expandafter\Pgf@geT@NO@TRAILING@ZERO\the#1} \def\pgfmathdivide@dimenbyten#1{% - \edef\pgfmath@temp{\pgfmath@tonumber{#1}}% - \expandafter\pgfmathdivide@@dimenbyten\pgfmath@temp\@@#1\@@} + \edef\pgfmath@temp{\pgfmath@tonumber{#1}}% + \expandafter\pgfmathdivide@@dimenbyten\pgfmath@temp\@@#1\@@} \def\pgfmathdivide@@dimenbyten#1.#2\@@#3\@@{% - \pgfmath@tempcnta=#1\relax% - \divide\pgfmath@tempcnta by10\relax% - \pgfmath@tempcntb=\pgfmath@tempcnta% - \multiply\pgfmath@tempcnta by-10\relax% - \advance\pgfmath@tempcnta by#1\relax% - #3=\the\pgfmath@tempcntb.\the\pgfmath@tempcnta#2pt\relax% + \pgfmath@tempcnta=#1\relax% + \divide\pgfmath@tempcnta by10\relax% + \pgfmath@tempcntb=\pgfmath@tempcnta% + \multiply\pgfmath@tempcnta by-10\relax% + \advance\pgfmath@tempcnta by#1\relax% + #3=\the\pgfmath@tempcntb.\the\pgfmath@tempcnta#2pt\relax% } % reciprocal function. % \pgfmathdeclarefunction{reciprocal}{1}{% - \begingroup% - \expandafter\pgfmath@x#1pt\relax% - \ifdim\pgfmath@x=0pt\relax% - \pgfmath@error{You asked me to calculate `1/#1', but I cannot divide any number by zero}{}% - \fi% - \edef\pgfmath@reciprocaltemp{\pgfmath@tonumber{\pgfmath@x}}% - \expandafter\pgfmathreciprocal@@\pgfmath@reciprocaltemp0000000\pgfmath@} + \begingroup% + \expandafter\pgfmath@x#1pt\relax% + \ifdim\pgfmath@x=0pt\relax% + \pgfmath@error{You asked me to calculate `1/#1', but I cannot divide any number by zero}{}% + \fi% + \edef\pgfmath@reciprocaltemp{\pgfmath@tonumber{\pgfmath@x}}% + \expandafter\pgfmathreciprocal@@\pgfmath@reciprocaltemp0000000\pgfmath@} \def\pgfmathreciprocal@@#1.#2#3#4#5#6#7\pgfmath@{% - \c@pgfmath@counta#2#3#4#5#6\relax% - % If the number is an integer, use TeX arithmatic. - \ifnum\c@pgfmath@counta=0\relax% - \pgfmath@x1pt\relax% - \divide\pgfmath@x#1\relax% - \else% - \ifnum#1>100\relax% - \c@pgfmath@counta#1#2#3#4\relax% - \c@pgfmath@countb1000000000\relax% - \divide\c@pgfmath@countb\c@pgfmath@counta% - \c@pgfmath@counta\c@pgfmath@countb% - \divide\c@pgfmath@counta10000\relax% - \pgfmath@x\c@pgfmath@counta pt\relax% - \multiply\c@pgfmath@counta-10000\relax% - \advance\c@pgfmath@countb\c@pgfmath@counta% - \pgfmath@y\c@pgfmath@countb pt\relax% - \divide\pgfmath@y1000000\relax% - \advance\pgfmath@x\pgfmath@y% - \else% - \c@pgfmath@counta#1#2#3#4#5#6\relax% - \c@pgfmath@countb1000000000\relax% - \divide\c@pgfmath@countb\c@pgfmath@counta% - \c@pgfmath@counta\c@pgfmath@countb% - \divide\c@pgfmath@counta10000\relax% - \pgfmath@x\c@pgfmath@counta pt\relax% - \multiply\c@pgfmath@counta-10000\relax% - \advance\c@pgfmath@countb\c@pgfmath@counta% - \pgfmath@y\c@pgfmath@countb pt\relax% - \pgfmath@y.1\pgfmath@y% Yes! This way is more accurate. Go figure... - \pgfmath@y.1\pgfmath@y% - \pgfmath@y.1\pgfmath@y% - \pgfmath@y.1\pgfmath@y% - \advance\pgfmath@x\pgfmath@y% - \fi% - \fi% - \pgfmath@returnone\pgfmath@x% - \endgroup% + \c@pgfmath@counta#2#3#4#5#6\relax% + % If the number is an integer, use TeX arithmetic. + \ifnum\c@pgfmath@counta=0\relax% + \pgfmath@x1pt\relax% + \divide\pgfmath@x#1\relax% + \else% + \ifnum#1>100\relax% + \c@pgfmath@counta#1#2#3#4\relax% + \c@pgfmath@countb1000000000\relax% + \divide\c@pgfmath@countb\c@pgfmath@counta% + \c@pgfmath@counta\c@pgfmath@countb% + \divide\c@pgfmath@counta10000\relax% + \pgfmath@x\c@pgfmath@counta pt\relax% + \multiply\c@pgfmath@counta-10000\relax% + \advance\c@pgfmath@countb\c@pgfmath@counta% + \pgfmath@y\c@pgfmath@countb pt\relax% + \divide\pgfmath@y1000000\relax% + \advance\pgfmath@x\pgfmath@y% + \else% + \c@pgfmath@counta#1#2#3#4#5#6\relax% + \c@pgfmath@countb1000000000\relax% + \divide\c@pgfmath@countb\c@pgfmath@counta% + \c@pgfmath@counta\c@pgfmath@countb% + \divide\c@pgfmath@counta10000\relax% + \pgfmath@x\c@pgfmath@counta pt\relax% + \multiply\c@pgfmath@counta-10000\relax% + \advance\c@pgfmath@countb\c@pgfmath@counta% + \pgfmath@y\c@pgfmath@countb pt\relax% + \pgfmath@y.1\pgfmath@y% Yes! This way is more accurate. Go figure... + \pgfmath@y.1\pgfmath@y% + \pgfmath@y.1\pgfmath@y% + \pgfmath@y.1\pgfmath@y% + \advance\pgfmath@x\pgfmath@y% + \fi% + \fi% + \pgfmath@returnone\pgfmath@x% + \endgroup% } % div function. % \pgfmathdeclarefunction{div}{2}{% - \begingroup% - \pgfmathdivide@{#1}{#2}% - \ifdim\pgfmathresult pt<0pt\relax% - \pgfmathceil@{\pgfmathresult}% - \else% - \pgfmathfloor@{\pgfmathresult}% - \fi% - \afterassignment\pgfmath@gobbletilpgfmath@% - \c@pgfmath@counta=\pgfmathresult\relax\pgfmath@% - \edef\pgfmathresult{\the\c@pgfmath@counta}% - \pgfmath@smuggleone\pgfmathresult% - \endgroup% + \begingroup% + \pgfmathdivide@{#1}{#2}% + \ifdim\pgfmathresult pt<0pt\relax% + \pgfmathceil@{\pgfmathresult}% + \else% + \pgfmathfloor@{\pgfmathresult}% + \fi% + \afterassignment\pgfmath@gobbletilpgfmath@% + \c@pgfmath@counta=\pgfmathresult\relax\pgfmath@% + \edef\pgfmathresult{\the\c@pgfmath@counta}% + \pgfmath@smuggleone\pgfmathresult% + \endgroup% } % mod function. @@ -285,27 +285,27 @@ % Mod function (never negative). % \pgfmathdeclarefunction{Mod}{2}{% - \begingroup% - \pgfmathmod@{#1}{#2}% - \pgfmath@x=\pgfmathresult pt\relax% - \ifdim\pgfmath@x<0pt\relax% - \advance\pgfmath@x by#2pt\relax% - \fi% - \edef\pgfmathresult{\pgfmath@tonumber{\pgfmath@x}}% - \pgfmath@smuggleone\pgfmathresult% - \endgroup% + \begingroup% + \pgfmathmod@{#1}{#2}% + \pgfmath@x=\pgfmathresult pt\relax% + \ifdim\pgfmath@x<0pt\relax% + \advance\pgfmath@x by#2pt\relax% + \fi% + \edef\pgfmathresult{\pgfmath@tonumber{\pgfmath@x}}% + \pgfmath@smuggleone\pgfmathresult% + \endgroup% } % abs function. % \pgfmathdeclarefunction{abs}{1}{% - \begingroup% - \expandafter\pgfmath@x#1pt\relax% - \ifdim\pgfmath@x<0pt\relax% - \pgfmath@x-\pgfmath@x% - \fi% - \pgfmath@returnone\pgfmath@x% - \endgroup% + \begingroup% + \expandafter\pgfmath@x#1pt\relax% + \ifdim\pgfmath@x<0pt\relax% + \pgfmath@x-\pgfmath@x% + \fi% + \pgfmath@returnone\pgfmath@x% + \endgroup% } % sign(x) @@ -334,189 +334,189 @@ % uses coefficients contributed by Alain Matthes. % \pgfmathdeclarefunction{ln}{1}{% - \begingroup% - \expandafter\pgfmath@x#1pt\relax% - \ifdim\pgfmath@x>0pt\else% - \pgfmath@error{I cannot calculate the logarithm of `#1'}{}% - \fi% - \c@pgfmath@counta=0\relax% - \ifdim\pgfmath@x>2pt\relax% - \ifdim\pgfmath@x<128pt\relax% - \ifdim\pgfmath@x<8pt\relax% - \ifdim\pgfmath@x<4pt\relax% - \divide\pgfmath@x by2\relax% - \c@pgfmath@counta=1\relax% - \else% - \divide\pgfmath@x by4\relax% - \c@pgfmath@counta=2\relax% - \fi% - \else% - \ifdim\pgfmath@x<32pt\relax% - \ifdim\pgfmath@x<16pt\relax% - \divide\pgfmath@x by8\relax% - \c@pgfmath@counta=3\relax% - \else% - \divide\pgfmath@x by16\relax% - \c@pgfmath@counta=4\relax% - \fi% - \else% - \ifdim\pgfmath@x<64pt\relax% - \divide\pgfmath@x by32\relax% - \c@pgfmath@counta=5\relax% - \else% - \divide\pgfmath@x by64\relax% - \c@pgfmath@counta=6\relax% - \fi% - \fi% - \fi% - \else% - \ifdim\pgfmath@x<2048pt\relax% - \ifdim\pgfmath@x<512pt\relax% - \ifdim\pgfmath@x<256pt\relax% - \divide\pgfmath@x by128\relax% - \c@pgfmath@counta=7\relax% - \else% - \divide\pgfmath@x by256\relax% - \c@pgfmath@counta=8\relax% - \fi% - \else% - \ifdim\pgfmath@x<1024pt\relax% - \divide\pgfmath@x by512\relax% - \c@pgfmath@counta=9\relax% - \else% - \divide\pgfmath@x by1024\relax% - \c@pgfmath@counta=10\relax% - \fi% - \fi% - \else% - \ifdim\pgfmath@x<8192pt\relax% - \ifdim\pgfmath@x<4096pt\relax% - \divide\pgfmath@x by2048\relax% - \c@pgfmath@counta=11\relax% - \else% - \divide\pgfmath@x by4096\relax% - \c@pgfmath@counta =12\relax% - \fi% - \else% - \divide\pgfmath@x by8192\relax% - \c@pgfmath@counta=13\relax% - \fi% - \fi% - \fi% - \else% - \ifdim\pgfmath@x<1pt\relax% - \ifdim\pgfmath@x>0.0078125pt\relax% 2^-7 - \ifdim\pgfmath@x>0.125pt\relax% 2^-3 - \ifdim\pgfmath@x>0.5pt\relax% 2^-1 - \multiply\pgfmath@x by2\relax% - \c@pgfmath@counta=-1\relax% - \else% - \multiply\pgfmath@x by4\relax% - \c@pgfmath@counta=-2\relax% - \fi% - \else% - \ifdim\pgfmath@x>0.03125pt\relax% 2^-5 - \ifdim\pgfmath@x>0.0625pt\relax% - \multiply\pgfmath@x by8\relax% - \c@pgfmath@counta=-3\relax% - \else% - \multiply\pgfmath@x by16\relax% - \c@pgfmath@counta=-4\relax% - \fi% - \else% - \ifdim\pgfmath@x>0.015625pt\relax% 2^-6 - \multiply\pgfmath@x by32\relax% - \c@pgfmath@counta=-5\relax% - \else% - \multiply\pgfmath@x by64\relax% - \c@pgfmath@counta=-6\relax% - \fi% - \fi% - \fi% - \else% - \ifdim\pgfmath@x>0.000244140625pt\relax% 2^-11 - \ifdim\pgfmath@x>0.001953125pt\relax% 2^-9 - \ifdim\pgfmath@x>0.00390625pt\relax% 2^-8 - \multiply\pgfmath@x by128\relax% - \c@pgfmath@counta=-7\relax% - \else% - \multiply\pgfmath@x by256\relax% - \c@pgfmath@counta=-8\relax% - \fi% - \else% - \ifdim\pgfmath@x>0.0009765625pt\relax% 2^-10 - \multiply\pgfmath@x by512\relax% - \c@pgfmath@counta=-9\relax% - \else% - \multiply\pgfmath@x by1024\relax% - \c@pgfmath@counta=-10\relax% - \fi% - \fi% - \else% - \ifdim\pgfmath@x>0.0001220703125pt\relax% 2^13 - \ifdim\pgfmath@x>0.0002441406256pt\relax% 2^12 - \multiply\pgfmath@x by2048\relax% - \c@pgfmath@counta=-11\relax% - \else% - \multiply\pgfmath@x by4096\relax% - \c@pgfmath@counta=-12\relax% - \fi% - \else% - \multiply\pgfmath@x by8192\relax% - \c@pgfmath@counta=-13\relax% - \fi% - \fi% - \fi% - \fi% - \fi% - % - % Use A+(B+(C+(D+(E+F*x)*x)*x)*x)*x - % - % where: - % A = -2.787927935 - % B = 5.047861502 - % C = -3.489886985 - % D = 1.589480044 - % E = -.4025153233 - % F = 0.04300521312 - % - \edef\pgfmath@temp{\pgfmath@tonumber{\pgfmath@x}}% - \pgfmath@x=0.04300521312\pgfmath@x% - \advance\pgfmath@x by-.4025153233pt\relax% - \pgfmath@x=\pgfmath@temp\pgfmath@x% - \advance\pgfmath@x by1.589480044pt\relax% - \pgfmath@x=\pgfmath@temp\pgfmath@x% - \advance\pgfmath@x by-3.489886985pt\relax% - \pgfmath@x=\pgfmath@temp\pgfmath@x% - \advance\pgfmath@x by5.047861502pt\relax% - \pgfmath@x=\pgfmath@temp\pgfmath@x% - \advance\pgfmath@x by-2.787927935pt\relax% - \advance\pgfmath@x by\c@pgfmath@counta pt\relax% - \pgfmath@x=0.6931471806\pgfmath@x% - \pgfmath@returnone\pgfmath@x% - \endgroup% + \begingroup% + \expandafter\pgfmath@x#1pt\relax% + \ifdim\pgfmath@x>0pt\else% + \pgfmath@error{I cannot calculate the logarithm of `#1'}{}% + \fi% + \c@pgfmath@counta=0\relax% + \ifdim\pgfmath@x>2pt\relax% + \ifdim\pgfmath@x<128pt\relax% + \ifdim\pgfmath@x<8pt\relax% + \ifdim\pgfmath@x<4pt\relax% + \divide\pgfmath@x by2\relax% + \c@pgfmath@counta=1\relax% + \else% + \divide\pgfmath@x by4\relax% + \c@pgfmath@counta=2\relax% + \fi% + \else% + \ifdim\pgfmath@x<32pt\relax% + \ifdim\pgfmath@x<16pt\relax% + \divide\pgfmath@x by8\relax% + \c@pgfmath@counta=3\relax% + \else% + \divide\pgfmath@x by16\relax% + \c@pgfmath@counta=4\relax% + \fi% + \else% + \ifdim\pgfmath@x<64pt\relax% + \divide\pgfmath@x by32\relax% + \c@pgfmath@counta=5\relax% + \else% + \divide\pgfmath@x by64\relax% + \c@pgfmath@counta=6\relax% + \fi% + \fi% + \fi% + \else% + \ifdim\pgfmath@x<2048pt\relax% + \ifdim\pgfmath@x<512pt\relax% + \ifdim\pgfmath@x<256pt\relax% + \divide\pgfmath@x by128\relax% + \c@pgfmath@counta=7\relax% + \else% + \divide\pgfmath@x by256\relax% + \c@pgfmath@counta=8\relax% + \fi% + \else% + \ifdim\pgfmath@x<1024pt\relax% + \divide\pgfmath@x by512\relax% + \c@pgfmath@counta=9\relax% + \else% + \divide\pgfmath@x by1024\relax% + \c@pgfmath@counta=10\relax% + \fi% + \fi% + \else% + \ifdim\pgfmath@x<8192pt\relax% + \ifdim\pgfmath@x<4096pt\relax% + \divide\pgfmath@x by2048\relax% + \c@pgfmath@counta=11\relax% + \else% + \divide\pgfmath@x by4096\relax% + \c@pgfmath@counta =12\relax% + \fi% + \else% + \divide\pgfmath@x by8192\relax% + \c@pgfmath@counta=13\relax% + \fi% + \fi% + \fi% + \else% + \ifdim\pgfmath@x<1pt\relax% + \ifdim\pgfmath@x>0.0078125pt\relax% 2^-7 + \ifdim\pgfmath@x>0.125pt\relax% 2^-3 + \ifdim\pgfmath@x>0.5pt\relax% 2^-1 + \multiply\pgfmath@x by2\relax% + \c@pgfmath@counta=-1\relax% + \else% + \multiply\pgfmath@x by4\relax% + \c@pgfmath@counta=-2\relax% + \fi% + \else% + \ifdim\pgfmath@x>0.03125pt\relax% 2^-5 + \ifdim\pgfmath@x>0.0625pt\relax% + \multiply\pgfmath@x by8\relax% + \c@pgfmath@counta=-3\relax% + \else% + \multiply\pgfmath@x by16\relax% + \c@pgfmath@counta=-4\relax% + \fi% + \else% + \ifdim\pgfmath@x>0.015625pt\relax% 2^-6 + \multiply\pgfmath@x by32\relax% + \c@pgfmath@counta=-5\relax% + \else% + \multiply\pgfmath@x by64\relax% + \c@pgfmath@counta=-6\relax% + \fi% + \fi% + \fi% + \else% + \ifdim\pgfmath@x>0.000244140625pt\relax% 2^-11 + \ifdim\pgfmath@x>0.001953125pt\relax% 2^-9 + \ifdim\pgfmath@x>0.00390625pt\relax% 2^-8 + \multiply\pgfmath@x by128\relax% + \c@pgfmath@counta=-7\relax% + \else% + \multiply\pgfmath@x by256\relax% + \c@pgfmath@counta=-8\relax% + \fi% + \else% + \ifdim\pgfmath@x>0.0009765625pt\relax% 2^-10 + \multiply\pgfmath@x by512\relax% + \c@pgfmath@counta=-9\relax% + \else% + \multiply\pgfmath@x by1024\relax% + \c@pgfmath@counta=-10\relax% + \fi% + \fi% + \else% + \ifdim\pgfmath@x>0.0001220703125pt\relax% 2^13 + \ifdim\pgfmath@x>0.0002441406256pt\relax% 2^12 + \multiply\pgfmath@x by2048\relax% + \c@pgfmath@counta=-11\relax% + \else% + \multiply\pgfmath@x by4096\relax% + \c@pgfmath@counta=-12\relax% + \fi% + \else% + \multiply\pgfmath@x by8192\relax% + \c@pgfmath@counta=-13\relax% + \fi% + \fi% + \fi% + \fi% + \fi% + % + % Use A+(B+(C+(D+(E+F*x)*x)*x)*x)*x + % + % where: + % A = -2.787927935 + % B = 5.047861502 + % C = -3.489886985 + % D = 1.589480044 + % E = -.4025153233 + % F = 0.04300521312 + % + \edef\pgfmath@temp{\pgfmath@tonumber{\pgfmath@x}}% + \pgfmath@x=0.04300521312\pgfmath@x% + \advance\pgfmath@x by-.4025153233pt\relax% + \pgfmath@x=\pgfmath@temp\pgfmath@x% + \advance\pgfmath@x by1.589480044pt\relax% + \pgfmath@x=\pgfmath@temp\pgfmath@x% + \advance\pgfmath@x by-3.489886985pt\relax% + \pgfmath@x=\pgfmath@temp\pgfmath@x% + \advance\pgfmath@x by5.047861502pt\relax% + \pgfmath@x=\pgfmath@temp\pgfmath@x% + \advance\pgfmath@x by-2.787927935pt\relax% + \advance\pgfmath@x by\c@pgfmath@counta pt\relax% + \pgfmath@x=0.6931471806\pgfmath@x% + \pgfmath@returnone\pgfmath@x% + \endgroup% } % log2 function. % \pgfmathdeclarefunction{log2}{1}{% - \begingroup% - \pgfmathln@{#1}% - \pgfmath@x=\pgfmathresult pt\relax% - \pgfmath@x=1.442695041\pgfmath@x% 1/ln(2). - \pgfmath@returnone\pgfmath@x% - \endgroup% + \begingroup% + \pgfmathln@{#1}% + \pgfmath@x=\pgfmathresult pt\relax% + \pgfmath@x=1.442695041\pgfmath@x% 1/ln(2). + \pgfmath@returnone\pgfmath@x% + \endgroup% } % log10 function % -\pgfmathdeclarefunction{log10}{1}{% - \begingroup% - \pgfmathln@{#1}% - \pgfmath@x=\pgfmathresult pt\relax% - \pgfmath@x=0.43429441\pgfmath@x% 1/ln(10). - \pgfmath@returnone\pgfmath@x% - \endgroup% +\pgfmathdeclarefunction{log10}{1}{% + \begingroup% + \pgfmathln@{#1}% + \pgfmath@x=\pgfmathresult pt\relax% + \pgfmath@x=0.43429441\pgfmath@x% 1/ln(10). + \pgfmath@returnone\pgfmath@x% + \endgroup% } % This is needed since \pgfmathlog2 and \pgfmathlog10 are not legal macro names @@ -527,7 +527,7 @@ % exp function. % -\pgfmathdeclarefunction{exp}{1}{% +\pgfmathdeclarefunction{exp}{1}{% \begingroup \pgfmath@xc=#1pt\relax \pgfmath@yc=#1pt\relax @@ -559,186 +559,186 @@ % sqrt function. % -\pgfmathdeclarefunction{sqrt}{1}{% - \begingroup% - \expandafter\pgfmath@x#1pt\relax% - \ifdim\pgfmath@x<0pt\relax% - \pgfmath@error{I cannot calculate the square-root of the negative number `#1'}{}% - \else% - \ifdim\pgfmath@x<10pt\relax% - \def\pgfmath@zeros{0}% - \def\pgfmath@targetiterations{1}% - \else% - \ifdim\pgfmath@x<100pt\relax% - \def\pgfmath@zeros{}% - \def\pgfmath@targetiterations{1}% - \else% - \ifdim\pgfmath@x<1000pt\relax% - \def\pgfmath@zeros{0}% - \def\pgfmath@targetiterations{2}% - \else% - \ifdim\pgfmath@x<10000pt\relax% - \def\pgfmath@zeros{}% - \def\pgfmath@targetiterations{2}% - \else% - \def\pgfmath@zeros{0}% - \def\pgfmath@targetiterations{3}% - \fi\fi\fi\fi\fi% - \edef\pgfmath@temp{\pgfmath@zeros\pgfmath@tonumber{\pgfmath@x}}% - \expandafter\pgfmath@sqrt@\pgfmath@temp\pgfmath@% +\pgfmathdeclarefunction{sqrt}{1}{% + \begingroup% + \expandafter\pgfmath@x#1pt\relax% + \ifdim\pgfmath@x<0pt\relax% + \pgfmath@error{I cannot calculate the square-root of the negative number `#1'}{}% + \else% + \ifdim\pgfmath@x<10pt\relax% + \def\pgfmath@zeros{0}% + \def\pgfmath@targetiterations{1}% + \else% + \ifdim\pgfmath@x<100pt\relax% + \def\pgfmath@zeros{}% + \def\pgfmath@targetiterations{1}% + \else% + \ifdim\pgfmath@x<1000pt\relax% + \def\pgfmath@zeros{0}% + \def\pgfmath@targetiterations{2}% + \else% + \ifdim\pgfmath@x<10000pt\relax% + \def\pgfmath@zeros{}% + \def\pgfmath@targetiterations{2}% + \else% + \def\pgfmath@zeros{0}% + \def\pgfmath@targetiterations{3}% + \fi\fi\fi\fi\fi% + \edef\pgfmath@temp{\pgfmath@zeros\pgfmath@tonumber{\pgfmath@x}}% + \expandafter\pgfmath@sqrt@\pgfmath@temp\pgfmath@% } \def\pgfmath@sqrt@#1.#2\pgfmath@{\pgfmath@@sqrt@#1#2\pgfmath@empty\pgfmath@empty\pgfmath@} \def\pgfmath@@sqrt@#1#2{% - \c@pgfmath@countb=#1#2\relax% - \ifnum\c@pgfmath@countb>35\relax% - \ifnum\c@pgfmath@countb>63\relax% - \ifnum\c@pgfmath@countb>80\relax% - \c@pgfmath@counta=9\relax% - \else% - \c@pgfmath@counta=8\relax% - \fi% - \else% - \ifnum\c@pgfmath@countb>48\relax% - \c@pgfmath@counta=7\relax% - \else% - \c@pgfmath@counta=6\relax% - \fi% - \fi% - \else% - \ifnum\c@pgfmath@countb>15\relax% - \ifnum\c@pgfmath@countb>24\relax% - \c@pgfmath@counta5\relax% - \else% - \c@pgfmath@counta=4\relax% - \fi% - \else% - \ifnum\c@pgfmath@countb>3\relax% - \ifnum\c@pgfmath@countb>8\relax% - \c@pgfmath@counta=3\relax% - \else% - \c@pgfmath@counta=2\relax% - \fi% - \else% - \ifnum\c@pgfmath@countb>0\relax% - \c@pgfmath@counta=1\relax% - \else% - \c@pgfmath@counta=0\relax% - \fi% - \fi% - \fi% - \fi% - \edef\pgfmath@root{\the\c@pgfmath@counta}% - \edef\pgfmath@rootspecial{\the\c@pgfmath@counta}% - \multiply\c@pgfmath@counta by-\c@pgfmath@counta\relax% - \advance\c@pgfmath@counta by#1#2\relax% - \edef\pgfmath@remainder{\the\c@pgfmath@counta}% - \pgfmath@@@sqrt@% + \c@pgfmath@countb=#1#2\relax% + \ifnum\c@pgfmath@countb>35\relax% + \ifnum\c@pgfmath@countb>63\relax% + \ifnum\c@pgfmath@countb>80\relax% + \c@pgfmath@counta=9\relax% + \else% + \c@pgfmath@counta=8\relax% + \fi% + \else% + \ifnum\c@pgfmath@countb>48\relax% + \c@pgfmath@counta=7\relax% + \else% + \c@pgfmath@counta=6\relax% + \fi% + \fi% + \else% + \ifnum\c@pgfmath@countb>15\relax% + \ifnum\c@pgfmath@countb>24\relax% + \c@pgfmath@counta5\relax% + \else% + \c@pgfmath@counta=4\relax% + \fi% + \else% + \ifnum\c@pgfmath@countb>3\relax% + \ifnum\c@pgfmath@countb>8\relax% + \c@pgfmath@counta=3\relax% + \else% + \c@pgfmath@counta=2\relax% + \fi% + \else% + \ifnum\c@pgfmath@countb>0\relax% + \c@pgfmath@counta=1\relax% + \else% + \c@pgfmath@counta=0\relax% + \fi% + \fi% + \fi% + \fi% + \edef\pgfmath@root{\the\c@pgfmath@counta}% + \edef\pgfmath@rootspecial{\the\c@pgfmath@counta}% + \multiply\c@pgfmath@counta by-\c@pgfmath@counta\relax% + \advance\c@pgfmath@counta by#1#2\relax% + \edef\pgfmath@remainder{\the\c@pgfmath@counta}% + \pgfmath@@@sqrt@% } \def\pgfmath@@@sqrt@#1#2{% - \ifx\pgfmath@empty#1% - \edef\pgfmath@remainder{\pgfmath@remainder00}% - \def\pgfmath@tokens{\pgfmath@empty\pgfmath@empty}% - \else% - \ifx\pgfmath@empty#2% - \edef\pgfmath@remainder{\pgfmath@remainder#10}% - \def\pgfmath@tokens{\pgfmath@empty\pgfmath@empty}% - \else% - \edef\pgfmath@remainder{\pgfmath@remainder#1#2}% - \def\pgfmath@tokens{}% - \fi\fi% - \c@pgfmath@counta=\pgfmath@rootspecial\relax% - \multiply\c@pgfmath@counta by20\relax% - \c@pgfmath@countb=\c@pgfmath@counta% - \multiply\c@pgfmath@countb by6\relax% - \advance\c@pgfmath@countb by36\relax% - \c@pgfmath@countc=\c@pgfmath@counta% - \multiply\c@pgfmath@countc by2\relax% - \ifnum\c@pgfmath@countb>\pgfmath@remainder\relax% - \advance\c@pgfmath@countb by-\c@pgfmath@countc% - \advance\c@pgfmath@countb by-20\relax% - \ifnum\c@pgfmath@countb>\pgfmath@remainder\relax% - \advance\c@pgfmath@countb by-\c@pgfmath@countc% - \advance\c@pgfmath@countb by-12\relax% - \ifnum\c@pgfmath@countb>\pgfmath@remainder\relax% - \advance\c@pgfmath@countb by-\c@pgfmath@counta% - \advance\c@pgfmath@countb by-3\relax% - \ifnum\c@pgfmath@countb>\pgfmath@remainder\relax% - \def\pgfmath@digit{0}% - \else% - \def\pgfmath@digit{1}% - \fi% - \else% - \advance\c@pgfmath@countb by\c@pgfmath@counta% - \advance\c@pgfmath@countb by5\relax% - \ifnum\c@pgfmath@countb>\pgfmath@remainder\relax% - \def\pgfmath@digit{2}% - \else% - \def\pgfmath@digit{3}% - \fi% - \fi% - \else% - \advance\c@pgfmath@countb by\c@pgfmath@counta% - \advance\c@pgfmath@countb by9\relax% - \ifnum\c@pgfmath@countb>\pgfmath@remainder\relax% - \def\pgfmath@digit{4}% - \else% - \def\pgfmath@digit{5}% - \fi% - \fi% - \else% - \advance\c@pgfmath@countb by\c@pgfmath@countc% - \advance\c@pgfmath@countb by28\relax% - \ifnum\c@pgfmath@countb>\pgfmath@remainder\relax% - \advance\c@pgfmath@countb by-\c@pgfmath@counta% - \advance\c@pgfmath@countb by-15\relax% - \ifnum\c@pgfmath@countb>\pgfmath@remainder\relax% - \def\pgfmath@digit{6}% - \else% - \def\pgfmath@digit{7}% - \fi% - \else% - \advance\c@pgfmath@countb by\c@pgfmath@counta% - \advance\c@pgfmath@countb by17\relax% - \ifnum\c@pgfmath@countb>\pgfmath@remainder\relax% - \def\pgfmath@digit{8}% - \else% - \def\pgfmath@digit{9}% - \fi% - \fi% - \fi% - \edef\pgfmath@rootspecial{\pgfmath@rootspecial\pgfmath@digit}% - \advance\c@pgfmath@counta by\pgfmath@digit\relax% - \multiply\c@pgfmath@counta by-\pgfmath@digit\relax% - \advance\c@pgfmath@counta by\pgfmath@remainder\relax% - \edef\pgfmath@remainder{\the\c@pgfmath@counta}% - \c@pgfmath@counta=\pgfmath@targetiterations\relax% - \advance\c@pgfmath@counta by-1\relax% - \edef\pgfmath@targetiterations{\the\c@pgfmath@counta}% - \ifnum\c@pgfmath@counta=0\relax% - \edef\pgfmath@root{\pgfmath@root.\pgfmath@digit}% - \else% - \edef\pgfmath@root{\pgfmath@root\pgfmath@digit}% - \fi% - \ifnum\c@pgfmath@counta=-4\relax% -n+1 digits of precision. - \let\pgfmath@next\pgfmath@sqrt@end% - \else% - \let\pgfmath@next\pgfmath@@@sqrt@% - \fi% - \expandafter\pgfmath@next\pgfmath@tokens% + \ifx\pgfmath@empty#1% + \edef\pgfmath@remainder{\pgfmath@remainder00}% + \def\pgfmath@tokens{\pgfmath@empty\pgfmath@empty}% + \else% + \ifx\pgfmath@empty#2% + \edef\pgfmath@remainder{\pgfmath@remainder#10}% + \def\pgfmath@tokens{\pgfmath@empty\pgfmath@empty}% + \else% + \edef\pgfmath@remainder{\pgfmath@remainder#1#2}% + \def\pgfmath@tokens{}% + \fi\fi% + \c@pgfmath@counta=\pgfmath@rootspecial\relax% + \multiply\c@pgfmath@counta by20\relax% + \c@pgfmath@countb=\c@pgfmath@counta% + \multiply\c@pgfmath@countb by6\relax% + \advance\c@pgfmath@countb by36\relax% + \c@pgfmath@countc=\c@pgfmath@counta% + \multiply\c@pgfmath@countc by2\relax% + \ifnum\c@pgfmath@countb>\pgfmath@remainder\relax% + \advance\c@pgfmath@countb by-\c@pgfmath@countc% + \advance\c@pgfmath@countb by-20\relax% + \ifnum\c@pgfmath@countb>\pgfmath@remainder\relax% + \advance\c@pgfmath@countb by-\c@pgfmath@countc% + \advance\c@pgfmath@countb by-12\relax% + \ifnum\c@pgfmath@countb>\pgfmath@remainder\relax% + \advance\c@pgfmath@countb by-\c@pgfmath@counta% + \advance\c@pgfmath@countb by-3\relax% + \ifnum\c@pgfmath@countb>\pgfmath@remainder\relax% + \def\pgfmath@digit{0}% + \else% + \def\pgfmath@digit{1}% + \fi% + \else% + \advance\c@pgfmath@countb by\c@pgfmath@counta% + \advance\c@pgfmath@countb by5\relax% + \ifnum\c@pgfmath@countb>\pgfmath@remainder\relax% + \def\pgfmath@digit{2}% + \else% + \def\pgfmath@digit{3}% + \fi% + \fi% + \else% + \advance\c@pgfmath@countb by\c@pgfmath@counta% + \advance\c@pgfmath@countb by9\relax% + \ifnum\c@pgfmath@countb>\pgfmath@remainder\relax% + \def\pgfmath@digit{4}% + \else% + \def\pgfmath@digit{5}% + \fi% + \fi% + \else% + \advance\c@pgfmath@countb by\c@pgfmath@countc% + \advance\c@pgfmath@countb by28\relax% + \ifnum\c@pgfmath@countb>\pgfmath@remainder\relax% + \advance\c@pgfmath@countb by-\c@pgfmath@counta% + \advance\c@pgfmath@countb by-15\relax% + \ifnum\c@pgfmath@countb>\pgfmath@remainder\relax% + \def\pgfmath@digit{6}% + \else% + \def\pgfmath@digit{7}% + \fi% + \else% + \advance\c@pgfmath@countb by\c@pgfmath@counta% + \advance\c@pgfmath@countb by17\relax% + \ifnum\c@pgfmath@countb>\pgfmath@remainder\relax% + \def\pgfmath@digit{8}% + \else% + \def\pgfmath@digit{9}% + \fi% + \fi% + \fi% + \edef\pgfmath@rootspecial{\pgfmath@rootspecial\pgfmath@digit}% + \advance\c@pgfmath@counta by\pgfmath@digit\relax% + \multiply\c@pgfmath@counta by-\pgfmath@digit\relax% + \advance\c@pgfmath@counta by\pgfmath@remainder\relax% + \edef\pgfmath@remainder{\the\c@pgfmath@counta}% + \c@pgfmath@counta=\pgfmath@targetiterations\relax% + \advance\c@pgfmath@counta by-1\relax% + \edef\pgfmath@targetiterations{\the\c@pgfmath@counta}% + \ifnum\c@pgfmath@counta=0\relax% + \edef\pgfmath@root{\pgfmath@root.\pgfmath@digit}% + \else% + \edef\pgfmath@root{\pgfmath@root\pgfmath@digit}% + \fi% + \ifnum\c@pgfmath@counta=-4\relax% -n+1 digits of precision. + \let\pgfmath@next\pgfmath@sqrt@end% + \else% + \let\pgfmath@next\pgfmath@@@sqrt@% + \fi% + \expandafter\pgfmath@next\pgfmath@tokens% } \def\pgfmath@sqrt@end#1\pgfmath@{% - \edef\pgfmathresult{\pgfmath@root}% - \pgfmath@smuggleone\pgfmathresult% - \endgroup} + \edef\pgfmathresult{\pgfmath@root}% + \pgfmath@smuggleone\pgfmathresult% + \endgroup} % \pgfmathpow % % Calculates #1 ^ #2 % -\pgfmathdeclarefunction{pow}{2}{% +\pgfmathdeclarefunction{pow}{2}{% \begingroup% \pgfmath@xa=#1pt% \pgfmath@xb=#2pt% @@ -775,27 +775,27 @@ \pgfmathexp@{\pgfmath@tonumber{\pgfmath@x}}% \pgfmath@x=\pgfmathresult pt\relax% \fi% - \fi + \fi \pgfmath@returnone\pgf@x% \endgroup% } % factorial function. % -\pgfmathdeclarefunction{factorial}{1}{% - \begingroup% - \afterassignment\pgfmath@gobbletilpgfmath@% - \c@pgfmath@counta=#1\relax\pgfmath@% - \pgfmath@x=1pt\relax% - \pgfmathloop% - \ifnum\c@pgfmath@counta<2\relax% - \else% - \multiply\pgfmath@x by\c@pgfmath@counta% - \advance\c@pgfmath@counta by-1\relax% - \repeatpgfmathloop% - \edef\pgfmathresult{\pgfmath@tonumber{\pgfmath@x}}% - \pgfmath@smuggleone\pgfmathresult% - \endgroup% +\pgfmathdeclarefunction{factorial}{1}{% + \begingroup% + \afterassignment\pgfmath@gobbletilpgfmath@% + \c@pgfmath@counta=#1\relax\pgfmath@% + \pgfmath@x=1pt\relax% + \pgfmathloop% + \ifnum\c@pgfmath@counta<2\relax% + \else% + \multiply\pgfmath@x by\c@pgfmath@counta% + \advance\c@pgfmath@counta by-1\relax% + \repeatpgfmathloop% + \edef\pgfmathresult{\pgfmath@tonumber{\pgfmath@x}}% + \pgfmath@smuggleone\pgfmathresult% + \endgroup% } % Local Variables: |