# CTAN Update: xint

Date: February 2, 2020 2:40:55 PM CET

Jean-François Burnol submitted an update to the
xint
package.
Version: 1.4 2020-01-31
License: lppl1.3c
Summary description: Expandable operations on long numbers
Announcement text:

This is a major release with some breaking changes. Selected highlights: - The \expanded primitive (TeXLive 2019) is required. Its usage has allowed dropping formerly used \csname techniques. There is no more impact on the string pool memory. - Square brackets [...] are now associated with actual nested structures. For example \xinteval{1, [2, [3, 4]], 5} produces 1, [2, [3, 4]], 5 (recall this is free bloatware). - Scalar operations on one-dimensional "lists" (which as it turned out matched the NumPy "broadcasting" concept) are provisorily dropped. Alternative syntax exists to rescue old documents. - Operations on nested lists are inspired from NumPy's. Currently, nested (basic) slicing and indexing is implemented. But the step parameters are not. The broadcasting of scalar operations is not yet implemented but the user can define "universal functions", i.e. functions operating on all leaves of the data. Our structures have leaves at arbitrary varying depths, they are not necessarily hyperrectangular like NumPy's. Constructors are provided, for example ndmap() maps a function on all Cartesian n-uples built from items (at top level) of n given lists. - Variables in function declarations may be multi-letter words. - The last positional variable name may be prefixed with a * as in Python to signal it is a "nut-ple" receiving all arguments of the function calls beyond the first positional ones ("variadic" argument). Generally speaking, * is the unpacking operator. - ... quite a few more features. See CHANGES.html and xint.pdf.

The package’s Catalogue entry can be viewed at https://ctan.org/pkg/xint The package’s files themselves can be inspected at http://mirror.ctan.org/macros/generic/xint/

Thanks for the upload. For the CTAN Team Petra Rübe-Pugliese

CTAN is run entirely by volunteers and supported by TeX user groups. Please join a user group or donate to one, see https://ctan.org/lugs

This is a major release with some breaking changes. Selected highlights: - The \expanded primitive (TeXLive 2019) is required. Its usage has allowed dropping formerly used \csname techniques. There is no more impact on the string pool memory. - Square brackets [...] are now associated with actual nested structures. For example \xinteval{1, [2, [3, 4]], 5} produces 1, [2, [3, 4]], 5 (recall this is free bloatware). - Scalar operations on one-dimensional "lists" (which as it turned out matched the NumPy "broadcasting" concept) are provisorily dropped. Alternative syntax exists to rescue old documents. - Operations on nested lists are inspired from NumPy's. Currently, nested (basic) slicing and indexing is implemented. But the step parameters are not. The broadcasting of scalar operations is not yet implemented but the user can define "universal functions", i.e. functions operating on all leaves of the data. Our structures have leaves at arbitrary varying depths, they are not necessarily hyperrectangular like NumPy's. Constructors are provided, for example ndmap() maps a function on all Cartesian n-uples built from items (at top level) of n given lists. - Variables in function declarations may be multi-letter words. - The last positional variable name may be prefixed with a * as in Python to signal it is a "nut-ple" receiving all arguments of the function calls beyond the first positional ones ("variadic" argument). Generally speaking, * is the unpacking operator. - ... quite a few more features. See CHANGES.html and xint.pdf.

The package’s Catalogue entry can be viewed at https://ctan.org/pkg/xint The package’s files themselves can be inspected at http://mirror.ctan.org/macros/generic/xint/

Thanks for the upload. For the CTAN Team Petra Rübe-Pugliese

CTAN is run entirely by volunteers and supported by TeX user groups. Please join a user group or donate to one, see https://ctan.org/lugs

## xint – Expandable operations on long numbers

The xint bundle main modules are:

- xinttools
- utilities of independent interest such as expandable and non-expandable loops,
- xintcore
- expandable macros implementing addition, subtraction, multiplication, division, and powers for arbitrarily long integers,
- xint
- extension of xintcore,
- xintfrac
- extends the scope of xint to decimal numbers, to numbers using scientific notation and also to (exact) fractions,
- xintexpr
- provides expandable parsers of numeric expressions using the standard infix notations, parentheses, built-in functions, user definable functions and variables (and more ...) which do either exact evaluations (also with fractions) or floating point evaluations under a user chosen precision.

Further modules of the bundle are:
*xintkernel* (support macros for all the bundle constituents),
*xintbinhex* (conversion to and from hexadecimal and binary bases),
*xintgcd* (provides `gcd()`

and `lcm()`

functions to xintexpr),
*xintseries* (evaluates numerically partial sums of series and
power series with fractional coefficients), and
*xintcfrac* (dedicated to the computation and display of continued fractions).

All computations are compatible with expansion-only context.

The packages may be used with Plain TeX, LaTeX, or (a priori) any other macro format built upon TeX.

Package | xint |

Version | 1.4b 2020-02-25 |

Copyright | 2013–2020 Jean-François Burnol |

Maintainer | Jean-François Burnol |