[latex3-commits] [git/LaTeX3-latex3-latex3] master: Implement multiplication and division of tuple by a number (c0da09f)
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/c0da09f02160aa3928b30692ae45c6c25501e113
>---------------------------------------------------------------
commit c0da09f02160aa3928b30692ae45c6c25501e113
Author: Bruno Le Floch <bruno at le-floch.fr>
Date: Sun Feb 11 15:52:59 2018 -0500
Implement multiplication and division of tuple by a number
>---------------------------------------------------------------
c0da09f02160aa3928b30692ae45c6c25501e113
l3kernel/l3fp-basics.dtx | 55 +++++++++++++-----------------
l3kernel/l3fp-parse.dtx | 56 +++++++++++++++++++++++++------
l3kernel/testfiles/m3expl001.luatex.tlg | 16 +++++----
l3kernel/testfiles/m3expl001.ptex.tlg | 16 +++++----
l3kernel/testfiles/m3expl001.tlg | 16 +++++----
l3kernel/testfiles/m3expl001.uptex.tlg | 16 +++++----
l3kernel/testfiles/m3expl001.xetex.tlg | 16 +++++----
l3kernel/testfiles/m3expl003.luatex.tlg | 16 +++++----
l3kernel/testfiles/m3expl003.ptex.tlg | 16 +++++----
l3kernel/testfiles/m3expl003.tlg | 16 +++++----
l3kernel/testfiles/m3expl003.uptex.tlg | 16 +++++----
l3kernel/testfiles/m3expl003.xetex.tlg | 16 +++++----
l3kernel/testfiles/m3fp-parse001.tlg | 11 +-----
l3kernel/testfiles/m3fp-parse002.tlg | 22 ++----------
14 files changed, 162 insertions(+), 142 deletions(-)
diff --git a/l3kernel/l3fp-basics.dtx b/l3kernel/l3fp-basics.dtx
index bb7bbf6..ab3d696 100644
--- a/l3kernel/l3fp-basics.dtx
+++ b/l3kernel/l3fp-basics.dtx
@@ -2085,7 +2085,7 @@
\@@_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 }
+ { \@@_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
@@ -2096,52 +2096,45 @@
% \end{macro}
% \end{macro}
%
+% \begin{macro}[EXP]{\@@_*_tuple_o:ww, \@@_tuple_*_o:ww, \@@_tuple_/_o:ww}
+% For \meta{number}|*|\meta{tuple} and \meta{tuple}|*|\meta{number}
+% and \meta{tuple}|/|\meta{number}, loop through the \meta{tuple} some
+% code that multiplies or divides by the appropriate \meta{number}.
+% Importantly we need to dispatch according to the type, and we make
+% sure to apply the operator in the correct order.
+% \begin{macrocode}
+\cs_new:cpn { @@_*_tuple_o:ww } #1 ;
+ { \@@_tuple_map_o:nw { \@@_binary_type_o:Nww * #1 ; } }
+\cs_new:cpn { @@_tuple_*_o:ww } #1 ; #2 ;
+ { \@@_tuple_map_o:nw { \@@_binary_rev_type_o:Nww * #2 ; } #1 ; }
+\cs_new:cpn { @@_tuple_/_o:ww } #1 ; #2 ;
+ { \@@_tuple_map_o:nw { \@@_binary_rev_type_o:Nww / #2 ; } #1 ; }
+% \end{macrocode}
+% \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_set_protected:Npn \@@_tmp:w #1
{
\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:
+ \int_compare:nNnTF
+ { \@@_array_count:n {##1} } = { \@@_array_count:n {##2} }
+ { \@@_tuple_mapthread_o:nww { \@@_binary_type_o:Nww #1 } }
+ { \@@_invalid_operation_o:nww #1 }
\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 ;
- }
+\@@_tmp:w +
+\@@_tmp:w -
% \end{macrocode}
% \end{macro}
-% \end{macro}
-% \end{macro}
%
% \begin{macrocode}
%</initex|package>
diff --git a/l3kernel/l3fp-parse.dtx b/l3kernel/l3fp-parse.dtx
index 8ee8861..35b3a41 100644
--- a/l3kernel/l3fp-parse.dtx
+++ b/l3kernel/l3fp-parse.dtx
@@ -2176,6 +2176,40 @@
% \end{macro}
% \end{macro}
%
+% \begin{macro}[EXP]{\@@_binary_type_o:Nww, \@@_binary_rev_type_o:Nww}
+% Applies the operator |#1| to its two arguments, dispatching
+% according to their types, and expands once after the result.
+% The |rev| version swaps its arguments before doing this.
+% \begin{macrocode}
+\cs_new:Npn \@@_binary_type_o:Nww #1 #2#3 ; #4
+ {
+ \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
+ }
+\cs_new:Npn \@@_binary_rev_type_o:Nww #1 #2#3 ; #4#5 ;
+ {
+ \exp_after:wN \@@_parse_apply_binary_chk:NN
+ \cs:w
+ @@
+ \@@_type_from_scan:N #4
+ _ #1
+ \@@_type_from_scan:N #2
+ _o:ww
+ \cs_end:
+ #1
+ #4 #5 ; #2 #3 ;
+ }
+% \end{macrocode}
+% \end{macro}
+%
% \subsection{Infix operators}
%
% \begin{macro}[EXP]{\@@_parse_infix_after_operand:NwN}
@@ -2685,37 +2719,37 @@
% \end{macro}
% \end{macro}
%
-% \begin{macro}[EXP]{\@@_tuple_map_o:Nw, \@@_tuple_map_loop_o:Nw}
+% \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
+% afterwards. The code |#1| should itself expand once after its
% result.
% \begin{macrocode}
-\cs_new:Npn \@@_tuple_map_o:Nw #1 \s_@@_tuple \@@_tuple_chk:w #2 ;
+\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
+ \@@_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 ;
+\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
+ \@@_tuple_map_loop_o:nw {#1}
}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[EXP]{\@@_tuple_mapthread_o:Nww, \@@_tuple_mapthread_loop_o:Nw}
+% \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
+\cs_new:Npn \@@_tuple_mapthread_o:nww #1
\s_@@_tuple \@@_tuple_chk:w #2 ;
\s_@@_tuple \@@_tuple_chk:w #3 ;
{
@@ -2723,19 +2757,19 @@
\exp_after:wN \@@_tuple_chk:w
\exp_after:wN {
\exp:w \exp_end_continue_f:w
- \@@_tuple_mapthread_loop_o:Nw #1
+ \@@_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 ;
+\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 @
+ \@@_tuple_mapthread_loop_o:nw {#1} #4 @
}
% \end{macrocode}
% \end{macro}
diff --git a/l3kernel/testfiles/m3expl001.luatex.tlg b/l3kernel/testfiles/m3expl001.luatex.tlg
index 0524cf6..a50e600 100644
--- a/l3kernel/testfiles/m3expl001.luatex.tlg
+++ b/l3kernel/testfiles/m3expl001.luatex.tlg
@@ -3917,6 +3917,8 @@ Defining \__fp_parse_continue:NwN on line ...
Defining \__fp_parse_apply_binary:NwNwN on line ...
Defining \__fp_parse_apply_binary_chk:NN on line ...
Defining \__fp_parse_apply_binary_error:NNN on line ...
+Defining \__fp_binary_type_o:Nww on line ...
+Defining \__fp_binary_rev_type_o:Nww on line ...
Defining \__fp_parse_infix_after_operand:NwN on line ...
Defining \__fp_parse_infix:NN on line ...
Defining \__fp_parse_infix_check:NNN on line ...
@@ -3956,10 +3958,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_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 ...
@@ -4172,11 +4174,11 @@ 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_o:ww on line ...
+Defining \__fp_tuple_*_o:ww on line ...
+Defining \__fp_tuple_/_o:ww 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 7e89e65..a4bb059 100644
--- a/l3kernel/testfiles/m3expl001.ptex.tlg
+++ b/l3kernel/testfiles/m3expl001.ptex.tlg
@@ -3905,6 +3905,8 @@ Defining \__fp_parse_continue:NwN on line ...
Defining \__fp_parse_apply_binary:NwNwN on line ...
Defining \__fp_parse_apply_binary_chk:NN on line ...
Defining \__fp_parse_apply_binary_error:NNN on line ...
+Defining \__fp_binary_type_o:Nww on line ...
+Defining \__fp_binary_rev_type_o:Nww on line ...
Defining \__fp_parse_infix_after_operand:NwN on line ...
Defining \__fp_parse_infix:NN on line ...
Defining \__fp_parse_infix_check:NNN on line ...
@@ -3944,10 +3946,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_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 ...
@@ -4160,11 +4162,11 @@ 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_o:ww on line ...
+Defining \__fp_tuple_*_o:ww on line ...
+Defining \__fp_tuple_/_o:ww 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 e8399ff..ca999f7 100644
--- a/l3kernel/testfiles/m3expl001.tlg
+++ b/l3kernel/testfiles/m3expl001.tlg
@@ -3905,6 +3905,8 @@ Defining \__fp_parse_continue:NwN on line ...
Defining \__fp_parse_apply_binary:NwNwN on line ...
Defining \__fp_parse_apply_binary_chk:NN on line ...
Defining \__fp_parse_apply_binary_error:NNN on line ...
+Defining \__fp_binary_type_o:Nww on line ...
+Defining \__fp_binary_rev_type_o:Nww on line ...
Defining \__fp_parse_infix_after_operand:NwN on line ...
Defining \__fp_parse_infix:NN on line ...
Defining \__fp_parse_infix_check:NNN on line ...
@@ -3944,10 +3946,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_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 ...
@@ -4160,11 +4162,11 @@ 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_o:ww on line ...
+Defining \__fp_tuple_*_o:ww on line ...
+Defining \__fp_tuple_/_o:ww 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 28594c8..c6b90c4 100644
--- a/l3kernel/testfiles/m3expl001.uptex.tlg
+++ b/l3kernel/testfiles/m3expl001.uptex.tlg
@@ -3905,6 +3905,8 @@ Defining \__fp_parse_continue:NwN on line ...
Defining \__fp_parse_apply_binary:NwNwN on line ...
Defining \__fp_parse_apply_binary_chk:NN on line ...
Defining \__fp_parse_apply_binary_error:NNN on line ...
+Defining \__fp_binary_type_o:Nww on line ...
+Defining \__fp_binary_rev_type_o:Nww on line ...
Defining \__fp_parse_infix_after_operand:NwN on line ...
Defining \__fp_parse_infix:NN on line ...
Defining \__fp_parse_infix_check:NNN on line ...
@@ -3944,10 +3946,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_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 ...
@@ -4160,11 +4162,11 @@ 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_o:ww on line ...
+Defining \__fp_tuple_*_o:ww on line ...
+Defining \__fp_tuple_/_o:ww 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 59ccd90..656e6da 100644
--- a/l3kernel/testfiles/m3expl001.xetex.tlg
+++ b/l3kernel/testfiles/m3expl001.xetex.tlg
@@ -3915,6 +3915,8 @@ Defining \__fp_parse_continue:NwN on line ...
Defining \__fp_parse_apply_binary:NwNwN on line ...
Defining \__fp_parse_apply_binary_chk:NN on line ...
Defining \__fp_parse_apply_binary_error:NNN on line ...
+Defining \__fp_binary_type_o:Nww on line ...
+Defining \__fp_binary_rev_type_o:Nww on line ...
Defining \__fp_parse_infix_after_operand:NwN on line ...
Defining \__fp_parse_infix:NN on line ...
Defining \__fp_parse_infix_check:NNN on line ...
@@ -3954,10 +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_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 ...
@@ -4170,11 +4172,11 @@ 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_o:ww on line ...
+Defining \__fp_tuple_*_o:ww on line ...
+Defining \__fp_tuple_/_o:ww 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 0524cf6..a50e600 100644
--- a/l3kernel/testfiles/m3expl003.luatex.tlg
+++ b/l3kernel/testfiles/m3expl003.luatex.tlg
@@ -3917,6 +3917,8 @@ Defining \__fp_parse_continue:NwN on line ...
Defining \__fp_parse_apply_binary:NwNwN on line ...
Defining \__fp_parse_apply_binary_chk:NN on line ...
Defining \__fp_parse_apply_binary_error:NNN on line ...
+Defining \__fp_binary_type_o:Nww on line ...
+Defining \__fp_binary_rev_type_o:Nww on line ...
Defining \__fp_parse_infix_after_operand:NwN on line ...
Defining \__fp_parse_infix:NN on line ...
Defining \__fp_parse_infix_check:NNN on line ...
@@ -3956,10 +3958,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_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 ...
@@ -4172,11 +4174,11 @@ 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_o:ww on line ...
+Defining \__fp_tuple_*_o:ww on line ...
+Defining \__fp_tuple_/_o:ww 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 7e89e65..a4bb059 100644
--- a/l3kernel/testfiles/m3expl003.ptex.tlg
+++ b/l3kernel/testfiles/m3expl003.ptex.tlg
@@ -3905,6 +3905,8 @@ Defining \__fp_parse_continue:NwN on line ...
Defining \__fp_parse_apply_binary:NwNwN on line ...
Defining \__fp_parse_apply_binary_chk:NN on line ...
Defining \__fp_parse_apply_binary_error:NNN on line ...
+Defining \__fp_binary_type_o:Nww on line ...
+Defining \__fp_binary_rev_type_o:Nww on line ...
Defining \__fp_parse_infix_after_operand:NwN on line ...
Defining \__fp_parse_infix:NN on line ...
Defining \__fp_parse_infix_check:NNN on line ...
@@ -3944,10 +3946,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_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 ...
@@ -4160,11 +4162,11 @@ 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_o:ww on line ...
+Defining \__fp_tuple_*_o:ww on line ...
+Defining \__fp_tuple_/_o:ww 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 e8399ff..ca999f7 100644
--- a/l3kernel/testfiles/m3expl003.tlg
+++ b/l3kernel/testfiles/m3expl003.tlg
@@ -3905,6 +3905,8 @@ Defining \__fp_parse_continue:NwN on line ...
Defining \__fp_parse_apply_binary:NwNwN on line ...
Defining \__fp_parse_apply_binary_chk:NN on line ...
Defining \__fp_parse_apply_binary_error:NNN on line ...
+Defining \__fp_binary_type_o:Nww on line ...
+Defining \__fp_binary_rev_type_o:Nww on line ...
Defining \__fp_parse_infix_after_operand:NwN on line ...
Defining \__fp_parse_infix:NN on line ...
Defining \__fp_parse_infix_check:NNN on line ...
@@ -3944,10 +3946,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_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 ...
@@ -4160,11 +4162,11 @@ 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_o:ww on line ...
+Defining \__fp_tuple_*_o:ww on line ...
+Defining \__fp_tuple_/_o:ww 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 28594c8..c6b90c4 100644
--- a/l3kernel/testfiles/m3expl003.uptex.tlg
+++ b/l3kernel/testfiles/m3expl003.uptex.tlg
@@ -3905,6 +3905,8 @@ Defining \__fp_parse_continue:NwN on line ...
Defining \__fp_parse_apply_binary:NwNwN on line ...
Defining \__fp_parse_apply_binary_chk:NN on line ...
Defining \__fp_parse_apply_binary_error:NNN on line ...
+Defining \__fp_binary_type_o:Nww on line ...
+Defining \__fp_binary_rev_type_o:Nww on line ...
Defining \__fp_parse_infix_after_operand:NwN on line ...
Defining \__fp_parse_infix:NN on line ...
Defining \__fp_parse_infix_check:NNN on line ...
@@ -3944,10 +3946,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_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 ...
@@ -4160,11 +4162,11 @@ 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_o:ww on line ...
+Defining \__fp_tuple_*_o:ww on line ...
+Defining \__fp_tuple_/_o:ww 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 59ccd90..656e6da 100644
--- a/l3kernel/testfiles/m3expl003.xetex.tlg
+++ b/l3kernel/testfiles/m3expl003.xetex.tlg
@@ -3915,6 +3915,8 @@ Defining \__fp_parse_continue:NwN on line ...
Defining \__fp_parse_apply_binary:NwNwN on line ...
Defining \__fp_parse_apply_binary_chk:NN on line ...
Defining \__fp_parse_apply_binary_error:NNN on line ...
+Defining \__fp_binary_type_o:Nww on line ...
+Defining \__fp_binary_rev_type_o:Nww on line ...
Defining \__fp_parse_infix_after_operand:NwN on line ...
Defining \__fp_parse_infix:NN on line ...
Defining \__fp_parse_infix_check:NNN on line ...
@@ -3954,10 +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_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 ...
@@ -4170,11 +4172,11 @@ 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_o:ww on line ...
+Defining \__fp_tuple_*_o:ww on line ...
+Defining \__fp_tuple_/_o:ww 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/m3fp-parse001.tlg b/l3kernel/testfiles/m3fp-parse001.tlg
index 2e74b45..79beaa6 100644
--- a/l3kernel/testfiles/m3fp-parse001.tlg
+++ b/l3kernel/testfiles/m3fp-parse001.tlg
@@ -52,15 +52,6 @@ spelling (e.g., `I\hbox'). Otherwise just continue,
and I'll forget about whatever was undefined.
! Undefined control sequence.
<argument> \LaTeX3 error:
- Invalid operation (1)*(())
-l. ... }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-! Undefined control sequence.
-<argument> \LaTeX3 error:
Missing number before ')'.
l. ... }
The control sequence at the end of the top line
@@ -87,7 +78,7 @@ misspelled it (e.g., `\hobx'), type `I' and the correct
spelling (e.g., `I\hbox'). Otherwise just continue,
and I'll forget about whatever was undefined.
nan
-nan
+()
()
nan
0.36
diff --git a/l3kernel/testfiles/m3fp-parse002.tlg b/l3kernel/testfiles/m3fp-parse002.tlg
index c6301f7..6e467fb 100644
--- a/l3kernel/testfiles/m3fp-parse002.tlg
+++ b/l3kernel/testfiles/m3fp-parse002.tlg
@@ -42,18 +42,9 @@ nan
============================================================
TEST 4: Weird juxtaposition
============================================================
-! Undefined control sequence.
-<argument> \LaTeX3 error:
- Invalid operation (1)*((4, 5))
-l. ... }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
27
82575359923.09571
-nan
+(12.56637061435917, 15.70796326794896)
============================================================
============================================================
TEST 5: Use of \sin instead of sin
@@ -199,16 +190,7 @@ misspelled it (e.g., `\hobx'), type `I' and the correct
spelling (e.g., `I\hbox'). Otherwise just continue,
and I'll forget about whatever was undefined.
> sin()=nan.
-! Undefined control sequence.
-<argument> \LaTeX3 error:
- Invalid operation (inf)*(())
-l. ... }
-The control sequence at the end of the top line
-of your error message was never \def'ed. If you have
-misspelled it (e.g., `\hobx'), type `I' and the correct
-spelling (e.g., `I\hbox'). Otherwise just continue,
-and I'll forget about whatever was undefined.
-> inf()=nan.
+> inf()=().
! Undefined control sequence.
<argument> \LaTeX3 error:
Invalid operation (-0)+(())
More information about the latex3-commits
mailing list