Add sec and csc trigonometric functions.

I also did a few unrelated fp optimizations.


git-svn-id: http://www.latex-project.org/svnroot/experimental/trunk@4109 de43f980-851b-0410-b2f7-c40aca1f87e0
Docs of do_until/until_do were mixed up.  Please check!

As far as I can tell, both integer and dimension loops were
wrongly documented: the documentation of the do_... and
..._do functions were swapped.  I'd be glad if someone can
confirm that I'm not just being confused now.


git-svn-id: http://www.latex-project.org/svnroot/experimental/trunk@4110 de43f980-851b-0410-b2f7-c40aca1f87e0
Add 8 functions of the \fp_while_do:nn family.


git-svn-id: http://www.latex-project.org/svnroot/experimental/trunk@4111 de43f980-851b-0410-b2f7-c40aca1f87e0
Document \bool_do_until/while, which were only implemented.


git-svn-id: http://www.latex-project.org/svnroot/experimental/trunk@4112 de43f980-851b-0410-b2f7-c40aca1f87e0
Typos.


git-svn-id: http://www.latex-project.org/svnroot/experimental/trunk@4113 de43f980-851b-0410-b2f7-c40aca1f87e0
Change explanation of \scan_align_safe_stop: a bit.

I'm keen on completely removing the older version of
the code, which was only needed with eTeX v.1 and is
much more complicated than an empty protected macro.


git-svn-id: http://www.latex-project.org/svnroot/experimental/trunk@4114 de43f980-851b-0410-b2f7-c40aca1f87e0
Add l3check code for l3expan, l3tl, l3seq

I've been oscillating quite a bit between different interfaces, so the 
l3check code is a mess.  It can be loaded with \RequirePackage{l3check}, 
and loading it with the kernel testfiles lead to a bunch of commits 
earlier today, and finding a couple of bugs in l3kernel.  This still 
needs lots of work, but it has low priority for now.


git-svn-id: http://www.latex-project.org/svnroot/experimental/trunk@4115 de43f980-851b-0410-b2f7-c40aca1f87e0
A first go at token list (and sequence) formatting.

The main question is what syntax to provide.  Many languages use markers 
such as "%s" or "%i" inside strings for formatting purposes, but "%" is 
our comment character, so this approach is not suitable.  I've decided 
to follow part of what Python's "format" built-in function does (see 
http://docs.python.org/library/string.html#format-specification-mini-language 
for a description of their format strings).  Since LaTeX3 objects do not 
know their type, we need type-specific function, and I've introduced 
\tl_format:nn and \seq_format:Nn.  Examples,

    \tl_format:nn { abcdef } { } % => "abcdef"
    \tl_format:nn { abcdef } { .3 } % => "abc" (precision = 3)
    \tl_format:nn { abcdef } { * ^ 10 }
    % => "**abcdef**" (width = 10, centered (^), pad with "*")

The \seq_format:Nn function simply calls \tl_format:nn on each item.  It 
may be better to have a \seq_use_format:Nnnnn, mixing \seq_use:Nnnn and 
\seq_format:Nn.


git-svn-id: http://www.latex-project.org/svnroot/experimental/trunk@4116 de43f980-851b-0410-b2f7-c40aca1f87e0
Add \int_format:Nn and \int_format:nn.


git-svn-id: http://www.latex-project.org/svnroot/experimental/trunk@4117 de43f980-851b-0410-b2f7-c40aca1f87e0
Use \__msg_show_variable:Nnx rather than the n variant in an l3str/ module

The expansion behaviour of the :Nnn function (l3msg internal) was 
altered from x-expansion to no expansion.  I forgot to update uses 
outside l3kernel when I did the change.


git-svn-id: http://www.latex-project.org/svnroot/experimental/trunk@4118 de43f980-851b-0410-b2f7-c40aca1f87e0
Change \__str_if_contains_char:nNTF, to be more space-friendly.

This internal function used to use \tl_to_str:n on its token list 
argument.  This meant that spaces were ignored (since later processing 
is done with undelimited arguments for speed).  Now the function expects 
the argument to come already detokenized, or with "other" spaces.


git-svn-id: http://www.latex-project.org/svnroot/experimental/trunk@4119 de43f980-851b-0410-b2f7-c40aca1f87e0
Remove l3arithmetic, and introduce l3bigint as a (partial) replacement.

So far, I've only implemented addition and subtraction of arbitrarily 
large integers.  There is no plan to do expression parsing, the module 
provides \bigint_add:nn, etc. which should be used directly.  No plan 
either for the module to be fast.  The main missing functions right now 
are \bigint_mul:nn, \bigint_div_round:nn, \bigint_div_truncate:nn, and 
\bigint_mod:nn.  Also \bigint_compare:nTF, but that should be less 
important.

In particular, the absence of mul/div means that the former l3arithmetic 
code does not work yet.


git-svn-id: http://www.latex-project.org/svnroot/experimental/trunk@4120 de43f980-851b-0410-b2f7-c40aca1f87e0
Typos.


git-svn-id: http://www.latex-project.org/svnroot/experimental/trunk@4121 de43f980-851b-0410-b2f7-c40aca1f87e0
Add "=" alignment type when formatting integers.

This alignment type inserts the filling between the
sign and the main part of the number.  It can be useful
when writing a message with a table of numbers.

    \cs_new:Npn \my_do:n #1
      { | \int_format:nn {#1} { 0 = + 5 } | \\ }
    \msg_new:nnn { my } { do }
      { \clist_map_function:nN {#1} \my_do:n }
    \msg_warning:nnn { my } { do }
      { 1 , 123 , -3263 }        


git-svn-id: http://www.latex-project.org/svnroot/experimental/trunk@4122 de43f980-851b-0410-b2f7-c40aca1f87e0
Add \fp_format:nn, with styles 'e', 'f', and 'g'.

- Style 'e' extends "\fp_to_scientific:n".
- Style 'f' extends "\fp_to_decimal:n".
- Style 'g' extends "\fp_to_tl:n".

Those styles (and their names) directly follow Python.  Python also 
provides 'E' and 'G' to use the exponent symbol 'E' rather than 'e', but 
this doesn't seem worth the trouble.


git-svn-id: http://www.latex-project.org/svnroot/experimental/trunk@4123 de43f980-851b-0410-b2f7-c40aca1f87e0
Typos


git-svn-id: http://www.latex-project.org/svnroot/experimental/trunk@4124 de43f980-851b-0410-b2f7-c40aca1f87e0
Add l3bigint to make scripts, and remove l3arithmetic


git-svn-id: http://www.latex-project.org/svnroot/experimental/trunk@4125 de43f980-851b-0410-b2f7-c40aca1f87e0
Missing guards: in format mode there is no \RequirePackage business


git-svn-id: http://www.latex-project.org/svnroot/experimental/trunk@4126 de43f980-851b-0410-b2f7-c40aca1f87e0
Remove \int_format:Nn and \fp_format:Nn, keeping the :nn forms only.

As Joseph notes, we can use integers and floating points directly as 
integer expressions and floating point expressions, so there is no need 
for a separate :Nn form.  I've kept \tl_format:Nn, but it could be 
replaced by \tl_format:on or :Vn.



git-svn-id: http://www.latex-project.org/svnroot/experimental/trunk@4127 de43f980-851b-0410-b2f7-c40aca1f87e0
Typo

git-svn-id: http://www.latex-project.org/svnroot/experimental/trunk@4128 de43f980-851b-0410-b2f7-c40aca1f87e0