# Directory `macros/generic/xint`

% README % xint 1.4a % 2020/02/19

Source: xint.dtx 1.4a 2020/02/19 (doc 2020/02/19) Author: Jean-Francois Burnol Info: Expandable operations on big integers, decimals, fractions License: LPPL 1.3c

# Aim and usage

The basic aim is provide *expandable* computations on integers, fractions, and floating point numbers. For example, with fractions:

\xinteval{reduce(37189719/183618963+11390170/17310720)^17}

The result has `462`

characters (forward slash included.) One can also work with dummy variables:

\xinteval{mul(add(x(x+1)(x+2), x=y..y+15), y=171286,98762,9296)}

and do computations with floating point numbers at an adjustable precision (default `16`

).

\xintDigits:=48;\xintfloateval{123_456_789^10_000.5} expands to 1.56866129625858270633170234772583710433908855336e80919

Release `1.4`

adds support for nested structures:

\xintthealign\xintexpr ndseq(1/(i+j), i=1..5; j=1..5)\relax

will print on the page

[[ 1/2, 1/3, 1/4, 1/5, 1/6 ], [ 1/3, 1/4, 1/5, 1/6, 1/7 ], [ 1/4, 1/5, 1/6, 1/7, 1/8 ], [ 1/5, 1/6, 1/7, 1/8, 1/9 ], [ 1/6, 1/7, 1/8, 1/9, 1/10 ]]

The four operations and the square-root extraction achieve so-called *correct rounding* in the given arbitrary precision.

Trigonometric functions (direct and inverse) are available up to a maximal precision of about `58`

digits. Logarithms and exponentials are currently evaluated only with `8`

or `9`

digits precision.

It is possible to use the package both with Plain (`\input xintexpr.sty`

) or with the LaTeX macro format (`\usepackage{xintexpr}`

).

# Installation

`xint`

is included in TeXLive (hence MacTeX also) and in MikTeX. Thus, use the package manager to update your distribution.

Alternatives:

- download
`xint.tds.zip`

and install in a suitable TDS-compliant repertory via`unzip`

. "admin" privilges might be needed, as well as a file database rebuild (`texhash`

). For example, on macos x, installation into user home folder (no`sudo`

, and no`texhash`

as it is recommended to not have a ls-R file there)

unzip xint.tds.zip -d ~/Library/texmf

- all files can be extracted using
`etex xint.dtx`

, or`make`

if the`Makefile`

included in the CTAN upload is present; see the file`INSTALL`

, if present, else read the help in extracted file`Makefile.mk`

.

# Documentation

`README.md`

: this file

`CHANGES.html`

: change log as relevant to end users (`texdoc --list xint`

)

`xint.pdf`

: user manual

`sourcexint.pdf`

: commented source code (`texdoc --list xint`

or `texdoc sourcexint`

)

# Requirements

Attention, since release `1.4`

`xintexpr`

requires the `\expanded`

primitive (it is provided by all major TeX engines since TeXLive 2019).

# License

Copyright (C) 2013-2020 by Jean-Francois Burnol

This Work may be distributed and/or modified under the conditions of the LaTeX Project Public License version 1.3c. This version of this license is in

http://www.latex-project.org/lppl/lppl-1-3c.txt

and version 1.3 or later is part of all distributions of LaTeX version 2005/12/01 or later.

This Work has the LPPL maintenance status `author-maintained`

.

The Author of this Work is `Jean-Francois Burnol`

.

This Work consists of the files `Makefile`

, `INSTALL`

, and `xint.dtx`

and its extracted and derived files inclusive of the documentation files `xint.pdf`

, `sourcexint.pdf`

and `CHANGES.html`

.

See `xint.pdf`

for contact information.

Download the contents of this package in one zip archive (2.2M).

## 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.4a 2020-02-19 |

Licenses | The LaTeX Project Public License 1.3c |

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

Maintainer | Jean-François Burnol |

TDS archive | `xint.tds.zip` |

Contained in | TeX Live as xint MiKTeX as xint |

Topics | Calculation Arithmetic |