diff options
Diffstat (limited to 'Master/texmf-dist/tex')
23 files changed, 1188 insertions, 1040 deletions
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex index fd8da0a356d..8d95f514b00 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex +++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex @@ -62,7 +62,7 @@ %% l3legacy.dtx (with options: `package') %% l3deprecation.dtx (with options: `package') %% -%% Copyright (C) 1990-2024 The LaTeX Project +%% Copyright (C) 1990-2025 The LaTeX Project %% %% It may be distributed and/or modified under the conditions of %% the LaTeX Project Public License (LPPL), either version 1.3c of @@ -75,7 +75,7 @@ %% and all files in that bundle must be distributed together. %% %% File: expl3.dtx -\def\ExplFileDate{2024-12-25}% +\def\ExplFileDate{2025-01-18}% \begingroup \def\next{\endgroup}% \expandafter\ifx\csname PackageError\endcsname\relax @@ -3073,13 +3073,23 @@ Type H <return> for immediate help}\def~{\errmessage{% \__cs_generate_variant:w #2 \s__cs_mark {#3} {#4} {#5} } \cs_new_protected:Npn \__cs_generate_variant_p_form:nnn #1#2 - { \cs_generate_variant:cn { #1 _p : #2 } } + { \__cs_generate_variant_check:nn { #1 _p : #2 } } \cs_new_protected:Npn \__cs_generate_variant_T_form:nnn #1#2 - { \cs_generate_variant:cn { #1 : #2 T } } + { \__cs_generate_variant_check:nn { #1 : #2 T } } \cs_new_protected:Npn \__cs_generate_variant_F_form:nnn #1#2 - { \cs_generate_variant:cn { #1 : #2 F } } + { \__cs_generate_variant_check:nn { #1 : #2 F } } \cs_new_protected:Npn \__cs_generate_variant_TF_form:nnn #1#2 - { \cs_generate_variant:cn { #1 : #2 TF } } + { \__cs_generate_variant_check:nn { #1 : #2 TF } } +\cs_new_protected:Npn \__cs_generate_variant_check:nn #1#2 + { + \cs_if_exist:cTF {#1} + { \cs_generate_variant:cn {#1} {#2} } + { + \msg_error:nne + { kernel } { conditional-base-undefined } + { \token_to_str:c {#1} } + } + } \cs_new_protected:Npn \exp_args_generate:n #1 { \exp_args:No \clist_map_inline:nn { \tl_to_str:n {#1} } @@ -6379,13 +6389,14 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new:Npn \int_eval:n #1 { \tex_the:D \__int_eval:w #1 \__int_eval_end: } \cs_new:Npn \int_eval:w { \tex_the:D \__int_eval:w } +\cs_new_eq:NN \__int_sep: \tex_right:D \cs_new:Npn \int_sign:n #1 { \int_value:w \exp_after:wN \__int_sign:Nw - \int_value:w \__int_eval:w #1 \__int_eval_end: ; + \int_value:w \__int_eval:w #1 \__int_eval_end: \__int_sep: \exp_stop_f: } -\cs_new:Npn \__int_sign:Nw #1#2 ; +\cs_new:Npn \__int_sign:Nw #1#2 \__int_sep: { \if_meaning:w 0 #1 0 @@ -6404,20 +6415,20 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new:Npn \int_max:nn #1#2 { \int_value:w \exp_after:wN \__int_maxmin:wwN - \int_value:w \__int_eval:w #1 \exp_after:wN ; - \int_value:w \__int_eval:w #2 ; + \int_value:w \__int_eval:w #1 \exp_after:wN \__int_sep: + \int_value:w \__int_eval:w #2 \__int_sep: > \exp_stop_f: } \cs_new:Npn \int_min:nn #1#2 { \int_value:w \exp_after:wN \__int_maxmin:wwN - \int_value:w \__int_eval:w #1 \exp_after:wN ; - \int_value:w \__int_eval:w #2 ; + \int_value:w \__int_eval:w #1 \exp_after:wN \__int_sep: + \int_value:w \__int_eval:w #2 \__int_sep: < \exp_stop_f: } -\cs_new:Npn \__int_maxmin:wwN #1 ; #2 ; #3 +\cs_new:Npn \__int_maxmin:wwN #1 \__int_sep: #2 \__int_sep: #3 { \if_int_compare:w #1 #3 #2 ~ #1 @@ -6429,11 +6440,11 @@ Type H <return> for immediate help}\def~{\errmessage{% { \int_value:w \__int_eval:w \exp_after:wN \__int_div_truncate:NwNw - \int_value:w \__int_eval:w #1 \exp_after:wN ; - \int_value:w \__int_eval:w #2 ; + \int_value:w \__int_eval:w #1 \exp_after:wN \__int_sep: + \int_value:w \__int_eval:w #2 \__int_sep: \__int_eval_end: } -\cs_new:Npn \__int_div_truncate:NwNw #1#2; #3#4; +\cs_new:Npn \__int_div_truncate:NwNw #1#2 \__int_sep: #3#4 \__int_sep: { \if_meaning:w 0 #1 0 @@ -6451,12 +6462,12 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new:Npn \int_mod:nn #1#2 { \int_value:w \__int_eval:w \exp_after:wN \__int_mod:ww - \int_value:w \__int_eval:w #1 \exp_after:wN ; - \int_value:w \__int_eval:w #2 ; + \int_value:w \__int_eval:w #1 \exp_after:wN \__int_sep: + \int_value:w \__int_eval:w #2 \__int_sep: \__int_eval_end: } -\cs_new:Npn \__int_mod:ww #1; #2; - { #1 - ( \__int_div_truncate:NwNw #1 ; #2 ; ) * #2 } +\cs_new:Npn \__int_mod:ww #1 \__int_sep: #2 \__int_sep: + { #1 - ( \__int_div_truncate:NwNw #1 \__int_sep: #2 \__int_sep: ) * #2 } \cs_new:Npn \__kernel_int_add:nnn #1#2#3 { \int_value:w \__int_eval:w #1 @@ -6768,41 +6779,47 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new:Npn \int_step_function:nnnN #1#2#3 { - \exp_after:wN \__int_step:wwwN - \int_value:w \__int_eval:w #1 \exp_after:wN ; - \int_value:w \__int_eval:w #2 \exp_after:wN ; - \int_value:w \__int_eval:w #3 ; + \exp_after:wN \__int_step:w + \int_value:w \__int_eval:w #1 \exp_after:wN \__int_sep: + \int_value:w \__int_eval:w #2 \exp_after:wN \__int_sep: + \int_value:w \__int_eval:w #3 \__int_sep: } -\cs_new:Npn \__int_step:wwwN #1; #2; #3; #4 +\cs_new:Npn \__int_step:w #1 \__int_sep: #2 \__int_sep: #3 \__int_sep: #4 { \int_compare:nNnTF {#2} > \c_zero_int - { \__int_step:NwnnN > } + { \__int_step:Nw > } { - \int_compare:nNnTF {#2} = \c_zero_int + \if_meaning:w 0 #2 + \exp_after:wN \use_ii:nn + \fi: + \use_none:n { \msg_expandable_error:nnn { kernel } { zero-step } {#4} \prg_break: } - { \__int_step:NwnnN < } + \__int_step:Nw < } - #1 ; {#2} {#3} #4 + #1 \__int_sep: {#2} {#3} {#4} \prg_break_point: } -\cs_new:Npn \__int_step:NwnnN #1#2 ; #3#4#5 +\cs_new:Npn \__int_step:Nw #1#2 \__int_sep: #3#4#5 { \if_int_compare:w #2 #1 #4 \exp_stop_f: \prg_break:n \fi: #5 {#2} - \exp_after:wN \__int_step:NwnnN + \exp_after:wN \__int_step:Nw \exp_after:wN #1 - \int_value:w \__int_eval:w #2 + #3 ; {#3} {#4} #5 + \int_value:w \__int_eval:w #2 + #3 \__int_sep: {#3} {#4} {#5} } \cs_new:Npn \int_step_function:nN - { \int_step_function:nnnN { 1 } { 1 } } + { \int_step_function:nnnN \c_one_int \c_one_int } \cs_new:Npn \int_step_function:nnN #1 - { \int_step_function:nnnN {#1} { 1 } } + { \int_step_function:nnnN {#1} \c_one_int } +\cs_new_eq:NN \int_step_tokens:nn \int_step_function:nN +\cs_new_eq:NN \int_step_tokens:nnn \int_step_function:nnN +\cs_new_eq:NN \int_step_tokens:nnnn \int_step_function:nnnN \cs_new_protected:Npn \int_step_inline:nn { \int_step_inline:nnnn { 1 } { 1 } } \cs_new_protected:Npn \int_step_inline:nnn #1 @@ -11165,6 +11182,13 @@ Type H <return> for immediate help}\def~{\errmessage{% } \msg_new:nnn { kernel } { randint-backward-range } { Wrong~order~of~bounds~in~\iow_char:N\\int_rand:nn{#1}{#2}. } +\msg_new:nnnn { kernel } { conditional-base-undefined } + { Undefined~conditional~base~function~'#1'. } + { + \c__msg_coding_error_text_tl + LaTeX~has~been~asked~to~define~a~variant~of~the~conditional~'#1',~ + but~the~latter~is~not~defined. + } \msg_new:nnnn { kernel } { conditional-form-unknown } { Conditional~form~'#1'~for~function~'#2'~unknown. } { @@ -13894,16 +13918,27 @@ Type H <return> for immediate help}\def~{\errmessage{% \fi: \cs_set_eq:cN {#1} \tex_undefined:D } -\cs_new_protected:Npn \keys_define:nn - { \__keys_define:onn \l__keys_module_str } -\cs_generate_variant:Nn \keys_define:nn { ne , nx } -\cs_new_protected:Npn \__keys_define:nnn #1#2#3 +\cs_new_protected:Npn \keys_define:nn #1#2 { - \str_set:Ne \l__keys_module_str { \__keys_trim_spaces:n {#2} } - \keyval_parse:NNn \__keys_define:n \__keys_define:nn {#3} - \str_set:Nn \l__keys_module_str {#1} + \use:e + { + \exp_not:n + { + \str_set:Ne \l__keys_module_str { \__keys_trim_spaces:n {#1} } + \keyval_parse:NNn \__keys_define:n \__keys_define:nn {#2} + } + \__keys_reset_var:N \l__keys_module_str + \__keys_reset_var:N \l__keys_inherit_str + \__keys_reset_var:N \l_keys_choice_tl + \__keys_reset_var:N \l_keys_key_tl + \__keys_reset_var:N \l_keys_key_str + \__keys_reset_var:N \l_keys_path_tl + \__keys_reset_var:N \l_keys_path_str + \__keys_reset_var:N \l_keys_value_tl + \int_set:Nn \l_keys_choice_int { \int_use:N \l_keys_choice_int } + } } -\cs_generate_variant:Nn \__keys_define:nnn { o } +\cs_generate_variant:Nn \keys_define:nn { ne , nx } \cs_new_protected:Npn \__keys_define:n #1 { \bool_set_true:N \l__keys_no_value_bool @@ -14167,14 +14202,8 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs:w if#1 \cs_end: } } -\cs_new_protected:Npn \__keys_meta_make:n #1 - { - \exp_args:NVo \__keys_cmd_set_direct:nn \l_keys_path_str - { - \exp_after:wN \__keys_set:nn \exp_after:wN - { \l__keys_module_str } {#1} - } - } +\cs_new_protected:Npn \__keys_meta_make:n + { \exp_args:NV \__keys_meta_make:nn \l__keys_module_str } \cs_new_protected:Npn \__keys_meta_make:nn #1#2 { \exp_args:NV \__keys_cmd_set_direct:nn @@ -14501,33 +14530,34 @@ Type H <return> for immediate help}\def~{\errmessage{% { \__keys_value_requirement:nn { forbidden } {#1} } \cs_new_protected:cpn { \c__keys_props_root_str .value_required:n } #1 { \__keys_value_requirement:nn { required } {#1} } -\cs_new_protected:Npn \__keys_set:nnnnNn - { - \exp_args:Nooo \__keys_set:nnnnnnnNn - \l__keys_unused_clist - \l__keys_selective_clist - \l__keys_relative_tl - } -\cs_new_protected:Npn \__keys_set:nnnnnnnNn #1#2#3#4#5#6#7#8#9 +\cs_new_protected:Npn \__keys_set:nnnnNn #1#2#3#4#5#6 { - \clist_clear:N \l__keys_unused_clist - \clist_set:Ne \l__keys_selective_clist { \tl_to_str:n {#5} } - \tl_set:Nn \l__keys_relative_tl {#7} \use:e { \exp_not:n { - #9 - \__keys_set:nn {#4} {#6} + \clist_clear:N \l__keys_unused_clist + \clist_set:Ne \l__keys_selective_clist { \tl_to_str:n {#2} } + \tl_set:Nn \l__keys_relative_tl {#4} + #6 + \__keys_set:nn {#1} {#3} + \clist_set_eq:NN #5 \l__keys_unused_clist } \__keys_reset_bool:N \l__keys_only_known_bool \__keys_reset_bool:N \l__keys_exclude_bool \__keys_reset_bool:N \l__keys_selective_bool + \__keys_reset_var:N \l__keys_unused_clist + \__keys_reset_var:N \l__keys_selective_clist + \__keys_reset_var:N \l__keys_relative_tl + \__keys_reset_var:N \l__keys_inherit_str + \__keys_reset_var:N \l_keys_choice_tl + \__keys_reset_var:N \l_keys_key_tl + \__keys_reset_var:N \l_keys_key_str + \__keys_reset_var:N \l_keys_path_tl + \__keys_reset_var:N \l_keys_path_str + \__keys_reset_var:N \l_keys_value_tl + \int_set:Nn \l_keys_choice_int { \int_use:N \l_keys_choice_int } } - \clist_set_eq:NN #8 \l__keys_unused_clist - \__kernel_tl_set:Nx \l__keys_unused_clist { \exp_not:n {#1} } - \__kernel_tl_set:Nx \l__keys_selective_clist {#2} - \__kernel_tl_set:Nx \l__keys_relative_tl { \exp_not:n {#3} } } \cs_new:Npn \__keys_reset_bool:N #1 { @@ -14535,6 +14565,12 @@ Type H <return> for immediate help}\def~{\errmessage{% { bool_set_ \bool_if:NTF #1 { true } { false } :N } \exp_not:N #1 } +\cs_new:Npn \__keys_reset_var:N #1 + { + \exp_not:n + { \__kernel_tl_set:Nx #1 } + { \exp_not:N \exp_not:n { \exp_not:o { #1 } } } + } \cs_new_protected:Npn \__keys_set:nn #1#2 { \exp_args:No \__keys_set:nnn \l__keys_module_str {#1} {#2} } \cs_new_protected:Npn \__keys_set:nnn #1#2#3 @@ -15338,21 +15374,24 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new_eq:NN \__fp_int_eval:w \tex_numexpr:D \cs_new_eq:NN \__fp_int_eval_end: \scan_stop: \cs_new_eq:NN \__fp_int_to_roman:w \tex_romannumeral:D +\cs_new_eq:NN \__fp_sep: \tex_right:D \cs_new:Npn \__fp_use_none_stop_f:n #1 { \exp_stop_f: } -\cs_new:Npn \__fp_use_s:n #1 { #1; } -\cs_new:Npn \__fp_use_s:nn #1#2 { #1#2; } -\cs_new:Npn \__fp_use_none_until_s:w #1; { } -\cs_new:Npn \__fp_use_i_until_s:nw #1#2; {#1} -\cs_new:Npn \__fp_use_ii_until_s:nnw #1#2#3; {#2} -\cs_new:Npn \__fp_reverse_args:Nww #1 #2; #3; { #1 #3; #2; } -\cs_new:Npn \__fp_rrot:www #1; #2; #3; { #2; #3; #1; } -\cs_new:Npn \__fp_use_i:ww #1; #2; { #1; } -\cs_new:Npn \__fp_use_i:www #1; #2; #3; { #1; } +\cs_new:Npn \__fp_use_s:n #1 { #1\__fp_sep: } +\cs_new:Npn \__fp_use_s:nn #1#2 { #1#2\__fp_sep: } +\cs_new:Npn \__fp_use_none_until_s:w #1\__fp_sep: { } +\cs_new:Npn \__fp_use_i_until_s:nw #1#2\__fp_sep: {#1} +\cs_new:Npn \__fp_use_ii_until_s:nnw #1#2#3\__fp_sep: {#2} +\cs_new:Npn \__fp_reverse_args:Nww #1 #2\__fp_sep: #3\__fp_sep: + { #1 #3\__fp_sep: #2\__fp_sep: } +\cs_new:Npn \__fp_rrot:www #1\__fp_sep: #2\__fp_sep: #3\__fp_sep: + { #2\__fp_sep: #3\__fp_sep: #1\__fp_sep: } +\cs_new:Npn \__fp_use_i:ww #1\__fp_sep: #2\__fp_sep: { #1\__fp_sep: } +\cs_new:Npn \__fp_use_i:www #1\__fp_sep: #2\__fp_sep: #3\__fp_sep: { #1\__fp_sep: } \cs_new_protected:Npn \__fp_misused:n #1 { \msg_error:nne { fp } { misused } { \fp_to_tl:n {#1} } } \scan_new:N \s__fp -\cs_new_protected:Npn \__fp_chk:w #1 ; - { \__fp_misused:n { \s__fp \__fp_chk:w #1 ; } } +\cs_new_protected:Npn \__fp_chk:w #1 \__fp_sep: + { \__fp_misused:n { \s__fp \__fp_chk:w #1 \__fp_sep: } } \scan_new:N \s__fp_expr_mark \scan_new:N \s__fp_expr_stop \scan_new:N \s__fp_mark @@ -15363,11 +15402,11 @@ Type H <return> for immediate help}\def~{\errmessage{% \scan_new:N \s__fp_overflow \scan_new:N \s__fp_division \scan_new:N \s__fp_exact -\tl_const:Nn \c_zero_fp { \s__fp \__fp_chk:w 0 0 \s__fp_exact ; } -\tl_const:Nn \c_minus_zero_fp { \s__fp \__fp_chk:w 0 2 \s__fp_exact ; } -\tl_const:Nn \c_inf_fp { \s__fp \__fp_chk:w 2 0 \s__fp_exact ; } -\tl_const:Nn \c_minus_inf_fp { \s__fp \__fp_chk:w 2 2 \s__fp_exact ; } -\tl_const:Nn \c_nan_fp { \s__fp \__fp_chk:w 3 1 \s__fp_exact ; } +\tl_const:Nn \c_zero_fp { \s__fp \__fp_chk:w 0 0 \s__fp_exact \__fp_sep: } +\tl_const:Nn \c_minus_zero_fp { \s__fp \__fp_chk:w 0 2 \s__fp_exact \__fp_sep: } +\tl_const:Nn \c_inf_fp { \s__fp \__fp_chk:w 2 0 \s__fp_exact \__fp_sep: } +\tl_const:Nn \c_minus_inf_fp { \s__fp \__fp_chk:w 2 2 \s__fp_exact \__fp_sep: } +\tl_const:Nn \c_nan_fp { \s__fp \__fp_chk:w 3 1 \s__fp_exact \__fp_sep: } \int_const:Nn \c__fp_prec_int { 16 } \int_const:Nn \c__fp_half_prec_int { 8 } \int_const:Nn \c__fp_block_int { 4 } @@ -15379,12 +15418,12 @@ Type H <return> for immediate help}\def~{\errmessage{% { \s__fp \__fp_chk:w 1 0 { \int_eval:n { \c__fp_max_exponent_int + 1 } } - {1000} {0000} {0000} {0000} ; + {1000} {0000} {0000} {0000} \__fp_sep: } \cs_new:Npn \__fp_zero_fp:N #1 - { \s__fp \__fp_chk:w 0 #1 \s__fp_underflow ; } + { \s__fp \__fp_chk:w 0 #1 \s__fp_underflow \__fp_sep: } \cs_new:Npn \__fp_inf_fp:N #1 - { \s__fp \__fp_chk:w 2 #1 \s__fp_overflow ; } + { \s__fp \__fp_chk:w 2 #1 \s__fp_overflow \__fp_sep: } \cs_new:Npn \__fp_exponent:w \s__fp \__fp_chk:w #1 { \if_meaning:w 1 #1 @@ -15403,7 +15442,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \s__fp { \__fp_use_i_until_s:nw 4 } \s__fp_stop } -\cs_new:Npn \__fp_sanitize:Nw #1 #2; +\cs_new:Npn \__fp_sanitize:Nw #1 #2\__fp_sep: { \if_case:w \if_int_compare:w #2 > \c__fp_max_exponent_int 1 ~ \else: @@ -15415,8 +15454,8 @@ Type H <return> for immediate help}\def~{\errmessage{% \fi: \s__fp \__fp_chk:w 1 #1 {#2} } -\cs_new:Npn \__fp_sanitize:wN #1; #2 { \__fp_sanitize:Nw #2 #1; } -\cs_new:Npn \__fp_sanitize_zero:w \s__fp \__fp_chk:w #1 #2 #3; +\cs_new:Npn \__fp_sanitize:wN #1\__fp_sep: #2 { \__fp_sanitize:Nw #2 #1\__fp_sep: } +\cs_new:Npn \__fp_sanitize_zero:w \s__fp \__fp_chk:w #1 #2 #3\__fp_sep: { \c_zero_fp } \cs_new:Npn \__fp_exp_after_o:w \s__fp \__fp_chk:w #1 { @@ -15438,52 +15477,52 @@ Type H <return> for immediate help}\def~{\errmessage{% { \exp:w \exp_end_continue_f:w #1 } #2 } -\cs_new:Npn \__fp_exp_after_special:nNNw #1#2#3#4; +\cs_new:Npn \__fp_exp_after_special:nNNw #1#2#3#4\__fp_sep: { \exp_after:wN \s__fp \exp_after:wN \__fp_chk:w \exp_after:wN #2 \exp_after:wN #3 \exp_after:wN #4 - \exp_after:wN ; + \exp_after:wN \__fp_sep: #1 } -\cs_new:Npn \__fp_exp_after_normal:nNNw #1 1 #2 #3 #4#5#6#7; +\cs_new:Npn \__fp_exp_after_normal:nNNw #1 1 #2 #3 #4#5#6#7\__fp_sep: { \exp_after:wN \__fp_exp_after_normal:Nwwwww \exp_after:wN #2 - \int_value:w #3 \exp_after:wN ; - \int_value:w 1 #4 \exp_after:wN ; - \int_value:w 1 #5 \exp_after:wN ; - \int_value:w 1 #6 \exp_after:wN ; - \int_value:w 1 #7 \exp_after:wN ; #1 + \int_value:w #3 \exp_after:wN \__fp_sep: + \int_value:w 1 #4 \exp_after:wN \__fp_sep: + \int_value:w 1 #5 \exp_after:wN \__fp_sep: + \int_value:w 1 #6 \exp_after:wN \__fp_sep: + \int_value:w 1 #7 \exp_after:wN \__fp_sep: #1 } \cs_new:Npn \__fp_exp_after_normal:Nwwwww - #1 #2; 1 #3 ; 1 #4 ; 1 #5 ; 1 #6 ; - { \s__fp \__fp_chk:w 1 #1 {#2} {#3} {#4} {#5} {#6} ; } + #1 #2\__fp_sep: 1 #3 \__fp_sep: 1 #4 \__fp_sep: 1 #5 \__fp_sep: 1 #6 \__fp_sep: + { \s__fp \__fp_chk:w 1 #1 {#2} {#3} {#4} {#5} {#6} \__fp_sep: } \scan_new:N \s__fp_tuple -\cs_new_protected:Npn \__fp_tuple_chk:w #1 ; - { \__fp_misused:n { \s__fp_tuple \__fp_tuple_chk:w #1 ; } } +\cs_new_protected:Npn \__fp_tuple_chk:w #1 \__fp_sep: + { \__fp_misused:n { \s__fp_tuple \__fp_tuple_chk:w #1 \__fp_sep: } } \tl_const:Nn \c__fp_empty_tuple_fp - { \s__fp_tuple \__fp_tuple_chk:w { } ; } + { \s__fp_tuple \__fp_tuple_chk:w { } \__fp_sep: } \cs_new:Npn \__fp_array_count:n #1 - { \__fp_tuple_count:w \s__fp_tuple \__fp_tuple_chk:w {#1} ; } -\cs_new:Npn \__fp_tuple_count:w \s__fp_tuple \__fp_tuple_chk:w #1 ; + { \__fp_tuple_count:w \s__fp_tuple \__fp_tuple_chk:w {#1} \__fp_sep: } +\cs_new:Npn \__fp_tuple_count:w \s__fp_tuple \__fp_tuple_chk:w #1 \__fp_sep: { \int_value:w \__fp_int_eval:w 0 - \__fp_tuple_count_loop:Nw #1 { ? \prg_break: } ; + \__fp_tuple_count_loop:Nw #1 { ? \prg_break: } \__fp_sep: \prg_break_point: \__fp_int_eval_end: } -\cs_new:Npn \__fp_tuple_count_loop:Nw #1#2; +\cs_new:Npn \__fp_tuple_count_loop:Nw #1#2\__fp_sep: { \use_none:n #1 + 1 \__fp_tuple_count_loop:Nw } \cs_new:Npn \__fp_if_type_fp:NTwFw #1 \s__fp #2 #3 \s__fp_stop {#2} \cs_new:Npn \__fp_array_if_all_fp:nTF #1 { - \__fp_array_if_all_fp_loop:w #1 { \s__fp \prg_break: } ; + \__fp_array_if_all_fp_loop:w #1 { \s__fp \prg_break: } \__fp_sep: \prg_break_point: \use_i:nn } -\cs_new:Npn \__fp_array_if_all_fp_loop:w #1#2 ; +\cs_new:Npn \__fp_array_if_all_fp_loop:w #1#2 \__fp_sep: { \__fp_if_type_fp:NTwFw #1 \__fp_array_if_all_fp_loop:w @@ -15545,7 +15584,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new:Npn \__fp_exp_after_tuple_o:w { \__fp_exp_after_tuple_f:nw { \exp_after:wN \exp_stop_f: } } \cs_new:Npn \__fp_exp_after_tuple_f:nw - #1 \s__fp_tuple \__fp_tuple_chk:w #2 ; + #1 \s__fp_tuple \__fp_tuple_chk:w #2 \__fp_sep: { \exp_after:wN \s__fp_tuple \exp_after:wN \__fp_tuple_chk:w @@ -15553,7 +15592,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \exp:w \exp_end_continue_f:w \__fp_exp_after_array_f:w #2 \s__fp_expr_stop \exp_after:wN } - \exp_after:wN ; + \exp_after:wN \__fp_sep: \exp:w \exp_end_continue_f:w #1 } \cs_new:Npn \__fp_exp_after_array_f:w @@ -15561,42 +15600,43 @@ Type H <return> for immediate help}\def~{\errmessage{% \int_const:Nn \c__fp_leading_shift_int { - 5 0000 } \int_const:Nn \c__fp_middle_shift_int { 5 0000 * 9999 } \int_const:Nn \c__fp_trailing_shift_int { 5 0000 * 10000 } -\cs_new:Npn \__fp_pack:NNNNNw #1 #2#3#4#5 #6; { + #1#2#3#4#5 ; {#6} } +\cs_new:Npn \__fp_pack:NNNNNw #1 #2#3#4#5 #6\__fp_sep: + { + #1#2#3#4#5 \__fp_sep: {#6} } \int_const:Nn \c__fp_big_leading_shift_int { - 15 2374 } \int_const:Nn \c__fp_big_middle_shift_int { 15 2374 * 9999 } \int_const:Nn \c__fp_big_trailing_shift_int { 15 2374 * 10000 } -\cs_new:Npn \__fp_pack_big:NNNNNNw #1#2 #3#4#5#6 #7; - { + #1#2#3#4#5#6 ; {#7} } +\cs_new:Npn \__fp_pack_big:NNNNNNw #1#2 #3#4#5#6 #7\__fp_sep: + { + #1#2#3#4#5#6 \__fp_sep: {#7} } \int_const:Nn \c__fp_Bigg_leading_shift_int { - 20 0000 } \int_const:Nn \c__fp_Bigg_middle_shift_int { 20 0000 * 9999 } \int_const:Nn \c__fp_Bigg_trailing_shift_int { 20 0000 * 10000 } -\cs_new:Npn \__fp_pack_Bigg:NNNNNNw #1#2 #3#4#5#6 #7; - { + #1#2#3#4#5#6 ; {#7} } -\cs_new:Npn \__fp_pack_twice_four:wNNNNNNNN #1; #2#3#4#5 #6#7#8#9 - { #1 {#2#3#4#5} {#6#7#8#9} ; } -\cs_new:Npn \__fp_pack_eight:wNNNNNNNN #1; #2#3#4#5 #6#7#8#9 - { #1 {#2#3#4#5#6#7#8#9} ; } -\cs_new:Npn \__fp_basics_pack_low:NNNNNw #1 #2#3#4#5 #6; - { + #1 - 1 ; {#2#3#4#5} {#6} ; } -\cs_new:Npn \__fp_basics_pack_high:NNNNNw #1 #2#3#4#5 #6; +\cs_new:Npn \__fp_pack_Bigg:NNNNNNw #1#2 #3#4#5#6 #7\__fp_sep: + { + #1#2#3#4#5#6 \__fp_sep: {#7} } +\cs_new:Npn \__fp_pack_twice_four:wNNNNNNNN #1\__fp_sep: #2#3#4#5 #6#7#8#9 + { #1 {#2#3#4#5} {#6#7#8#9} \__fp_sep: } +\cs_new:Npn \__fp_pack_eight:wNNNNNNNN #1\__fp_sep: #2#3#4#5 #6#7#8#9 + { #1 {#2#3#4#5#6#7#8#9} \__fp_sep: } +\cs_new:Npn \__fp_basics_pack_low:NNNNNw #1 #2#3#4#5 #6\__fp_sep: + { + #1 - 1 \__fp_sep: {#2#3#4#5} {#6} \__fp_sep: } +\cs_new:Npn \__fp_basics_pack_high:NNNNNw #1 #2#3#4#5 #6\__fp_sep: { \if_meaning:w 2 #1 \__fp_basics_pack_high_carry:w \fi: - ; {#2#3#4#5} {#6} + \__fp_sep: {#2#3#4#5} {#6} } -\cs_new:Npn \__fp_basics_pack_high_carry:w \fi: ; #1 - { \fi: + 1 ; {1000} } -\cs_new:Npn \__fp_basics_pack_weird_low:NNNNw #1 #2#3#4 #5; +\cs_new:Npn \__fp_basics_pack_high_carry:w \fi: \__fp_sep: #1 + { \fi: + 1 \__fp_sep: {1000} } +\cs_new:Npn \__fp_basics_pack_weird_low:NNNNw #1 #2#3#4 #5\__fp_sep: { \if_meaning:w 2 #1 + 1 \fi: \__fp_int_eval_end: - #2#3#4; {#5} ; + #2#3#4\__fp_sep: {#5} \__fp_sep: } \cs_new:Npn \__fp_basics_pack_weird_high:NNNNNNNNw - 1 #1#2#3#4 #5#6#7#8 #9; { ; {#1#2#3#4} {#5#6#7#8} {#9} } + 1 #1#2#3#4 #5#6#7#8 #9\__fp_sep: { \__fp_sep: {#1#2#3#4} {#5#6#7#8} {#9} } \cs_new:Npn \__fp_decimate:nNnnnn #1 { \cs:w @@ -15610,17 +15650,17 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_end: } \cs_new:Npn \__fp_decimate_:Nnnnn #1 #2#3#4#5 - { #1 0 {#2#3} {#4#5} ; } + { #1 0 {#2#3} {#4#5} \__fp_sep: } \cs_new:Npn \__fp_decimate_tiny:Nnnnn #1 #2#3#4#5 - { #1 1 { 0000 0000 } { 0000 0000 } 0 #2#3#4#5 ; } + { #1 1 { 0000 0000 } { 0000 0000 } 0 #2#3#4#5 \__fp_sep: } \cs_new:Npn \__fp_tmp:w #1 #2 #3 { \cs_new:cpn { __fp_decimate_ #1 :Nnnnn } ##1 ##2##3##4##5 { \exp_after:wN ##1 \int_value:w - \exp_after:wN \__fp_round_digit:Nw #2 ; - \__fp_decimate_pack:nnnnnnnnnnw #3 ; + \exp_after:wN \__fp_round_digit:Nw #2 \__fp_sep: + \__fp_decimate_pack:nnnnnnnnnnw #3 \__fp_sep: } } \__fp_tmp:w {i} {\use_none:nnn #50}{ 0{#2}#3{#4}#5 } @@ -15644,18 +15684,19 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new:Npn \__fp_decimate_pack:nnnnnnw #1 #2#3#4#5#6 { {#1} {#2#3#4#5#6} } \cs_new:Npn \__fp_case_use:nw #1#2 \fi: #3 \s__fp { \fi: #1 \s__fp } -\cs_new:Npn \__fp_case_return:nw #1#2 \fi: #3 ; { \fi: #1 } -\cs_new:Npn \__fp_case_return_o:Nw #1#2 \fi: #3 \s__fp #4 ; +\cs_new:Npn \__fp_case_return:nw #1#2 \fi: #3 \__fp_sep: { \fi: #1 } +\cs_new:Npn \__fp_case_return_o:Nw #1#2 \fi: #3 \s__fp #4 \__fp_sep: { \fi: \exp_after:wN #1 } \cs_new:Npn \__fp_case_return_same_o:w #1 \fi: #2 \s__fp { \fi: \__fp_exp_after_o:w \s__fp } -\cs_new:Npn \__fp_case_return_o:Nww #1#2 \fi: #3 \s__fp #4 ; #5 ; +\cs_new:Npn \__fp_case_return_o:Nww #1#2 \fi: #3 \s__fp #4 \__fp_sep: #5 \__fp_sep: { \fi: \exp_after:wN #1 } -\cs_new:Npn \__fp_case_return_i_o:ww #1 \fi: #2 \s__fp #3 ; \s__fp #4 ; - { \fi: \__fp_exp_after_o:w \s__fp #3 ; } -\cs_new:Npn \__fp_case_return_ii_o:ww #1 \fi: #2 \s__fp #3 ; +\cs_new:Npn \__fp_case_return_i_o:ww + #1 \fi: #2 \s__fp #3 \__fp_sep: \s__fp #4 \__fp_sep: + { \fi: \__fp_exp_after_o:w \s__fp #3 \__fp_sep: } +\cs_new:Npn \__fp_case_return_ii_o:ww #1 \fi: #2 \s__fp #3 \__fp_sep: { \fi: \__fp_exp_after_o:w } -\prg_new_conditional:Npnn \__fp_int:w \s__fp \__fp_chk:w #1 #2 #3 #4; +\prg_new_conditional:Npnn \__fp_int:w \s__fp \__fp_chk:w #1 #2 #3 #4\__fp_sep: { TF , T , F , p } { \if_case:w #1 \exp_stop_f: @@ -15674,26 +15715,26 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new:Npn \__fp_small_int:wTF \s__fp \__fp_chk:w #1#2 { \if_case:w #1 \exp_stop_f: - \__fp_case_return:nw { \__fp_small_int_true:wTF 0 ; } + \__fp_case_return:nw { \__fp_small_int_true:wTF 0 \__fp_sep: } \or: \exp_after:wN \__fp_small_int_normal:NnwTF \or: \__fp_case_return:nw { \exp_after:wN \__fp_small_int_true:wTF \int_value:w - \if_meaning:w 2 #2 - \fi: 1 0000 0000 ; + \if_meaning:w 2 #2 - \fi: 1 0000 0000 \__fp_sep: } \else: \__fp_case_return:nw \use_ii:nn \fi: #2 } -\cs_new:Npn \__fp_small_int_true:wTF #1; #2#3 { #2 {#1} } -\cs_new:Npn \__fp_small_int_normal:NnwTF #1#2#3; +\cs_new:Npn \__fp_small_int_true:wTF #1\__fp_sep: #2#3 { #2 {#1} } +\cs_new:Npn \__fp_small_int_normal:NnwTF #1#2#3\__fp_sep: { \__fp_decimate:nNnnnn { \c__fp_prec_int - #2 } \__fp_small_int_test:NnnwNw #3 #1 } -\cs_new:Npn \__fp_small_int_test:NnnwNw #1#2#3#4; #5 +\cs_new:Npn \__fp_small_int_test:NnnwNw #1#2#3#4\__fp_sep: #5 { \if_meaning:w 0 #1 \exp_after:wN \__fp_small_int_true:wTF @@ -15703,7 +15744,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \else: #3 \fi: - \exp_after:wN ; + \exp_after:wN \__fp_sep: \else: \exp_after:wN \use_ii:nn \fi: @@ -15759,19 +15800,21 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new_protected:Npn \__fp_trap_invalid_operation_set:N #1 { \exp_args:Nno \use:n - { \cs_set:Npn \__fp_invalid_operation:nnw ##1##2##3; } + { \cs_set:Npn \__fp_invalid_operation:nnw ##1##2##3\__fp_sep: } { #1 - \__fp_error:nnfn { invalid } {##2} { \fp_to_tl:n { ##3; } } { } + \__fp_error:nnfn { invalid } {##2} { \fp_to_tl:n { ##3\__fp_sep: } } { } \flag_ensure_raised:N \l_fp_invalid_operation_flag ##1 } \exp_args:Nno \use:n - { \cs_set:Npn \__fp_invalid_operation_o:Nww ##1##2; ##3; } + { \cs_set:Npn \__fp_invalid_operation_o:Nww ##1##2\__fp_sep: ##3\__fp_sep: } { #1 \__fp_error:nffn { invalid-ii } - { \fp_to_tl:n { ##2; } } { \fp_to_tl:n { ##3; } } {##1} + { \fp_to_tl:n { ##2\__fp_sep: } } + { \fp_to_tl:n { ##3\__fp_sep: } } + {##1} \flag_ensure_raised:N \l_fp_invalid_operation_flag \exp_after:wN \c_nan_fp } @@ -15793,19 +15836,23 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new_protected:Npn \__fp_trap_division_by_zero_set:N #1 { \exp_args:Nno \use:n - { \cs_set:Npn \__fp_division_by_zero_o:Nnw ##1##2##3; } + { \cs_set:Npn \__fp_division_by_zero_o:Nnw ##1##2##3\__fp_sep: } { #1 - \__fp_error:nnfn { zero-div } {##2} { \fp_to_tl:n { ##3; } } { } + \__fp_error:nnfn { zero-div } {##2} { \fp_to_tl:n { ##3\__fp_sep: } } { } \flag_ensure_raised:N \l_fp_division_by_zero_flag \exp_after:wN ##1 } \exp_args:Nno \use:n - { \cs_set:Npn \__fp_division_by_zero_o:NNww ##1##2##3; ##4; } + { + \cs_set:Npn \__fp_division_by_zero_o:NNww ##1##2##3\__fp_sep: ##4\__fp_sep: + } { #1 \__fp_error:nffn { zero-div-ii } - { \fp_to_tl:n { ##3; } } { \fp_to_tl:n { ##4; } } {##2} + { \fp_to_tl:n { ##3\__fp_sep: } } + { \fp_to_tl:n { ##4\__fp_sep: } } + {##2} \flag_ensure_raised:N \l_fp_division_by_zero_flag \exp_after:wN ##1 } @@ -15829,23 +15876,23 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new_protected:Npn \__fp_trap_overflow_set:NnNn #1#2#3#4 { \exp_args:Nno \use:n - { \cs_set:cpn { __fp_ #2 :w } \s__fp \__fp_chk:w ##1##2##3; } + { \cs_set:cpn { __fp_ #2 :w } \s__fp \__fp_chk:w ##1##2##3\__fp_sep: } { #1 \__fp_error:nffn { flow \if_meaning:w 1 ##1 -to \fi: } - { \fp_to_tl:n { \s__fp \__fp_chk:w ##1##2##3; } } + { \fp_to_tl:n { \s__fp \__fp_chk:w ##1##2##3\__fp_sep: } } { \token_if_eq_meaning:NNF 0 ##2 { - } #4 } {#2} \flag_ensure_raised:c { l_fp_#2_flag } #3 ##2 } } -\cs_new:Npn \__fp_invalid_operation:nnw #1#2#3; { } -\cs_new:Npn \__fp_invalid_operation_o:Nww #1#2; #3; { } +\cs_new:Npn \__fp_invalid_operation:nnw #1#2#3\__fp_sep: { } +\cs_new:Npn \__fp_invalid_operation_o:Nww #1#2\__fp_sep: #3\__fp_sep: { } \cs_new:Npn \__fp_invalid_operation_tl_o:ff #1 #2 { } -\cs_new:Npn \__fp_division_by_zero_o:Nnw #1#2#3; { } -\cs_new:Npn \__fp_division_by_zero_o:NNww #1#2#3; #4; { } +\cs_new:Npn \__fp_division_by_zero_o:Nnw #1#2#3\__fp_sep: { } +\cs_new:Npn \__fp_division_by_zero_o:NNww #1#2#3\__fp_sep: #4\__fp_sep: { } \cs_new:Npn \__fp_overflow:w { } \cs_new:Npn \__fp_underflow:w { } \fp_trap:nn { invalid_operation } { error } @@ -15983,7 +16030,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \c_zero_int } \cs_new_eq:NN \__fp_round:NNN \__fp_round_to_nearest:NNN -\cs_new:Npn \__fp_round_s:NNNw #1 #2 #3 #4; +\cs_new:Npn \__fp_round_s:NNNw #1 #2 #3 #4\__fp_sep: { \exp_after:wN \__fp_round:NNN \exp_after:wN #1 @@ -15997,9 +16044,9 @@ Type H <return> for immediate help}\def~{\errmessage{% \fi: \fi: #3 - ; + \__fp_sep: } -\cs_new:Npn \__fp_round_digit:Nw #1 #2; +\cs_new:Npn \__fp_round_digit:Nw #1 #2\__fp_sep: { \if_int_odd:w \if_meaning:w 0 #1 1 \else: \if_meaning:w 5 #1 1 \else: @@ -16059,7 +16106,8 @@ Type H <return> for immediate help}\def~{\errmessage{% } \exp_after:wN \c_nan_fp } -\cs_new:Npn \__fp_round:Nwww #1#2 ; #3 ; \s__fp \__fp_chk:w #4#5#6 ; #7 @ +\cs_new:Npn \__fp_round:Nwww + #1#2 \__fp_sep: #3 \__fp_sep: \s__fp \__fp_chk:w #4#5#6 \__fp_sep: #7 @ { \cs_if_eq:NNTF #1 \__fp_round_to_nearest:NNN { @@ -16072,7 +16120,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \if_case:w #5 \exp_stop_f: _pinf \or: \else: _ninf \fi: \fi: :NNN } - #2 ; #3 ; + #2 \__fp_sep: #3 \__fp_sep: } { \__fp_error:nnnn { num-args } { round () } { 1 } { 3 } @@ -16096,11 +16144,11 @@ Type H <return> for immediate help}\def~{\errmessage{% } } } -\cs_new:Npn \__fp_round:Nww #1#2 ; #3 ; +\cs_new:Npn \__fp_round:Nww #1#2 \__fp_sep: #3 \__fp_sep: { - \__fp_small_int:wTF #3; { \__fp_round:Nwn #1#2; } + \__fp_small_int:wTF #3\__fp_sep: { \__fp_round:Nwn #1#2\__fp_sep: } { - \if:w 3 \__fp_kind:w #3 ; + \if:w 3 \__fp_kind:w #3 \__fp_sep: \exp_after:wN \use_i:nn \else: \exp_after:wN \use_ii:nn @@ -16109,11 +16157,11 @@ Type H <return> for immediate help}\def~{\errmessage{% { \__fp_invalid_operation_tl_o:ff { \__fp_round_name_from_cs:N #1 } - { \__fp_array_to_clist:n { #2; #3; } } + { \__fp_array_to_clist:n { #2\__fp_sep: #3\__fp_sep: } } } } } -\cs_new:Npn \__fp_round:Nwn #1 \s__fp \__fp_chk:w #2#3#4; #5 +\cs_new:Npn \__fp_round:Nwn #1 \s__fp \__fp_chk:w #2#3#4\__fp_sep: #5 { \if_meaning:w 1 #2 \exp_after:wN \__fp_round_normal:NwNNnw @@ -16122,14 +16170,14 @@ Type H <return> for immediate help}\def~{\errmessage{% \else: \exp_after:wN \__fp_exp_after_o:w \fi: - \s__fp \__fp_chk:w #2#3#4; + \s__fp \__fp_chk:w #2#3#4\__fp_sep: } -\cs_new:Npn \__fp_round_normal:NwNNnw #1#2 \s__fp \__fp_chk:w 1#3#4#5; +\cs_new:Npn \__fp_round_normal:NwNNnw #1#2 \s__fp \__fp_chk:w 1#3#4#5\__fp_sep: { \__fp_decimate:nNnnnn { \c__fp_prec_int - #4 - #2 } \__fp_round_normal:NnnwNNnn #5 #1 #3 {#4} {#2} } -\cs_new:Npn \__fp_round_normal:NnnwNNnn #1#2#3#4; #5#6 +\cs_new:Npn \__fp_round_normal:NnnwNNnn #1#2#3#4\__fp_sep: #5#6 { \exp_after:wN \__fp_round_normal:NNwNnn \int_value:w \__fp_int_eval:w @@ -16147,7 +16195,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \use_none:nnnnnnn #3 #1 \__fp_int_eval_end: - 0000 0000 0000 0000 ; #6 + 0000 0000 0000 0000 \__fp_sep: #6 } \cs_new:Npn \__fp_round_pack:Nw #1 { \if_meaning:w 2 #1 + 1 \fi: \__fp_int_eval_end: } @@ -16160,14 +16208,14 @@ Type H <return> for immediate help}\def~{\errmessage{% \__fp_pack_twice_four:wNNNNNNNN \__fp_pack_twice_four:wNNNNNNNN \__fp_round_normal_end:wwNnn - ; #2 + \__fp_sep: #2 } -\cs_new:Npn \__fp_round_normal_end:wwNnn #1;#2;#3#4#5 +\cs_new:Npn \__fp_round_normal_end:wwNnn #1\__fp_sep:#2\__fp_sep:#3#4#5 { \exp_after:wN \__fp_exp_after_o:w \exp:w \exp_end_continue_f:w - \__fp_sanitize:Nw #3 #4 ; #1 ; + \__fp_sanitize:Nw #3 #4 \__fp_sep: #1 \__fp_sep: } -\cs_new:Npn \__fp_round_special:NwwNnn #1#2;#3;#4#5#6 +\cs_new:Npn \__fp_round_special:NwwNnn #1#2\__fp_sep:#3\__fp_sep:#4#5#6 { \if_meaning:w 0 #1 \__fp_case_return:nw @@ -16178,12 +16226,12 @@ Type H <return> for immediate help}\def~{\errmessage{% \int_value:w \__fp_int_eval:w 1 \if_meaning:w 1 #1 -#6 \else: +#5 \fi: \fi: - ; + \__fp_sep: } -\cs_new:Npn \__fp_round_special_aux:Nw #1#2; +\cs_new:Npn \__fp_round_special_aux:Nw #1#2\__fp_sep: { \exp_after:wN \__fp_exp_after_o:w \exp:w \exp_end_continue_f:w - \__fp_sanitize:Nw #1#2; {1000}{0000}{0000}{0000}; + \__fp_sanitize:Nw #1#2\__fp_sep: {1000}{0000}{0000}{0000}\__fp_sep: } %% File: l3fp-parse.dtx \int_const:Nn \c__fp_prec_func_int { 16 } @@ -16203,7 +16251,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \int_const:Nn \c__fp_prec_end_int { 0 } \cs_new:Npn \__fp_parse_expand:w #1 { \exp_end_continue_f:w #1 } \cs_new:Npn \__fp_parse_return_semicolon:w - #1 \fi: \__fp_parse_expand:w { \fi: ; #1 } + #1 \fi: \__fp_parse_expand:w { \fi: \__fp_sep: #1 } \cs_set_protected:Npn \__fp_tmp:w #1 #2 #3 { \cs_new:cpn { __fp_parse_digits_ #1 :N } ##1 @@ -16216,14 +16264,14 @@ Type H <return> for immediate help}\def~{\errmessage{% \__fp_parse_expand:w } } -\__fp_tmp:w {vii} \__fp_parse_digits_vi:N { 0000000 ; 7 } -\__fp_tmp:w {vi} \__fp_parse_digits_v:N { 000000 ; 6 } -\__fp_tmp:w {v} \__fp_parse_digits_iv:N { 00000 ; 5 } -\__fp_tmp:w {iv} \__fp_parse_digits_iii:N { 0000 ; 4 } -\__fp_tmp:w {iii} \__fp_parse_digits_ii:N { 000 ; 3 } -\__fp_tmp:w {ii} \__fp_parse_digits_i:N { 00 ; 2 } -\__fp_tmp:w {i} \__fp_parse_digits_:N { 0 ; 1 } -\cs_new:Npn \__fp_parse_digits_:N { ; ; 0 } +\__fp_tmp:w {vii} \__fp_parse_digits_vi:N { 0000000 \__fp_sep: 7 } +\__fp_tmp:w {vi} \__fp_parse_digits_v:N { 000000 \__fp_sep: 6 } +\__fp_tmp:w {v} \__fp_parse_digits_iv:N { 00000 \__fp_sep: 5 } +\__fp_tmp:w {iv} \__fp_parse_digits_iii:N { 0000 \__fp_sep: 4 } +\__fp_tmp:w {iii} \__fp_parse_digits_ii:N { 000 \__fp_sep: 3 } +\__fp_tmp:w {ii} \__fp_parse_digits_i:N { 00 \__fp_sep: 2 } +\__fp_tmp:w {i} \__fp_parse_digits_:N { 0 \__fp_sep: 1 } +\cs_new:Npn \__fp_parse_digits_:N { \__fp_sep: \__fp_sep: 0 } \cs_new:Npn \__fp_parse_one:Nw #1 #2 { \if_catcode:w \scan_stop: \exp_not:N #2 @@ -16323,26 +16371,26 @@ Type H <return> for immediate help}\def~{\errmessage{% \exp_after:wN \__fp_parse_one_register_auxii:wwwNw } \exp_not:N \exp_after:wN { \exp_not:N \tex_the:D #1 } - ; \exp_not:N \__fp_parse_one_register_dim:ww - \tl_to_str:n { pt } ; \exp_not:N \__fp_parse_one_register_mu:www - . \tl_to_str:n { pt } ; \exp_not:N \__fp_parse_one_register_int:www + \__fp_sep: \exp_not:N \__fp_parse_one_register_dim:ww + \tl_to_str:n { pt } \__fp_sep: \exp_not:N \__fp_parse_one_register_mu:www + . \tl_to_str:n { pt } \__fp_sep: \exp_not:N \__fp_parse_one_register_int:www \s__fp_stop } \exp_args:Nno \use:nn { \cs_new:Npn \__fp_parse_one_register_auxii:wwwNw #1 . #2 } - { \tl_to_str:n { pt } #3 ; #4#5 \s__fp_stop } - { #4 #1.#2; } + { \tl_to_str:n { pt } #3 \__fp_sep: #4#5 \s__fp_stop } + { #4 #1.#2\__fp_sep: } \exp_args:Nno \use:nn { \cs_new:Npn \__fp_parse_one_register_mu:www #1 } - { \tl_to_str:n { mu } ; #2 ; } - { \__fp_parse_one_register_dim:ww #1 ; } -\cs_new:Npn \__fp_parse_one_register_int:www #1; #2.; #3; + { \tl_to_str:n { mu } \__fp_sep: #2 \__fp_sep: } + { \__fp_parse_one_register_dim:ww #1 \__fp_sep: } +\cs_new:Npn \__fp_parse_one_register_int:www #1\__fp_sep: #2.\__fp_sep: #3\__fp_sep: { \__fp_parse:n { #1 e #3 } } -\cs_new:Npn \__fp_parse_one_register_dim:ww #1; #2; +\cs_new:Npn \__fp_parse_one_register_dim:ww #1\__fp_sep: #2\__fp_sep: { \exp_after:wN \__fp_from_dim_test:ww \int_value:w #2 \exp_after:wN , - \int_value:w \dim_to_decimal_in_sp:n { #1 pt } ; + \int_value:w \dim_to_decimal_in_sp:n { #1 pt } \__fp_sep: } \cs_new:Npn \__fp_parse_one_register_special:N #1 { @@ -16375,11 +16423,11 @@ Type H <return> for immediate help}\def~{\errmessage{% \exp_after:wN \__fp_parse_one_register_wd:Nw #4 \__fp_parse_expand:w e } -\cs_new:Npn \__fp_parse_one_register_wd:Nw #1#2 ; +\cs_new:Npn \__fp_parse_one_register_wd:Nw #1#2 \__fp_sep: { \exp_after:wN \__fp_from_dim_test:ww \exp_after:wN 0 \exp_after:wN , - \int_value:w \dim_to_decimal_in_sp:n { #1 #2 } ; + \int_value:w \dim_to_decimal_in_sp:n { #1 #2 } \__fp_sep: } \cs_new:Npn \__fp_parse_one_digit:NN #1 { @@ -16412,7 +16460,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \fi: \__fp_parse_expand:w } -\cs_new:Npn \__fp_parse_word:Nw #1#2; +\cs_new:Npn \__fp_parse_word:Nw #1#2\__fp_sep: { \cs_if_exist_use:cF { __fp_parse_word_#2:N } { @@ -16517,7 +16565,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new:Npn \__fp_parse_zero: { - \exp_after:wN ; \exp_after:wN 1 + \exp_after:wN \__fp_sep: \exp_after:wN 1 \int_value:w \__fp_parse_exponent:N } \cs_new:Npn \__fp_parse_small:N #1 @@ -16529,7 +16577,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \exp_after:wN \__fp_parse_digits_vii:N \exp:w \__fp_parse_expand:w } -\cs_new:Npn \__fp_parse_small_leading:wwNN 1 #1 ; #2; #3 #4 +\cs_new:Npn \__fp_parse_small_leading:wwNN 1 #1 \__fp_sep: #2\__fp_sep: #3 #4 { #1 #2 \exp_after:wN \__fp_parse_pack_trailing:NNNNNNww @@ -16546,7 +16594,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \fi: \__fp_parse_expand:w } -\cs_new:Npn \__fp_parse_small_trailing:wwNN 1 #1 ; #2; #3 #4 +\cs_new:Npn \__fp_parse_small_trailing:wwNN 1 #1 \__fp_sep: #2\__fp_sep: #3 #4 { #1 #2 \if_int_compare:w 9 < 1 \token_to_str:N #4 \exp_stop_f: @@ -16559,19 +16607,20 @@ Type H <return> for immediate help}\def~{\errmessage{% \fi: \__fp_parse_expand:w } -\cs_new:Npn \__fp_parse_pack_trailing:NNNNNNww #1 #2 #3#4#5#6 #7; #8 ; +\cs_new:Npn \__fp_parse_pack_trailing:NNNNNNww + #1 #2 #3#4#5#6 #7\__fp_sep: #8 \__fp_sep: { \if_meaning:w 2 #2 + 1 \fi: - ; #8 + #1 ; {#3#4#5#6} {#7}; + \__fp_sep: #8 + #1 \__fp_sep: {#3#4#5#6} {#7}\__fp_sep: } -\cs_new:Npn \__fp_parse_pack_leading:NNNNNww #1 #2#3#4#5 #6; #7; +\cs_new:Npn \__fp_parse_pack_leading:NNNNNww #1 #2#3#4#5 #6\__fp_sep: #7\__fp_sep: { + #7 \if_meaning:w 2 #1 \__fp_parse_pack_carry:w \fi: - ; 0 {#2#3#4#5} {#6} + \__fp_sep: 0 {#2#3#4#5} {#6} } -\cs_new:Npn \__fp_parse_pack_carry:w \fi: ; 0 #1 - { \fi: + 1 ; 0 {1000} } +\cs_new:Npn \__fp_parse_pack_carry:w \fi: \__fp_sep: 0 #1 + { \fi: + 1 \__fp_sep: 0 {1000} } \cs_new:Npn \__fp_parse_large:N #1 { \exp_after:wN \__fp_parse_large_leading:wwNN @@ -16579,7 +16628,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \exp_after:wN \__fp_parse_digits_vii:N \exp:w \__fp_parse_expand:w } -\cs_new:Npn \__fp_parse_large_leading:wwNN 1 #1 ; #2; #3 #4 +\cs_new:Npn \__fp_parse_large_leading:wwNN 1 #1 \__fp_sep: #2\__fp_sep: #3 #4 { + \c__fp_half_prec_int - #3 \exp_after:wN \__fp_parse_pack_leading:NNNNNww @@ -16609,7 +16658,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \fi: \__fp_parse_expand:w } -\cs_new:Npn \__fp_parse_large_trailing:wwNN 1 #1 ; #2; #3 #4 +\cs_new:Npn \__fp_parse_large_trailing:wwNN 1 #1 \__fp_sep: #2\__fp_sep: #3 #4 { \if_int_compare:w 9 < 1 \token_to_str:N #4 \exp_stop_f: \exp_after:wN \__fp_parse_pack_trailing:NNNNNNww @@ -16664,9 +16713,9 @@ Type H <return> for immediate help}\def~{\errmessage{% \fi: \__fp_parse_expand:w } -\cs_new:Npn \__fp_parse_round_after:wN #1; #2 +\cs_new:Npn \__fp_parse_round_after:wN #1\__fp_sep: #2 { - + #2 \exp_after:wN ; + + #2 \exp_after:wN \__fp_sep: \int_value:w \__fp_int_eval:w #1 + \__fp_parse_exponent:N } \cs_new:Npn \__fp_parse_small_round:NN #1#2 @@ -16716,7 +16765,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \fi: \__fp_parse_expand:w } -\cs_new:Npn \__fp_parse_large_round_aux:wNN #1 ; #2 #3 +\cs_new:Npn \__fp_parse_large_round_aux:wNN #1 \__fp_sep: #2 #3 { + #2 \exp_after:wN \__fp_parse_round_after:wN @@ -16726,14 +16775,14 @@ Type H <return> for immediate help}\def~{\errmessage{% \exp_after:wN \__fp_parse_round_loop:N \exp:w \exp_after:wN \__fp_parse_expand:w \else: - \exp_after:wN ; + \exp_after:wN \__fp_sep: \exp_after:wN 0 \exp_after:wN #3 \fi: } \cs_new:Npn \__fp_parse_exponent:Nw #1 #2 \__fp_parse_expand:w { - \exp_after:wN ; + \exp_after:wN \__fp_sep: \int_value:w #2 \__fp_parse_exponent:N #1 } \cs_new:Npn \__fp_parse_exponent:N #1 @@ -16751,7 +16800,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \if_int_compare:w \if_catcode:w \scan_stop: \exp_not:N #2 0 \else: `#2 \fi: > `9 \exp_stop_f: - 0 \exp_after:wN ; \exp_after:wN #1 + 0 \exp_after:wN \__fp_sep: \exp_after:wN #1 \else: \exp_after:wN \__fp_parse_exponent_sign:N \fi: @@ -16777,7 +16826,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \__fp_parse_exponent_keep:NTF #1 { \__fp_parse_return_semicolon:w #1 } { - \exp_after:wN ; + \exp_after:wN \__fp_sep: \exp:w } \fi: @@ -16834,12 +16883,12 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new:Npn \__fp_parse_apply_unary:NNNwN #1#2#3#4@#5 { - \__fp_parse_apply_unary_chk:NwNw #4 @ ; . \s__fp_stop + \__fp_parse_apply_unary_chk:NwNw #4 @ \__fp_sep: . \s__fp_stop \__fp_parse_apply_unary_type:NNN #3 #2 #4 @ \exp:w \exp_end_continue_f:w #5 #1 } -\cs_new:Npn \__fp_parse_apply_unary_chk:NwNw #1#2 ; #3#4 \s__fp_stop +\cs_new:Npn \__fp_parse_apply_unary_chk:NwNw #1#2 \__fp_sep: #3#4 \s__fp_stop { \if_meaning:w @ #3 \else: \token_if_eq_meaning:NNTF . #3 @@ -16953,7 +17002,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new:cpn { __fp_parse_word_#1:N } { \__fp_exp_after_f:nw { \__fp_parse_infix:NN } - \s__fp \__fp_chk:w 10 #2 ; + \s__fp \__fp_chk:w 10 #2 \__fp_sep: } } \__fp_tmp:w {pt} { {1} {1000} {0000} {0000} {0000} } @@ -16973,7 +17022,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \exp_after:wN \__fp_from_dim_test:ww \exp_after:wN 0 \exp_after:wN , - \int_value:w \dim_to_decimal_in_sp:n { 1 #1 } \exp_after:wN ; + \int_value:w \dim_to_decimal_in_sp:n { 1 #1 } \exp_after:wN \__fp_sep: \exp:w \exp_end_continue_f:w \__fp_parse_infix:NN } } @@ -17062,7 +17111,7 @@ Type H <return> for immediate help}\def~{\errmessage{% #2 \__fp_invalid_operation_o:Nww #1 } -\cs_new:Npn \__fp_binary_type_o:Nww #1 #2#3 ; #4 +\cs_new:Npn \__fp_binary_type_o:Nww #1 #2#3 \__fp_sep: #4 { \exp_after:wN \__fp_parse_apply_binary_chk:NN \cs:w @@ -17073,9 +17122,9 @@ Type H <return> for immediate help}\def~{\errmessage{% _o:ww \cs_end: #1 - #2 #3 ; #4 + #2 #3 \__fp_sep: #4 } -\cs_new:Npn \__fp_binary_rev_type_o:Nww #1 #2#3 ; #4#5 ; +\cs_new:Npn \__fp_binary_rev_type_o:Nww #1 #2#3 \__fp_sep: #4#5 \__fp_sep: { \exp_after:wN \__fp_parse_apply_binary_chk:NN \cs:w @@ -17086,12 +17135,12 @@ Type H <return> for immediate help}\def~{\errmessage{% _o:ww \cs_end: #1 - #4 #5 ; #2 #3 ; + #4 #5 \__fp_sep: #2 #3 \__fp_sep: } -\cs_new:Npn \__fp_parse_infix_after_operand:NwN #1 #2; +\cs_new:Npn \__fp_parse_infix_after_operand:NwN #1 #2\__fp_sep: { \__fp_exp_after_f:nw { \__fp_parse_infix:NN #1 } - #2; + #2\__fp_sep: } \cs_new:Npn \__fp_parse_infix:NN #1 #2 { @@ -17215,7 +17264,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \exp_after:wN #1 \exp:w \exp_end_continue_f:w \__fp_exp_after_tuple_f:nw { } - \s__fp_tuple \__fp_tuple_chk:w { #2 #4 } ; + \s__fp_tuple \__fp_tuple_chk:w { #2 #4 } \__fp_sep: #5 #1 } \cs_set_protected:Npn \__fp_tmp:w #1#2#3#4 @@ -17400,14 +17449,14 @@ Type H <return> for immediate help}\def~{\errmessage{% \fi: #1 #8 #9 } -\cs_new:Npn \__fp_parse_apply_compare_aux:NNwN #1 #2 #3; #4 +\cs_new:Npn \__fp_parse_apply_compare_aux:NNwN #1 #2 #3\__fp_sep: #4 { \if_meaning:w \__fp_parse_compare:NNNNNNN #4 \exp_after:wN \__fp_parse_continue_compare:NNwNN \exp_after:wN #1 \exp_after:wN #2 \exp:w \exp_end_continue_f:w - \__fp_exp_after_o:w #3; + \__fp_exp_after_o:w #3\__fp_sep: \exp:w \exp_end_continue_f:w \else: \exp_after:wN \__fp_parse_continue:NwN @@ -17427,7 +17476,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \__fp_error:nffn { bad-args } {#1} - { \fp_to_tl:n { \s__fp_tuple \__fp_tuple_chk:w {#3} ; } } + { \fp_to_tl:n { \s__fp_tuple \__fp_tuple_chk:w {#3} \__fp_sep: } } { } \exp_after:wN \c_nan_fp } @@ -17442,11 +17491,11 @@ Type H <return> for immediate help}\def~{\errmessage{% { \__fp_error:nffn { bad-args } {#2} - { \fp_to_tl:n { \s__fp_tuple \__fp_tuple_chk:w {#4} ; } } + { \fp_to_tl:n { \s__fp_tuple \__fp_tuple_chk:w {#4} \__fp_sep: } } { } \exp_after:wN \c_nan_fp } -\cs_new:Npn \__fp_parse_function_one_two_aux:nnw #1#2 #3; #4 +\cs_new:Npn \__fp_parse_function_one_two_aux:nnw #1#2 #3\__fp_sep: #4 { \__fp_if_type_fp:NTwFw #4 { } @@ -17458,52 +17507,52 @@ Type H <return> for immediate help}\def~{\errmessage{% \__fp_parse_function_one_two_error_o:w } \s__fp_stop - \__fp_parse_function_one_two_auxii:nnw {#1} {#2} #3; #4 + \__fp_parse_function_one_two_auxii:nnw {#1} {#2} #3\__fp_sep: #4 } -\cs_new:Npn \__fp_parse_function_one_two_auxii:nnw #1#2#3; #4; #5 +\cs_new:Npn \__fp_parse_function_one_two_auxii:nnw #1#2#3\__fp_sep: #4\__fp_sep: #5 { \if_meaning:w @ #5 \else: \exp_after:wN \__fp_parse_function_one_two_error_o:w \fi: - \use_ii:nn {#1} { \use_none:n #2 } #3; #4; #5 + \use_ii:nn {#1} { \use_none:n #2 } #3\__fp_sep: #4\__fp_sep: #5 } -\cs_new:Npn \__fp_tuple_map_o:nw #1 \s__fp_tuple \__fp_tuple_chk:w #2 ; +\cs_new:Npn \__fp_tuple_map_o:nw #1 \s__fp_tuple \__fp_tuple_chk:w #2 \__fp_sep: { \exp_after:wN \s__fp_tuple \exp_after:wN \__fp_tuple_chk:w \exp_after:wN { \exp:w \exp_end_continue_f:w \__fp_tuple_map_loop_o:nw {#1} #2 - { \s__fp \prg_break: } ; + { \s__fp \prg_break: } \__fp_sep: \prg_break_point: - \exp_after:wN } \exp_after:wN ; + \exp_after:wN } \exp_after:wN \__fp_sep: } -\cs_new:Npn \__fp_tuple_map_loop_o:nw #1#2#3 ; +\cs_new:Npn \__fp_tuple_map_loop_o:nw #1#2#3 \__fp_sep: { \use_none:n #2 - #1 #2 #3 ; + #1 #2 #3 \__fp_sep: \exp:w \exp_end_continue_f:w \__fp_tuple_map_loop_o:nw {#1} } \cs_new:Npn \__fp_tuple_mapthread_o:nww #1 - \s__fp_tuple \__fp_tuple_chk:w #2 ; - \s__fp_tuple \__fp_tuple_chk:w #3 ; + \s__fp_tuple \__fp_tuple_chk:w #2 \__fp_sep: + \s__fp_tuple \__fp_tuple_chk:w #3 \__fp_sep: { \exp_after:wN \s__fp_tuple \exp_after:wN \__fp_tuple_chk:w \exp_after:wN { \exp:w \exp_end_continue_f:w \__fp_tuple_mapthread_loop_o:nw {#1} - #2 { \s__fp \prg_break: } ; @ - #3 { \s__fp \prg_break: } ; + #2 { \s__fp \prg_break: } \__fp_sep: @ + #3 { \s__fp \prg_break: } \__fp_sep: \prg_break_point: - \exp_after:wN } \exp_after:wN ; + \exp_after:wN } \exp_after:wN \__fp_sep: } -\cs_new:Npn \__fp_tuple_mapthread_loop_o:nw #1#2#3 ; #4 @ #5#6 ; +\cs_new:Npn \__fp_tuple_mapthread_loop_o:nw #1#2#3 \__fp_sep: #4 @ #5#6 \__fp_sep: { \use_none:n #2 \use_none:n #5 - #1 #2 #3 ; #5 #6 ; + #1 #2 #3 \__fp_sep: #5 #6 \__fp_sep: \exp:w \exp_end_continue_f:w \__fp_tuple_mapthread_loop_o:nw {#1} #4 @ } @@ -17591,9 +17640,9 @@ Type H <return> for immediate help}\def~{\errmessage{% { \__fp_show_validate:nn { #1 } { - \s__fp \__fp_chk:w ??? ;~ or \iow_newline: - \s__fp_tuple \__fp_tuple_chk:w ? ;~ or \iow_newline: - \s__fp_symbolic \__fp_symbolic_chk:w ? , ? ; + \s__fp \__fp_chk:w ??? \__fp_sep: or \iow_newline: + \s__fp_tuple \__fp_tuple_chk:w ? \__fp_sep: or \iow_newline: + \s__fp_symbolic \__fp_symbolic_chk:w ? , ? \__fp_sep: } } \cs_new:Npn \__fp_show_validate_aux:n #1 @@ -17609,46 +17658,49 @@ Type H <return> for immediate help}\def~{\errmessage{% { \s__fp } { \__fp_show_validate:w #1 \s__fp - \__fp_chk:w ??? ; \s__fp_stop + \__fp_chk:w ??? \__fp_sep: \s__fp_stop } { \s__fp_tuple } { \__fp_tuple_show_validate:w #1 - \s__fp_tuple \__fp_tuple_chk:w ?? ; \s__fp_stop + \s__fp_tuple \__fp_tuple_chk:w ?? \__fp_sep: \s__fp_stop } { \s__fp_symbolic } { \__fp_symbolic_show_validate:w #1 - \s__fp_symbolic \__fp_symbolic_chk:w ? , ?? ; \s__fp_stop + \s__fp_symbolic \__fp_symbolic_chk:w ? , ?? \__fp_sep: \s__fp_stop } } { #2 } } } \cs_new:Npn \__fp_show_validate:w - #1 \s__fp \__fp_chk:w #2#3#4#5 ; #6 \s__fp_stop + #1 \s__fp \__fp_chk:w #2#3#4#5 \__fp_sep: #6 \s__fp_stop { \str_if_eq:nnF { #2 } {?} { \token_if_eq_meaning:NNTF #2 1 - { \s__fp \__fp_chk:w #2 #3 { #4 } #5 ; } - { \s__fp \__fp_chk:w #2 #3 #4 #5 ; } + { \s__fp \__fp_chk:w #2 #3 { #4 } #5 \__fp_sep: } + { \s__fp \__fp_chk:w #2 #3 #4 #5 \__fp_sep: } \__fp_show_validate_aux:n { #6 } } } \cs_new:Npn \__fp_tuple_show_validate:w - #1 \s__fp_tuple \__fp_tuple_chk:w #2#3 ; #4 \s__fp_stop + #1 \s__fp_tuple \__fp_tuple_chk:w #2#3 \__fp_sep: #4 \s__fp_stop { \str_if_eq:nnF { #2 } {?} - { \s__fp_tuple \__fp_tuple_chk:w { \__fp_show_validate_aux:n { #2 } } ; } + { + \s__fp_tuple \__fp_tuple_chk:w { \__fp_show_validate_aux:n { #2 } } + \__fp_sep: + } } \cs_new:Npn \__fp_symbolic_show_validate:w - #1 \s__fp_symbolic \__fp_symbolic_chk:w #2 , #3#4 ; #5 \s__fp_stop + #1 \s__fp_symbolic \__fp_symbolic_chk:w #2 , #3#4 \__fp_sep: #5 \s__fp_stop { \str_if_eq:nnF { #2 } {?} { \s__fp_symbolic \__fp_symbolic_chk:w \exp_not:n { #2 } , - { \__fp_show_validate_aux:n { #3 } }; + { \__fp_show_validate_aux:n { #3 } }\__fp_sep: \__fp_show_validate_aux:n { #5 } } } @@ -17684,7 +17736,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \exp_after:wN \__fp_compare_return:w \exp:w \exp_end_continue_f:w \__fp_parse:n {#1} } -\cs_new:Npn \__fp_compare_return:w #1#2#3; +\cs_new:Npn \__fp_compare_return:w #1#2#3\__fp_sep: { \if_charcode:w 0 \__fp_if_type_fp:NTwFw @@ -17706,12 +17758,12 @@ Type H <return> for immediate help}\def~{\errmessage{% \prg_return_false: \fi: } -\cs_new:Npn \__fp_compare_aux:wn #1; #2 +\cs_new:Npn \__fp_compare_aux:wn #1\__fp_sep: #2 { \exp_after:wN \__fp_compare_back_any:ww - \exp:w \exp_end_continue_f:w \__fp_parse:n {#2} #1; + \exp:w \exp_end_continue_f:w \__fp_parse:n {#2} #1\__fp_sep: } -\cs_new:Npn \__fp_compare_back:ww #1#2; #3#4; +\cs_new:Npn \__fp_compare_back:ww #1#2\__fp_sep: #3#4\__fp_sep: { \cs:w __fp @@ -17720,9 +17772,9 @@ Type H <return> for immediate help}\def~{\errmessage{% \__fp_type_from_scan:N #3 :ww \cs_end: - #1#2; #3#4; + #1#2\__fp_sep: #3#4\__fp_sep: } -\cs_new:Npn \__fp_compare_back_any:ww #1#2; #3 +\cs_new:Npn \__fp_compare_back_any:ww #1#2\__fp_sep: #3 { \__fp_if_type_fp:NTwFw #1 { \__fp_if_type_fp:NTwFw #3 \use_i:nn \s__fp \use_ii:nn \s__fp_stop } @@ -17737,11 +17789,11 @@ Type H <return> for immediate help}\def~{\errmessage{% :ww \cs_end: } - #1#2 ; #3 + #1#2 \__fp_sep: #3 } \cs_new:Npn \__fp_bcmp:ww - \s__fp \__fp_chk:w #1 #2 #3; - \s__fp \__fp_chk:w #4 #5 #6; + \s__fp \__fp_chk:w #1 #2 #3\__fp_sep: + \s__fp \__fp_chk:w #4 #5 #6\__fp_sep: { \int_value:w \if_meaning:w 3 #1 \exp_after:wN \__fp_compare_nan:w \fi: @@ -17750,7 +17802,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \if_meaning:w #2 #5 \if_meaning:w #1 #4 \if_meaning:w 1 #1 - \__fp_compare_npos:nwnw #6; #3; + \__fp_compare_npos:nwnw #6\__fp_sep: #3\__fp_sep: \else: 0 \fi: @@ -17767,36 +17819,36 @@ Type H <return> for immediate help}\def~{\errmessage{% \exp_stop_f: } \cs_new:Npn \__fp_compare_nan:w #1 \fi: \exp_stop_f: { 2 \exp_stop_f: } -\cs_new:Npn \__fp_compare_back_tuple:ww #1; #2; { 2 } -\cs_new:Npn \__fp_tuple_compare_back:ww #1; #2; { 2 } +\cs_new:Npn \__fp_compare_back_tuple:ww #1\__fp_sep: #2\__fp_sep: { 2 } +\cs_new:Npn \__fp_tuple_compare_back:ww #1\__fp_sep: #2\__fp_sep: { 2 } \cs_new:Npn \__fp_tuple_compare_back_tuple:ww - \s__fp_tuple \__fp_tuple_chk:w #1; - \s__fp_tuple \__fp_tuple_chk:w #2; + \s__fp_tuple \__fp_tuple_chk:w #1\__fp_sep: + \s__fp_tuple \__fp_tuple_chk:w #2\__fp_sep: { \int_compare:nNnTF { \__fp_array_count:n {#1} } = { \__fp_array_count:n {#2} } { \int_value:w 0 \__fp_tuple_compare_back_loop:w - #1 { \s__fp \prg_break: } ; @ - #2 { \s__fp \prg_break: } ; + #1 { \s__fp \prg_break: } \__fp_sep: @ + #2 { \s__fp \prg_break: } \__fp_sep: \prg_break_point: \exp_stop_f: } { 2 } } -\cs_new:Npn \__fp_tuple_compare_back_loop:w #1#2 ; #3 @ #4#5 ; +\cs_new:Npn \__fp_tuple_compare_back_loop:w #1#2 \__fp_sep: #3 @ #4#5 \__fp_sep: { \use_none:n #1 \use_none:n #4 \if_int_compare:w - \__fp_compare_back_any:ww #1 #2 ; #4 #5 ; = \c_zero_int + \__fp_compare_back_any:ww #1 #2 \__fp_sep: #4 #5 \__fp_sep: = \c_zero_int \else: 2 \exp_after:wN \prg_break: \fi: \__fp_tuple_compare_back_loop:w #3 @ } -\cs_new:Npn \__fp_compare_npos:nwnw #1#2; #3#4; +\cs_new:Npn \__fp_compare_npos:nwnw #1#2\__fp_sep: #3#4\__fp_sep: { \if_int_compare:w #1 = #3 \exp_stop_f: \__fp_compare_significand:nnnnnnnn #2 #4 @@ -17880,20 +17932,22 @@ Type H <return> for immediate help}\def~{\errmessage{% \exp:w \exp_end_continue_f:w \__fp_parse:n {#3} } \cs_generate_variant:Nn \fp_step_function:nnnN { nnnc } -\cs_new:Npn \__fp_step:wwwN #1#2; #3#4; #5#6; #7 +\cs_new:Npn \__fp_step:wwwN #1#2\__fp_sep: #3#4\__fp_sep: #5#6\__fp_sep: #7 { \__fp_if_type_fp:NTwFw #1 { } \s__fp \prg_break: \s__fp_stop \__fp_if_type_fp:NTwFw #3 { } \s__fp \prg_break: \s__fp_stop \__fp_if_type_fp:NTwFw #5 { } \s__fp \prg_break: \s__fp_stop - \use_i:nnnn { \__fp_step_fp:wwwN #1#2; #3#4; #5#6; #7 } + \use_i:nnnn + { \__fp_step_fp:wwwN #1#2\__fp_sep: #3#4\__fp_sep: #5#6\__fp_sep: #7 } \prg_break_point: \use:n { - \__fp_error:nfff { step-tuple } { \fp_to_tl:n { #1#2 ; } } - { \fp_to_tl:n { #3#4 ; } } { \fp_to_tl:n { #5#6 ; } } + \__fp_error:nfff { step-tuple } { \fp_to_tl:n { #1#2 \__fp_sep: } } + { \fp_to_tl:n { #3#4 \__fp_sep: } } { \fp_to_tl:n { #5#6 \__fp_sep: } } } } -\cs_new:Npn \__fp_step_fp:wwwN #1 ; \s__fp \__fp_chk:w #2#3#4 ; #5; #6 +\cs_new:Npn \__fp_step_fp:wwwN + #1 \__fp_sep: \s__fp \__fp_chk:w #2#3#4 \__fp_sep: #5\__fp_sep: #6 { \token_if_eq_meaning:NNTF #2 1 { @@ -17909,11 +17963,15 @@ Type H <return> for immediate help}\def~{\errmessage{% } { \__fp_error:nnfn { bad-step } { } - { \fp_to_tl:n { \s__fp \__fp_chk:w #2#3#4 ; } } {#6} + { \fp_to_tl:n { \s__fp \__fp_chk:w #2#3#4 \__fp_sep: } } {#6} } \use_none:nnnnn } - { #1 ; } { \c_nan_fp } { \s__fp \__fp_chk:w #2#3#4 ; } { #5 ; } #6 + { #1 \__fp_sep: } + { \c_nan_fp } + { \s__fp \__fp_chk:w #2#3#4 \__fp_sep: } + { #5 \__fp_sep: } + #6 } \cs_new:Npn \__fp_step:NnnnnN #1#2#3#4#5#6 { @@ -17977,11 +18035,11 @@ Type H <return> for immediate help}\def~{\errmessage{% \exp_after:wN \__fp_minmax_loop:Nww \exp_after:wN - \fi: #2 - \s__fp \__fp_chk:w 2 #1 \s__fp_exact ; - \s__fp \__fp_chk:w { 3 \__fp_minmax_break_o:w } ; + \s__fp \__fp_chk:w 2 #1 \s__fp_exact \__fp_sep: + \s__fp \__fp_chk:w { 3 \__fp_minmax_break_o:w } \__fp_sep: } \cs_new:Npn \__fp_minmax_loop:Nww - #1 \s__fp \__fp_chk:w #2#3; \s__fp \__fp_chk:w #4#5; + #1 \s__fp \__fp_chk:w #2#3\__fp_sep: \s__fp \__fp_chk:w #4#5\__fp_sep: { \if_meaning:w 3 #4 \if_meaning:w 3 #2 @@ -17992,8 +18050,8 @@ Type H <return> for immediate help}\def~{\errmessage{% \else: \if_int_compare:w \__fp_compare_back:ww - \s__fp \__fp_chk:w #4#5; - \s__fp \__fp_chk:w #2#3; + \s__fp \__fp_chk:w #4#5\__fp_sep: + \s__fp \__fp_chk:w #2#3\__fp_sep: = #1 1 \exp_stop_f: \__fp_minmax_auxii:ww \else: @@ -18001,16 +18059,17 @@ Type H <return> for immediate help}\def~{\errmessage{% \fi: \fi: \__fp_minmax_loop:Nww #1 - \s__fp \__fp_chk:w #2#3; - \s__fp \__fp_chk:w #4#5; + \s__fp \__fp_chk:w #2#3\__fp_sep: + \s__fp \__fp_chk:w #4#5\__fp_sep: } -\cs_new:Npn \__fp_minmax_auxi:ww #1 \fi: \fi: #2 \s__fp #3 ; \s__fp #4; - { \fi: \fi: #2 \s__fp #3 ; } -\cs_new:Npn \__fp_minmax_auxii:ww #1 \fi: \fi: #2 \s__fp #3 ; +\cs_new:Npn \__fp_minmax_auxi:ww + #1 \fi: \fi: #2 \s__fp #3 \__fp_sep: \s__fp #4\__fp_sep: + { \fi: \fi: #2 \s__fp #3 \__fp_sep: } +\cs_new:Npn \__fp_minmax_auxii:ww #1 \fi: \fi: #2 \s__fp #3 \__fp_sep: { \fi: \fi: #2 } -\cs_new:Npn \__fp_minmax_break_o:w #1 \fi: \fi: #2 \s__fp #3; #4; - { \fi: \__fp_exp_after_o:w \s__fp #3; } -\cs_new:Npn \__fp_not_o:w #1 \s__fp \__fp_chk:w #2#3; @ +\cs_new:Npn \__fp_minmax_break_o:w #1 \fi: \fi: #2 \s__fp #3\__fp_sep: #4\__fp_sep: + { \fi: \__fp_exp_after_o:w \s__fp #3\__fp_sep: } +\cs_new:Npn \__fp_not_o:w #1 \s__fp \__fp_chk:w #2#3\__fp_sep: @ { \if_meaning:w 0 #2 \exp_after:wN \exp_after:wN \exp_after:wN \c_one_fp @@ -18022,30 +18081,31 @@ Type H <return> for immediate help}\def~{\errmessage{% \group_begin: \char_set_catcode_letter:N & \char_set_catcode_letter:N | - \cs_new:Npn \__fp_&_o:ww #1 \s__fp \__fp_chk:w #2#3; + \cs_new:Npn \__fp_&_o:ww #1 \s__fp \__fp_chk:w #2#3\__fp_sep: { \if_meaning:w 0 #2 #1 - \__fp_and_return:wNw \s__fp \__fp_chk:w #2#3; + \__fp_and_return:wNw \s__fp \__fp_chk:w #2#3\__fp_sep: \fi: \__fp_exp_after_o:w } - \cs_new:Npn \__fp_&_tuple_o:ww #1 \s__fp \__fp_chk:w #2#3; + \cs_new:Npn \__fp_&_tuple_o:ww #1 \s__fp \__fp_chk:w #2#3\__fp_sep: { \if_meaning:w 0 #2 #1 - \__fp_and_return:wNw \s__fp \__fp_chk:w #2#3; + \__fp_and_return:wNw \s__fp \__fp_chk:w #2#3\__fp_sep: \fi: \__fp_exp_after_tuple_o:w } - \cs_new:Npn \__fp_tuple_&_o:ww #1; { \__fp_exp_after_o:w } - \cs_new:Npn \__fp_tuple_&_tuple_o:ww #1; { \__fp_exp_after_tuple_o:w } + \cs_new:Npn \__fp_tuple_&_o:ww #1\__fp_sep: { \__fp_exp_after_o:w } + \cs_new:Npn \__fp_tuple_&_tuple_o:ww #1\__fp_sep: { \__fp_exp_after_tuple_o:w } \cs_new:Npn \__fp_|_o:ww { \__fp_&_o:ww \else: } \cs_new:Npn \__fp_|_tuple_o:ww { \__fp_&_tuple_o:ww \else: } - \cs_new:Npn \__fp_tuple_|_o:ww #1; #2; { \__fp_exp_after_tuple_o:w #1; } - \cs_new:Npn \__fp_tuple_|_tuple_o:ww #1; #2; - { \__fp_exp_after_tuple_o:w #1; } + \cs_new:Npn \__fp_tuple_|_o:ww #1\__fp_sep: #2\__fp_sep: + { \__fp_exp_after_tuple_o:w #1\__fp_sep: } + \cs_new:Npn \__fp_tuple_|_tuple_o:ww #1\__fp_sep: #2\__fp_sep: + { \__fp_exp_after_tuple_o:w #1\__fp_sep: } \group_end: -\cs_new:Npn \__fp_and_return:wNw #1; \fi: #2; - { \fi: \__fp_exp_after_o:w #1; } +\cs_new:Npn \__fp_and_return:wNw #1\__fp_sep: \fi: #2\__fp_sep: + { \fi: \__fp_exp_after_o:w #1\__fp_sep: } \cs_new:Npn \__fp_ternary:NwwN #1 #2#3@ #4@ #5 { \if_meaning:w \__fp_parse_infix_::N #5 @@ -18106,7 +18166,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \exp_not:n { \s__fp \__fp_neg_sign:N } } \cs_new:cpn { __fp_+_o:ww } - \s__fp #1 \__fp_chk:w #2 #3 ; \s__fp \__fp_chk:w #4 #5 + \s__fp #1 \__fp_chk:w #2 #3 \__fp_sep: \s__fp \__fp_chk:w #4 #5 { \if_case:w \if_meaning:w #2 #4 @@ -18126,10 +18186,10 @@ Type H <return> for immediate help}\def~{\errmessage{% \else: \exp_after:wN \__fp_add_return_ii_o:Nww \int_value:w \fi: #1 #5 - \s__fp \__fp_chk:w #2 #3 ; + \s__fp \__fp_chk:w #2 #3 \__fp_sep: \s__fp \__fp_chk:w #4 #5 } -\cs_new:Npn \__fp_add_return_ii_o:Nww #1 #2 ; \s__fp \__fp_chk:w #3 #4 +\cs_new:Npn \__fp_add_return_ii_o:Nww #1 #2 \__fp_sep: \s__fp \__fp_chk:w #3 #4 { \__fp_exp_after_o:w \s__fp \__fp_chk:w #3 #1 } \cs_new:Npn \__fp_add_zeros_o:Nww #1 \s__fp \__fp_chk:w 0 #2 { @@ -18142,7 +18202,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \s__fp \__fp_chk:w 0 #2 } \cs_new:Npn \__fp_add_inf_o:Nww - #1 \s__fp \__fp_chk:w 2 #2 #3; \s__fp \__fp_chk:w 2 #4 + #1 \s__fp \__fp_chk:w 2 #2 #3\__fp_sep: \s__fp \__fp_chk:w 2 #4 { \if_meaning:w #1 #2 \__fp_case_return_i_o:ww @@ -18153,7 +18213,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \token_if_eq_meaning:NNTF #1 #4 + - } } \fi: - \s__fp \__fp_chk:w 2 #2 #3; + \s__fp \__fp_chk:w 2 #2 #3\__fp_sep: \s__fp \__fp_chk:w 2 #4 } \cs_new:Npn \__fp_add_normal_o:Nww #1 \s__fp \__fp_chk:w 1 #2 @@ -18165,7 +18225,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \fi: #2 } -\cs_new:Npn \__fp_add_npos_o:NnwNnw #1#2#3 ; \s__fp \__fp_chk:w 1 #4 #5 +\cs_new:Npn \__fp_add_npos_o:NnwNnw #1#2#3 \__fp_sep: \s__fp \__fp_chk:w 1 #4 #5 { \exp_after:wN \__fp_sanitize:Nw \exp_after:wN #1 @@ -18177,9 +18237,9 @@ Type H <return> for immediate help}\def~{\errmessage{% #5 \exp_after:wN \__fp_add_big_ii_o:wNww \int_value:w \fi: - \__fp_int_eval:w #5 - #2 ; #1 #3; + \__fp_int_eval:w #5 - #2 \__fp_sep: #1 #3\__fp_sep: } -\cs_new:Npn \__fp_add_big_i_o:wNww #1; #2 #3; #4; +\cs_new:Npn \__fp_add_big_i_o:wNww #1\__fp_sep: #2 #3\__fp_sep: #4\__fp_sep: { \__fp_decimate:nNnnnn {#1} \__fp_add_significand_o:NnnwnnnnN @@ -18187,7 +18247,7 @@ Type H <return> for immediate help}\def~{\errmessage{% #3 #2 } -\cs_new:Npn \__fp_add_big_ii_o:wNww #1; #2 #3; #4; +\cs_new:Npn \__fp_add_big_ii_o:wNww #1\__fp_sep: #2 #3\__fp_sep: #4\__fp_sep: { \__fp_decimate:nNnnnn {#1} \__fp_add_significand_o:NnnwnnnnN @@ -18195,19 +18255,19 @@ Type H <return> for immediate help}\def~{\errmessage{% #4 #2 } -\cs_new:Npn \__fp_add_significand_o:NnnwnnnnN #1 #2#3 #4; #5#6#7#8 +\cs_new:Npn \__fp_add_significand_o:NnnwnnnnN #1 #2#3 #4\__fp_sep: #5#6#7#8 { \exp_after:wN \__fp_add_significand_test_o:N \int_value:w \__fp_int_eval:w 1#5#6 + #2 \exp_after:wN \__fp_add_significand_pack:NNNNNNN - \int_value:w \__fp_int_eval:w 1#7#8 + #3 ; #1 + \int_value:w \__fp_int_eval:w 1#7#8 + #3 \__fp_sep: #1 } \cs_new:Npn \__fp_add_significand_pack:NNNNNNN #1 #2#3#4#5#6#7 { \if_meaning:w 2 #1 + 1 \fi: - ; #2 #3 #4 #5 #6 #7 ; + \__fp_sep: #2 #3 #4 #5 #6 #7 \__fp_sep: } \cs_new:Npn \__fp_add_significand_test_o:N #1 { @@ -18218,17 +18278,17 @@ Type H <return> for immediate help}\def~{\errmessage{% \fi: } \cs_new:Npn \__fp_add_significand_no_carry_o:wwwNN - #1; #2; #3#4 ; #5#6 + #1\__fp_sep: #2\__fp_sep: #3#4 \__fp_sep: #5#6 { \exp_after:wN \__fp_basics_pack_high:NNNNNw \int_value:w \__fp_int_eval:w 1 #1 \exp_after:wN \__fp_basics_pack_low:NNNNNw \int_value:w \__fp_int_eval:w 1 #2 #3#4 + \__fp_round:NNN #6 #4 #5 - \exp_after:wN ; + \exp_after:wN \__fp_sep: } \cs_new:Npn \__fp_add_significand_carry_o:wwwNN - #1; #2; #3#4; #5#6 + #1\__fp_sep: #2\__fp_sep: #3#4\__fp_sep: #5#6 { + 1 \exp_after:wN \__fp_basics_pack_weird_high:NNNNNNNNw @@ -18238,28 +18298,31 @@ Type H <return> for immediate help}\def~{\errmessage{% \exp_after:wN \__fp_round:NNN \exp_after:wN #6 \exp_after:wN #3 - \int_value:w \__fp_round_digit:Nw #4 #5 ; - \exp_after:wN ; + \int_value:w \__fp_round_digit:Nw #4 #5 \__fp_sep: + \exp_after:wN \__fp_sep: } -\cs_new:Npn \__fp_sub_npos_o:NnwNnw #1#2#3; \s__fp \__fp_chk:w 1 #4#5#6; +\cs_new:Npn \__fp_sub_npos_o:NnwNnw + #1#2#3\__fp_sep: \s__fp \__fp_chk:w 1 #4#5#6\__fp_sep: { - \if_case:w \__fp_compare_npos:nwnw {#2} #3; {#5} #6; \exp_stop_f: + \if_case:w + \__fp_compare_npos:nwnw {#2} #3\__fp_sep: {#5} #6\__fp_sep: \exp_stop_f: \exp_after:wN \__fp_sub_eq_o:Nnwnw \or: \exp_after:wN \__fp_sub_npos_i_o:Nnwnw \else: \exp_after:wN \__fp_sub_npos_ii_o:Nnwnw \fi: - #1 {#2} #3; {#5} #6; + #1 {#2} #3\__fp_sep: {#5} #6\__fp_sep: } -\cs_new:Npn \__fp_sub_eq_o:Nnwnw #1#2; #3; { \exp_after:wN \c_zero_fp } -\cs_new:Npn \__fp_sub_npos_ii_o:Nnwnw #1 #2; #3; +\cs_new:Npn \__fp_sub_eq_o:Nnwnw #1#2\__fp_sep: #3\__fp_sep: + { \exp_after:wN \c_zero_fp } +\cs_new:Npn \__fp_sub_npos_ii_o:Nnwnw #1 #2\__fp_sep: #3\__fp_sep: { \exp_after:wN \__fp_sub_npos_i_o:Nnwnw \int_value:w \__fp_neg_sign:N #1 - #3; #2; + #3\__fp_sep: #2\__fp_sep: } -\cs_new:Npn \__fp_sub_npos_i_o:Nnwnw #1 #2#3; #4#5; +\cs_new:Npn \__fp_sub_npos_i_o:Nnwnw #1 #2#3\__fp_sep: #4#5\__fp_sep: { \exp_after:wN \__fp_sanitize:Nw \exp_after:wN #1 @@ -18281,42 +18344,43 @@ Type H <return> for immediate help}\def~{\errmessage{% \exp_after:wN \__fp_sub_back_near_after:wNNNNw \int_value:w \__fp_int_eval:w 10#5#6 - #1#2 - 11 \exp_after:wN \__fp_sub_back_near_pack:NNNNNNw - \int_value:w \__fp_int_eval:w 11#7#8 - #3#4 \exp_after:wN ; + \int_value:w \__fp_int_eval:w 11#7#8 - #3#4 \exp_after:wN \__fp_sep: } -\cs_new:Npn \__fp_sub_back_near_pack:NNNNNNw #1#2#3#4#5#6#7 ; - { + #1#2 ; {#3#4#5#6} {#7} ; } -\cs_new:Npn \__fp_sub_back_near_after:wNNNNw 10 #1#2#3#4 #5 ; +\cs_new:Npn \__fp_sub_back_near_pack:NNNNNNw #1#2#3#4#5#6#7 \__fp_sep: + { + #1#2 \__fp_sep: {#3#4#5#6} {#7} \__fp_sep: } +\cs_new:Npn \__fp_sub_back_near_after:wNNNNw 10 #1#2#3#4 #5 \__fp_sep: { \if_meaning:w 0 #1 \exp_after:wN \__fp_sub_back_shift:wnnnn \fi: - ; {#1#2#3#4} {#5} + \__fp_sep: {#1#2#3#4} {#5} } -\cs_new:Npn \__fp_sub_back_shift:wnnnn ; #1#2 +\cs_new:Npn \__fp_sub_back_shift:wnnnn \__fp_sep: #1#2 { \exp_after:wN \__fp_sub_back_shift_ii:ww - \int_value:w #1 #2 0 ; + \int_value:w #1 #2 0 \__fp_sep: } -\cs_new:Npn \__fp_sub_back_shift_ii:ww #1 0 ; #2#3 ; +\cs_new:Npn \__fp_sub_back_shift_ii:ww #1 0 \__fp_sep: #2#3 \__fp_sep: { \if_meaning:w @ #1 @ - 7 - \exp_after:wN \use_i:nnn \exp_after:wN \__fp_sub_back_shift_iii:NNNNNNNNw - \int_value:w #2#3 0 ~ 123456789; + \int_value:w #2#3 0 ~ 123456789\__fp_sep: \else: - - \__fp_sub_back_shift_iii:NNNNNNNNw #1 123456789; + - \__fp_sub_back_shift_iii:NNNNNNNNw #1 123456789\__fp_sep: \fi: \exp_after:wN \__fp_pack_twice_four:wNNNNNNNN \exp_after:wN \__fp_pack_twice_four:wNNNNNNNN \exp_after:wN \__fp_sub_back_shift_iv:nnnnw - \exp_after:wN ; + \exp_after:wN \__fp_sep: \int_value:w - #1 ~ #2#3 0 ~ 0000 0000 0000 000 ; + #1 ~ #2#3 0 ~ 0000 0000 0000 000 \__fp_sep: } -\cs_new:Npn \__fp_sub_back_shift_iii:NNNNNNNNw #1#2#3#4#5#6#7#8#9; {#8} -\cs_new:Npn \__fp_sub_back_shift_iv:nnnnw #1 ; #2 ; { ; #1 ; } -\cs_new:Npn \__fp_sub_back_far_o:NnnwnnnnN #1 #2#3 #4; #5#6#7#8 +\cs_new:Npn \__fp_sub_back_shift_iii:NNNNNNNNw #1#2#3#4#5#6#7#8#9\__fp_sep: {#8} +\cs_new:Npn \__fp_sub_back_shift_iv:nnnnw #1 \__fp_sep: #2 \__fp_sep: + { \__fp_sep: #1 \__fp_sep: } +\cs_new:Npn \__fp_sub_back_far_o:NnnwnnnnN #1 #2#3 #4\__fp_sep: #5#6#7#8 { \if_case:w \if_int_compare:w 1 #2 = #5#6 \use_i:nnnn #7 \exp_stop_f: @@ -18333,9 +18397,9 @@ Type H <return> for immediate help}\def~{\errmessage{% \or: \exp_after:wN \__fp_sub_back_very_far_o:wwwwNN \else: \exp_after:wN \__fp_sub_back_not_far_o:wwwwNN \fi: - #2 ~ #3 ; #5 #6 ~ #7 #8 ; #1 + #2 ~ #3 \__fp_sep: #5 #6 ~ #7 #8 \__fp_sep: #1 } -\cs_new:Npn \__fp_sub_back_quite_far_o:wwNN #1; #2; #3#4 +\cs_new:Npn \__fp_sub_back_quite_far_o:wwNN #1\__fp_sep: #2\__fp_sep: #3#4 { \exp_after:wN \__fp_sub_back_quite_far_ii:NN \exp_after:wN #3 @@ -18348,10 +18412,10 @@ Type H <return> for immediate help}\def~{\errmessage{% \else: \exp_after:wN \use_ii:nn \fi: - { ; {1000} {0000} {0000} {0000} ; } - { - 1 ; {9999} {9999} {9999} {9999} ; } + { \__fp_sep: {1000} {0000} {0000} {0000} \__fp_sep: } + { - 1 \__fp_sep: {9999} {9999} {9999} {9999} \__fp_sep: } } -\cs_new:Npn \__fp_sub_back_not_far_o:wwwwNN #1 ~ #2; #3 ~ #4; #5#6 +\cs_new:Npn \__fp_sub_back_not_far_o:wwwwNN #1 ~ #2\__fp_sep: #3 ~ #4\__fp_sep: #5#6 { - 1 \exp_after:wN \__fp_sub_back_near_after:wNNNNw @@ -18361,16 +18425,17 @@ Type H <return> for immediate help}\def~{\errmessage{% - \exp_after:wN \__fp_round_neg:NNN \exp_after:wN #6 \use_none:nnnnnnn #2 #5 - \exp_after:wN ; + \exp_after:wN \__fp_sep: } \cs_new:Npn \__fp_sub_back_very_far_o:wwwwNN #1#2#3#4#5#6#7 { \__fp_pack_eight:wNNNNNNNN \__fp_sub_back_very_far_ii_o:nnNwwNN { 0 #1#2#3 #4#5#6#7 } - ; + \__fp_sep: } -\cs_new:Npn \__fp_sub_back_very_far_ii_o:nnNwwNN #1#2 ; #3 ; #4 ~ #5; #6#7 +\cs_new:Npn \__fp_sub_back_very_far_ii_o:nnNwwNN + #1#2 \__fp_sep: #3 \__fp_sep: #4 ~ #5\__fp_sep: #6#7 { \exp_after:wN \__fp_basics_pack_high:NNNNNw \int_value:w \__fp_int_eval:w 1#4 - #1 - 1 @@ -18381,8 +18446,8 @@ Type H <return> for immediate help}\def~{\errmessage{% \int_value:w \if_int_odd:w \__fp_int_eval:w #5 - #2 \__fp_int_eval_end: 1 \else: 2 \fi: - \int_value:w \__fp_round_digit:Nw #3 #6 ; - \exp_after:wN ; + \int_value:w \__fp_round_digit:Nw #3 #6 \__fp_sep: + \exp_after:wN \__fp_sep: } \cs_new:cpn { __fp_*_o:ww } { @@ -18393,7 +18458,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { } } \cs_new:Npn \__fp_mul_cases_o:NnNnww - #1#2#3#4 \s__fp \__fp_chk:w #5#6#7; \s__fp \__fp_chk:w #8#9 + #1#2#3#4 \s__fp \__fp_chk:w #5#6#7\__fp_sep: \s__fp \__fp_chk:w #8#9 { \if_case:w \__fp_int_eval:w \if_int_compare:w #5 #8 = 11 ~ @@ -18427,11 +18492,12 @@ Type H <return> for immediate help}\def~{\errmessage{% \or: \__fp_case_return_o:Nww \c_minus_inf_fp #4 \fi: - \s__fp \__fp_chk:w #5 #6 #7; + \s__fp \__fp_chk:w #5 #6 #7\__fp_sep: \s__fp \__fp_chk:w #8 #9 } \cs_new:Npn \__fp_mul_npos_o:Nww - #1 \s__fp \__fp_chk:w #2 #3 #4 #5 ; \s__fp \__fp_chk:w #6 #7 #8 #9 ; + #1 \s__fp \__fp_chk:w #2 #3 #4 #5 \__fp_sep: + \s__fp \__fp_chk:w #6 #7 #8 #9 \__fp_sep: { \exp_after:wN \__fp_sanitize:Nw \exp_after:wN #1 @@ -18457,13 +18523,13 @@ Type H <return> for immediate help}\def~{\errmessage{% \exp_after:wN \__fp_mul_significand_drop:NNNNNw \int_value:w \__fp_int_eval:w 99990000 + #3*#9 + #4*#8 + \exp_after:wN \__fp_mul_significand_drop:NNNNNw - \int_value:w \__fp_int_eval:w 100000000 + #4*#9 ; - ; \exp_after:wN ; + \int_value:w \__fp_int_eval:w 100000000 + #4*#9 \__fp_sep: + \__fp_sep: \exp_after:wN \__fp_sep: } -\cs_new:Npn \__fp_mul_significand_drop:NNNNNw #1#2#3#4#5 #6; - { #1#2#3#4#5 ; + #6 } -\cs_new:Npn \__fp_mul_significand_keep:NNNNNw #1#2#3#4#5 #6; - { #1#2#3#4#5 ; #6 ; } +\cs_new:Npn \__fp_mul_significand_drop:NNNNNw #1#2#3#4#5 #6\__fp_sep: + { #1#2#3#4#5 \__fp_sep: + #6 } +\cs_new:Npn \__fp_mul_significand_keep:NNNNNw #1#2#3#4#5 #6\__fp_sep: + { #1#2#3#4#5 \__fp_sep: #6 \__fp_sep: } \cs_new:Npn \__fp_mul_significand_test_f:NNN #1 #2 #3 { \if_meaning:w 0 #3 @@ -18473,7 +18539,8 @@ Type H <return> for immediate help}\def~{\errmessage{% \fi: #1 #3 } -\cs_new:Npn \__fp_mul_significand_large_f:NwwNNNN #1 #2; #3; #4#5#6#7; + +\cs_new:Npn \__fp_mul_significand_large_f:NwwNNNN + #1 #2\__fp_sep: #3\__fp_sep: #4#5#6#7\__fp_sep: + { \exp_after:wN \__fp_basics_pack_high:NNNNNw \int_value:w \__fp_int_eval:w 1#2 @@ -18484,7 +18551,8 @@ Type H <return> for immediate help}\def~{\errmessage{% \exp_after:wN #7 \int_value:w \__fp_round_digit:Nw } -\cs_new:Npn \__fp_mul_significand_small_f:NNwwwN #1 #2#3; #4#5; #6; + #7 +\cs_new:Npn \__fp_mul_significand_small_f:NNwwwN + #1 #2#3\__fp_sep: #4#5\__fp_sep: #6\__fp_sep: + #7 { - 1 \exp_after:wN \__fp_basics_pack_high:NNNNNw @@ -18512,25 +18580,26 @@ Type H <return> for immediate help}\def~{\errmessage{% } } \cs_new:Npn \__fp_div_npos_o:Nww - #1 \s__fp \__fp_chk:w 1 #2 #3 #4 ; \s__fp \__fp_chk:w 1 #5 #6 #7#8#9; + #1 \s__fp \__fp_chk:w 1 #2 #3 #4 \__fp_sep: + \s__fp \__fp_chk:w 1 #5 #6 #7#8#9\__fp_sep: { \exp_after:wN \__fp_sanitize:Nw \exp_after:wN #1 \int_value:w \__fp_int_eval:w #3 - #6 \exp_after:wN \__fp_div_significand_i_o:wnnw - \int_value:w \__fp_int_eval:w #7 \use_i:nnnn #8 + 1 ; + \int_value:w \__fp_int_eval:w #7 \use_i:nnnn #8 + 1 \__fp_sep: #4 - {#7}{#8}#9 ; + {#7}{#8}#9 \__fp_sep: #1 } -\cs_new:Npn \__fp_div_significand_i_o:wnnw #1 ; #2#3 #4 ; +\cs_new:Npn \__fp_div_significand_i_o:wnnw #1 \__fp_sep: #2#3 #4 \__fp_sep: { \exp_after:wN \__fp_div_significand_test_o:w \int_value:w \__fp_int_eval:w \exp_after:wN \__fp_div_significand_calc:wwnnnnnnn - \int_value:w \__fp_int_eval:w 999999 + #2 #3 0 / #1 ; - #2 #3 ; + \int_value:w \__fp_int_eval:w 999999 + #2 #3 0 / #1 \__fp_sep: + #2 #3 \__fp_sep: #4 { \exp_after:wN \__fp_div_significand_ii:wwn \int_value:w #1 } { \exp_after:wN \__fp_div_significand_ii:wwn \int_value:w #1 } @@ -18546,10 +18615,10 @@ Type H <return> for immediate help}\def~{\errmessage{% \fi: } \cs_new:Npn \__fp_div_significand_calc_i:wwnnnnnnn - #1; #2;#3#4 #5#6#7#8 #9 + #1\__fp_sep: #2\__fp_sep:#3#4 #5#6#7#8 #9 { 1 1 #1 - #9 \exp_after:wN ; + #9 \exp_after:wN \__fp_sep: \int_value:w \__fp_int_eval:w \c__fp_Bigg_leading_shift_int + #2 - #1 * #5 - #5#60 \exp_after:wN \__fp_pack_Bigg:NNNNNNw @@ -18560,14 +18629,14 @@ Type H <return> for immediate help}\def~{\errmessage{% + #4 - #1 * #7 - #80 \exp_after:wN \__fp_pack_Bigg:NNNNNNw \int_value:w \__fp_int_eval:w \c__fp_Bigg_trailing_shift_int - - #1 * #8 ; + - #1 * #8 \__fp_sep: {#5}{#6}{#7}{#8} } \cs_new:Npn \__fp_div_significand_calc_ii:wwnnnnnnn - #1; #2;#3#4 #5#6#7#8 #9 + #1\__fp_sep: #2\__fp_sep:#3#4 #5#6#7#8 #9 { 1 0 #1 - #9 \exp_after:wN ; + #9 \exp_after:wN \__fp_sep: \int_value:w \__fp_int_eval:w \c__fp_Bigg_leading_shift_int + #2 - #1 * #5 \exp_after:wN \__fp_pack_Bigg:NNNNNNw @@ -18578,25 +18647,27 @@ Type H <return> for immediate help}\def~{\errmessage{% + #4 - #1 * #7 \exp_after:wN \__fp_pack_Bigg:NNNNNNw \int_value:w \__fp_int_eval:w \c__fp_Bigg_trailing_shift_int - - #1 * #8 ; + - #1 * #8 \__fp_sep: {#5}{#6}{#7}{#8} } -\cs_new:Npn \__fp_div_significand_ii:wwn #1; #2;#3 +\cs_new:Npn \__fp_div_significand_ii:wwn #1\__fp_sep: #2\__fp_sep:#3 { \exp_after:wN \__fp_div_significand_pack:NNN \int_value:w \__fp_int_eval:w \exp_after:wN \__fp_div_significand_calc:wwnnnnnnn - \int_value:w \__fp_int_eval:w 999999 + #2 #3 0 / #1 ; #2 #3 ; + \int_value:w \__fp_int_eval:w + 999999 + #2 #3 0 / #1 \__fp_sep: #2 #3 \__fp_sep: } -\cs_new:Npn \__fp_div_significand_iii:wwnnnnn #1; #2;#3#4#5 #6#7 +\cs_new:Npn \__fp_div_significand_iii:wwnnnnn #1\__fp_sep: #2\__fp_sep:#3#4#5 #6#7 { 0 \exp_after:wN \__fp_div_significand_iv:wwnnnnnnn - \int_value:w \__fp_int_eval:w ( 2 * #2 #3) / #6 #7 ; % <- P - #2 ; {#3} {#4} {#5} + \int_value:w \__fp_int_eval:w ( 2 * #2 #3) / #6 #7 \__fp_sep: % <- P + #2 \__fp_sep: {#3} {#4} {#5} {#6} {#7} } -\cs_new:Npn \__fp_div_significand_iv:wwnnnnnnn #1; #2;#3#4#5 #6#7#8#9 +\cs_new:Npn \__fp_div_significand_iv:wwnnnnnnn + #1\__fp_sep: #2\__fp_sep:#3#4#5 #6#7#8#9 { + 5 * #1 \exp_after:wN \__fp_div_significand_vi:Nw @@ -18604,19 +18675,19 @@ Type H <return> for immediate help}\def~{\errmessage{% \exp_after:wN \__fp_div_significand_v:NN \int_value:w \__fp_int_eval:w 499950 + 2*#4 - #1*#8 + \exp_after:wN \__fp_div_significand_v:NN - \int_value:w \__fp_int_eval:w 500000 + 2*#5 - #1*#9 ; + \int_value:w \__fp_int_eval:w 500000 + 2*#5 - #1*#9 \__fp_sep: } \cs_new:Npn \__fp_div_significand_v:NN #1#2 { #1#2 \__fp_int_eval_end: + } -\cs_new:Npn \__fp_div_significand_vi:Nw #1#2; +\cs_new:Npn \__fp_div_significand_vi:Nw #1#2\__fp_sep: { \if_meaning:w 0 #1 \if_int_compare:w \__fp_int_eval:w #2 > 0 + 1 \fi: \else: \if_meaning:w - #1 - \else: + \fi: 1 \fi: - ; + \__fp_sep: } -\cs_new:Npn \__fp_div_significand_pack:NNN 1 #1 #2 { + #1 #2 ; } +\cs_new:Npn \__fp_div_significand_pack:NNN 1 #1 #2 { + #1 #2 \__fp_sep: } \cs_new:Npn \__fp_div_significand_test_o:w 10 #1 { \if_meaning:w 0 #1 @@ -18627,17 +18698,17 @@ Type H <return> for immediate help}\def~{\errmessage{% #1 } \cs_new:Npn \__fp_div_significand_small_o:wwwNNNNwN - 0 #1; #2; #3; #4#5#6#7#8; #9 + 0 #1\__fp_sep: #2\__fp_sep: #3\__fp_sep: #4#5#6#7#8\__fp_sep: #9 { \exp_after:wN \__fp_basics_pack_high:NNNNNw \int_value:w \__fp_int_eval:w 1 #1#2 \exp_after:wN \__fp_basics_pack_low:NNNNNw \int_value:w \__fp_int_eval:w 1 #3#4#5#6#7 + \__fp_round:NNN #9 #7 #8 - \exp_after:wN ; + \exp_after:wN \__fp_sep: } \cs_new:Npn \__fp_div_significand_large_o:wwwNNNNwN - #1; #2; #3; #4#5#6#7#8; #9 + #1\__fp_sep: #2\__fp_sep: #3\__fp_sep: #4#5#6#7#8\__fp_sep: #9 { + 1 \exp_after:wN \__fp_basics_pack_weird_high:NNNNNNNNw @@ -18647,10 +18718,10 @@ Type H <return> for immediate help}\def~{\errmessage{% \exp_after:wN \__fp_round:NNN \exp_after:wN #9 \exp_after:wN #6 - \int_value:w \__fp_round_digit:Nw #7 #8 ; - \exp_after:wN ; + \int_value:w \__fp_round_digit:Nw #7 #8 \__fp_sep: + \exp_after:wN \__fp_sep: } -\cs_new:Npn \__fp_sqrt_o:w #1 \s__fp \__fp_chk:w #2#3#4; @ +\cs_new:Npn \__fp_sqrt_o:w #1 \s__fp \__fp_chk:w #2#3#4\__fp_sep: @ { \if_meaning:w 0 #2 \__fp_case_return_same_o:w \fi: \if_meaning:w 2 #3 @@ -18658,9 +18729,9 @@ Type H <return> for immediate help}\def~{\errmessage{% \fi: \if_meaning:w 1 #2 \else: \__fp_case_return_same_o:w \fi: \__fp_sqrt_npos_o:w - \s__fp \__fp_chk:w #2 #3 #4; + \s__fp \__fp_chk:w #2 #3 #4\__fp_sep: } -\cs_new:Npn \__fp_sqrt_npos_o:w \s__fp \__fp_chk:w 1 0 #1#2#3#4#5; +\cs_new:Npn \__fp_sqrt_npos_o:w \s__fp \__fp_chk:w 1 0 #1#2#3#4#5\__fp_sep: { \exp_after:wN \__fp_sanitize:Nw \exp_after:wN 0 @@ -18669,19 +18740,19 @@ Type H <return> for immediate help}\def~{\errmessage{% \exp_after:wN \__fp_sqrt_npos_auxi_o:wwnnN \fi: #1 / 2 - \__fp_sqrt_Newton_o:wwn 56234133; 0; {#2#3} {#4#5} 0 + \__fp_sqrt_Newton_o:wwn 56234133\__fp_sep: 0\__fp_sep: {#2#3} {#4#5} 0 } -\cs_new:Npn \__fp_sqrt_npos_auxi_o:wwnnN #1 / 2 #2; 0; #3#4#5 +\cs_new:Npn \__fp_sqrt_npos_auxi_o:wwnnN #1 / 2 #2\__fp_sep: 0\__fp_sep: #3#4#5 { ( #1 + 1 ) / 2 \__fp_pack_eight:wNNNNNNNN \__fp_sqrt_npos_auxii_o:wNNNNNNNN - ; + \__fp_sep: 0 #3 #4 } -\cs_new:Npn \__fp_sqrt_npos_auxii_o:wNNNNNNNN #1; #2#3#4#5#6#7#8#9 - { \__fp_sqrt_Newton_o:wwn 17782794; 0; {#1} {#2#3#4#5#6#7#8#9} } -\cs_new:Npn \__fp_sqrt_Newton_o:wwn #1; #2; #3 +\cs_new:Npn \__fp_sqrt_npos_auxii_o:wNNNNNNNN #1\__fp_sep: #2#3#4#5#6#7#8#9 + { \__fp_sqrt_Newton_o:wwn 17782794\__fp_sep: 0\__fp_sep: {#1} {#2#3#4#5#6#7#8#9} } +\cs_new:Npn \__fp_sqrt_Newton_o:wwn #1\__fp_sep: #2\__fp_sep: #3 { \if_int_compare:w #1 = #2 \exp_stop_f: \exp_after:wN \__fp_sqrt_auxi_o:NNNNwnnN @@ -18689,10 +18760,10 @@ Type H <return> for immediate help}\def~{\errmessage{% \exp_after:wN \__fp_use_none_until_s:w \fi: \exp_after:wN \__fp_sqrt_Newton_o:wwn - \int_value:w \__fp_int_eval:w (#1 + #3 * 1 0000 0000 / #1) / 2 ; - #1; {#3} + \int_value:w \__fp_int_eval:w (#1 + #3 * 1 0000 0000 / #1) / 2 \__fp_sep: + #1\__fp_sep: {#3} } -\cs_new:Npn \__fp_sqrt_auxi_o:NNNNwnnN 1 #1#2#3#4#5; +\cs_new:Npn \__fp_sqrt_auxi_o:NNNNwnnN 1 #1#2#3#4#5\__fp_sep: { \__fp_sqrt_auxii_o:NnnnnnnnN \__fp_sqrt_auxiii_o:wnnnnnnnn @@ -18728,13 +18799,13 @@ Type H <return> for immediate help}\def~{\errmessage{% \exp_after:wN \__fp_pack_big:NNNNNNw \int_value:w \__fp_int_eval:w \c__fp_big_trailing_shift_int - - #6 * #6 ; + - #6 * #6 \__fp_sep: % ( - - 257 ) * 5000 0000 / (#2#3 + 1) + 10 0000 0000 ; + - 257 ) * 5000 0000 / (#2#3 + 1) + 10 0000 0000 \__fp_sep: {#2}{#3}{#4}{#5}{#6} {#7}{#8}#9 } \cs_new:Npn \__fp_sqrt_auxiii_o:wnnnnnnnn - #1; #2#3#4#5#6#7#8#9 + #1\__fp_sep: #2#3#4#5#6#7#8#9 { \if_int_compare:w #1 > \c_one_int \exp_after:wN \__fp_sqrt_auxiv_o:NNNNNw @@ -18754,13 +18825,13 @@ Type H <return> for immediate help}\def~{\errmessage{% \fi: \fi: } -\cs_new:Npn \__fp_sqrt_auxiv_o:NNNNNw 1#1#2#3#4#5#6; +\cs_new:Npn \__fp_sqrt_auxiv_o:NNNNNw 1#1#2#3#4#5#6\__fp_sep: { \__fp_sqrt_auxviii_o:nnnnnnn {#1#2#3#4#5#6} {00000000} } -\cs_new:Npn \__fp_sqrt_auxv_o:NNNNNw 1#1#2#3#4#5#6; +\cs_new:Npn \__fp_sqrt_auxv_o:NNNNNw 1#1#2#3#4#5#6\__fp_sep: { \__fp_sqrt_auxviii_o:nnnnnnn {000#1#2#3#4#5} {#60000} } -\cs_new:Npn \__fp_sqrt_auxvi_o:NNNNNw 1#1#2#3#4#5#6; +\cs_new:Npn \__fp_sqrt_auxvi_o:NNNNNw 1#1#2#3#4#5#6\__fp_sep: { \__fp_sqrt_auxviii_o:nnnnnnn {0000000#1} {#2#3#4#5#6} } -\cs_new:Npn \__fp_sqrt_auxvii_o:NNNNNw 1#1#2#3#4#5#6; +\cs_new:Npn \__fp_sqrt_auxvii_o:NNNNNw 1#1#2#3#4#5#6\__fp_sep: { \if_int_compare:w #1#2 = \c_zero_int \exp_after:wN \__fp_sqrt_auxx_o:Nnnnnnnn @@ -18774,9 +18845,9 @@ Type H <return> for immediate help}\def~{\errmessage{% \exp_after:wN \__fp_basics_pack_low:NNNNNw \int_value:w \__fp_int_eval:w #1 + 1#4#5 \exp_after:wN \__fp_basics_pack_low:NNNNNw - \int_value:w \__fp_int_eval:w #2 + 1#6#7 ; + \int_value:w \__fp_int_eval:w #2 + 1#6#7 \__fp_sep: } -\cs_new:Npn \__fp_sqrt_auxix_o:wnwnw #1; #2#3; #4#5; +\cs_new:Npn \__fp_sqrt_auxix_o:wnwnw #1\__fp_sep: #2#3\__fp_sep: #4#5\__fp_sep: { \__fp_sqrt_auxii_o:NnnnnnnnN \__fp_sqrt_auxiii_o:wnnnnnnnn {#1}{#2}{#3}{#4}{#5} @@ -18785,17 +18856,17 @@ Type H <return> for immediate help}\def~{\errmessage{% { \exp_after:wN \__fp_sqrt_auxxi_o:wwnnN \int_value:w \__fp_int_eval:w - (#8 + 2499) / 5000 * 5000 ; - {#4} {#5} {#6} {#7} ; + (#8 + 2499) / 5000 * 5000 \__fp_sep: + {#4} {#5} {#6} {#7} \__fp_sep: } -\cs_new:Npn \__fp_sqrt_auxxi_o:wwnnN #1; #2; #3#4#5 +\cs_new:Npn \__fp_sqrt_auxxi_o:wwnnN #1\__fp_sep: #2\__fp_sep: #3#4#5 { \__fp_sqrt_auxii_o:NnnnnnnnN \__fp_sqrt_auxxii_o:nnnnnnnnw #2 {#1} {#3} { #4 + 1 } #5 } -\cs_new:Npn \__fp_sqrt_auxxii_o:nnnnnnnnw 0; #1#2#3#4#5#6#7#8 #9; +\cs_new:Npn \__fp_sqrt_auxxii_o:nnnnnnnnw 0\__fp_sep: #1#2#3#4#5#6#7#8 #9\__fp_sep: { \if_int_compare:w #1#2 > \c_zero_int \if_int_compare:w #1#2 = \c_one_int @@ -18813,14 +18884,14 @@ Type H <return> for immediate help}\def~{\errmessage{% \exp_after:wN \__fp_sqrt_auxxiv_o:wnnnnnnnN \int_value:w 10000 \fi: - ; + \__fp_sep: } -\cs_new:Npn \__fp_sqrt_auxxiii_o:w \fi: \fi: \fi: \fi: #1 \fi: ; +\cs_new:Npn \__fp_sqrt_auxxiii_o:w \fi: \fi: \fi: \fi: #1 \fi: \__fp_sep: { \fi: \fi: \fi: \fi: \fi: - \__fp_sqrt_auxxiv_o:wnnnnnnnN 9999 ; + \__fp_sqrt_auxxiv_o:wnnnnnnnN 9999 \__fp_sep: } -\cs_new:Npn \__fp_sqrt_auxxiv_o:wnnnnnnnN #1; #2#3#4#5#6 #7#8#9 +\cs_new:Npn \__fp_sqrt_auxxiv_o:wnnnnnnnN #1\__fp_sep: #2#3#4#5#6 #7#8#9 { \exp_after:wN \__fp_basics_pack_high:NNNNNw \int_value:w \__fp_int_eval:w 1 0000 0000 + #2#3 @@ -18834,10 +18905,10 @@ Type H <return> for immediate help}\def~{\errmessage{% \int_value:w \exp_after:wN \use_i:nn \exp_after:wN \__fp_round_digit:Nw - \int_value:w \__fp_int_eval:w #6 + 19999 - #1 ; - \exp_after:wN ; + \int_value:w \__fp_int_eval:w #6 + 19999 - #1 \__fp_sep: + \exp_after:wN \__fp_sep: } -\cs_new:Npn \__fp_logb_o:w ? \s__fp \__fp_chk:w #1#2; @ +\cs_new:Npn \__fp_logb_o:w ? \s__fp \__fp_chk:w #1#2\__fp_sep: @ { \if_case:w #1 \exp_stop_f: \__fp_case_use:nw @@ -18846,14 +18917,14 @@ Type H <return> for immediate help}\def~{\errmessage{% \or: \__fp_case_return_o:Nw \c_inf_fp \else: \__fp_case_return_same_o:w \fi: - \s__fp \__fp_chk:w #1 #2; + \s__fp \__fp_chk:w #1 #2\__fp_sep: } -\cs_new:Npn \__fp_logb_aux_o:w \s__fp \__fp_chk:w #1 #2 #3 #4 ; +\cs_new:Npn \__fp_logb_aux_o:w \s__fp \__fp_chk:w #1 #2 #3 #4 \__fp_sep: { \exp_after:wN \__fp_parse:n \exp_after:wN { \int_value:w \int_eval:w #3 - 1 \exp_after:wN } } -\cs_new:Npn \__fp_sign_o:w ? \s__fp \__fp_chk:w #1#2; @ +\cs_new:Npn \__fp_sign_o:w ? \s__fp \__fp_chk:w #1#2\__fp_sep: @ { \if_case:w #1 \exp_stop_f: \__fp_case_return_same_o:w @@ -18861,11 +18932,11 @@ Type H <return> for immediate help}\def~{\errmessage{% \or: \exp_after:wN \__fp_sign_aux_o:w \else: \__fp_case_return_same_o:w \fi: - \s__fp \__fp_chk:w #1 #2; + \s__fp \__fp_chk:w #1 #2\__fp_sep: } -\cs_new:Npn \__fp_sign_aux_o:w \s__fp \__fp_chk:w #1 #2 #3 ; +\cs_new:Npn \__fp_sign_aux_o:w \s__fp \__fp_chk:w #1 #2 #3 \__fp_sep: { \exp_after:wN \__fp_set_sign_o:w \exp_after:wN #2 \c_one_fp @ } -\cs_new:Npn \__fp_set_sign_o:w #1 \s__fp \__fp_chk:w #2#3#4; @ +\cs_new:Npn \__fp_set_sign_o:w #1 \s__fp \__fp_chk:w #2#3#4\__fp_sep: @ { \exp_after:wN \__fp_exp_after_o:w \exp_after:wN \s__fp @@ -18873,7 +18944,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \exp_after:wN #2 \int_value:w \if_case:w #3 \exp_stop_f: #1 \or: 1 \or: 0 \fi: \exp_stop_f: - #4; + #4\__fp_sep: } \cs_new:Npn \__fp_tuple_set_sign_o:w #1#2 @ { @@ -18885,53 +18956,60 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new:Npn \__fp_tuple_set_sign_aux_o:Nnw #1#2 { \__fp_tuple_map_o:nw \__fp_tuple_set_sign_aux_o:w } -\cs_new:Npn \__fp_tuple_set_sign_aux_o:w #1#2 ; +\cs_new:Npn \__fp_tuple_set_sign_aux_o:w #1#2 \__fp_sep: { \__fp_change_func_type:NNN #1 \__fp_set_sign_o:w \__fp_parse_apply_unary_error:NNw - 2 #1 #2 ; @ - } -\cs_new:cpn { __fp_*_tuple_o:ww } #1 ; - { \__fp_tuple_map_o:nw { \__fp_binary_type_o:Nww * #1 ; } } -\cs_new:cpn { __fp_tuple_*_o:ww } #1 ; #2 ; - { \__fp_tuple_map_o:nw { \__fp_binary_rev_type_o:Nww * #2 ; } #1 ; } -\cs_new:cpn { __fp_tuple_/_o:ww } #1 ; #2 ; - { \__fp_tuple_map_o:nw { \__fp_binary_rev_type_o:Nww / #2 ; } #1 ; } + 2 #1 #2 \__fp_sep: @ + } +\cs_new:cpn { __fp_*_tuple_o:ww } #1 \__fp_sep: + { \__fp_tuple_map_o:nw { \__fp_binary_type_o:Nww * #1 \__fp_sep: } } +\cs_new:cpn { __fp_tuple_*_o:ww } #1 \__fp_sep: #2 \__fp_sep: + { + \__fp_tuple_map_o:nw { \__fp_binary_rev_type_o:Nww * #2 \__fp_sep: } + #1 \__fp_sep: + } +\cs_new:cpn { __fp_tuple_/_o:ww } #1 \__fp_sep: #2 \__fp_sep: + { + \__fp_tuple_map_o:nw { \__fp_binary_rev_type_o:Nww / #2 \__fp_sep: } + #1 \__fp_sep: + } \cs_set_protected:Npn \__fp_tmp:w #1 { \cs_new:cpn { __fp_tuple_#1_tuple_o:ww } - \s__fp_tuple \__fp_tuple_chk:w ##1 ; - \s__fp_tuple \__fp_tuple_chk:w ##2 ; + \s__fp_tuple \__fp_tuple_chk:w ##1 \__fp_sep: + \s__fp_tuple \__fp_tuple_chk:w ##2 \__fp_sep: { \int_compare:nNnTF { \__fp_array_count:n {##1} } = { \__fp_array_count:n {##2} } { \__fp_tuple_mapthread_o:nww { \__fp_binary_type_o:Nww #1 } } { \__fp_invalid_operation_o:nww #1 } - \s__fp_tuple \__fp_tuple_chk:w {##1} ; - \s__fp_tuple \__fp_tuple_chk:w {##2} ; + \s__fp_tuple \__fp_tuple_chk:w {##1} \__fp_sep: + \s__fp_tuple \__fp_tuple_chk:w {##2} \__fp_sep: } } \__fp_tmp:w + \__fp_tmp:w - %% File: l3fp-extended.dtx \tl_const:Nn \c__fp_one_fixed_tl - { {10000} {0000} {0000} {0000} {0000} {0000} ; } -\cs_new:Npn \__fp_fixed_continue:wn #1; #2 { #2 #1; } -\cs_new:Npn \__fp_fixed_add_one:wN #1#2; #3 + { {10000} {0000} {0000} {0000} {0000} {0000} \__fp_sep: } +\cs_new:Npn \__fp_fixed_continue:wn #1\__fp_sep: #2 { #2 #1\__fp_sep: } +\cs_new:Npn \__fp_fixed_add_one:wN #1#2\__fp_sep: #3 { \exp_after:wN #3 \exp_after:wN - { \int_value:w \__fp_int_eval:w \c__fp_myriad_int + #1 } #2 ; + { \int_value:w \__fp_int_eval:w \c__fp_myriad_int + #1 } #2 \__fp_sep: } -\cs_new:Npn \__fp_fixed_div_myriad:wn #1#2#3#4#5#6; +\cs_new:Npn \__fp_fixed_div_myriad:wn #1#2#3#4#5#6\__fp_sep: { \exp_after:wN \__fp_fixed_mul_after:wwn \int_value:w \__fp_int_eval:w \c__fp_leading_shift_int \exp_after:wN \__fp_pack:NNNNNw \int_value:w \__fp_int_eval:w \c__fp_trailing_shift_int - + #1 ; {#2}{#3}{#4}{#5}; + + #1 \__fp_sep: {#2}{#3}{#4}{#5}\__fp_sep: } -\cs_new:Npn \__fp_fixed_mul_after:wwn #1; #2; #3 { #3 {#1} #2; } -\cs_new:Npn \__fp_fixed_mul_short:wwn #1#2#3#4#5#6; #7#8#9; +\cs_new:Npn \__fp_fixed_mul_after:wwn #1\__fp_sep: #2\__fp_sep: #3 + { #3 {#1} #2\__fp_sep: } +\cs_new:Npn \__fp_fixed_mul_short:wwn #1#2#3#4#5#6\__fp_sep: #7#8#9\__fp_sep: { \exp_after:wN \__fp_fixed_mul_after:wwn \int_value:w \__fp_int_eval:w \c__fp_leading_shift_int @@ -18952,29 +19030,29 @@ Type H <return> for immediate help}\def~{\errmessage{% \int_value:w \__fp_int_eval:w \c__fp_trailing_shift_int + #4*#9 + #5*#8 + #6*#7 + ( #5*#9 + #6*#8 + #6*#9 / \c__fp_myriad_int ) - / \c__fp_myriad_int ; ; + / \c__fp_myriad_int \__fp_sep: \__fp_sep: } -\cs_new:Npn \__fp_fixed_div_int:wwN #1#2#3#4#5#6 ; #7 ; #8 +\cs_new:Npn \__fp_fixed_div_int:wwN #1#2#3#4#5#6 \__fp_sep: #7 \__fp_sep: #8 { \exp_after:wN \__fp_fixed_div_int_after:Nw \exp_after:wN #8 \int_value:w \__fp_int_eval:w - 1 \__fp_fixed_div_int:wnN - #1; {#7} \__fp_fixed_div_int_auxi:wnn - #2; {#7} \__fp_fixed_div_int_auxi:wnn - #3; {#7} \__fp_fixed_div_int_auxi:wnn - #4; {#7} \__fp_fixed_div_int_auxi:wnn - #5; {#7} \__fp_fixed_div_int_auxi:wnn - #6; {#7} \__fp_fixed_div_int_auxii:wnn ; + #1\__fp_sep: {#7} \__fp_fixed_div_int_auxi:wnn + #2\__fp_sep: {#7} \__fp_fixed_div_int_auxi:wnn + #3\__fp_sep: {#7} \__fp_fixed_div_int_auxi:wnn + #4\__fp_sep: {#7} \__fp_fixed_div_int_auxi:wnn + #5\__fp_sep: {#7} \__fp_fixed_div_int_auxi:wnn + #6\__fp_sep: {#7} \__fp_fixed_div_int_auxii:wnn \__fp_sep: } -\cs_new:Npn \__fp_fixed_div_int:wnN #1; #2 #3 +\cs_new:Npn \__fp_fixed_div_int:wnN #1\__fp_sep: #2 #3 { \exp_after:wN #3 - \int_value:w \__fp_int_eval:w #1 / #2 - 1 ; + \int_value:w \__fp_int_eval:w #1 / #2 - 1 \__fp_sep: {#2} {#1} } -\cs_new:Npn \__fp_fixed_div_int_auxi:wnn #1; #2 #3 +\cs_new:Npn \__fp_fixed_div_int_auxi:wnn #1\__fp_sep: #2 #3 { + #1 \exp_after:wN \__fp_fixed_div_int_pack:Nw @@ -18982,12 +19060,12 @@ Type H <return> for immediate help}\def~{\errmessage{% \exp_after:wN \__fp_fixed_div_int:wnN \int_value:w \__fp_int_eval:w #3 - #1*#2 \__fp_int_eval_end: } -\cs_new:Npn \__fp_fixed_div_int_auxii:wnn #1; #2 #3 { + #1 + 2 ; } -\cs_new:Npn \__fp_fixed_div_int_pack:Nw #1 #2; { + #1; {#2} } -\cs_new:Npn \__fp_fixed_div_int_after:Nw #1 #2; { #1 {#2} } +\cs_new:Npn \__fp_fixed_div_int_auxii:wnn #1\__fp_sep: #2 #3 { + #1 + 2 \__fp_sep: } +\cs_new:Npn \__fp_fixed_div_int_pack:Nw #1 #2\__fp_sep: { + #1\__fp_sep: {#2} } +\cs_new:Npn \__fp_fixed_div_int_after:Nw #1 #2\__fp_sep: { #1 {#2} } \cs_new:Npn \__fp_fixed_add:wwn { \__fp_fixed_add:Nnnnnwnn + } \cs_new:Npn \__fp_fixed_sub:wwn { \__fp_fixed_add:Nnnnnwnn - } -\cs_new:Npn \__fp_fixed_add:Nnnnnwnn #1 #2#3#4#5 #6; #7#8 +\cs_new:Npn \__fp_fixed_add:Nnnnnwnn #1 #2#3#4#5 #6\__fp_sep: #7#8 { \exp_after:wN \__fp_fixed_add_after:NNNNNwn \int_value:w \__fp_int_eval:w 9 9999 9998 + #2#3 #1 #7#8 @@ -18995,17 +19073,18 @@ Type H <return> for immediate help}\def~{\errmessage{% \int_value:w \__fp_int_eval:w 1 9999 9998 + #4#5 \__fp_fixed_add:nnNnnnwn #6 #1 } -\cs_new:Npn \__fp_fixed_add:nnNnnnwn #1#2 #3 #4#5 #6#7 ; #8 +\cs_new:Npn \__fp_fixed_add:nnNnnnwn #1#2 #3 #4#5 #6#7 \__fp_sep: #8 { #3 #4#5 \exp_after:wN \__fp_fixed_add_pack:NNNNNwn - \int_value:w \__fp_int_eval:w 2 0000 0000 #3 #6#7 + #1#2 ; {#8} ; + \int_value:w \__fp_int_eval:w + 2 0000 0000 #3 #6#7 + #1#2 \__fp_sep: {#8} \__fp_sep: } -\cs_new:Npn \__fp_fixed_add_pack:NNNNNwn #1 #2#3#4#5 #6; #7 - { + #1 ; {#7} {#2#3#4#5} {#6} } -\cs_new:Npn \__fp_fixed_add_after:NNNNNwn 1 #1 #2#3#4#5 #6; #7 +\cs_new:Npn \__fp_fixed_add_pack:NNNNNwn #1 #2#3#4#5 #6\__fp_sep: #7 + { + #1 \__fp_sep: {#7} {#2#3#4#5} {#6} } +\cs_new:Npn \__fp_fixed_add_after:NNNNNwn 1 #1 #2#3#4#5 #6\__fp_sep: #7 { #7 {#1#2#3#4#5} {#6} } -\cs_new:Npn \__fp_fixed_mul:wwn #1#2#3#4 #5; #6#7#8#9 +\cs_new:Npn \__fp_fixed_mul:wwn #1#2#3#4 #5\__fp_sep: #6#7#8#9 { \exp_after:wN \__fp_fixed_mul_after:wwn \int_value:w \__fp_int_eval:w \c__fp_leading_shift_int @@ -19027,32 +19106,33 @@ Type H <return> for immediate help}\def~{\errmessage{% + ( #3*#9 + #4*#8 + \__fp_fixed_mul:nnnnnnnw #5 {#6}{#7} {#1}{#2} } -\cs_new:Npn \__fp_fixed_mul:nnnnnnnw #1#2 #3#4 #5#6 #7#8 ; +\cs_new:Npn \__fp_fixed_mul:nnnnnnnw #1#2 #3#4 #5#6 #7#8 \__fp_sep: { #1*#4 + #2*#3 + #5*#8 + #6*#7 ) / \c__fp_myriad_int - + #1*#3 + #5*#7 ; ; + + #1*#3 + #5*#7 \__fp_sep: \__fp_sep: } -\cs_new:Npn \__fp_fixed_mul_add:wwwn #1; #2; #3#4#5#6#7#8; +\cs_new:Npn \__fp_fixed_mul_add:wwwn #1\__fp_sep: #2\__fp_sep: #3#4#5#6#7#8\__fp_sep: { \exp_after:wN \__fp_fixed_mul_after:wwn \int_value:w \__fp_int_eval:w \c__fp_big_leading_shift_int \exp_after:wN \__fp_pack_big:NNNNNNw \int_value:w \__fp_int_eval:w \c__fp_big_middle_shift_int + #3 #4 \__fp_fixed_mul_add:Nwnnnwnnn + - + #5 #6 ; #2 ; #1 ; #2 ; + - + #7 #8 ; ; + + #5 #6 \__fp_sep: #2 \__fp_sep: #1 \__fp_sep: #2 \__fp_sep: + + + #7 #8 \__fp_sep: \__fp_sep: } -\cs_new:Npn \__fp_fixed_mul_sub_back:wwwn #1; #2; #3#4#5#6#7#8; +\cs_new:Npn \__fp_fixed_mul_sub_back:wwwn + #1\__fp_sep: #2\__fp_sep: #3#4#5#6#7#8\__fp_sep: { \exp_after:wN \__fp_fixed_mul_after:wwn \int_value:w \__fp_int_eval:w \c__fp_big_leading_shift_int \exp_after:wN \__fp_pack_big:NNNNNNw \int_value:w \__fp_int_eval:w \c__fp_big_middle_shift_int + #3 #4 \__fp_fixed_mul_add:Nwnnnwnnn - - + #5 #6 ; #2 ; #1 ; #2 ; - - + #7 #8 ; ; + + #5 #6 \__fp_sep: #2 \__fp_sep: #1 \__fp_sep: #2 \__fp_sep: - + + #7 #8 \__fp_sep: \__fp_sep: } -\cs_new:Npn \__fp_fixed_one_minus_mul:wwn #1; #2; +\cs_new:Npn \__fp_fixed_one_minus_mul:wwn #1\__fp_sep: #2\__fp_sep: { \exp_after:wN \__fp_fixed_mul_after:wwn \int_value:w \__fp_int_eval:w \c__fp_big_leading_shift_int @@ -19060,10 +19140,10 @@ Type H <return> for immediate help}\def~{\errmessage{% \int_value:w \__fp_int_eval:w \c__fp_big_middle_shift_int + 1 0000 0000 \__fp_fixed_mul_add:Nwnnnwnnn - - ; #2 ; #1 ; #2 ; - - ; ; + \__fp_sep: #2 \__fp_sep: #1 \__fp_sep: #2 \__fp_sep: - + \__fp_sep: \__fp_sep: } -\cs_new:Npn \__fp_fixed_mul_add:Nwnnnwnnn #1 #2; #3#4#5#6; #7#8#9 +\cs_new:Npn \__fp_fixed_mul_add:Nwnnnwnnn #1 #2\__fp_sep: #3#4#5#6\__fp_sep: #7#8#9 { #1 #7*#3 \exp_after:wN \__fp_pack_big:NNNNNNw @@ -19076,7 +19156,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \int_value:w \__fp_int_eval:w \c__fp_big_middle_shift_int #1 \__fp_fixed_mul_add:nnnnwnnnn {#7}{#8}{#9} } -\cs_new:Npn \__fp_fixed_mul_add:nnnnwnnnn #1#2#3#4#5; #6#7#8#9 +\cs_new:Npn \__fp_fixed_mul_add:nnnnwnnnn #1#2#3#4#5\__fp_sep: #6#7#8#9 { ( #1*#9 + #2*#8 + #3*#7 + #4*#6 ) \exp_after:wN \__fp_pack_big:NNNNNNw @@ -19084,10 +19164,10 @@ Type H <return> for immediate help}\def~{\errmessage{% \__fp_fixed_mul_add:nnnnwnnwN { #6 + #4*#7 + #3*#8 + #2*#9 + #1 } { #7 + #4*#8 + #3*#9 + #2 } - {#1} #5; + {#1} #5\__fp_sep: {#6} } -\cs_new:Npn \__fp_fixed_mul_add:nnnnwnnwN #1#2 #3#4#5; #6#7#8; #9 +\cs_new:Npn \__fp_fixed_mul_add:nnnnwnnwN #1#2 #3#4#5\__fp_sep: #6#7#8\__fp_sep: #9 { #9 (#4* #1 *#7) #9 (#5*#6+#4* #2 *#7+#3*#8) / \c__fp_myriad_int @@ -19095,29 +19175,30 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new:Npn \__fp_ep_to_fixed:wwn #1,#2 { \exp_after:wN \__fp_ep_to_fixed_auxi:www - \int_value:w \__fp_int_eval:w 1 0000 0000 + #2 \exp_after:wN ; + \int_value:w \__fp_int_eval:w 1 0000 0000 + #2 \exp_after:wN \__fp_sep: \exp:w \exp_end_continue_f:w - \prg_replicate:nn { 4 - \int_max:nn {#1} { -32 } } { 0 } ; + \prg_replicate:nn { 4 - \int_max:nn {#1} { -32 } } { 0 } \__fp_sep: } -\cs_new:Npn \__fp_ep_to_fixed_auxi:www 1#1; #2; #3#4#5#6#7; +\cs_new:Npn \__fp_ep_to_fixed_auxi:www + 1#1\__fp_sep: #2\__fp_sep: #3#4#5#6#7\__fp_sep: { \__fp_pack_eight:wNNNNNNNN \__fp_pack_twice_four:wNNNNNNNN \__fp_pack_twice_four:wNNNNNNNN \__fp_pack_twice_four:wNNNNNNNN - \__fp_ep_to_fixed_auxii:nnnnnnnwn ; + \__fp_ep_to_fixed_auxii:nnnnnnnwn \__fp_sep: #2 #1#3#4#5#6#7 0000 ! } -\cs_new:Npn \__fp_ep_to_fixed_auxii:nnnnnnnwn #1#2#3#4#5#6#7; #8! #9 - { #9 {#1#2}{#3}{#4}{#5}{#6}{#7}; } -\cs_new:Npn \__fp_ep_to_ep:wwN #1,#2#3#4#5#6#7; #8 +\cs_new:Npn \__fp_ep_to_fixed_auxii:nnnnnnnwn #1#2#3#4#5#6#7\__fp_sep: #8! #9 + { #9 {#1#2}{#3}{#4}{#5}{#6}{#7}\__fp_sep: } +\cs_new:Npn \__fp_ep_to_ep:wwN #1,#2#3#4#5#6#7\__fp_sep: #8 { \exp_after:wN #8 \int_value:w \__fp_int_eval:w #1 + 4 \exp_after:wN \use_i:nn \exp_after:wN \__fp_ep_to_ep_loop:N \int_value:w \__fp_int_eval:w 1 0000 0000 + #2 \__fp_int_eval_end: - #3#4#5#6#7 ; ; ! + #3#4#5#6#7 \__fp_sep: \__fp_sep: ! } \cs_new:Npn \__fp_ep_to_ep_loop:N #1 { @@ -19129,27 +19210,29 @@ Type H <return> for immediate help}\def~{\errmessage{% \__fp_ep_to_ep_loop:N } \cs_new:Npn \__fp_ep_to_ep_end:www - #1 \fi: \__fp_ep_to_ep_loop:N #2; #3! + #1 \fi: \__fp_ep_to_ep_loop:N #2\__fp_sep: #3! { \fi: - \if_meaning:w ; #1 + \if_meaning:w \__fp_sep: #1 - 2 * \c__fp_max_exponent_int \__fp_ep_to_ep_zero:ww \fi: \__fp_pack_twice_four:wNNNNNNNN \__fp_pack_twice_four:wNNNNNNNN \__fp_pack_twice_four:wNNNNNNNN - \__fp_use_i:ww , ; - #1 #2 0000 0000 0000 0000 0000 0000 ; + \__fp_use_i:ww , \__fp_sep: + #1 #2 0000 0000 0000 0000 0000 0000 \__fp_sep: } -\cs_new:Npn \__fp_ep_to_ep_zero:ww \fi: #1; #2; #3; - { \fi: , {1000}{0000}{0000}{0000}{0000}{0000} ; } -\cs_new:Npn \__fp_ep_compare:wwww #1,#2#3#4#5#6#7; - { \__fp_ep_compare_aux:wwww {#1}{#2}{#3}{#4}{#5}; #6#7; } -\cs_new:Npn \__fp_ep_compare_aux:wwww #1;#2;#3,#4#5#6#7#8#9; +\cs_new:Npn \__fp_ep_to_ep_zero:ww \fi: #1\__fp_sep: #2\__fp_sep: #3\__fp_sep: + { \fi: , {1000}{0000}{0000}{0000}{0000}{0000} \__fp_sep: } +\cs_new:Npn \__fp_ep_compare:wwww #1,#2#3#4#5#6#7\__fp_sep: + { \__fp_ep_compare_aux:wwww {#1}{#2}{#3}{#4}{#5}\__fp_sep: #6#7\__fp_sep: } +\cs_new:Npn \__fp_ep_compare_aux:wwww + #1\__fp_sep:#2\__fp_sep:#3,#4#5#6#7#8#9\__fp_sep: { \if_case:w - \__fp_compare_npos:nwnw #1; {#3}{#4}{#5}{#6}{#7}; \exp_stop_f: + \__fp_compare_npos:nwnw + #1\__fp_sep: {#3}{#4}{#5}{#6}{#7}\__fp_sep: \exp_stop_f: \if_int_compare:w #2 = #8#9 \exp_stop_f: 0 \else: @@ -19159,77 +19242,79 @@ Type H <return> for immediate help}\def~{\errmessage{% \else: -1 \fi: } -\cs_new:Npn \__fp_ep_mul:wwwwn #1,#2; #3,#4; +\cs_new:Npn \__fp_ep_mul:wwwwn #1,#2\__fp_sep: #3,#4\__fp_sep: { - \__fp_ep_to_ep:wwN #3,#4; + \__fp_ep_to_ep:wwN #3,#4\__fp_sep: \__fp_fixed_continue:wn { - \__fp_ep_to_ep:wwN #1,#2; + \__fp_ep_to_ep:wwN #1,#2\__fp_sep: \__fp_ep_mul_raw:wwwwN } \__fp_fixed_continue:wn } -\cs_new:Npn \__fp_ep_mul_raw:wwwwN #1,#2; #3,#4; #5 +\cs_new:Npn \__fp_ep_mul_raw:wwwwN #1,#2\__fp_sep: #3,#4\__fp_sep: #5 { - \__fp_fixed_mul:wwn #2; #4; + \__fp_fixed_mul:wwn #2\__fp_sep: #4\__fp_sep: { \exp_after:wN #5 \int_value:w \__fp_int_eval:w #1 + #3 , } } -\cs_new:Npn \__fp_ep_div:wwwwn #1,#2; #3,#4; +\cs_new:Npn \__fp_ep_div:wwwwn #1,#2\__fp_sep: #3,#4\__fp_sep: { - \__fp_ep_to_ep:wwN #1,#2; + \__fp_ep_to_ep:wwN #1,#2\__fp_sep: \__fp_fixed_continue:wn { - \__fp_ep_to_ep:wwN #3,#4; + \__fp_ep_to_ep:wwN #3,#4\__fp_sep: \__fp_ep_div_esti:wwwwn } } -\cs_new:Npn \__fp_ep_div_esti:wwwwn #1,#2#3; #4, +\cs_new:Npn \__fp_ep_div_esti:wwwwn #1,#2#3\__fp_sep: #4, { \exp_after:wN \__fp_ep_div_estii:wwnnwwn \int_value:w \__fp_int_eval:w 10 0000 0000 / ( #2 + 1 ) - \exp_after:wN ; + \exp_after:wN \__fp_sep: \int_value:w \__fp_int_eval:w #4 - #1 + 1 , - {#2} #3; + {#2} #3\__fp_sep: } -\cs_new:Npn \__fp_ep_div_estii:wwnnwwn #1; #2,#3#4#5; #6; #7 +\cs_new:Npn \__fp_ep_div_estii:wwnnwwn + #1\__fp_sep: #2,#3#4#5\__fp_sep: #6\__fp_sep: #7 { \exp_after:wN \__fp_ep_div_estiii:NNNNNwwwn \int_value:w \__fp_int_eval:w 10 0000 0000 - 1750 - + #1 000 + (10 0000 0000 / #3 - #1) * (1000 - #4 / 10) ; - {#3}{#4}#5; #6; { #7 #2, } + + #1 000 + (10 0000 0000 / #3 - #1) * (1000 - #4 / 10) \__fp_sep: + {#3}{#4}#5\__fp_sep: #6\__fp_sep: { #7 #2, } } -\cs_new:Npn \__fp_ep_div_estiii:NNNNNwwwn 1#1#2#3#4#5#6; #7; +\cs_new:Npn \__fp_ep_div_estiii:NNNNNwwwn 1#1#2#3#4#5#6\__fp_sep: #7\__fp_sep: { - \__fp_fixed_mul_short:wwn #7; {#1}{#2#3#4#5}{#6}; + \__fp_fixed_mul_short:wwn #7\__fp_sep: {#1}{#2#3#4#5}{#6}\__fp_sep: \__fp_ep_div_epsi:wnNNNNNn {#1#2#3#4}#5#6 \__fp_fixed_mul:wwn } -\cs_new:Npn \__fp_ep_div_epsi:wnNNNNNn #1#2#3#4#5#6; +\cs_new:Npn \__fp_ep_div_epsi:wnNNNNNn #1#2#3#4#5#6\__fp_sep: { \exp_after:wN \__fp_ep_div_epsii:wwnNNNNNn \int_value:w \__fp_int_eval:w 1 9998 - #2 \exp_after:wN \__fp_ep_div_eps_pack:NNNNNw \int_value:w \__fp_int_eval:w 1 9999 9998 - #3#4 \exp_after:wN \__fp_ep_div_eps_pack:NNNNNw - \int_value:w \__fp_int_eval:w 2 0000 0000 - #5#6 ; ; + \int_value:w \__fp_int_eval:w 2 0000 0000 - #5#6 \__fp_sep: \__fp_sep: } -\cs_new:Npn \__fp_ep_div_eps_pack:NNNNNw #1#2#3#4#5#6; - { + #1 ; {#2#3#4#5} {#6} } -\cs_new:Npn \__fp_ep_div_epsii:wwnNNNNNn 1#1; #2; #3#4#5#6#7#8 +\cs_new:Npn \__fp_ep_div_eps_pack:NNNNNw #1#2#3#4#5#6\__fp_sep: + { + #1 \__fp_sep: {#2#3#4#5} {#6} } +\cs_new:Npn \__fp_ep_div_epsii:wwnNNNNNn 1#1\__fp_sep: #2\__fp_sep: #3#4#5#6#7#8 { - \__fp_fixed_mul:wwn {0000}{#1}#2; {0000}{#1}#2; + \__fp_fixed_mul:wwn {0000}{#1}#2\__fp_sep: {0000}{#1}#2\__fp_sep: \__fp_fixed_add_one:wN - \__fp_fixed_mul:wwn {10000} {#1} #2 ; + \__fp_fixed_mul:wwn {10000} {#1} #2 \__fp_sep: { - \__fp_fixed_mul_short:wwn {0000}{#1}#2; {#3}{#4#5#6#7}{#8000}; + \__fp_fixed_mul_short:wwn + {0000}{#1}#2\__fp_sep: {#3}{#4#5#6#7}{#8000}\__fp_sep: \__fp_fixed_div_myriad:wn \__fp_fixed_mul:wwn } - \__fp_fixed_add:wwn {#3}{#4#5#6#7}{#8000}{0000}{0000}{0000}; + \__fp_fixed_add:wwn {#3}{#4#5#6#7}{#8000}{0000}{0000}{0000}\__fp_sep: } -\cs_new:Npn \__fp_ep_isqrt:wwn #1,#2; +\cs_new:Npn \__fp_ep_isqrt:wwn #1,#2\__fp_sep: { - \__fp_ep_to_ep:wwN #1,#2; + \__fp_ep_to_ep:wwN #1,#2\__fp_sep: \__fp_ep_isqrt_auxi:wwn } \cs_new:Npn \__fp_ep_isqrt_auxi:wwn #1, @@ -19240,10 +19325,10 @@ Type H <return> for immediate help}\def~{\errmessage{% { (1 - #1) / 2 , 535 , { 0 } { } } { 1 - #1 / 2 , 168 , { } { 0 } } } -\cs_new:Npn \__fp_ep_isqrt_auxii:wwnnnwn #1, #2, #3#4 #5#6; #7 +\cs_new:Npn \__fp_ep_isqrt_auxii:wwnnnwn #1, #2, #3#4 #5#6\__fp_sep: #7 { \__fp_ep_isqrt_esti:wwwnnwn #2, 0, #5, {#3} {#4} - {#5} #6 ; { #7 #1 , } + {#5} #6 \__fp_sep: { #7 #1 , } } \cs_new:Npn \__fp_ep_isqrt_esti:wwwnnwn #1, #2, #3, #4 { @@ -19259,45 +19344,47 @@ Type H <return> for immediate help}\def~{\errmessage{% { \exp_after:wN \__fp_ep_isqrt_estiii:NNNNNwwwn \int_value:w \__fp_int_eval:w 1000 0000 + #2 * #2 #5 * 5 - \exp_after:wN , \int_value:w \__fp_int_eval:w 10000 + #2 ; + \exp_after:wN , \int_value:w \__fp_int_eval:w 10000 + #2 \__fp_sep: } -\cs_new:Npn \__fp_ep_isqrt_estiii:NNNNNwwwn 1#1#2#3#4#5#6, 1#7#8; #9; +\cs_new:Npn \__fp_ep_isqrt_estiii:NNNNNwwwn + 1#1#2#3#4#5#6, 1#7#8\__fp_sep: #9\__fp_sep: { - \__fp_fixed_mul_short:wwn #9; {#1} {#2#3#4#5} {#600} ; + \__fp_fixed_mul_short:wwn #9\__fp_sep: {#1} {#2#3#4#5} {#600} \__fp_sep: \__fp_ep_isqrt_epsi:wN - \__fp_fixed_mul_short:wwn {#7} {#80} {0000} ; + \__fp_fixed_mul_short:wwn {#7} {#80} {0000} \__fp_sep: } -\cs_new:Npn \__fp_ep_isqrt_epsi:wN #1; +\cs_new:Npn \__fp_ep_isqrt_epsi:wN #1\__fp_sep: { - \__fp_fixed_sub:wwn {15000}{0000}{0000}{0000}{0000}{0000}; #1; - \__fp_ep_isqrt_epsii:wwN #1; - \__fp_ep_isqrt_epsii:wwN #1; - \__fp_ep_isqrt_epsii:wwN #1; + \__fp_fixed_sub:wwn {15000}{0000}{0000}{0000}{0000}{0000}\__fp_sep: #1\__fp_sep: + \__fp_ep_isqrt_epsii:wwN #1\__fp_sep: + \__fp_ep_isqrt_epsii:wwN #1\__fp_sep: + \__fp_ep_isqrt_epsii:wwN #1\__fp_sep: } -\cs_new:Npn \__fp_ep_isqrt_epsii:wwN #1; #2; +\cs_new:Npn \__fp_ep_isqrt_epsii:wwN #1\__fp_sep: #2\__fp_sep: { - \__fp_fixed_mul:wwn #1; #1; - \__fp_fixed_mul_sub_back:wwwn #2; - {15000}{0000}{0000}{0000}{0000}{0000}; - \__fp_fixed_mul:wwn #1; + \__fp_fixed_mul:wwn #1\__fp_sep: #1\__fp_sep: + \__fp_fixed_mul_sub_back:wwwn #2\__fp_sep: + {15000}{0000}{0000}{0000}{0000}{0000}\__fp_sep: + \__fp_fixed_mul:wwn #1\__fp_sep: } \cs_new:Npn \__fp_ep_to_float_o:wwN #1, { + \__fp_int_eval:w #1 \__fp_fixed_to_float_o:wN } -\cs_new:Npn \__fp_ep_inv_to_float_o:wwN #1,#2; +\cs_new:Npn \__fp_ep_inv_to_float_o:wwN #1,#2\__fp_sep: { - \__fp_ep_div:wwwwn 1,{1000}{0000}{0000}{0000}{0000}{0000}; #1,#2; + \__fp_ep_div:wwwwn + 1,{1000}{0000}{0000}{0000}{0000}{0000}\__fp_sep: #1,#2\__fp_sep: \__fp_ep_to_float_o:wwN } \cs_new:Npn \__fp_fixed_inv_to_float_o:wN { \__fp_ep_inv_to_float_o:wwN 0, } -\cs_new:Npn \__fp_fixed_to_float_rad_o:wN #1; +\cs_new:Npn \__fp_fixed_to_float_rad_o:wN #1\__fp_sep: { - \__fp_fixed_mul:wwn #1; {5729}{5779}{5130}{8232}{0876}{7981}; + \__fp_fixed_mul:wwn #1\__fp_sep: {5729}{5779}{5130}{8232}{0876}{7981}\__fp_sep: { \__fp_ep_to_float_o:wwN 2, } } -\cs_new:Npn \__fp_fixed_to_float_o:Nw #1#2; - { \__fp_fixed_to_float_o:wN #2; #1 } -\cs_new:Npn \__fp_fixed_to_float_o:wN #1#2#3#4#5#6; #7 +\cs_new:Npn \__fp_fixed_to_float_o:Nw #1#2\__fp_sep: + { \__fp_fixed_to_float_o:wN #2\__fp_sep: #1 } +\cs_new:Npn \__fp_fixed_to_float_o:wN #1#2#3#4#5#6\__fp_sep: #7 { % for the 8-digit-at-the-start thing + \__fp_int_eval:w \c__fp_block_int \exp_after:wN \exp_after:wN @@ -19308,8 +19395,8 @@ Type H <return> for immediate help}\def~{\errmessage{% \int_value:w 1#2 \exp_after:wN \__fp_use_none_stop_f:n \int_value:w 1#3#4 \exp_after:wN \__fp_use_none_stop_f:n \int_value:w 1#5#6 - \exp_after:wN ; - \exp_after:wN ; + \exp_after:wN \__fp_sep: + \exp_after:wN \__fp_sep: } \cs_new:Npn \__fp_fixed_to_loop:N #1 { @@ -19321,36 +19408,36 @@ Type H <return> for immediate help}\def~{\errmessage{% \exp_after:wN #1 \fi: } -\cs_new:Npn \__fp_fixed_to_loop_end:w #1 #2 ; +\cs_new:Npn \__fp_fixed_to_loop_end:w #1 #2 \__fp_sep: { - \if_meaning:w ; #1 + \if_meaning:w \__fp_sep: #1 \exp_after:wN \__fp_fixed_to_float_zero:w \else: \exp_after:wN \__fp_pack_twice_four:wNNNNNNNN \exp_after:wN \__fp_pack_twice_four:wNNNNNNNN \exp_after:wN \__fp_fixed_to_float_pack:ww - \exp_after:wN ; + \exp_after:wN \__fp_sep: \fi: - #1 #2 0000 0000 0000 0000 ; + #1 #2 0000 0000 0000 0000 \__fp_sep: } -\cs_new:Npn \__fp_fixed_to_float_zero:w ; 0000 0000 0000 0000 ; +\cs_new:Npn \__fp_fixed_to_float_zero:w \__fp_sep: 0000 0000 0000 0000 \__fp_sep: { - - 2 * \c__fp_max_exponent_int ; - {0000} {0000} {0000} {0000} ; + - 2 * \c__fp_max_exponent_int \__fp_sep: + {0000} {0000} {0000} {0000} \__fp_sep: } -\cs_new:Npn \__fp_fixed_to_float_pack:ww #1 ; #2#3 ; ; +\cs_new:Npn \__fp_fixed_to_float_pack:ww #1 \__fp_sep: #2#3 \__fp_sep: \__fp_sep: { \if_int_compare:w #2 > 4 \exp_stop_f: \exp_after:wN \__fp_fixed_to_float_round_up:wnnnnw \fi: - ; #1 ; + \__fp_sep: #1 \__fp_sep: } -\cs_new:Npn \__fp_fixed_to_float_round_up:wnnnnw ; #1#2#3#4 ; +\cs_new:Npn \__fp_fixed_to_float_round_up:wnnnnw \__fp_sep: #1#2#3#4 \__fp_sep: { \exp_after:wN \__fp_basics_pack_high:NNNNNw \int_value:w \__fp_int_eval:w 1 #1#2 \exp_after:wN \__fp_basics_pack_low:NNNNNw - \int_value:w \__fp_int_eval:w 1 #3#4 + 1 ; + \int_value:w \__fp_int_eval:w 1 #3#4 + 1 \__fp_sep: } %% File: l3fp-expo.dtx \cs_new:Npn \__fp_parse_word_exp:N @@ -19359,16 +19446,25 @@ Type H <return> for immediate help}\def~{\errmessage{% { \__fp_parse_unary_function:NNN \__fp_ln_o:w ? } \cs_new:Npn \__fp_parse_word_fact:N { \__fp_parse_unary_function:NNN \__fp_fact_o:w ? } -\tl_const:Nn \c__fp_ln_i_fixed_tl { {0000}{0000}{0000}{0000}{0000}{0000};} -\tl_const:Nn \c__fp_ln_ii_fixed_tl { {6931}{4718}{0559}{9453}{0941}{7232};} -\tl_const:Nn \c__fp_ln_iii_fixed_tl {{10986}{1228}{8668}{1096}{9139}{5245};} -\tl_const:Nn \c__fp_ln_iv_fixed_tl {{13862}{9436}{1119}{8906}{1883}{4464};} -\tl_const:Nn \c__fp_ln_vi_fixed_tl {{17917}{5946}{9228}{0550}{0081}{2477};} -\tl_const:Nn \c__fp_ln_vii_fixed_tl {{19459}{1014}{9055}{3133}{0510}{5353};} -\tl_const:Nn \c__fp_ln_viii_fixed_tl{{20794}{4154}{1679}{8359}{2825}{1696};} -\tl_const:Nn \c__fp_ln_ix_fixed_tl {{21972}{2457}{7336}{2193}{8279}{0490};} -\tl_const:Nn \c__fp_ln_x_fixed_tl {{23025}{8509}{2994}{0456}{8401}{7991};} -\cs_new:Npn \__fp_ln_o:w #1 \s__fp \__fp_chk:w #2#3#4; @ +\tl_const:Nn \c__fp_ln_i_fixed_tl + { {0000}{0000}{0000}{0000}{0000}{0000}\__fp_sep:} +\tl_const:Nn \c__fp_ln_ii_fixed_tl + { {6931}{4718}{0559}{9453}{0941}{7232}\__fp_sep:} +\tl_const:Nn \c__fp_ln_iii_fixed_tl + {{10986}{1228}{8668}{1096}{9139}{5245}\__fp_sep:} +\tl_const:Nn \c__fp_ln_iv_fixed_tl + {{13862}{9436}{1119}{8906}{1883}{4464}\__fp_sep:} +\tl_const:Nn \c__fp_ln_vi_fixed_tl + {{17917}{5946}{9228}{0550}{0081}{2477}\__fp_sep:} +\tl_const:Nn \c__fp_ln_vii_fixed_tl + {{19459}{1014}{9055}{3133}{0510}{5353}\__fp_sep:} +\tl_const:Nn \c__fp_ln_viii_fixed_tl + {{20794}{4154}{1679}{8359}{2825}{1696}\__fp_sep:} +\tl_const:Nn \c__fp_ln_ix_fixed_tl + {{21972}{2457}{7336}{2193}{8279}{0490}\__fp_sep:} +\tl_const:Nn \c__fp_ln_x_fixed_tl + {{23025}{8509}{2994}{0456}{8401}{7991}\__fp_sep:} +\cs_new:Npn \__fp_ln_o:w #1 \s__fp \__fp_chk:w #2#3#4\__fp_sep: @ { \if_meaning:w 2 #3 \__fp_case_use:nw { \__fp_invalid_operation_o:nw { ln } } @@ -19380,9 +19476,9 @@ Type H <return> for immediate help}\def~{\errmessage{% \else: \__fp_case_return_same_o:w \fi: - \__fp_ln_npos_o:w \s__fp \__fp_chk:w #2#3#4; + \__fp_ln_npos_o:w \s__fp \__fp_chk:w #2#3#4\__fp_sep: } -\cs_new:Npn \__fp_ln_npos_o:w \s__fp \__fp_chk:w 10#1#2#3; +\cs_new:Npn \__fp_ln_npos_o:w \s__fp \__fp_chk:w 10#1#2#3\__fp_sep: { %^^A todo: ln(1) should be "exact zero", not "underflow" \exp_after:wN \__fp_sanitize:Nw \int_value:w % for the overall sign @@ -19414,9 +19510,9 @@ Type H <return> for immediate help}\def~{\errmessage{% \or: 2 \else: 1 \fi: - ; { #1 #2 #3 #4 } + \__fp_sep: { #1 #2 #3 #4 } } -\cs_new:Npn \__fp_ln_x_ii:wnnnn #1; #2#3#4#5 +\cs_new:Npn \__fp_ln_x_ii:wnnnn #1\__fp_sep: #2#3#4#5 { \exp_after:wN \__fp_ln_div_after:Nw \cs:w c__fp_ln_ \__fp_int_to_roman:w #1 _fixed_tl \exp_after:wN \cs_end: @@ -19426,22 +19522,22 @@ Type H <return> for immediate help}\def~{\errmessage{% \exp_after:wN \__fp_ln_x_iii_var:NNNNNw \int_value:w \__fp_int_eval:w 9999 9990 + #1*#2#3 + \exp_after:wN \__fp_ln_x_iii:NNNNNNw - \int_value:w \__fp_int_eval:w 10 0000 0000 + #1*#4#5 ; + \int_value:w \__fp_int_eval:w 10 0000 0000 + #1*#4#5 \__fp_sep: {20000} {0000} {0000} {0000} } %^^A todo: reoptimize (a generalization attempt failed). -\cs_new:Npn \__fp_ln_x_iii:NNNNNNw #1#2 #3#4#5#6 #7; - { #1#2; {#3#4#5#6} {#7} } -\cs_new:Npn \__fp_ln_x_iii_var:NNNNNw #1 #2#3#4#5 #6; +\cs_new:Npn \__fp_ln_x_iii:NNNNNNw #1#2 #3#4#5#6 #7\__fp_sep: + { #1#2\__fp_sep: {#3#4#5#6} {#7} } +\cs_new:Npn \__fp_ln_x_iii_var:NNNNNw #1 #2#3#4#5 #6\__fp_sep: { - #1#2#3#4#5 + 1 ; + #1#2#3#4#5 + 1 \__fp_sep: {#1#2#3#4#5} {#6} } -\cs_new:Npn \__fp_ln_x_iv:wnnnnnnnn #1; #2#3#4#5 #6#7#8#9 +\cs_new:Npn \__fp_ln_x_iv:wnnnnnnnn #1\__fp_sep: #2#3#4#5 #6#7#8#9 { \exp_after:wN \__fp_div_significand_pack:NNN \int_value:w \__fp_int_eval:w - \__fp_ln_div_i:w #1 ; - #6 #7 ; {#8} {#9} + \__fp_ln_div_i:w #1 \__fp_sep: + #6 #7 \__fp_sep: {#8} {#9} {#2} {#3} {#4} {#5} { \exp_after:wN \__fp_ln_div_ii:wwn \int_value:w #1 } { \exp_after:wN \__fp_ln_div_ii:wwn \int_value:w #1 } @@ -19449,25 +19545,27 @@ Type H <return> for immediate help}\def~{\errmessage{% { \exp_after:wN \__fp_ln_div_ii:wwn \int_value:w #1 } { \exp_after:wN \__fp_ln_div_vi:wwn \int_value:w #1 } } -\cs_new:Npn \__fp_ln_div_i:w #1; +\cs_new:Npn \__fp_ln_div_i:w #1\__fp_sep: { \exp_after:wN \__fp_div_significand_calc:wwnnnnnnn - \int_value:w \__fp_int_eval:w 999999 + 2 0000 0000 / #1 ; % Q1 + \int_value:w \__fp_int_eval:w 999999 + 2 0000 0000 / #1 \__fp_sep: % Q1 } -\cs_new:Npn \__fp_ln_div_ii:wwn #1; #2;#3 % y; B1;B2 <- for k=1 +\cs_new:Npn \__fp_ln_div_ii:wwn + #1\__fp_sep: #2\__fp_sep:#3 % y\__fp_sep: B1\__fp_sep:B2 <- for k=1 { \exp_after:wN \__fp_div_significand_pack:NNN \int_value:w \__fp_int_eval:w \exp_after:wN \__fp_div_significand_calc:wwnnnnnnn - \int_value:w \__fp_int_eval:w 999999 + #2 #3 / #1 ; % Q2 - #2 #3 ; + \int_value:w \__fp_int_eval:w 999999 + #2 #3 / #1 \__fp_sep: % Q2 + #2 #3 \__fp_sep: } -\cs_new:Npn \__fp_ln_div_vi:wwn #1; #2;#3#4#5 #6#7#8#9 %y;F1;F2F3F4x1x2x3x4 +\cs_new:Npn \__fp_ln_div_vi:wwn + #1\__fp_sep: #2\__fp_sep:#3#4#5 #6#7#8#9 %y\__fp_sep:F1\__fp_sep:F2F3F4x1x2x3x4 { \exp_after:wN \__fp_div_significand_pack:NNN - \int_value:w \__fp_int_eval:w 1000000 + #2 #3 / #1 ; % Q6 + \int_value:w \__fp_int_eval:w 1000000 + #2 #3 / #1 \__fp_sep: % Q6 } -\cs_new:Npn \__fp_ln_div_after:Nw #1#2; +\cs_new:Npn \__fp_ln_div_after:Nw #1#2\__fp_sep: { \if_meaning:w 0 #2 \exp_after:wN \__fp_ln_t_small:Nw @@ -19477,19 +19575,22 @@ Type H <return> for immediate help}\def~{\errmessage{% \fi: #1 } -\cs_new:Npn \__fp_ln_t_small:Nw #1 #2; #3; #4; #5; #6; #7; +\cs_new:Npn \__fp_ln_t_small:Nw + #1 #2\__fp_sep: #3\__fp_sep: #4\__fp_sep: #5\__fp_sep: #6\__fp_sep: #7\__fp_sep: { \exp_after:wN \__fp_ln_t_large:NNw \exp_after:wN + % <sign> \exp_after:wN #1 - \int_value:w \__fp_int_eval:w 9999 - #2 \exp_after:wN ; - \int_value:w \__fp_int_eval:w 9999 - #3 \exp_after:wN ; - \int_value:w \__fp_int_eval:w 9999 - #4 \exp_after:wN ; - \int_value:w \__fp_int_eval:w 9999 - #5 \exp_after:wN ; - \int_value:w \__fp_int_eval:w 9999 - #6 \exp_after:wN ; - \int_value:w \__fp_int_eval:w 1 0000 - #7 ; - } -\cs_new:Npn \__fp_ln_t_large:NNw #1 #2 #3; #4; #5; #6; #7; #8; + \int_value:w \__fp_int_eval:w 9999 - #2 \exp_after:wN \__fp_sep: + \int_value:w \__fp_int_eval:w 9999 - #3 \exp_after:wN \__fp_sep: + \int_value:w \__fp_int_eval:w 9999 - #4 \exp_after:wN \__fp_sep: + \int_value:w \__fp_int_eval:w 9999 - #5 \exp_after:wN \__fp_sep: + \int_value:w \__fp_int_eval:w 9999 - #6 \exp_after:wN \__fp_sep: + \int_value:w \__fp_int_eval:w 1 0000 - #7 \__fp_sep: + } +\cs_new:Npn \__fp_ln_t_large:NNw + #1 #2 + #3\__fp_sep: #4\__fp_sep: #5\__fp_sep: #6\__fp_sep: #7\__fp_sep: #8\__fp_sep: { \exp_after:wN \__fp_ln_square_t_after:w \int_value:w \__fp_int_eval:w 9999 0000 + #3*#3 @@ -19503,7 +19604,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \int_value:w \__fp_int_eval:w 1 0000 0000 + 2*#3*#7 + 2*#4*#6 + #5*#5 + (2*#3*#8 + 2*#4*#7 + 2*#5*#6) / 1 0000 - % ; ; ; + % \__fp_sep: \__fp_sep: \__fp_sep: \exp_after:wN \__fp_ln_twice_t_after:w \int_value:w \__fp_int_eval:w -1 + 2*#3 \exp_after:wN \__fp_ln_twice_t_pack:Nw @@ -19515,48 +19616,53 @@ Type H <return> for immediate help}\def~{\errmessage{% \exp_after:wN \__fp_ln_twice_t_pack:Nw \int_value:w \__fp_int_eval:w 9999 + 2*#7 \exp_after:wN \__fp_ln_twice_t_pack:Nw - \int_value:w \__fp_int_eval:w 10000 + 2*#8 ; ; + \int_value:w \__fp_int_eval:w 10000 + 2*#8 \__fp_sep: \__fp_sep: { \__fp_ln_c:NwNw #1 } #2 } -\cs_new:Npn \__fp_ln_twice_t_pack:Nw #1 #2; { + #1 ; {#2} } -\cs_new:Npn \__fp_ln_twice_t_after:w #1; { ;;; {#1} } -\cs_new:Npn \__fp_ln_square_t_pack:NNNNNw #1 #2#3#4#5 #6; - { + #1#2#3#4#5 ; {#6} } -\cs_new:Npn \__fp_ln_square_t_after:w 1 0 #1#2#3 #4; +\cs_new:Npn \__fp_ln_twice_t_pack:Nw #1 #2\__fp_sep: { + #1 \__fp_sep: {#2} } +\cs_new:Npn \__fp_ln_twice_t_after:w #1\__fp_sep: + { \__fp_sep:\__fp_sep:\__fp_sep: {#1} } +\cs_new:Npn \__fp_ln_square_t_pack:NNNNNw #1 #2#3#4#5 #6\__fp_sep: + { + #1#2#3#4#5 \__fp_sep: {#6} } +\cs_new:Npn \__fp_ln_square_t_after:w 1 0 #1#2#3 #4\__fp_sep: { \__fp_ln_Taylor:wwNw {0#1#2#3} {#4} } \cs_new:Npn \__fp_ln_Taylor:wwNw - { \__fp_ln_Taylor_loop:www 21 ; {0000}{0000}{0000}{0000}{0000}{0000} ; } -\cs_new:Npn \__fp_ln_Taylor_loop:www #1; #2; #3; + { + \__fp_ln_Taylor_loop:www + 21 \__fp_sep: {0000}{0000}{0000}{0000}{0000}{0000} \__fp_sep: + } +\cs_new:Npn \__fp_ln_Taylor_loop:www #1\__fp_sep: #2\__fp_sep: #3\__fp_sep: { \if_int_compare:w #1 = \c_one_int \__fp_ln_Taylor_break:w \fi: - \exp_after:wN \__fp_fixed_div_int:wwN \c__fp_one_fixed_tl #1; - \__fp_fixed_add:wwn #2; - \__fp_fixed_mul:wwn #3; + \exp_after:wN \__fp_fixed_div_int:wwN \c__fp_one_fixed_tl #1\__fp_sep: + \__fp_fixed_add:wwn #2\__fp_sep: + \__fp_fixed_mul:wwn #3\__fp_sep: { \exp_after:wN \__fp_ln_Taylor_loop:www - \int_value:w \__fp_int_eval:w #1 - 2 ; + \int_value:w \__fp_int_eval:w #1 - 2 \__fp_sep: } - #3; + #3\__fp_sep: } -\cs_new:Npn \__fp_ln_Taylor_break:w \fi: #1 \__fp_fixed_add:wwn #2#3; #4 ;; +\cs_new:Npn \__fp_ln_Taylor_break:w + \fi: #1 \__fp_fixed_add:wwn #2#3\__fp_sep: #4 \__fp_sep:\__fp_sep: { \fi: \exp_after:wN \__fp_fixed_mul:wwn - \exp_after:wN { \int_value:w \__fp_int_eval:w 10000 + #2 } #3; + \exp_after:wN { \int_value:w \__fp_int_eval:w 10000 + #2 } #3\__fp_sep: } -\cs_new:Npn \__fp_ln_c:NwNw #1 #2; #3 +\cs_new:Npn \__fp_ln_c:NwNw #1 #2\__fp_sep: #3 { \if_meaning:w + #1 \exp_after:wN \exp_after:wN \exp_after:wN \__fp_fixed_sub:wwn \else: \exp_after:wN \exp_after:wN \exp_after:wN \__fp_fixed_add:wwn \fi: - #3 #2 ; + #3 #2 \__fp_sep: } -\cs_new:Npn \__fp_ln_exponent:wn #1; #2 +\cs_new:Npn \__fp_ln_exponent:wn #1\__fp_sep: #2 { \if_case:w #2 \exp_stop_f: 0 \__fp_case_return:nw { \__fp_fixed_to_float_o:Nw 2 } @@ -19573,25 +19679,25 @@ Type H <return> for immediate help}\def~{\errmessage{% \exp_after:wN \__fp_fixed_add:wwn \int_value:w - \fi: \fi: - #2; #1; + #2\__fp_sep: #1\__fp_sep: } -\cs_new:Npn \__fp_ln_exponent_one:ww 1; #1; +\cs_new:Npn \__fp_ln_exponent_one:ww 1\__fp_sep: #1\__fp_sep: { 0 - \exp_after:wN \__fp_fixed_sub:wwn \c__fp_ln_x_fixed_tl #1; + \exp_after:wN \__fp_fixed_sub:wwn \c__fp_ln_x_fixed_tl #1\__fp_sep: \__fp_fixed_to_float_o:wN 0 } -\cs_new:Npn \__fp_ln_exponent_small:NNww #1#2#3; #4#5#6#7#8#9; +\cs_new:Npn \__fp_ln_exponent_small:NNww #1#2#3\__fp_sep: #4#5#6#7#8#9\__fp_sep: { 4 \exp_after:wN \__fp_fixed_mul:wwn \c__fp_ln_x_fixed_tl - {#3}{0000}{0000}{0000}{0000}{0000} ; + {#3}{0000}{0000}{0000}{0000}{0000} \__fp_sep: #2 - {0000}{#4}{#5}{#6}{#7}{#8}; + {0000}{#4}{#5}{#6}{#7}{#8}\__fp_sep: \__fp_fixed_to_float_o:wN #1 } -\cs_new:Npn \__fp_exp_o:w #1 \s__fp \__fp_chk:w #2#3#4; @ +\cs_new:Npn \__fp_exp_o:w #1 \s__fp \__fp_chk:w #2#3#4\__fp_sep: @ { \if_case:w #2 \exp_stop_f: \__fp_case_return_o:Nw \c_one_fp @@ -19608,7 +19714,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \or: \__fp_case_return_same_o:w \fi: - \s__fp \__fp_chk:w #2#3#4; + \s__fp \__fp_chk:w #2#3#4\__fp_sep: } \cs_new:Npn \__fp_exp_normal_o:w \s__fp \__fp_chk:w 1#1 { @@ -19618,7 +19724,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \__fp_exp_pos_o:NNwnw - \__fp_fixed_inv_to_float_o:wN \fi: } -\cs_new:Npn \__fp_exp_pos_o:NNwnw #1#2#3 \fi: #4#5; +\cs_new:Npn \__fp_exp_pos_o:NNwnw #1#2#3 \fi: #4#5\__fp_sep: { \fi: \if_int_compare:w #4 > \c__fp_max_exp_exponent_int @@ -19657,33 +19763,33 @@ Type H <return> for immediate help}\def~{\errmessage{% \exp_after:wN #1 \exp_after:wN #2 } -\cs_new:Npn \__fp_exp_Taylor:Nnnwn #1#2#3 #4; #5 #6 +\cs_new:Npn \__fp_exp_Taylor:Nnnwn #1#2#3 #4\__fp_sep: #5 #6 { #6 \__fp_pack_twice_four:wNNNNNNNN \__fp_pack_twice_four:wNNNNNNNN \__fp_pack_twice_four:wNNNNNNNN \__fp_exp_Taylor_ii:ww - ; #2#3#4 0000 0000 ; + \__fp_sep: #2#3#4 0000 0000 \__fp_sep: } -\cs_new:Npn \__fp_exp_Taylor_ii:ww #1; #2; - { \__fp_exp_Taylor_loop:www 10 ; #1 ; #1 ; \s__fp_stop } -\cs_new:Npn \__fp_exp_Taylor_loop:www #1; #2; #3; +\cs_new:Npn \__fp_exp_Taylor_ii:ww #1\__fp_sep: #2\__fp_sep: + { \__fp_exp_Taylor_loop:www 10 \__fp_sep: #1 \__fp_sep: #1 \__fp_sep: \s__fp_stop } +\cs_new:Npn \__fp_exp_Taylor_loop:www #1\__fp_sep: #2\__fp_sep: #3\__fp_sep: { \if_int_compare:w #1 = \c_one_int \exp_after:wN \__fp_exp_Taylor_break:Nww \fi: - \__fp_fixed_div_int:wwN #3 ; #1 ; + \__fp_fixed_div_int:wwN #3 \__fp_sep: #1 \__fp_sep: \__fp_fixed_add_one:wN - \__fp_fixed_mul:wwn #2 ; + \__fp_fixed_mul:wwn #2 \__fp_sep: { \exp_after:wN \__fp_exp_Taylor_loop:www - \int_value:w \__fp_int_eval:w #1 - 1 ; - #2 ; + \int_value:w \__fp_int_eval:w #1 - 1 \__fp_sep: + #2 \__fp_sep: } } -\cs_new:Npn \__fp_exp_Taylor_break:Nww #1 #2; #3 \s__fp_stop - { \__fp_fixed_add_one:wN #2 ; } +\cs_new:Npn \__fp_exp_Taylor_break:Nww #1 #2\__fp_sep: #3 \s__fp_stop + { \__fp_fixed_add_one:wN #2 \__fp_sep: } \intarray_const_from_clist:Nn \c__fp_exp_intarray { 1 , 1 1105 1709 , 1 1807 5647 , 1 6248 1171 , @@ -19741,23 +19847,23 @@ Type H <return> for immediate help}\def~{\errmessage{% 34744 , 1 3618 6973 , 1 3140 0875 , 1 3856 4102 , 39087 , 1 3186 9209 , 1 6113 3900 , 1 6705 9685 , } -\cs_new:Npn \__fp_exp_pos_large:NnnNwn #1#2#3 #4#5; #6 +\cs_new:Npn \__fp_exp_pos_large:NnnNwn #1#2#3 #4#5\__fp_sep: #6 { \exp_after:wN \exp_after:wN \exp_after:wN \__fp_exp_large:NwN \exp_after:wN \exp_after:wN \exp_after:wN #6 \exp_after:wN \c__fp_one_fixed_tl \int_value:w #3 #4 \exp_stop_f: - #5 00000 ; + #5 00000 \__fp_sep: } -\cs_new:Npn \__fp_exp_large:NwN #1#2; #3 +\cs_new:Npn \__fp_exp_large:NwN #1#2\__fp_sep: #3 { \if_case:w #3 ~ \exp_after:wN \__fp_fixed_continue:wn \else: \exp_after:wN \__fp_exp_intarray:w - \int_value:w \__fp_int_eval:w 36 * #1 + 4 * #3 \exp_after:wN ; + \int_value:w \__fp_int_eval:w 36 * #1 + 4 * #3 \exp_after:wN \__fp_sep: \fi: - #2; + #2\__fp_sep: { \if_meaning:w 0 #1 \exp_after:wN \__fp_exp_large_after:wwn @@ -19767,7 +19873,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \fi: } } -\cs_new:Npn \__fp_exp_intarray:w #1 ; +\cs_new:Npn \__fp_exp_intarray:w #1 \__fp_sep: { + \__kernel_intarray_item:Nn \c__fp_exp_intarray @@ -19782,16 +19888,18 @@ Type H <return> for immediate help}\def~{\errmessage{% \int_value:w \__kernel_intarray_item:Nn \c__fp_exp_intarray { \__fp_int_eval:w #1 - 1 } \exp_after:wN \__fp_exp_intarray_aux:w - \int_value:w \__kernel_intarray_item:Nn \c__fp_exp_intarray {#1} ; ; + \int_value:w \__kernel_intarray_item:Nn + \c__fp_exp_intarray {#1} \__fp_sep: \__fp_sep: } -\cs_new:Npn \__fp_exp_intarray_aux:w 1 #1#2#3#4#5 ; { ; {#1#2#3#4} {#5} } -\cs_new:Npn \__fp_exp_large_after:wwn #1; #2; #3 +\cs_new:Npn \__fp_exp_intarray_aux:w 1 #1#2#3#4#5 \__fp_sep: + { \__fp_sep: {#1#2#3#4} {#5} } +\cs_new:Npn \__fp_exp_large_after:wwn #1\__fp_sep: #2\__fp_sep: #3 { - \__fp_exp_Taylor:Nnnwn ? { } { } 0 #2; {} #3 - \__fp_fixed_mul:wwn #1; + \__fp_exp_Taylor:Nnnwn ? { } { } 0 #2\__fp_sep: {} #3 + \__fp_fixed_mul:wwn #1\__fp_sep: } \cs_new:cpn { __fp_ \iow_char:N \^ _o:ww } - \s__fp \__fp_chk:w #1#2#3; \s__fp \__fp_chk:w #4#5#6; + \s__fp \__fp_chk:w #1#2#3\__fp_sep: \s__fp \__fp_chk:w #4#5#6\__fp_sep: { \if_meaning:w 0 #4 \__fp_case_return_o:Nw \c_one_fp @@ -19810,13 +19918,13 @@ Type H <return> for immediate help}\def~{\errmessage{% \else: \exp_after:wN \__fp_pow_zero_or_inf:ww \fi: - \s__fp \__fp_chk:w #1#2#3; + \s__fp \__fp_chk:w #1#2#3\__fp_sep: } - { \s__fp \__fp_chk:w #4#5#6; \s__fp \__fp_chk:w #1#2#3; } - \s__fp \__fp_chk:w #4#5#6; + { \s__fp \__fp_chk:w #4#5#6\__fp_sep: \s__fp \__fp_chk:w #1#2#3\__fp_sep: } + \s__fp \__fp_chk:w #4#5#6\__fp_sep: } \cs_new:Npn \__fp_pow_zero_or_inf:ww - \s__fp \__fp_chk:w #1#2; \s__fp \__fp_chk:w #3#4 + \s__fp \__fp_chk:w #1#2\__fp_sep: \s__fp \__fp_chk:w #3#4 { \if_meaning:w 1 #4 \__fp_case_return_same_o:w @@ -19833,13 +19941,13 @@ Type H <return> for immediate help}\def~{\errmessage{% \__fp_case_use:nw { \__fp_division_by_zero_o:NNww \c_inf_fp ^ - \s__fp \__fp_chk:w #1 #2 ; + \s__fp \__fp_chk:w #1 #2 \__fp_sep: } \fi: \s__fp \__fp_chk:w #3#4 } \cs_new:Npn \__fp_pow_normal_o:ww - \s__fp \__fp_chk:w 1 #1#2#3; \s__fp \__fp_chk:w #4#5 + \s__fp \__fp_chk:w 1 #1#2#3\__fp_sep: \s__fp \__fp_chk:w #4#5 { \if:w 0 \__fp_str_if_eq:nn { #2 #3 } { 1 {1000} {0000} {0000} {0000} } \if_int_compare:w #4 #1 = 32 \exp_stop_f: @@ -19863,7 +19971,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \or: \__fp_case_return_ii_o:ww \fi: - \s__fp \__fp_chk:w 1 #1 {#2} #3 ; + \s__fp \__fp_chk:w 1 #1 {#2} #3 \__fp_sep: \s__fp \__fp_chk:w #4 #5 } \cs_new:Npn \__fp_pow_npos_o:Nww #1 \s__fp \__fp_chk:w 1#2#3 @@ -19882,17 +19990,18 @@ Type H <return> for immediate help}\def~{\errmessage{% \fi: {#3} } -\cs_new:Npn \__fp_pow_npos_aux:NNnww #1#2#3#4#5; \s__fp \__fp_chk:w 1#6#7#8; +\cs_new:Npn \__fp_pow_npos_aux:NNnww + #1#2#3#4#5\__fp_sep: \s__fp \__fp_chk:w 1#6#7#8\__fp_sep: { #1 \__fp_int_eval:w \__fp_ln_significand:NNNNnnnN #4#5 \__fp_pow_exponent:wnN {#3} - \__fp_fixed_mul:wwn #8 {0000}{0000} ; - \__fp_pow_B:wwN #7; + \__fp_fixed_mul:wwn #8 {0000}{0000} \__fp_sep: + \__fp_pow_B:wwN #7\__fp_sep: #1 #2 0 % fixed_to_float_o:wN } -\cs_new:Npn \__fp_pow_exponent:wnN #1; #2 +\cs_new:Npn \__fp_pow_exponent:wnN #1\__fp_sep: #2 { \if_int_compare:w #2 > \c_zero_int \exp_after:wN \__fp_pow_exponent:Nwnnnnnw % n\ln(10) - (-\ln(x)) @@ -19901,9 +20010,9 @@ Type H <return> for immediate help}\def~{\errmessage{% \exp_after:wN \__fp_pow_exponent:Nwnnnnnw % -(|n|\ln(10) + (-\ln(x))) \exp_after:wN - \fi: - #2; #1; + #2\__fp_sep: #1\__fp_sep: } -\cs_new:Npn \__fp_pow_exponent:Nwnnnnnw #1#2; #3#4#5#6#7#8; +\cs_new:Npn \__fp_pow_exponent:Nwnnnnnw #1#2\__fp_sep: #3#4#5#6#7#8\__fp_sep: { %^^A todo: use that in ln. \exp_after:wN \__fp_fixed_mul_after:wwn \int_value:w \__fp_int_eval:w \c__fp_leading_shift_int @@ -19922,9 +20031,9 @@ Type H <return> for immediate help}\def~{\errmessage{% \exp_after:wN \__fp_pack:NNNNNw \int_value:w \__fp_int_eval:w \c__fp_trailing_shift_int #1 #2*8401 - #1 #7 - #1 ( #2*7991 - #8 ) / 1 0000 ; ; + #1 ( #2*7991 - #8 ) / 1 0000 \__fp_sep: \__fp_sep: } -\cs_new:Npn \__fp_pow_B:wwN #1#2#3#4#5#6; #7; +\cs_new:Npn \__fp_pow_B:wwN #1#2#3#4#5#6\__fp_sep: #7\__fp_sep: { \if_int_compare:w #7 < \c_zero_int \exp_after:wN \__fp_pow_C_neg:w \int_value:w - @@ -19935,23 +20044,23 @@ Type H <return> for immediate help}\def~{\errmessage{% \exp_after:wN \__fp_pow_C_overflow:w \int_value:w \fi: \fi: - #7 \exp_after:wN ; + #7 \exp_after:wN \__fp_sep: \int_value:w \__fp_int_eval:w 10 0000 + #1 \__fp_int_eval_end: - #2#3#4#5#6 0000 0000 0000 0000 0000 0000 ; %^^A todo: how many 0? + #2#3#4#5#6 0000 0000 0000 0000 0000 0000 \__fp_sep: %^^A todo: how many 0? } -\cs_new:Npn \__fp_pow_C_overflow:w #1; #2; #3 +\cs_new:Npn \__fp_pow_C_overflow:w #1\__fp_sep: #2\__fp_sep: #3 { + 2 * \c__fp_max_exponent_int \exp_after:wN \__fp_fixed_continue:wn \c__fp_one_fixed_tl } -\cs_new:Npn \__fp_pow_C_neg:w #1 ; 1 +\cs_new:Npn \__fp_pow_C_neg:w #1 \__fp_sep: 1 { \exp_after:wN \exp_after:wN \exp_after:wN \__fp_pow_C_pack:w \prg_replicate:nn {#1} {0} } -\cs_new:Npn \__fp_pow_C_pos:w #1; 1 - { \__fp_pow_C_pos_loop:wN #1; } -\cs_new:Npn \__fp_pow_C_pos_loop:wN #1; #2 +\cs_new:Npn \__fp_pow_C_pos:w #1\__fp_sep: 1 + { \__fp_pow_C_pos_loop:wN #1\__fp_sep: } +\cs_new:Npn \__fp_pow_C_pos_loop:wN #1\__fp_sep: #2 { \if_meaning:w 0 #1 \exp_after:wN \__fp_pow_C_pack:w @@ -19962,7 +20071,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \else: \exp_after:wN \__fp_pow_C_overflow:w \int_value:w \fi: - \__fp_int_eval:w #1 - 1 \exp_after:wN ; + \__fp_int_eval:w #1 - 1 \exp_after:wN \__fp_sep: \fi: } \cs_new:Npn \__fp_pow_C_pack:w @@ -19971,20 +20080,21 @@ Type H <return> for immediate help}\def~{\errmessage{% \exp_after:wN 5 \c__fp_one_fixed_tl } -\cs_new:Npn \__fp_pow_neg:www \s__fp \__fp_chk:w #1#2; #3; #4; +\cs_new:Npn \__fp_pow_neg:www + \s__fp \__fp_chk:w #1#2\__fp_sep: #3\__fp_sep: #4\__fp_sep: { - \if_case:w \__fp_pow_neg_case:w #4 ; + \if_case:w \__fp_pow_neg_case:w #4 \__fp_sep: \exp_after:wN \__fp_pow_neg_aux:wNN \or: \if_int_compare:w \__fp_int_eval:w #1 / 2 = \c_one_int - \__fp_invalid_operation_o:Nww ^ #3; #4; + \__fp_invalid_operation_o:Nww ^ #3\__fp_sep: #4\__fp_sep: \exp:w \exp_end_continue_f:w \exp_after:wN \exp_after:wN \exp_after:wN \__fp_use_none_until_s:w \fi: \fi: \__fp_exp_after_o:w - \s__fp \__fp_chk:w #1#2; + \s__fp \__fp_chk:w #1#2\__fp_sep: } \cs_new:Npn \__fp_pow_neg_aux:wNN #1 \s__fp \__fp_chk:w #2#3 { @@ -19994,7 +20104,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \exp_after:wN #2 \int_value:w \__fp_int_eval:w 2 - #3 \__fp_int_eval_end: } -\cs_new:Npn \__fp_pow_neg_case:w \s__fp \__fp_chk:w #1#2#3; +\cs_new:Npn \__fp_pow_neg_case:w \s__fp \__fp_chk:w #1#2#3\__fp_sep: { \if_case:w #1 \exp_stop_f: -1 @@ -20014,7 +20124,7 @@ Type H <return> for immediate help}\def~{\errmessage{% {#2} {#3} {#4} {#5} \fi: } -\cs_new:Npn \__fp_pow_neg_case_aux:Nnnw #1#2#3#4 ; +\cs_new:Npn \__fp_pow_neg_case_aux:Nnnw #1#2#3#4 \__fp_sep: { \if_meaning:w 0 #1 \if_int_odd:w #3 \exp_stop_f: @@ -20027,7 +20137,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \fi: } \int_const:Nn \c__fp_fact_max_arg_int { 3248 } -\cs_new:Npn \__fp_fact_o:w #1 \s__fp \__fp_chk:w #2#3#4; @ +\cs_new:Npn \__fp_fact_o:w #1 \s__fp \__fp_chk:w #2#3#4\__fp_sep: @ { \if_case:w #2 \exp_stop_f: \__fp_case_return_o:Nw \c_one_fp @@ -20043,13 +20153,13 @@ Type H <return> for immediate help}\def~{\errmessage{% \__fp_case_use:nw { \__fp_invalid_operation_o:fw { fact } } \fi: \__fp_fact_pos_o:w - \s__fp \__fp_chk:w #2 #3 #4 ; + \s__fp \__fp_chk:w #2 #3 #4 \__fp_sep: } -\cs_new:Npn \__fp_fact_pos_o:w #1; +\cs_new:Npn \__fp_fact_pos_o:w #1\__fp_sep: { - \__fp_small_int:wTF #1; + \__fp_small_int:wTF #1\__fp_sep: { \__fp_fact_int_o:n } - { \__fp_invalid_operation_o:fw { fact } #1; } + { \__fp_invalid_operation_o:fw { fact } #1\__fp_sep: } } \cs_new:Npn \__fp_fact_int_o:n #1 { @@ -20063,9 +20173,9 @@ Type H <return> for immediate help}\def~{\errmessage{% \exp_after:wN \__fp_sanitize:Nw \exp_after:wN 0 \int_value:w \__fp_int_eval:w - \__fp_fact_loop_o:w #1 . 4 , { 1 } { } { } { } { } { } ; + \__fp_fact_loop_o:w #1 . 4 , { 1 } { } { } { } { } { } \__fp_sep: } -\cs_new:Npn \__fp_fact_loop_o:w #1 . #2 ; +\cs_new:Npn \__fp_fact_loop_o:w #1 . #2 \__fp_sep: { \if_int_compare:w #1 < 12 \exp_stop_f: \__fp_fact_small_o:w #1 @@ -20073,14 +20183,14 @@ Type H <return> for immediate help}\def~{\errmessage{% \exp_after:wN \__fp_ep_mul:wwwwn \exp_after:wN 4 \exp_after:wN , \exp_after:wN { \int_value:w \__fp_int_eval:w #1 * (#1 - 1) } - { } { } { } { } { } ; - #2 ; + { } { } { } { } { } \__fp_sep: + #2 \__fp_sep: { \exp_after:wN \__fp_fact_loop_o:w \int_value:w \__fp_int_eval:w #1 - 2 . } } -\cs_new:Npn \__fp_fact_small_o:w #1 \fi: #2 ; #3 ; #4 +\cs_new:Npn \__fp_fact_small_o:w #1 \fi: #2 \__fp_sep: #3 \__fp_sep: #4 { \fi: \exp_after:wN \__fp_ep_mul:wwwwn @@ -20092,8 +20202,8 @@ Type H <return> for immediate help}\def~{\errmessage{% 1 \or: 1 \or: 2 \or: 6 \or: 24 \or: 120 \or: 720 \or: 5040 \or: 40320 \or: 362880 \or: 3628800 \or: 39916800 \fi: - } { } { } { } { } { } ; - #3 ; + } { } { } { } { } { } \__fp_sep: + #3 \__fp_sep: \__fp_ep_to_float_o:wwN 0 } %% File: l3fp-trig.dtx @@ -20124,7 +20234,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \__fp_parse_function:NNN \__fp_atan_o:Nw \use_i:nn } \cs_new:Npn \__fp_parse_word_atand:N { \__fp_parse_function:NNN \__fp_atan_o:Nw \use_ii:nn } -\cs_new:Npn \__fp_sin_o:w #1 \s__fp \__fp_chk:w #2#3#4; @ +\cs_new:Npn \__fp_sin_o:w #1 \s__fp \__fp_chk:w #2#3#4\__fp_sep: @ { \if_case:w #2 \exp_stop_f: \__fp_case_return_same_o:w @@ -20137,9 +20247,9 @@ Type H <return> for immediate help}\def~{\errmessage{% { \__fp_invalid_operation_o:fw { #1 { sin } { sind } } } \else: \__fp_case_return_same_o:w \fi: - \s__fp \__fp_chk:w #2 #3 #4; + \s__fp \__fp_chk:w #2 #3 #4\__fp_sep: } -\cs_new:Npn \__fp_cos_o:w #1 \s__fp \__fp_chk:w #2#3; @ +\cs_new:Npn \__fp_cos_o:w #1 \s__fp \__fp_chk:w #2#3\__fp_sep: @ { \if_case:w #2 \exp_stop_f: \__fp_case_return_o:Nw \c_one_fp @@ -20152,9 +20262,9 @@ Type H <return> for immediate help}\def~{\errmessage{% { \__fp_invalid_operation_o:fw { #1 { cos } { cosd } } } \else: \__fp_case_return_same_o:w \fi: - \s__fp \__fp_chk:w #2 #3; + \s__fp \__fp_chk:w #2 #3\__fp_sep: } -\cs_new:Npn \__fp_csc_o:w #1 \s__fp \__fp_chk:w #2#3#4; @ +\cs_new:Npn \__fp_csc_o:w #1 \s__fp \__fp_chk:w #2#3#4\__fp_sep: @ { \if_case:w #2 \exp_stop_f: \__fp_cot_zero_o:Nfw #3 { #1 { csc } { cscd } } @@ -20167,9 +20277,9 @@ Type H <return> for immediate help}\def~{\errmessage{% { \__fp_invalid_operation_o:fw { #1 { csc } { cscd } } } \else: \__fp_case_return_same_o:w \fi: - \s__fp \__fp_chk:w #2 #3 #4; + \s__fp \__fp_chk:w #2 #3 #4\__fp_sep: } -\cs_new:Npn \__fp_sec_o:w #1 \s__fp \__fp_chk:w #2#3; @ +\cs_new:Npn \__fp_sec_o:w #1 \s__fp \__fp_chk:w #2#3\__fp_sep: @ { \if_case:w #2 \exp_stop_f: \__fp_case_return_o:Nw \c_one_fp @@ -20182,9 +20292,9 @@ Type H <return> for immediate help}\def~{\errmessage{% { \__fp_invalid_operation_o:fw { #1 { sec } { secd } } } \else: \__fp_case_return_same_o:w \fi: - \s__fp \__fp_chk:w #2 #3; + \s__fp \__fp_chk:w #2 #3\__fp_sep: } -\cs_new:Npn \__fp_tan_o:w #1 \s__fp \__fp_chk:w #2#3#4; @ +\cs_new:Npn \__fp_tan_o:w #1 \s__fp \__fp_chk:w #2#3#4\__fp_sep: @ { \if_case:w #2 \exp_stop_f: \__fp_case_return_same_o:w @@ -20197,9 +20307,9 @@ Type H <return> for immediate help}\def~{\errmessage{% { \__fp_invalid_operation_o:fw { #1 { tan } { tand } } } \else: \__fp_case_return_same_o:w \fi: - \s__fp \__fp_chk:w #2 #3 #4; + \s__fp \__fp_chk:w #2 #3 #4\__fp_sep: } -\cs_new:Npn \__fp_cot_o:w #1 \s__fp \__fp_chk:w #2#3#4; @ +\cs_new:Npn \__fp_cot_o:w #1 \s__fp \__fp_chk:w #2#3#4\__fp_sep: @ { \if_case:w #2 \exp_stop_f: \__fp_cot_zero_o:Nfw #3 { #1 { cot } { cotd } } @@ -20212,7 +20322,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \__fp_invalid_operation_o:fw { #1 { cot } { cotd } } } \else: \__fp_case_return_same_o:w \fi: - \s__fp \__fp_chk:w #2 #3 #4; + \s__fp \__fp_chk:w #2 #3 #4\__fp_sep: } \cs_new:Npn \__fp_cot_zero_o:Nfw #1#2#3 \fi: { @@ -20222,7 +20332,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \exp_args:NNf \__fp_division_by_zero_o:Nnw \c_minus_inf_fp } {#2} } -\cs_new:Npn \__fp_trig:NNNNNwn #1#2#3#4#5 \s__fp \__fp_chk:w 1#6#7#8; +\cs_new:Npn \__fp_trig:NNNNNwn #1#2#3#4#5 \s__fp \__fp_chk:w 1#6#7#8\__fp_sep: { \exp_after:wN #2 \exp_after:wN #3 @@ -20234,44 +20344,44 @@ Type H <return> for immediate help}\def~{\errmessage{% \else: #1 \__fp_trig_small:ww \__fp_trigd_small:ww \fi: - #7,#8{0000}{0000}; + #7,#8{0000}{0000}\__fp_sep: } -\cs_new:Npn \__fp_trig_small:ww #1,#2; - { \__fp_ep_to_fixed:wwn #1,#2; . #1,#2; } -\cs_new:Npn \__fp_trigd_small:ww #1,#2; +\cs_new:Npn \__fp_trig_small:ww #1,#2\__fp_sep: + { \__fp_ep_to_fixed:wwn #1,#2\__fp_sep: . #1,#2\__fp_sep: } +\cs_new:Npn \__fp_trigd_small:ww #1,#2\__fp_sep: { \__fp_ep_mul_raw:wwwwN - -1,{1745}{3292}{5199}{4329}{5769}{2369}; #1,#2; + -1,{1745}{3292}{5199}{4329}{5769}{2369}\__fp_sep: #1,#2\__fp_sep: \__fp_trig_small:ww } -\cs_new:Npn \__fp_trigd_large:ww #1, #2#3#4#5#6#7; +\cs_new:Npn \__fp_trigd_large:ww #1, #2#3#4#5#6#7\__fp_sep: { \exp_after:wN \__fp_pack_eight:wNNNNNNNN \exp_after:wN \__fp_pack_eight:wNNNNNNNN \exp_after:wN \__fp_pack_twice_four:wNNNNNNNN \exp_after:wN \__fp_pack_twice_four:wNNNNNNNN \exp_after:wN \__fp_trigd_large_auxi:nnnnwNNNN - \exp_after:wN ; + \exp_after:wN \__fp_sep: \exp:w \exp_end_continue_f:w \prg_replicate:nn { \int_max:nn { 22 - #1 } { 0 } } { 0 } #2#3#4#5#6#7 0000 0000 0000 ! } -\cs_new:Npn \__fp_trigd_large_auxi:nnnnwNNNN #1#2#3#4#5; #6#7#8#9 +\cs_new:Npn \__fp_trigd_large_auxi:nnnnwNNNN #1#2#3#4#5\__fp_sep: #6#7#8#9 { \exp_after:wN \__fp_trigd_large_auxii:wNw \int_value:w \__fp_int_eval:w #1 + #2 - (#1 + #2 - 4) / 9 * 9 \__fp_int_eval_end: - #3; - #4; #5{#6#7#8#9}; + #3\__fp_sep: + #4\__fp_sep: #5{#6#7#8#9}\__fp_sep: } -\cs_new:Npn \__fp_trigd_large_auxii:wNw #1; #2#3; +\cs_new:Npn \__fp_trigd_large_auxii:wNw #1\__fp_sep: #2#3\__fp_sep: { + (#1#2 - 4) / 9 * 2 \exp_after:wN \__fp_trigd_large_auxiii:www \int_value:w \__fp_int_eval:w #1#2 - - (#1#2 - 4) / 9 * 9 \__fp_int_eval_end: #3 ; + - (#1#2 - 4) / 9 * 9 \__fp_int_eval_end: #3 \__fp_sep: } -\cs_new:Npn \__fp_trigd_large_auxiii:www #1; #2; #3! +\cs_new:Npn \__fp_trigd_large_auxiii:www #1\__fp_sep: #2\__fp_sep: #3! { \if_int_compare:w #1 < 4500 \exp_stop_f: \exp_after:wN \__fp_use_i_until_s:nw @@ -20279,8 +20389,8 @@ Type H <return> for immediate help}\def~{\errmessage{% \else: + 1 \fi: - \__fp_fixed_sub:wwn {9000}{0000}{0000}{0000}{0000}{0000}; - {#1}#2{0000}{0000}; + \__fp_fixed_sub:wwn {9000}{0000}{0000}{0000}{0000}{0000}\__fp_sep: + {#1}#2{0000}{0000}\__fp_sep: { \__fp_trigd_small:ww 2, } } \intarray_const_from_clist:Nn \c__fp_trig_intarray @@ -20497,12 +20607,12 @@ Type H <return> for immediate help}\def~{\errmessage{% 159592267, 181172796, 144388537, 196763139, 127431422, 179531145, 100064922, 112650013, 132686230, 121550837, } -\cs_new:Npn \__fp_trig_large:ww #1, #2#3#4#5#6; +\cs_new:Npn \__fp_trig_large:ww #1, #2#3#4#5#6\__fp_sep: { \exp_after:wN \__fp_trig_large_auxi:w \int_value:w \__fp_int_eval:w (#1 - 4) / 8 \exp_after:wN , - \int_value:w #1 , ; - {#2}{#3}{#4}{#5} ; + \int_value:w #1 , \__fp_sep: + {#2}{#3}{#4}{#5} \__fp_sep: } \cs_new:Npn \__fp_trig_large_auxi:w #1, #2, { @@ -20547,10 +20657,10 @@ Type H <return> for immediate help}\def~{\errmessage{% \__fp_pack_twice_four:wNNNNNNNN \__fp_pack_twice_four:wNNNNNNNN \__fp_pack_twice_four:wNNNNNNNN \__fp_pack_twice_four:wNNNNNNNN \__fp_pack_twice_four:wNNNNNNNN \__fp_pack_twice_four:wNNNNNNNN - \__fp_trig_large_auxv:www ; + \__fp_trig_large_auxv:www \__fp_sep: } \cs_new:Npn \__fp_trig_large_auxiii:w 1 { \exp_stop_f: } -\cs_new:Npn \__fp_trig_large_auxv:www #1; #2; #3; +\cs_new:Npn \__fp_trig_large_auxv:www #1\__fp_sep: #2\__fp_sep: #3\__fp_sep: { \exp_after:wN \__fp_use_i_until_s:nw \exp_after:wN \__fp_trig_large_auxvii:w @@ -20559,24 +20669,24 @@ Type H <return> for immediate help}\def~{\errmessage{% { \__fp_trig_large_auxvi:wnnnnnnnn } + \c__fp_trailing_shift_int - \c__fp_middle_shift_int \__fp_use_i_until_s:nw - ; #3 #1 ; ; + \__fp_sep: #3 #1 \__fp_sep: \__fp_sep: } -\cs_new:Npn \__fp_trig_large_auxvi:wnnnnnnnn #1; #2#3#4#5#6#7#8#9 +\cs_new:Npn \__fp_trig_large_auxvi:wnnnnnnnn #1\__fp_sep: #2#3#4#5#6#7#8#9 { \exp_after:wN \__fp_trig_large_pack:NNNNNw \int_value:w \__fp_int_eval:w \c__fp_middle_shift_int + #2*#9 + #3*#8 + #4*#7 + #5*#6 - #1; {#2}{#3}{#4}{#5} {#7}{#8}{#9} + #1\__fp_sep: {#2}{#3}{#4}{#5} {#7}{#8}{#9} } -\cs_new:Npn \__fp_trig_large_pack:NNNNNw #1#2#3#4#5#6; - { + #1#2#3#4#5 ; #6 } +\cs_new:Npn \__fp_trig_large_pack:NNNNNw #1#2#3#4#5#6\__fp_sep: + { + #1#2#3#4#5 \__fp_sep: #6 } \cs_new:Npn \__fp_trig_large_auxvii:w #1#2#3 { \exp_after:wN \__fp_trig_large_auxviii:ww - \int_value:w \__fp_int_eval:w (#1#2#3 - 62) / 125 ; + \int_value:w \__fp_int_eval:w (#1#2#3 - 62) / 125 \__fp_sep: #1#2#3 } -\cs_new:Npn \__fp_trig_large_auxviii:ww #1; +\cs_new:Npn \__fp_trig_large_auxviii:ww #1\__fp_sep: { + #1 \if_int_odd:w #1 \exp_stop_f: @@ -20595,25 +20705,25 @@ Type H <return> for immediate help}\def~{\errmessage{% \prg_replicate:nn { 13 } { \__fp_trig_large_auxx:wNNNNN } + \c__fp_trailing_shift_int - \c__fp_middle_shift_int - ; + \__fp_sep: } -\cs_new:Npn \__fp_trig_large_auxx:wNNNNN #1; #2 #3#4#5#6 +\cs_new:Npn \__fp_trig_large_auxx:wNNNNN #1\__fp_sep: #2 #3#4#5#6 { \exp_after:wN \__fp_trig_large_pack:NNNNNw \int_value:w \__fp_int_eval:w \c__fp_middle_shift_int #2 8 * #3#4#5#6 - #1; #2 + #1\__fp_sep: #2 } -\cs_new:Npn \__fp_trig_large_auxxi:w #1; +\cs_new:Npn \__fp_trig_large_auxxi:w #1\__fp_sep: { \exp_after:wN \__fp_ep_mul_raw:wwwwN - \int_value:w \__fp_int_eval:w 0 \__fp_ep_to_ep_loop:N #1 ; ; ! - 0,{7853}{9816}{3397}{4483}{0961}{5661}; + \int_value:w \__fp_int_eval:w 0 \__fp_ep_to_ep_loop:N #1 \__fp_sep: \__fp_sep: ! + 0,{7853}{9816}{3397}{4483}{0961}{5661}\__fp_sep: \__fp_trig_small:ww } -\cs_new:Npn \__fp_sin_series_o:NNwwww #1#2#3. #4; +\cs_new:Npn \__fp_sin_series_o:NNwwww #1#2#3. #4\__fp_sep: { - \__fp_fixed_mul:wwn #4; #4; + \__fp_fixed_mul:wwn #4\__fp_sep: #4\__fp_sep: { \exp_after:wN \__fp_sin_series_aux_o:NNnwww \exp_after:wN #1 @@ -20626,7 +20736,7 @@ Type H <return> for immediate help}\def~{\errmessage{% {#3} } } -\cs_new:Npn \__fp_sin_series_aux_o:NNnwww #1#2#3 #4; #5,#6; +\cs_new:Npn \__fp_sin_series_aux_o:NNnwww #1#2#3 #4\__fp_sep: #5,#6\__fp_sep: { \if_int_odd:w \__fp_int_eval:w #3 / 2 \__fp_int_eval_end: \exp_after:wN \use_i:nn @@ -20634,29 +20744,46 @@ Type H <return> for immediate help}\def~{\errmessage{% \exp_after:wN \use_ii:nn \fi: { % 1/18! - \__fp_fixed_mul_sub_back:wwwn {0000}{0000}{0000}{0001}{5619}{2070}; - #4;{0000}{0000}{0000}{0477}{9477}{3324}; - \__fp_fixed_mul_sub_back:wwwn #4;{0000}{0000}{0011}{4707}{4559}{7730}; - \__fp_fixed_mul_sub_back:wwwn #4;{0000}{0000}{2087}{6756}{9878}{6810}; - \__fp_fixed_mul_sub_back:wwwn #4;{0000}{0027}{5573}{1922}{3985}{8907}; - \__fp_fixed_mul_sub_back:wwwn #4;{0000}{2480}{1587}{3015}{8730}{1587}; - \__fp_fixed_mul_sub_back:wwwn #4;{0013}{8888}{8888}{8888}{8888}{8889}; - \__fp_fixed_mul_sub_back:wwwn #4;{0416}{6666}{6666}{6666}{6666}{6667}; - \__fp_fixed_mul_sub_back:wwwn #4;{5000}{0000}{0000}{0000}{0000}{0000}; - \__fp_fixed_mul_sub_back:wwwn#4;{10000}{0000}{0000}{0000}{0000}{0000}; + \__fp_fixed_mul_sub_back:wwwn {0000}{0000}{0000}{0001}{5619}{2070}\__fp_sep: + #4\__fp_sep: + {0000}{0000}{0000}{0477}{9477}{3324}\__fp_sep: + \__fp_fixed_mul_sub_back:wwwn #4\__fp_sep: + {0000}{0000}{0011}{4707}{4559}{7730}\__fp_sep: + \__fp_fixed_mul_sub_back:wwwn #4\__fp_sep: + {0000}{0000}{2087}{6756}{9878}{6810}\__fp_sep: + \__fp_fixed_mul_sub_back:wwwn #4\__fp_sep: + {0000}{0027}{5573}{1922}{3985}{8907}\__fp_sep: + \__fp_fixed_mul_sub_back:wwwn #4\__fp_sep: + {0000}{2480}{1587}{3015}{8730}{1587}\__fp_sep: + \__fp_fixed_mul_sub_back:wwwn #4\__fp_sep: + {0013}{8888}{8888}{8888}{8888}{8889}\__fp_sep: + \__fp_fixed_mul_sub_back:wwwn #4\__fp_sep: + {0416}{6666}{6666}{6666}{6666}{6667}\__fp_sep: + \__fp_fixed_mul_sub_back:wwwn #4\__fp_sep: + {5000}{0000}{0000}{0000}{0000}{0000}\__fp_sep: + \__fp_fixed_mul_sub_back:wwwn#4\__fp_sep: + {10000}{0000}{0000}{0000}{0000}{0000}\__fp_sep: { \__fp_fixed_continue:wn 0, } } { % 1/17! - \__fp_fixed_mul_sub_back:wwwn {0000}{0000}{0000}{0028}{1145}{7254}; - #4;{0000}{0000}{0000}{7647}{1637}{3182}; - \__fp_fixed_mul_sub_back:wwwn #4;{0000}{0000}{0160}{5904}{3836}{8216}; - \__fp_fixed_mul_sub_back:wwwn #4;{0000}{0002}{5052}{1083}{8544}{1719}; - \__fp_fixed_mul_sub_back:wwwn #4;{0000}{0275}{5731}{9223}{9858}{9065}; - \__fp_fixed_mul_sub_back:wwwn #4;{0001}{9841}{2698}{4126}{9841}{2698}; - \__fp_fixed_mul_sub_back:wwwn #4;{0083}{3333}{3333}{3333}{3333}{3333}; - \__fp_fixed_mul_sub_back:wwwn #4;{1666}{6666}{6666}{6666}{6666}{6667}; - \__fp_fixed_mul_sub_back:wwwn#4;{10000}{0000}{0000}{0000}{0000}{0000}; - { \__fp_ep_mul:wwwwn 0, } #5,#6; + \__fp_fixed_mul_sub_back:wwwn {0000}{0000}{0000}{0028}{1145}{7254}\__fp_sep: + #4\__fp_sep: + {0000}{0000}{0000}{7647}{1637}{3182}\__fp_sep: + \__fp_fixed_mul_sub_back:wwwn #4\__fp_sep: + {0000}{0000}{0160}{5904}{3836}{8216}\__fp_sep: + \__fp_fixed_mul_sub_back:wwwn #4\__fp_sep: + {0000}{0002}{5052}{1083}{8544}{1719}\__fp_sep: + \__fp_fixed_mul_sub_back:wwwn #4\__fp_sep: + {0000}{0275}{5731}{9223}{9858}{9065}\__fp_sep: + \__fp_fixed_mul_sub_back:wwwn #4\__fp_sep: + {0001}{9841}{2698}{4126}{9841}{2698}\__fp_sep: + \__fp_fixed_mul_sub_back:wwwn #4\__fp_sep: + {0083}{3333}{3333}{3333}{3333}{3333}\__fp_sep: + \__fp_fixed_mul_sub_back:wwwn #4\__fp_sep: + {1666}{6666}{6666}{6666}{6666}{6667}\__fp_sep: + \__fp_fixed_mul_sub_back:wwwn#4\__fp_sep: + {10000}{0000}{0000}{0000}{0000}{0000}\__fp_sep: + { \__fp_ep_mul:wwwwn 0, } #5,#6\__fp_sep: } { \exp_after:wN \__fp_sanitize:Nw @@ -20665,9 +20792,9 @@ Type H <return> for immediate help}\def~{\errmessage{% } #2 } -\cs_new:Npn \__fp_tan_series_o:NNwwww #1#2#3. #4; +\cs_new:Npn \__fp_tan_series_o:NNwwww #1#2#3. #4\__fp_sep: { - \__fp_fixed_mul:wwn #4; #4; + \__fp_fixed_mul:wwn #4\__fp_sep: #4\__fp_sep: { \exp_after:wN \__fp_tan_series_aux_o:Nnwww \int_value:w @@ -20678,22 +20805,32 @@ Type H <return> for immediate help}\def~{\errmessage{% {#3} } } -\cs_new:Npn \__fp_tan_series_aux_o:Nnwww #1 #2 #3; #4,#5; - { - \__fp_fixed_mul_sub_back:wwwn {0000}{0000}{1527}{3493}{0856}{7059}; - #3; {0000}{0159}{6080}{0274}{5257}{6472}; - \__fp_fixed_mul_sub_back:wwwn #3; {0002}{4571}{2320}{0157}{2558}{8481}; - \__fp_fixed_mul_sub_back:wwwn #3; {0115}{5830}{7533}{5397}{3168}{2147}; - \__fp_fixed_mul_sub_back:wwwn #3; {1929}{8245}{6140}{3508}{7719}{2982}; - \__fp_fixed_mul_sub_back:wwwn #3;{10000}{0000}{0000}{0000}{0000}{0000}; - { \__fp_ep_mul:wwwwn 0, } #4,#5; +\cs_new:Npn \__fp_tan_series_aux_o:Nnwww #1 #2 #3\__fp_sep: #4,#5\__fp_sep: + { + \__fp_fixed_mul_sub_back:wwwn {0000}{0000}{1527}{3493}{0856}{7059}\__fp_sep: + #3\__fp_sep: + {0000}{0159}{6080}{0274}{5257}{6472}\__fp_sep: + \__fp_fixed_mul_sub_back:wwwn #3\__fp_sep: + {0002}{4571}{2320}{0157}{2558}{8481}\__fp_sep: + \__fp_fixed_mul_sub_back:wwwn #3\__fp_sep: + {0115}{5830}{7533}{5397}{3168}{2147}\__fp_sep: + \__fp_fixed_mul_sub_back:wwwn #3\__fp_sep: + {1929}{8245}{6140}{3508}{7719}{2982}\__fp_sep: + \__fp_fixed_mul_sub_back:wwwn #3\__fp_sep: + {10000}{0000}{0000}{0000}{0000}{0000}\__fp_sep: + { \__fp_ep_mul:wwwwn 0, } #4,#5\__fp_sep: { - \__fp_fixed_mul_sub_back:wwwn {0000}{0007}{0258}{0681}{9408}{4706}; - #3;{0000}{2343}{7175}{1399}{6151}{7670}; - \__fp_fixed_mul_sub_back:wwwn #3;{0019}{2638}{4588}{9232}{8861}{3691}; - \__fp_fixed_mul_sub_back:wwwn #3;{0536}{6357}{0691}{4344}{6852}{4252}; - \__fp_fixed_mul_sub_back:wwwn #3;{5263}{1578}{9473}{6842}{1052}{6315}; - \__fp_fixed_mul_sub_back:wwwn#3;{10000}{0000}{0000}{0000}{0000}{0000}; + \__fp_fixed_mul_sub_back:wwwn {0000}{0007}{0258}{0681}{9408}{4706}\__fp_sep: + #3\__fp_sep: + {0000}{2343}{7175}{1399}{6151}{7670}\__fp_sep: + \__fp_fixed_mul_sub_back:wwwn #3\__fp_sep: + {0019}{2638}{4588}{9232}{8861}{3691}\__fp_sep: + \__fp_fixed_mul_sub_back:wwwn #3\__fp_sep: + {0536}{6357}{0691}{4344}{6852}{4252}\__fp_sep: + \__fp_fixed_mul_sub_back:wwwn #3\__fp_sep: + {5263}{1578}{9473}{6842}{1052}{6315}\__fp_sep: + \__fp_fixed_mul_sub_back:wwwn#3\__fp_sep: + {10000}{0000}{0000}{0000}{0000}{0000}\__fp_sep: { \reverse_if:N \if_int_odd:w \__fp_int_eval:w (#2 - 1) / 2 \__fp_int_eval_end: @@ -20723,7 +20860,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new:Npe \__fp_atan_default:w #1#2#3 @ { #1 #2 #3 \c_one_fp @ } \cs_new:Npn \__fp_atanii_o:Nww - #1 \s__fp \__fp_chk:w #2#3#4; \s__fp \__fp_chk:w #5 #6 @ + #1 \s__fp \__fp_chk:w #2#3#4\__fp_sep: \s__fp \__fp_chk:w #5 #6 @ { \if_meaning:w 3 #2 \__fp_case_return_i_o:ww \fi: \if_meaning:w 3 #5 \__fp_case_return_ii_o:ww \fi: @@ -20739,29 +20876,29 @@ Type H <return> for immediate help}\def~{\errmessage{% \or: \__fp_case_return:nw { \__fp_atan_inf_o:NNNw #1 #3 0 } \fi: \__fp_atan_normal_o:NNnwNnw #1 - \s__fp \__fp_chk:w #2#3#4; + \s__fp \__fp_chk:w #2#3#4\__fp_sep: \s__fp \__fp_chk:w #5 #6 } -\cs_new:Npn \__fp_acotii_o:Nww #1#2; #3; - { \__fp_atanii_o:Nww #1#3; #2; } -\cs_new:Npn \__fp_atan_inf_o:NNNw #1#2#3 \s__fp \__fp_chk:w #4#5#6; +\cs_new:Npn \__fp_acotii_o:Nww #1#2\__fp_sep: #3\__fp_sep: + { \__fp_atanii_o:Nww #1#3\__fp_sep: #2\__fp_sep: } +\cs_new:Npn \__fp_atan_inf_o:NNNw #1#2#3 \s__fp \__fp_chk:w #4#5#6\__fp_sep: { \exp_after:wN \__fp_atan_combine_o:NwwwwwN \exp_after:wN #2 \int_value:w \__fp_int_eval:w - \if_meaning:w 2 #5 7 - \fi: #3 \exp_after:wN ; + \if_meaning:w 2 #5 7 - \fi: #3 \exp_after:wN \__fp_sep: \c__fp_one_fixed_tl - {0000}{0000}{0000}{0000}{0000}{0000}; - 0,{0000}{0000}{0000}{0000}{0000}{0000}; #1 + {0000}{0000}{0000}{0000}{0000}{0000}\__fp_sep: + 0,{0000}{0000}{0000}{0000}{0000}{0000}\__fp_sep: #1 } \cs_new_protected:Npn \__fp_atan_normal_o:NNnwNnw - #1 \s__fp \__fp_chk:w 1#2#3#4; \s__fp \__fp_chk:w 1#5#6#7; + #1 \s__fp \__fp_chk:w 1#2#3#4\__fp_sep: \s__fp \__fp_chk:w 1#5#6#7\__fp_sep: { \__fp_atan_test_o:NwwNwwN - #2 #3, #4{0000}{0000}; - #5 #6, #7{0000}{0000}; #1 + #2 #3, #4{0000}{0000}\__fp_sep: + #5 #6, #7{0000}{0000}\__fp_sep: #1 } -\cs_new:Npn \__fp_atan_test_o:NwwNwwN #1#2,#3; #4#5,#6; +\cs_new:Npn \__fp_atan_test_o:NwwNwwN #1#2,#3\__fp_sep: #4#5,#6\__fp_sep: { \exp_after:wN \__fp_atan_combine_o:NwwwwwN \exp_after:wN #1 @@ -20770,13 +20907,13 @@ Type H <return> for immediate help}\def~{\errmessage{% 7 - \__fp_int_eval:w \fi: \if_int_compare:w - \__fp_ep_compare:wwww #2,#3; #5,#6; > \c_zero_int + \__fp_ep_compare:wwww #2,#3\__fp_sep: #5,#6\__fp_sep: > \c_zero_int 3 - \exp_after:wN \__fp_reverse_args:Nww \fi: - \__fp_atan_div:wnwwnw #2,#3; #5,#6; + \__fp_atan_div:wnwwnw #2,#3\__fp_sep: #5,#6\__fp_sep: } -\cs_new:Npn \__fp_atan_div:wnwwnw #1,#2#3; #4,#5#6; +\cs_new:Npn \__fp_atan_div:wnwwnw #1,#2#3\__fp_sep: #4,#5#6\__fp_sep: { \if_int_compare:w \__fp_int_eval:w 41421 * #5 < #2 000 @@ -20786,49 +20923,50 @@ Type H <return> for immediate help}\def~{\errmessage{% \exp_after:wN \__fp_atan_near:wwwn \fi: 0 - \__fp_ep_div:wwwwn #1,{#2}#3; #4,{#5}#6; + \__fp_ep_div:wwwwn #1,{#2}#3\__fp_sep: #4,{#5}#6\__fp_sep: \__fp_atan_auxi:ww } \cs_new:Npn \__fp_atan_near:wwwn - 0 \__fp_ep_div:wwwwn #1,#2; #3, + 0 \__fp_ep_div:wwwwn #1,#2\__fp_sep: #3, { 1 - \__fp_ep_to_fixed:wwn #1 - #3, #2; + \__fp_ep_to_fixed:wwn #1 - #3, #2\__fp_sep: \__fp_atan_near_aux:wwn } -\cs_new:Npn \__fp_atan_near_aux:wwn #1; #2; +\cs_new:Npn \__fp_atan_near_aux:wwn #1\__fp_sep: #2\__fp_sep: { - \__fp_fixed_add:wwn #1; #2; - { \__fp_fixed_sub:wwn #2; #1; { \__fp_ep_div:wwwwn 0, } 0, } + \__fp_fixed_add:wwn #1\__fp_sep: #2\__fp_sep: + { \__fp_fixed_sub:wwn #2\__fp_sep: #1\__fp_sep: { \__fp_ep_div:wwwwn 0, } 0, } } -\cs_new:Npn \__fp_atan_auxi:ww #1,#2; - { \__fp_ep_to_fixed:wwn #1,#2; \__fp_atan_auxii:w #1,#2; } -\cs_new:Npn \__fp_atan_auxii:w #1; +\cs_new:Npn \__fp_atan_auxi:ww #1,#2\__fp_sep: + { \__fp_ep_to_fixed:wwn #1,#2\__fp_sep: \__fp_atan_auxii:w #1,#2\__fp_sep: } +\cs_new:Npn \__fp_atan_auxii:w #1\__fp_sep: { - \__fp_fixed_mul:wwn #1; #1; + \__fp_fixed_mul:wwn #1\__fp_sep: #1\__fp_sep: { - \__fp_atan_Taylor_loop:www 39 ; - {0000}{0000}{0000}{0000}{0000}{0000} ; + \__fp_atan_Taylor_loop:www 39 \__fp_sep: + {0000}{0000}{0000}{0000}{0000}{0000} \__fp_sep: } - ! #1; + ! #1\__fp_sep: } -\cs_new:Npn \__fp_atan_Taylor_loop:www #1; #2; #3; +\cs_new:Npn \__fp_atan_Taylor_loop:www #1\__fp_sep: #2\__fp_sep: #3\__fp_sep: { \if_int_compare:w #1 = - \c_one_int \__fp_atan_Taylor_break:w \fi: - \exp_after:wN \__fp_fixed_div_int:wwN \c__fp_one_fixed_tl #1; - \__fp_rrot:www \__fp_fixed_mul_sub_back:wwwn #2; #3; + \exp_after:wN \__fp_fixed_div_int:wwN \c__fp_one_fixed_tl #1\__fp_sep: + \__fp_rrot:www \__fp_fixed_mul_sub_back:wwwn #2\__fp_sep: #3\__fp_sep: { \exp_after:wN \__fp_atan_Taylor_loop:www - \int_value:w \__fp_int_eval:w #1 - 2 ; + \int_value:w \__fp_int_eval:w #1 - 2 \__fp_sep: } - #3; + #3\__fp_sep: } \cs_new:Npn \__fp_atan_Taylor_break:w - \fi: #1 \__fp_fixed_mul_sub_back:wwwn #2; #3 ! - { \fi: ; #2 ; } -\cs_new:Npn \__fp_atan_combine_o:NwwwwwN #1 #2; #3; #4; #5,#6; #7 + \fi: #1 \__fp_fixed_mul_sub_back:wwwn #2\__fp_sep: #3 ! + { \fi: \__fp_sep: #2 \__fp_sep: } +\cs_new:Npn \__fp_atan_combine_o:NwwwwwN + #1 #2\__fp_sep: #3\__fp_sep: #4\__fp_sep: #5,#6\__fp_sep: #7 { \exp_after:wN \__fp_sanitize:Nw \exp_after:wN #1 @@ -20838,22 +20976,22 @@ Type H <return> for immediate help}\def~{\errmessage{% \else: \exp_after:wN \use_ii:nn \fi: - { #5 \__fp_fixed_mul:wwn #3; #6; } + { #5 \__fp_fixed_mul:wwn #3\__fp_sep: #6\__fp_sep: } { - \__fp_fixed_mul:wwn #3; #4; + \__fp_fixed_mul:wwn #3\__fp_sep: #4\__fp_sep: { \exp_after:wN \__fp_atan_combine_aux:ww - \int_value:w \__fp_int_eval:w #2 / 2 ; #2; + \int_value:w \__fp_int_eval:w #2 / 2 \__fp_sep: #2\__fp_sep: } } { #7 \__fp_fixed_to_float_o:wN \__fp_fixed_to_float_rad_o:wN } #1 } -\cs_new:Npn \__fp_atan_combine_aux:ww #1; #2; +\cs_new:Npn \__fp_atan_combine_aux:ww #1\__fp_sep: #2\__fp_sep: { \__fp_fixed_mul_short:wwn - {7853}{9816}{3397}{4483}{0961}{5661}; - {#1}{0000}{0000}; + {7853}{9816}{3397}{4483}{0961}{5661}\__fp_sep: + {#1}{0000}{0000}\__fp_sep: { \if_int_odd:w #2 \exp_stop_f: \exp_after:wN \__fp_fixed_sub:wwn @@ -20862,7 +21000,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \fi: } } -\cs_new:Npn \__fp_asin_o:w #1 \s__fp \__fp_chk:w #2#3; @ +\cs_new:Npn \__fp_asin_o:w #1 \s__fp \__fp_chk:w #2#3\__fp_sep: @ { \if_case:w #2 \exp_stop_f: \__fp_case_return_same_o:w @@ -20875,9 +21013,9 @@ Type H <return> for immediate help}\def~{\errmessage{% \else: \__fp_case_return_same_o:w \fi: - \s__fp \__fp_chk:w #2 #3; + \s__fp \__fp_chk:w #2 #3\__fp_sep: } -\cs_new:Npn \__fp_acos_o:w #1 \s__fp \__fp_chk:w #2#3; @ +\cs_new:Npn \__fp_acos_o:w #1 \s__fp \__fp_chk:w #2#3\__fp_sep: @ { \if_case:w #2 \exp_stop_f: \__fp_case_use:nw { \__fp_atan_inf_o:NNNw #1 0 4 } @@ -20893,10 +21031,10 @@ Type H <return> for immediate help}\def~{\errmessage{% \else: \__fp_case_return_same_o:w \fi: - \s__fp \__fp_chk:w #2 #3; + \s__fp \__fp_chk:w #2 #3\__fp_sep: } \cs_new:Npn \__fp_asin_normal_o:NfwNnnnnw - #1#2#3 \s__fp \__fp_chk:w 1#4#5#6#7#8#9; + #1#2#3 \s__fp \__fp_chk:w 1#4#5#6#7#8#9\__fp_sep: { \if_int_compare:w #5 < \c_one_int \exp_after:wN \__fp_use_none_until_s:w @@ -20906,30 +21044,30 @@ Type H <return> for immediate help}\def~{\errmessage{% \fi: \__fp_use_i:ww \__fp_invalid_operation_o:fw {#2} - \s__fp \__fp_chk:w 1#4{#5}{#6}{#7}{#8}{#9}; + \s__fp \__fp_chk:w 1#4{#5}{#6}{#7}{#8}{#9}\__fp_sep: \__fp_asin_auxi_o:NnNww - #1 {#3} #4 #5,{#6}{#7}{#8}{#9}{0000}{0000}; + #1 {#3} #4 #5,{#6}{#7}{#8}{#9}{0000}{0000}\__fp_sep: } -\cs_new:Npn \__fp_asin_auxi_o:NnNww #1#2#3#4,#5; +\cs_new:Npn \__fp_asin_auxi_o:NnNww #1#2#3#4,#5\__fp_sep: { - \__fp_ep_to_fixed:wwn #4,#5; + \__fp_ep_to_fixed:wwn #4,#5\__fp_sep: \__fp_asin_isqrt:wn - \__fp_ep_mul:wwwwn #4,#5; + \__fp_ep_mul:wwwwn #4,#5\__fp_sep: \__fp_ep_to_ep:wwN \__fp_fixed_continue:wn { #2 \__fp_atan_test_o:NwwNwwN #3 } - 0 1,{1000}{0000}{0000}{0000}{0000}{0000}; #1 + 0 1,{1000}{0000}{0000}{0000}{0000}{0000}\__fp_sep: #1 } -\cs_new:Npn \__fp_asin_isqrt:wn #1; +\cs_new:Npn \__fp_asin_isqrt:wn #1\__fp_sep: { - \exp_after:wN \__fp_fixed_sub:wwn \c__fp_one_fixed_tl #1; + \exp_after:wN \__fp_fixed_sub:wwn \c__fp_one_fixed_tl #1\__fp_sep: { - \__fp_fixed_add_one:wN #1; + \__fp_fixed_add_one:wN #1\__fp_sep: \__fp_fixed_continue:wn { \__fp_ep_mul:wwwwn 0, } 0, } \__fp_ep_isqrt:wwn } -\cs_new:Npn \__fp_acsc_o:w #1 \s__fp \__fp_chk:w #2#3#4; @ +\cs_new:Npn \__fp_acsc_o:w #1 \s__fp \__fp_chk:w #2#3#4\__fp_sep: @ { \if_case:w \if_meaning:w 2 #2 #3 \fi: #2 \exp_stop_f: \__fp_case_use:nw @@ -20940,9 +21078,9 @@ Type H <return> for immediate help}\def~{\errmessage{% \or: \__fp_case_return_same_o:w \else: \__fp_case_return_o:Nw \c_minus_zero_fp \fi: - \s__fp \__fp_chk:w #2 #3 #4; + \s__fp \__fp_chk:w #2 #3 #4\__fp_sep: } -\cs_new:Npn \__fp_asec_o:w #1 \s__fp \__fp_chk:w #2#3; @ +\cs_new:Npn \__fp_asec_o:w #1 \s__fp \__fp_chk:w #2#3\__fp_sep: @ { \if_case:w #2 \exp_stop_f: \__fp_case_use:nw @@ -20956,24 +21094,24 @@ Type H <return> for immediate help}\def~{\errmessage{% \or: \__fp_case_use:nw { \__fp_atan_inf_o:NNNw #1 0 4 } \else: \__fp_case_return_same_o:w \fi: - \s__fp \__fp_chk:w #2 #3; + \s__fp \__fp_chk:w #2 #3\__fp_sep: } -\cs_new:Npn \__fp_acsc_normal_o:NfwNnw #1#2#3 \s__fp \__fp_chk:w 1#4#5#6; +\cs_new:Npn \__fp_acsc_normal_o:NfwNnw #1#2#3 \s__fp \__fp_chk:w 1#4#5#6\__fp_sep: { \int_compare:nNnTF {#5} < 1 { \__fp_invalid_operation_o:fw {#2} - \s__fp \__fp_chk:w 1#4{#5}#6; + \s__fp \__fp_chk:w 1#4{#5}#6\__fp_sep: } { \__fp_ep_div:wwwwn - 1,{1000}{0000}{0000}{0000}{0000}{0000}; - #5,#6{0000}{0000}; + 1,{1000}{0000}{0000}{0000}{0000}{0000}\__fp_sep: + #5,#6{0000}{0000}\__fp_sep: { \__fp_asin_auxi_o:NnNww #1 {#3} #4 } } } %% File: l3fp-convert.dtx -\cs_new:Npn \__fp_tuple_convert:Nw #1 \s__fp_tuple \__fp_tuple_chk:w #2 ; +\cs_new:Npn \__fp_tuple_convert:Nw #1 \s__fp_tuple \__fp_tuple_chk:w #2 \__fp_sep: { \int_case:nnF { \__fp_array_count:n {#2} } { @@ -20982,26 +21120,29 @@ Type H <return> for immediate help}\def~{\errmessage{% } { \__fp_tuple_convert_loop:nNw { } #1 - #2 { ? \__fp_tuple_convert_end:w } ; + #2 { ? \__fp_tuple_convert_end:w } \__fp_sep: @ { \use_none:nn } } } -\cs_new:Npn \__fp_tuple_convert_loop:nNw #1#2#3#4; #5 @ #6 +\cs_new:Npn \__fp_tuple_convert_loop:nNw #1#2#3#4\__fp_sep: #5 @ #6 { \use_none:n #3 - \exp_args:Nf \__fp_tuple_convert_loop:nNw { #2 #3#4 ; } #2 #5 + \exp_args:Nf \__fp_tuple_convert_loop:nNw { #2 #3#4 \__fp_sep: } #2 #5 @ { #6 , ~ #1 } } \cs_new:Npn \__fp_tuple_convert_end:w #1 @ #2 { \exp_after:wN ( \exp:w \exp_end_continue_f:w #2 ) } -\cs_new:Npn \__fp_trim_zeros:w #1 ; +\cs_new:Npn \__fp_trim_zeros:w #1 \__fp_sep: { - \__fp_trim_zeros_loop:w #1 - ; \__fp_trim_zeros_loop:w 0; \__fp_trim_zeros_dot:w .; \s__fp_stop + \__fp_trim_zeros_loop:w #1 \__fp_sep: + \__fp_trim_zeros_loop:w 0\__fp_sep: + \__fp_trim_zeros_dot:w .\__fp_sep: + \s__fp_stop } -\cs_new:Npn \__fp_trim_zeros_loop:w #1 0; #2 { #2 #1 ; #2 } -\cs_new:Npn \__fp_trim_zeros_dot:w #1 .; { \__fp_trim_zeros_end:w #1 ; } -\cs_new:Npn \__fp_trim_zeros_end:w #1 ; #2 \s__fp_stop { #1 } +\cs_new:Npn \__fp_trim_zeros_loop:w #1 0\__fp_sep: #2 { #2 #1 \__fp_sep: #2 } +\cs_new:Npn \__fp_trim_zeros_dot:w #1 .\__fp_sep: + { \__fp_trim_zeros_end:w #1 \__fp_sep: } +\cs_new:Npn \__fp_trim_zeros_end:w #1 \__fp_sep: #2 \s__fp_stop { #1 } \cs_new:Npn \fp_to_scientific:N #1 { \exp_after:wN \__fp_to_scientific_dispatch:w #1 } \cs_generate_variant:Nn \fp_to_scientific:N { c } @@ -21016,9 +21157,9 @@ Type H <return> for immediate help}\def~{\errmessage{% #1 \__fp_to_scientific:w \__fp_to_scientific_recover:w #1 } -\cs_new:Npn \__fp_to_scientific_recover:w #1 #2 ; +\cs_new:Npn \__fp_to_scientific_recover:w #1 #2 \__fp_sep: { - \__fp_error:nffn { unknown-type } { \tl_to_str:n { #2 ; } } { } { } + \__fp_error:nffn { unknown-type } { \tl_to_str:n { #2 \__fp_sep: } } { } { } nan } \cs_new:Npn \__fp_tuple_to_scientific:w @@ -21047,14 +21188,14 @@ Type H <return> for immediate help}\def~{\errmessage{% \s__fp \__fp_chk:w #1 #2 } \cs_new:Npn \__fp_to_scientific_normal:wnnnnn - \s__fp \__fp_chk:w 1 #1 #2 #3#4#5#6 ; + \s__fp \__fp_chk:w 1 #1 #2 #3#4#5#6 \__fp_sep: { \exp_after:wN \__fp_to_scientific_normal:wNw \exp_after:wN e \int_value:w \__fp_int_eval:w #2 - 1 - ; #3 #4 #5 #6 ; + \__fp_sep: #3 #4 #5 #6 \__fp_sep: } -\cs_new:Npn \__fp_to_scientific_normal:wNw #1 ; #2#3; +\cs_new:Npn \__fp_to_scientific_normal:wNw #1 \__fp_sep: #2#3\__fp_sep: { #2.#3 #1 } \cs_new:Npn \fp_to_decimal:N #1 { \exp_after:wN \__fp_to_decimal_dispatch:w #1 } @@ -21070,9 +21211,9 @@ Type H <return> for immediate help}\def~{\errmessage{% #1 \__fp_to_decimal:w \__fp_to_decimal_recover:w #1 } -\cs_new:Npn \__fp_to_decimal_recover:w #1 #2 ; +\cs_new:Npn \__fp_to_decimal_recover:w #1 #2 \__fp_sep: { - \__fp_error:nffn { unknown-type } { \tl_to_str:n { #2 ; } } { } { } + \__fp_error:nffn { unknown-type } { \tl_to_str:n { #2 \__fp_sep: } } { } { } nan } \cs_new:Npn \__fp_tuple_to_decimal:w @@ -21101,7 +21242,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \s__fp \__fp_chk:w #1 #2 } \cs_new:Npn \__fp_to_decimal_normal:wnnnnn - \s__fp \__fp_chk:w 1 #1 #2 #3#4#5#6 ; + \s__fp \__fp_chk:w 1 #1 #2 #3#4#5#6 \__fp_sep: { \int_compare:nNnTF {#2} > 0 { @@ -21113,7 +21254,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \exp_after:wN \exp_after:wN \exp_after:wN \__fp_to_decimal_huge:wnnnn - \prg_replicate:nn { #2 - \c__fp_prec_int } { 0 } ; + \prg_replicate:nn { #2 - \c__fp_prec_int } { 0 } \__fp_sep: } {#3} {#4} {#5} {#6} } @@ -21122,19 +21263,19 @@ Type H <return> for immediate help}\def~{\errmessage{% \exp_after:wN 0 \exp_after:wN . \exp:w \exp_end_continue_f:w \prg_replicate:nn { - #2 } { 0 } - #3#4#5#6 ; + #3#4#5#6 \__fp_sep: } } -\cs_new:Npn \__fp_to_decimal_large:Nnnw #1#2#3#4; +\cs_new:Npn \__fp_to_decimal_large:Nnnw #1#2#3#4\__fp_sep: { \exp_after:wN \__fp_trim_zeros:w \int_value:w \if_int_compare:w #2 > \c_zero_int #2 \fi: \exp_stop_f: - #3.#4 ; + #3.#4 \__fp_sep: } -\cs_new:Npn \__fp_to_decimal_huge:wnnnn #1; #2#3#4#5 { #2#3#4#5 #1 } +\cs_new:Npn \__fp_to_decimal_huge:wnnnn #1\__fp_sep: #2#3#4#5 { #2#3#4#5 #1 } \cs_new:Npn \fp_to_tl:N #1 { \exp_after:wN \__fp_to_tl_dispatch:w #1 } \cs_generate_variant:Nn \fp_to_tl:N { c } \cs_new:Npn \fp_to_tl:n @@ -21144,9 +21285,9 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new:Npn \__fp_to_tl_dispatch:w #1 { \__fp_change_func_type:NNN #1 \__fp_to_tl:w \__fp_to_tl_recover:w #1 } -\cs_new:Npn \__fp_to_tl_recover:w #1 #2 ; +\cs_new:Npn \__fp_to_tl_recover:w #1 #2 \__fp_sep: { - \__fp_error:nffn { unknown-type } { \tl_to_str:n { #2 ; } } { } { } + \__fp_error:nffn { unknown-type } { \tl_to_str:n { #2 \__fp_sep: } } { } { } nan } \cs_new:Npn \__fp_tuple_to_tl:w @@ -21170,15 +21311,15 @@ Type H <return> for immediate help}\def~{\errmessage{% \s__fp \__fp_chk:w 1 0 {#1} } \cs_new:Npn \__fp_to_tl_scientific:wnnnnn - \s__fp \__fp_chk:w 1 #1 #2 #3#4#5#6 ; + \s__fp \__fp_chk:w 1 #1 #2 #3#4#5#6 \__fp_sep: { \exp_after:wN \__fp_to_tl_scientific:wNw \exp_after:wN e \int_value:w \__fp_int_eval:w #2 - 1 - ; #3 #4 #5 #6 ; + \__fp_sep: #3 #4 #5 #6 \__fp_sep: } -\cs_new:Npn \__fp_to_tl_scientific:wNw #1 ; #2#3; - { \__fp_trim_zeros:w #2.#3 ; #1 } +\cs_new:Npn \__fp_to_tl_scientific:wNw #1 \__fp_sep: #2#3\__fp_sep: + { \__fp_trim_zeros:w #2.#3 \__fp_sep: #1 } \cs_new:Npn \fp_to_dim:N #1 { \exp_after:wN \__fp_to_dim_dispatch:w #1 } \cs_generate_variant:Nn \fp_to_dim:N { c } @@ -21187,14 +21328,14 @@ Type H <return> for immediate help}\def~{\errmessage{% \exp_after:wN \__fp_to_dim_dispatch:w \exp:w \exp_end_continue_f:w \__fp_parse:n } -\cs_new:Npn \__fp_to_dim_dispatch:w #1#2 ; +\cs_new:Npn \__fp_to_dim_dispatch:w #1#2 \__fp_sep: { \__fp_change_func_type:NNN #1 \__fp_to_dim:w \__fp_to_dim_recover:w - #1 #2 ; + #1 #2 \__fp_sep: } \cs_new:Npn \__fp_to_dim_recover:w #1 { \__fp_invalid_operation:nnw { 0pt } { fp_to_dim } } -\cs_new:Npn \__fp_to_dim:w #1 ; { \__fp_to_decimal:w #1 ; pt } +\cs_new:Npn \__fp_to_dim:w #1 \__fp_sep: { \__fp_to_decimal:w #1 \__fp_sep: pt } \cs_new:Npn \fp_to_int:N #1 { \exp_after:wN \__fp_to_int_dispatch:w #1 } \cs_generate_variant:Nn \fp_to_int:N { c } \cs_new:Npn \fp_to_int:n @@ -21202,24 +21343,24 @@ Type H <return> for immediate help}\def~{\errmessage{% \exp_after:wN \__fp_to_int_dispatch:w \exp:w \exp_end_continue_f:w \__fp_parse:n } -\cs_new:Npn \__fp_to_int_dispatch:w #1#2 ; +\cs_new:Npn \__fp_to_int_dispatch:w #1#2 \__fp_sep: { \__fp_change_func_type:NNN #1 \__fp_to_int:w \__fp_to_int_recover:w - #1 #2 ; + #1 #2 \__fp_sep: } \cs_new:Npn \__fp_to_int_recover:w #1 { \__fp_invalid_operation:nnw { 0 } { fp_to_int } } -\cs_new:Npn \__fp_to_int:w #1; +\cs_new:Npn \__fp_to_int:w #1\__fp_sep: { \exp_after:wN \__fp_to_decimal:w \exp:w \exp_end_continue_f:w - \__fp_round:Nwn \__fp_round_to_nearest:NNN #1; { 0 } + \__fp_round:Nwn \__fp_round_to_nearest:NNN #1\__fp_sep: { 0 } } \cs_new:Npn \dim_to_fp:n #1 { \exp_after:wN \__fp_from_dim_test:ww \exp_after:wN 0 \exp_after:wN , - \int_value:w \tex_glueexpr:D #1 ; + \int_value:w \tex_glueexpr:D #1 \__fp_sep: } \cs_new:Npn \__fp_from_dim_test:ww #1, #2 { @@ -21235,18 +21376,18 @@ Type H <return> for immediate help}\def~{\errmessage{% \fi: \fi: } -\cs_new:Npn \__fp_from_dim:wNw #1,#2#3; +\cs_new:Npn \__fp_from_dim:wNw #1,#2#3\__fp_sep: { - \__fp_pack_twice_four:wNNNNNNNN \__fp_from_dim:wNNnnnnnn ; - #3 000 0000 00 {10}987654321; #2 {#1} + \__fp_pack_twice_four:wNNNNNNNN \__fp_from_dim:wNNnnnnnn \__fp_sep: + #3 000 0000 00 {10}987654321\__fp_sep: #2 {#1} } -\cs_new:Npn \__fp_from_dim:wNNnnnnnn #1; #2#3#4#5#6#7#8#9 - { \__fp_from_dim:wnnnnwNn #1 {#2#300} {0000} ; } -\cs_new:Npn \__fp_from_dim:wnnnnwNn #1; #2#3#4#5#6; #7#8 +\cs_new:Npn \__fp_from_dim:wNNnnnnnn #1\__fp_sep: #2#3#4#5#6#7#8#9 + { \__fp_from_dim:wnnnnwNn #1 {#2#300} {0000} \__fp_sep: } +\cs_new:Npn \__fp_from_dim:wnnnnwNn #1\__fp_sep: #2#3#4#5#6\__fp_sep: #7#8 { \__fp_mul_npos_o:Nww #7 - \s__fp \__fp_chk:w 1 #7 {#5} #1 ; - \s__fp \__fp_chk:w 1 0 {#8} {1525} {8789} {0625} {0000} ; + \s__fp \__fp_chk:w 1 #7 {#5} #1 \__fp_sep: + \s__fp \__fp_chk:w 1 0 {#8} {1525} {8789} {0625} {0000} \__fp_sep: \prg_do_nothing: } \cs_new_eq:NN \fp_use:N \fp_to_decimal:N @@ -21266,16 +21407,16 @@ Type H <return> for immediate help}\def~{\errmessage{% { \exp_last_unbraced:Ne \use_ii:nn { - \__fp_array_to_clist_loop:Nw #1 { ? \prg_break: } ; + \__fp_array_to_clist_loop:Nw #1 { ? \prg_break: } \__fp_sep: \prg_break_point: } } } -\cs_new:Npn \__fp_array_to_clist_loop:Nw #1#2; +\cs_new:Npn \__fp_array_to_clist_loop:Nw #1#2\__fp_sep: { \use_none:n #1 , ~ - \exp_not:f { \__fp_to_tl_dispatch:w #1 #2 ; } + \exp_not:f { \__fp_to_tl_dispatch:w #1 #2 \__fp_sep: } \__fp_array_to_clist_loop:Nw } %% File: l3fp-random.dtx @@ -21290,7 +21431,7 @@ Type H <return> for immediate help}\def~{\errmessage{% + \tex_uniformdeviate:D #1 + 8192 ) / 16384 } \cs_new:Npn \__fp_rand_myriads:n #1 - { \__fp_rand_myriads_loop:w #1 \prg_break: X \prg_break_point: ; } + { \__fp_rand_myriads_loop:w #1 \prg_break: X \prg_break_point: \__fp_sep: } \cs_new:Npn \__fp_rand_myriads_loop:w #1 X { #1 @@ -21299,14 +21440,14 @@ Type H <return> for immediate help}\def~{\errmessage{% \__kernel_randint:n { 10000 } \__fp_rand_myriads_loop:w } -\cs_new:Npn \__fp_rand_myriads_get:w 1 #1 ; { ; {#1} } +\cs_new:Npn \__fp_rand_myriads_get:w 1 #1 \__fp_sep: { \__fp_sep: {#1} } \cs_new:Npn \__fp_rand_o:Nw ? #1 @ { \tl_if_empty:nTF {#1} { \exp_after:wN \__fp_rand_o:w \exp:w \exp_end_continue_f:w - \__fp_rand_myriads:n { XXXX } { 0000 } { 0000 } ; 0 + \__fp_rand_myriads:n { XXXX } { 0000 } { 0000 } \__fp_sep: 0 } { \msg_expandable_error:nnnnn @@ -21314,7 +21455,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \exp_after:wN \c_nan_fp } } -\cs_new:Npn \__fp_rand_o:w ; +\cs_new:Npn \__fp_rand_o:w \__fp_sep: { \exp_after:wN \__fp_sanitize:Nw \exp_after:wN 0 @@ -21328,41 +21469,41 @@ Type H <return> for immediate help}\def~{\errmessage{% { \__fp_randint_default:w \__fp_randint_o:w } } \cs_new:Npn \__fp_randint_default:w #1 { \exp_after:wN #1 \c_one_fp } -\cs_new:Npn \__fp_randint_badarg:w \s__fp \__fp_chk:w #1#2#3; +\cs_new:Npn \__fp_randint_badarg:w \s__fp \__fp_chk:w #1#2#3\__fp_sep: { - \__fp_int:wTF \s__fp \__fp_chk:w #1#2#3; + \__fp_int:wTF \s__fp \__fp_chk:w #1#2#3\__fp_sep: { \if_meaning:w 1 #1 \if_int_compare:w - \__fp_use_i_until_s:nw #3 ; > \c__fp_prec_int + \__fp_use_i_until_s:nw #3 \__fp_sep: > \c__fp_prec_int \c_one_int \fi: \fi: } { \c_one_int } } -\cs_new:Npn \__fp_randint_o:w #1; #2; @ +\cs_new:Npn \__fp_randint_o:w #1\__fp_sep: #2\__fp_sep: @ { \if_case:w - \__fp_randint_badarg:w #1; - \__fp_randint_badarg:w #2; - \if:w 1 \__fp_compare_back:ww #2; #1; \c_one_int \fi: + \__fp_randint_badarg:w #1\__fp_sep: + \__fp_randint_badarg:w #2\__fp_sep: + \if:w 1 \__fp_compare_back:ww #2\__fp_sep: #1\__fp_sep: \c_one_int \fi: \c_zero_int - \__fp_randint_auxi_o:ww #1; #2; + \__fp_randint_auxi_o:ww #1\__fp_sep: #2\__fp_sep: \or: \__fp_invalid_operation_tl_o:ff - { randint } { \__fp_array_to_clist:n { #1; #2; } } + { randint } { \__fp_array_to_clist:n { #1\__fp_sep: #2\__fp_sep: } } \exp:w \fi: \exp_after:wN \exp_end: } -\cs_new:Npn \__fp_randint_auxi_o:ww #1 ; #2 ; #3 \exp_end: +\cs_new:Npn \__fp_randint_auxi_o:ww #1 \__fp_sep: #2 \__fp_sep: #3 \exp_end: { \fi: - \__fp_randint_auxii:wn #2 ; - { \__fp_randint_auxii:wn #1 ; \__fp_randint_auxiii_o:ww } + \__fp_randint_auxii:wn #2 \__fp_sep: + { \__fp_randint_auxii:wn #1 \__fp_sep: \__fp_randint_auxiii_o:ww } } -\cs_new:Npn \__fp_randint_auxii:wn \s__fp \__fp_chk:w #1#2#3#4 ; +\cs_new:Npn \__fp_randint_auxii:wn \s__fp \__fp_chk:w #1#2#3#4 \__fp_sep: { \if_meaning:w 0 #1 \exp_after:wN \use_i:nn @@ -21373,7 +21514,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \exp_after:wN \__fp_ep_to_fixed:wwn \int_value:w \__fp_int_eval:w - #3 - \c__fp_prec_int , #4 {0000} {0000} ; + #3 - \c__fp_prec_int , #4 {0000} {0000} \__fp_sep: { \if_meaning:w 0 #2 \exp_after:wN \use_i:nnnn @@ -21384,22 +21525,22 @@ Type H <return> for immediate help}\def~{\errmessage{% \__fp_fixed_continue:wn } } -\cs_new:Npn \__fp_randint_auxiii_o:ww #1 ; #2 ; +\cs_new:Npn \__fp_randint_auxiii_o:ww #1 \__fp_sep: #2 \__fp_sep: { - \__fp_fixed_add:wwn #2 ; - {0000} {0000} {0000} {0001} {0000} {0000} ; - \__fp_fixed_sub:wwn #1 ; + \__fp_fixed_add:wwn #2 \__fp_sep: + {0000} {0000} {0000} {0001} {0000} {0000} \__fp_sep: + \__fp_fixed_sub:wwn #1 \__fp_sep: { \exp_after:wN \use_i:nn \exp_after:wN \__fp_fixed_mul_add:wwwn - \exp:w \exp_end_continue_f:w \__fp_rand_myriads:n { XXXXXX } ; + \exp:w \exp_end_continue_f:w \__fp_rand_myriads:n { XXXXXX } \__fp_sep: } - #1 ; + #1 \__fp_sep: \__fp_randint_auxiv_o:ww - #2 ; - \__fp_randint_auxv_o:w #1 ; @ + #2 \__fp_sep: + \__fp_randint_auxv_o:w #1 \__fp_sep: @ } -\cs_new:Npn \__fp_randint_auxiv_o:ww #1#2#3#4#5 ; #6#7#8#9 +\cs_new:Npn \__fp_randint_auxiv_o:ww #1#2#3#4#5 \__fp_sep: #6#7#8#9 { \if_int_compare:w \if_int_compare:w #1#2 > #6#7 \exp_stop_f: 1 \else: @@ -21409,7 +21550,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \fi: \__fp_randint_auxv_o:w {#1}{#2}{#3}{#4}#5 } -\cs_new:Npn \__fp_randint_auxv_o:w #1#2#3#4#5 ; #6 @ +\cs_new:Npn \__fp_randint_auxv_o:w #1#2#3#4#5 \__fp_sep: #6 @ { \exp_after:wN \__fp_sanitize:Nw \int_value:w @@ -21421,7 +21562,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \exp_after:wN \__fp_reverse_args:Nww \fi: \exp_after:wN \__fp_fixed_sub:wwn \c__fp_one_fixed_tl - {#1} {#2} {#3} {#4} {0000} {0000} ; + {#1} {#2} {#3} {#4} {0000} {0000} \__fp_sep: { \exp_after:wN \exp_stop_f: \int_value:w \__fp_int_eval:w \c__fp_prec_int @@ -21435,16 +21576,16 @@ Type H <return> for immediate help}\def~{\errmessage{% \int_eval:n { \exp_after:wN \__fp_randint:ww - \int_value:w \int_eval:n {#1} \exp_after:wN ; - \int_value:w \int_eval:n {#2} ; + \int_value:w \int_eval:n {#1} \exp_after:wN \__fp_sep: + \int_value:w \int_eval:n {#2} \__fp_sep: } } -\cs_new:Npn \__fp_randint:ww #1; #2; +\cs_new:Npn \__fp_randint:ww #1\__fp_sep: #2\__fp_sep: { \if_int_compare:w #1 > #2 \exp_stop_f: \msg_expandable_error:nnnn { kernel } { randint-backward-range } {#1} {#2} - \__fp_randint:ww #2; #1; + \__fp_randint:ww #2\__fp_sep: #1\__fp_sep: \else: \if_int_compare:w \__fp_int_eval:w #2 \if_int_compare:w #1 > \c_zero_int @@ -21468,46 +21609,49 @@ Type H <return> for immediate help}\def~{\errmessage{% \exp_after:wN \__fp_randint_wide_aux:w \int_value:w \exp_after:wN \__fp_randint_split_o:Nw - \tex_uniformdeviate:D 268435456 ; + \tex_uniformdeviate:D 268435456 \__fp_sep: \int_value:w \exp_after:wN \__fp_randint_split_o:Nw - \tex_uniformdeviate:D 268435456 ; + \tex_uniformdeviate:D 268435456 \__fp_sep: \int_value:w \exp_after:wN \__fp_randint_split_o:Nw \int_value:w \__fp_int_eval:w 131072 + \exp_after:wN \__fp_randint_split_o:Nw \int_value:w - \__kernel_int_add:nnn {#2} { -#1 } { -\c_max_int } ; + \__kernel_int_add:nnn {#2} { -#1 } { -\c_max_int } \__fp_sep: . } -\cs_new:Npn \__fp_randint_split_o:Nw #1#2 ; +\cs_new:Npn \__fp_randint_split_o:Nw #1#2 \__fp_sep: { \if_meaning:w 0 #1 - 0 \exp_after:wN ; \int_value:w 0 + 0 \exp_after:wN \__fp_sep: \int_value:w 0 \else: \exp_after:wN \__fp_randint_split_aux:w - \int_value:w \__fp_int_eval:w (#1#2 - 8192) / 16384 ; + \int_value:w \__fp_int_eval:w (#1#2 - 8192) / 16384 \__fp_sep: + #1#2 \fi: - \exp_after:wN ; + \exp_after:wN \__fp_sep: } -\cs_new:Npn \__fp_randint_split_aux:w #1 ; +\cs_new:Npn \__fp_randint_split_aux:w #1 \__fp_sep: { - #1 \exp_after:wN ; + #1 \exp_after:wN \__fp_sep: \int_value:w \__fp_int_eval:w - #1 * 16384 } -\cs_new:Npn \__fp_randint_wide_aux:w #1;#2; #3;#4; #5;#6;#7; . +\cs_new:Npn \__fp_randint_wide_aux:w + #1\__fp_sep:#2\__fp_sep: #3\__fp_sep:#4\__fp_sep: + #5\__fp_sep:#6\__fp_sep:#7\__fp_sep: . { \exp_after:wN \__fp_randint_wide_auxii:w \int_value:w \__fp_int_eval:w #5 * #3 + #6 * #1 + (#5 * #4 + #6 * #3 + #7 * #1 + (#5 * #2 + #7 * #3 + (16384 * #6 + #7) * (16384 * #4 + #2) / 268435456) / 16384 - ) / 16384 \exp_after:wN ; - \int_value:w \__fp_int_eval:w (#5 + #6) * 16384 + #7 ; - #1 ; #5 ; + ) / 16384 \exp_after:wN \__fp_sep: + \int_value:w \__fp_int_eval:w (#5 + #6) * 16384 + #7 \__fp_sep: + #1 \__fp_sep: #5 \__fp_sep: } -\cs_new:Npn \__fp_randint_wide_auxii:w #1; #2; #3; #4; +\cs_new:Npn \__fp_randint_wide_auxii:w + #1\__fp_sep: #2\__fp_sep: #3\__fp_sep: #4\__fp_sep: { \if_int_odd:w 0 \if_int_compare:w #1 = #2 \else: \exp_stop_f: \fi: @@ -21534,7 +21678,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \if_int_compare:w #1 < \c_one_int \msg_expandable_error:nnnn { kernel } { randint-backward-range } { 1 } {#1} - \__fp_randint:ww #1; 1; + \__fp_randint:ww #1\__fp_sep: 1\__fp_sep: \else: \if_int_compare:w #1 > \c__kernel_randint_max_int \__kernel_randint:nn { 1 } {#1} @@ -21582,7 +21726,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \exp_last_unbraced:Nf \__fp_types_binary_auxi:Nww { \__fp_types_cs_to_op:N #1 } } -\cs_new:Npn \__fp_types_binary_auxi:Nww #1#2#3; #4#5; @ +\cs_new:Npn \__fp_types_binary_auxi:Nww #1#2#3\__fp_sep: #4#5\__fp_sep: @ { \exp_after:wN \__fp_types_binary_auxii:NNww \cs:w @@ -21592,7 +21736,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \__fp_type_from_scan:N #4 _o:ww \cs_end: - #1 #2#3; #4#5; + #1 #2#3\__fp_sep: #4#5\__fp_sep: } \cs_new:Npn \__fp_types_binary_auxii:NNww #1#2 { @@ -21603,12 +21747,12 @@ Type H <return> for immediate help}\def~{\errmessage{% %% File l3fp-symbolic.dtx (C) Copyright 2012-2015,2017,2018,2020,2021,2023 The LaTeX Project \fp_new:N \l__fp_symbolic_fp \scan_new:N \s__fp_symbolic -\cs_new_protected:Npn \__fp_symbolic_chk:w #1,#2#3; +\cs_new_protected:Npn \__fp_symbolic_chk:w #1,#2#3\__fp_sep: { \msg_error:nne { fp } { misused-fp } { \__fp_to_tl_dispatch:w - \s__fp_symbolic \__fp_symbolic_chk:w #1,{#2}; + \s__fp_symbolic \__fp_symbolic_chk:w #1,{#2}\__fp_sep: } } \cs_new:Npn \__fp_if_has_symbolic:nTF #1 @@ -21621,7 +21765,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new:Npn \__fp_if_has_symbolic_aux:w #1 \s__fp_symbolic #2 \s__fp_mark #3#4 \s__fp_stop { #3 } \cs_new:Npn \__fp_exp_after_symbolic_f:nw - #1 \s__fp_symbolic \__fp_symbolic_chk:w #2, #3#4; + #1 \s__fp_symbolic \__fp_symbolic_chk:w #2, #3#4\__fp_sep: { \exp_after:wN \__fp_exp_after_symbolic_aux:w \exp:w @@ -21633,13 +21777,13 @@ Type H <return> for immediate help}\def~{\errmessage{% \__fp_exp_after_array_f:w #3 \s__fp_expr_stop \exp_after:wN } - \exp_after:wN ; + \exp_after:wN \__fp_sep: \exp:w \exp_end_continue_f:w #1 } -\cs_new:Npn \__fp_exp_after_symbolic_aux:w #1, #2; +\cs_new:Npn \__fp_exp_after_symbolic_aux:w #1, #2\__fp_sep: { \__fp_if_has_symbolic:nTF {#2} - { \s__fp_symbolic \__fp_symbolic_chk:w #1, {#2} ; } + { \s__fp_symbolic \__fp_symbolic_chk:w #1, {#2} \__fp_sep: } { #1 #2 @ \prg_do_nothing: } } \cs_new:Npn \__fp_exp_after_symbolic_loop:N #1 @@ -21649,11 +21793,11 @@ Type H <return> for immediate help}\def~{\errmessage{% \exp:w \__fp_exp_after_symbolic_loop:N } -\cs_new:Npn \__fp_symbolic_binary_o:Nww #1 #2; #3; +\cs_new:Npn \__fp_symbolic_binary_o:Nww #1 #2\__fp_sep: #3\__fp_sep: { \__fp_exp_after_symbolic_f:nw { \exp_after:wN \exp_stop_f: } \s__fp_symbolic \__fp_symbolic_chk:w - \__fp_types_binary:Nww #1 , { #2; #3; } ; + \__fp_types_binary:Nww #1 , { #2\__fp_sep: #3\__fp_sep: } \__fp_sep: } \cs_set_protected:Npn \__fp_tmp:w #1#2 { @@ -21669,11 +21813,11 @@ Type H <return> for immediate help}\def~{\errmessage{% } \tl_map_inline:nn { + - * / ^ & | } { \exp_args:Nc \__fp_tmp:w { __fp_#1_o:ww } {#1} } -\cs_new:Npn \__fp_symbolic_unary_o:NNw #1#2#3; @ +\cs_new:Npn \__fp_symbolic_unary_o:NNw #1#2#3\__fp_sep: @ { \__fp_exp_after_symbolic_f:nw { \exp_after:wN \exp_stop_f: } \s__fp_symbolic \__fp_symbolic_chk:w - \__fp_types_unary:NNw #1#2 , { #3; } ; + \__fp_types_unary:NNw #1#2 , { #3\__fp_sep: } \__fp_sep: } \tl_map_inline:nn { @@ -21699,11 +21843,11 @@ Type H <return> for immediate help}\def~{\errmessage{% \__fp_tmp:w { decimal } { 0 } \__fp_to_decimal_dispatch:w \__fp_tmp:w { int } { 0 } \__fp_to_int_dispatch:w \__fp_tmp:w { scientific } { nan } \__fp_to_scientific_dispatch:w -\cs_new:Npn \__fp_symbolic_convert:wnnN #1#2; #3#4#5 +\cs_new:Npn \__fp_symbolic_convert:wnnN #1#2\__fp_sep: #3#4#5 { \str_if_eq:nnTF {#1} { \s__fp_symbolic } - { \__fp_invalid_operation:nnw {#3} {#4} #1#2; } - { #5 #1#2; } + { \__fp_invalid_operation:nnw {#3} {#4} #1#2\__fp_sep: } + { #5 #1#2\__fp_sep: } } \cs_new:Npn \__fp_symbolic_cs_arg_to_fn:NN #1 { @@ -21724,7 +21868,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } } \cs_new:Npn \__fp_symbolic_to_tl:w - \s__fp_symbolic \__fp_symbolic_chk:w #1#2, #3#4; + \s__fp_symbolic \__fp_symbolic_chk:w #1#2, #3#4\__fp_sep: { \str_case:nnTF {#1} { @@ -21743,13 +21887,13 @@ Type H <return> for immediate help}\def~{\errmessage{% ( \__fp_to_tl_dispatch:w #3 ) } } -\cs_new:Npn \__fp_symbolic_binary_to_tl:Nww #1, #2; #3; @ +\cs_new:Npn \__fp_symbolic_binary_to_tl:Nww #1, #2\__fp_sep: #3\__fp_sep: @ { \use:e { - ( \__fp_to_tl_dispatch:w #2; ) + ( \__fp_to_tl_dispatch:w #2\__fp_sep: ) \__fp_types_cs_to_op:N #1 - ( \__fp_to_tl_dispatch:w #3; ) + ( \__fp_to_tl_dispatch:w #3\__fp_sep: ) } } \cs_new:Npn \__fp_symbolic_function_to_tl:Nw #1, #2@ @@ -21797,7 +21941,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \token_if_eq_meaning:NNTF #2 \prg_do_nothing: { \s__fp_symbolic \__fp_symbolic_chk:w - \__fp_variable_o:w #1 , { } ; + \__fp_variable_o:w #1 , { } \__fp_sep: } { \exp_after:wN \s__fp_symbolic @@ -21807,7 +21951,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \__fp_exp_after_symbolic_loop:N #1 { , \exp:w \use_none:nn } \exp_after:wN \exp_end: - \exp_after:wN { \exp_after:wN } \exp_after:wN ; + \exp_after:wN { \exp_after:wN } \exp_after:wN \__fp_sep: #2 } } @@ -21818,7 +21962,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \__fp_exp_after_symbolic_f:nw { \__fp_parse_infix:NN } \s__fp_symbolic \__fp_symbolic_chk:w - \__fp_variable_o:w #2 , { } ; + \__fp_variable_o:w #2 , { } \__fp_sep: } \exp_args:NNc \__fp_variable_set_parsing_aux:NNn #1 { __fp_parse_word_#2:N } {#2} @@ -21983,7 +22127,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \__fp_exp_after_array_f:w #2 \s__fp_expr_stop \exp_after:wN } - \exp_after:wN ; + \exp_after:wN \__fp_sep: } } \int_new:N \l__fp_function_arg_int @@ -22015,7 +22159,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \exp_not:N \__fp_symbolic_chk:w \exp_not:N \__fp_function_arg_o:w \int_use:N \l__fp_function_arg_int - ########1 , { } ; + ########1 , { } \__fp_sep: } } \cs_set:Npn \__fp_function_arg_o:w ##1 @ @@ -22027,7 +22171,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \__fp_exp_after_symbolic_loop:N ##1 { , \tex_romannumeral:D \use_none:nn } \exp_after:wN \c_zero_int - \exp_after:wN { \exp_after:wN } \exp_after:wN ; + \exp_after:wN { \exp_after:wN } \exp_after:wN \__fp_sep: } \fp_set:Nn \l__fp_symbolic_fp {#4} \use:e @@ -22064,9 +22208,9 @@ Type H <return> for immediate help}\def~{\errmessage{% #2 } \cs_new:Npn \__fp_function_arg_few:w #1 @ { \exp_after:wN \c_nan_fp } -\cs_new:Npn \__fp_function_arg_get:w #1#2#3; #4 @ +\cs_new:Npn \__fp_function_arg_get:w #1#2#3\__fp_sep: #4 @ { - \__fp_exp_after_array_f:w #3; \s__fp_expr_stop + \__fp_exp_after_array_f:w #3\__fp_sep: \s__fp_expr_stop \exp_after:wN \exp_stop_f: } \cs_new_protected:Npn \fp_clear_function:n #1 @@ -22141,25 +22285,25 @@ Type H <return> for immediate help}\def~{\errmessage{% \exp_after:wN \__fp_array_gset:NNNNww \exp_after:wN #1 \exp_after:wN #1 - \int_value:w \int_eval:n {#2} \exp_after:wN ; + \int_value:w \int_eval:n {#2} \exp_after:wN \__fp_sep: \exp:w \exp_end_continue_f:w \__fp_parse:n {#3} } \cs_generate_variant:Nn \fparray_gset:Nnn { c } -\cs_new_protected:Npn \__fp_array_gset:NNNNww #1#2#3#4#5 ; #6 ; +\cs_new_protected:Npn \__fp_array_gset:NNNNww #1#2#3#4#5 \__fp_sep: #6 \__fp_sep: { \__fp_array_bounds:NNnTF \msg_error:nneee #4 {#5} { \exp_after:wN \__fp_change_func_type:NNN - \__fp_use_i_until_s:nw #6 ; + \__fp_use_i_until_s:nw #6 \__fp_sep: \__fp_array_gset:w \__fp_array_gset_recover:Nw - #6 ; {#5} #1 #2 #3 + #6 \__fp_sep: {#5} #1 #2 #3 } { } } -\cs_new_protected:Npn \__fp_array_gset_recover:Nw #1#2 ; +\cs_new_protected:Npn \__fp_array_gset_recover:Nw #1#2 \__fp_sep: { - \__fp_error:nffn { unknown-type } { \tl_to_str:n { #2 ; } } { } { } + \__fp_error:nffn { unknown-type } { \tl_to_str:n { #2 \__fp_sep: } } { } { } \exp_after:wN #1 \c_nan_fp } \cs_new_protected:Npn \__fp_array_gset:w \s__fp \__fp_chk:w #1#2 @@ -22173,7 +22317,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \s__fp \__fp_chk:w #1 #2 } \cs_new_protected:Npn \__fp_array_gset_normal:w - \s__fp \__fp_chk:w 1 #1 #2 #3#4#5 ; #6#7#8#9 + \s__fp \__fp_chk:w 1 #1 #2 #3#4#5 \__fp_sep: #6#7#8#9 { \__kernel_intarray_gset:Nnn #7 {#6} {#2} \__kernel_intarray_gset:Nnn #8 {#6} @@ -22203,7 +22347,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \exp_after:wN \__fp_array_item:NwN \exp_after:wN #1 - \int_value:w \int_eval:n {#2} ; + \int_value:w \int_eval:n {#2} \__fp_sep: \__fp_to_decimal:w } \cs_generate_variant:Nn \fparray_item:Nn { c } @@ -22211,11 +22355,11 @@ Type H <return> for immediate help}\def~{\errmessage{% { \exp_after:wN \__fp_array_item:NwN \exp_after:wN #1 - \int_value:w \int_eval:n {#2} ; + \int_value:w \int_eval:n {#2} \__fp_sep: \__fp_to_tl:w } \cs_generate_variant:Nn \fparray_item_to_tl:Nn { c } -\cs_new:Npn \__fp_array_item:NwN #1#2 ; #3 +\cs_new:Npn \__fp_array_item:NwN #1#2 \__fp_sep: #3 { \__fp_array_bounds:NNnTF \msg_expandable_error:nnfff #1 {#2} { \exp_after:wN \__fp_array_item:NNNnN #1 {#2} #3 } @@ -22224,22 +22368,22 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new:Npn \__fp_array_item:NNNnN #1#2#3#4 { \exp_after:wN \__fp_array_item:N - \int_value:w \__kernel_intarray_item:Nn #2 {#4} \exp_after:wN ; - \int_value:w \__kernel_intarray_item:Nn #3 {#4} \exp_after:wN ; - \int_value:w \__kernel_intarray_item:Nn #1 {#4} ; + \int_value:w \__kernel_intarray_item:Nn #2 {#4} \exp_after:wN \__fp_sep: + \int_value:w \__kernel_intarray_item:Nn #3 {#4} \exp_after:wN \__fp_sep: + \int_value:w \__kernel_intarray_item:Nn #1 {#4} \__fp_sep: } \cs_new:Npn \__fp_array_item:N #1 { \if_meaning:w 0 #1 \exp_after:wN \__fp_array_item_special:w \fi: \__fp_array_item:w #1 } -\cs_new:Npn \__fp_array_item:w #1 #2#3#4#5 #6 ; 1 #7 ; +\cs_new:Npn \__fp_array_item:w #1 #2#3#4#5 #6 \__fp_sep: 1 #7 \__fp_sep: { \exp_after:wN \__fp_array_item_normal:w \int_value:w \if_meaning:w #1 1 0 \else: 2 \fi: \exp_stop_f: - #7 ; {#2#3#4#5} {#6} ; + #7 \__fp_sep: {#2#3#4#5} {#6} \__fp_sep: } -\cs_new:Npn \__fp_array_item_special:w #1 ; #2 ; #3 ; #4 +\cs_new:Npn \__fp_array_item_special:w #1 \__fp_sep: #2 \__fp_sep: #3 \__fp_sep: #4 { \exp_after:wN #4 \exp:w \exp_end_continue_f:w @@ -22251,8 +22395,9 @@ Type H <return> for immediate help}\def~{\errmessage{% \else: \exp_after:wN \c_minus_inf_fp \fi: } -\cs_new:Npn \__fp_array_item_normal:w #1 #2#3#4#5 #6 ; #7 ; #8 ; #9 - { #9 \s__fp \__fp_chk:w 1 #1 {#8} #7 {#2#3#4#5} {#6} ; } +\cs_new:Npn \__fp_array_item_normal:w + #1 #2#3#4#5 #6 \__fp_sep: #7 \__fp_sep: #8 \__fp_sep: #9 + { #9 \s__fp \__fp_chk:w 1 #1 {#8} #7 {#2#3#4#5} {#6} \__fp_sep: } \prg_new_eq_conditional:NNn \fparray_if_exist:N \cs_if_exist:N { TF , T , F , p } \prg_new_eq_conditional:NNn \fparray_if_exist:c \cs_if_exist:c @@ -24995,27 +25140,30 @@ Type H <return> for immediate help}\def~{\errmessage{% \__tl_analysis_map:NwNw #1 } \cs_new_protected:Npn \tl_analysis_show:N - { \__tl_analysis_show:NNN \msg_show:nneeee \tl_show:N } + { \__tl_analysis_show:NNnnN \msg_show:nneeee \tl_show:N {} {} } \cs_new_protected:Npn \tl_analysis_log:N - { \__tl_analysis_show:NNN \msg_log:nneeee \tl_log:N } -\cs_new_protected:Npn \__tl_analysis_show:NNN #1#2#3 { - \tl_if_exist:NTF #3 + \__tl_analysis_show:NNnnN \msg_log:nneeee \tl_log:N + { \iow_newline: >~ . } { . } + } +\cs_new_protected:Npn \__tl_analysis_show:NNnnN #1#2#3#4#5 + { + \tl_if_exist:NTF #5 { - \exp_args:No \__tl_analysis:n {#3} + \exp_args:No \__tl_analysis:n {#5} #1 { tl } { show-analysis } - { \token_to_str:N #3 } { \__tl_analysis_show: } { } { } + { \token_to_str:N #5 } { \__tl_analysis_show: } {#3} {#4} } { #2 #3 } } \cs_new_protected:Npn \tl_analysis_show:n - { \__tl_analysis_show:Nn \msg_show:nneeee } + { \__tl_analysis_show:Nnnn \msg_show:nneeee {} {} } \cs_new_protected:Npn \tl_analysis_log:n - { \__tl_analysis_show:Nn \msg_log:nneeee } -\cs_new_protected:Npn \__tl_analysis_show:Nn #1#2 + { \__tl_analysis_show:Nnnn \msg_log:nneeee { \iow_newline: >~ . } { . } } +\cs_new_protected:Npn \__tl_analysis_show:Nnnn #1#2#3#4 { - \__tl_analysis:n {#2} - #1 { tl } { show-analysis } { } { \__tl_analysis_show: } { } { } + \__tl_analysis:n {#4} + #1 { tl } { show-analysis } { } { \__tl_analysis_show: } {#2} {#3} } \cs_new:Npn \__tl_analysis_show: { @@ -25348,8 +25496,8 @@ Type H <return> for immediate help}\def~{\errmessage{% { The~token~list~ \tl_if_empty:nF {#1} { #1 ~ } \tl_if_empty:nTF {#2} - { is~empty } - { contains~the~tokens: #2 } + { is~empty #3 } + { contains~the~tokens: #2 #4 } } %% File: l3regex.dtx \cs_new_eq:NN \__regex_int_eval:w \tex_numexpr:D diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex index e63ad6c9a29..355f6dc1bbe 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex +++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex @@ -6,7 +6,7 @@ %% %% expl3.dtx (with options: `generic,loader') %% -%% Copyright (C) 1990-2024 The LaTeX Project +%% Copyright (C) 1990-2025 The LaTeX Project %% %% It may be distributed and/or modified under the conditions of %% the LaTeX Project Public License (LPPL), either version 1.3c of @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: expl3.dtx -\def\ExplFileDate{2024-12-25}% +\def\ExplFileDate{2025-01-18}% \let\ExplLoaderFileDate\ExplFileDate \begingroup \catcode`\_=11 diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx b/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx index 29b9700c170..5e107c4ac95 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx +++ b/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx @@ -6,7 +6,7 @@ %% %% expl3.dtx (with options: `2ekernel,loader') %% -%% Copyright (C) 1990-2024 The LaTeX Project +%% Copyright (C) 1990-2025 The LaTeX Project %% %% It may be distributed and/or modified under the conditions of %% the LaTeX Project Public License (LPPL), either version 1.3c of @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: expl3.dtx -\def\ExplFileDate{2024-12-25}% +\def\ExplFileDate{2025-01-18}% \let\ExplLoaderFileDate\ExplFileDate \begingroup \catcode`\_=11 diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3.lua b/Master/texmf-dist/tex/latex/l3kernel/expl3.lua index f436dc4daf3..8478874bd2b 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/expl3.lua +++ b/Master/texmf-dist/tex/latex/l3kernel/expl3.lua @@ -11,7 +11,7 @@ -- l3intarray.dtx (with options: `package,lua') -- l3pdf.dtx (with options: `package,lua') -- --- Copyright (C) 1990-2024 The LaTeX Project +-- Copyright (C) 1990-2025 The LaTeX Project -- -- It may be distributed and/or modified under the conditions of -- the LaTeX Project Public License (LPPL), either version 1.3c of diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3.sty b/Master/texmf-dist/tex/latex/l3kernel/expl3.sty index 7f73b6bdd6f..114fe98424d 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/expl3.sty +++ b/Master/texmf-dist/tex/latex/l3kernel/expl3.sty @@ -6,7 +6,7 @@ %% %% expl3.dtx (with options: `package,loader') %% -%% Copyright (C) 1990-2024 The LaTeX Project +%% Copyright (C) 1990-2025 The LaTeX Project %% %% It may be distributed and/or modified under the conditions of %% the LaTeX Project Public License (LPPL), either version 1.3c of @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: expl3.dtx -\def\ExplFileDate{2024-12-25}% +\def\ExplFileDate{2025-01-18}% \let\ExplLoaderFileDate\ExplFileDate \ProvidesPackage{expl3} [% diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3debug.def b/Master/texmf-dist/tex/latex/l3kernel/l3debug.def index 7b5724918d0..4dd189fdef2 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3debug.def +++ b/Master/texmf-dist/tex/latex/l3kernel/l3debug.def @@ -6,7 +6,7 @@ %% %% l3debug.dtx (with options: `package') %% -%% Copyright (C) 1990-2024 The LaTeX Project +%% Copyright (C) 1990-2025 The LaTeX Project %% %% It may be distributed and/or modified under the conditions of %% the LaTeX Project Public License (LPPL), either version 1.3c of @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: l3debug.dtx -\ProvidesExplFile{l3debug.def}{2024-12-25}{}{L3 Debugging support} +\ProvidesExplFile{l3debug.def}{2025-01-18}{}{L3 Debugging support} \scan_new:N \s__debug_stop \cs_new:Npn \__debug_use_i_delimit_by_s_stop:nw #1 #2 \s__debug_stop {#1} \quark_new:N \q__debug_recursion_tail diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls b/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls index 0649af9fbbd..14e4c01f6ac 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls +++ b/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls @@ -6,7 +6,7 @@ %% %% l3doc.dtx (with options: `class') %% -%% Copyright (C) 1990-2024 The LaTeX Project +%% Copyright (C) 1990-2025 The LaTeX Project %% %% It may be distributed and/or modified under the conditions of %% the LaTeX Project Public License (LPPL), either version 1.3c of @@ -20,7 +20,7 @@ %% %% File: l3doc.dtx \RequirePackage{calc} -\ProvidesExplClass{l3doc}{2024-12-25}{} +\ProvidesExplClass{l3doc}{2025-01-18}{} {L3 Experimental documentation class} \clist_new:N \g_docinput_clist \seq_new:N \g_doc_functions_seq diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3docstrip.tex b/Master/texmf-dist/tex/latex/l3kernel/l3docstrip.tex index eda3985bd07..ab0a23bae62 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3docstrip.tex +++ b/Master/texmf-dist/tex/latex/l3kernel/l3docstrip.tex @@ -6,7 +6,7 @@ %% %% l3docstrip.dtx (with options: `program') %% -%% Copyright (C) 1990-2024 The LaTeX Project +%% Copyright (C) 1990-2025 The LaTeX Project %% %% It may be distributed and/or modified under the conditions of %% the LaTeX Project Public License (LPPL), either version 1.3c of diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88591.def b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88591.def index 485fa39a1df..334eb11de1c 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88591.def +++ b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88591.def @@ -6,7 +6,7 @@ %% %% l3str-convert.dtx (with options: `iso88591') %% -%% Copyright (C) 1990-2024 The LaTeX Project +%% Copyright (C) 1990-2025 The LaTeX Project %% %% It may be distributed and/or modified under the conditions of %% the LaTeX Project Public License (LPPL), either version 1.3c of diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885910.def b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885910.def index a7af4567560..e5efe83983e 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885910.def +++ b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885910.def @@ -6,7 +6,7 @@ %% %% l3str-convert.dtx (with options: `iso885910') %% -%% Copyright (C) 1990-2024 The LaTeX Project +%% Copyright (C) 1990-2025 The LaTeX Project %% %% It may be distributed and/or modified under the conditions of %% the LaTeX Project Public License (LPPL), either version 1.3c of diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885911.def b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885911.def index ec28015dd4c..4b1e383afdb 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885911.def +++ b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885911.def @@ -6,7 +6,7 @@ %% %% l3str-convert.dtx (with options: `iso885911') %% -%% Copyright (C) 1990-2024 The LaTeX Project +%% Copyright (C) 1990-2025 The LaTeX Project %% %% It may be distributed and/or modified under the conditions of %% the LaTeX Project Public License (LPPL), either version 1.3c of diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885913.def b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885913.def index b28db7deda2..9fdc01d2ab0 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885913.def +++ b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885913.def @@ -6,7 +6,7 @@ %% %% l3str-convert.dtx (with options: `iso885913') %% -%% Copyright (C) 1990-2024 The LaTeX Project +%% Copyright (C) 1990-2025 The LaTeX Project %% %% It may be distributed and/or modified under the conditions of %% the LaTeX Project Public License (LPPL), either version 1.3c of diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885914.def b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885914.def index a154a1c0cb5..35816cbc87c 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885914.def +++ b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885914.def @@ -6,7 +6,7 @@ %% %% l3str-convert.dtx (with options: `iso885914') %% -%% Copyright (C) 1990-2024 The LaTeX Project +%% Copyright (C) 1990-2025 The LaTeX Project %% %% It may be distributed and/or modified under the conditions of %% the LaTeX Project Public License (LPPL), either version 1.3c of diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885915.def b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885915.def index ca071e99247..f976fc6ab26 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885915.def +++ b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885915.def @@ -6,7 +6,7 @@ %% %% l3str-convert.dtx (with options: `iso885915') %% -%% Copyright (C) 1990-2024 The LaTeX Project +%% Copyright (C) 1990-2025 The LaTeX Project %% %% It may be distributed and/or modified under the conditions of %% the LaTeX Project Public License (LPPL), either version 1.3c of diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885916.def b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885916.def index 44d4a1ae608..273c55d245a 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885916.def +++ b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885916.def @@ -6,7 +6,7 @@ %% %% l3str-convert.dtx (with options: `iso885916') %% -%% Copyright (C) 1990-2024 The LaTeX Project +%% Copyright (C) 1990-2025 The LaTeX Project %% %% It may be distributed and/or modified under the conditions of %% the LaTeX Project Public License (LPPL), either version 1.3c of diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88592.def b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88592.def index d54a4820c7d..897c07532db 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88592.def +++ b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88592.def @@ -6,7 +6,7 @@ %% %% l3str-convert.dtx (with options: `iso88592') %% -%% Copyright (C) 1990-2024 The LaTeX Project +%% Copyright (C) 1990-2025 The LaTeX Project %% %% It may be distributed and/or modified under the conditions of %% the LaTeX Project Public License (LPPL), either version 1.3c of diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88593.def b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88593.def index d195b703b44..712722dcee3 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88593.def +++ b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88593.def @@ -6,7 +6,7 @@ %% %% l3str-convert.dtx (with options: `iso88593') %% -%% Copyright (C) 1990-2024 The LaTeX Project +%% Copyright (C) 1990-2025 The LaTeX Project %% %% It may be distributed and/or modified under the conditions of %% the LaTeX Project Public License (LPPL), either version 1.3c of diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88594.def b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88594.def index 2249de98bcc..9fe91bc8bb9 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88594.def +++ b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88594.def @@ -6,7 +6,7 @@ %% %% l3str-convert.dtx (with options: `iso88594') %% -%% Copyright (C) 1990-2024 The LaTeX Project +%% Copyright (C) 1990-2025 The LaTeX Project %% %% It may be distributed and/or modified under the conditions of %% the LaTeX Project Public License (LPPL), either version 1.3c of diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88595.def b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88595.def index e54409a6e1d..8d70b8a14b5 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88595.def +++ b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88595.def @@ -6,7 +6,7 @@ %% %% l3str-convert.dtx (with options: `iso88595') %% -%% Copyright (C) 1990-2024 The LaTeX Project +%% Copyright (C) 1990-2025 The LaTeX Project %% %% It may be distributed and/or modified under the conditions of %% the LaTeX Project Public License (LPPL), either version 1.3c of diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88596.def b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88596.def index e7c6e888cc0..c047db5f307 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88596.def +++ b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88596.def @@ -6,7 +6,7 @@ %% %% l3str-convert.dtx (with options: `iso88596') %% -%% Copyright (C) 1990-2024 The LaTeX Project +%% Copyright (C) 1990-2025 The LaTeX Project %% %% It may be distributed and/or modified under the conditions of %% the LaTeX Project Public License (LPPL), either version 1.3c of diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88597.def b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88597.def index 292b3600ee5..653f60578e1 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88597.def +++ b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88597.def @@ -6,7 +6,7 @@ %% %% l3str-convert.dtx (with options: `iso88597') %% -%% Copyright (C) 1990-2024 The LaTeX Project +%% Copyright (C) 1990-2025 The LaTeX Project %% %% It may be distributed and/or modified under the conditions of %% the LaTeX Project Public License (LPPL), either version 1.3c of diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88598.def b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88598.def index eef8f134bb1..d82350194bd 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88598.def +++ b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88598.def @@ -6,7 +6,7 @@ %% %% l3str-convert.dtx (with options: `iso88598') %% -%% Copyright (C) 1990-2024 The LaTeX Project +%% Copyright (C) 1990-2025 The LaTeX Project %% %% It may be distributed and/or modified under the conditions of %% the LaTeX Project Public License (LPPL), either version 1.3c of diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88599.def b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88599.def index cb640b641a3..677706e16b3 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88599.def +++ b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88599.def @@ -6,7 +6,7 @@ %% %% l3str-convert.dtx (with options: `iso88599') %% -%% Copyright (C) 1990-2024 The LaTeX Project +%% Copyright (C) 1990-2025 The LaTeX Project %% %% It may be distributed and/or modified under the conditions of %% the LaTeX Project Public License (LPPL), either version 1.3c of |