diff options
author | Karl Berry <karl@freefriends.org> | 2007-06-17 23:22:38 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2007-06-17 23:22:38 +0000 |
commit | 5c5c7843fbd37c6960799b6e1a32d5948966316c (patch) | |
tree | ea73f6b5ba799656992ebe2f34beccd2555f1342 /Master/texmf-dist/tex/generic/pgf/math | |
parent | f0c1f4cdb9fad83f293fd91d194538425f9f7633 (diff) |
pgf 1.18 (15jun07)
git-svn-id: svn://tug.org/texlive/trunk@4459 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/generic/pgf/math')
8 files changed, 4503 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex b/Master/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex new file mode 100644 index 00000000000..e4c83128140 --- /dev/null +++ b/Master/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex @@ -0,0 +1,10 @@ +% Copyright 2007 by Till Tantau +% +% This file may be distributed and/or modified +% +% 1. under the LaTeX Project Public License and/or +% 2. under the GNU Public License. +% +% See the file doc/generic/pgf/licenses/LICENSE for more details. + +\input pgfmathcalc.code.tex diff --git a/Master/texmf-dist/tex/generic/pgf/math/pgfmathbase.code.tex b/Master/texmf-dist/tex/generic/pgf/math/pgfmathbase.code.tex new file mode 100644 index 00000000000..8228c389c7c --- /dev/null +++ b/Master/texmf-dist/tex/generic/pgf/math/pgfmathbase.code.tex @@ -0,0 +1,263 @@ +% Copyright 2007 by Mark Wibrow +% +% This file may be distributed and/or modified +% +% 1. under the LaTeX Project Public License and/or +% 2. under the GNU Public License. +% +% See the file doc/generic/pgf/licenses/LICENSE for more details. +% +% This file provides basic macros for converting between bases. +% +% Version 0.0 08/03/2007 + +% \pgfmathbasetodec +% +% Convert a representation of an integer from +% the spcified base to base 10. +% +% #1 - a macro to store the result. +% #2 - the representation of a number (i.e. not a register) +% #3 - the current base. +% +% e.g. +% +% \pgfmathbasetodec\mynumber{10111}{2} +% +% \mynumber <- 23 +% +\def\pgfmathbasetodec#1#2#3{% + \pgfmath@checknumber{#2}% + \pgfmath@checkbase{#3}% + \def\pgfmath@base{#3}% + \def\pgfmath@macro{#1}% + \c@pgfmath@counta1\relax% + \def\pgfmath@reversed{}% + \expandafter\pgfmathbasetodec@#2\pgfmathbasetodec} + +\def\pgfmathbasetodec@#1{% + \ifx\pgfmathbasetodec#1% + \c@pgfmath@countb0% + \divide\c@pgfmath@counta by\pgfmath@base\relax% + \expandafter\pgfmathbasetodec@@% + \else% + \edef\pgfmath@reversed{\pgfmath@reversed#1}% + \expandafter\multiply\expandafter\c@pgfmath@counta\pgfmath@base\relax% + \expandafter\pgfmathbasetodec@% + \fi} + +\def\pgfmathbasetodec@@{\expandafter\pgfmathbasetodec@@@\pgfmath@reversed\pgfmathbasetodec} + +\def\pgfmathbasetodec@@@#1{% + \ifx\pgfmathbasetodec#1\relax% + \expandafter\edef\pgfmath@macro{\the\c@pgfmath@countb}% + \let\pgfmath@next\pgfmathbasetodec@@@@% + \else% + \chardef\pgfmath@charnum`#1\relax% + \c@pgfmath@countc\pgfmath@charnum% + \ifnum\c@pgfmath@countc>96\relax% + \advance\c@pgfmath@countc-87\relax% + \else + \ifnum\c@pgfmath@countc>64\relax% + \advance\c@pgfmath@countc-55\relax% + \else + \advance\c@pgfmath@countc-48\relax% + \fi\fi% + \ifnum\c@pgfmath@countc<\pgfmath@base\relax% + \multiply\c@pgfmath@countc\c@pgfmath@counta\relax% + \advance\c@pgfmath@countb\c@pgfmath@countc% + \divide\c@pgfmath@counta by\pgfmath@base\relax% + \let\pgfmath@next\pgfmathbasetodec@@@% + \else + \pgfmath@error{Digit `#1' invalid for base \pgfmath@base}% + \let\pgfmath@next\relax% + \fi% + \fi% + \pgfmath@next} +\def\pgfmathbasetodec@@@@{% + \expandafter\pgfmath@ensurenumberlength\expandafter{\pgfmath@macro}% +} + +% \pgfmathdectobase +% +% Convert a representation of an integer from +% base 10 to the spcified base. Letters for bases +% greater than 10 are in lowercase. +% +% #1 - a macro to store the result. +% #2 - a number in base 10 (in a macro, not a register) +% #3 - the required base. +% +% e.g. +% +% \pgfmathdectobase\mynumber{127}{16} +% +% \mynumber <- 7f +% +\def\pgfmathdectobase#1#2#3{% + \pgfmath@checknumber{#2}% + \pgfmath@checkbase{#3}% + \c@pgfmath@counta#2\relax% + \def#1{}% + \pgfmathloop + \ifnum\c@pgfmath@counta>0\relax% + \c@pgfmath@countb\c@pgfmath@counta% + \divide\c@pgfmath@countb#3\relax% + \multiply\c@pgfmath@countb-#3\relax% + \advance\c@pgfmath@countb\c@pgfmath@counta% + \edef#1{\csname pgfmath@lowercase digit@\the\c@pgfmath@countb\endcsname#1}% + \divide\c@pgfmath@counta#3\relax% + \repeatpgfmathloop% + \pgfmath@ensurenumberlength{#1}} + +% \pgfmathdectoBase +% +% Convert a representation of an integer from +% base 10 to the spcified base. Letters for bases +% greater than 10 are in uppercase. +% +% #1 - a macro to store the result. +% #2 - a number in base 10 (in a macro, not a register) +% #3 - the required base. +% +% e.g. +% +% \pgfmathdectoBase\mynumber{127}{16} +% +% \mynumber <- 7F +% +\def\pgfmathdectoBase#1#2#3{% + \pgfmath@checkbase{#3}% + \pgfmath@checknumber{#2}% + \c@pgfmath@counta#2\relax% + \def#1{}% + \pgfmathloop + \ifnum\c@pgfmath@counta>0\relax% + \c@pgfmath@countb\c@pgfmath@counta% + \divide\c@pgfmath@countb#3\relax% + \multiply\c@pgfmath@countb-#3\relax% + \advance\c@pgfmath@countb\c@pgfmath@counta% + \edef#1{\csname pgfmath@uppercase digit@\the\c@pgfmath@countb\endcsname#1}% + \divide\c@pgfmath@counta#3\relax% + \repeatpgfmathloop% + \pgfmath@ensurenumberlength{#1}} + +\def\pgfmath@createdigits{% + \def\pgfmath@digitstyle{lowercase digit}% + \c@pgfmath@counta0\relax% + \pgfmath@createdigits@0123456789abcdefghijklmnopqrstuvwxyz\pgfmath@createdigits% + \def\pgfmath@digitstyle{uppercase digit}% + \c@pgfmath@counta0\relax% + \pgfmath@createdigits@0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ\pgfmath@createdigits} + +\def\pgfmath@createdigits@#1{% + \ifx\pgfmath@createdigits#1\relax% + \else% + \expandafter\pgfmath@def\expandafter{\pgfmath@digitstyle}{\the\c@pgfmath@counta}{#1}% + \advance\c@pgfmath@counta1\relax% + \expandafter\pgfmath@createdigits@% + \fi} +\pgfmath@createdigits + +% \pgfmathbasetobase +% +% Convert a representation of an integer from +% between the specified bases. Letters for target +% bases greater than 10 are in lppercase. +% +% #1 - a macro to store the result. +% #2 - a number (in a macro, not a register) +% #3 - the source base. +% #4 - the target base. +% +% e.g. +% +% \pgfmathbasetobase\mynumber{4321}{5}{9} +% +% \mynumber <- 721 +% +\def\pgfmathbasetobase#1#2#3#4{% + \pgfmathbasetodec{\pgfmath@temp}{#2}{#3}% + \pgfmathdectobase{#1}{\pgfmath@temp}{#4} +} + +% \pgfmathbasetobase +% +% Convert a representation of an integer from +% between the specified bases. Letters for target +% bases greater than 10 are in lppercase. +% +% #1 - a macro to store the result. +% #2 - a number (in a macro, not a register) +% #3 - the source base. +% #4 - the target base. +% +% e.g. +% +% \pgfmathbasetobase\mynumber{1234}{5}{12} +% +% \mynumber <- 142 +% +\def\pgfmathbasetoBase#1#2#3#4{% + \pgfmathbasetodec{\pgfmath@temp}{#2}{#3}% + \pgfmathdectoBase{#1}{\pgfmath@temp}{#4} +} + +\def\pgfmath@checkbase#1{% + \ifnum#1<2\relax% + \pgfmath@error{Cannot process numbers in base `#1'.}% + \else% + \ifnum#1>36\relax% + \pgfmath@error{Cannot process numbers in base `#1'.}% + \fi\fi} + +\def\pgfmath@checknumber#1{% + \expandafter\pgfmath@checknumber@#1\pgfmath@} +\def\pgfmath@checknumber@#1#2\pgfmath@{% + \ifx#1-% + \pgfmath@error{Cannot process negative numbers.}% + \fi} + + +% \pgfmath@ensurenumberlength +% +% Internal macro for making a representation of a number have +% a specific length, byt prefixing zeros to the number. +% +% #1 - a macro contatining a representation of an integer. +% #2 - the number of digits to ensure. +% +% e.g. +% +% \foo <- 7FF +% +% \pgfmathsetnumberlength{8}% +% \pgfmath@ensurenumberlength\foo +% +% \foo <- 000007FF +% +\def\pgfmath@ensurenumberlength#1{% + \def\pgfmath@tempa{#1}% + \expandafter\c@pgfmath@counta\pgfmath@basenumberlength\relax% + \expandafter\pgfmath@ensurenumberlength@#1\pgfmath@ensurenumberlength} +\def\pgfmath@ensurenumberlength@#1{% + \ifx\pgfmath@ensurenumberlength#1\relax% + \expandafter\pgfmath@ensurenumberlength@@% + \else% + \advance\c@pgfmath@counta-1\relax% + \expandafter\pgfmath@ensurenumberlength@ + \fi} + +\def\pgfmath@ensurenumberlength@@{% + \edef\pgfmath@tempb{\pgfmath@tempa}% + \pgfmath@ensurenumberlength@@@} +\def\pgfmath@ensurenumberlength@@@{% + \ifnum\c@pgfmath@counta>0\relax% + \advance\c@pgfmath@counta-1\relax% + \edef\pgfmath@tempb{0\pgfmath@tempb}% + \expandafter\pgfmath@ensurenumberlength@@@% + \fi% + \expandafter\edef\pgfmath@tempa{\pgfmath@tempb}} + +\def\pgfmathsetbasenumberlength#1{\def\pgfmath@basenumberlength{#1}} +\pgfmathsetbasenumberlength{1}%
\ No newline at end of file diff --git a/Master/texmf-dist/tex/generic/pgf/math/pgfmathcalc.code.tex b/Master/texmf-dist/tex/generic/pgf/math/pgfmathcalc.code.tex new file mode 100644 index 00000000000..8cf9bbd26b5 --- /dev/null +++ b/Master/texmf-dist/tex/generic/pgf/math/pgfmathcalc.code.tex @@ -0,0 +1,194 @@ +% Copyright 2007 by Mark Wibrow +% +% This file may be distributed and/or modified +% +% 1. under the LaTeX Project Public License and/or +% 2. under the GNU Public License. +% +% See the file doc/generic/pgf/licenses/LICENSE for more details. + +% This file loads all the parsing, functions and operator stuff +% +% Version 0.0 08/03/2007 + +\input pgfmathutil.code.tex +\input pgfmathparser.code.tex +\input pgfmathoperations.code.tex +\input pgfmathbase.code.tex + + +% \pgfmathsetlength, \pgfmathaddtolength +% +% #1 = dimension register +% #2 = expression +% +% Description: +% +% These functions work similar to \setlength and \addtolength. Only, +% they allow #2 to contain an expression, which is evaluated before +% assignment. Furthermore, the font is setup before the assignment is +% done, so that dimensions like 1em are evaluated correctly. +% +% If #2 starts with "+", then a simple assignment is done (but the +% font is still setup). This is orders of magnitude faster than a +% parsed assignment. + +\def\pgfmathsetlength#1#2{% + \expandafter\pgfmath@onquick#2\pgfmath@% + {% + % Ok, quick version: + \begingroup% + \pgfutil@selectfont% + \pgfmath@x#2\unskip% + \pgfmath@returnone\pgfmath@x% + \endgroup% + #1\pgfmathresult pt\relax% + }% + {% + \pgfmathparse{#2}#1\pgfmathresult pt\relax% +}% +} +\def\pgfmathaddtolength#1#2{% + \expandafter\pgfmath@onquick#2\pgfmath@% + {% + \begingroup% + \pgfutil@selectfont% + \pgfmath@x#1\relax% + \advance\pgfmath@x#2\unskip% + \pgfmath@returnone\pgfmath@x% + \endgroup% + #1\pgfmathresult pt\relax% + }% + {\pgfmathparse{#2}\advance#1\pgfmathresult pt\relax}% +} + +% Not really needed and does not work in plain TeX: +%\def\pgfmathnewcounter#1{% +% \expandafter\let\expandafter\pgfmath@register\csname c@#1\endcsname% +% \expandafter\ifx\pgfmath@register\relax% +% \expandafter\newcount\csname c@#1\endcsname% +% \csname c@#1\endcsname0\relax% +% \expandafter\def\csname the#1\endcsname{\expandafter\the\csname c@#1\endcsname}% +% \else% Do nothing. +% \fi}% + +% \pgfmathsetcounter, \pgfmathaddtocounter +% +% Results of parsing are truncated. +% +\def\pgfmathsetcounter#1#2{% + \expandafter\pgfmath@onquick#2\pgfmath@% + {% + \csname c@#1\endcsname=#2\relax% + }% + {% + \pgfmath@ifundefined{c@#1}{\pgfmath@error{No counter named '#1' is known}{}}{% + \pgfmathparse{#2}% + \afterassignment\pgfmath@gobbletilpgfmath@% + \csname c@#1\endcsname\pgfmathresult\relax\pgfmath@% + }% + }% +} + +\def\pgfmathaddtocounter#1#2{% + \expandafter\pgfmath@onquick#2\pgfmath@% + {% + \advance\csname c@#1\endcsname by#2\relax% + }% + {% + \pgfmath@ifundefined{c@#1}{\pgfmath@error{No counter named '#1' is known}{}}{% + \edef\pgfmath@addtocountertemp{\expandafter\the\csname c@#1\endcsname}% + \pgfmathparse{#2}% + \afterassignment\pgfmath@gobbletilpgfmath@% + \csname c@#1\endcsname\pgfmathresult\relax\pgfmath@% + \expandafter\advance\csname c@#1\endcsname\pgfmath@addtocountertemp% + }% + }% +} + +% \pgfmathsetcount, \pgfmathaddtocount +% +% Results of parsing are truncated. +% +\def\pgfmathsetcount#1#2{% + \expandafter\pgfmath@onquick#2\pgfmath@% + {% + #1#2\relax% + }% + {% + \pgfmathparse{#2}% + \afterassignment\pgfmath@gobbletilpgfmath@% + #1\pgfmathresult\relax\pgfmath@% + }% +} + +\def\pgfmathaddtocount#1#2{% + \expandafter\pgfmath@onquick#2\pgfmath@% + {% + \advance#1 by#2\relax% + }% + {% + \edef\pgfmath@addtocounttemp{\the#1}% + \pgfmathparse{#2}% + \afterassignment\pgfmath@gobbletilpgfmath@% + #1\pgfmathresult\relax\pgfmath@% + \advance#1\pgfmath@addtocounttemp% + }% +} + +\def\pgfmathsetmacro#1#2{% + \expandafter\pgfmath@onquick#2\pgfmath@% + {% + \begingroup% + \afterassignment\pgfmath@gobbletilpgfmath@% + \pgfmath@x#2pt\relax\pgfmath@% + \edef#1{\pgfmath@tonumber{\pgfmath@x}}% + \pgfmath@smuggleone{#1} + \endgroup% + }% + {% + \pgfmathparse{#2}% + \edef#1{\pgfmathresult}% + }% +} + +\def\pgfmathtruncatemacro#1#2{% + \expandafter\pgfmath@onquick#2\pgfmath@% + {% + \begingroup% + \afterassignment\pgfmath@gobbletilpgfmath@% + \c@pgfmath@counta#2\relax\pgfmath@% + \edef#1{\the\c@pgfmath@counta}% + \pgfmath@smuggleone{#1} + \endgroup% + }% + {% + \pgfmathparse{#2}% + \edef#1{\pgfmathresult}% + }% +} + +% Check whether a given parameter starts with quick. +% +% The command should be followed by nonempty text, ending with +% \pgfmath@ as a stop-token. Then should follow +% +% #1 = code to execute if text starts with + +% #2 = code to execute if text does not +% +% Example: +% +% \pgfmath@onquick+0pt\pgfmath@{is quick}{is slow} + +\def\pgfmath@onquick{% + \afterassignment\pgfmath@afterquick% + \let\pgfmath@next=% +} + +\def\pgfmath@afterquick#1\pgfmath@{% + \ifx\pgfmath@next+% + \expandafter\pgfmath@firstoftwo% + \else% + \expandafter\pgfmath@secondoftwo% + \fi% +}
\ No newline at end of file diff --git a/Master/texmf-dist/tex/generic/pgf/math/pgfmathoperations.code.tex b/Master/texmf-dist/tex/generic/pgf/math/pgfmathoperations.code.tex new file mode 100644 index 00000000000..e5d1be605c1 --- /dev/null +++ b/Master/texmf-dist/tex/generic/pgf/math/pgfmathoperations.code.tex @@ -0,0 +1,781 @@ +% Copyright 2007 by Mark Wibrow +% +% This file may be distributed and/or modified +% +% 1. under the LaTeX Project Public License and/or +% 2. under the GNU Public License. +% +% See the file doc/generic/pgf/licenses/LICENSE for more details. + +% This file defines the mathematical functions and operators. +% +% Version 0.0 08/03/2007 + +% This file defines the mathematical functions and operators. +% +% Adding/redefining extra operators/functions: +% +% Each operator/function XXX has two forms: +% +% +% \pgfmathXXX#1... a public version which evaluates any +% arguments passed to it and passes the +% results on to... +% +% \pgfmathXXX@#1... a non-public version which performs +% required calculation on arguments which +% must have already been evaluated (i.e. +% *without* dimensions). +% +% If a function XXX is to be included in the parser, it is +% recommended, for consistency, that where possible, the +% pgfmathparser file should define the macro \pgfmath@parseXXX. +% The parser should (ideally) then call \pgfmathXXX@. +% +% It is recommend that the pgfmath versions of the pgf dimension +% and count registers be used, i.e., \pgfmath@x for \pgfmath@x, +% \c@pgfmath@counta for c@pgfmath@counta, and so on. These are currently +% \let to their pgf equivalents, but it may be necessary to change +% this. +% +% It is also recommened that all calculations (where necessary) +% take place within a TeX group. \pgfmath@returnone#1 makes and +% expanded version of #1 global and stores this in \pgfmathresult +% after the group is ended. +% + +\input pgfmathtrig.code.tex% Load the trig. stuff. +\input pgfmathrnd.code.tex% Load the random stuff. + + +% \pgfmathadd +% +% Add #1 and #2. +% +\def\pgfmathadd#1#2{% + \pgfmathparse{#1}\edef\pgfmath@adda{\pgfmathresult}% + \pgfmathparse{#2}\edef\pgfmath@addb{\pgfmathresult}% + \pgfmathadd@{\pgfmath@adda}{\pgfmath@addb}} +\def\pgfmathadd@#1#2{% + \begingroup% + \expandafter\pgfmath@x#1pt\relax% + \expandafter\pgfmath@y#2pt\relax% + \advance\pgfmath@x by\pgfmath@y% + \pgfmath@returnone\pgfmath@x% + \endgroup% +} + +% \pgfmathsubtract +% +% Subtract #2 from #1. +% +\def\pgfmathsubtract#1#2{% + \pgfmathparse{#1}\edef\pgfmath@subtracta{\pgfmathresult}% + \pgfmathparse{#2}\edef\pgfmath@subtractb{\pgfmathresult}% + \pgfmathsubtract@{\pgfmath@subtracta}{\pgfmath@subtractb}} + +\def\pgfmathsubtract@#1#2{% + \begingroup% + \expandafter\pgfmath@x#1pt\relax% + \expandafter\pgfmath@y#2pt\relax% + \advance\pgfmath@x by-\pgfmath@y% + \pgfmath@returnone\pgfmath@x% + \endgroup% +} + +% \pgfmathmultiply +% +% Multiply #1 by #2. +% +\def\pgfmathmultiply#1#2{% + \pgfmathparse{#1}\edef\pgfmath@multiplya{\pgfmathresult}% + \pgfmathparse{#2}\edef\pgfmath@multiplyb{\pgfmathresult}% + \pgfmathmultiply@{\pgfmath@multiplya}{\pgfmath@multiplyb}} +\def\pgfmathmultiply@#1#2{% + \begingroup% + \expandafter\pgfmath@x#1pt\relax% + \expandafter\pgfmath@x#2\pgfmath@x% + \pgfmath@returnone\pgfmath@x% + \endgroup% +} + +% \pgfmathdivide +% +% Divide #1 by #2. +% +\def\pgfmathdivide#1#2{% + \pgfmathparse{#1}\edef\pgfmath@dividea{\pgfmathresult}% + \pgfmathparse{#2}\edef\pgfmath@divideb{\pgfmathresult}% + \pgfmathdivide@{\pgfmath@dividea}{\pgfmath@divideb}} +\def\pgfmathdivide@#1#2{% + \begingroup% + \expandafter\pgfmath@x#1pt\relax% + % If #2 is an integer use TeX arithmatic. + \expandafter\pgfmath@xa#2pt\relax% + \afterassignment\pgfmath@xa% + \expandafter\c@pgfmath@counta\the\pgfmath@xa\relax% + \ifdim\pgfmath@xa=0pt\relax% + \ifnum\c@pgfmath@counta=0\relax% + \pgfmath@error{Division by zero.}{}% + \fi% + \divide\pgfmath@x\c@pgfmath@counta% + \else% + \pgfmathreciprocal@{#2}% + \pgfmath@x=\pgfmathresult\pgfmath@x% + \fi% + \pgfmath@returnone\pgfmath@x% + \endgroup% +} + +% \pgfmathgreaterthan +% +% 1.0 if #1 > #2. Otherwise 0.0 +% +\def\pgfmathgreaterthan#1#2{% + \pgfmathparse{#1}\edef\pgfmath@greaterthana{\pgfmathresult}% + \pgfmathparse{#2}\edef\pgfmath@greaterthanb{\pgfmathresult}% + \pgfmathgreaterthan@{\pgfmath@greaterthana}{\pgfmath@greaterthanb}} +\def\pgfmathgreaterthan@#1#2{% + \begingroup% + \expandafter\pgfmath@x#1pt\relax% + \expandafter\pgfmath@y#2pt\relax% + \advance\pgfmath@x-\pgfmath@y% + \ifdim\pgfmath@x>0pt\relax% + \pgfmath@x1pt\relax% + \else% + \pgfmath@x0pt\relax% + \fi% + \pgfmath@returnone\pgfmath@x% + \endgroup% +} + +% \pgfmathlessthan +% +% 1.0 if #1< #2. Otherwise 0.0 +% +\def\pgfmathlessthan#1#2{% + \pgfmathparse{#1}\edef\pgfmath@lessthana{\pgfmathresult}% + \pgfmathparse{#2}\edef\pgfmath@lessthanb{\pgfmathresult}% + \pgfmathlessthan@{\pgfmath@lessthana}{\pgfmath@lessthanb}} +\def\pgfmathlessthan@#1#2{% + \begingroup% + \expandafter\pgfmath@x#1pt\relax% + \expandafter\pgfmath@y#2pt\relax% + \advance\pgfmath@x-\pgfmath@y\relax% + \ifdim\pgfmath@x<0pt\relax% + \pgfmath@x1pt\relax% + \else% + \pgfmath@x0pt\relax% + \fi% + \pgfmath@returnone\pgfmath@x% + \endgroup% +} + +% \pgfmathequalto +% +% 1.0 if #1 = #2. Otherwise 0.0 +% +\def\pgfmathequalto#1#2{% + \pgfmathparse{#1}\edef\pgfmath@equaltoa{\pgfmathresult}% + \pgfmathparse{#2}\edef\pgfmath@equaltob{\pgfmathresult}% + \pgfmathadd@{\pgfmath@equaltoa}{\pgfmath@equaltob}} +\def\pgfmathequalto@#1#2{% + \begingroup% + \expandafter\pgfmath@x#1pt\relax% + \expandafter\pgfmath@y#2pt\relax% + \advance\pgfmath@x-\pgfmath@y% + \ifdim\pgfmath@x=0pt\relax% + \pgfmath@x1pt\relax% + \else% + \pgfmath@x0pt\relax% + \fi% + \pgfmath@returnone\pgfmath@x% + \endgroup% +} + +% \pgfmathreciprocal +% +% 1 / #1 +% +\def\pgfmathreciprocal#1{% + \pgfmathparse{#1}% + \pgfmathreciprocal@{\pgfmathresult}} +\def\pgfmathreciprocal@#1{% + \begingroup% + \expandafter\pgfmath@x#1pt\relax% + \ifdim\pgfmath@x=0pt\relax% + \pgfmath@error{Division by zero.}{}% + \fi% + \edef\pgfmath@reciprocaltemp{\pgfmath@tonumber{\pgfmath@x}}% + \expandafter\pgfmathreciprocal@@\pgfmath@reciprocaltemp00000\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% + \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% + \pgfmath@returnone\pgfmath@x% + \endgroup +} + + +% \pgfmathabs +% +% Calculate |#1| +% +\def\pgfmathabs#1{% + \pgfmathparse{#1}% + \pgfmathabsolute@{\pgfmathresult}} +\def\pgfmathabs@#1{% + \begingroup% + \expandafter\pgfmath@x#1pt\relax% + \ifdim\pgfmath@x<0pt\relax% + \pgfmath@x=-\pgfmath@x% + \fi% + \pgfmath@returnone\pgfmath@x% + \endgroup% +} + +% \pgfmathmod +% +% Calculate #1 mod #2. +% +\def\pgfmathmod#1#2{% + \pgfmathparse{#1}\edef\pgfmath@moda{\pgfmathresult}% + \pgfmathparse{#2}\edef\pgfmath@modb{\pgfmathresult}% + \pgfmathmod@{\pgfmath@mod@a}{\pgfmath@modb}% +} +\def\pgfmathmod@#1#2{% + \begingroup% + \expandafter\pgfmath@x#1pt\relax% + \pgfmath@xa\pgfmath@x% + \expandafter\pgfmath@xb#2pt\relax% + \c@pgfmath@counta=\pgfmath@xa% + \c@pgfmath@countb=\pgfmath@xb% + \divide\c@pgfmath@counta\c@pgfmath@countb% + \multiply\pgfmath@xb\c@pgfmath@counta% + \advance\pgfmath@x-\pgfmath@xb% + \pgfmath@returnone\pgfmath@x% + \endgroup% +} + +% \pgfmathsqrt +% +% Square-root of #1. +% +% +\def\pgfmathsqrt#1{% + \pgfmathparse{#1}% + \pgfmathsqrt{\pgfmathresult}} +\def\pgfmathsqrt@#1{% + \begingroup% + \expandafter\pgfmath@x#1pt\relax% + \ifdim\pgfmath@x>9999pt\relax% + \def\pgfmath@zeros{0}% + \def\pgfmath@targetiterations{3}% + \else% + \ifdim\pgfmath@x>999pt\relax% + \def\pgfmath@zeros{}% + \def\pgfmath@targetiterations{2}% + \else% + \ifdim\pgfmath@x>99pt\relax% + \def\pgfmath@zeros{0}% + \def\pgfmath@targetiterations{2}% + \else% + \ifdim\pgfmath@x>9pt\relax% + \def\pgfmath@zeros{}% + \def\pgfmath@targetiterations{1}% + \else% + \ifdim\pgfmath@x<0pt\relax% + \pgfmath@error{Cannot calculate the square-root of the negative number `#1'}{}% + \else% + \def\pgfmath@zeros{0}% + \def\pgfmath@targetiterations{1}% + \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@counta9\relax% + \else% + \c@pgfmath@counta8\relax% + \fi% + \else% + \ifnum\c@pgfmath@countb>48\relax% + \c@pgfmath@counta7\relax% + \else% + \c@pgfmath@counta6\relax% + \fi% + \fi% + \else% + \ifnum\c@pgfmath@countb>15\relax% + \ifnum\c@pgfmath@countb>24\relax% + \c@pgfmath@counta5\relax% + \else% + \c@pgfmath@counta4\relax% + \fi% + \else% + \ifnum\c@pgfmath@countb>3\relax% + \ifnum\c@pgfmath@countb>8\relax% + \c@pgfmath@counta3\relax% + \else% + \c@pgfmath@counta2\relax% + \fi% + \else% + \ifnum\c@pgfmath@countb>0\relax% + \c@pgfmath@counta1\relax% + \else% + \c@pgfmath@counta0\relax% + \fi% + \fi% + \fi% + \fi% + \edef\pgfmath@root{\the\c@pgfmath@counta}% + \edef\pgfmath@rootspecial{\the\c@pgfmath@counta}% + \multiply\c@pgfmath@counta-\c@pgfmath@counta\relax% + \advance\c@pgfmath@counta#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@counta20\relax% + \c@pgfmath@countb\c@pgfmath@counta% + \multiply\c@pgfmath@countb6\relax% + \advance\c@pgfmath@countb36\relax% + \c@pgfmath@countc\c@pgfmath@counta\relax% + \multiply\c@pgfmath@countc2\relax% + \ifnum\c@pgfmath@countb>\pgfmath@remainder\relax% + \advance\c@pgfmath@countb-\c@pgfmath@countc% + \advance\c@pgfmath@countb-20\relax% + \ifnum\c@pgfmath@countb>\pgfmath@remainder\relax% + \advance\c@pgfmath@countb-\c@pgfmath@countc% + \advance\c@pgfmath@countb-12\relax% + \ifnum\c@pgfmath@countb>\pgfmath@remainder\relax% + \advance\c@pgfmath@countb-\c@pgfmath@counta% + \advance\c@pgfmath@countb-3\relax% + \ifnum\c@pgfmath@countb>\pgfmath@remainder\relax% + \def\pgfmath@digit{0}% + \else% + \def\pgfmath@digit{1}% + \fi% + \else% + \advance\c@pgfmath@countb\c@pgfmath@counta% + \advance\c@pgfmath@countb5\relax% + \ifnum\c@pgfmath@countb>\pgfmath@remainder\relax% + \def\pgfmath@digit{2}% + \else% + \def\pgfmath@digit{3}% + \fi% + \fi% + \else% + \advance\c@pgfmath@countb\c@pgfmath@counta% + \advance\c@pgfmath@countb9\relax% + \ifnum\c@pgfmath@countb>\pgfmath@remainder\relax% + \def\pgfmath@digit{4}% + \else% + \def\pgfmath@digit{5}% + \fi% + \fi% + \else% + \advance\c@pgfmath@countb\c@pgfmath@countc% + \advance\c@pgfmath@countb28\relax% + \ifnum\c@pgfmath@countb>\pgfmath@remainder\relax% + \advance\c@pgfmath@countb-\c@pgfmath@counta% + \advance\c@pgfmath@countb-15\relax% + \ifnum\c@pgfmath@countb>\pgfmath@remainder\relax% + \def\pgfmath@digit{6}% + \else% + \def\pgfmath@digit{7}% + \fi% + \else% + \advance\c@pgfmath@countb\c@pgfmath@counta% + \advance\c@pgfmath@countb17\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\pgfmath@digit\relax% + \multiply\c@pgfmath@counta-\pgfmath@digit\relax% + \advance\c@pgfmath@counta\pgfmath@remainder\relax% + \edef\pgfmath@remainder{\the\c@pgfmath@counta}% + \c@pgfmath@counta\pgfmath@targetiterations\relax% + \advance\c@pgfmath@counta-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% + \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} + +% \pgfmathpow +% +% Calculates #1 ^ #2 +% +% #2 is expected to be an integer. +% +\def\pgfmathpow#1#2{% + \pgfmathparse{#1}\edef\pgfmath@powera{\pgfmathresult}% + \pgfmathparse{#2}\edef\pgfmath@powerb{\pgfmathresult}% + \pgfmathpow@{\pgfmath@powera}{\pgfmath@powerb}} +\def\pgfmathpow@#1#2{% + \begingroup% + \expandafter\pgfmath@xa#1pt\relax% + \afterassignment\pgfmath@gobbletilpgfmath@% + \expandafter\c@pgfmath@counta#2\relax\pgfmath@ + % If #2 is negative, take the reciprocal of #1 + % and the absolute value of #2, and carry on. + % + \ifnum\c@pgfmath@counta<0\relax% + \c@pgfmath@counta-\c@pgfmath@counta% + \pgfmathreciprocal@{#1}% + \pgfmath@xa\pgfmathresult pt\relax% + \fi% + \pgfmath@x=1pt\relax% + \pgfmathloop% + \ifnum\c@pgfmath@counta>0\relax% + \ifodd\c@pgfmath@counta% + \pgfmath@x\pgfmath@tonumber{\pgfmath@x}\pgfmath@xa% + \fi + \ifnum\c@pgfmath@counta>1\relax% + \pgfmath@xa=\pgfmath@tonumber{\pgfmath@xa}\pgfmath@xa% + \fi% + \divide\c@pgfmath@counta by 2\relax% + \repeatpgfmathloop% + \pgfmath@returnone\pgfmath@x% + \endgroup% +} + + +% \pgfmathround +% +% Half-up rounding. +% +\def\pgfmathround#1{% + \pgfmathparse{#1}% + \pgfmathround@{\pgfmathresult}} +\def\pgfmathround@#1{% + \begingroup% + \expandafter\pgfmath@x#1pt\relax% + \afterassignment\pgfmath@xa% + \expandafter\c@pgfmath@counta\the\pgfmath@x\relax% + \pgfmath@xb\pgfmath@x% + \ifdim\pgfmath@xb<0pt\relax% + \ifdim\pgfmath@xa<0.5pt\relax% + \else% + \advance\c@pgfmath@counta-1\relax% + \fi% + \else% + \ifdim\pgfmath@xa<0.5pt\relax% + \else% + \advance\c@pgfmath@counta1\relax% + \fi% + \fi% + \pgfmath@returnone\c@pgfmath@counta% + \endgroup% +}% + +% \pgfmathfloor +% +% Floor function. +% +\def\pgfmathfloor#1{% + \pgfmathparse{#1}% + \expandafter\pgfmathfloor@\expandafter{\pgfmathresult}} +\def\pgfmathfloor@#1{% + \begingroup% + \expandafter\pgfmath@x#1pt\relax% + \afterassignment\pgfmath@gobbletilpgfmath@% + \expandafter\c@pgfmath@counta\the\pgfmath@x\relax\pgfmath@% + \pgfmath@x\c@pgfmath@counta pt\relax% + \pgfmath@returnone\pgfmath@x% + \endgroup +}% + +% \pgfmathceil +% +% Ceiling function. +% +\def\pgfmathceil#1{% + \pgfmathparse{#1}% + \expandafter\pgfmathceil@\expandafter{\pgfmathresult}} +\def\pgfmathceil@#1{% + \begingroup% + \expandafter\pgfmath@x#1pt\relax% + \afterassignment\pgfmath@gobbletilpgfmath@% + \expandafter\c@pgfmath@counta\the\pgfmath@x\relax\pgfmath@% + \pgfmath@y\pgfmath@x% + \advance\pgfmath@y-\c@pgfmath@counta pt\relax% + \pgfmath@x\c@pgfmath@counta pt\relax% + \ifdim\pgfmath@y>0pt\relax% + \advance\pgfmath@x1pt\relax% + \fi% + \pgfmath@returnone\pgfmath@x% + \endgroup% +}% + +% \pgfmathexp +% +% A Maclaurens expansion for e^#1. +% 0 <= #1 < ln(16384). +% +\def\pgfmathexp#1{% + \pgfmathparse{#1}% + \expandafter\pgfmathexp@\expandafter{\pgfmathresult}} +\def\pgfmathexp@#1{% + \begingroup% + \pgfmath@x1pt\relax% + \pgfmath@xa1pt\relax% + \pgfmath@xb\pgfmath@x% + \pgfmathloop% + \pgfmath@xc\pgfmathcounter pt\relax% + \c@pgfmath@counta\pgfmath@xc% + \divide\c@pgfmath@counta65536\relax% + \pgfmath@xc1pt\relax% + \divide\pgfmath@xc\c@pgfmath@counta% + \pgfmath@xa\pgfmath@tonumber{\pgfmath@xc}\pgfmath@xa% + \expandafter\pgfmath@xa#1\pgfmath@xa% + \advance\pgfmath@x\pgfmath@xa% + \ifdim\pgfmath@x=\pgfmath@xb% + \else% + \pgfmath@xb\pgfmath@x% + \repeatpgfmathloop% + \pgfmath@returnone\pgfmath@x% + \endgroup% +} + + + +% \pgfmathvectorlength +% +% Calcluate the Eulidean length of a 2D vector. +% +% This based on polynomial approximation co-efficents +% contributed by Rouben Rostamian. +% +% #1 - the x component of the vector. +% #2 - the y component of the vector. +% +% P(x) = c0 + x^2 * (c1 + x^2 * (c2 + x^2 * ( c3 + c4 * x^2))) +\def\pgfmath@cE{-0.01019} +\def\pgfmath@cD{0.04453} +\def\pgfmath@cC{-0.11951} +\def\pgfmath@cB{0.49936} +\def\pgfmath@cA{1.00001} + +\def\pgfmathveclen#1#2{% + \pgfmathparse{#1}\edef\pgfmath@vecx{\pgfmathresult}% + \pgfmathparse{#2}\edef\pgfmath@vecy{\pgfmathresult}% + \pgfmathveclen@{\pgfmath@vecx}{\pgfmath@vecy}% +} +\def\pgfmathveclen@#1#2{% + \begingroup% + \expandafter\pgfmath@x#1pt\relax% + \expandafter\pgfmath@y#2pt\relax% + \pgfmath@xa\pgfmath@x% + \ifdim\pgfmath@xa=0pt\relax% + \pgfmath@xa\pgfmath@y% + \fi% + \ifdim\pgfmath@xa=0pt\relax% + \else% + \ifdim\pgfmath@x<0pt\relax\pgfmath@x-\pgfmath@x\fi% + \ifdim\pgfmath@y<0pt\relax\pgfmath@y-\pgfmath@y\fi% + \ifdim\pgfmath@x>\pgfmath@y% + \pgfmath@xa\pgfmath@x% + \pgfmath@x\pgfmath@y% + \pgfmath@y\pgfmath@xa% + \fi% + % We use a scaling factor to reduce errors. + \ifdim\pgfmath@y>10000pt\relax% + \c@pgfmath@counta1500\relax% + \else% + \ifdim\pgfmath@y>1000pt\relax% + \c@pgfmath@counta150\relax% + \else% + \ifdim\pgfmath@y>100pt\relax% + \c@pgfmath@counta50\relax% + \else% + \c@pgfmath@counta1\relax% + \fi% + \fi% + \fi% + \divide\pgfmath@x by\c@pgfmath@counta\relax% + \divide\pgfmath@y by\c@pgfmath@counta\relax% + \pgfmathreciprocal@{\pgfmath@tonumber{\pgfmath@y}}% + \pgfmath@x=\pgfmathresult\pgfmath@x% + \pgfmath@xa=\pgfmath@tonumber{\pgfmath@x}\pgfmath@x% + \edef\pgfmath@xsq{\pgfmath@tonumber{\pgfmath@xa}}% + \pgfmath@x=\pgfmath@cE\pgfmath@xa% + \advance\pgfmath@x by\pgfmath@cD pt\relax% + \pgfmath@x=\pgfmath@xsq\pgfmath@x% + \advance\pgfmath@x by\pgfmath@cC pt\relax% + \pgfmath@x=\pgfmath@xsq\pgfmath@x% + \advance\pgfmath@x by\pgfmath@cB pt\relax% + \pgfmath@x=\pgfmath@xsq\pgfmath@x% + \advance\pgfmath@x by\pgfmath@cA pt\relax% + \ifdim\pgfmath@y<0pt\relax% + \pgfmath@y=-\pgfmath@y% + \fi% + \pgfmath@x=\pgfmath@tonumber{\pgfmath@y}\pgfmath@x% + % Invert the scaling factor. + \multiply\pgfmath@x by\c@pgfmath@counta\relax% + \fi% + \pgfmath@returnone\pgfmath@x% + \endgroup% +} + +% \pgfmathmax +% +% Return the maximum of #1 or #2 +% +\def\pgfmathmax#1#2{% + \pgfmathparse@{#1}\edef\pgfmath@firstoperand{\pgfmathresult}% + \pgfmathparse@{#2}\edef\pgfmath@secondoperand{\pgfmathresult}% + \pgfmathmax@{\pgfmath@firstoperand}{\pgfmath@secondoperand}} +\def\pgfmathmax@#1#2{% + \begingroup + \expandafter\pgfmath@x#1pt\relax% + \expandafter\pgfmath@y#2pt\relax% + \ifdim\pgfmath@x>\pgfmath@y% + \pgfmath@returnone\pgfmath@x% + \else% + \pgfmath@returnone\pgfmath@y% + \fi% + \endgroup} + +% \pgfmathmax +% +% Return the minimim of #1 or #2 +% +\def\pgfmathmin#1#2{% + \pgfmathparse@{#1}\edef\pgfmath@firstoperand{\pgfmathresult}% + \pgfmathparse@{#2}\edef\pgfmath@secondoperand{\pgfmathresult}% + \pgfmathmin@{\pgfmath@firstoperand}{\pgfmath@secondoperand}} +\def\pgfmathmin@#1#2{% + \begingroup + \expandafter\pgfmath@x#1pt\relax% + \expandafter\pgfmath@y#2pt\relax% + \ifdim\pgfmath@x<\pgfmath@y% + \pgfmath@returnone\pgfmath@x% + \else% + \pgfmath@returnone\pgfmath@y% + \fi% + \endgroup% +} + +% \pgfmathscientific +% +% Return the value of #1e#2 +% +% e.g. \pgfmathscientific{1.23456789123}{4} +% +% defines \pgfmathresult as 12345.67891 +% +% NB This arguments *are not parsed*, as the long mantissa would be lost. +% +\def\pgfmathscientific#1#2{% + \begingroup% + \edef\pgfmath@sci@exponent{#2}% + \pgfmath@x#1pt\relax% + \ifdim\pgfmath@x<0pt\relax% + \pgfmath@x-\pgfmath@x% + \edef\pgfmath@sci@sign{-}% + \edef\pgfmath@temp{\pgfmath@gobbleone#1}% + \else% + \edef\pgfmath@sci@sign{+}% + \edef\pgfmath@temp{#1}% + \fi% + \expandafter\pgfmath@scientific@@\pgfmath@temp00000000000\pgfmath@} + +\def\pgfmath@scientific@@#1.#2#3#4#5#6{% + \edef\pgfmath@sci@int{#1}% + \edef\pgfmath@sci@mantissaA{#2#3#4#5#6}% + \pgfmath@scientific@@@} + +\def\pgfmath@scientific@@@#1#2#3#4#5#6\pgfmath@{% + \edef\pgfmath@sci@mantissaB{#1#2#3#4#5}% + \c@pgfmath@counta\pgfmath@sci@exponent\relax% + \c@pgfmath@countb\c@pgfmath@counta% + \ifnum\c@pgfmath@counta<0\relax% + \c@pgfmath@counta-\c@pgfmath@counta% + \fi% + \pgfmathpow@{10}{\the\c@pgfmath@counta}% + \afterassignment\pgfmath@gobbletilpgfmath@ + \c@pgfmath@countc\pgfmathresult\relax\pgfmath@ + \edef\pgfmath@sci@factor{\the\c@pgfmath@countc}% + \ifnum\c@pgfmath@countb<0\relax% + % xE-y: easy... + \pgfmath@x\pgfmath@sci@int.\pgfmath@sci@mantissaA pt\relax% + \divide\pgfmath@x\pgfmath@sci@factor\relax% + \else% + % xE+y: + % Must do this way so as not lose digits in a long mantissa. Sigh... + \c@pgfmath@counta\pgfmath@sci@int% + \c@pgfmath@countb\pgfmath@sci@mantissaA% + \multiply\c@pgfmath@counta\pgfmath@sci@factor\relax% + \multiply\c@pgfmath@countb\pgfmath@sci@factor\relax% + \c@pgfmath@countc\c@pgfmath@countb% + \divide\c@pgfmath@countb100000\relax% + \advance\c@pgfmath@counta\c@pgfmath@countb% + \multiply\c@pgfmath@countb100000\relax% + \advance\c@pgfmath@countc-\c@pgfmath@countb% + \c@pgfmath@countb\pgfmath@sci@mantissaB\relax% + \multiply\c@pgfmath@countb\pgfmath@sci@factor\relax% + \divide\c@pgfmath@countb100000\relax% + \advance\c@pgfmath@countc\c@pgfmath@countb% + \advance\c@pgfmath@countc100000\relax% + \edef\pgfmath@sci@result{\pgfmath@sci@sign\the\c@pgfmath@counta.\expandafter\pgfmath@gobbleone\the\c@pgfmath@countc pt}% + \pgfmath@x\pgfmath@sci@result\relax% + \fi% + \pgfmath@returnone\pgfmath@x% + \endgroup}
\ No newline at end of file diff --git a/Master/texmf-dist/tex/generic/pgf/math/pgfmathparser.code.tex b/Master/texmf-dist/tex/generic/pgf/math/pgfmathparser.code.tex new file mode 100644 index 00000000000..809de3879ff --- /dev/null +++ b/Master/texmf-dist/tex/generic/pgf/math/pgfmathparser.code.tex @@ -0,0 +1,912 @@ +% This file parses/evaluates a decimal expression. +% +% (c) 2007 Mark Wibrow +% +% but subject to the LaTeX Project Public License, +% (http://www.latex-project.org/lppl.txt) +% +% and the GNU Public License, +% (http://www.gnu.org/licenses/gpl.txt) + +% \pgfmathparse, \pgfmathqparse +% +% Evaluates a decimal expression. +% +% #1 - the expression. +% +% returns +% +% x = the result as a dimension. +% +% E.g. +% \pgfmathparse{3pt*2cm+1.5} +% \pgfmathqparse{3pt*2cm+1.5pt} +% +% Every number in \pgfmathqparse *must* +% specify a unit. +% +\newif\ifpgfmath@quickparse + +\def\pgfmathparse{% + \pgfmath@quickparsefalse% + \pgfmathparse@} + +\def\pgfmathqparse{% + \pgfmath@quickparsetrue% + \pgfmathparse@} + +\def\pgfmathparse@#1{% + \begingroup% + % Reinstall correct font, so that dimensions like 1em are correct + \pgfutil@selectfont% + \edef\pgfmath@temp{#1}% + \pgfmath@resetparsingparameters% + \global\pgfmathunitsdeclaredfalse% + \ifpgfmath@quickparse% + \let\pgfmath@parseoperand\pgfmath@quickparseoperand% + \else% + \let\pgfmath@parseoperand\pgfmath@parseoperand% + \fi% + \let\pgfmath@parsepostgroup\pgfmath@parseoperator% + \expandafter\pgfmath@parse@\pgfmath@temp @@@@@@@@@@@\pgfmath@empty} + + +% \pgfmath@resetparsingparameters +% +% Reset the stack at the begining of the parse/group. +% +\def\pgfmath@resetparsingparameters{% + \pgfmath@stack{\pgfmath@empty\pgfmath@empty\pgfmath@empty\pgfmath@empty}% + \def\pgfmath@stacknextoperator{\pgfmath@empty}% Will not work with \let +} +% \pgfmath@parse@ +% +% Start parsing. Expect one of +% 1) the end of the parse +% 2) the start of a group +% 3) a (possible) operand. +% +\def\pgfmath@parse@#1{% + \def\pgfmath@token{}% + \ifx#1@% + \let\pgfmath@parsenext\pgfmath@endparse% + \else% + \ifx#1(% + \let\pgfmath@parsenext\pgfmath@startparsegroup% + \else% + \edef\pgfmath@token{#1}% + \let\pgfmath@parsenext\pgfmath@parseoperand% + \fi\fi% + \pgfmath@parsenext% +} + +% If no TeX units are declared *at any point* in the parse +% the result is scaled by \pgfmathresultunitscale. +\newif\ifpgfmathunitsdeclared +\def\pgfmathsetresultunitscale#1{\def\pgfmathresultunitscale{#1}} +\def\pgfmathresultunitscale{1} + +% \pgfmath@endparse +% +% Everything stops here. +% +\def\pgfmath@endparse#1\pgfmath@empty{% + \pgfmath@processalloperations% + \pgfmath@stackpop{\pgfmathresult}% + \begingroup% + \ifpgfmathunitsdeclared% + \pgfmath@x1pt\relax% + \else% + \afterassignment\pgfmath@gobbletilpgfmath@% + \pgfmath@x\pgfmathresultunitscale pt\relax\pgfmath@% + \fi% + \expandafter\pgfmath@x\pgfmathresult\pgfmath@x% + \pgfmath@returnone\pgfmath@x% + \endgroup% + \pgfmath@smuggleone{\pgfmathresult}% + \endgroup% +} + +% \pgfmath@startparsegroup +% +% When opening ( is scanned start a new group. +% +\def\pgfmath@startparsegroup{% + \begingroup% + \let\pgfmath@parsepostgroup\pgfmath@parseoperator% + \pgfmath@resetparsingparameters% + \pgfmath@parse@} + +% \pgfmath@endparsegroup +% +% When closing ) is scanned, processes all waiting +% operations (within the group) and close the group. +% +\def\pgfmath@endparsegroup{% + \pgfmath@processalloperations% + \pgfmath@stackpop{\pgfmathresult}% + \expandafter\pgfmath@x\pgfmathresult pt\relax% + \pgfmath@returnone\pgfmath@x% + \endgroup% + \pgfmath@parsepostgroup% +} + +% \pgfmath@parseoperator +% +% An operator is expected here. +% Or the end of the parse or parse group. +% +\def\pgfmath@parseoperator#1{% + \def\pgfmath@token{}% + % Push the operand in \pgfmathresult on to the stack. + \expandafter\pgfmath@stackpushoperand\expandafter{\pgfmathresult}% + \ifx#1@% + \let\pgfmath@parsenext\pgfmath@endparse% + \else% + \ifx#1+% + \let\pgfmath@parsenext\pgfmath@parseadd% + \else% + \ifx#1-% + \let\pgfmath@parsenext\pgfmath@parsesubtract% + \else% + \ifx#1*% + \let\pgfmath@parsenext\pgfmath@parsemultiply% + \else% + \ifx#1/% + \let\pgfmath@parsenext\pgfmath@parsedivide% + \else + \ifx#1)% + \let\pgfmath@parsenext\pgfmath@endparsegroup% + \else% + \ifx#1r% + \let\pgfmath@parsenext\pgfmath@parseradians% + \else% + \ifx#1>% + \let\pgfmath@parsenext\pgfmath@parsegreaterthan% + \else% + \ifx#1<% + \let\pgfmath@parsenext\pgfmath@parselessthan% + \else% + \if#1=% + \let\pgfmath@parsenext\pgfmath@parseequalto% + \else% + \if#1^% + \let\pgfmath@parsenext\pgfmath@parsepower% + \else% + \pgfmath@error{Unknown operator `#1'}% + \let\pgfmath@parsenext\relax% + \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi% + \pgfmath@parsenext% +} + +% Use a \toks register as a stack. +\newtoks\pgfmath@stack + +% \pgfmath@stackpushoperator +% +% Push an operator (actually its macro e.g., \pgfmathadd@) +% on to the stack. And keep track of it using the macro +% \pgfmath@stacknextoperator. +% +\def\pgfmath@stackpushoperator#1{% + \edef\pgfmath@temp{\noexpand#1\the\pgfmath@stack}% + \expandafter\pgfmath@stack\expandafter{\pgfmath@temp}% + \def\pgfmath@stacknextoperator{#1}}% <- Must \def. Cannot \let. + +% \pgfmath@stackpushoperand +% +% Push an operand (i.e. a number) on the stack. It is +% put within a TeX group to make popping a lot simpler. +% +\def\pgfmath@stackpushoperand#1{% + \edef\pgfmath@temp{{#1}\the\pgfmath@stack}% + \expandafter\pgfmath@stack\expandafter{\pgfmath@temp}% +} + +% \pgfmath@stackpeek +% +% Peek (i.e. without removal) at the top of the stack. +% +\def\pgfmath@stackpeek{\expandafter\pgfmath@stackpeek@\the\pgfmath@stack\pgfmath@} +\def\pgfmath@stackpeek@#1#2\pgfmath@{#1}% + +% \pgfmath@stackpop +% +% Pop (i.e. remove) the top of the stack into #1. +% +\def\pgfmath@stackpop#1{\expandafter\pgfmath@stackpop@\expandafter#1\the\pgfmath@stack\pgfmath@} +\def\pgfmath@stackpop@#1#2#3\pgfmath@{\edef#1{#2}\pgfmath@stack{#3}}% + +% \pgfmath@stackpopoperation +% +% Remove and perform an operation from the stack. +% +\def\pgfmath@stackpopoperation{% + \expandafter\pgfmath@stackpopoperation@\the\pgfmath@stack\pgfmath@% +} +\def\pgfmath@stackpopoperation@#1#2#3#4#5\pgfmath@{% + \ifx\pgfmath@empty#1\relax% + \pgfmath@stack{\pgfmath@empty\pgfmath@empty\pgfmath@empty\pgfmath@empty}% + \else% + \ifx\pgfmath@empty#2\relax% + \pgfmath@stack{{#1}\pgfmath@empty\pgfmath@empty\pgfmath@empty\pgfmath@empty}% + \else% + #2{#3}{#1}% + \pgfmath@stack{#4#5}% + \expandafter\pgfmath@stackpushoperand\expandafter{\pgfmathresult}% + \fi\fi% + \def\pgfmath@stacknextoperator{#4}} + +% \pgfmath@processalloperations +% +% Process all operation in the stack. The +% overall result is at the top of the stack. +% +\def\pgfmath@processalloperations{% + \expandafter\pgfutil@in@\pgfmath@stacknextoperator{\pgfmath@empty}% + \ifpgfutil@in@% + \let\pgfmath@processnext\relax% + \else% + \pgfmath@stackpopoperation% + \let\pgfmath@processnext\pgfmath@processalloperations% + \fi% + \pgfmath@processnext} + +% \pgfmath@processoperationsuntil +% +% Process operations in the stack, until the specified +% operation/s is/are encountered. The overall result is +% at the top of the stack. +% +\def\pgfmath@processoperationsuntil#1{% + \expandafter\pgfutil@in@\pgfmath@stacknextoperator{#1\pgfmath@empty}% + \ifpgfutil@in@% + \let\pgfmath@processnext\pgfmath@processoperationsuntil@end% + \else% + \pgfmath@stackpopoperation% + \let\pgfmath@processnext\pgfmath@processoperationsuntil% + \fi% + \pgfmath@processnext{#1}} +\def\pgfmath@processoperationsuntil@end#1{} + + +% OK. Now the operators are parsed. +% These correspond to the + - / * ^ < > = mod and r operators +% +\def\pgfmath@parseadd{% + % If no operator has been assigned (i.e. + is the first operator scanned), + % do nothing, except add addition to the stack. + \ifx\pgfmath@stacknextoperator\pgfmath@empty% + \else% + % Empty the process stack up to any inequalities. + \pgfmath@processoperationsuntil{\pgfmathequalto@\pgfmathlessthan@\pgfmathgreaterthan@}% + \fi% + \pgfmath@stackpushoperator{\pgfmathadd@}% + \pgfmath@parse@} + +\def\pgfmath@parsesubtract{% + % If no operator has been assigned (i.e. - is the first operator scanned), + % do nothing, except add subtract to the stack. + \ifx\pgfmath@stacknextoperator\pgfmath@empty% + \else% + % Empty the process stack up to any inequalities. + \pgfmath@processoperationsuntil{\pgfmathequalto@\pgfmathlessthan@\pgfmathgreaterthan@}% + \fi% + \pgfmath@stackpushoperator{\pgfmathsubtract@}% + \pgfmath@parse@} + + +\def\pgfmath@parsemultiply{% + % If no operator has been assigned (i.e. * is the first operator scanned), + % do nothing, except push multiply onto the stack. + \ifx\pgfmath@stacknextoperator\pgfmath@empty% + \else% + % Process all operations up to inequalites or addition/subtraction + \pgfmath@processoperationsuntil{\pgfmathequalto@\pgfmathlessthan@\pgfmathgreaterthan@% + \pgfmathadd@\pgfmathsubtract@}% + \fi% + \pgfmath@stackpushoperator{\pgfmathmultiply@}% + \pgfmath@parse@} + +\def\pgfmath@parsedivide{% + % If no operator has been assigned (i.e. / is the first operator scanned), + % do nothing, except push divide onto the stack. + \ifx\pgfmath@stacknextoperator\pgfmath@empty% + \else% + % Process all operations up to inequalites or addition/subtraction + \pgfmath@processoperationsuntil{\pgfmathequalto@\pgfmathlessthan@\pgfmathgreaterthan@% + \pgfmathadd@\pgfmathsubtract@}% + \fi% + \pgfmath@stackpushoperator{\pgfmathdivide@}% + \pgfmath@parse@} + +\def\pgfmath@parsegreaterthan{% + % On scanning an equality/inequality operator everything up to + % (but not including) the operator is evaluated... + \pgfmath@processalloperations% + % ...and the operation pushed onto the stack. + \pgfmath@stackpushoperator{\pgfmathgreaterthan@}% + \pgfmath@parse@} + +\def\pgfmath@parselessthan{% + \pgfmath@processalloperations% + \pgfmath@stackpushoperator{\pgfmathlessthan@}% + \pgfmath@parse@} + +\def\pgfmath@parseequalto={% + \pgfmath@processalloperations% + \pgfmath@stackpushoperator{\pgfmathequalto@}% + \pgfmath@parse@} + +\def\pgfmath@parsepower{% + % Easy, just push power onto the stack. + \pgfmath@stackpushoperator{\pgfmathpow@}% + \pgfmath@parse@} + +\def\pgfmath@parseradians{% + % Actually this is a post-fix function... + \ifx\pgfmath@primaryoperation\pgfmath@empty% + \else% + \pgfmath@processoperationsuntil{\pgfmathequalto@\pgfmathlessthan@\pgfmathgreaterthan@% + \pgfmathadd@\pgfmathsubtract@}% + \fi% + \pgfmath@stackpop{\pgfmath@temp}% + \pgfmathdeg@{\pgfmath@temp}% + % ...so processing returns to \pgfmath@parseoperator + \pgfmath@parseoperator} + +\newcount\c@pgfmath@parsecounta +\newcount\c@pgfmath@parsecountb +\newcount\c@pgfmath@parsecountc +\newdimen\pgfmath@parsex + +% \pgfmath@quickparseoperand +% +% An operand can *only* be a dimension. +% +\def\pgfmath@quickparseoperand{% + \afterassignment\pgfmath@quickparseoperand@% + \pgfmath@parsex\pgfmath@token} +\def\pgfmath@quickparseoperand@{% + \edef\pgfmathresult{\pgfmath@tonumber{\pgfmath@parsex}} + \pgfmath@parseoperator% +} + +% \pgfmath@parseoperand +% +% An operand can be an ASCII number (with or without dimensions, with +% or without a decimal point), a TeX register (count, dimen or skip, +% which may have expanded with \the), or a function e.g. sin(X). +% +% It is assumed that after \edef-ing, the only unexpanded tokens are registers. +% +\def\pgfmath@parseoperand{% + \def\pgfmath@sign{}% + \expandafter\pgfmath@parseoperandsign\pgfmath@token} +\def\pgfmath@parseoperandsign#1{% + \pgfmath@in@#1{-+}% + \ifpgfmath@in@ + % I suppose there are (silly) people who might complain if + % they can't say 2---5, or 3+-----7. Just for them... + \edef\pgfmath@sign{\pgfmath@sign#1}% + \expandafter\pgfmath@parseoperandsign% + \else% + \expandafter\pgfmath@parsenumberorfunction\expandafter#1% + \fi% +} + + +\newif\ifpgfmath@dimen@ + +\def\pgfmath@ifregisterdimen@#1\pgfmath@{% + \pgfmath@in@{p}{#1}% + \ifpgfmath@in@% + \pgfmath@dimen@true% + \else% + \pgfmath@dimen@false% + \fi} + + +\def\pgfmath@parsenumberorfunction#1{% + \let\pgfmath@parsenext\pgfmath@parsenumberorfunction@simple% + \ifx#1\wd\let\pgfmath@parsenext\pgfmath@boxdimen\fi% + \ifx#1\ht\let\pgfmath@parsenext\pgfmath@boxdimen\fi% + \ifx#1\dp\let\pgfmath@parsenext\pgfmath@boxdimen\fi% + \pgfmath@parsenext#1% +} + +\def\pgfmath@boxdimen#1#2{% + \pgfmath@parsex=#1#2% + \edef\pgfmathresult{\pgfmath@tonumber{\pgfmath@parsex}}% + \global\pgfmathunitsdeclaredtrue% a dimension has units + \pgfmath@parseoperator% +} + +\def\pgfmath@parsenumberorfunction@simple#1{% + \expandafter\ifcat#1\relax% + % So, a TeX register. + \afterassignment\pgfmath@ifregisterdimen@% + \pgfmath@parsex\pgfmath@sign#1pt\relax\pgfmath@% + \ifpgfmath@dimen@% + % A dimension! So stop scanning operand here. + \edef\pgfmathresult{\pgfmath@tonumber{\pgfmath@parsex}}% + \global\pgfmathunitsdeclaredtrue% a dimension has units + \def\pgfmath@temp{}% + \let\pgfmath@parsenext\pgfmath@parseoperator% + \else% + % A count! Expand it, but carry on as usual as it might + % be immediately followed by a dimension. + \ifdim\pgfmath@parsex<0pt\relax% + \edef\pgfmath@sign{\pgfmath@sign-}% + \pgfmath@parsex-\pgfmath@parsex% + \fi% + \edef\pgfmath@temp{\pgfmath@tonumber{\pgfmath@parsex}}% + \let\pgfmath@parsenext\pgfmath@parsenumberorfunction@% + \fi% + \else% + % Could be a number or a function...? + \edef\pgfmath@temp{#1}% + \let\pgfmath@parsenext\pgfmath@parsenumberorfunction@% + \fi% + \expandafter\pgfmath@parsenext\pgfmath@temp% +}% + +\def\pgfmath@parsenumberorfunction@#1{% + \pgfmath@in@{#1}{.0123456789}% + \ifpgfmath@in@% + \let\pgfmath@parsenext\pgfmath@parsenumber% + \else% + \let\pgfmath@parsenext\pgfmath@parsefunction% + \fi% + \pgfmath@parsenext#1% +}% + +\def\pgfmath@parsenumber{% + % Consider the number 3.14159 + % 3 is parsed by assignment to a, then '.' is absorbed and 14159 + % parsed by assignement to b (actually b=114159, see below). + \c@pgfmath@parsecountc0\relax% + \afterassignment\pgfmath@parsedecimalpoint% + \c@pgfmath@parsecounta0} + +\def\pgfmath@parsedecimalpoint#1{% + \ifx#1.% Is there a decimal point? If not, see if there are any units. + \let\pgfmath@parsenext\pgfmath@parsemantissa% + \else% + \c@pgfmath@parsecountb10\relax% The first digit of b is gobbled (see below). + \let\pgfmath@parsenext\pgfmath@parseunits% + \fi% + \pgfmath@parsenext#1} + + + +% We would like to assign the following number (which is the mantisse) +% to a number. However, for a very long mantisse as in 3.141592653589793238462643 +% this will fail since the number becomes too large. +% +% Because of this, we have to do some ``magic'': We scan 9 tokens and +% then do an assignment with a guard after 9 tokens so that the +% assigment cannot fail. +% +\def\pgfmath@parsemantissa.#1#2#3#4#5#6#7#8#9{% + \afterassignment\pgfmath@checkforguard% + % Consider the number: 2.005 + % 2 is assigned to a, but b will be assigned 5, which is *not right*. + % So using 1 here hereresults in b=1005. The first digit is then + % gobbled later, when expanded with \the. + \c@pgfmath@parsecountb1#1#2#3#4#5#6#7#8#9\relax}% + +\def\pgfmath@checkforguard{% + \pgfutil@ifnextchar\relax% + {% + % Ok, this is a looong mantisse. Start gobbling all following + % numbers + \pgfmath@gobblemantisse% + }% + {% + \pgfmath@removeguard% + }% +} + +\def\pgfmath@gobblemantisse\relax#1#2#3#4#5#6#7#8#9{% + \afterassignment\pgfmath@checkforguard% + \c@pgfmath@parsecountc0#1#2#3#4#5#6#7#8#9\relax% these digits are ignored +} + +\def\pgfmath@removeguard#1\relax{\pgfmath@parseunits#1} + + + + +\def\pgfmath@parseunits#1{% + % Here the extra first digit in b is gobbled. + \edef\pgfmath@resulttemp{% + \pgfmath@sign\the\c@pgfmath@parsecounta.\expandafter\pgfmath@gobbleone\the\c@pgfmath@parsecountb}% + % Check whether #1 is a \dp, \wd, or \ht + \let\pgfmath@parsenext=\pgfmath@parseunits@simple% + \ifx#1\wd\let\pgfmath@parsenext=\pgfmath@parseunits@boxdimen\fi% + \ifx#1\ht\let\pgfmath@parsenext=\pgfmath@parseunits@boxdimen\fi% + \ifx#1\dp\let\pgfmath@parsenext=\pgfmath@parseunits@boxdimen\fi% + \pgfmath@parsenext#1% +} + +\def\pgfmath@parseunits@boxdimen#1#2{% + \pgfmath@parsex=#1#2% + \pgfmath@parsex\pgfmath@resulttemp\pgfmath@parsex% + \edef\pgfmathresult{\pgfmath@tonumber{\pgfmath@parsex}}% + \global\pgfmathunitsdeclaredtrue% a dimension has units + \pgfmath@parseoperator% +} + +\def\pgfmath@parseunits@simple#1{% + % Now check if #1 is actually a register. + \ifcat#1\relax% + \afterassignment\pgfmath@ifregisterdimen@% + \pgfmath@parsex#1pt\relax\pgfmath@% + \pgfmath@parsex\pgfmath@resulttemp\pgfmath@parsex% + \ifpgfmath@dimen@% If it's a dimen stop scanning operand here. + \global\pgfmathunitsdeclaredtrue% a dimension has units + \edef\pgfmathresult{\pgfmath@tonumber{\pgfmath@parsex}}% + \let\pgfmath@parsenext\pgfmath@parseoperator% + \else + \edef\pgfmath@resulttemp{\pgfmath@tonumber{\pgfmath@parsex}}% + \let\pgfmath@parsenext\pgfmath@parseunits@% + \fi% + \expandafter\pgfmath@parsenext% + \else% + \expandafter\pgfmath@parseunits@\expandafter#1% + \fi} + +\def\pgfmath@parseunits@#1#2{% + % Check if #1 is an operator, or the character `@' indicating the end of the parse. + \pgfmath@in@#1{@+-*/^r<>=()}% + \ifpgfmath@in@% + \edef\pgfmath@tokens{#1#2}% + \edef\pgfmathresult{\pgfmath@resulttemp}% + \let\pgfmath@parsenext\pgfmath@parseoperator% + \else% + \pgfmath@in@#1{Ee}% e+0X + \ifpgfmath@in@% + % Oh no! It might be and em or an ex... + \pgfmath@in@#2{mx}% + \ifpgfmath@in@% + \global\pgfmathunitsdeclaredtrue% + \pgfmath@parsex\pgfmath@resulttemp#1#2\relax% + \edef\pgfmathresult{\pgfmath@tonumber{\pgfmath@parsex}}% + \edef\pgfmath@tokens{}% + \let\pgfmath@parsenext\pgfmath@parseoperator% + \else% + \edef\pgfmath@tokens{#2}% + \let\pgfmath@parsenext\pgfmath@parsescientific% + \fi% + \else + % Anything else *should* be a TeX unit. + \global\pgfmathunitsdeclaredtrue% + \pgfmath@parsex\pgfmath@resulttemp#1#2\relax% + \edef\pgfmathresult{\pgfmath@tonumber{\pgfmath@parsex}}% + \edef\pgfmath@tokens{}% + \let\pgfmath@parsenext\pgfmath@parseoperator% + \fi\fi% + \expandafter\pgfmath@parsenext\pgfmath@tokens% +} + +% Parse 'Scientific' notation in the form xEyy +% +\def\pgfmath@parsescientific{% + \afterassignment\pgfmath@parsescientific@% + \c@pgfmath@parsecounta} + +\def\pgfmath@parsescientific@{% + \edef\pgfmath@parsesci@temp{\pgfmath@resulttemp\the\c@pgfmath@parsecountc}% + \expandafter\pgfmathscientific\expandafter{\pgfmath@parsesci@temp}% + {\the\c@pgfmath@parsecounta}% + \edef\pgfmath@resulttemp{\pgfmathresult}% + \pgfmath@parseunits@} + + +% OK. Now the fun stuff. We parse functions here. Note that +% *no* calulations are done in the following macros. All the +% mathematics is done in pgfmathoperations.code and friends. +% +% Functions dealt with here are: +% +% round(X) 'half-up' rounding. +% floor(X) floor function. +% ciel(X) ceiling function. +% abs(X) absolute function. +% +% exp(X) e^X (0 <= X <~= 9.7). +% +% sin(X) sine function. +% cos(X) cosine function. +% tan(X) tan function. +% asin(X) arcsine of X (in radians) -1 <= X <= 1 +% acos(X) arccosine of X (in radians) -1 <= X <= 1 +% atan(X) arctangent of X (in radians) -1 <= X <= 1 +% veclen(X,Y) the length Z where Z^2 = X^2 + Y^2 +% mod(X,Y) X modulo Y +% max(X,Y) the maximum of X or Y +% min(X,Y) the minimum of X or Y +% +% NB veclen, mod, max, and min *cannot* be nested. +% +% deg(X) converts X to degrees (X in radians) +% rad(X) converts X to radians (X in degrees) +% +% rnd generate pseudo-random number X (0 <= X <= 1). +% rand generate pseudo-random number X (1 <= X <= -1). +% sqrt(X) square root. +% +% pi the constant PI. + +\def\pgfmath@parsefunction{% + \def\pgfmath@parsedfunctionname{}% + \futurelet\pgfmath@parsetoken\pgfmath@parsefunction@@} +\def\pgfmath@parsefunction@@#1{% + \pgfmath@in@#1{()@+-*/^<>=}% A function name ends with one of these... + \ifpgfmath@in@% + \let\pgfmath@parsefunctionnext\pgfmath@parsefunction@end% + \else% + \ifx\pgfmath@parsetoken\pgfutil@sptoken% ...or a space. + \let\pgfmath@parsefunctionnext\pgfmath@parsefunction@end% + \else% + \let\pgfmath@parsefunctionnext\pgfmath@parsefunction@continue% + \fi\fi% + \pgfmath@parsefunctionnext#1} + +\def\pgfmath@parsefunction@end#1{% + \expandafter\ifx\csname pgfmath@parsefunction@\pgfmath@parsedfunctionname\endcsname\relax% + \pgfmath@reportunknownfunction% + \let\pgfmath@parsefunctionnext\relax% + \else% + \let\pgfmath@parsefunctionnext\pgfmath@executeparsefunction@% + \fi% + \pgfmath@parsefunctionnext#1} + +\def\pgfmath@parsefunction@continue#1{% + \edef\pgfmath@parsedfunctionname{\pgfmath@parsedfunctionname#1}% + \futurelet\pgfmath@parsetoken\pgfmath@parsefunction@@} + +\def\pgfmath@executeparsefunction@{\csname pgfmath@parsefunction@\pgfmath@parsedfunctionname\endcsname} + + +\def\pgfmath@reportunknownfunction{% + \pgfmath@error{Unknown function `\pgfmath@parsedfunctionname'}{}% +} + +% \pgfmath@postfunction +% +% In scanning a function e.g. sin(40), we subvert the normal parsing +% group mechanism by messing around with \pgfmath@parsepostgroup, so +% that after scanning ), the parser doesn't scan for an operator, but +% returns to the macros scanning the function. +% Here the mechanism is restored, and the value of the function is +% stored along with the approprate sign, which was saved earlier. +% +\def\pgfmath@postfunction{% + \let\pgfmath@parsepostgroup\pgfmath@parseoperator% + \edef\pgfmathresult{\pgfmath@sign\pgfmathresult}% + \pgfmath@parseoperator} + + +% \pgfmath@parsefunction@abs +% +\def\pgfmath@parsefunction@abs{% + \let\pgfmath@parsepostgroup\pgfmath@parsefunction@abs@% + \expandafter\pgfmath@parse@} +\def\pgfmath@parsefunction@abs@{% + \expandafter\pgfmathabs@\expandafter{\pgfmathresult}% + \pgfmath@postfunction% +} + +% \pgfmath@parsefunction@sqrt +% +\def\pgfmath@parsefunction@sqrt{% + \let\pgfmath@parsepostgroup\pgfmath@parsefunction@sqrt@% + \expandafter\pgfmath@parse@} +\def\pgfmath@parsefunction@sqrt@{% + \expandafter\pgfmathsqrt@\expandafter{\pgfmathresult}% + \pgfmath@postfunction% +} + +% \pgfmath@parsefunction@round +% +\def\pgfmath@parsefunction@round{% + \let\pgfmath@parsepostgroup\pgfmath@parsefunction@round@% + \expandafter\pgfmath@parse@} +\def\pgfmath@parsefunction@round@{% + \expandafter\pgfmathround@\expandafter{\pgfmathresult}% + \pgfmath@postfunction% +} + +% \pgfmath@parsefunction@floor +% +\def\pgfmath@parsefunction@floor{% + \let\pgfmath@parsepostgroup\pgfmath@parsefunction@floor@% + \expandafter\pgfmath@parse@} +\def\pgfmath@parsefunction@floor@{% + \expandafter\pgfmathfloor@\expandafter{\pgfmathresult}% + \pgfmath@postfunction% +} + +% \pgfmath@parsefunction@ceil +% +\def\pgfmath@parsefunction@ceil{% + \let\pgfmath@parsepostgroup\pgfmath@parsefunction@ceil@% + \expandafter\pgfmath@parse@} +\def\pgfmath@parsefunction@ceil@{% + \expandafter\pgfmathceil@\expandafter{\pgfmathresult}% + \pgfmath@postfunction% +} + +% \pgfmath@parsefunction@sin +% +\def\pgfmath@parsefunction@sin{% + \let\pgfmath@parsepostgroup\pgfmath@parsefunction@sin@% + \expandafter\pgfmath@parse@} +\def\pgfmath@parsefunction@sin@{% + \expandafter\pgfmathsin@\expandafter{\pgfmathresult}% + \pgfmath@postfunction% +} + +% \pgfmath@parsefunction@cos +% +\def\pgfmath@parsefunction@cos{% + \let\pgfmath@parsepostgroup\pgfmath@parsefunction@cos@% + \expandafter\pgfmath@parse@} +\def\pgfmath@parsefunction@cos@{% + \expandafter\pgfmathcos@\expandafter{\pgfmathresult}% + \pgfmath@postfunction% +} + +% \pgfmath@parsefunction@asin +% +\def\pgfmath@parsefunction@asin{% + \let\pgfmath@parsepostgroup\pgfmath@parsefunction@asin@% + \expandafter\pgfmath@parse@} +\def\pgfmath@parsefunction@asin@{% + \expandafter\pgfmathasin@\expandafter{\pgfmathresult}% + \pgfmath@postfunction% +} + +% \pgfmath@parsefunction@acos +% +\def\pgfmath@parsefunction@acos{% + \let\pgfmath@parsepostgroup\pgfmath@parsefunction@acos@% + \expandafter\pgfmath@parse@} +\def\pgfmath@parsefunction@acos@{% + \expandafter\pgfmathacos@\expandafter{\pgfmathresult}% + \pgfmath@postfunction} + +% \pgfmath@parsefunction@atan +% +\def\pgfmath@parsefunction@atan{% + \let\pgfmath@parsepostgroup\pgfmath@parsefunction@atan@% + \expandafter\pgfmath@parse@} +\def\pgfmath@parsefunction@atan@{% + \expandafter\pgfmathatan@\expandafter{\pgfmathresult}% + \pgfmath@postfunction% +} + +% \pgfmath@parsefunction@tan +% +\def\pgfmath@parsefunction@tan{% + \let\pgfmath@parsepostgroup\pgfmath@parsefunction@tan@% + \expandafter\pgfmath@parse@} +\def\pgfmath@parsefunction@tan@{% + \expandafter\pgfmathtan@\expandafter{\pgfmathresult}% + \pgfmath@postfunction% +} + +% \pgfmath@parsefunction@rad +% +\def\pgfmath@parsefunction@rad{% + \let\pgfmath@parsepostgroup\pgfmath@parsefunction@rad@% + \pgfmath@parse@} +\def\pgfmath@parsefunction@rad@{% + \expandafter\pgfmathrad@\expandafter{\pgfmathresult}% + \pgfmath@postfunction}% + +% \pgfmath@parsefunction@rad +% +\def\pgfmath@parsefunction@deg{% + \let\pgfmath@parsepostgroup\pgfmath@parsefunction@deg@% + \expandafter\pgfmath@parse@} +\def\pgfmath@parsefunction@deg@{% + \expandafter\pgfmathdeg@\expandafter{\pgfmathresult}% + \pgfmath@postfunction}% + +% \pgfmath@parsefunction@rnd +% +\def\pgfmath@parsefunction@rnd{% + \expandafter\pgfmathrnd% + \expandafter\pgfmath@postfunction} + +% \pgfmath@parsefunction@rand +% +\def\pgfmath@parsefunction@rand{% + \expandafter\pgfmathrand% + \expandafter\pgfmath@postfunction}% + +% \pgfmath@parsefunction@exp +% +\def\pgfmath@parsefunction@exp{% + \let\pgfmath@parsepostgroup\pgfmath@parsefunction@exp@% + \expandafter\pgfmath@parse@} +\def\pgfmath@parsefunction@exp@{% + \expandafter\pgfmathexp@\expandafter{\pgfmathresult}% + \pgfmath@postfunction% +} + +% \pgfmath@parsefunction@pi +% +\def\pgfmath@parsefunction@pi{% + \pgfmathpi% + \pgfmath@postfunction% +} + + +% \pgfmath@parsefunction@veclen +% +\def\pgfmath@parsefunction@veclen{% + \expandafter\pgfmath@parsefunction@veclen@} +\def\pgfmath@parsefunction@veclen@(#1,{% + \pgfmathparse@{#1}\edef\pgfmath@firstoperand{\pgfmathresult}% + \let\pgfmath@parsepostgroup\pgfmath@parsefunction@veclen@@ + \pgfmath@startparsegroup} +\def\pgfmath@parsefunction@veclen@@{% + \edef\pgfmath@secondoperand{\pgfmathresult}% + \pgfmathveclen@{\pgfmath@firstoperand}{\pgfmath@secondoperand}% + \pgfmath@postfunction} + +% \pgfmath@parsefunction@mod +% +\def\pgfmath@parsefunction@mod{% + \expandafter\pgfmath@parsefunction@mod@} +\def\pgfmath@parsefunction@mod@(#1,{% + \pgfmathparse@{#1}\edef\pgfmath@firstoperand{\pgfmathresult}% + \let\pgfmath@parsepostgroup\pgfmath@parsefunction@mod@@ + \pgfmath@startparsegroup} +\def\pgfmath@parsefunction@mod@@{% + \edef\pgfmath@secondoperand{\pgfmathresult}% + \pgfmathmod@{\pgfmath@firstoperand}{\pgfmath@secondoperand}% + \pgfmath@postfunction} + +% \pgfmath@parsefunction@max +% +\def\pgfmath@parsefunction@max{% + \expandafter\pgfmath@parsefunction@max@} +\def\pgfmath@parsefunction@max@(#1,{% + \pgfmathparse@{#1}\edef\pgfmath@firstoperand{\pgfmathresult}% + \let\pgfmath@parsepostgroup\pgfmath@parsefunction@max@@ + \pgfmath@startparsegroup} +\def\pgfmath@parsefunction@max@@{% + \edef\pgfmath@secondoperand{\pgfmathresult}% + \pgfmathmax@{\pgfmath@firstoperand}{\pgfmath@secondoperand}% + \pgfmath@postfunction} + +% \pgfmath@parsefunction@min +% +\def\pgfmath@parsefunction@min{% + \expandafter\pgfmath@parsefunction@min@} +\def\pgfmath@parsefunction@min@(#1,{% + \pgfmathparse@{#1}\edef\pgfmath@firstoperand{\pgfmathresult}% + \let\pgfmath@parsepostgroup\pgfmath@parsefunction@min@@ + \pgfmath@startparsegroup} +\def\pgfmath@parsefunction@min@@{% + \edef\pgfmath@secondoperand{\pgfmathresult}% + \pgfmathmin@{\pgfmath@firstoperand}{\pgfmath@secondoperand}% + \pgfmath@postfunction} + +% \pgfmath@parsefunction@pow +% +\def\pgfmath@parsefunction@pow{% + \expandafter\pgfmath@parsefunction@pow@} +\def\pgfmath@parsefunction@pow@(#1,{% + \pgfmathparse@{#1}\edef\pgfmath@firstoperand{\pgfmathresult}% + \let\pgfmath@parsepostgroup\pgfmath@parsefunction@pow@@ + \pgfmath@startparsegroup} +\def\pgfmath@parsefunction@pow@@{% + \edef\pgfmath@secondoperand{\pgfmathresult}% + \pgfmathpow@{\pgfmath@firstoperand}{\pgfmath@secondoperand}% + \pgfmath@postfunction}
\ No newline at end of file diff --git a/Master/texmf-dist/tex/generic/pgf/math/pgfmathrnd.code.tex b/Master/texmf-dist/tex/generic/pgf/math/pgfmathrnd.code.tex new file mode 100644 index 00000000000..ba54bfd6cdb --- /dev/null +++ b/Master/texmf-dist/tex/generic/pgf/math/pgfmathrnd.code.tex @@ -0,0 +1,213 @@ +% Copyright 2007 by Mark Wibrow +% +% This file may be distributed and/or modified +% +% 1. under the LaTeX Project Public License and/or +% 2. under the GNU Public License. +% +% See the file doc/generic/pgf/licenses/LICENSE for more details. + +% This file defines the pesudorandom numbers. +% +% Version 0.0 08/03/2007 + +% Pseudo-random number generation. +% +% See: +% \book@{pressetal1992, +% author = {William H. Press and Brian P. Flannery and Saul A. +% Teukolsky and William T. Vetterling}, +% title = {Numerical Recipies in C}, +% edition = {Second}, +% publisher = {Cambridge University Press} +% } +% +% See also, the documentation for the lcg package by Erich Janka: +% (http://www.ctan.org/tex-archive/macros/latex/contrib/lcg/lcg.pdf) +% +\def\pgfmath@rnd@m{2147483647}% LaTeX Maximum. + +\begingroup +\c@pgfmath@counta=\time% +\multiply\c@pgfmath@counta by\year% +\xdef\pgfmath@rnd@z{\the\c@pgfmath@counta}% The seed. +\endgroup + +% \pgfmathsetseed +% +% Explictly set the seed for the generator +% +% #1 -> the new seed. +% + +\def\pgfmathsetseed#1{\pgfmathparse{#1}\expandafter\pgfmath@setseed\pgfmathresult\relax}% +\def\pgfmath@setseed#1.#2\relax{\def\pgfmath@rnd@z{#1}}% + +% Alternative paramaters - see Press et al (1992) p278-279, +% for discussion. +% +% a=16807 q=127773 r=2836 +% a=48271 q=4488 r=3399 +% +\def\pgfmath@rnd@a{69621} +\def\pgfmath@rnd@r{23902} +\def\pgfmath@rnd@q{30845} + +% \pgfmathgeneratepseudorandomnumber +% +% A linear congruency generator for generating +% pseudo-random numbers. Generates numbers in +% the range 1 - 2^31-1. +% +\def\pgfmathgeneratepseudorandomnumber{% + \begingroup% + \c@pgfmath@counta=\pgfmath@rnd@z% + \c@pgfmath@countb=\pgfmath@rnd@z% + \c@pgfmath@countc=\pgfmath@rnd@q% + \divide\c@pgfmath@counta by\c@pgfmath@countc% + \multiply\c@pgfmath@counta by-\c@pgfmath@countc% + \advance\c@pgfmath@counta by\c@pgfmath@countb + \c@pgfmath@countc=\pgfmath@rnd@a% + \multiply\c@pgfmath@counta by\c@pgfmath@countc% + \c@pgfmath@countc=\pgfmath@rnd@q% + \divide\c@pgfmath@countb by\c@pgfmath@countc% + \c@pgfmath@countc=\pgfmath@rnd@r% + \multiply\c@pgfmath@countb by\c@pgfmath@countc% + \advance\c@pgfmath@counta by-\c@pgfmath@countb% + \ifnum\c@pgfmath@counta<0\relax% + \c@pgfmath@countb=\pgfmath@rnd@m% + \advance\c@pgfmath@counta by\c@pgfmath@countb% + \fi% + \xdef\pgfmath@rnd@z{\the\c@pgfmath@counta}% + \endgroup% + \edef\pgfmathresult{\pgfmath@rnd@z}% +} + +% \pgfmathrnd +% +% Generates a pseudo-random number between 0 and 1. +% +\def\pgfmathrnd{% + \begingroup% + \pgfmathgeneratepseudorandomnumber% + \c@pgfmath@counta\pgfmathresult% + \c@pgfmath@countb\c@pgfmath@counta% + \divide\c@pgfmath@countb100001\relax% To get one. + \multiply\c@pgfmath@countb-100001\relax% + \advance\c@pgfmath@countb\c@pgfmath@counta% + \advance\c@pgfmath@countb1000000\relax% + \expandafter\pgfmathrnd@\the\c@pgfmath@countb\pgfmath@% + \pgfmath@returnone\pgfmath@x% + \endgroup% +}% + +\def\pgfmathrnd@#1#2#3\pgfmath@{% + \edef\pgfmath@temp{#2.#3}% + \pgfmath@x=\pgfmath@temp pt\relax% +}% + +% \pgfmathrand +% +% Generates a pseudo-random number between -1 and 1. +% +\def\pgfmathrand{% + \begingroup% + \pgfmathgeneratepseudorandomnumber% + \c@pgfmath@counta\pgfmathresult% + \c@pgfmath@countb\c@pgfmath@counta% + \divide\c@pgfmath@countb200001\relax% + \multiply\c@pgfmath@countb-200001\relax% + \advance\c@pgfmath@countb\c@pgfmath@counta% + \advance\c@pgfmath@countb-100000\relax% + \ifnum\c@pgfmath@countb<0\relax% + \advance\c@pgfmath@countb-1000000\relax% + \else% + \advance\c@pgfmath@countb1000000\relax% + \fi% + \expandafter\pgfmathrand@\the\c@pgfmath@countb\pgfmath@% + \pgfmath@returnone\pgfmath@x% + \endgroup% +}% + +\def\pgfmathrand@#1#2#3#4\pgfmath@{% + \ifx#1-% + \edef\pgfmath@temp{-#3.#4}% + \else% + \edef\pgfmath@temp{#2.#3#4}% + \fi% + \pgfmath@x=\pgfmath@temp pt\relax% +}% + +% \pgfmathrandominteger +% +% Return a 'randomly' selected integer in the range #2 - #3 (inclusive). +% +% #1 - a macro to store the integer (not a count register). +% #2 - the lower limit of the range. +% #3 - the upper limit of the range. +% +\def\pgfmathrandominteger#1#2#3{% + \begingroup% + \pgfmathgeneratepseudorandomnumber% + \c@pgfmath@counta#2\relax% + \c@pgfmath@countb#3\relax% + \c@pgfmath@countc\c@pgfmath@countb% + % OK. Maybe #2 > #3. + \ifnum\c@pgfmath@counta>\c@pgfmath@countb\relax% + \c@pgfmath@countc\c@pgfmath@countb% + \c@pgfmath@countb\c@pgfmath@counta% + \c@pgfmath@counta\c@pgfmath@countc% + \fi% + \advance\c@pgfmath@countc1\relax% + \advance\c@pgfmath@countc-\c@pgfmath@counta% + \c@pgfmath@counta\pgfmathresult\relax% + \c@pgfmath@countb\c@pgfmath@counta% + \divide\c@pgfmath@countb\c@pgfmath@countc% + \multiply\c@pgfmath@countb-\c@pgfmath@countc% + \advance\c@pgfmath@counta\c@pgfmath@countb% + \advance\c@pgfmath@counta#2\relax% + \edef\pgfmathresult{\the\c@pgfmath@counta}% + \pgfmath@smuggleone{\pgfmathresult}% + \endgroup% + \edef#1{\pgfmathresult}% +} + +% \pgfmathdeclarerandomlist +% +% Create a list to be used with \pgfmathrandomelement. +% +% #1 - the name of the list +% #2 - a list of comma separated elements. +% +\def\pgfmathdeclarerandomlist#1#2{% + \def\pgfmath@randomlistname{#1}% + \begingroup% + \c@pgfmath@counta=1\relax% + % {} is a possible random element so (locally) + % redefine \pgfmath@empty. + \def\pgfmath@empty{pgfmath@empty}% + \expandafter\pgfmath@scanrandomlist#2{pgfmath@empty}} +\def\pgfmath@scanrandomlist#1{% + \def\pgfmath@scanneditem{#1}% + \ifx\pgfmath@scanneditem\pgfmath@empty% + \advance\c@pgfmath@counta-1\relax% + \expandafter\xdef\csname pgfmath@randomlist@\pgfmath@randomlistname\endcsname{\the\c@pgfmath@counta}% + \endgroup% + \else% + \expandafter\gdef\csname pgfmath@randomlist@\pgfmath@randomlistname @\the\c@pgfmath@counta\endcsname{#1}% + \advance\c@pgfmath@counta1\relax% + \expandafter\pgfmath@scanrandomlist% + \fi} + +% \pgfmathrandomitem +% +% Return a 'randomly' selected element from a list. +% +% #1 - a macro to store the item. +% #2 - the name of the list. +% +\def\pgfmathrandomitem#1#2{% + \pgfmath@ifundefined{pgfmath@randomlist@#2}{\pgfmath@error{Unknown random list `#2'}}{% + \edef\pgfmath@randomlistlength{\csname pgfmath@randomlist@#2\endcsname}% + \pgfmathrandominteger{\pgfmath@randomtemp}{1}{\pgfmath@randomlistlength}% + \def#1{\csname pgfmath@randomlist@#2@\pgfmath@randomtemp\endcsname}}}
\ No newline at end of file diff --git a/Master/texmf-dist/tex/generic/pgf/math/pgfmathtrig.code.tex b/Master/texmf-dist/tex/generic/pgf/math/pgfmathtrig.code.tex new file mode 100644 index 00000000000..dd38f36f37b --- /dev/null +++ b/Master/texmf-dist/tex/generic/pgf/math/pgfmathtrig.code.tex @@ -0,0 +1,1932 @@ +% Copyright 2007 by Mark Wibrow +% +% This file may be distributed and/or modified +% +% 1. under the LaTeX Project Public License and/or +% 2. under the GNU Public License. +% +% See the file doc/generic/pgf/licenses/LICENSE for more details. + +% This file defines the trigonometric functions/operations. +% +% Much of this file is based on ideas and code (particularly +% \pgfcoremath.code.tex) due to Till Tantau +% +% Version 0.0 08/03/2007 + +% \pgfmathpi +% +\def\pgfmathpi{\edef\pgfmathresult{\pgfmath@pi}} +\def\pgfmath@pi{3.14159} + +% \pgfmathradians +% +% Convert #1 from radians to degrees (accurate to 1 deg). +% +\def\pgfmathradians#1{% + \pgfmathparse{#1}% + \pgfmathradians@{\pgfmathresult}} +\def\pgfmathradians@#1{% + \begingroup% + \expandafter\pgfmath@x#1pt\relax% + \pgfmath@x57.29577\pgfmath@x\relax% 57.29577 = 360/(2*pi) + \pgfmath@returnone\pgfmath@x% + \endgroup% +}% + +% \pgfmathdeg +% +% Convert #1 from radians to degrees. +% +\def\pgfmathdeg#1{% + \pgfmathparse{#1}% + \pgfmathdeg@{\pgfmathresult}} +\def\pgfmathdeg@#1{% + \begingroup% + \expandafter\pgfmath@x#1pt\relax% + \pgfmath@x57.29577\pgfmath@x\relax% 57.29577 = 360/(2*pi) + \pgfmath@returnone\pgfmath@x% + \endgroup% +}% + +% \pgfmathrad +% +% Convert #1 from degrees to radians. +% +\def\pgfmathrad#1{% + \pgfmathparse{#1}% + \pgfmathrad@{\pgfmathresult}} +\def\pgfmathrad@#1{% + \begingroup% + \expandafter\pgfmath@x#1pt\relax% + \pgfmath@x3.14159\pgfmath@x% + \divide\pgfmath@x180\relax% + \pgfmath@returnone\pgfmath@x% + \endgroup% +}% + +% \pgfmathsin +% +% Calculate the sine of #1 (in degrees). +% +\def\pgfmathsin#1{% + \pgfmathparse{#1}% + \pgfmathsin@{\pgfmathresult}} +\def\pgfmathsin@#1{% + % Let #1 = a.b + % Then sin(#1) \approx (1-b)*cos(a) + b*cos(a+1) + % + \begingroup% + \pgfmath@x#1pt\relax% + \advance\pgfmath@x-90pt\relax% + \afterassignment\pgfmath@gobbletilpgfmath@ + \expandafter\c@pgfmath@counta\the\pgfmath@x\relax\pgfmath@ + \divide\c@pgfmath@counta360\relax% + \multiply\c@pgfmath@counta-360\relax% + \advance\pgfmath@x\c@pgfmath@counta pt\relax% + \ifdim\pgfmath@x<0pt\relax\pgfmath@x-\pgfmath@x\fi% + \ifdim\pgfmath@x<180pt\relax% + \else + \pgfmath@x-\pgfmath@x% + \advance\pgfmath@x360pt\relax% + \fi% + % Now 0 <= x < 179. So split x into integer and decimal... + % + \afterassignment\pgfmath@xa% + \expandafter\c@pgfmath@counta\the\pgfmath@x\relax% + % + % ...if #1 is an integer, don't do anything fancy. + \ifdim\pgfmath@xa=0pt% + \expandafter\pgfmath@x\csname pgfmath@cos@\the\c@pgfmath@counta\endcsname pt\relax% + \else% + \pgfmath@x-\pgfmath@xa% + \advance\pgfmath@x1pt\relax% + \expandafter\pgfmath@x\csname pgfmath@cos@\the\c@pgfmath@counta\endcsname\pgfmath@x% + \advance\c@pgfmath@counta1\relax% + \expandafter\advance\expandafter\pgfmath@x\csname pgfmath@cos@\the\c@pgfmath@counta\endcsname\pgfmath@xa% + \fi% + \pgfmath@returnone\pgfmath@x% + \endgroup +} + +% \pgfmathcos +% +% Calculate the cosine of #1 (in degrees). +% +\def\pgfmathcos#1{% + \pgfmathparse{#1}% + \expandafter\pgfmathcos@\expandafter{\pgfmathresult}} +\def\pgfmathcos@#1{% + % Let x = a.b + % Then cos(x) \approx (1-b)*cos(a) + b*cos(a+1) + % + \begingroup% + \pgfmath@x#1pt\relax% + \afterassignment\pgfmath@gobbletilpgfmath@% + \expandafter\c@pgfmath@counta\the\pgfmath@x\relax\pgfmath@% + \divide\c@pgfmath@counta360\relax% + \multiply\c@pgfmath@counta-360\relax% + \advance\pgfmath@x\c@pgfmath@counta pt\relax% + \ifdim\pgfmath@x<0pt\relax\pgfmath@x-\pgfmath@x\fi% + \ifdim\pgfmath@x<180pt\relax% + \else% + \pgfmath@x-\pgfmath@x% + \advance\pgfmath@x360pt\relax% + \fi% + % Now 0 <= x < 179. So split x into integer and decimal... + % + \afterassignment\pgfmath@xa% + \expandafter\c@pgfmath@counta\the\pgfmath@x\relax% + % + % ...if #1 is an integer, don't do anything fancy. + \ifdim\pgfmath@xa=0pt% + \expandafter\pgfmath@x\csname pgfmath@cos@\the\c@pgfmath@counta\endcsname pt% + \else% + \pgfmath@x-\pgfmath@xa% + \advance\pgfmath@x1pt\relax% + \expandafter\pgfmath@x\csname pgfmath@cos@\the\c@pgfmath@counta\endcsname\pgfmath@x% + \advance\c@pgfmath@counta1\relax% + \ifnum\c@pgfmath@counta=181\relax\c@pgfmath@counta179\relax\fi% + \expandafter\advance\expandafter\pgfmath@x\csname pgfmath@cos@\the\c@pgfmath@counta\endcsname\pgfmath@xa% + \fi% + \pgfmath@returnone\pgfmath@x% + \endgroup% +} + + +% \pgfmathsincos +% +% Calculate the sin and cosine of #1 (in degrees). +% +\def\pgfmathsincos#1{% + \pgfmathparse{#1}% + \expandafter\pgfmathcos@\expandafter{\pgfmathresult}} +\def\pgfmathsincos@#1{% + \pgfmathsin@{#1}\edef\pgfmathresulty{\pgfmathresult}% + \pgfmathcos@{#1}\edef\pgfmathresultx{\pgfmathresult}% +} +% \pgfmathtan +% +% Calculate the cotangent of #1 (in degrees). +% +\def\pgfmathtan#1{% + \pgfmathparse{#1}% + \pgfmathtan@{\pgfmathresult}} +\def\pgfmathtan@#1{% + \begingroup% + \pgfmathcos@{#1}% + \expandafter\pgfmathreciprocal@\expandafter{\pgfmathresult}% + \edef\pgfmath@tantemp{\pgfmathresult}% + \pgfmathsin@{#1}% + \pgfmath@x\pgfmathresult pt\relax% + \pgfmath@x\pgfmath@tantemp\pgfmath@x% + % Adjust to 4 decimal places. This gets rid of some annoyingly tiny errors. + \afterassignment\pgfmath@x% + \expandafter\c@pgfmath@counta\the\pgfmath@x\relax% + \ifdim\pgfmath@x<.0001pt\relax% + \pgfmath@x0pt\relax% + \fi% + \advance\pgfmath@x\c@pgfmath@counta pt% + \pgfmath@returnone\pgfmath@x% + \endgroup% +} + + +% \pgfmathasin +% +% The asin of #1 +% +\def\pgfmathasin#1{% + \pgfmathparse{#1}% + \expandafter\pgfmathasin@\expandafter{\pgfmathresult}} +\def\pgfmathasin@#1{% + \begingroup% + \pgfmath@x#1pt\relax% + \pgfmath@xa\pgfmath@x% + \ifdim\pgfmath@x<0pt\relax% + \pgfmath@x-\pgfmath@x% + \fi% + \pgfmath@x1000\pgfmath@x% + \afterassignment\pgfmath@gobbletilpgfmath@% + \expandafter\c@pgfmath@counta\the\pgfmath@x\relax\pgfmath@% + \expandafter\pgfmath@x\csname pgfmath@asin@\the\c@pgfmath@counta\endcsname pt\relax% + \ifdim\pgfmath@xa<0pt\relax% + \pgfmath@x-\pgfmath@x% + \fi% + \pgfmath@returnone\pgfmath@x% + \endgroup% +} + +% \pgfmathacos +% +% The acos of #1 +% +\def\pgfmathacos#1{% + \pgfmathparse{#1}% + \expandafter\pgfmathacos@\expandafter{\pgfmathresult}} +\def\pgfmathacos@#1{% + \begingroup% + \pgfmath@x#1pt\relax% + \pgfmath@xa\pgfmath@x% + \ifdim\pgfmath@x<0pt\relax% + \pgfmath@x-\pgfmath@x% + \fi% + \pgfmath@x1000\pgfmath@x% + \afterassignment\pgfmath@gobbletilpgfmath@% + \expandafter\c@pgfmath@counta\the\pgfmath@x\relax\pgfmath@% + \expandafter\pgfmath@x\csname pgfmath@acos@\the\c@pgfmath@counta\endcsname pt\relax% + \ifdim\pgfmath@xa<0pt\relax% + \pgfmath@x-\pgfmath@x% + \fi% + \pgfmath@returnone\pgfmath@x% + \endgroup% +} + +% \pgfmathasin +% +% The atan of #1 +% +\def\pgfmathatan#1{% + \pgfmathparse{#1}% + \expandafter\pgfmathatan@\expandafter{\pgfmathresult}} +\def\pgfmathatan@#1{% + \begingroup% + \pgfmath@x#1pt\relax% + \pgfmath@xa\pgfmath@x% + \ifdim\pgfmath@x<0pt\relax% + \pgfmath@x-\pgfmath@x% + \fi% + \pgfmath@xb\pgfmath@x% + \ifdim\pgfmath@x>1pt\relax% + \edef\pgfmath@temp{\pgfmath@tonumber{\pgfmath@x}}% + \pgfmathreciprocal@{\pgfmath@temp}% + \pgfmath@x\pgfmathresult pt\relax% + \fi% + \pgfmath@x1000\pgfmath@x% + \afterassignment\pgfmath@gobbletilpgfmath@% + \expandafter\c@pgfmath@counta\the\pgfmath@x\relax\pgfmath@% + \ifdim\pgfmath@xb>1pt\relax% + \expandafter\pgfmath@x\expandafter-\csname pgfmath@atan@\the\c@pgfmath@counta\endcsname pt\relax% + \advance\pgfmath@x90pt% + \else% + \expandafter\pgfmath@x\csname pgfmath@atan@\the\c@pgfmath@counta\endcsname pt\relax% + \fi% + \ifdim\pgfmath@xa<0pt\relax% + \pgfmath@x-\pgfmath@x% + \fi% + \pgfmath@returnone\pgfmath@x% + \endgroup% +} + + +\def\pgfmath@def#1#2#3{\expandafter\def\csname pgfmath@#1@#2\endcsname{#3}} +\pgfmath@def{cos}{0}{1.00000} \pgfmath@def{cos}{1}{0.99985} +\pgfmath@def{cos}{2}{0.99939} \pgfmath@def{cos}{3}{0.99863} +\pgfmath@def{cos}{4}{0.99756} \pgfmath@def{cos}{5}{0.99619} +\pgfmath@def{cos}{6}{0.99452} \pgfmath@def{cos}{7}{0.99255} +\pgfmath@def{cos}{8}{0.99027} \pgfmath@def{cos}{9}{0.98769} +\pgfmath@def{cos}{10}{0.98481} \pgfmath@def{cos}{11}{0.98163} +\pgfmath@def{cos}{12}{0.97815} \pgfmath@def{cos}{13}{0.97437} +\pgfmath@def{cos}{14}{0.97030} \pgfmath@def{cos}{15}{0.96593} +\pgfmath@def{cos}{16}{0.96126} \pgfmath@def{cos}{17}{0.95630} +\pgfmath@def{cos}{18}{0.95106} \pgfmath@def{cos}{19}{0.94552} +\pgfmath@def{cos}{20}{0.93969} \pgfmath@def{cos}{21}{0.93358} +\pgfmath@def{cos}{22}{0.92718} \pgfmath@def{cos}{23}{0.92050} +\pgfmath@def{cos}{24}{0.91355} \pgfmath@def{cos}{25}{0.90631} +\pgfmath@def{cos}{26}{0.89879} \pgfmath@def{cos}{27}{0.89101} +\pgfmath@def{cos}{28}{0.88295} \pgfmath@def{cos}{29}{0.87462} +\pgfmath@def{cos}{30}{0.86603} \pgfmath@def{cos}{31}{0.85717} +\pgfmath@def{cos}{32}{0.84805} \pgfmath@def{cos}{33}{0.83867} +\pgfmath@def{cos}{34}{0.82904} \pgfmath@def{cos}{35}{0.81915} +\pgfmath@def{cos}{36}{0.80902} \pgfmath@def{cos}{37}{0.79864} +\pgfmath@def{cos}{38}{0.78801} \pgfmath@def{cos}{39}{0.77715} +\pgfmath@def{cos}{40}{0.76604} \pgfmath@def{cos}{41}{0.75471} +\pgfmath@def{cos}{42}{0.74314} \pgfmath@def{cos}{43}{0.73135} +\pgfmath@def{cos}{44}{0.71934} \pgfmath@def{cos}{45}{0.70711} +\pgfmath@def{cos}{46}{0.69466} \pgfmath@def{cos}{47}{0.68200} +\pgfmath@def{cos}{48}{0.66913} \pgfmath@def{cos}{49}{0.65606} +\pgfmath@def{cos}{50}{0.64279} \pgfmath@def{cos}{51}{0.62932} +\pgfmath@def{cos}{52}{0.61566} \pgfmath@def{cos}{53}{0.60182} +\pgfmath@def{cos}{54}{0.58779} \pgfmath@def{cos}{55}{0.57358} +\pgfmath@def{cos}{56}{0.55919} \pgfmath@def{cos}{57}{0.54464} +\pgfmath@def{cos}{58}{0.52992} \pgfmath@def{cos}{59}{0.51504} +\pgfmath@def{cos}{60}{0.50000} \pgfmath@def{cos}{61}{0.48481} +\pgfmath@def{cos}{62}{0.46947} \pgfmath@def{cos}{63}{0.45399} +\pgfmath@def{cos}{64}{0.43837} \pgfmath@def{cos}{65}{0.42262} +\pgfmath@def{cos}{66}{0.40674} \pgfmath@def{cos}{67}{0.39073} +\pgfmath@def{cos}{68}{0.37461} \pgfmath@def{cos}{69}{0.35837} +\pgfmath@def{cos}{70}{0.34202} \pgfmath@def{cos}{71}{0.32557} +\pgfmath@def{cos}{72}{0.30902} \pgfmath@def{cos}{73}{0.29237} +\pgfmath@def{cos}{74}{0.27564} \pgfmath@def{cos}{75}{0.25882} +\pgfmath@def{cos}{76}{0.24192} \pgfmath@def{cos}{77}{0.22495} +\pgfmath@def{cos}{78}{0.20791} \pgfmath@def{cos}{79}{0.19081} +\pgfmath@def{cos}{80}{0.17365} \pgfmath@def{cos}{81}{0.15643} +\pgfmath@def{cos}{82}{0.13917} \pgfmath@def{cos}{83}{0.12187} +\pgfmath@def{cos}{84}{0.10453} \pgfmath@def{cos}{85}{0.08716} +\pgfmath@def{cos}{86}{0.06976} \pgfmath@def{cos}{87}{0.05234} +\pgfmath@def{cos}{88}{0.03490} \pgfmath@def{cos}{89}{0.01745} +\pgfmath@def{cos}{90}{0.00000} \pgfmath@def{cos}{91}{-0.01745} +\pgfmath@def{cos}{92}{-0.03490} \pgfmath@def{cos}{93}{-0.05234} +\pgfmath@def{cos}{94}{-0.06976} \pgfmath@def{cos}{95}{-0.08716} +\pgfmath@def{cos}{96}{-0.10453} \pgfmath@def{cos}{97}{-0.12187} +\pgfmath@def{cos}{98}{-0.13917} \pgfmath@def{cos}{99}{-0.15643} +\pgfmath@def{cos}{100}{-0.17365} \pgfmath@def{cos}{101}{-0.19081} +\pgfmath@def{cos}{102}{-0.20791} \pgfmath@def{cos}{103}{-0.22495} +\pgfmath@def{cos}{104}{-0.24192} \pgfmath@def{cos}{105}{-0.25882} +\pgfmath@def{cos}{106}{-0.27564} \pgfmath@def{cos}{107}{-0.29237} +\pgfmath@def{cos}{108}{-0.30902} \pgfmath@def{cos}{109}{-0.32557} +\pgfmath@def{cos}{110}{-0.34202} \pgfmath@def{cos}{111}{-0.35837} +\pgfmath@def{cos}{112}{-0.37461} \pgfmath@def{cos}{113}{-0.39073} +\pgfmath@def{cos}{114}{-0.40674} \pgfmath@def{cos}{115}{-0.42262} +\pgfmath@def{cos}{116}{-0.43837} \pgfmath@def{cos}{117}{-0.45399} +\pgfmath@def{cos}{118}{-0.46947} \pgfmath@def{cos}{119}{-0.48481} +\pgfmath@def{cos}{120}{-0.50000} \pgfmath@def{cos}{121}{-0.51504} +\pgfmath@def{cos}{122}{-0.52992} \pgfmath@def{cos}{123}{-0.54464} +\pgfmath@def{cos}{124}{-0.55919} \pgfmath@def{cos}{125}{-0.57358} +\pgfmath@def{cos}{126}{-0.58779} \pgfmath@def{cos}{127}{-0.60182} +\pgfmath@def{cos}{128}{-0.61566} \pgfmath@def{cos}{129}{-0.62932} +\pgfmath@def{cos}{130}{-0.64279} \pgfmath@def{cos}{131}{-0.65606} +\pgfmath@def{cos}{132}{-0.66913} \pgfmath@def{cos}{133}{-0.68200} +\pgfmath@def{cos}{134}{-0.69466} \pgfmath@def{cos}{135}{-0.70711} +\pgfmath@def{cos}{136}{-0.71934} \pgfmath@def{cos}{137}{-0.73135} +\pgfmath@def{cos}{138}{-0.74314} \pgfmath@def{cos}{139}{-0.75471} +\pgfmath@def{cos}{140}{-0.76604} \pgfmath@def{cos}{141}{-0.77715} +\pgfmath@def{cos}{142}{-0.78801} \pgfmath@def{cos}{143}{-0.79864} +\pgfmath@def{cos}{144}{-0.80902} \pgfmath@def{cos}{145}{-0.81915} +\pgfmath@def{cos}{146}{-0.82904} \pgfmath@def{cos}{147}{-0.83867} +\pgfmath@def{cos}{148}{-0.84805} \pgfmath@def{cos}{149}{-0.85717} +\pgfmath@def{cos}{150}{-0.86603} \pgfmath@def{cos}{151}{-0.87462} +\pgfmath@def{cos}{152}{-0.88295} \pgfmath@def{cos}{153}{-0.89101} +\pgfmath@def{cos}{154}{-0.89879} \pgfmath@def{cos}{155}{-0.90631} +\pgfmath@def{cos}{156}{-0.91355} \pgfmath@def{cos}{157}{-0.92050} +\pgfmath@def{cos}{158}{-0.92718} \pgfmath@def{cos}{159}{-0.93358} +\pgfmath@def{cos}{160}{-0.93969} \pgfmath@def{cos}{161}{-0.94552} +\pgfmath@def{cos}{162}{-0.95106} \pgfmath@def{cos}{163}{-0.95630} +\pgfmath@def{cos}{164}{-0.96126} \pgfmath@def{cos}{165}{-0.96593} +\pgfmath@def{cos}{166}{-0.97030} \pgfmath@def{cos}{167}{-0.97437} +\pgfmath@def{cos}{168}{-0.97815} \pgfmath@def{cos}{169}{-0.98163} +\pgfmath@def{cos}{170}{-0.98481} \pgfmath@def{cos}{171}{-0.98769} +\pgfmath@def{cos}{172}{-0.99027} \pgfmath@def{cos}{173}{-0.99255} +\pgfmath@def{cos}{174}{-0.99452} \pgfmath@def{cos}{175}{-0.99619} +\pgfmath@def{cos}{176}{-0.99756} \pgfmath@def{cos}{177}{-0.99863} +\pgfmath@def{cos}{178}{-0.99939} \pgfmath@def{cos}{179}{-0.99985} +\pgfmath@def{cos}{180}{-1.00000} \pgfmath@def{cos}{181}{-0.99985} + +\pgfmath@def{cosfrac}{0}{1.00000} \pgfmath@def{cosfrac}{1}{0.99995} +\pgfmath@def{cosfrac}{2}{0.99980} \pgfmath@def{cosfrac}{3}{0.99955} +\pgfmath@def{cosfrac}{4}{0.99920} \pgfmath@def{cosfrac}{5}{0.99875} +\pgfmath@def{cosfrac}{6}{0.99820} \pgfmath@def{cosfrac}{7}{0.99755} +\pgfmath@def{cosfrac}{8}{0.99681} \pgfmath@def{cosfrac}{9}{0.99597} +\pgfmath@def{cosfrac}{10}{0.99503} \pgfmath@def{cosfrac}{11}{0.99400} +\pgfmath@def{cosfrac}{12}{0.99287} \pgfmath@def{cosfrac}{13}{0.99165} +\pgfmath@def{cosfrac}{14}{0.99034} \pgfmath@def{cosfrac}{15}{0.98893} +\pgfmath@def{cosfrac}{16}{0.98744} \pgfmath@def{cosfrac}{17}{0.98585} +\pgfmath@def{cosfrac}{18}{0.98418} \pgfmath@def{cosfrac}{19}{0.98242} +\pgfmath@def{cosfrac}{20}{0.98058} \pgfmath@def{cosfrac}{21}{0.97865} +\pgfmath@def{cosfrac}{22}{0.97664} \pgfmath@def{cosfrac}{23}{0.97455} +\pgfmath@def{cosfrac}{24}{0.97238} \pgfmath@def{cosfrac}{25}{0.97014} +\pgfmath@def{cosfrac}{26}{0.96782} \pgfmath@def{cosfrac}{27}{0.96542} +\pgfmath@def{cosfrac}{28}{0.96296} \pgfmath@def{cosfrac}{29}{0.96042} +\pgfmath@def{cosfrac}{30}{0.95782} \pgfmath@def{cosfrac}{31}{0.95515} +\pgfmath@def{cosfrac}{32}{0.95242} \pgfmath@def{cosfrac}{33}{0.94962} +\pgfmath@def{cosfrac}{34}{0.94677} \pgfmath@def{cosfrac}{35}{0.94385} +\pgfmath@def{cosfrac}{36}{0.94088} \pgfmath@def{cosfrac}{37}{0.93786} +\pgfmath@def{cosfrac}{38}{0.93478} \pgfmath@def{cosfrac}{39}{0.93165} +\pgfmath@def{cosfrac}{40}{0.92847} \pgfmath@def{cosfrac}{41}{0.92525} +\pgfmath@def{cosfrac}{42}{0.92198} \pgfmath@def{cosfrac}{43}{0.91866} +\pgfmath@def{cosfrac}{44}{0.91531} \pgfmath@def{cosfrac}{45}{0.91192} +\pgfmath@def{cosfrac}{46}{0.90849} \pgfmath@def{cosfrac}{47}{0.90502} +\pgfmath@def{cosfrac}{48}{0.90152} \pgfmath@def{cosfrac}{49}{0.89799} +\pgfmath@def{cosfrac}{50}{0.89442} \pgfmath@def{cosfrac}{51}{0.89083} +\pgfmath@def{cosfrac}{52}{0.88721} \pgfmath@def{cosfrac}{53}{0.88357} +\pgfmath@def{cosfrac}{54}{0.87990} \pgfmath@def{cosfrac}{55}{0.87621} +\pgfmath@def{cosfrac}{56}{0.87250} \pgfmath@def{cosfrac}{57}{0.86877} +\pgfmath@def{cosfrac}{58}{0.86503} \pgfmath@def{cosfrac}{59}{0.86126} +\pgfmath@def{cosfrac}{60}{0.85749} \pgfmath@def{cosfrac}{61}{0.85370} +\pgfmath@def{cosfrac}{62}{0.84990} \pgfmath@def{cosfrac}{63}{0.84609} +\pgfmath@def{cosfrac}{64}{0.84227} \pgfmath@def{cosfrac}{65}{0.83844} +\pgfmath@def{cosfrac}{66}{0.83460} \pgfmath@def{cosfrac}{67}{0.83077} +\pgfmath@def{cosfrac}{68}{0.82692} \pgfmath@def{cosfrac}{69}{0.82308} +\pgfmath@def{cosfrac}{70}{0.81923} \pgfmath@def{cosfrac}{71}{0.81538} +\pgfmath@def{cosfrac}{72}{0.81153} \pgfmath@def{cosfrac}{73}{0.80768} +\pgfmath@def{cosfrac}{74}{0.80384} \pgfmath@def{cosfrac}{75}{0.80000} +\pgfmath@def{cosfrac}{76}{0.79616} \pgfmath@def{cosfrac}{77}{0.79232} +\pgfmath@def{cosfrac}{78}{0.78850} \pgfmath@def{cosfrac}{79}{0.78468} +\pgfmath@def{cosfrac}{80}{0.78086} \pgfmath@def{cosfrac}{81}{0.77706} +\pgfmath@def{cosfrac}{82}{0.77326} \pgfmath@def{cosfrac}{83}{0.76948} +\pgfmath@def{cosfrac}{84}{0.76570} \pgfmath@def{cosfrac}{85}{0.76193} +\pgfmath@def{cosfrac}{86}{0.75818} \pgfmath@def{cosfrac}{87}{0.75444} +\pgfmath@def{cosfrac}{88}{0.75071} \pgfmath@def{cosfrac}{89}{0.74699} +\pgfmath@def{cosfrac}{90}{0.74329} \pgfmath@def{cosfrac}{91}{0.73960} +\pgfmath@def{cosfrac}{92}{0.73593} \pgfmath@def{cosfrac}{93}{0.73227} +\pgfmath@def{cosfrac}{94}{0.72862} \pgfmath@def{cosfrac}{95}{0.72499} +\pgfmath@def{cosfrac}{96}{0.72138} \pgfmath@def{cosfrac}{97}{0.71779} +\pgfmath@def{cosfrac}{98}{0.71421} \pgfmath@def{cosfrac}{99}{0.71065} +\pgfmath@def{cosfrac}{100}{0.70710} + +% Oh No! Some really loooooong tables. +\pgfmath@def{atan}{0}{0.00000} \pgfmath@def{atan}{1}{0.05729} +\pgfmath@def{atan}{2}{0.11459} \pgfmath@def{atan}{3}{0.17188} +\pgfmath@def{atan}{4}{0.22918} \pgfmath@def{atan}{5}{0.28647} +\pgfmath@def{atan}{6}{0.34377} \pgfmath@def{atan}{7}{0.40106} +\pgfmath@def{atan}{8}{0.45835} \pgfmath@def{atan}{9}{0.51564} +\pgfmath@def{atan}{10}{0.57293} \pgfmath@def{atan}{11}{0.63022} +\pgfmath@def{atan}{12}{0.68751} \pgfmath@def{atan}{13}{0.74480} +\pgfmath@def{atan}{14}{0.80208} \pgfmath@def{atan}{15}{0.85937} +\pgfmath@def{atan}{16}{0.91665} \pgfmath@def{atan}{17}{0.97393} +\pgfmath@def{atan}{18}{1.03121} \pgfmath@def{atan}{19}{1.08848} +\pgfmath@def{atan}{20}{1.14576} \pgfmath@def{atan}{21}{1.20303} +\pgfmath@def{atan}{22}{1.26030} \pgfmath@def{atan}{23}{1.31757} +\pgfmath@def{atan}{24}{1.37483} \pgfmath@def{atan}{25}{1.43209} +\pgfmath@def{atan}{26}{1.48935} \pgfmath@def{atan}{27}{1.54661} +\pgfmath@def{atan}{28}{1.60386} \pgfmath@def{atan}{29}{1.66111} +\pgfmath@def{atan}{30}{1.71835} \pgfmath@def{atan}{31}{1.77560} +\pgfmath@def{atan}{32}{1.83284} \pgfmath@def{atan}{33}{1.89007} +\pgfmath@def{atan}{34}{1.94730} \pgfmath@def{atan}{35}{2.00453} +\pgfmath@def{atan}{36}{2.06175} \pgfmath@def{atan}{37}{2.11897} +\pgfmath@def{atan}{38}{2.17619} \pgfmath@def{atan}{39}{2.23340} +\pgfmath@def{atan}{40}{2.29061} \pgfmath@def{atan}{41}{2.34781} +\pgfmath@def{atan}{42}{2.40500} \pgfmath@def{atan}{43}{2.46220} +\pgfmath@def{atan}{44}{2.51938} \pgfmath@def{atan}{45}{2.57657} +\pgfmath@def{atan}{46}{2.63374} \pgfmath@def{atan}{47}{2.69092} +\pgfmath@def{atan}{48}{2.74808} \pgfmath@def{atan}{49}{2.80524} +\pgfmath@def{atan}{50}{2.86240} \pgfmath@def{atan}{51}{2.91955} +\pgfmath@def{atan}{52}{2.97669} \pgfmath@def{atan}{53}{3.03383} +\pgfmath@def{atan}{54}{3.09097} \pgfmath@def{atan}{55}{3.14809} +\pgfmath@def{atan}{56}{3.20521} \pgfmath@def{atan}{57}{3.26232} +\pgfmath@def{atan}{58}{3.31943} \pgfmath@def{atan}{59}{3.37653} +\pgfmath@def{atan}{60}{3.43363} \pgfmath@def{atan}{61}{3.49071} +\pgfmath@def{atan}{62}{3.54779} \pgfmath@def{atan}{63}{3.60487} +\pgfmath@def{atan}{64}{3.66193} \pgfmath@def{atan}{65}{3.71899} +\pgfmath@def{atan}{66}{3.77604} \pgfmath@def{atan}{67}{3.83308} +\pgfmath@def{atan}{68}{3.89012} \pgfmath@def{atan}{69}{3.94715} +\pgfmath@def{atan}{70}{4.00417} \pgfmath@def{atan}{71}{4.06118} +\pgfmath@def{atan}{72}{4.11819} \pgfmath@def{atan}{73}{4.17518} +\pgfmath@def{atan}{74}{4.23217} \pgfmath@def{atan}{75}{4.28915} +\pgfmath@def{atan}{76}{4.34612} \pgfmath@def{atan}{77}{4.40308} +\pgfmath@def{atan}{78}{4.46004} \pgfmath@def{atan}{79}{4.51698} +\pgfmath@def{atan}{80}{4.57392} \pgfmath@def{atan}{81}{4.63084} +\pgfmath@def{atan}{82}{4.68776} \pgfmath@def{atan}{83}{4.74467} +\pgfmath@def{atan}{84}{4.80157} \pgfmath@def{atan}{85}{4.85846} +\pgfmath@def{atan}{86}{4.91534} \pgfmath@def{atan}{87}{4.97221} +\pgfmath@def{atan}{88}{5.02907} \pgfmath@def{atan}{89}{5.08592} +\pgfmath@def{atan}{90}{5.14276} \pgfmath@def{atan}{91}{5.19959} +\pgfmath@def{atan}{92}{5.25641} \pgfmath@def{atan}{93}{5.31322} +\pgfmath@def{atan}{94}{5.37002} \pgfmath@def{atan}{95}{5.42681} +\pgfmath@def{atan}{96}{5.48359} \pgfmath@def{atan}{97}{5.54035} +\pgfmath@def{atan}{98}{5.59711} \pgfmath@def{atan}{99}{5.65385} +\pgfmath@def{atan}{100}{5.71059} \pgfmath@def{atan}{101}{5.76731} +\pgfmath@def{atan}{102}{5.82402} \pgfmath@def{atan}{103}{5.88072} +\pgfmath@def{atan}{104}{5.93741} \pgfmath@def{atan}{105}{5.99409} +\pgfmath@def{atan}{106}{6.05075} \pgfmath@def{atan}{107}{6.10741} +\pgfmath@def{atan}{108}{6.16405} \pgfmath@def{atan}{109}{6.22068} +\pgfmath@def{atan}{110}{6.27729} \pgfmath@def{atan}{111}{6.33390} +\pgfmath@def{atan}{112}{6.39049} \pgfmath@def{atan}{113}{6.44707} +\pgfmath@def{atan}{114}{6.50364} \pgfmath@def{atan}{115}{6.56019} +\pgfmath@def{atan}{116}{6.61673} \pgfmath@def{atan}{117}{6.67326} +\pgfmath@def{atan}{118}{6.72978} \pgfmath@def{atan}{119}{6.78628} +\pgfmath@def{atan}{120}{6.84277} \pgfmath@def{atan}{121}{6.89924} +\pgfmath@def{atan}{122}{6.95571} \pgfmath@def{atan}{123}{7.01216} +\pgfmath@def{atan}{124}{7.06859} \pgfmath@def{atan}{125}{7.12501} +\pgfmath@def{atan}{126}{7.18142} \pgfmath@def{atan}{127}{7.23781} +\pgfmath@def{atan}{128}{7.29419} \pgfmath@def{atan}{129}{7.35056} +\pgfmath@def{atan}{130}{7.40691} \pgfmath@def{atan}{131}{7.46324} +\pgfmath@def{atan}{132}{7.51957} \pgfmath@def{atan}{133}{7.57587} +\pgfmath@def{atan}{134}{7.63217} \pgfmath@def{atan}{135}{7.68844} +\pgfmath@def{atan}{136}{7.74471} \pgfmath@def{atan}{137}{7.80095} +\pgfmath@def{atan}{138}{7.85719} \pgfmath@def{atan}{139}{7.91340} +\pgfmath@def{atan}{140}{7.96961} \pgfmath@def{atan}{141}{8.02579} +\pgfmath@def{atan}{142}{8.08196} \pgfmath@def{atan}{143}{8.13812} +\pgfmath@def{atan}{144}{8.19426} \pgfmath@def{atan}{145}{8.25038} +\pgfmath@def{atan}{146}{8.30649} \pgfmath@def{atan}{147}{8.36258} +\pgfmath@def{atan}{148}{8.41866} \pgfmath@def{atan}{149}{8.47472} +\pgfmath@def{atan}{150}{8.53076} \pgfmath@def{atan}{151}{8.58679} +\pgfmath@def{atan}{152}{8.64280} \pgfmath@def{atan}{153}{8.69879} +\pgfmath@def{atan}{154}{8.75477} \pgfmath@def{atan}{155}{8.81073} +\pgfmath@def{atan}{156}{8.86667} \pgfmath@def{atan}{157}{8.92260} +\pgfmath@def{atan}{158}{8.97851} \pgfmath@def{atan}{159}{9.03440} +\pgfmath@def{atan}{160}{9.09027} \pgfmath@def{atan}{161}{9.14613} +\pgfmath@def{atan}{162}{9.20197} \pgfmath@def{atan}{163}{9.25779} +\pgfmath@def{atan}{164}{9.31359} \pgfmath@def{atan}{165}{9.36938} +\pgfmath@def{atan}{166}{9.42515} \pgfmath@def{atan}{167}{9.48090} +\pgfmath@def{atan}{168}{9.53663} \pgfmath@def{atan}{169}{9.59235} +\pgfmath@def{atan}{170}{9.64804} \pgfmath@def{atan}{171}{9.70372} +\pgfmath@def{atan}{172}{9.75938} \pgfmath@def{atan}{173}{9.81502} +\pgfmath@def{atan}{174}{9.87064} \pgfmath@def{atan}{175}{9.92624} +\pgfmath@def{atan}{176}{9.98182} \pgfmath@def{atan}{177}{10.03739} +\pgfmath@def{atan}{178}{10.09294} \pgfmath@def{atan}{179}{10.14846} +\pgfmath@def{atan}{180}{10.20397} \pgfmath@def{atan}{181}{10.25946} +\pgfmath@def{atan}{182}{10.31493} \pgfmath@def{atan}{183}{10.37037} +\pgfmath@def{atan}{184}{10.42580} \pgfmath@def{atan}{185}{10.48121} +\pgfmath@def{atan}{186}{10.53660} \pgfmath@def{atan}{187}{10.59197} +\pgfmath@def{atan}{188}{10.64732} \pgfmath@def{atan}{189}{10.70265} +\pgfmath@def{atan}{190}{10.75796} \pgfmath@def{atan}{191}{10.81325} +\pgfmath@def{atan}{192}{10.86852} \pgfmath@def{atan}{193}{10.92377} +\pgfmath@def{atan}{194}{10.97900} \pgfmath@def{atan}{195}{11.03420} +\pgfmath@def{atan}{196}{11.08939} \pgfmath@def{atan}{197}{11.14456} +\pgfmath@def{atan}{198}{11.19970} \pgfmath@def{atan}{199}{11.25483} +\pgfmath@def{atan}{200}{11.30993} \pgfmath@def{atan}{201}{11.36501} +\pgfmath@def{atan}{202}{11.42007} \pgfmath@def{atan}{203}{11.47511} +\pgfmath@def{atan}{204}{11.53013} \pgfmath@def{atan}{205}{11.58512} +\pgfmath@def{atan}{206}{11.64010} \pgfmath@def{atan}{207}{11.69505} +\pgfmath@def{atan}{208}{11.74998} \pgfmath@def{atan}{209}{11.80489} +\pgfmath@def{atan}{210}{11.85977} \pgfmath@def{atan}{211}{11.91464} +\pgfmath@def{atan}{212}{11.96948} \pgfmath@def{atan}{213}{12.02430} +\pgfmath@def{atan}{214}{12.07910} \pgfmath@def{atan}{215}{12.13388} +\pgfmath@def{atan}{216}{12.18863} \pgfmath@def{atan}{217}{12.24336} +\pgfmath@def{atan}{218}{12.29807} \pgfmath@def{atan}{219}{12.35275} +\pgfmath@def{atan}{220}{12.40741} \pgfmath@def{atan}{221}{12.46205} +\pgfmath@def{atan}{222}{12.51667} \pgfmath@def{atan}{223}{12.57126} +\pgfmath@def{atan}{224}{12.62583} \pgfmath@def{atan}{225}{12.68038} +\pgfmath@def{atan}{226}{12.73490} \pgfmath@def{atan}{227}{12.78940} +\pgfmath@def{atan}{228}{12.84388} \pgfmath@def{atan}{229}{12.89833} +\pgfmath@def{atan}{230}{12.95276} \pgfmath@def{atan}{231}{13.00717} +\pgfmath@def{atan}{232}{13.06155} \pgfmath@def{atan}{233}{13.11590} +\pgfmath@def{atan}{234}{13.17024} \pgfmath@def{atan}{235}{13.22455} +\pgfmath@def{atan}{236}{13.27883} \pgfmath@def{atan}{237}{13.33309} +\pgfmath@def{atan}{238}{13.38733} \pgfmath@def{atan}{239}{13.44154} +\pgfmath@def{atan}{240}{13.49573} \pgfmath@def{atan}{241}{13.54989} +\pgfmath@def{atan}{242}{13.60403} \pgfmath@def{atan}{243}{13.65814} +\pgfmath@def{atan}{244}{13.71223} \pgfmath@def{atan}{245}{13.76630} +\pgfmath@def{atan}{246}{13.82034} \pgfmath@def{atan}{247}{13.87435} +\pgfmath@def{atan}{248}{13.92834} \pgfmath@def{atan}{249}{13.98230} +\pgfmath@def{atan}{250}{14.03624} \pgfmath@def{atan}{251}{14.09015} +\pgfmath@def{atan}{252}{14.14404} \pgfmath@def{atan}{253}{14.19790} +\pgfmath@def{atan}{254}{14.25174} \pgfmath@def{atan}{255}{14.30555} +\pgfmath@def{atan}{256}{14.35933} \pgfmath@def{atan}{257}{14.41309} +\pgfmath@def{atan}{258}{14.46682} \pgfmath@def{atan}{259}{14.52053} +\pgfmath@def{atan}{260}{14.57421} \pgfmath@def{atan}{261}{14.62787} +\pgfmath@def{atan}{262}{14.68149} \pgfmath@def{atan}{263}{14.73510} +\pgfmath@def{atan}{264}{14.78867} \pgfmath@def{atan}{265}{14.84222} +\pgfmath@def{atan}{266}{14.89575} \pgfmath@def{atan}{267}{14.94924} +\pgfmath@def{atan}{268}{15.00271} \pgfmath@def{atan}{269}{15.05615} +\pgfmath@def{atan}{270}{15.10957} \pgfmath@def{atan}{271}{15.16296} +\pgfmath@def{atan}{272}{15.21632} \pgfmath@def{atan}{273}{15.26966} +\pgfmath@def{atan}{274}{15.32297} \pgfmath@def{atan}{275}{15.37625} +\pgfmath@def{atan}{276}{15.42950} \pgfmath@def{atan}{277}{15.48273} +\pgfmath@def{atan}{278}{15.53593} \pgfmath@def{atan}{279}{15.58910} +\pgfmath@def{atan}{280}{15.64224} \pgfmath@def{atan}{281}{15.69536} +\pgfmath@def{atan}{282}{15.74845} \pgfmath@def{atan}{283}{15.80151} +\pgfmath@def{atan}{284}{15.85454} \pgfmath@def{atan}{285}{15.90755} +\pgfmath@def{atan}{286}{15.96052} \pgfmath@def{atan}{287}{16.01347} +\pgfmath@def{atan}{288}{16.06640} \pgfmath@def{atan}{289}{16.11929} +\pgfmath@def{atan}{290}{16.17215} \pgfmath@def{atan}{291}{16.22499} +\pgfmath@def{atan}{292}{16.27780} \pgfmath@def{atan}{293}{16.33058} +\pgfmath@def{atan}{294}{16.38333} \pgfmath@def{atan}{295}{16.43605} +\pgfmath@def{atan}{296}{16.48875} \pgfmath@def{atan}{297}{16.54142} +\pgfmath@def{atan}{298}{16.59405} \pgfmath@def{atan}{299}{16.64666} +\pgfmath@def{atan}{300}{16.69924} \pgfmath@def{atan}{301}{16.75179} +\pgfmath@def{atan}{302}{16.80431} \pgfmath@def{atan}{303}{16.85680} +\pgfmath@def{atan}{304}{16.90927} \pgfmath@def{atan}{305}{16.96170} +\pgfmath@def{atan}{306}{17.01411} \pgfmath@def{atan}{307}{17.06648} +\pgfmath@def{atan}{308}{17.11883} \pgfmath@def{atan}{309}{17.17114} +\pgfmath@def{atan}{310}{17.22343} \pgfmath@def{atan}{311}{17.27569} +\pgfmath@def{atan}{312}{17.32792} \pgfmath@def{atan}{313}{17.38012} +\pgfmath@def{atan}{314}{17.43228} \pgfmath@def{atan}{315}{17.48442} +\pgfmath@def{atan}{316}{17.53653} \pgfmath@def{atan}{317}{17.58861} +\pgfmath@def{atan}{318}{17.64066} \pgfmath@def{atan}{319}{17.69268} +\pgfmath@def{atan}{320}{17.74467} \pgfmath@def{atan}{321}{17.79663} +\pgfmath@def{atan}{322}{17.84855} \pgfmath@def{atan}{323}{17.90045} +\pgfmath@def{atan}{324}{17.95232} \pgfmath@def{atan}{325}{18.00416} +\pgfmath@def{atan}{326}{18.05596} \pgfmath@def{atan}{327}{18.10774} +\pgfmath@def{atan}{328}{18.15949} \pgfmath@def{atan}{329}{18.21120} +\pgfmath@def{atan}{330}{18.26289} \pgfmath@def{atan}{331}{18.31454} +\pgfmath@def{atan}{332}{18.36616} \pgfmath@def{atan}{333}{18.41775} +\pgfmath@def{atan}{334}{18.46931} \pgfmath@def{atan}{335}{18.52084} +\pgfmath@def{atan}{336}{18.57234} \pgfmath@def{atan}{337}{18.62381} +\pgfmath@def{atan}{338}{18.67525} \pgfmath@def{atan}{339}{18.72665} +\pgfmath@def{atan}{340}{18.77803} \pgfmath@def{atan}{341}{18.82937} +\pgfmath@def{atan}{342}{18.88068} \pgfmath@def{atan}{343}{18.93196} +\pgfmath@def{atan}{344}{18.98321} \pgfmath@def{atan}{345}{19.03443} +\pgfmath@def{atan}{346}{19.08562} \pgfmath@def{atan}{347}{19.13677} +\pgfmath@def{atan}{348}{19.18789} \pgfmath@def{atan}{349}{19.23898} +\pgfmath@def{atan}{350}{19.29004} \pgfmath@def{atan}{351}{19.34107} +\pgfmath@def{atan}{352}{19.39206} \pgfmath@def{atan}{353}{19.44303} +\pgfmath@def{atan}{354}{19.49396} \pgfmath@def{atan}{355}{19.54486} +\pgfmath@def{atan}{356}{19.59572} \pgfmath@def{atan}{357}{19.64656} +\pgfmath@def{atan}{358}{19.69736} \pgfmath@def{atan}{359}{19.74813} +\pgfmath@def{atan}{360}{19.79887} \pgfmath@def{atan}{361}{19.84958} +\pgfmath@def{atan}{362}{19.90025} \pgfmath@def{atan}{363}{19.95089} +\pgfmath@def{atan}{364}{20.00150} \pgfmath@def{atan}{365}{20.05208} +\pgfmath@def{atan}{366}{20.10262} \pgfmath@def{atan}{367}{20.15313} +\pgfmath@def{atan}{368}{20.20361} \pgfmath@def{atan}{369}{20.25406} +\pgfmath@def{atan}{370}{20.30447} \pgfmath@def{atan}{371}{20.35485} +\pgfmath@def{atan}{372}{20.40520} \pgfmath@def{atan}{373}{20.45551} +\pgfmath@def{atan}{374}{20.50579} \pgfmath@def{atan}{375}{20.55604} +\pgfmath@def{atan}{376}{20.60626} \pgfmath@def{atan}{377}{20.65644} +\pgfmath@def{atan}{378}{20.70659} \pgfmath@def{atan}{379}{20.75670} +\pgfmath@def{atan}{380}{20.80679} \pgfmath@def{atan}{381}{20.85684} +\pgfmath@def{atan}{382}{20.90685} \pgfmath@def{atan}{383}{20.95684} +\pgfmath@def{atan}{384}{21.00678} \pgfmath@def{atan}{385}{21.05670} +\pgfmath@def{atan}{386}{21.10658} \pgfmath@def{atan}{387}{21.15643} +\pgfmath@def{atan}{388}{21.20625} \pgfmath@def{atan}{389}{21.25603} +\pgfmath@def{atan}{390}{21.30578} \pgfmath@def{atan}{391}{21.35549} +\pgfmath@def{atan}{392}{21.40517} \pgfmath@def{atan}{393}{21.45482} +\pgfmath@def{atan}{394}{21.50444} \pgfmath@def{atan}{395}{21.55402} +\pgfmath@def{atan}{396}{21.60356} \pgfmath@def{atan}{397}{21.65307} +\pgfmath@def{atan}{398}{21.70255} \pgfmath@def{atan}{399}{21.75200} +\pgfmath@def{atan}{400}{21.80140} \pgfmath@def{atan}{401}{21.85078} +\pgfmath@def{atan}{402}{21.90012} \pgfmath@def{atan}{403}{21.94943} +\pgfmath@def{atan}{404}{21.99870} \pgfmath@def{atan}{405}{22.04794} +\pgfmath@def{atan}{406}{22.09715} \pgfmath@def{atan}{407}{22.14632} +\pgfmath@def{atan}{408}{22.19546} \pgfmath@def{atan}{409}{22.24456} +\pgfmath@def{atan}{410}{22.29362} \pgfmath@def{atan}{411}{22.34266} +\pgfmath@def{atan}{412}{22.39166} \pgfmath@def{atan}{413}{22.44062} +\pgfmath@def{atan}{414}{22.48955} \pgfmath@def{atan}{415}{22.53845} +\pgfmath@def{atan}{416}{22.58731} \pgfmath@def{atan}{417}{22.63613} +\pgfmath@def{atan}{418}{22.68492} \pgfmath@def{atan}{419}{22.73368} +\pgfmath@def{atan}{420}{22.78240} \pgfmath@def{atan}{421}{22.83109} +\pgfmath@def{atan}{422}{22.87974} \pgfmath@def{atan}{423}{22.92836} +\pgfmath@def{atan}{424}{22.97694} \pgfmath@def{atan}{425}{23.02549} +\pgfmath@def{atan}{426}{23.07400} \pgfmath@def{atan}{427}{23.12248} +\pgfmath@def{atan}{428}{23.17092} \pgfmath@def{atan}{429}{23.21933} +\pgfmath@def{atan}{430}{23.26770} \pgfmath@def{atan}{431}{23.31604} +\pgfmath@def{atan}{432}{23.36434} \pgfmath@def{atan}{433}{23.41261} +\pgfmath@def{atan}{434}{23.46084} \pgfmath@def{atan}{435}{23.50904} +\pgfmath@def{atan}{436}{23.55720} \pgfmath@def{atan}{437}{23.60532} +\pgfmath@def{atan}{438}{23.65341} \pgfmath@def{atan}{439}{23.70147} +\pgfmath@def{atan}{440}{23.74949} \pgfmath@def{atan}{441}{23.79747} +\pgfmath@def{atan}{442}{23.84542} \pgfmath@def{atan}{443}{23.89334} +\pgfmath@def{atan}{444}{23.94122} \pgfmath@def{atan}{445}{23.98906} +\pgfmath@def{atan}{446}{24.03687} \pgfmath@def{atan}{447}{24.08464} +\pgfmath@def{atan}{448}{24.13238} \pgfmath@def{atan}{449}{24.18008} +\pgfmath@def{atan}{450}{24.22774} \pgfmath@def{atan}{451}{24.27537} +\pgfmath@def{atan}{452}{24.32296} \pgfmath@def{atan}{453}{24.37052} +\pgfmath@def{atan}{454}{24.41804} \pgfmath@def{atan}{455}{24.46553} +\pgfmath@def{atan}{456}{24.51298} \pgfmath@def{atan}{457}{24.56040} +\pgfmath@def{atan}{458}{24.60778} \pgfmath@def{atan}{459}{24.65512} +\pgfmath@def{atan}{460}{24.70243} \pgfmath@def{atan}{461}{24.74970} +\pgfmath@def{atan}{462}{24.79693} \pgfmath@def{atan}{463}{24.84413} +\pgfmath@def{atan}{464}{24.89130} \pgfmath@def{atan}{465}{24.93842} +\pgfmath@def{atan}{466}{24.98551} \pgfmath@def{atan}{467}{25.03257} +\pgfmath@def{atan}{468}{25.07959} \pgfmath@def{atan}{469}{25.12657} +\pgfmath@def{atan}{470}{25.17352} \pgfmath@def{atan}{471}{25.22043} +\pgfmath@def{atan}{472}{25.26731} \pgfmath@def{atan}{473}{25.31414} +\pgfmath@def{atan}{474}{25.36095} \pgfmath@def{atan}{475}{25.40771} +\pgfmath@def{atan}{476}{25.45444} \pgfmath@def{atan}{477}{25.50114} +\pgfmath@def{atan}{478}{25.54780} \pgfmath@def{atan}{479}{25.59442} +\pgfmath@def{atan}{480}{25.64100} \pgfmath@def{atan}{481}{25.68755} +\pgfmath@def{atan}{482}{25.73406} \pgfmath@def{atan}{483}{25.78054} +\pgfmath@def{atan}{484}{25.82698} \pgfmath@def{atan}{485}{25.87338} +\pgfmath@def{atan}{486}{25.91975} \pgfmath@def{atan}{487}{25.96608} +\pgfmath@def{atan}{488}{26.01237} \pgfmath@def{atan}{489}{26.05863} +\pgfmath@def{atan}{490}{26.10485} \pgfmath@def{atan}{491}{26.15103} +\pgfmath@def{atan}{492}{26.19718} \pgfmath@def{atan}{493}{26.24329} +\pgfmath@def{atan}{494}{26.28937} \pgfmath@def{atan}{495}{26.33541} +\pgfmath@def{atan}{496}{26.38141} \pgfmath@def{atan}{497}{26.42737} +\pgfmath@def{atan}{498}{26.47330} \pgfmath@def{atan}{499}{26.51919} +\pgfmath@def{atan}{500}{26.56505} \pgfmath@def{atan}{501}{26.61086} +\pgfmath@def{atan}{502}{26.65665} \pgfmath@def{atan}{503}{26.70239} +\pgfmath@def{atan}{504}{26.74810} \pgfmath@def{atan}{505}{26.79377} +\pgfmath@def{atan}{506}{26.83941} \pgfmath@def{atan}{507}{26.88500} +\pgfmath@def{atan}{508}{26.93057} \pgfmath@def{atan}{509}{26.97609} +\pgfmath@def{atan}{510}{27.02158} \pgfmath@def{atan}{511}{27.06703} +\pgfmath@def{atan}{512}{27.11244} \pgfmath@def{atan}{513}{27.15782} +\pgfmath@def{atan}{514}{27.20316} \pgfmath@def{atan}{515}{27.24846} +\pgfmath@def{atan}{516}{27.29373} \pgfmath@def{atan}{517}{27.33896} +\pgfmath@def{atan}{518}{27.38415} \pgfmath@def{atan}{519}{27.42931} +\pgfmath@def{atan}{520}{27.47443} \pgfmath@def{atan}{521}{27.51951} +\pgfmath@def{atan}{522}{27.56455} \pgfmath@def{atan}{523}{27.60956} +\pgfmath@def{atan}{524}{27.65453} \pgfmath@def{atan}{525}{27.69947} +\pgfmath@def{atan}{526}{27.74437} \pgfmath@def{atan}{527}{27.78923} +\pgfmath@def{atan}{528}{27.83405} \pgfmath@def{atan}{529}{27.87884} +\pgfmath@def{atan}{530}{27.92359} \pgfmath@def{atan}{531}{27.96830} +\pgfmath@def{atan}{532}{28.01297} \pgfmath@def{atan}{533}{28.05761} +\pgfmath@def{atan}{534}{28.10221} \pgfmath@def{atan}{535}{28.14678} +\pgfmath@def{atan}{536}{28.19130} \pgfmath@def{atan}{537}{28.23579} +\pgfmath@def{atan}{538}{28.28025} \pgfmath@def{atan}{539}{28.32466} +\pgfmath@def{atan}{540}{28.36904} \pgfmath@def{atan}{541}{28.41338} +\pgfmath@def{atan}{542}{28.45769} \pgfmath@def{atan}{543}{28.50196} +\pgfmath@def{atan}{544}{28.54619} \pgfmath@def{atan}{545}{28.59038} +\pgfmath@def{atan}{546}{28.63454} \pgfmath@def{atan}{547}{28.67865} +\pgfmath@def{atan}{548}{28.72274} \pgfmath@def{atan}{549}{28.76678} +\pgfmath@def{atan}{550}{28.81079} \pgfmath@def{atan}{551}{28.85476} +\pgfmath@def{atan}{552}{28.89869} \pgfmath@def{atan}{553}{28.94259} +\pgfmath@def{atan}{554}{28.98645} \pgfmath@def{atan}{555}{29.03027} +\pgfmath@def{atan}{556}{29.07405} \pgfmath@def{atan}{557}{29.11780} +\pgfmath@def{atan}{558}{29.16151} \pgfmath@def{atan}{559}{29.20519} +\pgfmath@def{atan}{560}{29.24882} \pgfmath@def{atan}{561}{29.29242} +\pgfmath@def{atan}{562}{29.33598} \pgfmath@def{atan}{563}{29.37951} +\pgfmath@def{atan}{564}{29.42299} \pgfmath@def{atan}{565}{29.46644} +\pgfmath@def{atan}{566}{29.50986} \pgfmath@def{atan}{567}{29.55323} +\pgfmath@def{atan}{568}{29.59657} \pgfmath@def{atan}{569}{29.63987} +\pgfmath@def{atan}{570}{29.68314} \pgfmath@def{atan}{571}{29.72636} +\pgfmath@def{atan}{572}{29.76955} \pgfmath@def{atan}{573}{29.81270} +\pgfmath@def{atan}{574}{29.85582} \pgfmath@def{atan}{575}{29.89890} +\pgfmath@def{atan}{576}{29.94194} \pgfmath@def{atan}{577}{29.98494} +\pgfmath@def{atan}{578}{30.02791} \pgfmath@def{atan}{579}{30.07084} +\pgfmath@def{atan}{580}{30.11373} \pgfmath@def{atan}{581}{30.15658} +\pgfmath@def{atan}{582}{30.19940} \pgfmath@def{atan}{583}{30.24218} +\pgfmath@def{atan}{584}{30.28492} \pgfmath@def{atan}{585}{30.32763} +\pgfmath@def{atan}{586}{30.37030} \pgfmath@def{atan}{587}{30.41293} +\pgfmath@def{atan}{588}{30.45552} \pgfmath@def{atan}{589}{30.49808} +\pgfmath@def{atan}{590}{30.54060} \pgfmath@def{atan}{591}{30.58308} +\pgfmath@def{atan}{592}{30.62553} \pgfmath@def{atan}{593}{30.66794} +\pgfmath@def{atan}{594}{30.71031} \pgfmath@def{atan}{595}{30.75264} +\pgfmath@def{atan}{596}{30.79494} \pgfmath@def{atan}{597}{30.83720} +\pgfmath@def{atan}{598}{30.87942} \pgfmath@def{atan}{599}{30.92160} +\pgfmath@def{atan}{600}{30.96375} \pgfmath@def{atan}{601}{31.00586} +\pgfmath@def{atan}{602}{31.04794} \pgfmath@def{atan}{603}{31.08997} +\pgfmath@def{atan}{604}{31.13197} \pgfmath@def{atan}{605}{31.17393} +\pgfmath@def{atan}{606}{31.21586} \pgfmath@def{atan}{607}{31.25775} +\pgfmath@def{atan}{608}{31.29960} \pgfmath@def{atan}{609}{31.34141} +\pgfmath@def{atan}{610}{31.38319} \pgfmath@def{atan}{611}{31.42493} +\pgfmath@def{atan}{612}{31.46663} \pgfmath@def{atan}{613}{31.50829} +\pgfmath@def{atan}{614}{31.54992} \pgfmath@def{atan}{615}{31.59151} +\pgfmath@def{atan}{616}{31.63306} \pgfmath@def{atan}{617}{31.67458} +\pgfmath@def{atan}{618}{31.71606} \pgfmath@def{atan}{619}{31.75750} +\pgfmath@def{atan}{620}{31.79891} \pgfmath@def{atan}{621}{31.84028} +\pgfmath@def{atan}{622}{31.88161} \pgfmath@def{atan}{623}{31.92290} +\pgfmath@def{atan}{624}{31.96416} \pgfmath@def{atan}{625}{32.00538} +\pgfmath@def{atan}{626}{32.04656} \pgfmath@def{atan}{627}{32.08771} +\pgfmath@def{atan}{628}{32.12882} \pgfmath@def{atan}{629}{32.16989} +\pgfmath@def{atan}{630}{32.21092} \pgfmath@def{atan}{631}{32.25192} +\pgfmath@def{atan}{632}{32.29288} \pgfmath@def{atan}{633}{32.33381} +\pgfmath@def{atan}{634}{32.37469} \pgfmath@def{atan}{635}{32.41554} +\pgfmath@def{atan}{636}{32.45636} \pgfmath@def{atan}{637}{32.49713} +\pgfmath@def{atan}{638}{32.53787} \pgfmath@def{atan}{639}{32.57857} +\pgfmath@def{atan}{640}{32.61924} \pgfmath@def{atan}{641}{32.65987} +\pgfmath@def{atan}{642}{32.70046} \pgfmath@def{atan}{643}{32.74101} +\pgfmath@def{atan}{644}{32.78153} \pgfmath@def{atan}{645}{32.82201} +\pgfmath@def{atan}{646}{32.86246} \pgfmath@def{atan}{647}{32.90286} +\pgfmath@def{atan}{648}{32.94323} \pgfmath@def{atan}{649}{32.98357} +\pgfmath@def{atan}{650}{33.02386} \pgfmath@def{atan}{651}{33.06412} +\pgfmath@def{atan}{652}{33.10435} \pgfmath@def{atan}{653}{33.14453} +\pgfmath@def{atan}{654}{33.18468} \pgfmath@def{atan}{655}{33.22479} +\pgfmath@def{atan}{656}{33.26487} \pgfmath@def{atan}{657}{33.30491} +\pgfmath@def{atan}{658}{33.34491} \pgfmath@def{atan}{659}{33.38488} +\pgfmath@def{atan}{660}{33.42481} \pgfmath@def{atan}{661}{33.46470} +\pgfmath@def{atan}{662}{33.50455} \pgfmath@def{atan}{663}{33.54437} +\pgfmath@def{atan}{664}{33.58416} \pgfmath@def{atan}{665}{33.62390} +\pgfmath@def{atan}{666}{33.66361} \pgfmath@def{atan}{667}{33.70328} +\pgfmath@def{atan}{668}{33.74292} \pgfmath@def{atan}{669}{33.78252} +\pgfmath@def{atan}{670}{33.82208} \pgfmath@def{atan}{671}{33.86161} +\pgfmath@def{atan}{672}{33.90110} \pgfmath@def{atan}{673}{33.94055} +\pgfmath@def{atan}{674}{33.97997} \pgfmath@def{atan}{675}{34.01935} +\pgfmath@def{atan}{676}{34.05869} \pgfmath@def{atan}{677}{34.09800} +\pgfmath@def{atan}{678}{34.13727} \pgfmath@def{atan}{679}{34.17650} +\pgfmath@def{atan}{680}{34.21570} \pgfmath@def{atan}{681}{34.25486} +\pgfmath@def{atan}{682}{34.29398} \pgfmath@def{atan}{683}{34.33307} +\pgfmath@def{atan}{684}{34.37212} \pgfmath@def{atan}{685}{34.41114} +\pgfmath@def{atan}{686}{34.45012} \pgfmath@def{atan}{687}{34.48906} +\pgfmath@def{atan}{688}{34.52797} \pgfmath@def{atan}{689}{34.56684} +\pgfmath@def{atan}{690}{34.60567} \pgfmath@def{atan}{691}{34.64447} +\pgfmath@def{atan}{692}{34.68323} \pgfmath@def{atan}{693}{34.72195} +\pgfmath@def{atan}{694}{34.76064} \pgfmath@def{atan}{695}{34.79930} +\pgfmath@def{atan}{696}{34.83791} \pgfmath@def{atan}{697}{34.87649} +\pgfmath@def{atan}{698}{34.91504} \pgfmath@def{atan}{699}{34.95354} +\pgfmath@def{atan}{700}{34.99202} \pgfmath@def{atan}{701}{35.03045} +\pgfmath@def{atan}{702}{35.06885} \pgfmath@def{atan}{703}{35.10721} +\pgfmath@def{atan}{704}{35.14554} \pgfmath@def{atan}{705}{35.18383} +\pgfmath@def{atan}{706}{35.22209} \pgfmath@def{atan}{707}{35.26031} +\pgfmath@def{atan}{708}{35.29849} \pgfmath@def{atan}{709}{35.33664} +\pgfmath@def{atan}{710}{35.37475} \pgfmath@def{atan}{711}{35.41282} +\pgfmath@def{atan}{712}{35.45086} \pgfmath@def{atan}{713}{35.48886} +\pgfmath@def{atan}{714}{35.52683} \pgfmath@def{atan}{715}{35.56476} +\pgfmath@def{atan}{716}{35.60266} \pgfmath@def{atan}{717}{35.64052} +\pgfmath@def{atan}{718}{35.67834} \pgfmath@def{atan}{719}{35.71613} +\pgfmath@def{atan}{720}{35.75388} \pgfmath@def{atan}{721}{35.79160} +\pgfmath@def{atan}{722}{35.82928} \pgfmath@def{atan}{723}{35.86692} +\pgfmath@def{atan}{724}{35.90453} \pgfmath@def{atan}{725}{35.94211} +\pgfmath@def{atan}{726}{35.97965} \pgfmath@def{atan}{727}{36.01715} +\pgfmath@def{atan}{728}{36.05461} \pgfmath@def{atan}{729}{36.09204} +\pgfmath@def{atan}{730}{36.12944} \pgfmath@def{atan}{731}{36.16680} +\pgfmath@def{atan}{732}{36.20412} \pgfmath@def{atan}{733}{36.24141} +\pgfmath@def{atan}{734}{36.27866} \pgfmath@def{atan}{735}{36.31588} +\pgfmath@def{atan}{736}{36.35306} \pgfmath@def{atan}{737}{36.39021} +\pgfmath@def{atan}{738}{36.42732} \pgfmath@def{atan}{739}{36.46440} +\pgfmath@def{atan}{740}{36.50144} \pgfmath@def{atan}{741}{36.53844} +\pgfmath@def{atan}{742}{36.57541} \pgfmath@def{atan}{743}{36.61234} +\pgfmath@def{atan}{744}{36.64924} \pgfmath@def{atan}{745}{36.68611} +\pgfmath@def{atan}{746}{36.72293} \pgfmath@def{atan}{747}{36.75973} +\pgfmath@def{atan}{748}{36.79648} \pgfmath@def{atan}{749}{36.83321} +\pgfmath@def{atan}{750}{36.86989} \pgfmath@def{atan}{751}{36.90654} +\pgfmath@def{atan}{752}{36.94316} \pgfmath@def{atan}{753}{36.97974} +\pgfmath@def{atan}{754}{37.01629} \pgfmath@def{atan}{755}{37.05280} +\pgfmath@def{atan}{756}{37.08928} \pgfmath@def{atan}{757}{37.12572} +\pgfmath@def{atan}{758}{37.16212} \pgfmath@def{atan}{759}{37.19849} +\pgfmath@def{atan}{760}{37.23483} \pgfmath@def{atan}{761}{37.27113} +\pgfmath@def{atan}{762}{37.30740} \pgfmath@def{atan}{763}{37.34363} +\pgfmath@def{atan}{764}{37.37982} \pgfmath@def{atan}{765}{37.41598} +\pgfmath@def{atan}{766}{37.45211} \pgfmath@def{atan}{767}{37.48820} +\pgfmath@def{atan}{768}{37.52426} \pgfmath@def{atan}{769}{37.56028} +\pgfmath@def{atan}{770}{37.59627} \pgfmath@def{atan}{771}{37.63222} +\pgfmath@def{atan}{772}{37.66814} \pgfmath@def{atan}{773}{37.70402} +\pgfmath@def{atan}{774}{37.73987} \pgfmath@def{atan}{775}{37.77568} +\pgfmath@def{atan}{776}{37.81146} \pgfmath@def{atan}{777}{37.84720} +\pgfmath@def{atan}{778}{37.88291} \pgfmath@def{atan}{779}{37.91859} +\pgfmath@def{atan}{780}{37.95423} \pgfmath@def{atan}{781}{37.98983} +\pgfmath@def{atan}{782}{38.02540} \pgfmath@def{atan}{783}{38.06094} +\pgfmath@def{atan}{784}{38.09644} \pgfmath@def{atan}{785}{38.13191} +\pgfmath@def{atan}{786}{38.16734} \pgfmath@def{atan}{787}{38.20274} +\pgfmath@def{atan}{788}{38.23811} \pgfmath@def{atan}{789}{38.27344} +\pgfmath@def{atan}{790}{38.30873} \pgfmath@def{atan}{791}{38.34399} +\pgfmath@def{atan}{792}{38.37922} \pgfmath@def{atan}{793}{38.41441} +\pgfmath@def{atan}{794}{38.44957} \pgfmath@def{atan}{795}{38.48469} +\pgfmath@def{atan}{796}{38.51979} \pgfmath@def{atan}{797}{38.55484} +\pgfmath@def{atan}{798}{38.58986} \pgfmath@def{atan}{799}{38.62485} +\pgfmath@def{atan}{800}{38.65980} \pgfmath@def{atan}{801}{38.69472} +\pgfmath@def{atan}{802}{38.72961} \pgfmath@def{atan}{803}{38.76446} +\pgfmath@def{atan}{804}{38.79928} \pgfmath@def{atan}{805}{38.83406} +\pgfmath@def{atan}{806}{38.86881} \pgfmath@def{atan}{807}{38.90353} +\pgfmath@def{atan}{808}{38.93821} \pgfmath@def{atan}{809}{38.97285} +\pgfmath@def{atan}{810}{39.00747} \pgfmath@def{atan}{811}{39.04205} +\pgfmath@def{atan}{812}{39.07659} \pgfmath@def{atan}{813}{39.11111} +\pgfmath@def{atan}{814}{39.14558} \pgfmath@def{atan}{815}{39.18003} +\pgfmath@def{atan}{816}{39.21444} \pgfmath@def{atan}{817}{39.24882} +\pgfmath@def{atan}{818}{39.28316} \pgfmath@def{atan}{819}{39.31747} +\pgfmath@def{atan}{820}{39.35175} \pgfmath@def{atan}{821}{39.38599} +\pgfmath@def{atan}{822}{39.42020} \pgfmath@def{atan}{823}{39.45438} +\pgfmath@def{atan}{824}{39.48852} \pgfmath@def{atan}{825}{39.52263} +\pgfmath@def{atan}{826}{39.55670} \pgfmath@def{atan}{827}{39.59074} +\pgfmath@def{atan}{828}{39.62475} \pgfmath@def{atan}{829}{39.65873} +\pgfmath@def{atan}{830}{39.69267} \pgfmath@def{atan}{831}{39.72658} +\pgfmath@def{atan}{832}{39.76045} \pgfmath@def{atan}{833}{39.79429} +\pgfmath@def{atan}{834}{39.82810} \pgfmath@def{atan}{835}{39.86188} +\pgfmath@def{atan}{836}{39.89562} \pgfmath@def{atan}{837}{39.92933} +\pgfmath@def{atan}{838}{39.96300} \pgfmath@def{atan}{839}{39.99665} +\pgfmath@def{atan}{840}{40.03025} \pgfmath@def{atan}{841}{40.06383} +\pgfmath@def{atan}{842}{40.09737} \pgfmath@def{atan}{843}{40.13088} +\pgfmath@def{atan}{844}{40.16436} \pgfmath@def{atan}{845}{40.19781} +\pgfmath@def{atan}{846}{40.23122} \pgfmath@def{atan}{847}{40.26459} +\pgfmath@def{atan}{848}{40.29794} \pgfmath@def{atan}{849}{40.33125} +\pgfmath@def{atan}{850}{40.36453} \pgfmath@def{atan}{851}{40.39778} +\pgfmath@def{atan}{852}{40.43099} \pgfmath@def{atan}{853}{40.46417} +\pgfmath@def{atan}{854}{40.49732} \pgfmath@def{atan}{855}{40.53044} +\pgfmath@def{atan}{856}{40.56352} \pgfmath@def{atan}{857}{40.59657} +\pgfmath@def{atan}{858}{40.62959} \pgfmath@def{atan}{859}{40.66257} +\pgfmath@def{atan}{860}{40.69553} \pgfmath@def{atan}{861}{40.72845} +\pgfmath@def{atan}{862}{40.76133} \pgfmath@def{atan}{863}{40.79419} +\pgfmath@def{atan}{864}{40.82701} \pgfmath@def{atan}{865}{40.85980} +\pgfmath@def{atan}{866}{40.89256} \pgfmath@def{atan}{867}{40.92528} +\pgfmath@def{atan}{868}{40.95798} \pgfmath@def{atan}{869}{40.99064} +\pgfmath@def{atan}{870}{41.02326} \pgfmath@def{atan}{871}{41.05586} +\pgfmath@def{atan}{872}{41.08842} \pgfmath@def{atan}{873}{41.12095} +\pgfmath@def{atan}{874}{41.15345} \pgfmath@def{atan}{875}{41.18592} +\pgfmath@def{atan}{876}{41.21836} \pgfmath@def{atan}{877}{41.25076} +\pgfmath@def{atan}{878}{41.28313} \pgfmath@def{atan}{879}{41.31547} +\pgfmath@def{atan}{880}{41.34777} \pgfmath@def{atan}{881}{41.38005} +\pgfmath@def{atan}{882}{41.41229} \pgfmath@def{atan}{883}{41.44450} +\pgfmath@def{atan}{884}{41.47668} \pgfmath@def{atan}{885}{41.50882} +\pgfmath@def{atan}{886}{41.54094} \pgfmath@def{atan}{887}{41.57302} +\pgfmath@def{atan}{888}{41.60507} \pgfmath@def{atan}{889}{41.63709} +\pgfmath@def{atan}{890}{41.66908} \pgfmath@def{atan}{891}{41.70103} +\pgfmath@def{atan}{892}{41.73296} \pgfmath@def{atan}{893}{41.76485} +\pgfmath@def{atan}{894}{41.79671} \pgfmath@def{atan}{895}{41.82854} +\pgfmath@def{atan}{896}{41.86034} \pgfmath@def{atan}{897}{41.89210} +\pgfmath@def{atan}{898}{41.92383} \pgfmath@def{atan}{899}{41.95554} +\pgfmath@def{atan}{900}{41.98721} \pgfmath@def{atan}{901}{42.01885} +\pgfmath@def{atan}{902}{42.05046} \pgfmath@def{atan}{903}{42.08203} +\pgfmath@def{atan}{904}{42.11358} \pgfmath@def{atan}{905}{42.14509} +\pgfmath@def{atan}{906}{42.17657} \pgfmath@def{atan}{907}{42.20802} +\pgfmath@def{atan}{908}{42.23944} \pgfmath@def{atan}{909}{42.27083} +\pgfmath@def{atan}{910}{42.30219} \pgfmath@def{atan}{911}{42.33352} +\pgfmath@def{atan}{912}{42.36481} \pgfmath@def{atan}{913}{42.39607} +\pgfmath@def{atan}{914}{42.42731} \pgfmath@def{atan}{915}{42.45851} +\pgfmath@def{atan}{916}{42.48968} \pgfmath@def{atan}{917}{42.52082} +\pgfmath@def{atan}{918}{42.55193} \pgfmath@def{atan}{919}{42.58300} +\pgfmath@def{atan}{920}{42.61405} \pgfmath@def{atan}{921}{42.64507} +\pgfmath@def{atan}{922}{42.67605} \pgfmath@def{atan}{923}{42.70701} +\pgfmath@def{atan}{924}{42.73793} \pgfmath@def{atan}{925}{42.76882} +\pgfmath@def{atan}{926}{42.79968} \pgfmath@def{atan}{927}{42.83051} +\pgfmath@def{atan}{928}{42.86131} \pgfmath@def{atan}{929}{42.89208} +\pgfmath@def{atan}{930}{42.92282} \pgfmath@def{atan}{931}{42.95353} +\pgfmath@def{atan}{932}{42.98421} \pgfmath@def{atan}{933}{43.01485} +\pgfmath@def{atan}{934}{43.04547} \pgfmath@def{atan}{935}{43.07605} +\pgfmath@def{atan}{936}{43.10661} \pgfmath@def{atan}{937}{43.13713} +\pgfmath@def{atan}{938}{43.16763} \pgfmath@def{atan}{939}{43.19809} +\pgfmath@def{atan}{940}{43.22853} \pgfmath@def{atan}{941}{43.25893} +\pgfmath@def{atan}{942}{43.28930} \pgfmath@def{atan}{943}{43.31964} +\pgfmath@def{atan}{944}{43.34996} \pgfmath@def{atan}{945}{43.38024} +\pgfmath@def{atan}{946}{43.41049} \pgfmath@def{atan}{947}{43.44071} +\pgfmath@def{atan}{948}{43.47090} \pgfmath@def{atan}{949}{43.50106} +\pgfmath@def{atan}{950}{43.53119} \pgfmath@def{atan}{951}{43.56130} +\pgfmath@def{atan}{952}{43.59137} \pgfmath@def{atan}{953}{43.62141} +\pgfmath@def{atan}{954}{43.65142} \pgfmath@def{atan}{955}{43.68140} +\pgfmath@def{atan}{956}{43.71135} \pgfmath@def{atan}{957}{43.74127} +\pgfmath@def{atan}{958}{43.77116} \pgfmath@def{atan}{959}{43.80102} +\pgfmath@def{atan}{960}{43.83086} \pgfmath@def{atan}{961}{43.86066} +\pgfmath@def{atan}{962}{43.89043} \pgfmath@def{atan}{963}{43.92017} +\pgfmath@def{atan}{964}{43.94988} \pgfmath@def{atan}{965}{43.97957} +\pgfmath@def{atan}{966}{44.00922} \pgfmath@def{atan}{967}{44.03884} +\pgfmath@def{atan}{968}{44.06844} \pgfmath@def{atan}{969}{44.09800} +\pgfmath@def{atan}{970}{44.12754} \pgfmath@def{atan}{971}{44.15704} +\pgfmath@def{atan}{972}{44.18652} \pgfmath@def{atan}{973}{44.21597} +\pgfmath@def{atan}{974}{44.24538} \pgfmath@def{atan}{975}{44.27477} +\pgfmath@def{atan}{976}{44.30413} \pgfmath@def{atan}{977}{44.33346} +\pgfmath@def{atan}{978}{44.36276} \pgfmath@def{atan}{979}{44.39203} +\pgfmath@def{atan}{980}{44.42127} \pgfmath@def{atan}{981}{44.45048} +\pgfmath@def{atan}{982}{44.47966} \pgfmath@def{atan}{983}{44.50882} +\pgfmath@def{atan}{984}{44.53794} \pgfmath@def{atan}{985}{44.56704} +\pgfmath@def{atan}{986}{44.59610} \pgfmath@def{atan}{987}{44.62514} +\pgfmath@def{atan}{988}{44.65415} \pgfmath@def{atan}{989}{44.68313} +\pgfmath@def{atan}{990}{44.71208} \pgfmath@def{atan}{991}{44.74100} +\pgfmath@def{atan}{992}{44.76989} \pgfmath@def{atan}{993}{44.79876} +\pgfmath@def{atan}{994}{44.82759} \pgfmath@def{atan}{995}{44.85640} +\pgfmath@def{atan}{996}{44.88517} \pgfmath@def{atan}{997}{44.91392} +\pgfmath@def{atan}{998}{44.94264} \pgfmath@def{atan}{999}{44.97133} +\pgfmath@def{atan}{1000}{45.00000} + +\pgfmath@def{asin}{0}{0.00000} \pgfmath@def{asin}{1}{0.05729} +\pgfmath@def{asin}{2}{0.11459} \pgfmath@def{asin}{3}{0.17188} +\pgfmath@def{asin}{4}{0.22918} \pgfmath@def{asin}{5}{0.28648} +\pgfmath@def{asin}{6}{0.34377} \pgfmath@def{asin}{7}{0.40107} +\pgfmath@def{asin}{8}{0.45837} \pgfmath@def{asin}{9}{0.51566} +\pgfmath@def{asin}{10}{0.57296} \pgfmath@def{asin}{11}{0.63026} +\pgfmath@def{asin}{12}{0.68756} \pgfmath@def{asin}{13}{0.74486} +\pgfmath@def{asin}{14}{0.80216} \pgfmath@def{asin}{15}{0.85946} +\pgfmath@def{asin}{16}{0.91677} \pgfmath@def{asin}{17}{0.97407} +\pgfmath@def{asin}{18}{1.03138} \pgfmath@def{asin}{19}{1.08868} +\pgfmath@def{asin}{20}{1.14599} \pgfmath@def{asin}{21}{1.20330} +\pgfmath@def{asin}{22}{1.26060} \pgfmath@def{asin}{23}{1.31791} +\pgfmath@def{asin}{24}{1.37523} \pgfmath@def{asin}{25}{1.43254} +\pgfmath@def{asin}{26}{1.48985} \pgfmath@def{asin}{27}{1.54717} +\pgfmath@def{asin}{28}{1.60449} \pgfmath@def{asin}{29}{1.66181} +\pgfmath@def{asin}{30}{1.71913} \pgfmath@def{asin}{31}{1.77645} +\pgfmath@def{asin}{32}{1.83377} \pgfmath@def{asin}{33}{1.89110} +\pgfmath@def{asin}{34}{1.94843} \pgfmath@def{asin}{35}{2.00576} +\pgfmath@def{asin}{36}{2.06309} \pgfmath@def{asin}{37}{2.12042} +\pgfmath@def{asin}{38}{2.17776} \pgfmath@def{asin}{39}{2.23510} +\pgfmath@def{asin}{40}{2.29244} \pgfmath@def{asin}{41}{2.34978} +\pgfmath@def{asin}{42}{2.40713} \pgfmath@def{asin}{43}{2.46447} +\pgfmath@def{asin}{44}{2.52182} \pgfmath@def{asin}{45}{2.57918} +\pgfmath@def{asin}{46}{2.63653} \pgfmath@def{asin}{47}{2.69389} +\pgfmath@def{asin}{48}{2.75125} \pgfmath@def{asin}{49}{2.80861} +\pgfmath@def{asin}{50}{2.86598} \pgfmath@def{asin}{51}{2.92335} +\pgfmath@def{asin}{52}{2.98072} \pgfmath@def{asin}{53}{3.03810} +\pgfmath@def{asin}{54}{3.09547} \pgfmath@def{asin}{55}{3.15285} +\pgfmath@def{asin}{56}{3.21024} \pgfmath@def{asin}{57}{3.26763} +\pgfmath@def{asin}{58}{3.32502} \pgfmath@def{asin}{59}{3.38241} +\pgfmath@def{asin}{60}{3.43981} \pgfmath@def{asin}{61}{3.49721} +\pgfmath@def{asin}{62}{3.55461} \pgfmath@def{asin}{63}{3.61202} +\pgfmath@def{asin}{64}{3.66943} \pgfmath@def{asin}{65}{3.72685} +\pgfmath@def{asin}{66}{3.78427} \pgfmath@def{asin}{67}{3.84169} +\pgfmath@def{asin}{68}{3.89912} \pgfmath@def{asin}{69}{3.95655} +\pgfmath@def{asin}{70}{4.01398} \pgfmath@def{asin}{71}{4.07142} +\pgfmath@def{asin}{72}{4.12886} \pgfmath@def{asin}{73}{4.18631} +\pgfmath@def{asin}{74}{4.24376} \pgfmath@def{asin}{75}{4.30122} +\pgfmath@def{asin}{76}{4.35868} \pgfmath@def{asin}{77}{4.41614} +\pgfmath@def{asin}{78}{4.47361} \pgfmath@def{asin}{79}{4.53108} +\pgfmath@def{asin}{80}{4.58856} \pgfmath@def{asin}{81}{4.64604} +\pgfmath@def{asin}{82}{4.70353} \pgfmath@def{asin}{83}{4.76102} +\pgfmath@def{asin}{84}{4.81852} \pgfmath@def{asin}{85}{4.87602} +\pgfmath@def{asin}{86}{4.93353} \pgfmath@def{asin}{87}{4.99104} +\pgfmath@def{asin}{88}{5.04855} \pgfmath@def{asin}{89}{5.10608} +\pgfmath@def{asin}{90}{5.16360} \pgfmath@def{asin}{91}{5.22113} +\pgfmath@def{asin}{92}{5.27867} \pgfmath@def{asin}{93}{5.33621} +\pgfmath@def{asin}{94}{5.39376} \pgfmath@def{asin}{95}{5.45132} +\pgfmath@def{asin}{96}{5.50887} \pgfmath@def{asin}{97}{5.56644} +\pgfmath@def{asin}{98}{5.62401} \pgfmath@def{asin}{99}{5.68158} +\pgfmath@def{asin}{100}{5.73917} \pgfmath@def{asin}{101}{5.79675} +\pgfmath@def{asin}{102}{5.85435} \pgfmath@def{asin}{103}{5.91195} +\pgfmath@def{asin}{104}{5.96955} \pgfmath@def{asin}{105}{6.02716} +\pgfmath@def{asin}{106}{6.08478} \pgfmath@def{asin}{107}{6.14240} +\pgfmath@def{asin}{108}{6.20003} \pgfmath@def{asin}{109}{6.25767} +\pgfmath@def{asin}{110}{6.31531} \pgfmath@def{asin}{111}{6.37296} +\pgfmath@def{asin}{112}{6.43062} \pgfmath@def{asin}{113}{6.48828} +\pgfmath@def{asin}{114}{6.54595} \pgfmath@def{asin}{115}{6.60362} +\pgfmath@def{asin}{116}{6.66130} \pgfmath@def{asin}{117}{6.71899} +\pgfmath@def{asin}{118}{6.77669} \pgfmath@def{asin}{119}{6.83439} +\pgfmath@def{asin}{120}{6.89210} \pgfmath@def{asin}{121}{6.94981} +\pgfmath@def{asin}{122}{7.00754} \pgfmath@def{asin}{123}{7.06527} +\pgfmath@def{asin}{124}{7.12301} \pgfmath@def{asin}{125}{7.18075} +\pgfmath@def{asin}{126}{7.23850} \pgfmath@def{asin}{127}{7.29626} +\pgfmath@def{asin}{128}{7.35403} \pgfmath@def{asin}{129}{7.41181} +\pgfmath@def{asin}{130}{7.46959} \pgfmath@def{asin}{131}{7.52738} +\pgfmath@def{asin}{132}{7.58518} \pgfmath@def{asin}{133}{7.64298} +\pgfmath@def{asin}{134}{7.70079} \pgfmath@def{asin}{135}{7.75862} +\pgfmath@def{asin}{136}{7.81644} \pgfmath@def{asin}{137}{7.87428} +\pgfmath@def{asin}{138}{7.93213} \pgfmath@def{asin}{139}{7.98998} +\pgfmath@def{asin}{140}{8.04784} \pgfmath@def{asin}{141}{8.10571} +\pgfmath@def{asin}{142}{8.16359} \pgfmath@def{asin}{143}{8.22148} +\pgfmath@def{asin}{144}{8.27937} \pgfmath@def{asin}{145}{8.33727} +\pgfmath@def{asin}{146}{8.39519} \pgfmath@def{asin}{147}{8.45311} +\pgfmath@def{asin}{148}{8.51104} \pgfmath@def{asin}{149}{8.56898} +\pgfmath@def{asin}{150}{8.62692} \pgfmath@def{asin}{151}{8.68488} +\pgfmath@def{asin}{152}{8.74284} \pgfmath@def{asin}{153}{8.80082} +\pgfmath@def{asin}{154}{8.85880} \pgfmath@def{asin}{155}{8.91679} +\pgfmath@def{asin}{156}{8.97479} \pgfmath@def{asin}{157}{9.03280} +\pgfmath@def{asin}{158}{9.09082} \pgfmath@def{asin}{159}{9.14885} +\pgfmath@def{asin}{160}{9.20689} \pgfmath@def{asin}{161}{9.26494} +\pgfmath@def{asin}{162}{9.32300} \pgfmath@def{asin}{163}{9.38107} +\pgfmath@def{asin}{164}{9.43914} \pgfmath@def{asin}{165}{9.49723} +\pgfmath@def{asin}{166}{9.55533} \pgfmath@def{asin}{167}{9.61343} +\pgfmath@def{asin}{168}{9.67155} \pgfmath@def{asin}{169}{9.72968} +\pgfmath@def{asin}{170}{9.78781} \pgfmath@def{asin}{171}{9.84596} +\pgfmath@def{asin}{172}{9.90412} \pgfmath@def{asin}{173}{9.96229} +\pgfmath@def{asin}{174}{10.02047} \pgfmath@def{asin}{175}{10.07865} +\pgfmath@def{asin}{176}{10.13685} \pgfmath@def{asin}{177}{10.19506} +\pgfmath@def{asin}{178}{10.25328} \pgfmath@def{asin}{179}{10.31151} +\pgfmath@def{asin}{180}{10.36976} \pgfmath@def{asin}{181}{10.42801} +\pgfmath@def{asin}{182}{10.48627} \pgfmath@def{asin}{183}{10.54455} +\pgfmath@def{asin}{184}{10.60283} \pgfmath@def{asin}{185}{10.66113} +\pgfmath@def{asin}{186}{10.71944} \pgfmath@def{asin}{187}{10.77775} +\pgfmath@def{asin}{188}{10.83608} \pgfmath@def{asin}{189}{10.89443} +\pgfmath@def{asin}{190}{10.95278} \pgfmath@def{asin}{191}{11.01114} +\pgfmath@def{asin}{192}{11.06952} \pgfmath@def{asin}{193}{11.12791} +\pgfmath@def{asin}{194}{11.18631} \pgfmath@def{asin}{195}{11.24472} +\pgfmath@def{asin}{196}{11.30314} \pgfmath@def{asin}{197}{11.36158} +\pgfmath@def{asin}{198}{11.42002} \pgfmath@def{asin}{199}{11.47848} +\pgfmath@def{asin}{200}{11.53695} \pgfmath@def{asin}{201}{11.59544} +\pgfmath@def{asin}{202}{11.65393} \pgfmath@def{asin}{203}{11.71244} +\pgfmath@def{asin}{204}{11.77096} \pgfmath@def{asin}{205}{11.82949} +\pgfmath@def{asin}{206}{11.88804} \pgfmath@def{asin}{207}{11.94660} +\pgfmath@def{asin}{208}{12.00517} \pgfmath@def{asin}{209}{12.06375} +\pgfmath@def{asin}{210}{12.12235} \pgfmath@def{asin}{211}{12.18096} +\pgfmath@def{asin}{212}{12.23958} \pgfmath@def{asin}{213}{12.29821} +\pgfmath@def{asin}{214}{12.35686} \pgfmath@def{asin}{215}{12.41552} +\pgfmath@def{asin}{216}{12.47420} \pgfmath@def{asin}{217}{12.53288} +\pgfmath@def{asin}{218}{12.59159} \pgfmath@def{asin}{219}{12.65030} +\pgfmath@def{asin}{220}{12.70903} \pgfmath@def{asin}{221}{12.76777} +\pgfmath@def{asin}{222}{12.82653} \pgfmath@def{asin}{223}{12.88529} +\pgfmath@def{asin}{224}{12.94408} \pgfmath@def{asin}{225}{13.00287} +\pgfmath@def{asin}{226}{13.06168} \pgfmath@def{asin}{227}{13.12051} +\pgfmath@def{asin}{228}{13.17935} \pgfmath@def{asin}{229}{13.23820} +\pgfmath@def{asin}{230}{13.29707} \pgfmath@def{asin}{231}{13.35595} +\pgfmath@def{asin}{232}{13.41484} \pgfmath@def{asin}{233}{13.47375} +\pgfmath@def{asin}{234}{13.53268} \pgfmath@def{asin}{235}{13.59162} +\pgfmath@def{asin}{236}{13.65057} \pgfmath@def{asin}{237}{13.70954} +\pgfmath@def{asin}{238}{13.76852} \pgfmath@def{asin}{239}{13.82752} +\pgfmath@def{asin}{240}{13.88654} \pgfmath@def{asin}{241}{13.94556} +\pgfmath@def{asin}{242}{14.00461} \pgfmath@def{asin}{243}{14.06367} +\pgfmath@def{asin}{244}{14.12274} \pgfmath@def{asin}{245}{14.18183} +\pgfmath@def{asin}{246}{14.24093} \pgfmath@def{asin}{247}{14.30005} +\pgfmath@def{asin}{248}{14.35919} \pgfmath@def{asin}{249}{14.41834} +\pgfmath@def{asin}{250}{14.47751} \pgfmath@def{asin}{251}{14.53669} +\pgfmath@def{asin}{252}{14.59589} \pgfmath@def{asin}{253}{14.65510} +\pgfmath@def{asin}{254}{14.71433} \pgfmath@def{asin}{255}{14.77358} +\pgfmath@def{asin}{256}{14.83284} \pgfmath@def{asin}{257}{14.89212} +\pgfmath@def{asin}{258}{14.95142} \pgfmath@def{asin}{259}{15.01073} +\pgfmath@def{asin}{260}{15.07006} \pgfmath@def{asin}{261}{15.12940} +\pgfmath@def{asin}{262}{15.18876} \pgfmath@def{asin}{263}{15.24814} +\pgfmath@def{asin}{264}{15.30754} \pgfmath@def{asin}{265}{15.36695} +\pgfmath@def{asin}{266}{15.42638} \pgfmath@def{asin}{267}{15.48582} +\pgfmath@def{asin}{268}{15.54529} \pgfmath@def{asin}{269}{15.60477} +\pgfmath@def{asin}{270}{15.66426} \pgfmath@def{asin}{271}{15.72378} +\pgfmath@def{asin}{272}{15.78331} \pgfmath@def{asin}{273}{15.84286} +\pgfmath@def{asin}{274}{15.90243} \pgfmath@def{asin}{275}{15.96201} +\pgfmath@def{asin}{276}{16.02161} \pgfmath@def{asin}{277}{16.08123} +\pgfmath@def{asin}{278}{16.14087} \pgfmath@def{asin}{279}{16.20053} +\pgfmath@def{asin}{280}{16.26020} \pgfmath@def{asin}{281}{16.31989} +\pgfmath@def{asin}{282}{16.37960} \pgfmath@def{asin}{283}{16.43933} +\pgfmath@def{asin}{284}{16.49908} \pgfmath@def{asin}{285}{16.55884} +\pgfmath@def{asin}{286}{16.61863} \pgfmath@def{asin}{287}{16.67843} +\pgfmath@def{asin}{288}{16.73825} \pgfmath@def{asin}{289}{16.79809} +\pgfmath@def{asin}{290}{16.85795} \pgfmath@def{asin}{291}{16.91783} +\pgfmath@def{asin}{292}{16.97773} \pgfmath@def{asin}{293}{17.03764} +\pgfmath@def{asin}{294}{17.09758} \pgfmath@def{asin}{295}{17.15753} +\pgfmath@def{asin}{296}{17.21751} \pgfmath@def{asin}{297}{17.27750} +\pgfmath@def{asin}{298}{17.33751} \pgfmath@def{asin}{299}{17.39755} +\pgfmath@def{asin}{300}{17.45760} \pgfmath@def{asin}{301}{17.51767} +\pgfmath@def{asin}{302}{17.57776} \pgfmath@def{asin}{303}{17.63788} +\pgfmath@def{asin}{304}{17.69801} \pgfmath@def{asin}{305}{17.75816} +\pgfmath@def{asin}{306}{17.81833} \pgfmath@def{asin}{307}{17.87852} +\pgfmath@def{asin}{308}{17.93874} \pgfmath@def{asin}{309}{17.99897} +\pgfmath@def{asin}{310}{18.05923} \pgfmath@def{asin}{311}{18.11950} +\pgfmath@def{asin}{312}{18.17980} \pgfmath@def{asin}{313}{18.24011} +\pgfmath@def{asin}{314}{18.30045} \pgfmath@def{asin}{315}{18.36081} +\pgfmath@def{asin}{316}{18.42119} \pgfmath@def{asin}{317}{18.48159} +\pgfmath@def{asin}{318}{18.54201} \pgfmath@def{asin}{319}{18.60246} +\pgfmath@def{asin}{320}{18.66292} \pgfmath@def{asin}{321}{18.72341} +\pgfmath@def{asin}{322}{18.78392} \pgfmath@def{asin}{323}{18.84445} +\pgfmath@def{asin}{324}{18.90500} \pgfmath@def{asin}{325}{18.96557} +\pgfmath@def{asin}{326}{19.02617} \pgfmath@def{asin}{327}{19.08678} +\pgfmath@def{asin}{328}{19.14742} \pgfmath@def{asin}{329}{19.20809} +\pgfmath@def{asin}{330}{19.26877} \pgfmath@def{asin}{331}{19.32948} +\pgfmath@def{asin}{332}{19.39021} \pgfmath@def{asin}{333}{19.45096} +\pgfmath@def{asin}{334}{19.51174} \pgfmath@def{asin}{335}{19.57253} +\pgfmath@def{asin}{336}{19.63335} \pgfmath@def{asin}{337}{19.69420} +\pgfmath@def{asin}{338}{19.75507} \pgfmath@def{asin}{339}{19.81596} +\pgfmath@def{asin}{340}{19.87687} \pgfmath@def{asin}{341}{19.93781} +\pgfmath@def{asin}{342}{19.99877} \pgfmath@def{asin}{343}{20.05975} +\pgfmath@def{asin}{344}{20.12076} \pgfmath@def{asin}{345}{20.18179} +\pgfmath@def{asin}{346}{20.24285} \pgfmath@def{asin}{347}{20.30393} +\pgfmath@def{asin}{348}{20.36503} \pgfmath@def{asin}{349}{20.42616} +\pgfmath@def{asin}{350}{20.48731} \pgfmath@def{asin}{351}{20.54849} +\pgfmath@def{asin}{352}{20.60969} \pgfmath@def{asin}{353}{20.67091} +\pgfmath@def{asin}{354}{20.73216} \pgfmath@def{asin}{355}{20.79344} +\pgfmath@def{asin}{356}{20.85474} \pgfmath@def{asin}{357}{20.91607} +\pgfmath@def{asin}{358}{20.97742} \pgfmath@def{asin}{359}{21.03879} +\pgfmath@def{asin}{360}{21.10019} \pgfmath@def{asin}{361}{21.16162} +\pgfmath@def{asin}{362}{21.22307} \pgfmath@def{asin}{363}{21.28455} +\pgfmath@def{asin}{364}{21.34605} \pgfmath@def{asin}{365}{21.40758} +\pgfmath@def{asin}{366}{21.46913} \pgfmath@def{asin}{367}{21.53071} +\pgfmath@def{asin}{368}{21.59232} \pgfmath@def{asin}{369}{21.65395} +\pgfmath@def{asin}{370}{21.71561} \pgfmath@def{asin}{371}{21.77730} +\pgfmath@def{asin}{372}{21.83901} \pgfmath@def{asin}{373}{21.90075} +\pgfmath@def{asin}{374}{21.96252} \pgfmath@def{asin}{375}{22.02431} +\pgfmath@def{asin}{376}{22.08613} \pgfmath@def{asin}{377}{22.14797} +\pgfmath@def{asin}{378}{22.20985} \pgfmath@def{asin}{379}{22.27175} +\pgfmath@def{asin}{380}{22.33368} \pgfmath@def{asin}{381}{22.39563} +\pgfmath@def{asin}{382}{22.45762} \pgfmath@def{asin}{383}{22.51963} +\pgfmath@def{asin}{384}{22.58167} \pgfmath@def{asin}{385}{22.64374} +\pgfmath@def{asin}{386}{22.70583} \pgfmath@def{asin}{387}{22.76795} +\pgfmath@def{asin}{388}{22.83011} \pgfmath@def{asin}{389}{22.89229} +\pgfmath@def{asin}{390}{22.95449} \pgfmath@def{asin}{391}{23.01673} +\pgfmath@def{asin}{392}{23.07900} \pgfmath@def{asin}{393}{23.14129} +\pgfmath@def{asin}{394}{23.20362} \pgfmath@def{asin}{395}{23.26597} +\pgfmath@def{asin}{396}{23.32835} \pgfmath@def{asin}{397}{23.39076} +\pgfmath@def{asin}{398}{23.45320} \pgfmath@def{asin}{399}{23.51567} +\pgfmath@def{asin}{400}{23.57817} \pgfmath@def{asin}{401}{23.64070} +\pgfmath@def{asin}{402}{23.70326} \pgfmath@def{asin}{403}{23.76585} +\pgfmath@def{asin}{404}{23.82847} \pgfmath@def{asin}{405}{23.89112} +\pgfmath@def{asin}{406}{23.95380} \pgfmath@def{asin}{407}{24.01651} +\pgfmath@def{asin}{408}{24.07926} \pgfmath@def{asin}{409}{24.14203} +\pgfmath@def{asin}{410}{24.20483} \pgfmath@def{asin}{411}{24.26766} +\pgfmath@def{asin}{412}{24.33053} \pgfmath@def{asin}{413}{24.39343} +\pgfmath@def{asin}{414}{24.45635} \pgfmath@def{asin}{415}{24.51931} +\pgfmath@def{asin}{416}{24.58230} \pgfmath@def{asin}{417}{24.64532} +\pgfmath@def{asin}{418}{24.70838} \pgfmath@def{asin}{419}{24.77146} +\pgfmath@def{asin}{420}{24.83458} \pgfmath@def{asin}{421}{24.89773} +\pgfmath@def{asin}{422}{24.96092} \pgfmath@def{asin}{423}{25.02413} +\pgfmath@def{asin}{424}{25.08738} \pgfmath@def{asin}{425}{25.15066} +\pgfmath@def{asin}{426}{25.21397} \pgfmath@def{asin}{427}{25.27732} +\pgfmath@def{asin}{428}{25.34070} \pgfmath@def{asin}{429}{25.40411} +\pgfmath@def{asin}{430}{25.46756} \pgfmath@def{asin}{431}{25.53103} +\pgfmath@def{asin}{432}{25.59455} \pgfmath@def{asin}{433}{25.65809} +\pgfmath@def{asin}{434}{25.72167} \pgfmath@def{asin}{435}{25.78529} +\pgfmath@def{asin}{436}{25.84894} \pgfmath@def{asin}{437}{25.91262} +\pgfmath@def{asin}{438}{25.97634} \pgfmath@def{asin}{439}{26.04009} +\pgfmath@def{asin}{440}{26.10388} \pgfmath@def{asin}{441}{26.16770} +\pgfmath@def{asin}{442}{26.23155} \pgfmath@def{asin}{443}{26.29545} +\pgfmath@def{asin}{444}{26.35937} \pgfmath@def{asin}{445}{26.42333} +\pgfmath@def{asin}{446}{26.48733} \pgfmath@def{asin}{447}{26.55136} +\pgfmath@def{asin}{448}{26.61543} \pgfmath@def{asin}{449}{26.67954} +\pgfmath@def{asin}{450}{26.74368} \pgfmath@def{asin}{451}{26.80786} +\pgfmath@def{asin}{452}{26.87207} \pgfmath@def{asin}{453}{26.93632} +\pgfmath@def{asin}{454}{27.00061} \pgfmath@def{asin}{455}{27.06493} +\pgfmath@def{asin}{456}{27.12929} \pgfmath@def{asin}{457}{27.19369} +\pgfmath@def{asin}{458}{27.25812} \pgfmath@def{asin}{459}{27.32259} +\pgfmath@def{asin}{460}{27.38710} \pgfmath@def{asin}{461}{27.45165} +\pgfmath@def{asin}{462}{27.51623} \pgfmath@def{asin}{463}{27.58086} +\pgfmath@def{asin}{464}{27.64552} \pgfmath@def{asin}{465}{27.71022} +\pgfmath@def{asin}{466}{27.77496} \pgfmath@def{asin}{467}{27.83973} +\pgfmath@def{asin}{468}{27.90455} \pgfmath@def{asin}{469}{27.96940} +\pgfmath@def{asin}{470}{28.03429} \pgfmath@def{asin}{471}{28.09922} +\pgfmath@def{asin}{472}{28.16419} \pgfmath@def{asin}{473}{28.22921} +\pgfmath@def{asin}{474}{28.29426} \pgfmath@def{asin}{475}{28.35935} +\pgfmath@def{asin}{476}{28.42448} \pgfmath@def{asin}{477}{28.48965} +\pgfmath@def{asin}{478}{28.55486} \pgfmath@def{asin}{479}{28.62011} +\pgfmath@def{asin}{480}{28.68540} \pgfmath@def{asin}{481}{28.75073} +\pgfmath@def{asin}{482}{28.81610} \pgfmath@def{asin}{483}{28.88152} +\pgfmath@def{asin}{484}{28.94697} \pgfmath@def{asin}{485}{29.01247} +\pgfmath@def{asin}{486}{29.07801} \pgfmath@def{asin}{487}{29.14359} +\pgfmath@def{asin}{488}{29.20921} \pgfmath@def{asin}{489}{29.27487} +\pgfmath@def{asin}{490}{29.34058} \pgfmath@def{asin}{491}{29.40633} +\pgfmath@def{asin}{492}{29.47212} \pgfmath@def{asin}{493}{29.53795} +\pgfmath@def{asin}{494}{29.60383} \pgfmath@def{asin}{495}{29.66975} +\pgfmath@def{asin}{496}{29.73571} \pgfmath@def{asin}{497}{29.80171} +\pgfmath@def{asin}{498}{29.86776} \pgfmath@def{asin}{499}{29.93386} +\pgfmath@def{asin}{500}{30.00000} \pgfmath@def{asin}{501}{30.06618} +\pgfmath@def{asin}{502}{30.13240} \pgfmath@def{asin}{503}{30.19867} +\pgfmath@def{asin}{504}{30.26499} \pgfmath@def{asin}{505}{30.33135} +\pgfmath@def{asin}{506}{30.39775} \pgfmath@def{asin}{507}{30.46420} +\pgfmath@def{asin}{508}{30.53070} \pgfmath@def{asin}{509}{30.59724} +\pgfmath@def{asin}{510}{30.66383} \pgfmath@def{asin}{511}{30.73046} +\pgfmath@def{asin}{512}{30.79714} \pgfmath@def{asin}{513}{30.86386} +\pgfmath@def{asin}{514}{30.93063} \pgfmath@def{asin}{515}{30.99745} +\pgfmath@def{asin}{516}{31.06432} \pgfmath@def{asin}{517}{31.13123} +\pgfmath@def{asin}{518}{31.19819} \pgfmath@def{asin}{519}{31.26519} +\pgfmath@def{asin}{520}{31.33225} \pgfmath@def{asin}{521}{31.39935} +\pgfmath@def{asin}{522}{31.46650} \pgfmath@def{asin}{523}{31.53370} +\pgfmath@def{asin}{524}{31.60094} \pgfmath@def{asin}{525}{31.66824} +\pgfmath@def{asin}{526}{31.73558} \pgfmath@def{asin}{527}{31.80298} +\pgfmath@def{asin}{528}{31.87042} \pgfmath@def{asin}{529}{31.93791} +\pgfmath@def{asin}{530}{32.00545} \pgfmath@def{asin}{531}{32.07304} +\pgfmath@def{asin}{532}{32.14068} \pgfmath@def{asin}{533}{32.20837} +\pgfmath@def{asin}{534}{32.27611} \pgfmath@def{asin}{535}{32.34391} +\pgfmath@def{asin}{536}{32.41175} \pgfmath@def{asin}{537}{32.47964} +\pgfmath@def{asin}{538}{32.54759} \pgfmath@def{asin}{539}{32.61559} +\pgfmath@def{asin}{540}{32.68363} \pgfmath@def{asin}{541}{32.75173} +\pgfmath@def{asin}{542}{32.81989} \pgfmath@def{asin}{543}{32.88809} +\pgfmath@def{asin}{544}{32.95635} \pgfmath@def{asin}{545}{33.02466} +\pgfmath@def{asin}{546}{33.09302} \pgfmath@def{asin}{547}{33.16144} +\pgfmath@def{asin}{548}{33.22991} \pgfmath@def{asin}{549}{33.29843} +\pgfmath@def{asin}{550}{33.36701} \pgfmath@def{asin}{551}{33.43564} +\pgfmath@def{asin}{552}{33.50433} \pgfmath@def{asin}{553}{33.57307} +\pgfmath@def{asin}{554}{33.64186} \pgfmath@def{asin}{555}{33.71071} +\pgfmath@def{asin}{556}{33.77962} \pgfmath@def{asin}{557}{33.84858} +\pgfmath@def{asin}{558}{33.91759} \pgfmath@def{asin}{559}{33.98666} +\pgfmath@def{asin}{560}{34.05579} \pgfmath@def{asin}{561}{34.12498} +\pgfmath@def{asin}{562}{34.19422} \pgfmath@def{asin}{563}{34.26352} +\pgfmath@def{asin}{564}{34.33287} \pgfmath@def{asin}{565}{34.40229} +\pgfmath@def{asin}{566}{34.47176} \pgfmath@def{asin}{567}{34.54129} +\pgfmath@def{asin}{568}{34.61087} \pgfmath@def{asin}{569}{34.68052} +\pgfmath@def{asin}{570}{34.75022} \pgfmath@def{asin}{571}{34.81998} +\pgfmath@def{asin}{572}{34.88981} \pgfmath@def{asin}{573}{34.95969} +\pgfmath@def{asin}{574}{35.02963} \pgfmath@def{asin}{575}{35.09963} +\pgfmath@def{asin}{576}{35.16969} \pgfmath@def{asin}{577}{35.23981} +\pgfmath@def{asin}{578}{35.30999} \pgfmath@def{asin}{579}{35.38023} +\pgfmath@def{asin}{580}{35.45054} \pgfmath@def{asin}{581}{35.52090} +\pgfmath@def{asin}{582}{35.59133} \pgfmath@def{asin}{583}{35.66182} +\pgfmath@def{asin}{584}{35.73237} \pgfmath@def{asin}{585}{35.80299} +\pgfmath@def{asin}{586}{35.87366} \pgfmath@def{asin}{587}{35.94440} +\pgfmath@def{asin}{588}{36.01521} \pgfmath@def{asin}{589}{36.08607} +\pgfmath@def{asin}{590}{36.15700} \pgfmath@def{asin}{591}{36.22800} +\pgfmath@def{asin}{592}{36.29906} \pgfmath@def{asin}{593}{36.37018} +\pgfmath@def{asin}{594}{36.44137} \pgfmath@def{asin}{595}{36.51263} +\pgfmath@def{asin}{596}{36.58395} \pgfmath@def{asin}{597}{36.65533} +\pgfmath@def{asin}{598}{36.72679} \pgfmath@def{asin}{599}{36.79831} +\pgfmath@def{asin}{600}{36.86989} \pgfmath@def{asin}{601}{36.94155} +\pgfmath@def{asin}{602}{37.01327} \pgfmath@def{asin}{603}{37.08506} +\pgfmath@def{asin}{604}{37.15691} \pgfmath@def{asin}{605}{37.22884} +\pgfmath@def{asin}{606}{37.30083} \pgfmath@def{asin}{607}{37.37289} +\pgfmath@def{asin}{608}{37.44503} \pgfmath@def{asin}{609}{37.51723} +\pgfmath@def{asin}{610}{37.58950} \pgfmath@def{asin}{611}{37.66184} +\pgfmath@def{asin}{612}{37.73425} \pgfmath@def{asin}{613}{37.80674} +\pgfmath@def{asin}{614}{37.87929} \pgfmath@def{asin}{615}{37.95192} +\pgfmath@def{asin}{616}{38.02461} \pgfmath@def{asin}{617}{38.09738} +\pgfmath@def{asin}{618}{38.17023} \pgfmath@def{asin}{619}{38.24314} +\pgfmath@def{asin}{620}{38.31613} \pgfmath@def{asin}{621}{38.38919} +\pgfmath@def{asin}{622}{38.46233} \pgfmath@def{asin}{623}{38.53554} +\pgfmath@def{asin}{624}{38.60882} \pgfmath@def{asin}{625}{38.68218} +\pgfmath@def{asin}{626}{38.75562} \pgfmath@def{asin}{627}{38.82913} +\pgfmath@def{asin}{628}{38.90272} \pgfmath@def{asin}{629}{38.97638} +\pgfmath@def{asin}{630}{39.05012} \pgfmath@def{asin}{631}{39.12393} +\pgfmath@def{asin}{632}{39.19783} \pgfmath@def{asin}{633}{39.27180} +\pgfmath@def{asin}{634}{39.34585} \pgfmath@def{asin}{635}{39.41998} +\pgfmath@def{asin}{636}{39.49419} \pgfmath@def{asin}{637}{39.56847} +\pgfmath@def{asin}{638}{39.64284} \pgfmath@def{asin}{639}{39.71729} +\pgfmath@def{asin}{640}{39.79181} \pgfmath@def{asin}{641}{39.86642} +\pgfmath@def{asin}{642}{39.94111} \pgfmath@def{asin}{643}{40.01588} +\pgfmath@def{asin}{644}{40.09074} \pgfmath@def{asin}{645}{40.16567} +\pgfmath@def{asin}{646}{40.24069} \pgfmath@def{asin}{647}{40.31579} +\pgfmath@def{asin}{648}{40.39098} \pgfmath@def{asin}{649}{40.46624} +\pgfmath@def{asin}{650}{40.54160} \pgfmath@def{asin}{651}{40.61704} +\pgfmath@def{asin}{652}{40.69256} \pgfmath@def{asin}{653}{40.76817} +\pgfmath@def{asin}{654}{40.84386} \pgfmath@def{asin}{655}{40.91965} +\pgfmath@def{asin}{656}{40.99551} \pgfmath@def{asin}{657}{41.07147} +\pgfmath@def{asin}{658}{41.14751} \pgfmath@def{asin}{659}{41.22365} +\pgfmath@def{asin}{660}{41.29987} \pgfmath@def{asin}{661}{41.37618} +\pgfmath@def{asin}{662}{41.45258} \pgfmath@def{asin}{663}{41.52907} +\pgfmath@def{asin}{664}{41.60565} \pgfmath@def{asin}{665}{41.68232} +\pgfmath@def{asin}{666}{41.75908} \pgfmath@def{asin}{667}{41.83594} +\pgfmath@def{asin}{668}{41.91289} \pgfmath@def{asin}{669}{41.98993} +\pgfmath@def{asin}{670}{42.06706} \pgfmath@def{asin}{671}{42.14429} +\pgfmath@def{asin}{672}{42.22161} \pgfmath@def{asin}{673}{42.29903} +\pgfmath@def{asin}{674}{42.37654} \pgfmath@def{asin}{675}{42.45415} +\pgfmath@def{asin}{676}{42.53185} \pgfmath@def{asin}{677}{42.60965} +\pgfmath@def{asin}{678}{42.68755} \pgfmath@def{asin}{679}{42.76554} +\pgfmath@def{asin}{680}{42.84364} \pgfmath@def{asin}{681}{42.92183} +\pgfmath@def{asin}{682}{43.00012} \pgfmath@def{asin}{683}{43.07852} +\pgfmath@def{asin}{684}{43.15701} \pgfmath@def{asin}{685}{43.23560} +\pgfmath@def{asin}{686}{43.31430} \pgfmath@def{asin}{687}{43.39310} +\pgfmath@def{asin}{688}{43.47199} \pgfmath@def{asin}{689}{43.55100} +\pgfmath@def{asin}{690}{43.63010} \pgfmath@def{asin}{691}{43.70932} +\pgfmath@def{asin}{692}{43.78863} \pgfmath@def{asin}{693}{43.86805} +\pgfmath@def{asin}{694}{43.94758} \pgfmath@def{asin}{695}{44.02721} +\pgfmath@def{asin}{696}{44.10695} \pgfmath@def{asin}{697}{44.18680} +\pgfmath@def{asin}{698}{44.26676} \pgfmath@def{asin}{699}{44.34682} +\pgfmath@def{asin}{700}{44.42700} \pgfmath@def{asin}{701}{44.50728} +\pgfmath@def{asin}{702}{44.58768} \pgfmath@def{asin}{703}{44.66819} +\pgfmath@def{asin}{704}{44.74881} \pgfmath@def{asin}{705}{44.82954} +\pgfmath@def{asin}{706}{44.91038} \pgfmath@def{asin}{707}{44.99134} +\pgfmath@def{asin}{708}{45.07242} \pgfmath@def{asin}{709}{45.15361} +\pgfmath@def{asin}{710}{45.23491} \pgfmath@def{asin}{711}{45.31633} +\pgfmath@def{asin}{712}{45.39787} \pgfmath@def{asin}{713}{45.47953} +\pgfmath@def{asin}{714}{45.56130} \pgfmath@def{asin}{715}{45.64319} +\pgfmath@def{asin}{716}{45.72521} \pgfmath@def{asin}{717}{45.80734} +\pgfmath@def{asin}{718}{45.88960} \pgfmath@def{asin}{719}{45.97198} +\pgfmath@def{asin}{720}{46.05448} \pgfmath@def{asin}{721}{46.13710} +\pgfmath@def{asin}{722}{46.21985} \pgfmath@def{asin}{723}{46.30272} +\pgfmath@def{asin}{724}{46.38572} \pgfmath@def{asin}{725}{46.46884} +\pgfmath@def{asin}{726}{46.55210} \pgfmath@def{asin}{727}{46.63548} +\pgfmath@def{asin}{728}{46.71898} \pgfmath@def{asin}{729}{46.80262} +\pgfmath@def{asin}{730}{46.88639} \pgfmath@def{asin}{731}{46.97029} +\pgfmath@def{asin}{732}{47.05432} \pgfmath@def{asin}{733}{47.13848} +\pgfmath@def{asin}{734}{47.22278} \pgfmath@def{asin}{735}{47.30721} +\pgfmath@def{asin}{736}{47.39178} \pgfmath@def{asin}{737}{47.47648} +\pgfmath@def{asin}{738}{47.56132} \pgfmath@def{asin}{739}{47.64630} +\pgfmath@def{asin}{740}{47.73141} \pgfmath@def{asin}{741}{47.81667} +\pgfmath@def{asin}{742}{47.90206} \pgfmath@def{asin}{743}{47.98760} +\pgfmath@def{asin}{744}{48.07327} \pgfmath@def{asin}{745}{48.15909} +\pgfmath@def{asin}{746}{48.24506} \pgfmath@def{asin}{747}{48.33117} +\pgfmath@def{asin}{748}{48.41742} \pgfmath@def{asin}{749}{48.50382} +\pgfmath@def{asin}{750}{48.59037} \pgfmath@def{asin}{751}{48.67707} +\pgfmath@def{asin}{752}{48.76392} \pgfmath@def{asin}{753}{48.85092} +\pgfmath@def{asin}{754}{48.93806} \pgfmath@def{asin}{755}{49.02537} +\pgfmath@def{asin}{756}{49.11282} \pgfmath@def{asin}{757}{49.20043} +\pgfmath@def{asin}{758}{49.28819} \pgfmath@def{asin}{759}{49.37611} +\pgfmath@def{asin}{760}{49.46419} \pgfmath@def{asin}{761}{49.55243} +\pgfmath@def{asin}{762}{49.64083} \pgfmath@def{asin}{763}{49.72939} +\pgfmath@def{asin}{764}{49.81810} \pgfmath@def{asin}{765}{49.90699} +\pgfmath@def{asin}{766}{49.99603} \pgfmath@def{asin}{767}{50.08525} +\pgfmath@def{asin}{768}{50.17462} \pgfmath@def{asin}{769}{50.26417} +\pgfmath@def{asin}{770}{50.35388} \pgfmath@def{asin}{771}{50.44377} +\pgfmath@def{asin}{772}{50.53382} \pgfmath@def{asin}{773}{50.62405} +\pgfmath@def{asin}{774}{50.71445} \pgfmath@def{asin}{775}{50.80503} +\pgfmath@def{asin}{776}{50.89578} \pgfmath@def{asin}{777}{50.98671} +\pgfmath@def{asin}{778}{51.07782} \pgfmath@def{asin}{779}{51.16910} +\pgfmath@def{asin}{780}{51.26057} \pgfmath@def{asin}{781}{51.35222} +\pgfmath@def{asin}{782}{51.44406} \pgfmath@def{asin}{783}{51.53607} +\pgfmath@def{asin}{784}{51.62828} \pgfmath@def{asin}{785}{51.72067} +\pgfmath@def{asin}{786}{51.81326} \pgfmath@def{asin}{787}{51.90603} +\pgfmath@def{asin}{788}{51.99899} \pgfmath@def{asin}{789}{52.09215} +\pgfmath@def{asin}{790}{52.18551} \pgfmath@def{asin}{791}{52.27906} +\pgfmath@def{asin}{792}{52.37280} \pgfmath@def{asin}{793}{52.46675} +\pgfmath@def{asin}{794}{52.56090} \pgfmath@def{asin}{795}{52.65525} +\pgfmath@def{asin}{796}{52.74981} \pgfmath@def{asin}{797}{52.84457} +\pgfmath@def{asin}{798}{52.93953} \pgfmath@def{asin}{799}{53.03471} +\pgfmath@def{asin}{800}{53.13010} \pgfmath@def{asin}{801}{53.22570} +\pgfmath@def{asin}{802}{53.32151} \pgfmath@def{asin}{803}{53.41754} +\pgfmath@def{asin}{804}{53.51379} \pgfmath@def{asin}{805}{53.61025} +\pgfmath@def{asin}{806}{53.70694} \pgfmath@def{asin}{807}{53.80385} +\pgfmath@def{asin}{808}{53.90098} \pgfmath@def{asin}{809}{53.99834} +\pgfmath@def{asin}{810}{54.09593} \pgfmath@def{asin}{811}{54.19374} +\pgfmath@def{asin}{812}{54.29180} \pgfmath@def{asin}{813}{54.39008} +\pgfmath@def{asin}{814}{54.48860} \pgfmath@def{asin}{815}{54.58736} +\pgfmath@def{asin}{816}{54.68636} \pgfmath@def{asin}{817}{54.78560} +\pgfmath@def{asin}{818}{54.88508} \pgfmath@def{asin}{819}{54.98481} +\pgfmath@def{asin}{820}{55.08479} \pgfmath@def{asin}{821}{55.18502} +\pgfmath@def{asin}{822}{55.28550} \pgfmath@def{asin}{823}{55.38624} +\pgfmath@def{asin}{824}{55.48723} \pgfmath@def{asin}{825}{55.58849} +\pgfmath@def{asin}{826}{55.69000} \pgfmath@def{asin}{827}{55.79178} +\pgfmath@def{asin}{828}{55.89383} \pgfmath@def{asin}{829}{55.99615} +\pgfmath@def{asin}{830}{56.09873} \pgfmath@def{asin}{831}{56.20160} +\pgfmath@def{asin}{832}{56.30473} \pgfmath@def{asin}{833}{56.40815} +\pgfmath@def{asin}{834}{56.51185} \pgfmath@def{asin}{835}{56.61583} +\pgfmath@def{asin}{836}{56.72010} \pgfmath@def{asin}{837}{56.82467} +\pgfmath@def{asin}{838}{56.92952} \pgfmath@def{asin}{839}{57.03467} +\pgfmath@def{asin}{840}{57.14012} \pgfmath@def{asin}{841}{57.24586} +\pgfmath@def{asin}{842}{57.35192} \pgfmath@def{asin}{843}{57.45828} +\pgfmath@def{asin}{844}{57.56495} \pgfmath@def{asin}{845}{57.67193} +\pgfmath@def{asin}{846}{57.77923} \pgfmath@def{asin}{847}{57.88685} +\pgfmath@def{asin}{848}{57.99480} \pgfmath@def{asin}{849}{58.10307} +\pgfmath@def{asin}{850}{58.21166} \pgfmath@def{asin}{851}{58.32060} +\pgfmath@def{asin}{852}{58.42987} \pgfmath@def{asin}{853}{58.53948} +\pgfmath@def{asin}{854}{58.64943} \pgfmath@def{asin}{855}{58.75973} +\pgfmath@def{asin}{856}{58.87038} \pgfmath@def{asin}{857}{58.98139} +\pgfmath@def{asin}{858}{59.09275} \pgfmath@def{asin}{859}{59.20448} +\pgfmath@def{asin}{860}{59.31658} \pgfmath@def{asin}{861}{59.42904} +\pgfmath@def{asin}{862}{59.54189} \pgfmath@def{asin}{863}{59.65511} +\pgfmath@def{asin}{864}{59.76871} \pgfmath@def{asin}{865}{59.88270} +\pgfmath@def{asin}{866}{59.99708} \pgfmath@def{asin}{867}{60.11187} +\pgfmath@def{asin}{868}{60.22705} \pgfmath@def{asin}{869}{60.34264} +\pgfmath@def{asin}{870}{60.45863} \pgfmath@def{asin}{871}{60.57505} +\pgfmath@def{asin}{872}{60.69189} \pgfmath@def{asin}{873}{60.80915} +\pgfmath@def{asin}{874}{60.92684} \pgfmath@def{asin}{875}{61.04497} +\pgfmath@def{asin}{876}{61.16354} \pgfmath@def{asin}{877}{61.28256} +\pgfmath@def{asin}{878}{61.40203} \pgfmath@def{asin}{879}{61.52196} +\pgfmath@def{asin}{880}{61.64236} \pgfmath@def{asin}{881}{61.76322} +\pgfmath@def{asin}{882}{61.88457} \pgfmath@def{asin}{883}{62.00639} +\pgfmath@def{asin}{884}{62.12871} \pgfmath@def{asin}{885}{62.25152} +\pgfmath@def{asin}{886}{62.37483} \pgfmath@def{asin}{887}{62.49865} +\pgfmath@def{asin}{888}{62.62299} \pgfmath@def{asin}{889}{62.74785} +\pgfmath@def{asin}{890}{62.87324} \pgfmath@def{asin}{891}{62.99917} +\pgfmath@def{asin}{892}{63.12565} \pgfmath@def{asin}{893}{63.25268} +\pgfmath@def{asin}{894}{63.38027} \pgfmath@def{asin}{895}{63.50843} +\pgfmath@def{asin}{896}{63.63716} \pgfmath@def{asin}{897}{63.76649} +\pgfmath@def{asin}{898}{63.89640} \pgfmath@def{asin}{899}{64.02693} +\pgfmath@def{asin}{900}{64.15806} \pgfmath@def{asin}{901}{64.28982} +\pgfmath@def{asin}{902}{64.42221} \pgfmath@def{asin}{903}{64.55524} +\pgfmath@def{asin}{904}{64.68893} \pgfmath@def{asin}{905}{64.82328} +\pgfmath@def{asin}{906}{64.95830} \pgfmath@def{asin}{907}{65.09401} +\pgfmath@def{asin}{908}{65.23041} \pgfmath@def{asin}{909}{65.36752} +\pgfmath@def{asin}{910}{65.50535} \pgfmath@def{asin}{911}{65.64391} +\pgfmath@def{asin}{912}{65.78321} \pgfmath@def{asin}{913}{65.92327} +\pgfmath@def{asin}{914}{66.06411} \pgfmath@def{asin}{915}{66.20572} +\pgfmath@def{asin}{916}{66.34814} \pgfmath@def{asin}{917}{66.49136} +\pgfmath@def{asin}{918}{66.63542} \pgfmath@def{asin}{919}{66.78032} +\pgfmath@def{asin}{920}{66.92608} \pgfmath@def{asin}{921}{67.07271} +\pgfmath@def{asin}{922}{67.22024} \pgfmath@def{asin}{923}{67.36867} +\pgfmath@def{asin}{924}{67.51804} \pgfmath@def{asin}{925}{67.66835} +\pgfmath@def{asin}{926}{67.81963} \pgfmath@def{asin}{927}{67.97189} +\pgfmath@def{asin}{928}{68.12516} \pgfmath@def{asin}{929}{68.27946} +\pgfmath@def{asin}{930}{68.43481} \pgfmath@def{asin}{931}{68.59123} +\pgfmath@def{asin}{932}{68.74875} \pgfmath@def{asin}{933}{68.90739} +\pgfmath@def{asin}{934}{69.06718} \pgfmath@def{asin}{935}{69.22814} +\pgfmath@def{asin}{936}{69.39030} \pgfmath@def{asin}{937}{69.55369} +\pgfmath@def{asin}{938}{69.71835} \pgfmath@def{asin}{939}{69.88429} +\pgfmath@def{asin}{940}{70.05155} \pgfmath@def{asin}{941}{70.22017} +\pgfmath@def{asin}{942}{70.39018} \pgfmath@def{asin}{943}{70.56162} +\pgfmath@def{asin}{944}{70.73453} \pgfmath@def{asin}{945}{70.90894} +\pgfmath@def{asin}{946}{71.08490} \pgfmath@def{asin}{947}{71.26245} +\pgfmath@def{asin}{948}{71.44164} \pgfmath@def{asin}{949}{71.62251} +\pgfmath@def{asin}{950}{71.80512} \pgfmath@def{asin}{951}{71.98952} +\pgfmath@def{asin}{952}{72.17576} \pgfmath@def{asin}{953}{72.36390} +\pgfmath@def{asin}{954}{72.55401} \pgfmath@def{asin}{955}{72.74614} +\pgfmath@def{asin}{956}{72.94037} \pgfmath@def{asin}{957}{73.13678} +\pgfmath@def{asin}{958}{73.33542} \pgfmath@def{asin}{959}{73.53640} +\pgfmath@def{asin}{960}{73.73979} \pgfmath@def{asin}{961}{73.94569} +\pgfmath@def{asin}{962}{74.15419} \pgfmath@def{asin}{963}{74.36540} +\pgfmath@def{asin}{964}{74.57942} \pgfmath@def{asin}{965}{74.79639} +\pgfmath@def{asin}{966}{75.01642} \pgfmath@def{asin}{967}{75.23966} +\pgfmath@def{asin}{968}{75.46625} \pgfmath@def{asin}{969}{75.69635} +\pgfmath@def{asin}{970}{75.93013} \pgfmath@def{asin}{971}{76.16778} +\pgfmath@def{asin}{972}{76.40950} \pgfmath@def{asin}{973}{76.65552} +\pgfmath@def{asin}{974}{76.90607} \pgfmath@def{asin}{975}{77.16143} +\pgfmath@def{asin}{976}{77.42188} \pgfmath@def{asin}{977}{77.68774} +\pgfmath@def{asin}{978}{77.95939} \pgfmath@def{asin}{979}{78.23721} +\pgfmath@def{asin}{980}{78.52165} \pgfmath@def{asin}{981}{78.81323} +\pgfmath@def{asin}{982}{79.11251} \pgfmath@def{asin}{983}{79.42015} +\pgfmath@def{asin}{984}{79.73690} \pgfmath@def{asin}{985}{80.06363} +\pgfmath@def{asin}{986}{80.40136} \pgfmath@def{asin}{987}{80.75129} +\pgfmath@def{asin}{988}{81.11487} \pgfmath@def{asin}{989}{81.49385} +\pgfmath@def{asin}{990}{81.89038} \pgfmath@def{asin}{991}{82.30718} +\pgfmath@def{asin}{992}{82.74775} \pgfmath@def{asin}{993}{83.21671} +\pgfmath@def{asin}{994}{83.72041} \pgfmath@def{asin}{995}{84.26803} +\pgfmath@def{asin}{996}{84.87360} \pgfmath@def{asin}{997}{85.56077} +\pgfmath@def{asin}{998}{86.37569} \pgfmath@def{asin}{999}{87.43744} +\pgfmath@def{asin}{1000}{90.00000} + +\pgfmath@def{acos}{0}{90.00000} \pgfmath@def{acos}{1}{89.94270} +\pgfmath@def{acos}{2}{89.88540} \pgfmath@def{acos}{3}{89.82811} +\pgfmath@def{acos}{4}{89.77081} \pgfmath@def{acos}{5}{89.71352} +\pgfmath@def{acos}{6}{89.65622} \pgfmath@def{acos}{7}{89.59892} +\pgfmath@def{acos}{8}{89.54162} \pgfmath@def{acos}{9}{89.48433} +\pgfmath@def{acos}{10}{89.42703} \pgfmath@def{acos}{11}{89.36973} +\pgfmath@def{acos}{12}{89.31243} \pgfmath@def{acos}{13}{89.25513} +\pgfmath@def{acos}{14}{89.19783} \pgfmath@def{acos}{15}{89.14053} +\pgfmath@def{acos}{16}{89.08322} \pgfmath@def{acos}{17}{89.02592} +\pgfmath@def{acos}{18}{88.96862} \pgfmath@def{acos}{19}{88.91131} +\pgfmath@def{acos}{20}{88.85400} \pgfmath@def{acos}{21}{88.79670} +\pgfmath@def{acos}{22}{88.73939} \pgfmath@def{acos}{23}{88.68208} +\pgfmath@def{acos}{24}{88.62476} \pgfmath@def{acos}{25}{88.56745} +\pgfmath@def{acos}{26}{88.51014} \pgfmath@def{acos}{27}{88.45282} +\pgfmath@def{acos}{28}{88.39550} \pgfmath@def{acos}{29}{88.33818} +\pgfmath@def{acos}{30}{88.28086} \pgfmath@def{acos}{31}{88.22354} +\pgfmath@def{acos}{32}{88.16622} \pgfmath@def{acos}{33}{88.10889} +\pgfmath@def{acos}{34}{88.05156} \pgfmath@def{acos}{35}{87.99423} +\pgfmath@def{acos}{36}{87.93690} \pgfmath@def{acos}{37}{87.87957} +\pgfmath@def{acos}{38}{87.82223} \pgfmath@def{acos}{39}{87.76489} +\pgfmath@def{acos}{40}{87.70755} \pgfmath@def{acos}{41}{87.65021} +\pgfmath@def{acos}{42}{87.59286} \pgfmath@def{acos}{43}{87.53552} +\pgfmath@def{acos}{44}{87.47817} \pgfmath@def{acos}{45}{87.42081} +\pgfmath@def{acos}{46}{87.36346} \pgfmath@def{acos}{47}{87.30610} +\pgfmath@def{acos}{48}{87.24874} \pgfmath@def{acos}{49}{87.19138} +\pgfmath@def{acos}{50}{87.13401} \pgfmath@def{acos}{51}{87.07664} +\pgfmath@def{acos}{52}{87.01927} \pgfmath@def{acos}{53}{86.96190} +\pgfmath@def{acos}{54}{86.90452} \pgfmath@def{acos}{55}{86.84714} +\pgfmath@def{acos}{56}{86.78975} \pgfmath@def{acos}{57}{86.73237} +\pgfmath@def{acos}{58}{86.67497} \pgfmath@def{acos}{59}{86.61758} +\pgfmath@def{acos}{60}{86.56018} \pgfmath@def{acos}{61}{86.50278} +\pgfmath@def{acos}{62}{86.44538} \pgfmath@def{acos}{63}{86.38797} +\pgfmath@def{acos}{64}{86.33056} \pgfmath@def{acos}{65}{86.27314} +\pgfmath@def{acos}{66}{86.21572} \pgfmath@def{acos}{67}{86.15830} +\pgfmath@def{acos}{68}{86.10087} \pgfmath@def{acos}{69}{86.04344} +\pgfmath@def{acos}{70}{85.98601} \pgfmath@def{acos}{71}{85.92857} +\pgfmath@def{acos}{72}{85.87113} \pgfmath@def{acos}{73}{85.81368} +\pgfmath@def{acos}{74}{85.75623} \pgfmath@def{acos}{75}{85.69877} +\pgfmath@def{acos}{76}{85.64131} \pgfmath@def{acos}{77}{85.58385} +\pgfmath@def{acos}{78}{85.52638} \pgfmath@def{acos}{79}{85.46891} +\pgfmath@def{acos}{80}{85.41143} \pgfmath@def{acos}{81}{85.35395} +\pgfmath@def{acos}{82}{85.29646} \pgfmath@def{acos}{83}{85.23897} +\pgfmath@def{acos}{84}{85.18147} \pgfmath@def{acos}{85}{85.12397} +\pgfmath@def{acos}{86}{85.06646} \pgfmath@def{acos}{87}{85.00895} +\pgfmath@def{acos}{88}{84.95144} \pgfmath@def{acos}{89}{84.89392} +\pgfmath@def{acos}{90}{84.83639} \pgfmath@def{acos}{91}{84.77886} +\pgfmath@def{acos}{92}{84.72132} \pgfmath@def{acos}{93}{84.66378} +\pgfmath@def{acos}{94}{84.60623} \pgfmath@def{acos}{95}{84.54868} +\pgfmath@def{acos}{96}{84.49112} \pgfmath@def{acos}{97}{84.43355} +\pgfmath@def{acos}{98}{84.37598} \pgfmath@def{acos}{99}{84.31841} +\pgfmath@def{acos}{100}{84.26083} \pgfmath@def{acos}{101}{84.20324} +\pgfmath@def{acos}{102}{84.14564} \pgfmath@def{acos}{103}{84.08805} +\pgfmath@def{acos}{104}{84.03044} \pgfmath@def{acos}{105}{83.97283} +\pgfmath@def{acos}{106}{83.91521} \pgfmath@def{acos}{107}{83.85759} +\pgfmath@def{acos}{108}{83.79996} \pgfmath@def{acos}{109}{83.74232} +\pgfmath@def{acos}{110}{83.68468} \pgfmath@def{acos}{111}{83.62703} +\pgfmath@def{acos}{112}{83.56938} \pgfmath@def{acos}{113}{83.51171} +\pgfmath@def{acos}{114}{83.45405} \pgfmath@def{acos}{115}{83.39637} +\pgfmath@def{acos}{116}{83.33869} \pgfmath@def{acos}{117}{83.28100} +\pgfmath@def{acos}{118}{83.22330} \pgfmath@def{acos}{119}{83.16560} +\pgfmath@def{acos}{120}{83.10789} \pgfmath@def{acos}{121}{83.05018} +\pgfmath@def{acos}{122}{82.99245} \pgfmath@def{acos}{123}{82.93472} +\pgfmath@def{acos}{124}{82.87698} \pgfmath@def{acos}{125}{82.81924} +\pgfmath@def{acos}{126}{82.76149} \pgfmath@def{acos}{127}{82.70373} +\pgfmath@def{acos}{128}{82.64596} \pgfmath@def{acos}{129}{82.58819} +\pgfmath@def{acos}{130}{82.53040} \pgfmath@def{acos}{131}{82.47261} +\pgfmath@def{acos}{132}{82.41482} \pgfmath@def{acos}{133}{82.35701} +\pgfmath@def{acos}{134}{82.29920} \pgfmath@def{acos}{135}{82.24138} +\pgfmath@def{acos}{136}{82.18355} \pgfmath@def{acos}{137}{82.12571} +\pgfmath@def{acos}{138}{82.06786} \pgfmath@def{acos}{139}{82.01001} +\pgfmath@def{acos}{140}{81.95215} \pgfmath@def{acos}{141}{81.89428} +\pgfmath@def{acos}{142}{81.83640} \pgfmath@def{acos}{143}{81.77851} +\pgfmath@def{acos}{144}{81.72062} \pgfmath@def{acos}{145}{81.66272} +\pgfmath@def{acos}{146}{81.60480} \pgfmath@def{acos}{147}{81.54688} +\pgfmath@def{acos}{148}{81.48895} \pgfmath@def{acos}{149}{81.43102} +\pgfmath@def{acos}{150}{81.37307} \pgfmath@def{acos}{151}{81.31511} +\pgfmath@def{acos}{152}{81.25715} \pgfmath@def{acos}{153}{81.19917} +\pgfmath@def{acos}{154}{81.14119} \pgfmath@def{acos}{155}{81.08320} +\pgfmath@def{acos}{156}{81.02520} \pgfmath@def{acos}{157}{80.96719} +\pgfmath@def{acos}{158}{80.90917} \pgfmath@def{acos}{159}{80.85114} +\pgfmath@def{acos}{160}{80.79310} \pgfmath@def{acos}{161}{80.73505} +\pgfmath@def{acos}{162}{80.67699} \pgfmath@def{acos}{163}{80.61893} +\pgfmath@def{acos}{164}{80.56085} \pgfmath@def{acos}{165}{80.50276} +\pgfmath@def{acos}{166}{80.44466} \pgfmath@def{acos}{167}{80.38656} +\pgfmath@def{acos}{168}{80.32844} \pgfmath@def{acos}{169}{80.27031} +\pgfmath@def{acos}{170}{80.21218} \pgfmath@def{acos}{171}{80.15403} +\pgfmath@def{acos}{172}{80.09587} \pgfmath@def{acos}{173}{80.03770} +\pgfmath@def{acos}{174}{79.97953} \pgfmath@def{acos}{175}{79.92134} +\pgfmath@def{acos}{176}{79.86314} \pgfmath@def{acos}{177}{79.80493} +\pgfmath@def{acos}{178}{79.74671} \pgfmath@def{acos}{179}{79.68848} +\pgfmath@def{acos}{180}{79.63024} \pgfmath@def{acos}{181}{79.57198} +\pgfmath@def{acos}{182}{79.51372} \pgfmath@def{acos}{183}{79.45545} +\pgfmath@def{acos}{184}{79.39716} \pgfmath@def{acos}{185}{79.33886} +\pgfmath@def{acos}{186}{79.28056} \pgfmath@def{acos}{187}{79.22224} +\pgfmath@def{acos}{188}{79.16391} \pgfmath@def{acos}{189}{79.10556} +\pgfmath@def{acos}{190}{79.04721} \pgfmath@def{acos}{191}{78.98885} +\pgfmath@def{acos}{192}{78.93047} \pgfmath@def{acos}{193}{78.87208} +\pgfmath@def{acos}{194}{78.81368} \pgfmath@def{acos}{195}{78.75527} +\pgfmath@def{acos}{196}{78.69685} \pgfmath@def{acos}{197}{78.63841} +\pgfmath@def{acos}{198}{78.57997} \pgfmath@def{acos}{199}{78.52151} +\pgfmath@def{acos}{200}{78.46304} \pgfmath@def{acos}{201}{78.40455} +\pgfmath@def{acos}{202}{78.34606} \pgfmath@def{acos}{203}{78.28755} +\pgfmath@def{acos}{204}{78.22903} \pgfmath@def{acos}{205}{78.17050} +\pgfmath@def{acos}{206}{78.11195} \pgfmath@def{acos}{207}{78.05339} +\pgfmath@def{acos}{208}{77.99482} \pgfmath@def{acos}{209}{77.93624} +\pgfmath@def{acos}{210}{77.87764} \pgfmath@def{acos}{211}{77.81903} +\pgfmath@def{acos}{212}{77.76041} \pgfmath@def{acos}{213}{77.70178} +\pgfmath@def{acos}{214}{77.64313} \pgfmath@def{acos}{215}{77.58447} +\pgfmath@def{acos}{216}{77.52579} \pgfmath@def{acos}{217}{77.46711} +\pgfmath@def{acos}{218}{77.40841} \pgfmath@def{acos}{219}{77.34969} +\pgfmath@def{acos}{220}{77.29096} \pgfmath@def{acos}{221}{77.23222} +\pgfmath@def{acos}{222}{77.17347} \pgfmath@def{acos}{223}{77.11470} +\pgfmath@def{acos}{224}{77.05591} \pgfmath@def{acos}{225}{76.99712} +\pgfmath@def{acos}{226}{76.93831} \pgfmath@def{acos}{227}{76.87948} +\pgfmath@def{acos}{228}{76.82064} \pgfmath@def{acos}{229}{76.76179} +\pgfmath@def{acos}{230}{76.70292} \pgfmath@def{acos}{231}{76.64404} +\pgfmath@def{acos}{232}{76.58515} \pgfmath@def{acos}{233}{76.52624} +\pgfmath@def{acos}{234}{76.46731} \pgfmath@def{acos}{235}{76.40837} +\pgfmath@def{acos}{236}{76.34942} \pgfmath@def{acos}{237}{76.29045} +\pgfmath@def{acos}{238}{76.23147} \pgfmath@def{acos}{239}{76.17247} +\pgfmath@def{acos}{240}{76.11346} \pgfmath@def{acos}{241}{76.05443} +\pgfmath@def{acos}{242}{75.99538} \pgfmath@def{acos}{243}{75.93632} +\pgfmath@def{acos}{244}{75.87725} \pgfmath@def{acos}{245}{75.81816} +\pgfmath@def{acos}{246}{75.75906} \pgfmath@def{acos}{247}{75.69994} +\pgfmath@def{acos}{248}{75.64080} \pgfmath@def{acos}{249}{75.58165} +\pgfmath@def{acos}{250}{75.52248} \pgfmath@def{acos}{251}{75.46330} +\pgfmath@def{acos}{252}{75.40410} \pgfmath@def{acos}{253}{75.34489} +\pgfmath@def{acos}{254}{75.28566} \pgfmath@def{acos}{255}{75.22641} +\pgfmath@def{acos}{256}{75.16715} \pgfmath@def{acos}{257}{75.10787} +\pgfmath@def{acos}{258}{75.04857} \pgfmath@def{acos}{259}{74.98926} +\pgfmath@def{acos}{260}{74.92993} \pgfmath@def{acos}{261}{74.87059} +\pgfmath@def{acos}{262}{74.81123} \pgfmath@def{acos}{263}{74.75185} +\pgfmath@def{acos}{264}{74.69245} \pgfmath@def{acos}{265}{74.63304} +\pgfmath@def{acos}{266}{74.57361} \pgfmath@def{acos}{267}{74.51417} +\pgfmath@def{acos}{268}{74.45471} \pgfmath@def{acos}{269}{74.39523} +\pgfmath@def{acos}{270}{74.33573} \pgfmath@def{acos}{271}{74.27621} +\pgfmath@def{acos}{272}{74.21668} \pgfmath@def{acos}{273}{74.15713} +\pgfmath@def{acos}{274}{74.09757} \pgfmath@def{acos}{275}{74.03798} +\pgfmath@def{acos}{276}{73.97838} \pgfmath@def{acos}{277}{73.91876} +\pgfmath@def{acos}{278}{73.85912} \pgfmath@def{acos}{279}{73.79946} +\pgfmath@def{acos}{280}{73.73979} \pgfmath@def{acos}{281}{73.68010} +\pgfmath@def{acos}{282}{73.62039} \pgfmath@def{acos}{283}{73.56066} +\pgfmath@def{acos}{284}{73.50091} \pgfmath@def{acos}{285}{73.44115} +\pgfmath@def{acos}{286}{73.38136} \pgfmath@def{acos}{287}{73.32156} +\pgfmath@def{acos}{288}{73.26174} \pgfmath@def{acos}{289}{73.20190} +\pgfmath@def{acos}{290}{73.14204} \pgfmath@def{acos}{291}{73.08216} +\pgfmath@def{acos}{292}{73.02226} \pgfmath@def{acos}{293}{72.96235} +\pgfmath@def{acos}{294}{72.90241} \pgfmath@def{acos}{295}{72.84246} +\pgfmath@def{acos}{296}{72.78248} \pgfmath@def{acos}{297}{72.72249} +\pgfmath@def{acos}{298}{72.66248} \pgfmath@def{acos}{299}{72.60244} +\pgfmath@def{acos}{300}{72.54239} \pgfmath@def{acos}{301}{72.48232} +\pgfmath@def{acos}{302}{72.42223} \pgfmath@def{acos}{303}{72.36212} +\pgfmath@def{acos}{304}{72.30198} \pgfmath@def{acos}{305}{72.24183} +\pgfmath@def{acos}{306}{72.18166} \pgfmath@def{acos}{307}{72.12147} +\pgfmath@def{acos}{308}{72.06125} \pgfmath@def{acos}{309}{72.00102} +\pgfmath@def{acos}{310}{71.94077} \pgfmath@def{acos}{311}{71.88049} +\pgfmath@def{acos}{312}{71.82019} \pgfmath@def{acos}{313}{71.75988} +\pgfmath@def{acos}{314}{71.69954} \pgfmath@def{acos}{315}{71.63918} +\pgfmath@def{acos}{316}{71.57880} \pgfmath@def{acos}{317}{71.51840} +\pgfmath@def{acos}{318}{71.45798} \pgfmath@def{acos}{319}{71.39754} +\pgfmath@def{acos}{320}{71.33707} \pgfmath@def{acos}{321}{71.27658} +\pgfmath@def{acos}{322}{71.21608} \pgfmath@def{acos}{323}{71.15555} +\pgfmath@def{acos}{324}{71.09499} \pgfmath@def{acos}{325}{71.03442} +\pgfmath@def{acos}{326}{70.97382} \pgfmath@def{acos}{327}{70.91321} +\pgfmath@def{acos}{328}{70.85257} \pgfmath@def{acos}{329}{70.79190} +\pgfmath@def{acos}{330}{70.73122} \pgfmath@def{acos}{331}{70.67051} +\pgfmath@def{acos}{332}{70.60978} \pgfmath@def{acos}{333}{70.54903} +\pgfmath@def{acos}{334}{70.48826} \pgfmath@def{acos}{335}{70.42746} +\pgfmath@def{acos}{336}{70.36664} \pgfmath@def{acos}{337}{70.30579} +\pgfmath@def{acos}{338}{70.24493} \pgfmath@def{acos}{339}{70.18404} +\pgfmath@def{acos}{340}{70.12312} \pgfmath@def{acos}{341}{70.06218} +\pgfmath@def{acos}{342}{70.00122} \pgfmath@def{acos}{343}{69.94024} +\pgfmath@def{acos}{344}{69.87923} \pgfmath@def{acos}{345}{69.81820} +\pgfmath@def{acos}{346}{69.75714} \pgfmath@def{acos}{347}{69.69606} +\pgfmath@def{acos}{348}{69.63496} \pgfmath@def{acos}{349}{69.57383} +\pgfmath@def{acos}{350}{69.51268} \pgfmath@def{acos}{351}{69.45150} +\pgfmath@def{acos}{352}{69.39030} \pgfmath@def{acos}{353}{69.32908} +\pgfmath@def{acos}{354}{69.26783} \pgfmath@def{acos}{355}{69.20655} +\pgfmath@def{acos}{356}{69.14525} \pgfmath@def{acos}{357}{69.08393} +\pgfmath@def{acos}{358}{69.02258} \pgfmath@def{acos}{359}{68.96120} +\pgfmath@def{acos}{360}{68.89980} \pgfmath@def{acos}{361}{68.83837} +\pgfmath@def{acos}{362}{68.77692} \pgfmath@def{acos}{363}{68.71544} +\pgfmath@def{acos}{364}{68.65394} \pgfmath@def{acos}{365}{68.59241} +\pgfmath@def{acos}{366}{68.53086} \pgfmath@def{acos}{367}{68.46928} +\pgfmath@def{acos}{368}{68.40767} \pgfmath@def{acos}{369}{68.34604} +\pgfmath@def{acos}{370}{68.28438} \pgfmath@def{acos}{371}{68.22269} +\pgfmath@def{acos}{372}{68.16098} \pgfmath@def{acos}{373}{68.09924} +\pgfmath@def{acos}{374}{68.03748} \pgfmath@def{acos}{375}{67.97568} +\pgfmath@def{acos}{376}{67.91386} \pgfmath@def{acos}{377}{67.85202} +\pgfmath@def{acos}{378}{67.79014} \pgfmath@def{acos}{379}{67.72824} +\pgfmath@def{acos}{380}{67.66631} \pgfmath@def{acos}{381}{67.60436} +\pgfmath@def{acos}{382}{67.54237} \pgfmath@def{acos}{383}{67.48036} +\pgfmath@def{acos}{384}{67.41832} \pgfmath@def{acos}{385}{67.35626} +\pgfmath@def{acos}{386}{67.29416} \pgfmath@def{acos}{387}{67.23204} +\pgfmath@def{acos}{388}{67.16988} \pgfmath@def{acos}{389}{67.10770} +\pgfmath@def{acos}{390}{67.04550} \pgfmath@def{acos}{391}{66.98326} +\pgfmath@def{acos}{392}{66.92099} \pgfmath@def{acos}{393}{66.85870} +\pgfmath@def{acos}{394}{66.79637} \pgfmath@def{acos}{395}{66.73402} +\pgfmath@def{acos}{396}{66.67164} \pgfmath@def{acos}{397}{66.60923} +\pgfmath@def{acos}{398}{66.54679} \pgfmath@def{acos}{399}{66.48432} +\pgfmath@def{acos}{400}{66.42182} \pgfmath@def{acos}{401}{66.35929} +\pgfmath@def{acos}{402}{66.29673} \pgfmath@def{acos}{403}{66.23414} +\pgfmath@def{acos}{404}{66.17152} \pgfmath@def{acos}{405}{66.10887} +\pgfmath@def{acos}{406}{66.04619} \pgfmath@def{acos}{407}{65.98348} +\pgfmath@def{acos}{408}{65.92074} \pgfmath@def{acos}{409}{65.85796} +\pgfmath@def{acos}{410}{65.79516} \pgfmath@def{acos}{411}{65.73233} +\pgfmath@def{acos}{412}{65.66946} \pgfmath@def{acos}{413}{65.60657} +\pgfmath@def{acos}{414}{65.54364} \pgfmath@def{acos}{415}{65.48068} +\pgfmath@def{acos}{416}{65.41769} \pgfmath@def{acos}{417}{65.35467} +\pgfmath@def{acos}{418}{65.29161} \pgfmath@def{acos}{419}{65.22853} +\pgfmath@def{acos}{420}{65.16541} \pgfmath@def{acos}{421}{65.10226} +\pgfmath@def{acos}{422}{65.03908} \pgfmath@def{acos}{423}{64.97586} +\pgfmath@def{acos}{424}{64.91261} \pgfmath@def{acos}{425}{64.84933} +\pgfmath@def{acos}{426}{64.78602} \pgfmath@def{acos}{427}{64.72267} +\pgfmath@def{acos}{428}{64.65929} \pgfmath@def{acos}{429}{64.59588} +\pgfmath@def{acos}{430}{64.53244} \pgfmath@def{acos}{431}{64.46896} +\pgfmath@def{acos}{432}{64.40544} \pgfmath@def{acos}{433}{64.34190} +\pgfmath@def{acos}{434}{64.27832} \pgfmath@def{acos}{435}{64.21470} +\pgfmath@def{acos}{436}{64.15105} \pgfmath@def{acos}{437}{64.08737} +\pgfmath@def{acos}{438}{64.02365} \pgfmath@def{acos}{439}{63.95990} +\pgfmath@def{acos}{440}{63.89611} \pgfmath@def{acos}{441}{63.83229} +\pgfmath@def{acos}{442}{63.76844} \pgfmath@def{acos}{443}{63.70455} +\pgfmath@def{acos}{444}{63.64062} \pgfmath@def{acos}{445}{63.57666} +\pgfmath@def{acos}{446}{63.51266} \pgfmath@def{acos}{447}{63.44863} +\pgfmath@def{acos}{448}{63.38456} \pgfmath@def{acos}{449}{63.32045} +\pgfmath@def{acos}{450}{63.25631} \pgfmath@def{acos}{451}{63.19213} +\pgfmath@def{acos}{452}{63.12792} \pgfmath@def{acos}{453}{63.06367} +\pgfmath@def{acos}{454}{62.99938} \pgfmath@def{acos}{455}{62.93506} +\pgfmath@def{acos}{456}{62.87070} \pgfmath@def{acos}{457}{62.80630} +\pgfmath@def{acos}{458}{62.74187} \pgfmath@def{acos}{459}{62.67740} +\pgfmath@def{acos}{460}{62.61289} \pgfmath@def{acos}{461}{62.54834} +\pgfmath@def{acos}{462}{62.48376} \pgfmath@def{acos}{463}{62.41913} +\pgfmath@def{acos}{464}{62.35447} \pgfmath@def{acos}{465}{62.28977} +\pgfmath@def{acos}{466}{62.22504} \pgfmath@def{acos}{467}{62.16026} +\pgfmath@def{acos}{468}{62.09545} \pgfmath@def{acos}{469}{62.03059} +\pgfmath@def{acos}{470}{61.96570} \pgfmath@def{acos}{471}{61.90077} +\pgfmath@def{acos}{472}{61.83580} \pgfmath@def{acos}{473}{61.77079} +\pgfmath@def{acos}{474}{61.70574} \pgfmath@def{acos}{475}{61.64065} +\pgfmath@def{acos}{476}{61.57552} \pgfmath@def{acos}{477}{61.51035} +\pgfmath@def{acos}{478}{61.44514} \pgfmath@def{acos}{479}{61.37988} +\pgfmath@def{acos}{480}{61.31459} \pgfmath@def{acos}{481}{61.24926} +\pgfmath@def{acos}{482}{61.18389} \pgfmath@def{acos}{483}{61.11847} +\pgfmath@def{acos}{484}{61.05302} \pgfmath@def{acos}{485}{60.98752} +\pgfmath@def{acos}{486}{60.92199} \pgfmath@def{acos}{487}{60.85641} +\pgfmath@def{acos}{488}{60.79078} \pgfmath@def{acos}{489}{60.72512} +\pgfmath@def{acos}{490}{60.65941} \pgfmath@def{acos}{491}{60.59367} +\pgfmath@def{acos}{492}{60.52787} \pgfmath@def{acos}{493}{60.46204} +\pgfmath@def{acos}{494}{60.39616} \pgfmath@def{acos}{495}{60.33025} +\pgfmath@def{acos}{496}{60.26428} \pgfmath@def{acos}{497}{60.19828} +\pgfmath@def{acos}{498}{60.13223} \pgfmath@def{acos}{499}{60.06613} +\pgfmath@def{acos}{500}{60.00000} \pgfmath@def{acos}{501}{59.93381} +\pgfmath@def{acos}{502}{59.86759} \pgfmath@def{acos}{503}{59.80132} +\pgfmath@def{acos}{504}{59.73500} \pgfmath@def{acos}{505}{59.66864} +\pgfmath@def{acos}{506}{59.60224} \pgfmath@def{acos}{507}{59.53579} +\pgfmath@def{acos}{508}{59.46929} \pgfmath@def{acos}{509}{59.40275} +\pgfmath@def{acos}{510}{59.33617} \pgfmath@def{acos}{511}{59.26953} +\pgfmath@def{acos}{512}{59.20285} \pgfmath@def{acos}{513}{59.13613} +\pgfmath@def{acos}{514}{59.06936} \pgfmath@def{acos}{515}{59.00254} +\pgfmath@def{acos}{516}{58.93568} \pgfmath@def{acos}{517}{58.86876} +\pgfmath@def{acos}{518}{58.80180} \pgfmath@def{acos}{519}{58.73480} +\pgfmath@def{acos}{520}{58.66774} \pgfmath@def{acos}{521}{58.60064} +\pgfmath@def{acos}{522}{58.53349} \pgfmath@def{acos}{523}{58.46629} +\pgfmath@def{acos}{524}{58.39905} \pgfmath@def{acos}{525}{58.33175} +\pgfmath@def{acos}{526}{58.26441} \pgfmath@def{acos}{527}{58.19702} +\pgfmath@def{acos}{528}{58.12957} \pgfmath@def{acos}{529}{58.06208} +\pgfmath@def{acos}{530}{57.99454} \pgfmath@def{acos}{531}{57.92695} +\pgfmath@def{acos}{532}{57.85931} \pgfmath@def{acos}{533}{57.79162} +\pgfmath@def{acos}{534}{57.72388} \pgfmath@def{acos}{535}{57.65608} +\pgfmath@def{acos}{536}{57.58824} \pgfmath@def{acos}{537}{57.52035} +\pgfmath@def{acos}{538}{57.45240} \pgfmath@def{acos}{539}{57.38441} +\pgfmath@def{acos}{540}{57.31636} \pgfmath@def{acos}{541}{57.24826} +\pgfmath@def{acos}{542}{57.18010} \pgfmath@def{acos}{543}{57.11190} +\pgfmath@def{acos}{544}{57.04364} \pgfmath@def{acos}{545}{56.97533} +\pgfmath@def{acos}{546}{56.90697} \pgfmath@def{acos}{547}{56.83855} +\pgfmath@def{acos}{548}{56.77008} \pgfmath@def{acos}{549}{56.70156} +\pgfmath@def{acos}{550}{56.63298} \pgfmath@def{acos}{551}{56.56435} +\pgfmath@def{acos}{552}{56.49567} \pgfmath@def{acos}{553}{56.42693} +\pgfmath@def{acos}{554}{56.35813} \pgfmath@def{acos}{555}{56.28928} +\pgfmath@def{acos}{556}{56.22038} \pgfmath@def{acos}{557}{56.15141} +\pgfmath@def{acos}{558}{56.08240} \pgfmath@def{acos}{559}{56.01333} +\pgfmath@def{acos}{560}{55.94420} \pgfmath@def{acos}{561}{55.87501} +\pgfmath@def{acos}{562}{55.80577} \pgfmath@def{acos}{563}{55.73647} +\pgfmath@def{acos}{564}{55.66712} \pgfmath@def{acos}{565}{55.59770} +\pgfmath@def{acos}{566}{55.52823} \pgfmath@def{acos}{567}{55.45871} +\pgfmath@def{acos}{568}{55.38912} \pgfmath@def{acos}{569}{55.31947} +\pgfmath@def{acos}{570}{55.24977} \pgfmath@def{acos}{571}{55.18001} +\pgfmath@def{acos}{572}{55.11019} \pgfmath@def{acos}{573}{55.04030} +\pgfmath@def{acos}{574}{54.97036} \pgfmath@def{acos}{575}{54.90036} +\pgfmath@def{acos}{576}{54.83030} \pgfmath@def{acos}{577}{54.76018} +\pgfmath@def{acos}{578}{54.69000} \pgfmath@def{acos}{579}{54.61976} +\pgfmath@def{acos}{580}{54.54945} \pgfmath@def{acos}{581}{54.47909} +\pgfmath@def{acos}{582}{54.40866} \pgfmath@def{acos}{583}{54.33817} +\pgfmath@def{acos}{584}{54.26762} \pgfmath@def{acos}{585}{54.19701} +\pgfmath@def{acos}{586}{54.12633} \pgfmath@def{acos}{587}{54.05559} +\pgfmath@def{acos}{588}{53.98479} \pgfmath@def{acos}{589}{53.91392} +\pgfmath@def{acos}{590}{53.84299} \pgfmath@def{acos}{591}{53.77199} +\pgfmath@def{acos}{592}{53.70093} \pgfmath@def{acos}{593}{53.62981} +\pgfmath@def{acos}{594}{53.55862} \pgfmath@def{acos}{595}{53.48736} +\pgfmath@def{acos}{596}{53.41604} \pgfmath@def{acos}{597}{53.34466} +\pgfmath@def{acos}{598}{53.27320} \pgfmath@def{acos}{599}{53.20168} +\pgfmath@def{acos}{600}{53.13010} \pgfmath@def{acos}{601}{53.05844} +\pgfmath@def{acos}{602}{52.98672} \pgfmath@def{acos}{603}{52.91494} +\pgfmath@def{acos}{604}{52.84308} \pgfmath@def{acos}{605}{52.77115} +\pgfmath@def{acos}{606}{52.69916} \pgfmath@def{acos}{607}{52.62710} +\pgfmath@def{acos}{608}{52.55497} \pgfmath@def{acos}{609}{52.48276} +\pgfmath@def{acos}{610}{52.41049} \pgfmath@def{acos}{611}{52.33815} +\pgfmath@def{acos}{612}{52.26574} \pgfmath@def{acos}{613}{52.19326} +\pgfmath@def{acos}{614}{52.12070} \pgfmath@def{acos}{615}{52.04808} +\pgfmath@def{acos}{616}{51.97538} \pgfmath@def{acos}{617}{51.90261} +\pgfmath@def{acos}{618}{51.82976} \pgfmath@def{acos}{619}{51.75685} +\pgfmath@def{acos}{620}{51.68386} \pgfmath@def{acos}{621}{51.61080} +\pgfmath@def{acos}{622}{51.53766} \pgfmath@def{acos}{623}{51.46445} +\pgfmath@def{acos}{624}{51.39117} \pgfmath@def{acos}{625}{51.31781} +\pgfmath@def{acos}{626}{51.24437} \pgfmath@def{acos}{627}{51.17086} +\pgfmath@def{acos}{628}{51.09728} \pgfmath@def{acos}{629}{51.02361} +\pgfmath@def{acos}{630}{50.94987} \pgfmath@def{acos}{631}{50.87606} +\pgfmath@def{acos}{632}{50.80216} \pgfmath@def{acos}{633}{50.72819} +\pgfmath@def{acos}{634}{50.65414} \pgfmath@def{acos}{635}{50.58001} +\pgfmath@def{acos}{636}{50.50580} \pgfmath@def{acos}{637}{50.43152} +\pgfmath@def{acos}{638}{50.35715} \pgfmath@def{acos}{639}{50.28270} +\pgfmath@def{acos}{640}{50.20818} \pgfmath@def{acos}{641}{50.13357} +\pgfmath@def{acos}{642}{50.05888} \pgfmath@def{acos}{643}{49.98411} +\pgfmath@def{acos}{644}{49.90926} \pgfmath@def{acos}{645}{49.83432} +\pgfmath@def{acos}{646}{49.75930} \pgfmath@def{acos}{647}{49.68420} +\pgfmath@def{acos}{648}{49.60902} \pgfmath@def{acos}{649}{49.53375} +\pgfmath@def{acos}{650}{49.45839} \pgfmath@def{acos}{651}{49.38296} +\pgfmath@def{acos}{652}{49.30743} \pgfmath@def{acos}{653}{49.23182} +\pgfmath@def{acos}{654}{49.15613} \pgfmath@def{acos}{655}{49.08035} +\pgfmath@def{acos}{656}{49.00448} \pgfmath@def{acos}{657}{48.92852} +\pgfmath@def{acos}{658}{48.85248} \pgfmath@def{acos}{659}{48.77634} +\pgfmath@def{acos}{660}{48.70012} \pgfmath@def{acos}{661}{48.62381} +\pgfmath@def{acos}{662}{48.54741} \pgfmath@def{acos}{663}{48.47092} +\pgfmath@def{acos}{664}{48.39434} \pgfmath@def{acos}{665}{48.31767} +\pgfmath@def{acos}{666}{48.24091} \pgfmath@def{acos}{667}{48.16405} +\pgfmath@def{acos}{668}{48.08710} \pgfmath@def{acos}{669}{48.01006} +\pgfmath@def{acos}{670}{47.93293} \pgfmath@def{acos}{671}{47.85570} +\pgfmath@def{acos}{672}{47.77838} \pgfmath@def{acos}{673}{47.70096} +\pgfmath@def{acos}{674}{47.62345} \pgfmath@def{acos}{675}{47.54585} +\pgfmath@def{acos}{676}{47.46814} \pgfmath@def{acos}{677}{47.39034} +\pgfmath@def{acos}{678}{47.31244} \pgfmath@def{acos}{679}{47.23445} +\pgfmath@def{acos}{680}{47.15635} \pgfmath@def{acos}{681}{47.07816} +\pgfmath@def{acos}{682}{46.99987} \pgfmath@def{acos}{683}{46.92147} +\pgfmath@def{acos}{684}{46.84298} \pgfmath@def{acos}{685}{46.76439} +\pgfmath@def{acos}{686}{46.68569} \pgfmath@def{acos}{687}{46.60690} +\pgfmath@def{acos}{688}{46.52800} \pgfmath@def{acos}{689}{46.44899} +\pgfmath@def{acos}{690}{46.36989} \pgfmath@def{acos}{691}{46.29068} +\pgfmath@def{acos}{692}{46.21136} \pgfmath@def{acos}{693}{46.13194} +\pgfmath@def{acos}{694}{46.05241} \pgfmath@def{acos}{695}{45.97278} +\pgfmath@def{acos}{696}{45.89304} \pgfmath@def{acos}{697}{45.81319} +\pgfmath@def{acos}{698}{45.73323} \pgfmath@def{acos}{699}{45.65317} +\pgfmath@def{acos}{700}{45.57299} \pgfmath@def{acos}{701}{45.49271} +\pgfmath@def{acos}{702}{45.41231} \pgfmath@def{acos}{703}{45.33180} +\pgfmath@def{acos}{704}{45.25118} \pgfmath@def{acos}{705}{45.17045} +\pgfmath@def{acos}{706}{45.08961} \pgfmath@def{acos}{707}{45.00865} +\pgfmath@def{acos}{708}{44.92757} \pgfmath@def{acos}{709}{44.84638} +\pgfmath@def{acos}{710}{44.76508} \pgfmath@def{acos}{711}{44.68366} +\pgfmath@def{acos}{712}{44.60212} \pgfmath@def{acos}{713}{44.52046} +\pgfmath@def{acos}{714}{44.43869} \pgfmath@def{acos}{715}{44.35680} +\pgfmath@def{acos}{716}{44.27478} \pgfmath@def{acos}{717}{44.19265} +\pgfmath@def{acos}{718}{44.11039} \pgfmath@def{acos}{719}{44.02802} +\pgfmath@def{acos}{720}{43.94552} \pgfmath@def{acos}{721}{43.86289} +\pgfmath@def{acos}{722}{43.78014} \pgfmath@def{acos}{723}{43.69727} +\pgfmath@def{acos}{724}{43.61427} \pgfmath@def{acos}{725}{43.53115} +\pgfmath@def{acos}{726}{43.44790} \pgfmath@def{acos}{727}{43.36452} +\pgfmath@def{acos}{728}{43.28101} \pgfmath@def{acos}{729}{43.19737} +\pgfmath@def{acos}{730}{43.11360} \pgfmath@def{acos}{731}{43.02970} +\pgfmath@def{acos}{732}{42.94567} \pgfmath@def{acos}{733}{42.86151} +\pgfmath@def{acos}{734}{42.77721} \pgfmath@def{acos}{735}{42.69278} +\pgfmath@def{acos}{736}{42.60821} \pgfmath@def{acos}{737}{42.52351} +\pgfmath@def{acos}{738}{42.43867} \pgfmath@def{acos}{739}{42.35370} +\pgfmath@def{acos}{740}{42.26858} \pgfmath@def{acos}{741}{42.18333} +\pgfmath@def{acos}{742}{42.09793} \pgfmath@def{acos}{743}{42.01240} +\pgfmath@def{acos}{744}{41.92672} \pgfmath@def{acos}{745}{41.84090} +\pgfmath@def{acos}{746}{41.75493} \pgfmath@def{acos}{747}{41.66882} +\pgfmath@def{acos}{748}{41.58257} \pgfmath@def{acos}{749}{41.49617} +\pgfmath@def{acos}{750}{41.40962} \pgfmath@def{acos}{751}{41.32292} +\pgfmath@def{acos}{752}{41.23607} \pgfmath@def{acos}{753}{41.14908} +\pgfmath@def{acos}{754}{41.06193} \pgfmath@def{acos}{755}{40.97463} +\pgfmath@def{acos}{756}{40.88717} \pgfmath@def{acos}{757}{40.79956} +\pgfmath@def{acos}{758}{40.71180} \pgfmath@def{acos}{759}{40.62388} +\pgfmath@def{acos}{760}{40.53580} \pgfmath@def{acos}{761}{40.44756} +\pgfmath@def{acos}{762}{40.35916} \pgfmath@def{acos}{763}{40.27061} +\pgfmath@def{acos}{764}{40.18189} \pgfmath@def{acos}{765}{40.09300} +\pgfmath@def{acos}{766}{40.00396} \pgfmath@def{acos}{767}{39.91474} +\pgfmath@def{acos}{768}{39.82537} \pgfmath@def{acos}{769}{39.73582} +\pgfmath@def{acos}{770}{39.64611} \pgfmath@def{acos}{771}{39.55622} +\pgfmath@def{acos}{772}{39.46617} \pgfmath@def{acos}{773}{39.37594} +\pgfmath@def{acos}{774}{39.28554} \pgfmath@def{acos}{775}{39.19496} +\pgfmath@def{acos}{776}{39.10421} \pgfmath@def{acos}{777}{39.01328} +\pgfmath@def{acos}{778}{38.92218} \pgfmath@def{acos}{779}{38.83089} +\pgfmath@def{acos}{780}{38.73942} \pgfmath@def{acos}{781}{38.64777} +\pgfmath@def{acos}{782}{38.55594} \pgfmath@def{acos}{783}{38.46392} +\pgfmath@def{acos}{784}{38.37171} \pgfmath@def{acos}{785}{38.27932} +\pgfmath@def{acos}{786}{38.18673} \pgfmath@def{acos}{787}{38.09396} +\pgfmath@def{acos}{788}{38.00100} \pgfmath@def{acos}{789}{37.90784} +\pgfmath@def{acos}{790}{37.81448} \pgfmath@def{acos}{791}{37.72093} +\pgfmath@def{acos}{792}{37.62719} \pgfmath@def{acos}{793}{37.53324} +\pgfmath@def{acos}{794}{37.43909} \pgfmath@def{acos}{795}{37.34474} +\pgfmath@def{acos}{796}{37.25019} \pgfmath@def{acos}{797}{37.15542} +\pgfmath@def{acos}{798}{37.06046} \pgfmath@def{acos}{799}{36.96528} +\pgfmath@def{acos}{800}{36.86989} \pgfmath@def{acos}{801}{36.77429} +\pgfmath@def{acos}{802}{36.67848} \pgfmath@def{acos}{803}{36.58245} +\pgfmath@def{acos}{804}{36.48621} \pgfmath@def{acos}{805}{36.38974} +\pgfmath@def{acos}{806}{36.29305} \pgfmath@def{acos}{807}{36.19615} +\pgfmath@def{acos}{808}{36.09901} \pgfmath@def{acos}{809}{36.00165} +\pgfmath@def{acos}{810}{35.90406} \pgfmath@def{acos}{811}{35.80625} +\pgfmath@def{acos}{812}{35.70820} \pgfmath@def{acos}{813}{35.60991} +\pgfmath@def{acos}{814}{35.51139} \pgfmath@def{acos}{815}{35.41263} +\pgfmath@def{acos}{816}{35.31364} \pgfmath@def{acos}{817}{35.21440} +\pgfmath@def{acos}{818}{35.11491} \pgfmath@def{acos}{819}{35.01518} +\pgfmath@def{acos}{820}{34.91520} \pgfmath@def{acos}{821}{34.81497} +\pgfmath@def{acos}{822}{34.71449} \pgfmath@def{acos}{823}{34.61375} +\pgfmath@def{acos}{824}{34.51276} \pgfmath@def{acos}{825}{34.41150} +\pgfmath@def{acos}{826}{34.30999} \pgfmath@def{acos}{827}{34.20821} +\pgfmath@def{acos}{828}{34.10616} \pgfmath@def{acos}{829}{34.00385} +\pgfmath@def{acos}{830}{33.90126} \pgfmath@def{acos}{831}{33.79840} +\pgfmath@def{acos}{832}{33.69526} \pgfmath@def{acos}{833}{33.59184} +\pgfmath@def{acos}{834}{33.48814} \pgfmath@def{acos}{835}{33.38416} +\pgfmath@def{acos}{836}{33.27989} \pgfmath@def{acos}{837}{33.17533} +\pgfmath@def{acos}{838}{33.07047} \pgfmath@def{acos}{839}{32.96532} +\pgfmath@def{acos}{840}{32.85988} \pgfmath@def{acos}{841}{32.75413} +\pgfmath@def{acos}{842}{32.64807} \pgfmath@def{acos}{843}{32.54171} +\pgfmath@def{acos}{844}{32.43504} \pgfmath@def{acos}{845}{32.32806} +\pgfmath@def{acos}{846}{32.22076} \pgfmath@def{acos}{847}{32.11314} +\pgfmath@def{acos}{848}{32.00520} \pgfmath@def{acos}{849}{31.89693} +\pgfmath@def{acos}{850}{31.78833} \pgfmath@def{acos}{851}{31.67939} +\pgfmath@def{acos}{852}{31.57012} \pgfmath@def{acos}{853}{31.46051} +\pgfmath@def{acos}{854}{31.35056} \pgfmath@def{acos}{855}{31.24026} +\pgfmath@def{acos}{856}{31.12961} \pgfmath@def{acos}{857}{31.01860} +\pgfmath@def{acos}{858}{30.90724} \pgfmath@def{acos}{859}{30.79551} +\pgfmath@def{acos}{860}{30.68341} \pgfmath@def{acos}{861}{30.57095} +\pgfmath@def{acos}{862}{30.45811} \pgfmath@def{acos}{863}{30.34489} +\pgfmath@def{acos}{864}{30.23128} \pgfmath@def{acos}{865}{30.11729} +\pgfmath@def{acos}{866}{30.00291} \pgfmath@def{acos}{867}{29.88813} +\pgfmath@def{acos}{868}{29.77294} \pgfmath@def{acos}{869}{29.65736} +\pgfmath@def{acos}{870}{29.54136} \pgfmath@def{acos}{871}{29.42494} +\pgfmath@def{acos}{872}{29.30810} \pgfmath@def{acos}{873}{29.19084} +\pgfmath@def{acos}{874}{29.07315} \pgfmath@def{acos}{875}{28.95502} +\pgfmath@def{acos}{876}{28.83645} \pgfmath@def{acos}{877}{28.71743} +\pgfmath@def{acos}{878}{28.59796} \pgfmath@def{acos}{879}{28.47803} +\pgfmath@def{acos}{880}{28.35763} \pgfmath@def{acos}{881}{28.23677} +\pgfmath@def{acos}{882}{28.11542} \pgfmath@def{acos}{883}{27.99360} +\pgfmath@def{acos}{884}{27.87128} \pgfmath@def{acos}{885}{27.74847} +\pgfmath@def{acos}{886}{27.62516} \pgfmath@def{acos}{887}{27.50134} +\pgfmath@def{acos}{888}{27.37700} \pgfmath@def{acos}{889}{27.25214} +\pgfmath@def{acos}{890}{27.12675} \pgfmath@def{acos}{891}{27.00082} +\pgfmath@def{acos}{892}{26.87434} \pgfmath@def{acos}{893}{26.74731} +\pgfmath@def{acos}{894}{26.61973} \pgfmath@def{acos}{895}{26.49157} +\pgfmath@def{acos}{896}{26.36283} \pgfmath@def{acos}{897}{26.23351} +\pgfmath@def{acos}{898}{26.10359} \pgfmath@def{acos}{899}{25.97306} +\pgfmath@def{acos}{900}{25.84193} \pgfmath@def{acos}{901}{25.71017} +\pgfmath@def{acos}{902}{25.57778} \pgfmath@def{acos}{903}{25.44475} +\pgfmath@def{acos}{904}{25.31106} \pgfmath@def{acos}{905}{25.17671} +\pgfmath@def{acos}{906}{25.04169} \pgfmath@def{acos}{907}{24.90598} +\pgfmath@def{acos}{908}{24.76958} \pgfmath@def{acos}{909}{24.63247} +\pgfmath@def{acos}{910}{24.49464} \pgfmath@def{acos}{911}{24.35608} +\pgfmath@def{acos}{912}{24.21678} \pgfmath@def{acos}{913}{24.07672} +\pgfmath@def{acos}{914}{23.93588} \pgfmath@def{acos}{915}{23.79427} +\pgfmath@def{acos}{916}{23.65185} \pgfmath@def{acos}{917}{23.50863} +\pgfmath@def{acos}{918}{23.36457} \pgfmath@def{acos}{919}{23.21967} +\pgfmath@def{acos}{920}{23.07391} \pgfmath@def{acos}{921}{22.92728} +\pgfmath@def{acos}{922}{22.77975} \pgfmath@def{acos}{923}{22.63132} +\pgfmath@def{acos}{924}{22.48195} \pgfmath@def{acos}{925}{22.33164} +\pgfmath@def{acos}{926}{22.18036} \pgfmath@def{acos}{927}{22.02810} +\pgfmath@def{acos}{928}{21.87483} \pgfmath@def{acos}{929}{21.72053} +\pgfmath@def{acos}{930}{21.56518} \pgfmath@def{acos}{931}{21.40876} +\pgfmath@def{acos}{932}{21.25124} \pgfmath@def{acos}{933}{21.09260} +\pgfmath@def{acos}{934}{20.93281} \pgfmath@def{acos}{935}{20.77185} +\pgfmath@def{acos}{936}{20.60969} \pgfmath@def{acos}{937}{20.44630} +\pgfmath@def{acos}{938}{20.28165} \pgfmath@def{acos}{939}{20.11570} +\pgfmath@def{acos}{940}{19.94844} \pgfmath@def{acos}{941}{19.77982} +\pgfmath@def{acos}{942}{19.60981} \pgfmath@def{acos}{943}{19.43837} +\pgfmath@def{acos}{944}{19.26546} \pgfmath@def{acos}{945}{19.09105} +\pgfmath@def{acos}{946}{18.91509} \pgfmath@def{acos}{947}{18.73754} +\pgfmath@def{acos}{948}{18.55835} \pgfmath@def{acos}{949}{18.37748} +\pgfmath@def{acos}{950}{18.19487} \pgfmath@def{acos}{951}{18.01047} +\pgfmath@def{acos}{952}{17.82423} \pgfmath@def{acos}{953}{17.63609} +\pgfmath@def{acos}{954}{17.44598} \pgfmath@def{acos}{955}{17.25385} +\pgfmath@def{acos}{956}{17.05962} \pgfmath@def{acos}{957}{16.86322} +\pgfmath@def{acos}{958}{16.66457} \pgfmath@def{acos}{959}{16.46359} +\pgfmath@def{acos}{960}{16.26020} \pgfmath@def{acos}{961}{16.05430} +\pgfmath@def{acos}{962}{15.84580} \pgfmath@def{acos}{963}{15.63459} +\pgfmath@def{acos}{964}{15.42057} \pgfmath@def{acos}{965}{15.20360} +\pgfmath@def{acos}{966}{14.98357} \pgfmath@def{acos}{967}{14.76033} +\pgfmath@def{acos}{968}{14.53374} \pgfmath@def{acos}{969}{14.30364} +\pgfmath@def{acos}{970}{14.06986} \pgfmath@def{acos}{971}{13.83221} +\pgfmath@def{acos}{972}{13.59049} \pgfmath@def{acos}{973}{13.34447} +\pgfmath@def{acos}{974}{13.09392} \pgfmath@def{acos}{975}{12.83856} +\pgfmath@def{acos}{976}{12.57811} \pgfmath@def{acos}{977}{12.31225} +\pgfmath@def{acos}{978}{12.04060} \pgfmath@def{acos}{979}{11.76278} +\pgfmath@def{acos}{980}{11.47834} \pgfmath@def{acos}{981}{11.18676} +\pgfmath@def{acos}{982}{10.88748} \pgfmath@def{acos}{983}{10.57984} +\pgfmath@def{acos}{984}{10.26309} \pgfmath@def{acos}{985}{9.93636} +\pgfmath@def{acos}{986}{9.59863} \pgfmath@def{acos}{987}{9.24870} +\pgfmath@def{acos}{988}{8.88512} \pgfmath@def{acos}{989}{8.50614} +\pgfmath@def{acos}{990}{8.10961} \pgfmath@def{acos}{991}{7.69281} +\pgfmath@def{acos}{992}{7.25224} \pgfmath@def{acos}{993}{6.78328} +\pgfmath@def{acos}{994}{6.27958} \pgfmath@def{acos}{995}{5.73196} +\pgfmath@def{acos}{996}{5.12640} \pgfmath@def{acos}{997}{4.43922} +\pgfmath@def{acos}{998}{3.62430} \pgfmath@def{acos}{999}{2.56255} +\pgfmath@def{acos}{1000}{0.00000}
\ No newline at end of file diff --git a/Master/texmf-dist/tex/generic/pgf/math/pgfmathutil.code.tex b/Master/texmf-dist/tex/generic/pgf/math/pgfmathutil.code.tex new file mode 100644 index 00000000000..07a573c54ba --- /dev/null +++ b/Master/texmf-dist/tex/generic/pgf/math/pgfmathutil.code.tex @@ -0,0 +1,198 @@ +% This file defines utilities common to the \pgfmath files. +% +% (c) 2007 Mark Wibrow +% +% but subject to the LaTeX Project Public License +% (http://www.latex-project.org/lppl.txt) +% +% and the GNU Public License +% (http://www.gnu.org/licenses/gpl.txt) +% +% Version 0.0 08/03/2007 + +% Alias some pgf stuff, just in case it needs replacing later. +% +\let\pgfmath@x\pgf@x +\let\pgfmath@xa\pgf@xa +\let\pgfmath@xb\pgf@xb +\let\pgfmath@xc\pgf@xc + +\let\pgfmath@y\pgf@y +\let\pgfmath@ya\pgf@ya +\let\pgfmath@yb\pgf@yb +\let\pgfmath@yc\pgf@yc + +\let\c@pgfmath@counta\c@pgf@counta +\let\c@pgfmath@countb\c@pgf@countb +\let\c@pgfmath@countc\c@pgf@countc + +\let\pgfmath@ifnextchar\pgfutil@ifnextchar + +\let\pgfmath@tonumber\pgf@sys@tonumber + +\let\pgfmath@ifundefined\pgfutil@ifundefined + +\newif\ifpgfmath@in@ +\def\pgfmath@in@#1#2{% + \def\pgfmath@in@@##1#1##2##3\pgfmath@in@@{% + \ifx\pgfmath@in@##2\pgfmath@in@false\else\pgfmath@in@true\fi}% + \pgfmath@in@@#2#1\pgfmath@in@\pgfmath@in@@} + +% Need to redefine to something more appropriate...? +% +\def\pgfmath@error#1#2{\PackageError{PGF Math}{#1}{#2}} +\def\pgfmath@warning#1#2{\PackageWarning{PGF Math}{#1}{#2}} + +% \pgfmath@pt +% +% Needed to test for 'pt' resulting from +% expansion using \the. +% +{\catcode`\p=12\catcode`\t=12\gdef\PgfmaTh@PT{pt}} +\edef\pgfmath@pt{\PgfmaTh@PT}% + +% \pgfmath@ifin@ +% +% Interface for \pgfutil@in@ +% +\def\pgfmath@ifin@#1#2{% + \pgfutil@in@{#1}{#2}% + \ifpgfutil@in@% + \expandafter\pgfmath@firstoftwo% + \else% + \expandafter\pgfmath@secondoftwo% + \fi% +} + +% \pgfmath@empty +% +% A handy macro. +% +\def\pgfmath@empty{} + + +% \ifpgfmath@empty +% +% Has #1 been let to \pgf@empty? +% +\def\ifpgfmath@empty#1{% + \ifx#1\pgfmath@empty\relax + \expandafter\pgfmath@firstoftwo% + \else% + \expandafter\pgfmath@secondoftwo% + \fi% +} +\def\pgfmath@firstoftwo#1#2{#1} +\def\pgfmath@secondoftwo#1#2{#2} + +% \ifpgfmath@ifletto +% +% Has #1 been let to #2? +% +\def\pgfmath@ifletto#1#2{% + \ifx#1#2\relax% + \expandafter\pgfmath@firstoftwo% + \else% + \expandafter\pgfmath@secondoftwo% + \fi% +} + +% \ifpgfmath@iflettoeither +% +% Has #1 been let to #2 or #3? +% +\def\pgfmath@iflettoeither#1#2#3{% + \ifx#1#2\relax% + \let\pgfmath@equaltoeithernext\pgfmath@firstoftwo% + \else% + \ifx#1#3\relax% + \let\pgfmath@equaltoeithernext\pgfmath@firstoftwo% + \else% + \let\pgfmath@equaltoeithernext\pgfmath@secondoftwo% + \fi% + \fi% + \pgfmath@equaltoeithernext% +} + +% \pgfmath@gobbletilpgfmath@ +% +% Gobble stream until \pgfmath@ {which is undefined}. +% +\def\pgfmath@gobbletilpgfmath@#1\pgfmath@{} +\def\pgfmath@gobbleone#1{}% + + +% \pgfmathloop +% +% A version of the standard TeX and LaTeX +% \loop, with an additional macro \pgfmathcounter +% (which is *not* a TeX counter) which keeps +% track of the iterations. +% +\newif\ifpgfmathcontinueloop +\def\pgfmathloop#1\repeatpgfmathloop{% + \def\pgfmathcounter{1}% + \def\pgfmath@iterate{% + #1\relax% + {% Do this inside a group, just in case... + \c@pgfmath@counta=\pgfmathcounter% + \advance\c@pgfmath@counta by1\relax% + \xdef\pgfmathloop@temp{\the\c@pgfmath@counta}% + }% + \edef\pgfmathcounter{\pgfmathloop@temp}% + \expandafter\pgfmath@iterate\fi}% + \pgfmath@iterate\let\pgfmath@iterate=\relax} +\let\repeatpgfmathloop=\fi + + +% \pgfmath@returnone +% +% \edef \pfgmathresult to the value of #1 after the end +% of a group. +% +% #1 - a dimension/count/skip register or a macro +% representing a number or dimension. +% +\def\pgfmath@returnone#1{% + \afterassignment\pgfmath@gobbletilpgfmath@% + \pgfmath@x#1pt\relax\pgfmath@% + \xdef\pgfmath@resulttemp{\pgf@sys@tonumber{\pgfmath@x}}% + \gdef\pgfmath@returnone@{% + \edef\pgfmathresult{\pgfmath@resulttemp}% + }% + \aftergroup\pgfmath@returnone@} + + +% \pgfmath@returntwo +% +% \edef \pfgmathresultx to the value of #1, and +% \pgfmathresulty to the value of #2, after the end +% of a group. +% +% #1 - a dimension/count/skip register or a macro +% representing a number or dimension. +% +% #2 - a dimension/count/skip register or a macro +% representing a number or dimension. +% +\def\pgfmath@returntwo#1#2{% + \afterassignment\pgfmath@gobbletilpgfmath@% + \pgfmath@x#1pt\relax\pgfmath@% + \xdef\pgfmath@resulttempx{\pgf@sys@tonumber{\pgfmath@x}}% + \afterassignment\pgfmath@gobbletilpgfmath@% + \pgfmath@x#2pt\relax\pgfmath@% + \xdef\pgfmath@resulttempx{\pgf@sys@tonumber{\pgfmath@x}}% + \gdef\pgfmath@returntwo@{% + \edef\pgfmathresultx{\pgfmath@resulttempx}% + \edef\pgfmathresulty{\pgfmath@resulttempy}% + }% + \aftergroup\pgfmath@returntwo@} + +% \pgfmath@smuggleone +% +% Summgle a macro outside a group. +% +\def\pgfmath@smuggleone#1{% + \xdef\pgfmath@smuggleditem{#1}% + \gdef\pgfmath@@smuggleone{\edef#1{\pgfmath@smuggleditem}}% + \aftergroup\pgfmath@@smuggleone}
\ No newline at end of file |