[latex3-commits] [git/LaTeX3-latex3-latex3] master: Implement fp_to_decimal and fp_to_scientific for tuples (450c700)
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/450c70098fc7fd2c061038cfc7b12db1c2903ef4
>---------------------------------------------------------------
commit 450c70098fc7fd2c061038cfc7b12db1c2903ef4
Author: Bruno Le Floch <bruno at le-floch.fr>
Date: Sun Feb 11 17:13:15 2018 -0500
Implement fp_to_decimal and fp_to_scientific for tuples
The fp_to_tl representation is hard to parse, so it is useful to have
a more parseable one such as fp_to_scientific or fp_to_decimal whose
components can easily be converted for instance to dimensions.
The main drawback is that "\fp_to_decimal:n { ... } pt" is not
guaranteed anymore to be a dimension; I suspect however that in general
one knows when to expect a tuple or single number as a result.
>---------------------------------------------------------------
450c70098fc7fd2c061038cfc7b12db1c2903ef4
l3kernel/l3fp-convert.dtx | 162 +++++++++++++++++++------------
l3kernel/l3fp-traps.dtx | 2 +
l3kernel/testfiles/m3expl001.luatex.tlg | 17 +++-
l3kernel/testfiles/m3expl001.ptex.tlg | 17 +++-
l3kernel/testfiles/m3expl001.tlg | 17 +++-
l3kernel/testfiles/m3expl001.uptex.tlg | 17 +++-
l3kernel/testfiles/m3expl001.xetex.tlg | 17 +++-
l3kernel/testfiles/m3expl003.luatex.tlg | 17 +++-
l3kernel/testfiles/m3expl003.ptex.tlg | 17 +++-
l3kernel/testfiles/m3expl003.tlg | 17 +++-
l3kernel/testfiles/m3expl003.uptex.tlg | 17 +++-
l3kernel/testfiles/m3expl003.xetex.tlg | 17 +++-
l3kernel/testfiles/m3fp-parse002.lvt | 3 +-
l3kernel/testfiles/m3fp-parse002.tlg | 18 +---
14 files changed, 247 insertions(+), 108 deletions(-)
diff --git a/l3kernel/l3fp-convert.dtx b/l3kernel/l3fp-convert.dtx
index ee0d9a2..f7d447f 100644
--- a/l3kernel/l3fp-convert.dtx
+++ b/l3kernel/l3fp-convert.dtx
@@ -61,6 +61,39 @@
%<@@=fp>
% \end{macrocode}
%
+% \subsection{Dealing with tuples}
+%
+% \begin{macro}[EXP]
+% {\@@_tuple_convert:Nw, \@@_tuple_convert_loop:nNw, \@@_tuple_convert_end:w}
+% The first argument is for instance \cs{@@_to_tl_dispatch:w}, which
+% converts any floating point object to the appropriate
+% representation. We loop through all items, putting |,~| between all
+% of them and making sure to remove the leading |,~|.
+% \begin{macrocode}
+\cs_new:Npn \@@_tuple_convert:Nw #1 \s_@@_tuple \@@_tuple_chk:w #2 ;
+ {
+ \int_case:nnF { \@@_array_count:n {#2} }
+ {
+ { 0 } { ( ) }
+ { 1 } { \@@_tuple_convert_end:w @ { #1 #2 , } }
+ }
+ {
+ \@@_tuple_convert_loop:nNw { } #1
+ #2 { ? \@@_tuple_convert_end:w } ;
+ @ { \use_none:nn }
+ }
+ }
+\cs_new:Npn \@@_tuple_convert_loop:nNw #1#2#3#4; #5 @ #6
+ {
+ \use_none:n #3
+ \exp_args:Nf \@@_tuple_convert_loop:nNw { #2 #3#4 ; } #2 #5
+ @ { #6 , ~ #1 }
+ }
+\cs_new:Npn \@@_tuple_convert_end:w #1 @ #2
+ { \exp_after:wN ( \exp:w \exp_end_continue_f:w #2 ) }
+% \end{macrocode}
+% \end{macro}
+%
% \subsection{Trimming trailing zeros}
%
% \begin{macro}[EXP]{\@@_trim_zeros:w}
@@ -103,24 +136,23 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[EXP]{\@@_to_scientific_dispatch:w, \@@_to_scientific_other:w}
-% For a floating point number call \cs{@@_to_scientific:w}, otherwise
-% complain.
+% \begin{macro}[EXP]
+% {\@@_to_scientific_dispatch:w, \@@_to_scientific_recover:w, \@@_tuple_to_scientific:w}
+% We allow tuples.
% \begin{macrocode}
\cs_new:Npn \@@_to_scientific_dispatch:w #1
{
- \@@_if_type_fp:NTwFw
- #1 \@@_to_scientific:w
- \s_@@ \@@_to_scientific_other:w
- \q_stop
+ \@@_change_func_type:NNN
+ #1 \@@_to_scientific:w \@@_to_scientific_recover:w
#1
}
-\cs_new:Npn \@@_to_scientific_other:w
+\cs_new:Npn \@@_to_scientific_recover:w #1 #2 ;
{
- \@@_invalid_operation:nnw
- { \fp_to_scientific:N \c_zero_fp }
- { fp_to_scientific }
+ \@@_error:nffn { fp-unknown-type } { \tl_to_str:n { #2 ; } } { } { }
+ nan
}
+\cs_new:Npn \@@_tuple_to_scientific:w
+ { \@@_tuple_convert:Nw \@@_to_scientific_dispatch:w }
% \end{macrocode}
% \end{macro}
%
@@ -198,23 +230,23 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[EXP]{\@@_to_decimal_dispatch:w, \@@_to_decimal_other:w}
-% Very similar to \cs{@@_to_scientific_dispatch:w}.
+% \begin{macro}[EXP]
+% {\@@_to_decimal_dispatch:w, \@@_to_decimal_recover:w, \@@_tuple_to_decimal:w}
+% We allow tuples.
% \begin{macrocode}
\cs_new:Npn \@@_to_decimal_dispatch:w #1
{
- \@@_if_type_fp:NTwFw
- #1 \@@_to_decimal:w
- \s_@@ \@@_to_decimal_other:w
- \q_stop
+ \@@_change_func_type:NNN
+ #1 \@@_to_decimal:w \@@_to_decimal_recover:w
#1
}
-\cs_new:Npn \@@_to_decimal_other:w
+\cs_new:Npn \@@_to_decimal_recover:w #1 #2 ;
{
- \@@_invalid_operation:nnw
- { \fp_to_decimal:N \c_zero_fp }
- { fp_to_decimal }
+ \@@_error:nffn { fp-unknown-type } { \tl_to_str:n { #2 ; } } { } { }
+ nan
}
+\cs_new:Npn \@@_tuple_to_decimal:w
+ { \@@_tuple_convert:Nw \@@_to_decimal_dispatch:w }
% \end{macrocode}
% \end{macro}
%
@@ -316,35 +348,18 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[EXP]{\@@_to_tl_dispatch:w, \@@_to_tl_other:w, \@@_tuple_to_tl:w}
-% Contrarily to \cs{@@_to_scientific_dispatch:w}, we allow tuples.
+% \begin{macro}[EXP]{\@@_to_tl_dispatch:w, \@@_to_tl_recover:w, \@@_tuple_to_tl:w}
+% We allow tuples.
% \begin{macrocode}
\cs_new:Npn \@@_to_tl_dispatch:w #1
+ { \@@_change_func_type:NNN #1 \@@_to_tl:w \@@_to_tl_recover:w #1 }
+\cs_new:Npn \@@_to_tl_recover:w #1 #2 ;
{
- \@@_if_type_fp:NTwFw
- #1 \@@_to_tl:w
- \s_@@ \@@_to_tl_other:w
- \q_stop
- #1
- }
-\cs_new:Npn \@@_to_tl_other:w #1
- { \cs:w @@ \@@_type_from_scan_other:N #1 _to_tl:w \cs_end: #1 }
-\cs_new:Npn \@@_tuple_to_tl:w \s_@@_tuple \@@_tuple_chk:w #1 ;
- {
- \int_case:nnF { \@@_array_count:n {#1} }
- {
- { 0 } { ( ) }
- { 1 }
- {
- \exp_after:wN ( \exp:w \exp_end_continue_f:w
- \@@_to_tl_dispatch:w #1 , )
- }
- }
- {
- \exp_after:wN ( \exp:w \exp_end_continue_f:w
- \@@_array_to_clist:n {#1} )
- }
+ \@@_error:nffn { fp-unknown-type } { \tl_to_str:n { #2 ; } } { } { }
+ nan
}
+\cs_new:Npn \@@_tuple_to_tl:w
+ { \@@_tuple_convert:Nw \@@_to_tl_dispatch:w }
% \end{macrocode}
% \end{macro}
%
@@ -400,20 +415,40 @@
% \subsection{Convert to dimension or integer}
%
% \begin{macro}[EXP]{\fp_to_dim:N, \fp_to_dim:c, \fp_to_dim:n}
-% These three public functions rely on \cs{fp_to_decimal:n}
-% internally.
+% \begin{macro}[EXP]{\@@_to_dim_dispatch:w, \@@_to_dim_recover:w, \@@_to_dim:w}
+% All three public variants are based on the same
+% \cs{@@_to_dim_dispatch:w} after evaluating their argument to an
+% internal floating point.
+% We only allow floating point numbers, not tuples.
% \begin{macrocode}
\cs_new:Npn \fp_to_dim:N #1
- { \fp_to_decimal:N #1 pt }
+ { \exp_after:wN \@@_to_dim_dispatch:w #1 }
\cs_generate_variant:Nn \fp_to_dim:N { c }
-\cs_new:Npn \fp_to_dim:n #1
- { \fp_to_decimal:n {#1} pt }
+\cs_new:Npn \fp_to_dim:n
+ {
+ \exp_after:wN \@@_to_dim_dispatch:w
+ \exp:w \exp_end_continue_f:w \@@_parse:n
+ }
+\cs_new:Npn \@@_to_dim_dispatch:w #1#2 ;
+ {
+ \@@_change_func_type:NNN #1 \@@_to_dim:w \@@_to_dim_recover:w
+ #1 #2 ;
+ }
+\cs_new:Npn \@@_to_dim_recover:w #1
+ { \@@_invalid_operation:nnw { 0pt } { fp_to_dim } }
+\cs_new:Npn \@@_to_dim:w #1 ; { \@@_to_decimal:w #1 ; pt }
% \end{macrocode}
% \end{macro}
+% \end{macro}
%
% \begin{macro}[EXP]{\fp_to_int:N, \fp_to_int:c, \fp_to_int:n}
-% These three public functions evaluate their argument, then pass it
-% to \cs{fp_to_int_dispatch:w}.
+% \begin{macro}[EXP]{\@@_to_int_dispatch:w, \@@_to_int_recover:w}
+% For the most part identical to \cs{fp_to_dim:N} but without |pt|,
+% and where \cs{@@_to_int:w} does more work.
+% To convert to an integer, first round to $0$ places (to the nearest
+% integer), then express the result as a decimal number: the
+% definition of \cs{@@_to_decimal_dispatch:w} is such that there are no
+% trailing dot nor zero.
% \begin{macrocode}
\cs_new:Npn \fp_to_int:N #1 { \exp_after:wN \@@_to_int_dispatch:w #1 }
\cs_generate_variant:Nn \fp_to_int:N { c }
@@ -422,22 +457,21 @@
\exp_after:wN \@@_to_int_dispatch:w
\exp:w \exp_end_continue_f:w \@@_parse:n
}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}[EXP]{\@@_to_int_dispatch:w}
-% To convert to an integer, first round to $0$ places (to the nearest
-% integer), then express the result as a decimal number: the
-% definition of \cs{@@_to_decimal_dispatch:w} is such that there are no
-% trailing dot nor zero.
-% \begin{macrocode}
-\cs_new:Npn \@@_to_int_dispatch:w #1;
+\cs_new:Npn \@@_to_int_dispatch:w #1#2 ;
{
- \exp_after:wN \@@_to_decimal_dispatch:w \exp:w \exp_end_continue_f:w
+ \@@_change_func_type:NNN #1 \@@_to_int:w \@@_to_int_recover:w
+ #1 #2 ;
+ }
+\cs_new:Npn \@@_to_int_recover:w #1
+ { \@@_invalid_operation:nnw { 0 } { fp_to_int } }
+\cs_new:Npn \@@_to_int:w #1;
+ {
+ \exp_after:wN \@@_to_decimal:w \exp:w \exp_end_continue_f:w
\@@_round:Nwn \@@_round_to_nearest:NNN #1; { 0 }
}
% \end{macrocode}
% \end{macro}
+% \end{macro}
%
% \subsection{Convert from a dimension}
%
diff --git a/l3kernel/l3fp-traps.dtx b/l3kernel/l3fp-traps.dtx
index 3043bcb..008cb3c 100644
--- a/l3kernel/l3fp-traps.dtx
+++ b/l3kernel/l3fp-traps.dtx
@@ -383,6 +383,8 @@
{ Invalid~operation~ #1 (#2) }
\__kernel_msg_new:nnn { kernel } { fp-invalid-ii }
{ Invalid~operation~ (#1) #3 (#2) }
+\__kernel_msg_new:nnn { kernel } { fp-unknown-type }
+ { Unknown~type~for~'#1' }
% \end{macrocode}
%
% \begin{macrocode}
diff --git a/l3kernel/testfiles/m3expl001.luatex.tlg b/l3kernel/testfiles/m3expl001.luatex.tlg
index a50e600..2d5efcc 100644
--- a/l3kernel/testfiles/m3expl001.luatex.tlg
+++ b/l3kernel/testfiles/m3expl001.luatex.tlg
@@ -3761,6 +3761,7 @@ Defining message LaTeX/kernel/fp-zero-div on line ...
Defining message LaTeX/kernel/fp-zero-div-ii on line ...
Defining message LaTeX/kernel/fp-invalid on line ...
Defining message LaTeX/kernel/fp-invalid-ii on line ...
+Defining message LaTeX/kernel/fp-unknown-type on line ...
Defining \__fp_parse_word_trunc:N on line ...
Defining \__fp_parse_word_floor:N on line ...
Defining \__fp_parse_word_ceil:N on line ...
@@ -4393,6 +4394,9 @@ Defining \__fp_asin_isqrt:wn on line ...
Defining \__fp_acsc_o:w on line ...
Defining \__fp_asec_o:w on line ...
Defining \__fp_acsc_normal_o:NfwNnw on line ...
+Defining \__fp_tuple_convert:Nw on line ...
+Defining \__fp_tuple_convert_loop:nNw on line ...
+Defining \__fp_tuple_convert_end:w on line ...
Defining \__fp_trim_zeros:w on line ...
Defining \__fp_trim_zeros_loop:w on line ...
Defining \__fp_trim_zeros_dot:w on line ...
@@ -4401,7 +4405,8 @@ Defining \fp_to_scientific:N on line ...
Defining \fp_to_scientific:c on line ...
Defining \fp_to_scientific:n on line ...
Defining \__fp_to_scientific_dispatch:w on line ...
-Defining \__fp_to_scientific_other:w on line ...
+Defining \__fp_to_scientific_recover:w on line ...
+Defining \__fp_tuple_to_scientific:w on line ...
Defining \__fp_to_scientific:w on line ...
Defining \__fp_to_scientific_normal:wnnnnn on line ...
Defining \__fp_to_scientific_normal:wNw on line ...
@@ -4409,7 +4414,8 @@ Defining \fp_to_decimal:N on line ...
Defining \fp_to_decimal:c on line ...
Defining \fp_to_decimal:n on line ...
Defining \__fp_to_decimal_dispatch:w on line ...
-Defining \__fp_to_decimal_other:w on line ...
+Defining \__fp_to_decimal_recover:w on line ...
+Defining \__fp_tuple_to_decimal:w on line ...
Defining \__fp_to_decimal:w on line ...
Defining \__fp_to_decimal_normal:wnnnnn on line ...
Defining \__fp_to_decimal_large:Nnnw on line ...
@@ -4418,7 +4424,7 @@ Defining \fp_to_tl:N on line ...
Defining \fp_to_tl:c on line ...
Defining \fp_to_tl:n on line ...
Defining \__fp_to_tl_dispatch:w on line ...
-Defining \__fp_to_tl_other:w on line ...
+Defining \__fp_to_tl_recover:w on line ...
Defining \__fp_tuple_to_tl:w on line ...
Defining \__fp_to_tl:w on line ...
Defining \__fp_to_tl_normal:nnnnn on line ...
@@ -4427,10 +4433,15 @@ Defining \__fp_to_tl_scientific:wNw on line ...
Defining \fp_to_dim:N on line ...
Defining \fp_to_dim:c on line ...
Defining \fp_to_dim:n on line ...
+Defining \__fp_to_dim_dispatch:w on line ...
+Defining \__fp_to_dim_recover:w on line ...
+Defining \__fp_to_dim:w on line ...
Defining \fp_to_int:N on line ...
Defining \fp_to_int:c on line ...
Defining \fp_to_int:n on line ...
Defining \__fp_to_int_dispatch:w on line ...
+Defining \__fp_to_int_recover:w on line ...
+Defining \__fp_to_int:w on line ...
Defining \dim_to_fp:n on line ...
Defining \__fp_from_dim_test:ww on line ...
Defining \__fp_from_dim:wNw on line ...
diff --git a/l3kernel/testfiles/m3expl001.ptex.tlg b/l3kernel/testfiles/m3expl001.ptex.tlg
index a4bb059..d5b9df4 100644
--- a/l3kernel/testfiles/m3expl001.ptex.tlg
+++ b/l3kernel/testfiles/m3expl001.ptex.tlg
@@ -3749,6 +3749,7 @@ Defining message LaTeX/kernel/fp-zero-div on line ...
Defining message LaTeX/kernel/fp-zero-div-ii on line ...
Defining message LaTeX/kernel/fp-invalid on line ...
Defining message LaTeX/kernel/fp-invalid-ii on line ...
+Defining message LaTeX/kernel/fp-unknown-type on line ...
Defining \__fp_parse_word_trunc:N on line ...
Defining \__fp_parse_word_floor:N on line ...
Defining \__fp_parse_word_ceil:N on line ...
@@ -4381,6 +4382,9 @@ Defining \__fp_asin_isqrt:wn on line ...
Defining \__fp_acsc_o:w on line ...
Defining \__fp_asec_o:w on line ...
Defining \__fp_acsc_normal_o:NfwNnw on line ...
+Defining \__fp_tuple_convert:Nw on line ...
+Defining \__fp_tuple_convert_loop:nNw on line ...
+Defining \__fp_tuple_convert_end:w on line ...
Defining \__fp_trim_zeros:w on line ...
Defining \__fp_trim_zeros_loop:w on line ...
Defining \__fp_trim_zeros_dot:w on line ...
@@ -4389,7 +4393,8 @@ Defining \fp_to_scientific:N on line ...
Defining \fp_to_scientific:c on line ...
Defining \fp_to_scientific:n on line ...
Defining \__fp_to_scientific_dispatch:w on line ...
-Defining \__fp_to_scientific_other:w on line ...
+Defining \__fp_to_scientific_recover:w on line ...
+Defining \__fp_tuple_to_scientific:w on line ...
Defining \__fp_to_scientific:w on line ...
Defining \__fp_to_scientific_normal:wnnnnn on line ...
Defining \__fp_to_scientific_normal:wNw on line ...
@@ -4397,7 +4402,8 @@ Defining \fp_to_decimal:N on line ...
Defining \fp_to_decimal:c on line ...
Defining \fp_to_decimal:n on line ...
Defining \__fp_to_decimal_dispatch:w on line ...
-Defining \__fp_to_decimal_other:w on line ...
+Defining \__fp_to_decimal_recover:w on line ...
+Defining \__fp_tuple_to_decimal:w on line ...
Defining \__fp_to_decimal:w on line ...
Defining \__fp_to_decimal_normal:wnnnnn on line ...
Defining \__fp_to_decimal_large:Nnnw on line ...
@@ -4406,7 +4412,7 @@ Defining \fp_to_tl:N on line ...
Defining \fp_to_tl:c on line ...
Defining \fp_to_tl:n on line ...
Defining \__fp_to_tl_dispatch:w on line ...
-Defining \__fp_to_tl_other:w on line ...
+Defining \__fp_to_tl_recover:w on line ...
Defining \__fp_tuple_to_tl:w on line ...
Defining \__fp_to_tl:w on line ...
Defining \__fp_to_tl_normal:nnnnn on line ...
@@ -4415,10 +4421,15 @@ Defining \__fp_to_tl_scientific:wNw on line ...
Defining \fp_to_dim:N on line ...
Defining \fp_to_dim:c on line ...
Defining \fp_to_dim:n on line ...
+Defining \__fp_to_dim_dispatch:w on line ...
+Defining \__fp_to_dim_recover:w on line ...
+Defining \__fp_to_dim:w on line ...
Defining \fp_to_int:N on line ...
Defining \fp_to_int:c on line ...
Defining \fp_to_int:n on line ...
Defining \__fp_to_int_dispatch:w on line ...
+Defining \__fp_to_int_recover:w on line ...
+Defining \__fp_to_int:w on line ...
Defining \dim_to_fp:n on line ...
Defining \__fp_from_dim_test:ww on line ...
Defining \__fp_from_dim:wNw on line ...
diff --git a/l3kernel/testfiles/m3expl001.tlg b/l3kernel/testfiles/m3expl001.tlg
index ca999f7..0581bec 100644
--- a/l3kernel/testfiles/m3expl001.tlg
+++ b/l3kernel/testfiles/m3expl001.tlg
@@ -3749,6 +3749,7 @@ Defining message LaTeX/kernel/fp-zero-div on line ...
Defining message LaTeX/kernel/fp-zero-div-ii on line ...
Defining message LaTeX/kernel/fp-invalid on line ...
Defining message LaTeX/kernel/fp-invalid-ii on line ...
+Defining message LaTeX/kernel/fp-unknown-type on line ...
Defining \__fp_parse_word_trunc:N on line ...
Defining \__fp_parse_word_floor:N on line ...
Defining \__fp_parse_word_ceil:N on line ...
@@ -4381,6 +4382,9 @@ Defining \__fp_asin_isqrt:wn on line ...
Defining \__fp_acsc_o:w on line ...
Defining \__fp_asec_o:w on line ...
Defining \__fp_acsc_normal_o:NfwNnw on line ...
+Defining \__fp_tuple_convert:Nw on line ...
+Defining \__fp_tuple_convert_loop:nNw on line ...
+Defining \__fp_tuple_convert_end:w on line ...
Defining \__fp_trim_zeros:w on line ...
Defining \__fp_trim_zeros_loop:w on line ...
Defining \__fp_trim_zeros_dot:w on line ...
@@ -4389,7 +4393,8 @@ Defining \fp_to_scientific:N on line ...
Defining \fp_to_scientific:c on line ...
Defining \fp_to_scientific:n on line ...
Defining \__fp_to_scientific_dispatch:w on line ...
-Defining \__fp_to_scientific_other:w on line ...
+Defining \__fp_to_scientific_recover:w on line ...
+Defining \__fp_tuple_to_scientific:w on line ...
Defining \__fp_to_scientific:w on line ...
Defining \__fp_to_scientific_normal:wnnnnn on line ...
Defining \__fp_to_scientific_normal:wNw on line ...
@@ -4397,7 +4402,8 @@ Defining \fp_to_decimal:N on line ...
Defining \fp_to_decimal:c on line ...
Defining \fp_to_decimal:n on line ...
Defining \__fp_to_decimal_dispatch:w on line ...
-Defining \__fp_to_decimal_other:w on line ...
+Defining \__fp_to_decimal_recover:w on line ...
+Defining \__fp_tuple_to_decimal:w on line ...
Defining \__fp_to_decimal:w on line ...
Defining \__fp_to_decimal_normal:wnnnnn on line ...
Defining \__fp_to_decimal_large:Nnnw on line ...
@@ -4406,7 +4412,7 @@ Defining \fp_to_tl:N on line ...
Defining \fp_to_tl:c on line ...
Defining \fp_to_tl:n on line ...
Defining \__fp_to_tl_dispatch:w on line ...
-Defining \__fp_to_tl_other:w on line ...
+Defining \__fp_to_tl_recover:w on line ...
Defining \__fp_tuple_to_tl:w on line ...
Defining \__fp_to_tl:w on line ...
Defining \__fp_to_tl_normal:nnnnn on line ...
@@ -4415,10 +4421,15 @@ Defining \__fp_to_tl_scientific:wNw on line ...
Defining \fp_to_dim:N on line ...
Defining \fp_to_dim:c on line ...
Defining \fp_to_dim:n on line ...
+Defining \__fp_to_dim_dispatch:w on line ...
+Defining \__fp_to_dim_recover:w on line ...
+Defining \__fp_to_dim:w on line ...
Defining \fp_to_int:N on line ...
Defining \fp_to_int:c on line ...
Defining \fp_to_int:n on line ...
Defining \__fp_to_int_dispatch:w on line ...
+Defining \__fp_to_int_recover:w on line ...
+Defining \__fp_to_int:w on line ...
Defining \dim_to_fp:n on line ...
Defining \__fp_from_dim_test:ww on line ...
Defining \__fp_from_dim:wNw on line ...
diff --git a/l3kernel/testfiles/m3expl001.uptex.tlg b/l3kernel/testfiles/m3expl001.uptex.tlg
index c6b90c4..7ebc563 100644
--- a/l3kernel/testfiles/m3expl001.uptex.tlg
+++ b/l3kernel/testfiles/m3expl001.uptex.tlg
@@ -3749,6 +3749,7 @@ Defining message LaTeX/kernel/fp-zero-div on line ...
Defining message LaTeX/kernel/fp-zero-div-ii on line ...
Defining message LaTeX/kernel/fp-invalid on line ...
Defining message LaTeX/kernel/fp-invalid-ii on line ...
+Defining message LaTeX/kernel/fp-unknown-type on line ...
Defining \__fp_parse_word_trunc:N on line ...
Defining \__fp_parse_word_floor:N on line ...
Defining \__fp_parse_word_ceil:N on line ...
@@ -4381,6 +4382,9 @@ Defining \__fp_asin_isqrt:wn on line ...
Defining \__fp_acsc_o:w on line ...
Defining \__fp_asec_o:w on line ...
Defining \__fp_acsc_normal_o:NfwNnw on line ...
+Defining \__fp_tuple_convert:Nw on line ...
+Defining \__fp_tuple_convert_loop:nNw on line ...
+Defining \__fp_tuple_convert_end:w on line ...
Defining \__fp_trim_zeros:w on line ...
Defining \__fp_trim_zeros_loop:w on line ...
Defining \__fp_trim_zeros_dot:w on line ...
@@ -4389,7 +4393,8 @@ Defining \fp_to_scientific:N on line ...
Defining \fp_to_scientific:c on line ...
Defining \fp_to_scientific:n on line ...
Defining \__fp_to_scientific_dispatch:w on line ...
-Defining \__fp_to_scientific_other:w on line ...
+Defining \__fp_to_scientific_recover:w on line ...
+Defining \__fp_tuple_to_scientific:w on line ...
Defining \__fp_to_scientific:w on line ...
Defining \__fp_to_scientific_normal:wnnnnn on line ...
Defining \__fp_to_scientific_normal:wNw on line ...
@@ -4397,7 +4402,8 @@ Defining \fp_to_decimal:N on line ...
Defining \fp_to_decimal:c on line ...
Defining \fp_to_decimal:n on line ...
Defining \__fp_to_decimal_dispatch:w on line ...
-Defining \__fp_to_decimal_other:w on line ...
+Defining \__fp_to_decimal_recover:w on line ...
+Defining \__fp_tuple_to_decimal:w on line ...
Defining \__fp_to_decimal:w on line ...
Defining \__fp_to_decimal_normal:wnnnnn on line ...
Defining \__fp_to_decimal_large:Nnnw on line ...
@@ -4406,7 +4412,7 @@ Defining \fp_to_tl:N on line ...
Defining \fp_to_tl:c on line ...
Defining \fp_to_tl:n on line ...
Defining \__fp_to_tl_dispatch:w on line ...
-Defining \__fp_to_tl_other:w on line ...
+Defining \__fp_to_tl_recover:w on line ...
Defining \__fp_tuple_to_tl:w on line ...
Defining \__fp_to_tl:w on line ...
Defining \__fp_to_tl_normal:nnnnn on line ...
@@ -4415,10 +4421,15 @@ Defining \__fp_to_tl_scientific:wNw on line ...
Defining \fp_to_dim:N on line ...
Defining \fp_to_dim:c on line ...
Defining \fp_to_dim:n on line ...
+Defining \__fp_to_dim_dispatch:w on line ...
+Defining \__fp_to_dim_recover:w on line ...
+Defining \__fp_to_dim:w on line ...
Defining \fp_to_int:N on line ...
Defining \fp_to_int:c on line ...
Defining \fp_to_int:n on line ...
Defining \__fp_to_int_dispatch:w on line ...
+Defining \__fp_to_int_recover:w on line ...
+Defining \__fp_to_int:w on line ...
Defining \dim_to_fp:n on line ...
Defining \__fp_from_dim_test:ww on line ...
Defining \__fp_from_dim:wNw on line ...
diff --git a/l3kernel/testfiles/m3expl001.xetex.tlg b/l3kernel/testfiles/m3expl001.xetex.tlg
index 656e6da..699c0e8 100644
--- a/l3kernel/testfiles/m3expl001.xetex.tlg
+++ b/l3kernel/testfiles/m3expl001.xetex.tlg
@@ -3759,6 +3759,7 @@ Defining message LaTeX/kernel/fp-zero-div on line ...
Defining message LaTeX/kernel/fp-zero-div-ii on line ...
Defining message LaTeX/kernel/fp-invalid on line ...
Defining message LaTeX/kernel/fp-invalid-ii on line ...
+Defining message LaTeX/kernel/fp-unknown-type on line ...
Defining \__fp_parse_word_trunc:N on line ...
Defining \__fp_parse_word_floor:N on line ...
Defining \__fp_parse_word_ceil:N on line ...
@@ -4391,6 +4392,9 @@ Defining \__fp_asin_isqrt:wn on line ...
Defining \__fp_acsc_o:w on line ...
Defining \__fp_asec_o:w on line ...
Defining \__fp_acsc_normal_o:NfwNnw on line ...
+Defining \__fp_tuple_convert:Nw on line ...
+Defining \__fp_tuple_convert_loop:nNw on line ...
+Defining \__fp_tuple_convert_end:w on line ...
Defining \__fp_trim_zeros:w on line ...
Defining \__fp_trim_zeros_loop:w on line ...
Defining \__fp_trim_zeros_dot:w on line ...
@@ -4399,7 +4403,8 @@ Defining \fp_to_scientific:N on line ...
Defining \fp_to_scientific:c on line ...
Defining \fp_to_scientific:n on line ...
Defining \__fp_to_scientific_dispatch:w on line ...
-Defining \__fp_to_scientific_other:w on line ...
+Defining \__fp_to_scientific_recover:w on line ...
+Defining \__fp_tuple_to_scientific:w on line ...
Defining \__fp_to_scientific:w on line ...
Defining \__fp_to_scientific_normal:wnnnnn on line ...
Defining \__fp_to_scientific_normal:wNw on line ...
@@ -4407,7 +4412,8 @@ Defining \fp_to_decimal:N on line ...
Defining \fp_to_decimal:c on line ...
Defining \fp_to_decimal:n on line ...
Defining \__fp_to_decimal_dispatch:w on line ...
-Defining \__fp_to_decimal_other:w on line ...
+Defining \__fp_to_decimal_recover:w on line ...
+Defining \__fp_tuple_to_decimal:w on line ...
Defining \__fp_to_decimal:w on line ...
Defining \__fp_to_decimal_normal:wnnnnn on line ...
Defining \__fp_to_decimal_large:Nnnw on line ...
@@ -4416,7 +4422,7 @@ Defining \fp_to_tl:N on line ...
Defining \fp_to_tl:c on line ...
Defining \fp_to_tl:n on line ...
Defining \__fp_to_tl_dispatch:w on line ...
-Defining \__fp_to_tl_other:w on line ...
+Defining \__fp_to_tl_recover:w on line ...
Defining \__fp_tuple_to_tl:w on line ...
Defining \__fp_to_tl:w on line ...
Defining \__fp_to_tl_normal:nnnnn on line ...
@@ -4425,10 +4431,15 @@ Defining \__fp_to_tl_scientific:wNw on line ...
Defining \fp_to_dim:N on line ...
Defining \fp_to_dim:c on line ...
Defining \fp_to_dim:n on line ...
+Defining \__fp_to_dim_dispatch:w on line ...
+Defining \__fp_to_dim_recover:w on line ...
+Defining \__fp_to_dim:w on line ...
Defining \fp_to_int:N on line ...
Defining \fp_to_int:c on line ...
Defining \fp_to_int:n on line ...
Defining \__fp_to_int_dispatch:w on line ...
+Defining \__fp_to_int_recover:w on line ...
+Defining \__fp_to_int:w on line ...
Defining \dim_to_fp:n on line ...
Defining \__fp_from_dim_test:ww on line ...
Defining \__fp_from_dim:wNw on line ...
diff --git a/l3kernel/testfiles/m3expl003.luatex.tlg b/l3kernel/testfiles/m3expl003.luatex.tlg
index a50e600..2d5efcc 100644
--- a/l3kernel/testfiles/m3expl003.luatex.tlg
+++ b/l3kernel/testfiles/m3expl003.luatex.tlg
@@ -3761,6 +3761,7 @@ Defining message LaTeX/kernel/fp-zero-div on line ...
Defining message LaTeX/kernel/fp-zero-div-ii on line ...
Defining message LaTeX/kernel/fp-invalid on line ...
Defining message LaTeX/kernel/fp-invalid-ii on line ...
+Defining message LaTeX/kernel/fp-unknown-type on line ...
Defining \__fp_parse_word_trunc:N on line ...
Defining \__fp_parse_word_floor:N on line ...
Defining \__fp_parse_word_ceil:N on line ...
@@ -4393,6 +4394,9 @@ Defining \__fp_asin_isqrt:wn on line ...
Defining \__fp_acsc_o:w on line ...
Defining \__fp_asec_o:w on line ...
Defining \__fp_acsc_normal_o:NfwNnw on line ...
+Defining \__fp_tuple_convert:Nw on line ...
+Defining \__fp_tuple_convert_loop:nNw on line ...
+Defining \__fp_tuple_convert_end:w on line ...
Defining \__fp_trim_zeros:w on line ...
Defining \__fp_trim_zeros_loop:w on line ...
Defining \__fp_trim_zeros_dot:w on line ...
@@ -4401,7 +4405,8 @@ Defining \fp_to_scientific:N on line ...
Defining \fp_to_scientific:c on line ...
Defining \fp_to_scientific:n on line ...
Defining \__fp_to_scientific_dispatch:w on line ...
-Defining \__fp_to_scientific_other:w on line ...
+Defining \__fp_to_scientific_recover:w on line ...
+Defining \__fp_tuple_to_scientific:w on line ...
Defining \__fp_to_scientific:w on line ...
Defining \__fp_to_scientific_normal:wnnnnn on line ...
Defining \__fp_to_scientific_normal:wNw on line ...
@@ -4409,7 +4414,8 @@ Defining \fp_to_decimal:N on line ...
Defining \fp_to_decimal:c on line ...
Defining \fp_to_decimal:n on line ...
Defining \__fp_to_decimal_dispatch:w on line ...
-Defining \__fp_to_decimal_other:w on line ...
+Defining \__fp_to_decimal_recover:w on line ...
+Defining \__fp_tuple_to_decimal:w on line ...
Defining \__fp_to_decimal:w on line ...
Defining \__fp_to_decimal_normal:wnnnnn on line ...
Defining \__fp_to_decimal_large:Nnnw on line ...
@@ -4418,7 +4424,7 @@ Defining \fp_to_tl:N on line ...
Defining \fp_to_tl:c on line ...
Defining \fp_to_tl:n on line ...
Defining \__fp_to_tl_dispatch:w on line ...
-Defining \__fp_to_tl_other:w on line ...
+Defining \__fp_to_tl_recover:w on line ...
Defining \__fp_tuple_to_tl:w on line ...
Defining \__fp_to_tl:w on line ...
Defining \__fp_to_tl_normal:nnnnn on line ...
@@ -4427,10 +4433,15 @@ Defining \__fp_to_tl_scientific:wNw on line ...
Defining \fp_to_dim:N on line ...
Defining \fp_to_dim:c on line ...
Defining \fp_to_dim:n on line ...
+Defining \__fp_to_dim_dispatch:w on line ...
+Defining \__fp_to_dim_recover:w on line ...
+Defining \__fp_to_dim:w on line ...
Defining \fp_to_int:N on line ...
Defining \fp_to_int:c on line ...
Defining \fp_to_int:n on line ...
Defining \__fp_to_int_dispatch:w on line ...
+Defining \__fp_to_int_recover:w on line ...
+Defining \__fp_to_int:w on line ...
Defining \dim_to_fp:n on line ...
Defining \__fp_from_dim_test:ww on line ...
Defining \__fp_from_dim:wNw on line ...
diff --git a/l3kernel/testfiles/m3expl003.ptex.tlg b/l3kernel/testfiles/m3expl003.ptex.tlg
index a4bb059..d5b9df4 100644
--- a/l3kernel/testfiles/m3expl003.ptex.tlg
+++ b/l3kernel/testfiles/m3expl003.ptex.tlg
@@ -3749,6 +3749,7 @@ Defining message LaTeX/kernel/fp-zero-div on line ...
Defining message LaTeX/kernel/fp-zero-div-ii on line ...
Defining message LaTeX/kernel/fp-invalid on line ...
Defining message LaTeX/kernel/fp-invalid-ii on line ...
+Defining message LaTeX/kernel/fp-unknown-type on line ...
Defining \__fp_parse_word_trunc:N on line ...
Defining \__fp_parse_word_floor:N on line ...
Defining \__fp_parse_word_ceil:N on line ...
@@ -4381,6 +4382,9 @@ Defining \__fp_asin_isqrt:wn on line ...
Defining \__fp_acsc_o:w on line ...
Defining \__fp_asec_o:w on line ...
Defining \__fp_acsc_normal_o:NfwNnw on line ...
+Defining \__fp_tuple_convert:Nw on line ...
+Defining \__fp_tuple_convert_loop:nNw on line ...
+Defining \__fp_tuple_convert_end:w on line ...
Defining \__fp_trim_zeros:w on line ...
Defining \__fp_trim_zeros_loop:w on line ...
Defining \__fp_trim_zeros_dot:w on line ...
@@ -4389,7 +4393,8 @@ Defining \fp_to_scientific:N on line ...
Defining \fp_to_scientific:c on line ...
Defining \fp_to_scientific:n on line ...
Defining \__fp_to_scientific_dispatch:w on line ...
-Defining \__fp_to_scientific_other:w on line ...
+Defining \__fp_to_scientific_recover:w on line ...
+Defining \__fp_tuple_to_scientific:w on line ...
Defining \__fp_to_scientific:w on line ...
Defining \__fp_to_scientific_normal:wnnnnn on line ...
Defining \__fp_to_scientific_normal:wNw on line ...
@@ -4397,7 +4402,8 @@ Defining \fp_to_decimal:N on line ...
Defining \fp_to_decimal:c on line ...
Defining \fp_to_decimal:n on line ...
Defining \__fp_to_decimal_dispatch:w on line ...
-Defining \__fp_to_decimal_other:w on line ...
+Defining \__fp_to_decimal_recover:w on line ...
+Defining \__fp_tuple_to_decimal:w on line ...
Defining \__fp_to_decimal:w on line ...
Defining \__fp_to_decimal_normal:wnnnnn on line ...
Defining \__fp_to_decimal_large:Nnnw on line ...
@@ -4406,7 +4412,7 @@ Defining \fp_to_tl:N on line ...
Defining \fp_to_tl:c on line ...
Defining \fp_to_tl:n on line ...
Defining \__fp_to_tl_dispatch:w on line ...
-Defining \__fp_to_tl_other:w on line ...
+Defining \__fp_to_tl_recover:w on line ...
Defining \__fp_tuple_to_tl:w on line ...
Defining \__fp_to_tl:w on line ...
Defining \__fp_to_tl_normal:nnnnn on line ...
@@ -4415,10 +4421,15 @@ Defining \__fp_to_tl_scientific:wNw on line ...
Defining \fp_to_dim:N on line ...
Defining \fp_to_dim:c on line ...
Defining \fp_to_dim:n on line ...
+Defining \__fp_to_dim_dispatch:w on line ...
+Defining \__fp_to_dim_recover:w on line ...
+Defining \__fp_to_dim:w on line ...
Defining \fp_to_int:N on line ...
Defining \fp_to_int:c on line ...
Defining \fp_to_int:n on line ...
Defining \__fp_to_int_dispatch:w on line ...
+Defining \__fp_to_int_recover:w on line ...
+Defining \__fp_to_int:w on line ...
Defining \dim_to_fp:n on line ...
Defining \__fp_from_dim_test:ww on line ...
Defining \__fp_from_dim:wNw on line ...
diff --git a/l3kernel/testfiles/m3expl003.tlg b/l3kernel/testfiles/m3expl003.tlg
index ca999f7..0581bec 100644
--- a/l3kernel/testfiles/m3expl003.tlg
+++ b/l3kernel/testfiles/m3expl003.tlg
@@ -3749,6 +3749,7 @@ Defining message LaTeX/kernel/fp-zero-div on line ...
Defining message LaTeX/kernel/fp-zero-div-ii on line ...
Defining message LaTeX/kernel/fp-invalid on line ...
Defining message LaTeX/kernel/fp-invalid-ii on line ...
+Defining message LaTeX/kernel/fp-unknown-type on line ...
Defining \__fp_parse_word_trunc:N on line ...
Defining \__fp_parse_word_floor:N on line ...
Defining \__fp_parse_word_ceil:N on line ...
@@ -4381,6 +4382,9 @@ Defining \__fp_asin_isqrt:wn on line ...
Defining \__fp_acsc_o:w on line ...
Defining \__fp_asec_o:w on line ...
Defining \__fp_acsc_normal_o:NfwNnw on line ...
+Defining \__fp_tuple_convert:Nw on line ...
+Defining \__fp_tuple_convert_loop:nNw on line ...
+Defining \__fp_tuple_convert_end:w on line ...
Defining \__fp_trim_zeros:w on line ...
Defining \__fp_trim_zeros_loop:w on line ...
Defining \__fp_trim_zeros_dot:w on line ...
@@ -4389,7 +4393,8 @@ Defining \fp_to_scientific:N on line ...
Defining \fp_to_scientific:c on line ...
Defining \fp_to_scientific:n on line ...
Defining \__fp_to_scientific_dispatch:w on line ...
-Defining \__fp_to_scientific_other:w on line ...
+Defining \__fp_to_scientific_recover:w on line ...
+Defining \__fp_tuple_to_scientific:w on line ...
Defining \__fp_to_scientific:w on line ...
Defining \__fp_to_scientific_normal:wnnnnn on line ...
Defining \__fp_to_scientific_normal:wNw on line ...
@@ -4397,7 +4402,8 @@ Defining \fp_to_decimal:N on line ...
Defining \fp_to_decimal:c on line ...
Defining \fp_to_decimal:n on line ...
Defining \__fp_to_decimal_dispatch:w on line ...
-Defining \__fp_to_decimal_other:w on line ...
+Defining \__fp_to_decimal_recover:w on line ...
+Defining \__fp_tuple_to_decimal:w on line ...
Defining \__fp_to_decimal:w on line ...
Defining \__fp_to_decimal_normal:wnnnnn on line ...
Defining \__fp_to_decimal_large:Nnnw on line ...
@@ -4406,7 +4412,7 @@ Defining \fp_to_tl:N on line ...
Defining \fp_to_tl:c on line ...
Defining \fp_to_tl:n on line ...
Defining \__fp_to_tl_dispatch:w on line ...
-Defining \__fp_to_tl_other:w on line ...
+Defining \__fp_to_tl_recover:w on line ...
Defining \__fp_tuple_to_tl:w on line ...
Defining \__fp_to_tl:w on line ...
Defining \__fp_to_tl_normal:nnnnn on line ...
@@ -4415,10 +4421,15 @@ Defining \__fp_to_tl_scientific:wNw on line ...
Defining \fp_to_dim:N on line ...
Defining \fp_to_dim:c on line ...
Defining \fp_to_dim:n on line ...
+Defining \__fp_to_dim_dispatch:w on line ...
+Defining \__fp_to_dim_recover:w on line ...
+Defining \__fp_to_dim:w on line ...
Defining \fp_to_int:N on line ...
Defining \fp_to_int:c on line ...
Defining \fp_to_int:n on line ...
Defining \__fp_to_int_dispatch:w on line ...
+Defining \__fp_to_int_recover:w on line ...
+Defining \__fp_to_int:w on line ...
Defining \dim_to_fp:n on line ...
Defining \__fp_from_dim_test:ww on line ...
Defining \__fp_from_dim:wNw on line ...
diff --git a/l3kernel/testfiles/m3expl003.uptex.tlg b/l3kernel/testfiles/m3expl003.uptex.tlg
index c6b90c4..7ebc563 100644
--- a/l3kernel/testfiles/m3expl003.uptex.tlg
+++ b/l3kernel/testfiles/m3expl003.uptex.tlg
@@ -3749,6 +3749,7 @@ Defining message LaTeX/kernel/fp-zero-div on line ...
Defining message LaTeX/kernel/fp-zero-div-ii on line ...
Defining message LaTeX/kernel/fp-invalid on line ...
Defining message LaTeX/kernel/fp-invalid-ii on line ...
+Defining message LaTeX/kernel/fp-unknown-type on line ...
Defining \__fp_parse_word_trunc:N on line ...
Defining \__fp_parse_word_floor:N on line ...
Defining \__fp_parse_word_ceil:N on line ...
@@ -4381,6 +4382,9 @@ Defining \__fp_asin_isqrt:wn on line ...
Defining \__fp_acsc_o:w on line ...
Defining \__fp_asec_o:w on line ...
Defining \__fp_acsc_normal_o:NfwNnw on line ...
+Defining \__fp_tuple_convert:Nw on line ...
+Defining \__fp_tuple_convert_loop:nNw on line ...
+Defining \__fp_tuple_convert_end:w on line ...
Defining \__fp_trim_zeros:w on line ...
Defining \__fp_trim_zeros_loop:w on line ...
Defining \__fp_trim_zeros_dot:w on line ...
@@ -4389,7 +4393,8 @@ Defining \fp_to_scientific:N on line ...
Defining \fp_to_scientific:c on line ...
Defining \fp_to_scientific:n on line ...
Defining \__fp_to_scientific_dispatch:w on line ...
-Defining \__fp_to_scientific_other:w on line ...
+Defining \__fp_to_scientific_recover:w on line ...
+Defining \__fp_tuple_to_scientific:w on line ...
Defining \__fp_to_scientific:w on line ...
Defining \__fp_to_scientific_normal:wnnnnn on line ...
Defining \__fp_to_scientific_normal:wNw on line ...
@@ -4397,7 +4402,8 @@ Defining \fp_to_decimal:N on line ...
Defining \fp_to_decimal:c on line ...
Defining \fp_to_decimal:n on line ...
Defining \__fp_to_decimal_dispatch:w on line ...
-Defining \__fp_to_decimal_other:w on line ...
+Defining \__fp_to_decimal_recover:w on line ...
+Defining \__fp_tuple_to_decimal:w on line ...
Defining \__fp_to_decimal:w on line ...
Defining \__fp_to_decimal_normal:wnnnnn on line ...
Defining \__fp_to_decimal_large:Nnnw on line ...
@@ -4406,7 +4412,7 @@ Defining \fp_to_tl:N on line ...
Defining \fp_to_tl:c on line ...
Defining \fp_to_tl:n on line ...
Defining \__fp_to_tl_dispatch:w on line ...
-Defining \__fp_to_tl_other:w on line ...
+Defining \__fp_to_tl_recover:w on line ...
Defining \__fp_tuple_to_tl:w on line ...
Defining \__fp_to_tl:w on line ...
Defining \__fp_to_tl_normal:nnnnn on line ...
@@ -4415,10 +4421,15 @@ Defining \__fp_to_tl_scientific:wNw on line ...
Defining \fp_to_dim:N on line ...
Defining \fp_to_dim:c on line ...
Defining \fp_to_dim:n on line ...
+Defining \__fp_to_dim_dispatch:w on line ...
+Defining \__fp_to_dim_recover:w on line ...
+Defining \__fp_to_dim:w on line ...
Defining \fp_to_int:N on line ...
Defining \fp_to_int:c on line ...
Defining \fp_to_int:n on line ...
Defining \__fp_to_int_dispatch:w on line ...
+Defining \__fp_to_int_recover:w on line ...
+Defining \__fp_to_int:w on line ...
Defining \dim_to_fp:n on line ...
Defining \__fp_from_dim_test:ww on line ...
Defining \__fp_from_dim:wNw on line ...
diff --git a/l3kernel/testfiles/m3expl003.xetex.tlg b/l3kernel/testfiles/m3expl003.xetex.tlg
index 656e6da..699c0e8 100644
--- a/l3kernel/testfiles/m3expl003.xetex.tlg
+++ b/l3kernel/testfiles/m3expl003.xetex.tlg
@@ -3759,6 +3759,7 @@ Defining message LaTeX/kernel/fp-zero-div on line ...
Defining message LaTeX/kernel/fp-zero-div-ii on line ...
Defining message LaTeX/kernel/fp-invalid on line ...
Defining message LaTeX/kernel/fp-invalid-ii on line ...
+Defining message LaTeX/kernel/fp-unknown-type on line ...
Defining \__fp_parse_word_trunc:N on line ...
Defining \__fp_parse_word_floor:N on line ...
Defining \__fp_parse_word_ceil:N on line ...
@@ -4391,6 +4392,9 @@ Defining \__fp_asin_isqrt:wn on line ...
Defining \__fp_acsc_o:w on line ...
Defining \__fp_asec_o:w on line ...
Defining \__fp_acsc_normal_o:NfwNnw on line ...
+Defining \__fp_tuple_convert:Nw on line ...
+Defining \__fp_tuple_convert_loop:nNw on line ...
+Defining \__fp_tuple_convert_end:w on line ...
Defining \__fp_trim_zeros:w on line ...
Defining \__fp_trim_zeros_loop:w on line ...
Defining \__fp_trim_zeros_dot:w on line ...
@@ -4399,7 +4403,8 @@ Defining \fp_to_scientific:N on line ...
Defining \fp_to_scientific:c on line ...
Defining \fp_to_scientific:n on line ...
Defining \__fp_to_scientific_dispatch:w on line ...
-Defining \__fp_to_scientific_other:w on line ...
+Defining \__fp_to_scientific_recover:w on line ...
+Defining \__fp_tuple_to_scientific:w on line ...
Defining \__fp_to_scientific:w on line ...
Defining \__fp_to_scientific_normal:wnnnnn on line ...
Defining \__fp_to_scientific_normal:wNw on line ...
@@ -4407,7 +4412,8 @@ Defining \fp_to_decimal:N on line ...
Defining \fp_to_decimal:c on line ...
Defining \fp_to_decimal:n on line ...
Defining \__fp_to_decimal_dispatch:w on line ...
-Defining \__fp_to_decimal_other:w on line ...
+Defining \__fp_to_decimal_recover:w on line ...
+Defining \__fp_tuple_to_decimal:w on line ...
Defining \__fp_to_decimal:w on line ...
Defining \__fp_to_decimal_normal:wnnnnn on line ...
Defining \__fp_to_decimal_large:Nnnw on line ...
@@ -4416,7 +4422,7 @@ Defining \fp_to_tl:N on line ...
Defining \fp_to_tl:c on line ...
Defining \fp_to_tl:n on line ...
Defining \__fp_to_tl_dispatch:w on line ...
-Defining \__fp_to_tl_other:w on line ...
+Defining \__fp_to_tl_recover:w on line ...
Defining \__fp_tuple_to_tl:w on line ...
Defining \__fp_to_tl:w on line ...
Defining \__fp_to_tl_normal:nnnnn on line ...
@@ -4425,10 +4431,15 @@ Defining \__fp_to_tl_scientific:wNw on line ...
Defining \fp_to_dim:N on line ...
Defining \fp_to_dim:c on line ...
Defining \fp_to_dim:n on line ...
+Defining \__fp_to_dim_dispatch:w on line ...
+Defining \__fp_to_dim_recover:w on line ...
+Defining \__fp_to_dim:w on line ...
Defining \fp_to_int:N on line ...
Defining \fp_to_int:c on line ...
Defining \fp_to_int:n on line ...
Defining \__fp_to_int_dispatch:w on line ...
+Defining \__fp_to_int_recover:w on line ...
+Defining \__fp_to_int:w on line ...
Defining \dim_to_fp:n on line ...
Defining \__fp_from_dim_test:ww on line ...
Defining \__fp_from_dim:wNw on line ...
diff --git a/l3kernel/testfiles/m3fp-parse002.lvt b/l3kernel/testfiles/m3fp-parse002.lvt
index e989ca3..dd04c17 100644
--- a/l3kernel/testfiles/m3fp-parse002.lvt
+++ b/l3kernel/testfiles/m3fp-parse002.lvt
@@ -160,7 +160,6 @@
\fp_to_tl:n { (1,)+(2,) } \NEWLINE
\fp_to_tl:n { (20,(40,60),()) - (1,(2,3),()) } \NEWLINE
\fp_to_tl:n { - (1,(2,3),()) } \NEWLINE
- \fp_to_tl:n { randint (1,2,3) } \NEWLINE
\fp_to_tl:n { (1,2,3)&&(4,5,6) } \NEWLINE
\fp_to_tl:n { sin((1,2),) } \NEWLINE
\fp_to_tl:n { atan((1,2),()) } \NEWLINE
@@ -180,6 +179,8 @@
{
\fp_to_scientific:n { 1 , 2 } \NEWLINE
\fp_to_decimal:n { 1 , 2 } \NEWLINE
+ \fp_to_dim:n { 1 , 2 } \NEWLINE
+ \fp_to_int:n { 1 , 2 } \NEWLINE
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/l3kernel/testfiles/m3fp-parse002.tlg b/l3kernel/testfiles/m3fp-parse002.tlg
index abb773d..83a1006 100644
--- a/l3kernel/testfiles/m3fp-parse002.tlg
+++ b/l3kernel/testfiles/m3fp-parse002.tlg
@@ -277,15 +277,6 @@ spelling (e.g., `I\hbox'). Otherwise just continue,
and I'll forget about whatever was undefined.
! Undefined control sequence.
<argument> \LaTeX3 error:
- Arguments in randint(1, 2, 3) are invalid.
-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:
Invalid operation ((1, 2, 3))&((4, 5, 6))
l. ... }
The control sequence at the end of the top line
@@ -432,7 +423,6 @@ nan
nan
nan
nan
-nan
()
(2, 3)
(4, 6)
@@ -446,7 +436,7 @@ TEST 12: Tuple conversion
============================================================
! Undefined control sequence.
<argument> \LaTeX3 error:
- Invalid operation fp_to_scientific((1, 2))
+ Invalid operation fp_to_dim((1, 2))
l. ... }
The control sequence at the end of the top line
of your error message was never \def'ed. If you have
@@ -455,13 +445,15 @@ spelling (e.g., `I\hbox'). Otherwise just continue,
and I'll forget about whatever was undefined.
! Undefined control sequence.
<argument> \LaTeX3 error:
- Invalid operation fp_to_decimal((1, 2))
+ Invalid operation fp_to_int((1, 2))
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.
-0.000000000000000e0
+(1.000000000000000e0, 2.000000000000000e0)
+(1, 2)
+0pt
0
============================================================
More information about the latex3-commits
mailing list