[latex3-commits] [git/LaTeX3-latex3-latex3] master: Implement tuple addition, subtraction and negation (7dc60e2)

Bruno Le Floch bruno at le-floch.fr
Mon Feb 12 03:02:34 CET 2018


Repository : https://github.com/latex3/latex3
On branch  : master
Link       : https://github.com/latex3/latex3/commit/7dc60e2bd47ad841d68acb6fc4488e16a6a2466f

>---------------------------------------------------------------

commit 7dc60e2bd47ad841d68acb6fc4488e16a6a2466f
Author: Bruno Le Floch <bruno at le-floch.fr>
Date:   Sun Feb 11 12:43:45 2018 -0500

    Implement tuple addition, subtraction and negation


>---------------------------------------------------------------

7dc60e2bd47ad841d68acb6fc4488e16a6a2466f
 l3kernel/l3fp-basics.dtx                |   77 ++++++++++++++++++++++++++++++-
 l3kernel/l3fp-parse.dtx                 |   55 ++++++++++++++++++++++
 l3kernel/testfiles/m3expl001.luatex.tlg |   12 +++++
 l3kernel/testfiles/m3expl001.ptex.tlg   |   12 +++++
 l3kernel/testfiles/m3expl001.tlg        |   12 +++++
 l3kernel/testfiles/m3expl001.uptex.tlg  |   12 +++++
 l3kernel/testfiles/m3expl001.xetex.tlg  |   12 +++++
 l3kernel/testfiles/m3expl003.luatex.tlg |   12 +++++
 l3kernel/testfiles/m3expl003.ptex.tlg   |   12 +++++
 l3kernel/testfiles/m3expl003.tlg        |   12 +++++
 l3kernel/testfiles/m3expl003.uptex.tlg  |   12 +++++
 l3kernel/testfiles/m3expl003.xetex.tlg  |   12 +++++
 12 files changed, 251 insertions(+), 1 deletion(-)

diff --git a/l3kernel/l3fp-basics.dtx b/l3kernel/l3fp-basics.dtx
index 8f7e365..bb7bbf6 100644
--- a/l3kernel/l3fp-basics.dtx
+++ b/l3kernel/l3fp-basics.dtx
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-%% File: l3fp-basics.dtx Copyright (C) 2011-2014,2016,2017 The LaTeX3 Project
+%% File: l3fp-basics.dtx Copyright (C) 2011-2014,2016-2018 The LaTeX3 Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -2068,6 +2068,81 @@
 %    \end{macrocode}
 % \end{macro}
 %
