CTAN update: xint
This is a major release in which the internals have been entirely rewritten for speed. The original xintexpr package has been separated into two: - a calx package holding \xintfloateval and \xintiieval, also under the aliases \calxeval and \calxinteval, - and xintexpr itself, loading calx and adding \xinteval. The two main changes of relevance to the user are: 1. An about 8x speed gain for the trigonometric functions, logarithms, exponentials, and powers. This release also adds the hyperbolic functions and their inverses. 2. By default, error conditions generate NaN, +Infinity, or -Infinity, which propagate through subsequent calculations. This can be customized by \calxsetup. This applies only to calx computations, not to legacy xintfrac macros. The latter, and \xinteval, do not accept non-finite values and continue trapping error conditions as TeX errors. Most documents using xintexpr should compile unchanged, without requiring any modification to their sources.
The package’s Catalogue entry can be viewed at https://ctan.org/pkg/xint The package’s files themselves can be inspected at https://mirrors.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 arbitrary precision floating point and integer operations
The calx package and its superset the xintexpr package provide:
- \calxeval: numerical expression parser for floating-point computations.
- \calxinteval: numerical expression parser for computations with big integers.
Floating-point computations are supported up to 100 significant digits of precision. A full set of trigonometric, logarithmic, and exponential functions is implemented.
The two parsers are also available under their legacy names \xintfloateval and \xintiieval, respectively.
Loading xintexpr automatically loads calx and provides a third parser, \xinteval, which handles fractions. It also loads the legacy macro interface packages xintcore, xint, and xintfrac.
All three parsers produce their results by expansion alone. They accept comma-separated inputs and nested structures using square brackets. Users can define custom variables and functions.
| Package | Xint |
| Version | 2.0a1 2026-11-01 |
| Copyright | 2013–2022, 2025, 2026 Jean-François Burnol |
| Maintainer | Jean-François Burnol |