summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/pgfmath-xfp
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2021-05-19 19:59:40 +0000
committerKarl Berry <karl@freefriends.org>2021-05-19 19:59:40 +0000
commit9779dc3d6af91c41ab3e004e56912cfb35d59b16 (patch)
tree92ce69bedb006e18552240939f8c6514dc92289f /Master/texmf-dist/tex/latex/pgfmath-xfp
parented20212d6b979dfa441f8f2b775b8362d5f8d64d (diff)
pgfmath-xfp (19may21)
git-svn-id: svn://tug.org/texlive/trunk@59268 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/pgfmath-xfp')
-rw-r--r--Master/texmf-dist/tex/latex/pgfmath-xfp/pgfmath-xfp.sty120
1 files changed, 120 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/pgfmath-xfp/pgfmath-xfp.sty b/Master/texmf-dist/tex/latex/pgfmath-xfp/pgfmath-xfp.sty
new file mode 100644
index 00000000000..9db3b69b313
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/pgfmath-xfp/pgfmath-xfp.sty
@@ -0,0 +1,120 @@
+%%
+%% This is file `pgfmath-xfp.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% pgfmath-xfp.dtx (with options: `pkg')
+%%
+%% --------------------------------------------------------------
+%% pgfmath-xfp -- define pgfmath functions using xfp
+%% E-mail: jspratte@yahoo.de
+%% Released under the LaTeX Project Public License v1.3c or later
+%% See http://www.latex-project.org/lppl.txt
+%% --------------------------------------------------------------
+%%
+%% Copyright (C) 2020-2021 Jonathan P. Spratte
+%%
+%% This work may be distributed and/or modified under the conditions of the
+%% LaTeX Project Public License (LPPL), either version 1.3c of this license or
+%% (at your option) any later version. The latest version of this license is in
+%% the file:
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% This work is "maintained" (as per LPPL maintenance status) by
+%% Jonathan P. Spratte.
+%%
+%% This work consists of the file pgfmath-xfp.dtx
+%% and the derived files pgfmath-xfp.pdf
+%% pgfmath-xfp.sty
+%%
+\providecommand\DeclareRelease[3]{}
+\providecommand\DeclareCurrentRelease[2]{}
+\DeclareCurrentRelease{}{2021-05-19}
+\@ifundefined{ExplFileDate}
+ {\RequirePackage{expl3}}
+ {}
+\RequirePackage{pgfmath}
+\usepgflibrary{fpu}
+\newcommand*\pgfmxfpDate{2021-05-19}
+\newcommand*\pgfmxfpVersion{1.0}
+\ProvidesExplPackage
+ {pgfmath-xfp} {\pgfmxfpDate}
+ {\pgfmxfpVersion} {define pgfmath functions using xfp}
+\NewDocumentCommand \pgfmxfpdeclarefunction { m m o m }
+ {
+ \IfValueTF {#3}
+ { \pgfmxfp_declare_processed_args:nnnn {#1} {#2} {#3} }
+ { \pgfmxfp_declare:nnn {#1} {#2} }
+ {#4}
+ }
+\cs_new_protected:Npn \pgfmxfp_declare:nnn #1#2#3
+ {
+ \__pgfmxfp_initialize_body:
+ \int_step_inline:nn {#2}
+ {
+ \tl_put_right:Nx \l__pgfmxfp_function_body_tl
+ {
+ \exp_not:n { \pgfmathsetmacro } \exp_not:c { __pgfmxfp_arg##1 }
+ { \exp_not:n {####} ##1 }
+ }
+ }
+ \__pgfmxfp_define_function:nnnn {#2} {#1} {#2} {#3}
+ }
+\cs_new_protected:Npn \pgfmxfp_declare_processed_args:nnnn #1#2#3#4
+ {
+ \__pgfmxfp_initialize_body:
+ \int_zero:N \l__pgfmxfp_args_int
+ \clist_map_inline:nn {#3}
+ {
+ \int_incr:N \l__pgfmxfp_args_int
+ \tl_put_right:Nx \l__pgfmxfp_function_body_tl
+ {
+ \exp_not:n { \pgfmathsetmacro }
+ \exp_not:c { __pgfmxfp_arg \int_use:N \l__pgfmxfp_args_int }
+ { \exp_not:n {##1} }
+ }
+ }
+ \exp_args:NV \__pgfmxfp_define_function:nnnn \l__pgfmxfp_args_int {#1} {#2} {#4}
+ }
+\tl_new:N \l__pgfmxfp_function_body_tl
+\int_new:N \l__pgfmxfp_args_int
+\cs_new_protected:Npn \__pgfmxfp_initialize_body:
+ {
+ \tl_set:Nn \l__pgfmxfp_function_body_tl
+ {
+ \group_begin:
+ \pgfkeys{/pgf/fpu=true, /pgf/fpu/output~format=sci}%
+ }
+ }
+\cs_new_protected:Npn \__pgfmxfp_define_function:nnnn #1#2#3#4
+ {
+ \__pgfmxfp_define_internal_function:nnn {#1} {#2} {#4}
+ \tl_put_right:Nx \l__pgfmxfp_function_body_tl
+ {
+ \use:x
+ {
+ \exp_not:c { __pgfmxfp_function_ #2 _cmd }
+ \int_step_function:nN {#1} \__pgfmxfp_define_function_aux:n
+ }
+ }
+ \exp_args:Nnno
+ \pgfmathdeclarefunction {#2} {#3} \l__pgfmxfp_function_body_tl
+ }
+\cs_new:Npn \__pgfmxfp_define_function_aux:n #1 { { \exp_not:c { __pgfmxfp_arg#1 } } }
+\cs_new_protected:Npn \__pgfmxfp_define_internal_function:nnn #1#2#3
+ {
+ \exp_last_unbraced:Nx
+ \cs_set_protected:cpn
+ {
+ { __pgfmxfp_function_ #2 _cmd }
+ \int_step_function:nN {#1} \__pgfmxfp_define_internal_function_aux:n
+ }
+ { \group_end: \exp_args:Nf \pgfmathparse { \fp_eval:n {#3} } }
+ }
+\cs_new:Npn \__pgfmxfp_define_internal_function_aux:n #1 { \exp_not:n {## #1} }
+\ExplSyntaxOff
+%%
+%%
+%% End of file `pgfmath-xfp.sty'.