summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/l3kernel
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2017-03-19 22:13:10 +0000
committerKarl Berry <karl@freefriends.org>2017-03-19 22:13:10 +0000
commita9b5c8812a42ed9fc7bd6323b1185a096ecb7c0e (patch)
tree3130ecf7e791b7a7bf9587e8d8d3a339921de401 /Master/texmf-dist/tex/latex/l3kernel
parentdd8d54441efc71090eb7f91c1315b3d08ddbdcdc (diff)
l3 (19mar17)
git-svn-id: svn://tug.org/texlive/trunk@43548 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/l3kernel')
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex1076
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex18
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/expl3.sty11
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3basics.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3bootstrap.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3box.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3candidates.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3clist.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3coffins.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3color.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3doc.cls14
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3docstrip.tex7
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def4
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3dvips.def4
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def6
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3expan.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3file.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3fp.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3int.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3keys.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3msg.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3names.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def4
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3prg.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3prop.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3quark.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3seq.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3skip.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3sort.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3str.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3tl.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3token.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def4
33 files changed, 540 insertions, 654 deletions
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
index 08580e71110..99c00c3f9e3 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
+++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
@@ -58,10 +58,8 @@
%% and all files in that bundle must be distributed together.
%%
%% File: expl3.dtx Copyright (C) 1990-2017 The LaTeX3 Project
-\def\ExplFileName{expl3}%
-\def\ExplFileDescription{L3 programming layer}%
-\def\ExplFileDate{2017/03/11}%
-\def\ExplFileVersion{6988}%
+\def\ExplFileDate{2017/03/18}%
+\def\ExplFileVersion{7019}%
\begingroup
\def\next{\endgroup}%
\expandafter\ifx\csname PackageError\endcsname\relax
@@ -103,23 +101,22 @@
\fi
\next
\begingroup\expandafter\expandafter\expandafter\endgroup
-\expandafter\ifx\csname ver@\ExplFileName -code.tex\endcsname\relax
- \expandafter\edef\csname ver@\ExplFileName -code.tex\endcsname
+\expandafter\ifx\csname ver@expl3-code.tex\endcsname\relax
+ \expandafter\edef\csname ver@expl3-code.tex\endcsname
{%
\ExplFileDate\space v\ExplFileVersion\space
- \ExplFileDescription\space
+ L3 programming layer
}%
\else
\expandafter\endinput
\fi
\immediate\write-1 %
{%
- Package:
- \ExplFileName\space
- \ExplFileDate\space v\ExplFileVersion\space \ExplFileDescription\space
- (code)%
+ Package: expl3
+ \ExplFileDate\space v\ExplFileVersion\space
+ L3 programming layer (code)%
}%
-%% File: l3bootstrap.dtx Copyright (C) 2011-2016 The LaTeX3 project
+%% File: l3bootstrap.dtx Copyright (C) 2011-2017 The LaTeX3 project
\begingroup
\csname protected\endcsname\gdef\GetIdInfo
{%
@@ -150,7 +147,6 @@
}%
\fi
\tempa
- \GetIdInfoLog
}%
\csname protected\endcsname\gdef\GetIdInfoAuxII$#1 #2.#3 #4 #5 #6$%
{%
@@ -179,18 +175,7 @@
{%
\def\ExplFileDate{#1/#2/#3}%
}%
- \csname protected\endcsname\gdef\GetIdInfoLog
- {%
- \immediate\write-1 %
- {%
- L3 Module:
- \ExplFileName\space
- \ExplFileDate\space v\ExplFileVersion\space \ExplFileDescription
- }%
- }%
\endgroup
-\GetIdInfo$Id: l3bootstrap.dtx 6805 2016-12-28 22:15:52Z joseph $
- {L3 Bootstrap code}%
\begingroup
\expandafter\ifx\csname directlua\endcsname\relax
\else
@@ -268,7 +253,7 @@
\fi
\expandafter\ifx\csname directlua\endcsname\relax
\else
- \ifnum\luatexversion<40 \else 1\fi
+ \ifnum\luatexversion<70 \else 1\fi
\fi
=0 %
\newlinechar`\^^J %
@@ -365,8 +350,6 @@
\bool_set_true:N \l__kernel_expl_bool
}
%% File: l3names.dtx Copyright (C) 1990-2017 The LaTeX3 project
-\GetIdInfo$Id: l3names.dtx 6962 2017-02-19 22:58:35Z joseph $
- {L3 Namespace for primitives}
\let \tex_global:D \global
\let \tex_let:D \let
\begingroup
@@ -1368,8 +1351,6 @@
\tex_let:D \tex_right:D \normalright
\tex_fi:D
%% File: l3basics.dtx Copyright (C) 1990-2017 The LaTeX3 project
-\GetIdInfo$Id: l3basics.dtx 6929 2017-02-14 15:53:00Z bruno $
- {L3 Basic definitions}
\tex_let:D \if_true: \tex_iftrue:D
\tex_let:D \if_false: \tex_iffalse:D
\tex_let:D \or: \tex_or:D
@@ -2123,9 +2104,7 @@
\cs_new_eq:NN \__prg_break_point: \prg_do_nothing:
\cs_new:Npn \__prg_break: #1 \__prg_break_point: { }
\cs_new:Npn \__prg_break:n #1#2 \__prg_break_point: {#1}
-%% File: l3expan.dtx Copyright (C) 1990-2016 The LaTeX3 project
-\GetIdInfo$Id: l3expan.dtx 6967 2017-02-20 14:51:30Z bruno $
- {L3 Argument expansion}
+%% File: l3expan.dtx Copyright (C) 1990-2017 The LaTeX3 project
\cs_new:Npn \__exp_arg_next:nnn #1#2#3 { #2 \::: { #3 {#1} } }
\cs_new:Npn \__exp_arg_next:Nnn #1#2#3 { #2 \::: { #3 #1 } }
\cs_new:Npn \::: #1 {#1}
@@ -2573,8 +2552,6 @@
\__cs_generate_internal_variant_loop:n
}
%% File: l3tl.dtx Copyright (C) 1990-2017 The LaTeX3 Project
-\GetIdInfo$Id: l3tl.dtx 6967 2017-02-20 14:51:30Z bruno $
- {L3 Token lists}
\cs_new_protected:Npn \tl_new:N #1
{
\__chk_if_free_cs:N #1
@@ -3477,8 +3454,6 @@
\tex_uppercase:D {#1}
}
%% File: l3str.dtx Copyright (C) 2011-2017 The LaTeX3 Project
-\GetIdInfo$Id: l3str.dtx 6967 2017-02-20 14:51:30Z bruno $
- {L3 Strings}
\group_begin:
\cs_set_protected:Npn \__str_tmp:n #1
{
@@ -4125,8 +4100,6 @@
}
\group_end:
%% File: l3seq.dtx Copyright (C) 1990-2017 The LaTeX3 Project
-\GetIdInfo$Id: l3seq.dtx 6967 2017-02-20 14:51:30Z bruno $
- {L3 Sequences and stacks}
\cs_new:Npn \__seq_item:n
{
\__msg_kernel_expandable_error:nn { kernel } { misused-sequence }
@@ -4657,8 +4630,6 @@
\seq_new:N \g_tmpa_seq
\seq_new:N \g_tmpb_seq
%% File: l3int.dtx Copyright (C) 1990-2017 The LaTeX3 Project
-\GetIdInfo$Id: l3int.dtx 6949 2017-02-18 16:04:10Z joseph $
- {L3 Integers}
\cs_new_eq:NN \__int_value:w \tex_number:D
\cs_new_eq:NN \__int_eval:w \etex_numexpr:D
\cs_new_eq:NN \__int_eval_end: \tex_relax:D
@@ -5456,8 +5427,6 @@
\int_new:N \g_tmpb_int
\cs_new_eq:NN \c_minus_one \m@ne
%% File: l3flag.dtx Copyright (C) 2011-2012,2014-2017 The LaTeX3 Project
-\GetIdInfo$Id: l3flag.dtx 6969 2017-02-20 18:32:23Z bruno $
- {L3 Flags}
\cs_new_protected:Npn \flag_new:n #1
{
\cs_new:cpn { flag~#1 } ##1 ;
@@ -5542,9 +5511,7 @@
\fi:
}
\fi:
-%% File: l3quark.dtx Copyright (C) 1990-2016 The LaTeX3 Project
-\GetIdInfo$Id: l3quark.dtx 6947 2017-02-17 21:27:18Z bruno $
- {L3 Quarks}
+%% File: l3quark.dtx Copyright (C) 1990-2017 The LaTeX3 Project
\cs_new_protected:Npn \quark_new:N #1 { \tl_const:Nn #1 {#1} }
\quark_new:N \q_nil
\quark_new:N \q_mark
@@ -5652,8 +5619,6 @@
\cs_new:Npn \__use_none_delimit_by_s__stop:w #1 \s__stop { }
\__scan_new:N \s__seq
%% File: l3prg.dtx Copyright (C) 2005-2017 The LaTeX3 Project
-\GetIdInfo$Id: l3prg.dtx 6906 2017-02-12 20:07:58Z bruno $
- {L3 Control structures}
\cs_new_eq:NN \if_bool:N \tex_ifodd:D
\cs_new_eq:NN \if_predicate:w \tex_ifodd:D
\cs_new_protected:Npn \bool_new:N #1 { \cs_new_eq:NN #1 \c_false_bool }
@@ -5952,8 +5917,6 @@
%% File: l3clist.dtx Copyright (C) 2004-2011 Frank Mittelbach,
%% The LaTeX3 project
%% (C) 2012-2017 The LaTeX3 Project
-\GetIdInfo$Id: l3clist.dtx 6967 2017-02-20 14:51:30Z bruno $
- {L3 Comma separated lists}
\cs_new_eq:NN \c_empty_clist \c_empty_tl
\tl_new:N \l__clist_internal_clist
\cs_new_protected:Npn \__clist_tmp:w { }
@@ -6496,9 +6459,7 @@
\clist_new:N \l_tmpb_clist
\clist_new:N \g_tmpa_clist
\clist_new:N \g_tmpb_clist
-%% File: l3token.dtx Copyright (C) 2005-2016 The LaTeX3 Project
-\GetIdInfo$Id: l3token.dtx 6967 2017-02-20 14:51:30Z bruno $
- {L3 Experimental token manipulation}
+%% File: l3token.dtx Copyright (C) 2005-2017 The LaTeX3 Project
\cs_new_protected:Npn \char_set_catcode:nn #1#2
{
\tex_catcode:D \__int_eval:w #1 \__int_eval_end:
@@ -7233,8 +7194,6 @@
{ \scan_stop: }
}
%% File: l3prop.dtx Copyright (C) 1990-2017 The LaTeX3 Project
-\GetIdInfo$Id: l3prop.dtx 6906 2017-02-12 20:07:58Z bruno $
- {L3 Property lists}
\__scan_new:N \s__prop
\cs_new:Npn \__prop_pair:wn #1 \s__prop #2
{ \__msg_kernel_expandable_error:nn { kernel } { misused-prop } }
@@ -7507,9 +7466,7 @@
\cs_new_protected:Npn \prop_log:N
{ \__msg_log_next: \prop_show:N }
\cs_generate_variant:Nn \prop_log:N { c }
-%% File: l3msg.dtx Copyright (C) 2009-2016 The LaTeX3 Project
-\GetIdInfo$Id: l3msg.dtx 6966 2017-02-20 03:39:43Z bruno $
- {L3 Messages}
+%% File: l3msg.dtx Copyright (C) 2009-2017 The LaTeX3 Project
\tl_new:N \l__msg_internal_tl
\bool_new:N \l__msg_line_context_bool
\tl_const:Nn \c__msg_text_prefix_tl { msg~text~>~ }
@@ -8341,8 +8298,6 @@
\ \ => \ \ \tl_to_str:n {#2}
}
%% File: l3file.dtx Copyright (C) 1990-2017 The LaTeX3 Project
-\GetIdInfo$Id: l3file.dtx 6964 2017-02-20 02:59:41Z bruno $
- {L3 File and I/O operations}
\tl_new:N \g_file_current_name_tl
\cs_if_exist:NT \@currname
{ \tl_gset_eq:NN \g_file_current_name_tl \@currname }
@@ -9038,8 +8993,6 @@
}
%% File: l3skip.dtx Copyright (C) 2004-2011 Frank Mittelbach, The LaTeX3 Project
%% (C) 2012-2017 The LaTeX3 Project
-\GetIdInfo$Id: l3skip.dtx 6968 2017-02-20 16:08:44Z bruno $
- {L3 Dimensions and skips}
\cs_new_eq:NN \if_dim:w \tex_ifdim:D
\cs_new_eq:NN \__dim_eval:w \etex_dimexpr:D
\cs_new_eq:NN \__dim_eval_end: \tex_relax:D
@@ -9457,8 +9410,6 @@
\muskip_new:N \g_tmpa_muskip
\muskip_new:N \g_tmpb_muskip
%% File: l3keys.dtx Copyright (C) 2006-2017 The LaTeX3 Project
-\GetIdInfo$Id: l3keys.dtx 6906 2017-02-12 20:07:58Z bruno $
- {L3 Key-value interfaces}
\tl_new:N \l__keyval_key_tl
\tl_new:N \l__keyval_value_tl
\tl_new:N \l__keyval_sanitise_tl
@@ -10381,8 +10332,6 @@
{ is~undefined. }
}
%% File: l3fp.dtx Copyright (C) 2011-2017 The LaTeX3 Project
-\GetIdInfo$Id: l3fp.dtx 6987 2017-03-11 01:06:52Z bruno $
- {L3 Floating points}
%% File: l3fp-aux.dtx Copyright(C) 2011-2014,2016-2017 The LaTeX3 Project
\cs_new:Npn \__fp_use_none_stop_f:n #1 { \exp_stop_f: }
\cs_new:Npn \__fp_use_s:n #1 { #1; }
@@ -10416,24 +10365,19 @@
\int_const:Nn \c__fp_half_prec_int { 8 }
\int_const:Nn \c__fp_block_int { 4 }
\int_const:Nn \c__fp_myriad_int { 10000 }
+\int_const:Nn \c__fp_minus_min_exponent_int { 10000 }
\int_const:Nn \c__fp_max_exponent_int { 10000 }
\int_const:Nn \c__fp_max_exp_exponent_int { 5 }
+\tl_const:Nx \c__fp_overflowing_fp
+ {
+ \s__fp \__fp_chk:w 1 0
+ { \int_eval:n { \c__fp_max_exponent_int + 1 } }
+ {1000} {0000} {0000} {0000} ;
+ }
\cs_new:Npn \__fp_zero_fp:N #1
{ \s__fp \__fp_chk:w 0 #1 \s__fp_underflow ; }
\cs_new:Npn \__fp_inf_fp:N #1
{ \s__fp \__fp_chk:w 2 #1 \s__fp_overflow ; }
-\cs_new:Npn \__fp_min_fp:N #1
- {
- \s__fp \__fp_chk:w 1 #1
- { \int_eval:n { - \c__fp_max_exponent_int } }
- {1000} {0000} {0000} {0000} ;
- }
-\cs_new:Npn \__fp_max_fp:N #1
- {
- \s__fp \__fp_chk:w 1 #1
- { \int_use:N \c__fp_max_exponent_int }
- {9999} {9999} {9999} {9999} ;
- }
\cs_new:Npn \__fp_exponent:w \s__fp \__fp_chk:w #1
{
\if_meaning:w 1 #1
@@ -10449,8 +10393,8 @@
{
\if_case:w
\if_int_compare:w #2 > \c__fp_max_exponent_int 1 ~ \else:
- \if_int_compare:w #2 < - \c__fp_max_exponent_int 2 ~ \else:
- \if_meaning:w 1 #1 3 ~ \else: 0 ~ \fi: \fi: \fi:
+ \if_int_compare:w #2 < - \c__fp_minus_min_exponent_int 2 ~ \else:
+ \if_meaning:w 1 #1 3 ~ \fi: \fi: \fi: 0 ~
\or: \exp_after:wN \__fp_overflow:w
\or: \exp_after:wN \__fp_underflow:w
\or: \exp_after:wN \__fp_sanitize_zero:w
@@ -10470,16 +10414,6 @@
{ }
#1
}
-\cs_new:Npn \__fp_exp_after_o:nw #1 \s__fp \__fp_chk:w #2
- {
- \if_meaning:w 1 #2
- \exp_after:wN \__fp_exp_after_normal:nNNw
- \else:
- \exp_after:wN \__fp_exp_after_special:nNNw
- \fi:
- { #1 }
- #2
- }
\cs_new:Npn \__fp_exp_after_f:nw #1 \s__fp \__fp_chk:w #2
{
\if_meaning:w 1 #2
@@ -10538,6 +10472,27 @@
{ #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;
+ {
+ \if_meaning:w 2 #1
+ \__fp_basics_pack_high_carry:w
+ \fi:
+ ; {#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;
+ {
+ \if_meaning:w 2 #1
+ + 1
+ \fi:
+ \__int_eval_end:
+ #2#3#4; {#5} ;
+ }
+\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} }
\cs_new:Npn \__fp_decimate:nNnnnn #1
{
\cs:w
@@ -10596,32 +10551,22 @@
{ \fi: \__fp_exp_after_o:w \s__fp #3 ; }
\cs_new:Npn \__fp_case_return_ii_o:ww #1 \fi: #2 \s__fp #3 ;
{ \fi: \__fp_exp_after_o:w }
-\prg_new_conditional:Npnn \__fp_int:w \s__fp \__fp_chk:w #1 #2 #3; { TF , T , F , p }
+\prg_new_conditional:Npnn \__fp_int:w \s__fp \__fp_chk:w #1 #2 #3 #4;
+ { TF , T , F , p }
{
\if_case:w #1 \exp_stop_f:
\prg_return_true:
- \or: \__fp_int_normal:nnnnn #3
+ \or:
+ \if_charcode:w 0
+ \__fp_decimate:nNnnnn { \c__fp_prec_int - #3 }
+ \__fp_use_i_until_s:nw #4
+ \prg_return_true:
+ \else:
+ \prg_return_false:
+ \fi:
\else: \prg_return_false:
\fi:
}
-\cs_new:Npn \__fp_int_normal:nnnnn #1 #2#3#4#5
- {
- \if_int_compare:w #1 > 0 \exp_stop_f:
- \__fp_decimate:nNnnnn { \c__fp_prec_int - #1 }
- \__fp_int_test:Nw
- {#2} {#3} {#4} {#5}
- \else:
- \prg_return_false:
- \fi:
- }
-\cs_new:Npn \__fp_int_test:Nw #1#2;
- {
- \if_meaning:w 0 #1
- \prg_return_true:
- \else:
- \prg_return_false:
- \fi:
- }
\cs_new:Npn \__fp_small_int:wTF \s__fp \__fp_chk:w #1#2
{
\if_case:w #1 \exp_stop_f:
@@ -10640,27 +10585,23 @@
\cs_new:Npn \__fp_small_int_true:wTF #1; #2#3 { #2 {#1} }
\cs_new:Npn \__fp_small_int_normal:NnwTF #1#2#3;
{
- \if_int_compare:w #2 > 0 \exp_stop_f:
- \__fp_decimate:nNnnnn { \c__fp_prec_int - #2 }
- \__fp_small_int_test:NnnwNnw
- #3 #1 {#2}
- \else:
- \exp_after:wN \use_iii:nnn
- \fi:
- ;
+ \__fp_decimate:nNnnnn { \c__fp_prec_int - #2 }
+ \__fp_small_int_test:NnnwNw
+ #3 #1
}
-\cs_new:Npn \__fp_small_int_test:NnnwNnw #1#2#3#4; #5#6
+\cs_new:Npn \__fp_small_int_test:NnnwNw #1#2#3#4; #5
{
\if_meaning:w 0 #1
\exp_after:wN \__fp_small_int_true:wTF
\__int_value:w \if_meaning:w 2 #5 - \fi:
- \if_int_compare:w #6 > \c__fp_half_prec_int
+ \if_int_compare:w #2 > 0 \exp_stop_f:
1 0000 0000
\else:
#3
\fi:
+ \exp_after:wN ;
\else:
- \use_i:nn
+ \exp_after:wN \use_ii:nn
\fi:
}
\cs_new:Npn \__fp_array_count:n #1
@@ -10693,7 +10634,7 @@
'\token_to_str:N \fp_to_scientific:N',~or~other~
conversion~functions.
}
-%% File: l3fp-traps.dtx Copyright (C) 2011-2014,2016 The LaTeX3 Project
+%% File: l3fp-traps.dtx Copyright (C) 2011-2014,2016,2017 The LaTeX3 Project
\flag_new:n { fp_invalid_operation }
\flag_new:n { fp_division_by_zero }
\flag_new:n { fp_overflow }
@@ -10727,7 +10668,7 @@
{ \cs_set:Npn \__fp_invalid_operation:nnw ##1##2##3; }
{
#1
- \__fp_error:nnfn { invalid } {##2} { \fp_to_tl:n { ##3; } } { }
+ \__fp_error:nnfn { fp-invalid } {##2} { \fp_to_tl:n { ##3; } } { }
\flag_raise:n { fp_invalid_operation }
##1
}
@@ -10735,7 +10676,7 @@
{ \cs_set:Npn \__fp_invalid_operation_o:Nww ##1##2; ##3; }
{
#1
- \__fp_error:nffn { invalid-ii }
+ \__fp_error:nffn { fp-invalid-ii }
{ \fp_to_tl:n { ##2; } } { \fp_to_tl:n { ##3; } } {##1}
\flag_raise:n { fp_invalid_operation }
\exp_after:wN \c_nan_fp
@@ -10744,7 +10685,7 @@
{ \cs_set:Npn \__fp_invalid_operation_tl_o:ff ##1##2 }
{
#1
- \__fp_error:nffn { invalid } {##1} {##2} { }
+ \__fp_error:nffn { fp-invalid } {##1} {##2} { }
\flag_raise:n { fp_invalid_operation }
\exp_after:wN \c_nan_fp
}
@@ -10761,7 +10702,7 @@
{ \cs_set:Npn \__fp_division_by_zero_o:Nnw ##1##2##3; }
{
#1
- \__fp_error:nnfn { zero-div } {##2} { \fp_to_tl:n { ##3; } } { }
+ \__fp_error:nnfn { fp-zero-div } {##2} { \fp_to_tl:n { ##3; } } { }
\flag_raise:n { fp_division_by_zero }
\exp_after:wN ##1
}
@@ -10769,7 +10710,7 @@
{ \cs_set:Npn \__fp_division_by_zero_o:NNww ##1##2##3; ##4; }
{
#1
- \__fp_error:nffn { zero-div-ii }
+ \__fp_error:nffn { fp-zero-div-ii }
{ \fp_to_tl:n { ##3; } } { \fp_to_tl:n { ##4; } } {##2}
\flag_raise:n { fp_division_by_zero }
\exp_after:wN ##1
@@ -10798,7 +10739,7 @@
{
#1
\__fp_error:nffn
- { flow \if_meaning:w 1 ##1 -to \fi: }
+ { fp-flow \if_meaning:w 1 ##1 -to \fi: }
{ \fp_to_tl:n { \s__fp \__fp_chk:w ##1##2##3; } }
{ \token_if_eq_meaning:NNF 0 ##2 { - } #4 }
{#2}
@@ -10820,8 +10761,8 @@
\cs_new:Npn \__fp_invalid_operation_o:nw
{ \__fp_invalid_operation:nnw { \exp_after:wN \c_nan_fp } }
\cs_generate_variant:Nn \__fp_invalid_operation_o:nw { f }
-\cs_new:Npn \__fp_error:nnnn #1
- { \__msg_kernel_expandable_error:nnnnn { kernel } { fp - #1 } }
+\cs_new:Npn \__fp_error:nnnn
+ { \__msg_kernel_expandable_error:nnnnn { kernel } }
\cs_generate_variant:Nn \__fp_error:nnnn { nnf, nff }
\__msg_kernel_new:nnnn { kernel } { unknown-fpu-exception }
{
@@ -10861,7 +10802,42 @@
{ Invalid~operation~ #1 (#2) }
\__msg_kernel_new:nnn { kernel } { fp-invalid-ii }
{ Invalid~operation~ (#1) #3 (#2) }
-%% File: l3fp-round.dtx Copyright(C) 2011-2012,2014-2016 The LaTeX3 Project
+%% File: l3fp-round.dtx Copyright(C) 2011-2012,2014-2017 The LaTeX3 Project
+\cs_new:Npn \__fp_parse_word_trunc:N
+ { \__fp_parse_function:NNN \__fp_round_o:Nw \__fp_round_to_zero:NNN }
+\cs_new:Npn \__fp_parse_word_floor:N
+ { \__fp_parse_function:NNN \__fp_round_o:Nw \__fp_round_to_ninf:NNN }
+\cs_new:Npn \__fp_parse_word_ceil:N
+ { \__fp_parse_function:NNN \__fp_round_o:Nw \__fp_round_to_pinf:NNN }
+\cs_new:Npn \__fp_parse_word_round:N #1#2
+ {
+ \if_meaning:w + #2
+ \__fp_parse_round:Nw \__fp_round_to_pinf:NNN
+ \else:
+ \if_meaning:w 0 #2
+ \__fp_parse_round:Nw \__fp_round_to_zero:NNN
+ \else:
+ \if_meaning:w - #2
+ \__fp_parse_round:Nw \__fp_round_to_ninf:NNN
+ \fi:
+ \fi:
+ \fi:
+ \__fp_parse_function:NNN
+ \__fp_round_o:Nw \__fp_round_to_nearest:NNN #1
+ #2
+ }
+\cs_new:Npn \__fp_parse_round:Nw
+ #1 #2 \__fp_round_to_nearest:NNN #3#4 { #2 #1 #3 }
+\cs_new:Npn \__fp_parse_round_deprecation_error:Nw
+ #1 #2 \__fp_round_to_nearest:NNN #3#4
+ {
+ \__fp_error:nnfn { fp-deprecated } { round#4() }
+ {
+ \str_case:nn {#2}
+ { { + } { ceil } { 0 } { trunc } { - } { floor } }
+ } { }
+ #2 #1 #3
+ }
\int_const:Nn \c__fp_five_int { 5 }
\cs_new:Npn \__fp_round_return_one:
{ \exp_after:wN 1 \exp_after:wN \exp_stop_f: \exp:w }
@@ -10987,14 +10963,14 @@
\or: \__fp_round:Nww #1 #2 \exp:w
\else: \__fp_round:Nwww #1 #2 @ \exp:w
\fi:
- \exp_end_continue_f:w
+ \exp_after:wN \exp_end:
}
\cs_new:Npn \__fp_round_no_arg_o:Nw #1
{
\cs_if_eq:NNTF #1 \__fp_round_to_nearest:NNN
- { \__fp_error:nnnn { num-args } { round () } { 1 } { 3 } }
+ { \__fp_error:nnnn { fp-num-args } { round () } { 1 } { 3 } }
{
- \__fp_error:nffn { num-args }
+ \__fp_error:nffn { fp-num-args }
{ \__fp_round_name_from_cs:N #1 () } { 1 } { 2 }
}
\exp_after:wN \c_nan_fp
@@ -11015,12 +10991,12 @@
#2 ; #3 ;
}
{
- \__fp_error:nnnn { num-args } { round () } { 1 } { 3 }
+ \__fp_error:nnnn { fp-num-args } { round () } { 1 } { 3 }
\exp_after:wN \c_nan_fp
}
}
{
- \__fp_error:nffn { num-args }
+ \__fp_error:nffn { fp-num-args }
{ \__fp_round_name_from_cs:N #1 () } { 1 } { 2 }
\exp_after:wN \c_nan_fp
}
@@ -11211,22 +11187,23 @@
\__msg_kernel_expandable_error:nnn { kernel } { bad-variable } {#2}
\exp_after:wN \c_nan_fp \exp:w \exp_end_continue_f:w #1
}
-\group_begin:
- \char_set_catcode_letter:N \@
- \cs_if_exist:NT \@unexpandable@protect
- {
- \cs_gset:cpn { __fp_exp_after_?_f:nw } #1#2
- {
- \exp_after:wN \c_nan_fp \exp:w \exp_end_continue_f:w #1
- \str_if_eq:nnTF {#2} { \protect }
- {
- \cs_if_eq:NNTF #2 \@unexpandable@protect { \use_i:nn } { \use:n }
- { \__msg_kernel_expandable_error:nnn { kernel } { fp-robust-cmd } }
- }
- { \__msg_kernel_expandable_error:nnn { kernel } { bad-variable } {#2} }
- }
- }
-\group_end:
+\cs_set_protected:Npn \__fp_tmp:w #1
+ {
+ \cs_if_exist:NT #1
+ {
+ \cs_gset:cpn { __fp_exp_after_?_f:nw } ##1##2
+ {
+ \exp_after:wN \c_nan_fp \exp:w \exp_end_continue_f:w ##1
+ \str_if_eq:nnTF {##2} { \protect }
+ {
+ \cs_if_eq:NNTF ##2 #1 { \use_i:nn } { \use:n }
+ { \__msg_kernel_expandable_error:nnn { kernel } { fp-robust-cmd } }
+ }
+ { \__msg_kernel_expandable_error:nnn { kernel } { bad-variable } {##2} }
+ }
+ }
+ }
+\exp_args:Nc \__fp_tmp:w { @unexpandable@protect }
\cs_new:Npn \__fp_parse_one_register:NN #1#2
{
\exp_after:wN \__fp_parse_infix_after_operand:NwN
@@ -11762,37 +11739,37 @@
\exp_after:wN \__fp_sanitize:wN
\__int_value:w \__int_eval:w 0 \__fp_parse_strim_zeros:N
}
-\group_begin:
- \char_set_catcode_letter:N (
- \char_set_catcode_letter:N )
- \cs_new:Npn \__fp_parse_prefix_(:Nw #1
- {
- \exp_after:wN \__fp_parse_lparen_after:NwN
- \exp_after:wN #1
- \exp:w
- \if_int_compare:w #1 = \c__fp_prec_funcii_int
- \__fp_parse_operand:Nw \c__fp_prec_comma_int
- \else:
- \__fp_parse_operand:Nw \c__fp_prec_paren_int
- \fi:
- \__fp_parse_expand:w
- }
- \cs_new:Npn \__fp_parse_lparen_after:NwN #1#2 @ #3
- {
- \token_if_eq_meaning:NNTF #3 \__fp_parse_infix_):N
- {
- \__fp_exp_after_array_f:w #2 \s__fp_stop
- \exp_after:wN \__fp_parse_infix:NN
- \exp_after:wN #1
- \exp:w \__fp_parse_expand:w
- }
- {
- \__msg_kernel_expandable_error:nnn
- { kernel } { fp-missing } { ) }
- #2 @ \use_none:n #3
- }
- }
-\group_end:
+\cs_new:cpn { __fp_parse_prefix_(:Nw } #1
+ {
+ \exp_after:wN \__fp_parse_lparen_after:NwN
+ \exp_after:wN #1
+ \exp:w
+ \if_int_compare:w #1 = \c__fp_prec_funcii_int
+ \__fp_parse_operand:Nw \c__fp_prec_comma_int
+ \else:
+ \__fp_parse_operand:Nw \c__fp_prec_paren_int
+ \fi:
+ \__fp_parse_expand:w
+ }
+\cs_new:Npx \__fp_parse_lparen_after:NwN #1#2 @ #3
+ {
+ \exp_not:N \token_if_eq_meaning:NNTF #3
+ \exp_not:c { __fp_parse_infix_):N }
+ {
+ \exp_not:N \__fp_exp_after_array_f:w #2 \s__fp_stop
+ \exp_not:N \exp_after:wN
+ \exp_not:N \__fp_parse_infix:NN
+ \exp_not:N \exp_after:wN #1
+ \exp_not:N \exp:w
+ \exp_not:N \__fp_parse_expand:w
+ }
+ {
+ \exp_not:N \__msg_kernel_expandable_error:nnn
+ { kernel } { fp-missing } { ) }
+ #2 @
+ \exp_not:N \use_none:n #3
+ }
+ }
\cs_new:cpn { __fp_parse_prefix_):Nw } #1
{
\if_int_compare:w #1 = \c__fp_prec_comma_int
@@ -11843,12 +11820,12 @@
\exp:w \exp_end_continue_f:w \__fp_parse_infix:NN
}
}
-\cs_new:Npn \__fp_parse_unary_function:nNN #1#2#3
+\cs_new:Npn \__fp_parse_unary_function:NNN #1#2#3
{
\exp_after:wN \__fp_parse_apply_unary:NNNwN
\exp_after:wN #3
\exp_after:wN #2
- \cs:w __fp_#1_o:w \exp_after:wN \cs_end:
+ \exp_after:wN #1
\exp:w
\__fp_parse_operand:Nw \c__fp_prec_func_int \__fp_parse_expand:w
}
@@ -11861,68 +11838,6 @@
\exp:w
\__fp_parse_operand:Nw \c__fp_prec_funcii_int \__fp_parse_expand:w
}
-\cs_new:Npn \__fp_parse_word_acot:N
- { \__fp_parse_function:NNN \__fp_acot_o:Nw \use_i:nn }
-\cs_new:Npn \__fp_parse_word_acotd:N
- { \__fp_parse_function:NNN \__fp_acot_o:Nw \use_ii:nn }
-\cs_new:Npn \__fp_parse_word_atan:N
- { \__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_parse_word_max:N
- { \__fp_parse_function:NNN \__fp_minmax_o:Nw 2 }
-\cs_new:Npn \__fp_parse_word_min:N
- { \__fp_parse_function:NNN \__fp_minmax_o:Nw 0 }
-\cs_new:Npn \__fp_parse_word_rand:N
- { \__fp_parse_function:NNN \__fp_rand_o:Nw ? }
-\cs_new:Npn \__fp_parse_word_randint:N
- { \__fp_parse_function:NNN \__fp_randint_o:Nw ? }
-\cs_new:Npn \__fp_parse_word_abs:N
- { \__fp_parse_unary_function:nNN { set_sign } 0 }
-\cs_new:Npn \__fp_parse_word_exp:N
- { \__fp_parse_unary_function:nNN {exp} ? }
-\cs_new:Npn \__fp_parse_word_ln:N
- { \__fp_parse_unary_function:nNN {ln} ? }
-\cs_new:Npn \__fp_parse_word_sign:N
- { \__fp_parse_unary_function:nNN {sign} ? }
-\cs_new:Npn \__fp_parse_word_sqrt:N
- { \__fp_parse_unary_function:nNN {sqrt} ? }
-\tl_map_inline:nn
- {
- {acos} {acsc} {asec} {asin}
- {cos} {cot} {csc} {sec} {sin} {tan}
- }
- {
- \cs_new:cpn { __fp_parse_word_#1:N }
- { \__fp_parse_unary_function:nNN {#1} \use_i:nn }
- \cs_new:cpn { __fp_parse_word_#1d:N }
- { \__fp_parse_unary_function:nNN {#1} \use_ii:nn }
- }
-\cs_new:Npn \__fp_parse_word_trunc:N
- { \__fp_parse_function:NNN \__fp_round_o:Nw \__fp_round_to_zero:NNN }
-\cs_new:Npn \__fp_parse_word_floor:N
- { \__fp_parse_function:NNN \__fp_round_o:Nw \__fp_round_to_ninf:NNN }
-\cs_new:Npn \__fp_parse_word_ceil:N
- { \__fp_parse_function:NNN \__fp_round_o:Nw \__fp_round_to_pinf:NNN }
-\cs_new:Npn \__fp_parse_word_round:N #1#2
- {
- \if_meaning:w + #2
- \__fp_parse_round:Nw \__fp_round_to_pinf:NNN
- \else:
- \if_meaning:w 0 #2
- \__fp_parse_round:Nw \__fp_round_to_zero:NNN
- \else:
- \if_meaning:w - #2
- \__fp_parse_round:Nw \__fp_round_to_ninf:NNN
- \fi:
- \fi:
- \fi:
- \__fp_parse_function:NNN
- \__fp_round_o:Nw \__fp_round_to_nearest:NNN #1
- #2
- }
-\cs_new:Npn \__fp_parse_round:Nw
- #1 #2 \__fp_round_to_nearest:NNN #3#4 { #2 #1 #3 }
\cs_new:Npn \__fp_parse:n #1
{
\exp:w
@@ -11965,8 +11880,6 @@
\__fp_exp_after_f:nw { \__fp_parse_infix:NN #1 }
#2;
}
-\group_begin:
- \char_set_catcode_letter:N \*
\cs_new:Npn \__fp_parse_infix:NN #1 #2
{
\if_catcode:w \scan_stop: \exp_not:N #2
@@ -11997,111 +11910,118 @@
#1
#2
}
- \cs_new:Npn \__fp_parse_infix_check:NNN #1#2#3
- {
- \if_meaning:w \scan_stop: #1
- \__msg_kernel_expandable_error:nnn
- { kernel } { fp-missing } { * }
- \exp_after:wN \__fp_parse_infix_*:N
- \exp_after:wN #2
- \exp_after:wN #3
- \else:
- \exp_after:wN #1
- \exp_after:wN #2
- \exp:w \exp_after:wN \__fp_parse_expand:w
- \fi:
- }
-\group_end:
+\cs_new:Npx \__fp_parse_infix_check:NNN #1#2#3
+ {
+ \exp_not:N \if_meaning:w \scan_stop: #1
+ \exp_not:N \__msg_kernel_expandable_error:nnn
+ { kernel } { fp-missing } { * }
+ \exp_not:N \exp_after:wN
+ \exp_not:c { __fp_parse_infix_*:N }
+ \exp_not:N \exp_after:wN #2
+ \exp_not:N \exp_after:wN #3
+ \exp_not:N \else:
+ \exp_not:N \exp_after:wN #1
+ \exp_not:N \exp_after:wN #2
+ \exp_not:N \exp:w
+ \exp_not:N \exp_after:wN
+ \exp_not:N \__fp_parse_expand:w
+ \exp_not:N \fi:
+ }
\cs_new:Npn \__fp_parse_infix_mark:NNN #1#2#3 { #3 #1 }
\cs_new:Npn \__fp_parse_infix_end:N #1
{ @ \use_none:n \__fp_parse_infix_end:N }
-\group_begin:
- \char_set_catcode_letter:N \)
- \cs_new:Npn \__fp_parse_infix_):N #1
- {
- \if_int_compare:w #1 < \c__fp_prec_paren_int
- \__msg_kernel_expandable_error:nnn { kernel } { fp-extra } { ) }
- \exp_after:wN \__fp_parse_infix:NN
- \exp_after:wN #1
- \exp:w \exp_after:wN \__fp_parse_expand:w
- \else:
- \exp_after:wN @
- \exp_after:wN \use_none:n
- \exp_after:wN \__fp_parse_infix_):N
- \fi:
- }
-\group_end:
-\group_begin:
- \char_set_catcode_letter:N \,
- \cs_new:Npn \__fp_parse_infix_,:N #1
- {
- \if_int_compare:w #1 > \c__fp_prec_comma_int
- \exp_after:wN @
- \exp_after:wN \use_none:n
- \exp_after:wN \__fp_parse_infix_,:N
- \else:
- \if_int_compare:w #1 < \c__fp_prec_comma_int
- \__fp_parse_infix_comma_error:w
+\cs_set_protected:Npn \__fp_tmp:w #1
+ {
+ \cs_new:Npn #1 ##1
+ {
+ \if_int_compare:w ##1 < \c__fp_prec_paren_int
+ \__msg_kernel_expandable_error:nnn { kernel } { fp-extra } { ) }
+ \exp_after:wN \__fp_parse_infix:NN
+ \exp_after:wN ##1
+ \exp:w \exp_after:wN \__fp_parse_expand:w
+ \else:
+ \exp_after:wN @
+ \exp_after:wN \use_none:n
+ \exp_after:wN #1
\fi:
- \exp_after:wN \__fp_parse_infix_comma:w
- \exp:w \__fp_parse_operand:Nw \c__fp_prec_comma_int
- \exp_after:wN \__fp_parse_expand:w
- \fi:
- }
- \cs_new:Npn \__fp_parse_infix_comma:w #1 @
- { #1 @ \use_none:n }
- \cs_new:Npn \__fp_parse_infix_comma_error:w #1 \exp:w
- {
- \fi:
- \__msg_kernel_expandable_error:nn { kernel } { fp-extra-comma }
- \exp_after:wN @
- \exp_after:wN \__fp_parse_apply_binary:NwNwN
- \exp_after:wN ,
- \exp:w
- }
- \cs_new:Npn \__fp_,_o:ww #1
- {
- \if_meaning:w \s__fp #1
- \exp_after:wN \__fp_use_i_until_s:nw
- \exp_after:wN \__fp_,_o:ww
- \fi:
- \exp_after:wN \c_nan_fp
- #1
- }
-\group_end:
-\group_begin:
- \cs_set:Npn \+ { }
- \char_set_catcode_other:N \&
- \char_set_catcode_letter:N \^
- \char_set_catcode_letter:N \/
- \char_set_catcode_letter:N \-
- \char_set_catcode_letter:N \+
- \cs_set_protected:Npn \__fp_tmp:w #1#2#3#4
- {
- \cs_new:Npn #1 ##1
- {
- \if_int_compare:w ##1 < #3
- \exp_after:wN @
- \exp_after:wN \__fp_parse_apply_binary:NwNwN
- \exp_after:wN #2
- \exp:w
- \__fp_parse_operand:Nw #4
- \exp_after:wN \__fp_parse_expand:w
- \else:
- \exp_after:wN @
- \exp_after:wN \use_none:n
- \exp_after:wN #1
+ }
+ }
+\exp_args:Nc \__fp_tmp:w { __fp_parse_infix_):N }
+\cs_set_protected:Npn \__fp_tmp:w #1
+ {
+ \cs_new:Npn #1 ##1
+ {
+ \if_int_compare:w ##1 > \c__fp_prec_comma_int
+ \exp_after:wN @
+ \exp_after:wN \use_none:n
+ \exp_after:wN #1
+ \else:
+ \if_int_compare:w ##1 < \c__fp_prec_comma_int
+ \__fp_parse_infix_comma_error:w
\fi:
- }
- }
- \__fp_tmp:w \__fp_parse_infix_^:N ^ \c__fp_prec_hatii_int \c__fp_prec_hat_int
- \__fp_tmp:w \__fp_parse_infix_/:N / \c__fp_prec_times_int \c__fp_prec_times_int
- \__fp_tmp:w \__fp_parse_infix_mul:N * \c__fp_prec_times_int \c__fp_prec_times_int
- \__fp_tmp:w \__fp_parse_infix_-:N - \c__fp_prec_plus_int \c__fp_prec_plus_int
- \__fp_tmp:w \__fp_parse_infix_+:N + \c__fp_prec_plus_int \c__fp_prec_plus_int
- \__fp_tmp:w \__fp_parse_infix_and:N & \c__fp_prec_and_int \c__fp_prec_and_int
- \__fp_tmp:w \__fp_parse_infix_or:N | \c__fp_prec_or_int \c__fp_prec_or_int
-\group_end:
+ \exp_after:wN \__fp_parse_infix_comma:w
+ \exp:w \__fp_parse_operand:Nw \c__fp_prec_comma_int
+ \exp_after:wN \__fp_parse_expand:w
+ \fi:
+ }
+ }
+\exp_args:Nc \__fp_tmp:w { __fp_parse_infix_,:N }
+\cs_new:Npn \__fp_parse_infix_comma:w #1 @
+ { #1 @ \use_none:n }
+\cs_new:Npn \__fp_parse_infix_comma_error:w #1 \exp:w
+ {
+ \fi:
+ \__msg_kernel_expandable_error:nn { kernel } { fp-extra-comma }
+ \exp_after:wN @
+ \exp_after:wN \__fp_parse_apply_binary:NwNwN
+ \exp_after:wN ,
+ \exp:w
+ }
+\cs_set_protected:Npn \__fp_tmp:w #1
+ {
+ \cs_new:Npn #1 ##1
+ {
+ \if_meaning:w \s__fp ##1
+ \exp_after:wN \__fp_use_i_until_s:nw
+ \exp_after:wN #1
+ \fi:
+ \exp_after:wN \c_nan_fp
+ ##1
+ }
+ }
+\exp_args:Nc \__fp_tmp:w { __fp_,_o:ww }
+\cs_set_protected:Npn \__fp_tmp:w #1#2#3#4
+ {
+ \cs_new:Npn #1 ##1
+ {
+ \if_int_compare:w ##1 < #3
+ \exp_after:wN @
+ \exp_after:wN \__fp_parse_apply_binary:NwNwN
+ \exp_after:wN #2
+ \exp:w
+ \__fp_parse_operand:Nw #4
+ \exp_after:wN \__fp_parse_expand:w
+ \else:
+ \exp_after:wN @
+ \exp_after:wN \use_none:n
+ \exp_after:wN #1
+ \fi:
+ }
+ }
+\exp_args:Nc \__fp_tmp:w { __fp_parse_infix_^:N } ^
+ \c__fp_prec_hatii_int \c__fp_prec_hat_int
+\exp_args:Nc \__fp_tmp:w { __fp_parse_infix_/:N } /
+ \c__fp_prec_times_int \c__fp_prec_times_int
+\exp_args:Nc \__fp_tmp:w { __fp_parse_infix_mul:N } *
+ \c__fp_prec_times_int \c__fp_prec_times_int
+\exp_args:Nc \__fp_tmp:w { __fp_parse_infix_-:N } -
+ \c__fp_prec_plus_int \c__fp_prec_plus_int
+\exp_args:Nc \__fp_tmp:w { __fp_parse_infix_+:N } +
+ \c__fp_prec_plus_int \c__fp_prec_plus_int
+\exp_args:Nc \__fp_tmp:w { __fp_parse_infix_and:N } &
+ \c__fp_prec_and_int \c__fp_prec_and_int
+\exp_args:Nc \__fp_tmp:w { __fp_parse_infix_or:N } |
+ \c__fp_prec_or_int \c__fp_prec_or_int
\cs_new:cpn { __fp_parse_infix_(:N } #1
{ \__fp_parse_infix_juxtapose:N #1 ( }
\cs_new:Npn \__fp_parse_infix_juxtapose:N #1
@@ -12122,88 +12042,71 @@
{
\if_catcode:w ^ \tl_to_str:n { #3 #5 } ^
\else:
- \__fp_error:nffn { invalid-ii }
+ \__fp_error:nffn { fp-invalid-ii }
{ \__fp_array_to_clist:n { #2; #3 } }
{ \__fp_array_to_clist:n { #4; #5 } }
{ }
\fi:
\__fp_parse_apply_binary:NwNwN #1 #2;@ * #4;@
}
-\group_begin:
- \char_set_catcode_letter:N ^
- \cs_new:cpn { __fp_parse_infix_*:N } #1#2
- {
- \if:w * \exp_not:N #2
- \exp_after:wN \__fp_parse_infix_^:N
- \exp_after:wN #1
- \else:
- \exp_after:wN \__fp_parse_infix_mul:N
- \exp_after:wN #1
- \exp_after:wN #2
- \fi:
- }
-\group_end:
-\group_begin:
- \char_set_catcode_letter:N \|
- \char_set_catcode_letter:N \&
- \cs_new:Npn \__fp_parse_infix_|:N #1#2
- {
- \if:w | \exp_not:N #2
- \exp_after:wN \__fp_parse_infix_|:N
- \exp_after:wN #1
- \exp:w \exp_after:wN \__fp_parse_expand:w
- \else:
- \exp_after:wN \__fp_parse_infix_or:N
- \exp_after:wN #1
- \exp_after:wN #2
- \fi:
- }
- \cs_new:Npn \__fp_parse_infix_&:N #1#2
- {
- \if:w & \exp_not:N #2
- \exp_after:wN \__fp_parse_infix_&:N
- \exp_after:wN #1
- \exp:w \exp_after:wN \__fp_parse_expand:w
- \else:
- \exp_after:wN \__fp_parse_infix_and:N
- \exp_after:wN #1
- \exp_after:wN #2
- \fi:
- }
-\group_end:
-\group_begin:
- \char_set_catcode_letter:N \?
- \cs_new:Npn \__fp_parse_infix_?:N #1
- {
- \if_int_compare:w #1 < \c__fp_prec_quest_int
- \exp_after:wN @
- \exp_after:wN \__fp_ternary:NwwN
- \exp:w
- \__fp_parse_operand:Nw \c__fp_prec_quest_int
- \exp_after:wN \__fp_parse_expand:w
- \else:
- \exp_after:wN @
- \exp_after:wN \use_none:n
- \exp_after:wN \__fp_parse_infix_?:N
- \fi:
- }
- \cs_new:Npn \__fp_parse_infix_::N #1
- {
- \if_int_compare:w #1 < \c__fp_prec_quest_int
- \__msg_kernel_expandable_error:nnnn
- { kernel } { fp-missing } { ? } { ~for~?: }
- \exp_after:wN @
- \exp_after:wN \__fp_ternary_auxii:NwwN
- \exp:w
- \__fp_parse_operand:Nw \c__fp_prec_colon_int
- \exp_after:wN \__fp_parse_expand:w
- \else:
- \exp_after:wN @
- \exp_after:wN \use_none:n
- \exp_after:wN \__fp_parse_infix_::N
- \fi:
- }
-\group_end:
+\cs_set_protected:Npn \__fp_tmp:w #1
+ {
+ \cs_new:cpn { __fp_parse_infix_*:N } ##1##2
+ {
+ \if:w * \exp_not:N ##2
+ \exp_after:wN #1
+ \exp_after:wN ##1
+ \else:
+ \exp_after:wN \__fp_parse_infix_mul:N
+ \exp_after:wN ##1
+ \exp_after:wN ##2
+ \fi:
+ }
+ }
+\exp_args:Nc \__fp_tmp:w { __fp_parse_infix_^:N }
+\cs_set_protected:Npn \__fp_tmp:w #1#2#3
+ {
+ \cs_new:Npn #1 ##1##2
+ {
+ \if:w #2 \exp_not:N ##2
+ \exp_after:wN #1
+ \exp_after:wN ##1
+ \exp:w \exp_after:wN \__fp_parse_expand:w
+ \else:
+ \exp_after:wN #3
+ \exp_after:wN ##1
+ \exp_after:wN ##2
+ \fi:
+ }
+ }
+\exp_args:Nc \__fp_tmp:w { __fp_parse_infix_|:N } | \__fp_parse_infix_or:N
+\exp_args:Nc \__fp_tmp:w { __fp_parse_infix_&:N } & \__fp_parse_infix_and:N
+\cs_set_protected:Npn \__fp_tmp:w #1#2#3#4
+ {
+ \cs_new:Npn #1 ##1
+ {
+ \if_int_compare:w ##1 < \c__fp_prec_quest_int
+ #4
+ \exp_after:wN @
+ \exp_after:wN #2
+ \exp:w
+ \__fp_parse_operand:Nw #3
+ \exp_after:wN \__fp_parse_expand:w
+ \else:
+ \exp_after:wN @
+ \exp_after:wN \use_none:n
+ \exp_after:wN #1
+ \fi:
+ }
+ }
+\exp_args:Nc \__fp_tmp:w { __fp_parse_infix_?:N }
+ \__fp_ternary:NwwN \c__fp_prec_quest_int { }
+\exp_args:Nc \__fp_tmp:w { __fp_parse_infix_::N }
+ \__fp_ternary_auxii:NwwN \c__fp_prec_colon_int
+ {
+ \__msg_kernel_expandable_error:nnnn
+ { kernel } { fp-missing } { ? } { ~for~?: }
+ }
\cs_new:cpn { __fp_parse_infix_<:N } #1
{ \__fp_parse_compare:NNNNNNN #1 1 0 0 0 0 < }
\cs_new:cpn { __fp_parse_infix_=:N } #1
@@ -12239,11 +12142,7 @@
\cs_new:Npn \__fp_parse_compare_auxi:NNNNNNN #1#2#3#4#5#6#7
{
\if_case:w
- \if_catcode:w \scan_stop: \exp_not:N #7
- 4 \exp_stop_f:
- \else:
- \__int_eval:w `#7 - `< \__int_eval_end:
- \fi:
+ \__int_eval:w \exp_after:wN ` \token_to_str:N #7 - `< \__int_eval_end:
\__fp_parse_compare_auxii:NNNNN #2#2#4#5#6
\or: \__fp_parse_compare_auxii:NNNNN #2#3#2#5#6
\or: \__fp_parse_compare_auxii:NNNNN #2#3#4#2#6
@@ -12372,6 +12271,8 @@
\cs_new:Npn \__fp_function_store_end:wnnn
#1 \s__fp_stop #2#3#4
{ #4 {#2} }
+\__msg_kernel_new:nnn { kernel } { fp-deprecated }
+ { '#1'~deprecated;~use~'#2' }
\__msg_kernel_new:nnn { kernel } { unknown-fp-word }
{ Unknown~fp~word~#1. }
\__msg_kernel_new:nnn { kernel } { fp-missing }
@@ -12395,7 +12296,11 @@
\__msg_kernel_new:nnn { kernel } { fp-robust-cmd }
{ Robust~command~#1 invalid~in~fp~expression! }
}
-%% File: l3fp-logic.dtx Copyright (C) 2011-2014,2016 The LaTeX3 Project
+%% File: l3fp-logic.dtx Copyright (C) 2011-2014,2016,2017 The LaTeX3 Project
+\cs_new:Npn \__fp_parse_word_max:N
+ { \__fp_parse_function:NNN \__fp_minmax_o:Nw 2 }
+\cs_new:Npn \__fp_parse_word_min:N
+ { \__fp_parse_function:NNN \__fp_minmax_o:Nw 0 }
\prg_new_eq_conditional:NNn \fp_if_exist:N \cs_if_exist:N { TF , T , F , p }
\prg_new_eq_conditional:NNn \fp_if_exist:c \cs_if_exist:c { TF , T , F , p }
\prg_new_conditional:Npnn \fp_compare:n #1 { p , T , F , TF }
@@ -12551,7 +12456,7 @@
\token_if_eq_meaning:NNTF #2 0
{ \__msg_kernel_expandable_error:nnn { kernel } { zero-step } {#6} }
{
- \__fp_error:nnfn { bad-step } { }
+ \__fp_error:nnfn { fp-bad-step } { }
{ \fp_to_tl:n { \s__fp \__fp_chk:w #2#3#4 ; } } {#6}
}
\use_none:nnnnn
@@ -12562,7 +12467,7 @@
{
\fp_compare:nNnTF {#2} = {#3}
{
- \__fp_error:nffn { tiny-step }
+ \__fp_error:nffn { fp-tiny-step }
{ \fp_to_tl:n {#3} } { \fp_to_tl:n {#4} } {#6}
}
{
@@ -12629,18 +12534,6 @@
{ \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_sign_o:w ? \s__fp \__fp_chk:w #1#2; @
- {
- \if_case:w #1 \exp_stop_f:
- \__fp_case_return_same_o:w
- \or: \exp_after:wN \__fp_sign_aux_o:w
- \or: \exp_after:wN \__fp_sign_aux_o:w
- \else: \__fp_case_return_same_o:w
- \fi:
- \s__fp \__fp_chk:w #1 #2;
- }
-\cs_new:Npn \__fp_sign_aux_o:w \s__fp \__fp_chk:w #1 #2 #3 ;
- { \__fp_exp_after_o:w \s__fp \__fp_chk:w 1#2{1}{1000}{0000}{0000}{0000}; }
\cs_new:cpn { __fp_not_o:w } #1 \s__fp \__fp_chk:w #2#3; @
{
\if_meaning:w 0 #2
@@ -12717,28 +12610,13 @@
\__fp_exp_after_array_f:w #3 \s__fp_stop
#4 #1
}
-%% File: l3fp-basics.dtx Copyright (C) 2011-2014,2016 The LaTeX3 Project
-\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;
- {
- \if_meaning:w 2 #1
- \__fp_basics_pack_high_carry:w
- \fi:
- ; {#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;
- {
- \if_meaning:w 2 #1
- + 1
- \fi:
- \__int_eval_end:
- #2#3#4; {#5} ;
- }
-\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} }
+%% File: l3fp-basics.dtx Copyright (C) 2011-2014,2016,2017 The LaTeX3 Project
+\cs_new:Npn \__fp_parse_word_abs:N
+ { \__fp_parse_unary_function:NNN \__fp_set_sign_o:w 0 }
+\cs_new:Npn \__fp_parse_word_sign:N
+ { \__fp_parse_unary_function:NNN \__fp_sign_o:w ? }
+\cs_new:Npn \__fp_parse_word_sqrt:N
+ { \__fp_parse_unary_function:NNN \__fp_sqrt_o:w ? }
\cs_new:cpx { __fp_-_o:ww } \s__fp
{
\exp_not:c { __fp_+_o:ww }
@@ -12788,13 +12666,8 @@
\else:
\__fp_case_use:nw
{
- \if_meaning:w #1 #4
- \exp_after:wN \__fp_invalid_operation_o:Nww
- \exp_after:wN +
- \else:
- \exp_after:wN \__fp_invalid_operation_o:Nww
- \exp_after:wN -
- \fi:
+ \exp_last_unbraced:Nf \__fp_invalid_operation_o:Nww
+ { \token_if_eq_meaning:NNTF #1 #4 + - }
}
\fi:
\s__fp \__fp_chk:w 2 #2 #3;
@@ -13477,6 +13350,18 @@
\__int_value:w \__int_eval:w #6 + 19999 - #1 ;
\exp_after:wN ;
}
+\cs_new:Npn \__fp_sign_o:w ? \s__fp \__fp_chk:w #1#2; @
+ {
+ \if_case:w #1 \exp_stop_f:
+ \__fp_case_return_same_o:w
+ \or: \exp_after:wN \__fp_sign_aux_o:w
+ \or: \exp_after:wN \__fp_sign_aux_o:w
+ \else: \__fp_case_return_same_o:w
+ \fi:
+ \s__fp \__fp_chk:w #1 #2;
+ }
+\cs_new:Npn \__fp_sign_aux_o:w \s__fp \__fp_chk:w #1 #2 #3 ;
+ { \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; @
{
\exp_after:wN \__fp_exp_after_o:w
@@ -13487,9 +13372,9 @@
\if_case:w #3 \exp_stop_f: #1 \or: 1 \or: 0 \fi: \exp_stop_f:
#4;
}
-%% File: l3fp-extended.dtx Copyright (C) 2011-2014,2016 The LaTeX3 Project
+%% File: l3fp-extended.dtx Copyright (C) 2011-2014,2016,2017 The LaTeX3 Project
\tl_const:Nn \c__fp_one_fixed_tl
- { {10000} {0000} {0000} {0000} {0000} {0000} }
+ { {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
{
@@ -13854,22 +13739,22 @@
{15000}{0000}{0000}{0000}{0000}{0000};
\__fp_fixed_mul:wwn #1;
}
-\cs_new:Npn \__fp_ep_to_float:wwN #1,
- { + \__int_eval:w #1 \__fp_fixed_to_float:wN }
-\cs_new:Npn \__fp_ep_inv_to_float:wwN #1,#2;
+\cs_new:Npn \__fp_ep_to_float_o:wwN #1,
+ { + \__int_eval:w #1 \__fp_fixed_to_float_o:wN }
+\cs_new:Npn \__fp_ep_inv_to_float_o:wwN #1,#2;
{
\__fp_ep_div:wwwwn 1,{1000}{0000}{0000}{0000}{0000}{0000}; #1,#2;
- \__fp_ep_to_float:wwN
+ \__fp_ep_to_float_o:wwN
}
-\cs_new:Npn \__fp_fixed_inv_to_float:wN
- { \__fp_ep_inv_to_float:wwN 0, }
-\cs_new:Npn \__fp_fixed_to_float_rad:wN #1;
+\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;
{
\__fp_fixed_mul:wwn #1; {5729}{5779}{5130}{8232}{0876}{7981};
- { \__fp_ep_to_float:wwN 2, }
+ { \__fp_ep_to_float_o:wwN 2, }
}
-\cs_new:Npn \__fp_fixed_to_float:Nw #1#2; { \__fp_fixed_to_float:wN #2; #1 }
-\cs_new:Npn \__fp_fixed_to_float:wN #1#2#3#4#5#6; #7
+\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
{
+ \__int_eval:w \c__fp_block_int % for the 8-digit-at-the-start thing.
\exp_after:wN \exp_after:wN
@@ -13925,15 +13810,19 @@
\__int_value:w \__int_eval:w 1 #3#4 + 1 ;
}
%% File: l3fp-expo.dtx Copyright (C) 2011-2014,2016,2017 The LaTeX3 Project
-\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_parse_word_exp:N
+ { \__fp_parse_unary_function:NNN \__fp_exp_o:w ? }
+\cs_new:Npn \__fp_parse_word_ln:N
+ { \__fp_parse_unary_function:NNN \__fp_ln_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; @
{
\if_meaning:w 2 #3
@@ -14097,7 +13986,7 @@
\if_int_compare:w #1 = 1 \exp_stop_f:
\__fp_ln_Taylor_break:w
\fi:
- \exp_after:wN \__fp_fixed_div_int:wwN \c__fp_one_fixed_tl ; #1;
+ \exp_after:wN \__fp_fixed_div_int:wwN \c__fp_one_fixed_tl #1;
\__fp_fixed_add:wwn #2;
\__fp_fixed_mul:wwn #3;
{
@@ -14119,12 +14008,12 @@
\else:
\exp_after:wN \exp_after:wN \exp_after:wN \__fp_fixed_add:wwn
\fi:
- #3 ; #2 ;
+ #3 #2 ;
}
\cs_new:Npn \__fp_ln_exponent:wn #1; #2
{
\if_case:w #2 \exp_stop_f:
- 0 \__fp_case_return:nw { \__fp_fixed_to_float:Nw 2 }
+ 0 \__fp_case_return:nw { \__fp_fixed_to_float_o:Nw 2 }
\or:
\exp_after:wN \__fp_ln_exponent_one:ww \__int_value:w
\else:
@@ -14143,25 +14032,25 @@
\cs_new:Npn \__fp_ln_exponent_one:ww 1; #1;
{
0
- \exp_after:wN \__fp_fixed_sub:wwn \c__fp_ln_x_fixed_tl ; #1;
- \__fp_fixed_to_float:wN 0
+ \exp_after:wN \__fp_fixed_sub:wwn \c__fp_ln_x_fixed_tl #1;
+ \__fp_fixed_to_float_o:wN 0
}
\cs_new:Npn \__fp_ln_exponent_small:NNww #1#2#3; #4#5#6#7#8#9;
{
4
\exp_after:wN \__fp_fixed_mul:wwn
- \c__fp_ln_x_fixed_tl ;
+ \c__fp_ln_x_fixed_tl
{#3}{0000}{0000}{0000}{0000}{0000} ;
#2
{0000}{#4}{#5}{#6}{#7}{#8};
- \__fp_fixed_to_float:wN #1
+ \__fp_fixed_to_float_o:wN #1
}
\cs_new:Npn \__fp_exp_o:w #1 \s__fp \__fp_chk:w #2#3#4; @
{
\if_case:w #2 \exp_stop_f:
\__fp_case_return_o:Nw \c_one_fp
\or:
- \exp_after:wN \__fp_exp_normal:w
+ \exp_after:wN \__fp_exp_normal_o:w
\or:
\if_meaning:w 0 #3
\exp_after:wN \__fp_case_return_o:Nw
@@ -14175,55 +14064,53 @@
\fi:
\s__fp \__fp_chk:w #2#3#4;
}
-\cs_new:Npn \__fp_exp_normal:w \s__fp \__fp_chk:w 1#1
+\cs_new:Npn \__fp_exp_normal_o:w \s__fp \__fp_chk:w 1#1
{
\if_meaning:w 0 #1
- \__fp_exp_pos:NNwnw + \__fp_fixed_to_float:wN
+ \__fp_exp_pos_o:NNwnw + \__fp_fixed_to_float_o:wN
\else:
- \__fp_exp_pos:NNwnw - \__fp_fixed_inv_to_float:wN
+ \__fp_exp_pos_o:NNwnw - \__fp_fixed_inv_to_float_o:wN
\fi:
}
-\cs_new:Npn \__fp_exp_pos:NNwnw #1#2#3 \fi: #4#5;
+\cs_new:Npn \__fp_exp_pos_o:NNwnw #1#2#3 \fi: #4#5;
{
\fi:
- \exp_after:wN \__fp_sanitize:Nw
- \exp_after:wN 0
- \__int_value:w #1 \__int_eval:w
- \if_int_compare:w #4 < - \c__fp_half_prec_int
- 1
- \exp_after:wN \__fp_add_big_i_o:wNww
- \__int_value:w \__int_eval:w 1 - #4 ;
- 0 {1000}{0000}{0000}{0000} ; #5;
- \exp:w
- \else:
- \if_int_compare:w #4 > \c__fp_max_exp_exponent_int
- \exp_after:wN \__fp_exp_overflow:
- \exp:w
+ \if_int_compare:w #4 > \c__fp_max_exp_exponent_int
+ \token_if_eq_charcode:NNTF + #1
+ { \__fp_exp_overflow:NN \__fp_overflow:w \c_inf_fp }
+ { \__fp_exp_overflow:NN \__fp_underflow:w \c_zero_fp }
+ \exp:w
+ \else:
+ \exp_after:wN \__fp_sanitize:Nw
+ \exp_after:wN 0
+ \__int_value:w #1 \__int_eval:w
+ \if_int_compare:w #4 < 0 \exp_stop_f:
+ \exp_after:wN \use_i:nn
\else:
- \if_int_compare:w #4 < 0 \exp_stop_f:
- \exp_after:wN \use_i:nn
- \else:
- \exp_after:wN \use_ii:nn
- \fi:
- {
- 0
- \__fp_decimate:nNnnnn { - #4 }
- \__fp_exp_Taylor:Nnnwn
- }
- {
- \__fp_decimate:nNnnnn { \c__fp_prec_int - #4 }
- \__fp_exp_pos_large:NnnNwn
- }
- #5
- {#4}
- #1 #2 0
- \exp:w
+ \exp_after:wN \use_ii:nn
\fi:
- \fi:
+ {
+ 0
+ \__fp_decimate:nNnnnn { - #4 }
+ \__fp_exp_Taylor:Nnnwn
+ }
+ {
+ \__fp_decimate:nNnnnn { \c__fp_prec_int - #4 }
+ \__fp_exp_pos_large:NnnNwn
+ }
+ #5
+ {#4}
+ #1 #2 0
+ \exp:w
+ \fi:
\exp_after:wN \exp_end:
}
-\cs_new:Npn \__fp_exp_overflow:
- { + 2 * \c__fp_max_exponent_int ; {1000} {0000} {0000} {0000} ; }
+\cs_new:Npn \__fp_exp_overflow:NN #1#2
+ {
+ \exp_after:wN \exp_after:wN
+ \exp_after:wN #1
+ \exp_after:wN #2
+ }
\cs_new:Npn \__fp_exp_Taylor:Nnnwn #1#2#3 #4; #5 #6
{
#6
@@ -14256,7 +14143,6 @@
\exp_after:wN \exp_after:wN
\cs:w __fp_exp_large_ \__int_to_roman:w #6 :wN \exp_after:wN \cs_end:
\exp_after:wN \c__fp_one_fixed_tl
- \exp_after:wN ;
\__int_value:w #3 #4 \exp_stop_f:
#5 00000 ;
}
@@ -14379,7 +14265,7 @@
\fi:
{
\if_meaning:w 1 #1
- \exp_after:wN \__fp_pow_normal:ww
+ \exp_after:wN \__fp_pow_normal_o:ww
\else:
\exp_after:wN \__fp_pow_zero_or_inf:ww
\fi:
@@ -14411,7 +14297,7 @@
\fi:
\s__fp \__fp_chk:w #3#4
}
-\cs_new:Npn \__fp_pow_normal:ww
+\cs_new:Npn \__fp_pow_normal_o:ww
\s__fp \__fp_chk:w 1 #1#2#3; \s__fp \__fp_chk:w #4#5
{
\if_int_compare:w \__str_if_eq_x:nn { #2 #3 }
@@ -14423,7 +14309,7 @@
\fi:
\if_case:w #4 \exp_stop_f:
\or:
- \exp_after:wN \__fp_pow_npos:Nww
+ \exp_after:wN \__fp_pow_npos_o:Nww
\exp_after:wN #5
\or:
\if_meaning:w 2 #5 \exp_after:wN \reverse_if:N \fi:
@@ -14440,7 +14326,7 @@
\s__fp \__fp_chk:w 1 #1 {#2} #3 ;
\s__fp \__fp_chk:w #4 #5
}
-\cs_new:Npn \__fp_pow_npos:Nww #1 \s__fp \__fp_chk:w 1#2#3
+\cs_new:Npn \__fp_pow_npos_o:Nww #1 \s__fp \__fp_chk:w 1#2#3
{
\exp_after:wN \__fp_sanitize:Nw
\exp_after:wN 0
@@ -14448,11 +14334,11 @@
\if:w #1 \if_int_compare:w #3 > 0 \exp_stop_f: 0 \else: 2 \fi:
\exp_after:wN \__fp_pow_npos_aux:NNnww
\exp_after:wN +
- \exp_after:wN \__fp_fixed_to_float:wN
+ \exp_after:wN \__fp_fixed_to_float_o:wN
\else:
\exp_after:wN \__fp_pow_npos_aux:NNnww
\exp_after:wN -
- \exp_after:wN \__fp_fixed_inv_to_float:wN
+ \exp_after:wN \__fp_fixed_inv_to_float_o:wN
\fi:
{#3}
}
@@ -14464,7 +14350,7 @@
\__fp_pow_exponent:wnN {#3}
\__fp_fixed_mul:wwn #8 {0000}{0000} ;
\__fp_pow_B:wwN #7;
- #1 #2 0 % fixed_to_float:wN
+ #1 #2 0 % fixed_to_float_o:wN
}
\cs_new:Npn \__fp_pow_exponent:wnN #1; #2
{
@@ -14516,7 +14402,7 @@
\cs_new:Npn \__fp_pow_C_overflow:w #1; #2; #3
{
+ 2 * \c__fp_max_exponent_int
- \exp_after:wN \__fp_fixed_continue:wn \c__fp_one_fixed_tl ;
+ \exp_after:wN \__fp_fixed_continue:wn \c__fp_one_fixed_tl
}
\cs_new:Npn \__fp_pow_C_neg:w #1 ; 1
{
@@ -14540,7 +14426,7 @@
\fi:
}
\cs_new:Npn \__fp_pow_C_pack:w
- { \exp_after:wN \__fp_exp_large_v:wN \c__fp_one_fixed_tl ; }
+ { \exp_after:wN \__fp_exp_large_v:wN \c__fp_one_fixed_tl }
\cs_new:Npn \__fp_pow_neg:www \s__fp \__fp_chk:w #1#2; #3; #4;
{
\if_case:w \__fp_pow_neg_case:w #4 ;
@@ -14596,7 +14482,34 @@
\fi:
\fi:
}
-%% File: l3fp-trig.dtx Copyright (C) 2011-2014,2016 The LaTeX3 Project
+%% File: l3fp-trig.dtx Copyright (C) 2011-2014,2016,2017 The LaTeX3 Project
+\tl_map_inline:nn
+ {
+ {acos} {acsc} {asec} {asin}
+ {cos} {cot} {csc} {sec} {sin} {tan}
+ }
+ {
+ \cs_new:cpx { __fp_parse_word_#1:N }
+ {
+ \exp_not:N \__fp_parse_unary_function:NNN
+ \exp_not:c { __fp_#1_o:w }
+ \exp_not:N \use_i:nn
+ }
+ \cs_new:cpx { __fp_parse_word_#1d:N }
+ {
+ \exp_not:N \__fp_parse_unary_function:NNN
+ \exp_not:c { __fp_#1_o:w }
+ \exp_not:N \use_ii:nn
+ }
+ }
+\cs_new:Npn \__fp_parse_word_acot:N
+ { \__fp_parse_function:NNN \__fp_acot_o:Nw \use_i:nn }
+\cs_new:Npn \__fp_parse_word_acotd:N
+ { \__fp_parse_function:NNN \__fp_acot_o:Nw \use_ii:nn }
+\cs_new:Npn \__fp_parse_word_atan:N
+ { \__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; @
{
\if_case:w #2 \exp_stop_f:
@@ -14604,7 +14517,7 @@
\or: \__fp_case_use:nw
{
\__fp_trig:NNNNNwn #1 \__fp_sin_series_o:NNwwww
- \__fp_ep_to_float:wwN #3 0
+ \__fp_ep_to_float_o:wwN #3 0
}
\or: \__fp_case_use:nw
{ \__fp_invalid_operation_o:fw { #1 { sin } { sind } } }
@@ -14619,7 +14532,7 @@
\or: \__fp_case_use:nw
{
\__fp_trig:NNNNNwn #1 \__fp_sin_series_o:NNwwww
- \__fp_ep_to_float:wwN 0 2
+ \__fp_ep_to_float_o:wwN 0 2
}
\or: \__fp_case_use:nw
{ \__fp_invalid_operation_o:fw { #1 { cos } { cosd } } }
@@ -14634,7 +14547,7 @@
\or: \__fp_case_use:nw
{
\__fp_trig:NNNNNwn #1 \__fp_sin_series_o:NNwwww
- \__fp_ep_inv_to_float:wwN #3 0
+ \__fp_ep_inv_to_float_o:wwN #3 0
}
\or: \__fp_case_use:nw
{ \__fp_invalid_operation_o:fw { #1 { csc } { cscd } } }
@@ -14649,7 +14562,7 @@
\or: \__fp_case_use:nw
{
\__fp_trig:NNNNNwn #1 \__fp_sin_series_o:NNwwww
- \__fp_ep_inv_to_float:wwN 0 2
+ \__fp_ep_inv_to_float_o:wwN 0 2
}
\or: \__fp_case_use:nw
{ \__fp_invalid_operation_o:fw { #1 { sec } { secd } } }
@@ -15098,7 +15011,7 @@
{
\exp_after:wN \__fp_sanitize:Nw
\exp_after:wN #1
- \__int_value:w \__int_eval:w \__fp_ep_to_float:wwN
+ \__int_value:w \__int_eval:w \__fp_ep_to_float_o:wwN
}
#1
}
@@ -15154,7 +15067,7 @@
\exp_after:wN #2
\__int_value:w \__int_eval:w
\if_meaning:w 2 #5 7 - \fi: #3 \exp_after:wN ;
- \c__fp_one_fixed_tl ;
+ \c__fp_one_fixed_tl
{0000}{0000}{0000}{0000}{0000}{0000};
0,{0000}{0000}{0000}{0000}{0000}{0000}; #1
}
@@ -15220,7 +15133,7 @@
\if_int_compare:w #1 = -1 \exp_stop_f:
\__fp_atan_Taylor_break:w
\fi:
- \exp_after:wN \__fp_fixed_div_int:wwN \c__fp_one_fixed_tl ; #1;
+ \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_atan_Taylor_loop:www
@@ -15249,7 +15162,7 @@
\__int_value:w \__int_eval:w #2 / 2 ; #2;
}
}
- { #7 \__fp_fixed_to_float:wN \__fp_fixed_to_float_rad:wN }
+ { #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;
@@ -15325,7 +15238,7 @@
}
\cs_new:Npn \__fp_asin_isqrt:wn #1;
{
- \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_fixed_add_one:wN #1;
\__fp_fixed_continue:wn { \__fp_ep_mul:wwwwn 0, } 0,
@@ -15375,7 +15288,7 @@
{ \__fp_asin_auxi_o:NnNww #1 {#3} #4 }
}
}
-%% File: l3fp-convert.dtx Copyright(C) 2011-2014,2016 The LaTeX3 Project
+%% File: l3fp-convert.dtx Copyright(C) 2011-2014,2016,2017 The LaTeX3 Project
\cs_new:Npn \__fp_trim_zeros:w #1 ;
{
\__fp_trim_zeros_loop:w #1
@@ -15401,18 +15314,15 @@
\or:
\__fp_case_use:nw
{
- \exp_args:Nf \__fp_invalid_operation:nnw
- {
- \__fp_expand:n
- { { 1.000000000000000e } \int_use:N \c__fp_max_exponent_int }
- }
+ \__fp_invalid_operation:nnw
+ { \fp_to_scientific:N \c__fp_overflowing_fp }
{ fp_to_scientific }
}
\or:
\__fp_case_use:nw
{
\__fp_invalid_operation:nnw
- { 0.000000000000000e0 }
+ { \fp_to_scientific:N \c_zero_fp }
{ fp_to_scientific }
}
\fi:
@@ -15446,10 +15356,7 @@
\__fp_case_use:nw
{
\__fp_invalid_operation:nnw
- {
- \exp_after:wN \exp_after:wN \exp_after:wN 1
- \prg_replicate:nn \c__fp_max_exponent_int 0
- }
+ { \fp_to_decimal:N \c__fp_overflowing_fp }
{ fp_to_decimal }
}
\or:
@@ -15618,7 +15525,11 @@
}
\exp_not:N \__fp_array_to_clist_loop:Nw
}
-%% File: l3fp-random.dtx Copyright (C) 2016 The LaTeX3 Project
+%% File: l3fp-random.dtx Copyright (C) 2016,2017 The LaTeX3 Project
+\cs_new:Npn \__fp_parse_word_rand:N
+ { \__fp_parse_function:NNN \__fp_rand_o:Nw ? }
+\cs_new:Npn \__fp_parse_word_randint:N
+ { \__fp_parse_function:NNN \__fp_randint_o:Nw ? }
\cs_if_exist:NF \pdftex_uniformdeviate:D
{
\__msg_kernel_new:nnn { kernel } { fp-no-random }
@@ -15835,8 +15746,6 @@
\fp_new:N \g_tmpa_fp
\fp_new:N \g_tmpb_fp
%% File l3sort.dtx (C) Copyright 2012,2014-2017 The LaTeX3 Project
-\GetIdInfo$Id: l3sort.dtx 6967 2017-02-20 14:51:30Z bruno $
- {L3 Sorting functions}
\int_new:N \l__sort_length_int
\int_new:N \l__sort_min_int
\int_new:N \l__sort_top_int
@@ -16249,9 +16158,7 @@
\cs_gset_eq:NN \sort_reversed: \sort_return_swapped:
\sort_return_swapped:
}
-%% File: l3box.dtx Copyright (C) 2005-2016 The LaTeX3 Project
-\GetIdInfo$Id: l3box.dtx 6943 2017-02-17 16:47:59Z bruno $
- {L3 Experimental boxes}
+%% File: l3box.dtx Copyright (C) 2005-2017 The LaTeX3 Project
\cs_new_protected:Npn \box_new:N #1
{
\__chk_if_free_cs:N #1
@@ -16457,8 +16364,6 @@
\cs_new_protected:Npn \vbox_set_split_to_ht:NNn #1#2#3
{ \tex_setbox:D #1 \tex_vsplit:D #2 to \__dim_eval:w #3 \__dim_eval_end: }
%% File: l3coffins.dtx Copyright(C) 2010-2017 The LaTeX3 Project
-\GetIdInfo$Id: l3coffins.dtx 6906 2017-02-12 20:07:58Z bruno $
- {L3 Coffin code layer}
\box_new:N \l__coffin_internal_box
\dim_new:N \l__coffin_internal_dim
\tl_new:N \l__coffin_internal_tl
@@ -17264,9 +17169,7 @@
> ~ wd~=~#4 \\
Poles~of~coffin~#1 :
}
-%% File: l3color.dtx Copyright(C) 2011,2012,2014,2016 The LaTeX3 Project
-\GetIdInfo$Id: l3color.dtx 6805 2016-12-28 22:15:52Z joseph $
- {L3 Experimental color support}
+%% File: l3color.dtx Copyright(C) 2011,2012,2014,2016,2017 The LaTeX3 Project
\cs_new_eq:NN \color_group_begin: \group_begin:
\cs_new_protected:Npn \color_group_end:
{
@@ -17290,8 +17193,6 @@
}
}
%% File: l3sys.dtx Copyright (C) 2015-2017 The LaTeX3 Project
-\GetIdInfo$Id: l3sys.dtx 6976 2017-02-22 16:49:53Z stonezeng $
- {L3 Experimental system/runtime functions}
\str_const:Nx \c_sys_jobname_str { \tex_jobname:D }
\int_const:Nn \c_sys_minute_int
{ \int_mod:nn { \tex_time:D } { 60 } }
@@ -17378,8 +17279,6 @@
\str_const:Nn \c_sys_output_str { dvi }
}
%% File: l3deprecation.dtx (C) Copyright 2017 The LaTeX3 Project
-\GetIdInfo$Id: l3deprecation.dtx 6966 2017-02-20 03:39:43Z bruno $
- {L3 Deprecation errors}
\cs_new_protected:Npn \__deprecation_error:Nnn #1#2#3
{
\etex_protected:D \tex_outer:D \tex_edef:D #1
@@ -17431,11 +17330,10 @@
\__deprecation_error:Nnn \c_minus_one { - 1 } { 2018-12-31 }
\__deprecation_error:Nnn \sort_ordered: { \sort_return_same: } { 2018-12-31 }
\__deprecation_error:Nnn \sort_reversed: { \sort_return_swapped: } { 2018-12-31 }
+ \cs_set_eq:NN \__fp_parse_round:Nw \__fp_parse_round_deprecation_error:Nw
\cs_set_eq:NN \deprecation_error: \scan_stop:
}
%% File: l3candidates.dtx Copyright (C) 2012-2017 The LaTeX3 Project
-\GetIdInfo$Id: l3candidates.dtx 6967 2017-02-20 14:51:30Z bruno $
- {L3 Experimental additions to l3kernel}
\fp_new:N \l__box_angle_fp
\fp_new:N \l__box_cos_fp
\fp_new:N \l__box_sin_fp
@@ -19524,8 +19422,6 @@
\cs_new_protected:Npn \peek_N_type:F
{ \__peek_token_generic:NNF \__peek_execute_branches_N_type: \scan_stop: }
%% File: l3luatex.dtx Copyright (C) 2010-2017 The LaTeX3 Project
-\GetIdInfo$Id: l3luatex.dtx 6953 2017-02-18 19:07:54Z joseph $
- {L3 Experimental LuaTeX-specific functions}
\cs_new:Npn \lua_now_x:n #1 { \luatex_directlua:D {#1} }
\cs_new:Npn \lua_now:n #1 { \lua_now_x:n { \exp_not:n {#1} } }
\cs_new_protected:Npn \lua_shipout_x:n #1 { \luatex_latelua:D {#1} }
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex
index f6a01c367e5..4a963470869 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex
+++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex
@@ -19,10 +19,8 @@
%% and all files in that bundle must be distributed together.
%%
%% File: expl3.dtx Copyright (C) 1990-2017 The LaTeX3 Project
-\def\ExplFileName{expl3}%
-\def\ExplFileDescription{L3 programming layer}%
-\def\ExplFileDate{2017/03/11}%
-\def\ExplFileVersion{6988}%
+\def\ExplFileDate{2017/03/18}%
+\def\ExplFileVersion{7019}%
\let\ExplLoaderFileVersion\ExplFileVersion
\begingroup
\def\tempa{LaTeX2e}%
@@ -37,22 +35,22 @@
\expandafter\endgroup
\next
\begingroup\expandafter\expandafter\expandafter\endgroup
-\expandafter\ifx\csname ver@\ExplFileName -generic.tex\endcsname\relax
+\expandafter\ifx\csname ver@expl3-generic.tex\endcsname\relax
\else
\immediate\write-1
{%
- Package \ExplFileName\space Info: The package is already loaded.%
+ Package expl3 Info: The package is already loaded.%
}%
\expandafter\endinput
\fi
\immediate\write-1
{%
- Package: \ExplFileName\space
+ Package: expl3
\ExplFileDate\space v\ExplFileVersion\space
- \ExplFileDescription\space (loader)%
+ L3 programming layer (loader)%
}%
-\expandafter\edef\csname ver@\ExplFileName -generic.tex\endcsname
- {\ExplFileDate\space v\ExplFileVersion\space \ExplFileDescription}%
+\expandafter\edef\csname ver@expl3-generic.tex\endcsname
+ {\ExplFileDate\space v\ExplFileVersion\space L3 programming layer}%
\expandafter\edef\csname l@expl@tidy@tl\endcsname
{%
\catcode64=\the\catcode64\relax
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3.sty b/Master/texmf-dist/tex/latex/l3kernel/expl3.sty
index a17198feaa2..f5e9fc4e40f 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/expl3.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/expl3.sty
@@ -19,15 +19,13 @@
%% and all files in that bundle must be distributed together.
%%
%% File: expl3.dtx Copyright (C) 1990-2017 The LaTeX3 Project
-\def\ExplFileName{expl3}%
-\def\ExplFileDescription{L3 programming layer}%
-\def\ExplFileDate{2017/03/11}%
-\def\ExplFileVersion{6988}%
+\def\ExplFileDate{2017/03/18}%
+\def\ExplFileVersion{7019}%
\let\ExplLoaderFileVersion\ExplFileVersion
-\ProvidesPackage{\ExplFileName}
+\ProvidesPackage{expl3}
[%
\ExplFileDate\space v\ExplFileVersion\space
- \ExplFileDescription\space (loader)
+ L3 programming layer (loader)
]%
\newcommand\expl@create@bool@option[2]%
{%
@@ -73,7 +71,6 @@
\expandafter\ifx\csname tex\string _let:D\endcsname\relax
\expandafter\endinput
\fi
-\protected\def\GetIdInfoLog{}
\AtBeginDocument
{
\cs_if_exist:NF \color
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3basics.sty b/Master/texmf-dist/tex/latex/l3kernel/l3basics.sty
index 8d22345ea4e..d8acdbed580 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3basics.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3basics.sty
@@ -19,7 +19,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: l3oldmodules.dtx Copyright (C) 2014,2016,2017 The LaTeX3 Project
-\def\ExplFileDate{2017/03/11}
+\def\ExplFileDate{2017/03/18}
\def\old@liii@module@name
{l3basics}
\ProvidesPackage\old@liii@module@name
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3bootstrap.sty b/Master/texmf-dist/tex/latex/l3kernel/l3bootstrap.sty
index e9dc07fa3ed..8555b517dc8 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3bootstrap.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3bootstrap.sty
@@ -19,7 +19,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: l3oldmodules.dtx Copyright (C) 2014,2016,2017 The LaTeX3 Project
-\def\ExplFileDate{2017/03/11}
+\def\ExplFileDate{2017/03/18}
\def\old@liii@module@name
{l3bootstrap}
\ProvidesPackage\old@liii@module@name
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3box.sty b/Master/texmf-dist/tex/latex/l3kernel/l3box.sty
index 1c4210422ca..7fd4c58fba7 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3box.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3box.sty
@@ -19,7 +19,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: l3oldmodules.dtx Copyright (C) 2014,2016,2017 The LaTeX3 Project
-\def\ExplFileDate{2017/03/11}
+\def\ExplFileDate{2017/03/18}
\def\old@liii@module@name
{l3box}
\ProvidesPackage\old@liii@module@name
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3candidates.sty b/Master/texmf-dist/tex/latex/l3kernel/l3candidates.sty
index 14fcf8058e1..f6d6c1ba1e5 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3candidates.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3candidates.sty
@@ -19,7 +19,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: l3oldmodules.dtx Copyright (C) 2014,2016,2017 The LaTeX3 Project
-\def\ExplFileDate{2017/03/11}
+\def\ExplFileDate{2017/03/18}
\def\old@liii@module@name
{l3candidates}
\ProvidesPackage\old@liii@module@name
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3clist.sty b/Master/texmf-dist/tex/latex/l3kernel/l3clist.sty
index dd9d31d8f8b..91f96a31976 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3clist.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3clist.sty
@@ -19,7 +19,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: l3oldmodules.dtx Copyright (C) 2014,2016,2017 The LaTeX3 Project
-\def\ExplFileDate{2017/03/11}
+\def\ExplFileDate{2017/03/18}
\def\old@liii@module@name
{l3clist}
\ProvidesPackage\old@liii@module@name
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3coffins.sty b/Master/texmf-dist/tex/latex/l3kernel/l3coffins.sty
index d21f7355a24..30f183f5d0e 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3coffins.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3coffins.sty
@@ -19,7 +19,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: l3oldmodules.dtx Copyright (C) 2014,2016,2017 The LaTeX3 Project
-\def\ExplFileDate{2017/03/11}
+\def\ExplFileDate{2017/03/18}
\def\old@liii@module@name
{l3coffins}
\ProvidesPackage\old@liii@module@name
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3color.sty b/Master/texmf-dist/tex/latex/l3kernel/l3color.sty
index 05f2b8ddf78..170fcb5324a 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3color.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3color.sty
@@ -19,7 +19,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: l3oldmodules.dtx Copyright (C) 2014,2016,2017 The LaTeX3 Project
-\def\ExplFileDate{2017/03/11}
+\def\ExplFileDate{2017/03/18}
\def\old@liii@module@name
{l3color}
\ProvidesPackage\old@liii@module@name
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls b/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls
index 7a7d0125084..3f34f8a113f 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls
@@ -18,20 +18,16 @@
%% This file is part of the "l3kernel bundle" (The Work in LPPL)
%% and all files in that bundle must be distributed together.
%%
-%% File: l3doc.dtx Copyright (C) 1990-2016 The LaTeX3 project
-\let \filenameOld \ExplFileName
+%% File: l3doc.dtx Copyright (C) 1990-2017 The LaTeX3 project
\let \filedateOld \ExplFileDate
\let \fileversionOld \ExplFileVersion
-\let \filedescriptionOld \ExplFileDescription
\RequirePackage{expl3,xparse,calc}
-\GetIdInfo$Id: l3doc.dtx 6943 2017-02-17 16:47:59Z bruno $
- {L3 Experimental documentation class}
-\ProvidesExplClass
- {\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
-\let \ExplFileName \filenameOld
+\def\ExplFileDate{2017/03/18}
+\def\ExplFileVersion{7019}
+\ProvidesExplClass{l3doc}{\ExplFileDate}{\ExplFileVersion}
+ {L3 Experimental documentation class}
\let \ExplFileDate \filedateOld
\let \ExplFileVersion \fileversionOld
-\let \ExplFileDescription \filedescriptionOld
\clist_new:N \g_docinput_clist
\seq_new:N \g_doc_functions_seq
\seq_new:N \g_doc_macros_seq
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3docstrip.tex b/Master/texmf-dist/tex/latex/l3kernel/l3docstrip.tex
index 3970ba6d68d..c357fd7c80a 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3docstrip.tex
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3docstrip.tex
@@ -18,10 +18,9 @@
%% This file is part of the "l3kernel bundle" (The Work in LPPL)
%% and all files in that bundle must be distributed together.
%%
-%% File l3dosctrip.dtx Copyright (C) 2012,2016 The LaTeX3 Project
-\def\ExplFileDate{2012/06/08}
-\def\ExplFileName{l3docstrip}
-\def\ExplFileVersion{3787}
+%% File l3dosctrip.dtx Copyright (C) 2012,2016,2017 The LaTeX3 Project
+\def\ExplFileDate{2017/03/18}
+\def\ExplFileVersion{7019}
\input docstrip %
\def\checkOption<#1{%
\ifcase
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def b/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def
index 6a5afa728e8..671b5a044d2 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def
@@ -19,8 +19,8 @@
%% and all files in that bundle must be distributed together.
%%
%% File: l3drivers.dtx Copyright(C) 2011-2017 The LaTeX3 Project
-\GetIdInfo$Id: l3drivers.dtx 6954 2017-02-18 20:26:11Z joseph $
- {L3 Experimental drivers}
+\def\ExplFileDate{2017/03/18}
+\def\ExplFileVersion{7019}
\ProvidesExplFile
{l3dvidpfmx.def}{\ExplFileDate}{\ExplFileVersion}
{L3 Experimental driver: dvipdfmx}
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def b/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def
index fb26087e4ba..690e0f23169 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def
@@ -19,8 +19,8 @@
%% and all files in that bundle must be distributed together.
%%
%% File: l3drivers.dtx Copyright(C) 2011-2017 The LaTeX3 Project
-\GetIdInfo$Id: l3drivers.dtx 6954 2017-02-18 20:26:11Z joseph $
- {L3 Experimental drivers}
+\def\ExplFileDate{2017/03/18}
+\def\ExplFileVersion{7019}
\ProvidesExplFile
{l3dvips.def}{\ExplFileDate}{\ExplFileVersion}
{L3 Experimental driver: dvips}
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def b/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def
index d5379bf5d97..12784d943c1 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def
@@ -19,8 +19,8 @@
%% and all files in that bundle must be distributed together.
%%
%% File: l3drivers.dtx Copyright(C) 2011-2017 The LaTeX3 Project
-\GetIdInfo$Id: l3drivers.dtx 6954 2017-02-18 20:26:11Z joseph $
- {L3 Experimental drivers}
+\def\ExplFileDate{2017/03/18}
+\def\ExplFileVersion{7019}
\ProvidesExplFile
{l3dvisvgm.def}{\ExplFileDate}{\ExplFileVersion}
{L3 Experimental driver: dvisvgm}
@@ -145,7 +145,7 @@
\l__driver_draw_scope_int
\g__driver_draw_scope_int
\group_begin:
- \int_gset:Nn \g__driver_draw_scope_int { 0 }
+ \int_gzero:N \g__driver_draw_scope_int
}
\cs_new_protected:Npn \__driver_draw_scope_end:
{
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3expan.sty b/Master/texmf-dist/tex/latex/l3kernel/l3expan.sty
index 455ec98d0ab..40b9a4ce3e2 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3expan.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3expan.sty
@@ -19,7 +19,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: l3oldmodules.dtx Copyright (C) 2014,2016,2017 The LaTeX3 Project
-\def\ExplFileDate{2017/03/11}
+\def\ExplFileDate{2017/03/18}
\def\old@liii@module@name
{l3expan}
\ProvidesPackage\old@liii@module@name
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3file.sty b/Master/texmf-dist/tex/latex/l3kernel/l3file.sty
index eb76909636c..c0be015254c 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3file.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3file.sty
@@ -19,7 +19,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: l3oldmodules.dtx Copyright (C) 2014,2016,2017 The LaTeX3 Project
-\def\ExplFileDate{2017/03/11}
+\def\ExplFileDate{2017/03/18}
\def\old@liii@module@name
{l3file}
\ProvidesPackage\old@liii@module@name
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3fp.sty b/Master/texmf-dist/tex/latex/l3kernel/l3fp.sty
index 1ac705c5c59..ef82a4fb713 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3fp.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3fp.sty
@@ -19,7 +19,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: l3oldmodules.dtx Copyright (C) 2014,2016,2017 The LaTeX3 Project
-\def\ExplFileDate{2017/03/11}
+\def\ExplFileDate{2017/03/18}
\def\old@liii@module@name
{l3fp}
\ProvidesPackage\old@liii@module@name
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3int.sty b/Master/texmf-dist/tex/latex/l3kernel/l3int.sty
index 3529066aa8a..10eb3bcc2f9 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3int.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3int.sty
@@ -19,7 +19,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: l3oldmodules.dtx Copyright (C) 2014,2016,2017 The LaTeX3 Project
-\def\ExplFileDate{2017/03/11}
+\def\ExplFileDate{2017/03/18}
\def\old@liii@module@name
{l3int}
\ProvidesPackage\old@liii@module@name
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3keys.sty b/Master/texmf-dist/tex/latex/l3kernel/l3keys.sty
index ea33c518740..43011e63129 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3keys.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3keys.sty
@@ -19,7 +19,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: l3oldmodules.dtx Copyright (C) 2014,2016,2017 The LaTeX3 Project
-\def\ExplFileDate{2017/03/11}
+\def\ExplFileDate{2017/03/18}
\def\old@liii@module@name
{l3keys}
\ProvidesPackage\old@liii@module@name
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3msg.sty b/Master/texmf-dist/tex/latex/l3kernel/l3msg.sty
index 87644efb700..29aaa04fa60 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3msg.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3msg.sty
@@ -19,7 +19,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: l3oldmodules.dtx Copyright (C) 2014,2016,2017 The LaTeX3 Project
-\def\ExplFileDate{2017/03/11}
+\def\ExplFileDate{2017/03/18}
\def\old@liii@module@name
{l3msg}
\ProvidesPackage\old@liii@module@name
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3names.sty b/Master/texmf-dist/tex/latex/l3kernel/l3names.sty
index b5c22bc8cc5..db14da323a5 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3names.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3names.sty
@@ -19,7 +19,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: l3oldmodules.dtx Copyright (C) 2014,2016,2017 The LaTeX3 Project
-\def\ExplFileDate{2017/03/11}
+\def\ExplFileDate{2017/03/18}
\def\old@liii@module@name
{l3names}
\ProvidesPackage\old@liii@module@name
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def b/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def
index d2a281110ad..f21db61784d 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def
@@ -19,8 +19,8 @@
%% and all files in that bundle must be distributed together.
%%
%% File: l3drivers.dtx Copyright(C) 2011-2017 The LaTeX3 Project
-\GetIdInfo$Id: l3drivers.dtx 6954 2017-02-18 20:26:11Z joseph $
- {L3 Experimental drivers}
+\def\ExplFileDate{2017/03/18}
+\def\ExplFileVersion{7019}
\ProvidesExplFile
{l3pdfmode.def}{\ExplFileDate}{\ExplFileVersion}
{L3 Experimental driver: PDF mode}
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3prg.sty b/Master/texmf-dist/tex/latex/l3kernel/l3prg.sty
index 36a7a09c787..3b981245675 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3prg.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3prg.sty
@@ -19,7 +19,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: l3oldmodules.dtx Copyright (C) 2014,2016,2017 The LaTeX3 Project
-\def\ExplFileDate{2017/03/11}
+\def\ExplFileDate{2017/03/18}
\def\old@liii@module@name
{l3prg}
\ProvidesPackage\old@liii@module@name
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3prop.sty b/Master/texmf-dist/tex/latex/l3kernel/l3prop.sty
index 25633620189..dda20c8bc8b 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3prop.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3prop.sty
@@ -19,7 +19,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: l3oldmodules.dtx Copyright (C) 2014,2016,2017 The LaTeX3 Project
-\def\ExplFileDate{2017/03/11}
+\def\ExplFileDate{2017/03/18}
\def\old@liii@module@name
{l3prop}
\ProvidesPackage\old@liii@module@name
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3quark.sty b/Master/texmf-dist/tex/latex/l3kernel/l3quark.sty
index f668e406861..c762c1376ca 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3quark.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3quark.sty
@@ -19,7 +19,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: l3oldmodules.dtx Copyright (C) 2014,2016,2017 The LaTeX3 Project
-\def\ExplFileDate{2017/03/11}
+\def\ExplFileDate{2017/03/18}
\def\old@liii@module@name
{l3quark}
\ProvidesPackage\old@liii@module@name
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3seq.sty b/Master/texmf-dist/tex/latex/l3kernel/l3seq.sty
index a3435add4a2..84de19a58cf 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3seq.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3seq.sty
@@ -19,7 +19,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: l3oldmodules.dtx Copyright (C) 2014,2016,2017 The LaTeX3 Project
-\def\ExplFileDate{2017/03/11}
+\def\ExplFileDate{2017/03/18}
\def\old@liii@module@name
{l3seq}
\ProvidesPackage\old@liii@module@name
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3skip.sty b/Master/texmf-dist/tex/latex/l3kernel/l3skip.sty
index e214622b9bf..857f24cbfc1 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3skip.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3skip.sty
@@ -19,7 +19,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: l3oldmodules.dtx Copyright (C) 2014,2016,2017 The LaTeX3 Project
-\def\ExplFileDate{2017/03/11}
+\def\ExplFileDate{2017/03/18}
\def\old@liii@module@name
{l3skip}
\ProvidesPackage\old@liii@module@name
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3sort.sty b/Master/texmf-dist/tex/latex/l3kernel/l3sort.sty
index 45b856aa623..15695d28116 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3sort.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3sort.sty
@@ -19,7 +19,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: l3oldmodules.dtx Copyright (C) 2014,2016,2017 The LaTeX3 Project
-\def\ExplFileDate{2017/03/11}
+\def\ExplFileDate{2017/03/18}
\def\old@liii@module@name
{l3sort}
\ProvidesPackage\old@liii@module@name
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3str.sty b/Master/texmf-dist/tex/latex/l3kernel/l3str.sty
index a55118cf9de..8a9eddb49e0 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3str.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3str.sty
@@ -19,7 +19,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: l3oldmodules.dtx Copyright (C) 2014,2016,2017 The LaTeX3 Project
-\def\ExplFileDate{2017/03/11}
+\def\ExplFileDate{2017/03/18}
\def\old@liii@module@name
{l3str}
\ProvidesPackage\old@liii@module@name
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3tl.sty b/Master/texmf-dist/tex/latex/l3kernel/l3tl.sty
index ef759c91bfc..9d888a679cc 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3tl.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3tl.sty
@@ -19,7 +19,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: l3oldmodules.dtx Copyright (C) 2014,2016,2017 The LaTeX3 Project
-\def\ExplFileDate{2017/03/11}
+\def\ExplFileDate{2017/03/18}
\def\old@liii@module@name
{l3tl}
\ProvidesPackage\old@liii@module@name
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3token.sty b/Master/texmf-dist/tex/latex/l3kernel/l3token.sty
index 53a0c877062..5621182916a 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3token.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3token.sty
@@ -19,7 +19,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: l3oldmodules.dtx Copyright (C) 2014,2016,2017 The LaTeX3 Project
-\def\ExplFileDate{2017/03/11}
+\def\ExplFileDate{2017/03/18}
\def\old@liii@module@name
{l3token}
\ProvidesPackage\old@liii@module@name
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def b/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def
index 0e754eee695..63796a63121 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def
@@ -19,8 +19,8 @@
%% and all files in that bundle must be distributed together.
%%
%% File: l3drivers.dtx Copyright(C) 2011-2017 The LaTeX3 Project
-\GetIdInfo$Id: l3drivers.dtx 6954 2017-02-18 20:26:11Z joseph $
- {L3 Experimental drivers}
+\def\ExplFileDate{2017/03/18}
+\def\ExplFileVersion{7019}
\ProvidesExplFile
{l3xdvidpfmx.def}{\ExplFileDate}{\ExplFileVersion}
{L3 Experimental driver: xdvipdfmx}