+% \subsection{Operations on tuples}
+%
+% \begin{macro}[EXP]{\@@_tuple_set_sign_o:w}
+% \begin{macro}[EXP]{\@@_tuple_set_sign_aux_o:Nnw, \@@_tuple_set_sign_aux_o:w}
+%   Two cases: |abs(|\meta{tuple}|)| for which |#1| is $0$ (invalid for
+%   tuples) and |-|\meta{tuple} for which |#1| is $2$.  In that case,
+%   map over all items in the tuple an auxiliary that dispatches to the
+%   type-appropriate sign-flipping function.
+%    \begin{macrocode}
+\cs_new:Npn \@@_tuple_set_sign_o:w #1
+  {
+    \if_meaning:w 2 #1
+      \exp_after:wN \@@_tuple_set_sign_aux_o:Nnw
+    \fi:
+    \@@_invalid_operation_o:nw { abs }
+  }
+\cs_new:Npn \@@_tuple_set_sign_aux_o:Nnw #1#2#3 @
+  { \@@_tuple_map_o:Nw \@@_tuple_set_sign_aux_o:w #3 }
+\cs_new:Npn \@@_tuple_set_sign_aux_o:w #1#2 ;
+  {
+    \@@_change_func_type:NNN #1 \@@_set_sign_o:w
+      \@@_parse_apply_unary_error:NNw
+    2 #1 #2 ; @
+  }
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}[EXP]{\@@_tuple_+_tuple_o:ww, \@@_tuple_-_tuple_o:ww}
+% \begin{macro}[EXP]{\@@_add_tuple_aux_o:ww, \@@_sub_tuple_aux_o:ww}
+% \begin{macro}[EXP]{\@@_add_tuple_aux_o:Nww}
+%   Check the two tuples have the same number of items and map through
+%   these a helper that dispatches appropriately depending on the types.
+%   This means |(1,2)+((1,1),2)| gives |(nan,4)|.
+%    \begin{macrocode}
+\cs_set_protected:Npn \@@_tmp:w #1#2
+  {
+    \cs_new:cpn { @@_tuple_#1_tuple_o:ww }
+        \s_@@_tuple \@@_tuple_chk:w ##1 ;
+        \s_@@_tuple \@@_tuple_chk:w ##2 ;
+      {
+        \if_int_compare:w
+            \@@_array_count:n {##1} = \@@_array_count:n {##2} \exp_stop_f:
+          \exp_after:wN \@@_tuple_mapthread_o:Nww
+          \exp_after:wN #2
+        \else:
+          \exp_after:wN \@@_invalid_operation_o:Nww
+          \exp_after:wN #1
+        \fi:
+        \s_@@_tuple \@@_tuple_chk:w {##1} ;
+        \s_@@_tuple \@@_tuple_chk:w {##2} ;
+      }
+  }
+\@@_tmp:w + \@@_add_tuple_aux_o:ww
+\@@_tmp:w - \@@_sub_tuple_aux_o:ww
+\cs_new:Npn \@@_add_tuple_aux_o:ww { \@@_add_tuple_aux_o:Nww + }
+\cs_new:Npn \@@_sub_tuple_aux_o:ww { \@@_add_tuple_aux_o:Nww - }
+\cs_new:Npn \@@_add_tuple_aux_o:Nww #1 #2#3 ; #4#5 ;
+  {
+    \exp_after:wN \@@_parse_apply_binary_chk:NN
+      \cs:w
+        @@
+        \@@_type_from_scan:N #2
+        _ #1
+        \@@_type_from_scan:N #4
+        _o:ww
+      \cs_end:
+      #1
+    #2 #3 ; #4 #5 ;
+  }
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
 %    \begin{macrocode}
 %</initex|package>
 %    \end{macrocode}
diff --git a/l3kernel/l3fp-parse.dtx b/l3kernel/l3fp-parse.dtx
index e1517c5..8ee8861 100644
--- a/l3kernel/l3fp-parse.dtx
+++ b/l3kernel/l3fp-parse.dtx
@@ -2685,6 +2685,61 @@
 % \end{macro}
 % \end{macro}
 %
+% \begin{macro}[EXP]{\@@_tuple_map_o:Nw, \@@_tuple_map_loop_o:Nw}
+%   Apply |#1| to all items in the following tuple and expand once
+%   afterwards.  The function |#1| should itself expand once after its
+%   result.
+%    \begin{macrocode}
+\cs_new:Npn \@@_tuple_map_o:Nw #1 \s_@@_tuple \@@_tuple_chk:w #2 ;
+  {
+    \exp_after:wN \s_@@_tuple
+    \exp_after:wN \@@_tuple_chk:w
+    \exp_after:wN {
+      \exp:w \exp_end_continue_f:w
+      \@@_tuple_map_loop_o:Nw #1 #2
+        { \s_@@ \__prg_break: } ;
+      \__prg_break_point:
+    \exp_after:wN } \exp_after:wN ;
+  }
+\cs_new:Npn \@@_tuple_map_loop_o:Nw #1#2#3 ;
+  {
+    \use_none:n #2
+    #1 #2 #3 ;
+    \exp:w \exp_end_continue_f:w
+    \@@_tuple_map_loop_o:Nw #1
+  }
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[EXP]{\@@_tuple_mapthread_o:Nww, \@@_tuple_mapthread_loop_o:Nw}
+%   Apply |#1| to pairs of items in the two following tuples and expand once
+%   afterwards.
+%    \begin{macrocode}
+\cs_new:Npn \@@_tuple_mapthread_o:Nww #1
+    \s_@@_tuple \@@_tuple_chk:w #2 ;
+    \s_@@_tuple \@@_tuple_chk:w #3 ;
+  {
+    \exp_after:wN \s_@@_tuple
+    \exp_after:wN \@@_tuple_chk:w
+    \exp_after:wN {
+      \exp:w \exp_end_continue_f:w
+      \@@_tuple_mapthread_loop_o:Nw #1
+        #2 { \s_@@ \__prg_break: } ; @
+        #3 { \s_@@ \__prg_break: } ;
+      \__prg_break_point:
+    \exp_after:wN } \exp_after:wN ;
+  }
+\cs_new:Npn \@@_tuple_mapthread_loop_o:Nw #1#2#3 ; #4 @ #5#6 ;
+  {
+    \use_none:n #2
+    \use_none:n #5
+    #1 #2 #3 ; #5 #6 ;
+    \exp:w \exp_end_continue_f:w
+    \@@_tuple_mapthread_loop_o:Nw #1 #4 @
+  }
+%    \end{macrocode}
+% \end{macro}
+%
 % \subsection{Candidate: defining new \pkg{l3fp} functions}
 %
 % \begin{macro}[EXP]{\fp_function:Nw}
diff --git a/l3kernel/testfiles/m3expl001.luatex.tlg b/l3kernel/testfiles/m3expl001.luatex.tlg
index c432052..0524cf6 100644
--- a/l3kernel/testfiles/m3expl001.luatex.tlg
+++ b/l3kernel/testfiles/m3expl001.luatex.tlg
@@ -3956,6 +3956,10 @@ Defining \__fp_parse_function_one_two:nnw on line ...
 Defining \__fp_parse_function_one_two_error_o:w on line ...
 Defining \__fp_parse_function_one_two_aux:nnw on line ...
 Defining \__fp_parse_function_one_two_auxii:nnw on line ...
+Defining \__fp_tuple_map_o:Nw on line ...
+Defining \__fp_tuple_map_loop_o:Nw on line ...
+Defining \__fp_tuple_mapthread_o:Nww on line ...
+Defining \__fp_tuple_mapthread_loop_o:Nw on line ...
 Defining \fp_function:Nw on line ...
 Defining \fp_new_function:Npn on line ...
 Defining \__fp_new_function:NNnnn on line ...
@@ -4165,6 +4169,14 @@ Defining \__fp_sqrt_auxxiv_o:wnnnnnnnN on line ...
 Defining \__fp_sign_o:w on line ...
 Defining \__fp_sign_aux_o:w on line ...
 Defining \__fp_set_sign_o:w on line ...
+Defining \__fp_tuple_set_sign_o:w on line ...
+Defining \__fp_tuple_set_sign_aux_o:Nnw on line ...
+Defining \__fp_tuple_set_sign_aux_o:w on line ...
+Defining \__fp_tuple_+_tuple_o:ww on line ...
+Defining \__fp_tuple_-_tuple_o:ww on line ...
+Defining \__fp_add_tuple_aux_o:ww on line ...
+Defining \__fp_sub_tuple_aux_o:ww on line ...
+Defining \__fp_add_tuple_aux_o:Nww on line ...
 Defining \c__fp_one_fixed_tl on line ...
 Defining \__fp_fixed_continue:wn on line ...
 Defining \__fp_fixed_add_one:wN on line ...
diff --git a/l3kernel/testfiles/m3expl001.ptex.tlg b/l3kernel/testfiles/m3expl001.ptex.tlg
index b6eafeb..7e89e65 100644
--- a/l3kernel/testfiles/m3expl001.ptex.tlg
+++ b/l3kernel/testfiles/m3expl001.ptex.tlg
@@ -3944,6 +3944,10 @@ Defining \__fp_parse_function_one_two:nnw on line ...
 Defining \__fp_parse_function_one_two_error_o:w on line ...
 Defining \__fp_parse_function_one_two_aux:nnw on line ...
 Defining \__fp_parse_function_one_two_auxii:nnw on line ...
+Defining \__fp_tuple_map_o:Nw on line ...
+Defining \__fp_tuple_map_loop_o:Nw on line ...
+Defining \__fp_tuple_mapthread_o:Nww on line ...
+Defining \__fp_tuple_mapthread_loop_o:Nw on line ...
 Defining \fp_function:Nw on line ...
 Defining \fp_new_function:Npn on line ...
 Defining \__fp_new_function:NNnnn on line ...
@@ -4153,6 +4157,14 @@ Defining \__fp_sqrt_auxxiv_o:wnnnnnnnN on line ...
 Defining \__fp_sign_o:w on line ...
 Defining \__fp_sign_aux_o:w on line ...
 Defining \__fp_set_sign_o:w on line ...
+Defining \__fp_tuple_set_sign_o:w on line ...
+Defining \__fp_tuple_set_sign_aux_o:Nnw on line ...
+Defining \__fp_tuple_set_sign_aux_o:w on line ...
+Defining \__fp_tuple_+_tuple_o:ww on line ...
+Defining \__fp_tuple_-_tuple_o:ww on line ...
+Defining \__fp_add_tuple_aux_o:ww on line ...
+Defining \__fp_sub_tuple_aux_o:ww on line ...
+Defining \__fp_add_tuple_aux_o:Nww on line ...
 Defining \c__fp_one_fixed_tl on line ...
 Defining \__fp_fixed_continue:wn on line ...
 Defining \__fp_fixed_add_one:wN on line ...
diff --git a/l3kernel/testfiles/m3expl001.tlg b/l3kernel/testfiles/m3expl001.tlg
index 925cbda..e8399ff 100644
--- a/l3kernel/testfiles/m3expl001.tlg
+++ b/l3kernel/testfiles/m3expl001.tlg
@@ -3944,6 +3944,10 @@ Defining \__fp_parse_function_one_two:nnw on line ...
 Defining \__fp_parse_function_one_two_error_o:w on line ...
 Defining \__fp_parse_function_one_two_aux:nnw on line ...
 Defining \__fp_parse_function_one_two_auxii:nnw on line ...
+Defining \__fp_tuple_map_o:Nw on line ...
+Defining \__fp_tuple_map_loop_o:Nw on line ...
+Defining \__fp_tuple_mapthread_o:Nww on line ...
+Defining \__fp_tuple_mapthread_loop_o:Nw on line ...
 Defining \fp_function:Nw on line ...
 Defining \fp_new_function:Npn on line ...
 Defining \__fp_new_function:NNnnn on line ...
@@ -4153,6 +4157,14 @@ Defining \__fp_sqrt_auxxiv_o:wnnnnnnnN on line ...
 Defining \__fp_sign_o:w on line ...
 Defining \__fp_sign_aux_o:w on line ...
 Defining \__fp_set_sign_o:w on line ...
+Defining \__fp_tuple_set_sign_o:w on line ...
+Defining \__fp_tuple_set_sign_aux_o:Nnw on line ...
+Defining \__fp_tuple_set_sign_aux_o:w on line ...
+Defining \__fp_tuple_+_tuple_o:ww on line ...
+Defining \__fp_tuple_-_tuple_o:ww on line ...
+Defining \__fp_add_tuple_aux_o:ww on line ...
+Defining \__fp_sub_tuple_aux_o:ww on line ...
+Defining \__fp_add_tuple_aux_o:Nww on line ...
 Defining \c__fp_one_fixed_tl on line ...
 Defining \__fp_fixed_continue:wn on line ...
 Defining \__fp_fixed_add_one:wN on line ...
diff --git a/l3kernel/testfiles/m3expl001.uptex.tlg b/l3kernel/testfiles/m3expl001.uptex.tlg
index 1ace2d8..28594c8 100644
--- a/l3kernel/testfiles/m3expl001.uptex.tlg
+++ b/l3kernel/testfiles/m3expl001.uptex.tlg
@@ -3944,6 +3944,10 @@ Defining \__fp_parse_function_one_two:nnw on line ...
 Defining \__fp_parse_function_one_two_error_o:w on line ...
 Defining \__fp_parse_function_one_two_aux:nnw on line ...
 Defining \__fp_parse_function_one_two_auxii:nnw on line ...
+Defining \__fp_tuple_map_o:Nw on line ...
+Defining \__fp_tuple_map_loop_o:Nw on line ...
+Defining \__fp_tuple_mapthread_o:Nww on line ...
+Defining \__fp_tuple_mapthread_loop_o:Nw on line ...
 Defining \fp_function:Nw on line ...
 Defining \fp_new_function:Npn on line ...
 Defining \__fp_new_function:NNnnn on line ...
@@ -4153,6 +4157,14 @@ Defining \__fp_sqrt_auxxiv_o:wnnnnnnnN on line ...
 Defining \__fp_sign_o:w on line ...
 Defining \__fp_sign_aux_o:w on line ...
 Defining \__fp_set_sign_o:w on line ...
+Defining \__fp_tuple_set_sign_o:w on line ...
+Defining \__fp_tuple_set_sign_aux_o:Nnw on line ...
+Defining \__fp_tuple_set_sign_aux_o:w on line ...
+Defining \__fp_tuple_+_tuple_o:ww on line ...
+Defining \__fp_tuple_-_tuple_o:ww on line ...
+Defining \__fp_add_tuple_aux_o:ww on line ...
+Defining \__fp_sub_tuple_aux_o:ww on line ...
+Defining \__fp_add_tuple_aux_o:Nww on line ...
 Defining \c__fp_one_fixed_tl on line ...
 Defining \__fp_fixed_continue:wn on line ...
 Defining \__fp_fixed_add_one:wN on line ...
diff --git a/l3kernel/testfiles/m3expl001.xetex.tlg b/l3kernel/testfiles/m3expl001.xetex.tlg
index 3be377c..59ccd90 100644
--- a/l3kernel/testfiles/m3expl001.xetex.tlg
+++ b/l3kernel/testfiles/m3expl001.xetex.tlg
@@ -3954,6 +3954,10 @@ Defining \__fp_parse_function_one_two:nnw on line ...
 Defining \__fp_parse_function_one_two_error_o:w on line ...
 Defining \__fp_parse_function_one_two_aux:nnw on line ...
 Defining \__fp_parse_function_one_two_auxii:nnw on line ...
+Defining \__fp_tuple_map_o:Nw on line ...
+Defining \__fp_tuple_map_loop_o:Nw on line ...
+Defining \__fp_tuple_mapthread_o:Nww on line ...
+Defining \__fp_tuple_mapthread_loop_o:Nw on line ...
 Defining \fp_function:Nw on line ...
 Defining \fp_new_function:Npn on line ...
 Defining \__fp_new_function:NNnnn on line ...
@@ -4163,6 +4167,14 @@ Defining \__fp_sqrt_auxxiv_o:wnnnnnnnN on line ...
 Defining \__fp_sign_o:w on line ...
 Defining \__fp_sign_aux_o:w on line ...
 Defining \__fp_set_sign_o:w on line ...
+Defining \__fp_tuple_set_sign_o:w on line ...
+Defining \__fp_tuple_set_sign_aux_o:Nnw on line ...
+Defining \__fp_tuple_set_sign_aux_o:w on line ...
+Defining \__fp_tuple_+_tuple_o:ww on line ...
+Defining \__fp_tuple_-_tuple_o:ww on line ...
+Defining \__fp_add_tuple_aux_o:ww on line ...
+Defining \__fp_sub_tuple_aux_o:ww on line ...
+Defining \__fp_add_tuple_aux_o:Nww on line ...
 Defining \c__fp_one_fixed_tl on line ...
 Defining \__fp_fixed_continue:wn on line ...
 Defining \__fp_fixed_add_one:wN on line ...
diff --git a/l3kernel/testfiles/m3expl003.luatex.tlg b/l3kernel/testfiles/m3expl003.luatex.tlg
index c432052..0524cf6 100644
--- a/l3kernel/testfiles/m3expl003.luatex.tlg
+++ b/l3kernel/testfiles/m3expl003.luatex.tlg
@@ -3956,6 +3956,10 @@ Defining \__fp_parse_function_one_two:nnw on line ...
 Defining \__fp_parse_function_one_two_error_o:w on line ...
 Defining \__fp_parse_function_one_two_aux:nnw on line ...
 Defining \__fp_parse_function_one_two_auxii:nnw on line ...
+Defining \__fp_tuple_map_o:Nw on line ...
+Defining \__fp_tuple_map_loop_o:Nw on line ...
+Defining \__fp_tuple_mapthread_o:Nww on line ...
+Defining \__fp_tuple_mapthread_loop_o:Nw on line ...
 Defining \fp_function:Nw on line ...
 Defining \fp_new_function:Npn on line ...
 Defining \__fp_new_function:NNnnn on line ...
@@ -4165,6 +4169,14 @@ Defining \__fp_sqrt_auxxiv_o:wnnnnnnnN on line ...
 Defining \__fp_sign_o:w on line ...
 Defining \__fp_sign_aux_o:w on line ...
 Defining \__fp_set_sign_o:w on line ...
+Defining \__fp_tuple_set_sign_o:w on line ...
+Defining \__fp_tuple_set_sign_aux_o:Nnw on line ...
+Defining \__fp_tuple_set_sign_aux_o:w on line ...
+Defining \__fp_tuple_+_tuple_o:ww on line ...
+Defining \__fp_tuple_-_tuple_o:ww on line ...
+Defining \__fp_add_tuple_aux_o:ww on line ...
+Defining \__fp_sub_tuple_aux_o:ww on line ...
+Defining \__fp_add_tuple_aux_o:Nww on line ...
 Defining \c__fp_one_fixed_tl on line ...
 Defining \__fp_fixed_continue:wn on line ...
 Defining \__fp_fixed_add_one:wN on line ...
diff --git a/l3kernel/testfiles/m3expl003.ptex.tlg b/l3kernel/testfiles/m3expl003.ptex.tlg
index b6eafeb..7e89e65 100644
--- a/l3kernel/testfiles/m3expl003.ptex.tlg
+++ b/l3kernel/testfiles/m3expl003.ptex.tlg
@@ -3944,6 +3944,10 @@ Defining \__fp_parse_function_one_two:nnw on line ...
 Defining \__fp_parse_function_one_two_error_o:w on line ...
 Defining \__fp_parse_function_one_two_aux:nnw on line ...
 Defining \__fp_parse_function_one_two_auxii:nnw on line ...
+Defining \__fp_tuple_map_o:Nw on line ...
+Defining \__fp_tuple_map_loop_o:Nw on line ...
+Defining \__fp_tuple_mapthread_o:Nww on line ...
+Defining \__fp_tuple_mapthread_loop_o:Nw on line ...
 Defining \fp_function:Nw on line ...
 Defining \fp_new_function:Npn on line ...
 Defining \__fp_new_function:NNnnn on line ...
@@ -4153,6 +4157,14 @@ Defining \__fp_sqrt_auxxiv_o:wnnnnnnnN on line ...
 Defining \__fp_sign_o:w on line ...
 Defining \__fp_sign_aux_o:w on line ...
 Defining \__fp_set_sign_o:w on line ...
+Defining \__fp_tuple_set_sign_o:w on line ...
+Defining \__fp_tuple_set_sign_aux_o:Nnw on line ...
+Defining \__fp_tuple_set_sign_aux_o:w on line ...
+Defining \__fp_tuple_+_tuple_o:ww on line ...
+Defining \__fp_tuple_-_tuple_o:ww on line ...
+Defining \__fp_add_tuple_aux_o:ww on line ...
+Defining \__fp_sub_tuple_aux_o:ww on line ...
+Defining \__fp_add_tuple_aux_o:Nww on line ...
 Defining \c__fp_one_fixed_tl on line ...
 Defining \__fp_fixed_continue:wn on line ...
 Defining \__fp_fixed_add_one:wN on line ...
diff --git a/l3kernel/testfiles/m3expl003.tlg b/l3kernel/testfiles/m3expl003.tlg
index 925cbda..e8399ff 100644
--- a/l3kernel/testfiles/m3expl003.tlg
+++ b/l3kernel/testfiles/m3expl003.tlg
@@ -3944,6 +3944,10 @@ Defining \__fp_parse_function_one_two:nnw on line ...
 Defining \__fp_parse_function_one_two_error_o:w on line ...
 Defining \__fp_parse_function_one_two_aux:nnw on line ...
 Defining \__fp_parse_function_one_two_auxii:nnw on line ...
+Defining \__fp_tuple_map_o:Nw on line ...
+Defining \__fp_tuple_map_loop_o:Nw on line ...
+Defining \__fp_tuple_mapthread_o:Nww on line ...
+Defining \__fp_tuple_mapthread_loop_o:Nw on line ...
 Defining \fp_function:Nw on line ...
 Defining \fp_new_function:Npn on line ...
 Defining \__fp_new_function:NNnnn on line ...
@@ -4153,6 +4157,14 @@ Defining \__fp_sqrt_auxxiv_o:wnnnnnnnN on line ...
 Defining \__fp_sign_o:w on line ...
 Defining \__fp_sign_aux_o:w on line ...
 Defining \__fp_set_sign_o:w on line ...
+Defining \__fp_tuple_set_sign_o:w on line ...
+Defining \__fp_tuple_set_sign_aux_o:Nnw on line ...
+Defining \__fp_tuple_set_sign_aux_o:w on line ...
+Defining \__fp_tuple_+_tuple_o:ww on line ...
+Defining \__fp_tuple_-_tuple_o:ww on line ...
+Defining \__fp_add_tuple_aux_o:ww on line ...
+Defining \__fp_sub_tuple_aux_o:ww on line ...
+Defining \__fp_add_tuple_aux_o:Nww on line ...
 Defining \c__fp_one_fixed_tl on line ...
 Defining \__fp_fixed_continue:wn on line ...
 Defining \__fp_fixed_add_one:wN on line ...
diff --git a/l3kernel/testfiles/m3expl003.uptex.tlg b/l3kernel/testfiles/m3expl003.uptex.tlg
index 1ace2d8..28594c8 100644
--- a/l3kernel/testfiles/m3expl003.uptex.tlg
+++ b/l3kernel/testfiles/m3expl003.uptex.tlg
@@ -3944,6 +3944,10 @@ Defining \__fp_parse_function_one_two:nnw on line ...
 Defining \__fp_parse_function_one_two_error_o:w on line ...
 Defining \__fp_parse_function_one_two_aux:nnw on line ...
 Defining \__fp_parse_function_one_two_auxii:nnw on line ...
+Defining \__fp_tuple_map_o:Nw on line ...
+Defining \__fp_tuple_map_loop_o:Nw on line ...
+Defining \__fp_tuple_mapthread_o:Nww on line ...
+Defining \__fp_tuple_mapthread_loop_o:Nw on line ...
 Defining \fp_function:Nw on line ...
 Defining \fp_new_function:Npn on line ...
 Defining \__fp_new_function:NNnnn on line ...
@@ -4153,6 +4157,14 @@ Defining \__fp_sqrt_auxxiv_o:wnnnnnnnN on line ...
 Defining \__fp_sign_o:w on line ...
 Defining \__fp_sign_aux_o:w on line ...
 Defining \__fp_set_sign_o:w on line ...
+Defining \__fp_tuple_set_sign_o:w on line ...
+Defining \__fp_tuple_set_sign_aux_o:Nnw on line ...
+Defining \__fp_tuple_set_sign_aux_o:w on line ...
+Defining \__fp_tuple_+_tuple_o:ww on line ...
+Defining \__fp_tuple_-_tuple_o:ww on line ...
+Defining \__fp_add_tuple_aux_o:ww on line ...
+Defining \__fp_sub_tuple_aux_o:ww on line ...
+Defining \__fp_add_tuple_aux_o:Nww on line ...
 Defining \c__fp_one_fixed_tl on line ...
 Defining \__fp_fixed_continue:wn on line ...
 Defining \__fp_fixed_add_one:wN on line ...
diff --git a/l3kernel/testfiles/m3expl003.xetex.tlg b/l3kernel/testfiles/m3expl003.xetex.tlg
index 3be377c..59ccd90 100644
--- a/l3kernel/testfiles/m3expl003.xetex.tlg
+++ b/l3kernel/testfiles/m3expl003.xetex.tlg
@@ -3954,6 +3954,10 @@ Defining \__fp_parse_function_one_two:nnw on line ...
 Defining \__fp_parse_function_one_two_error_o:w on line ...
 Defining \__fp_parse_function_one_two_aux:nnw on line ...
 Defining \__fp_parse_function_one_two_auxii:nnw on line ...
+Defining \__fp_tuple_map_o:Nw on line ...
+Defining \__fp_tuple_map_loop_o:Nw on line ...
+Defining \__fp_tuple_mapthread_o:Nww on line ...
+Defining \__fp_tuple_mapthread_loop_o:Nw on line ...
 Defining \fp_function:Nw on line ...
 Defining \fp_new_function:Npn on line ...
 Defining \__fp_new_function:NNnnn on line ...
@@ -4163,6 +4167,14 @@ Defining \__fp_sqrt_auxxiv_o:wnnnnnnnN on line ...
 Defining \__fp_sign_o:w on line ...
 Defining \__fp_sign_aux_o:w on line ...
 Defining \__fp_set_sign_o:w on line ...
+Defining \__fp_tuple_set_sign_o:w on line ...
+Defining \__fp_tuple_set_sign_aux_o:Nnw on line ...
+Defining \__fp_tuple_set_sign_aux_o:w on line ...
+Defining \__fp_tuple_+_tuple_o:ww on line ...
+Defining \__fp_tuple_-_tuple_o:ww on line ...
+Defining \__fp_add_tuple_aux_o:ww on line ...
+Defining \__fp_sub_tuple_aux_o:ww on line ...
+Defining \__fp_add_tuple_aux_o:Nww on line ...
 Defining \c__fp_one_fixed_tl on line ...
 Defining \__fp_fixed_continue:wn on line ...
 Defining \__fp_fixed_add_one:wN on line ...





More information about the latex3-commits mailing list