CTAN Comprehensive TeX Archive Network

Directory macros/generic/xint

README.md

% 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 macro format (\usepackage{xintexpr}).

Installation

xint is included in Live (hence Mac also) and in Mik. 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 engines since Live 2019).

License

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

This Work may be distributed and/or modified under the conditions of the 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 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 , , or (a priori) any other macro format built upon .

Packagexint
Version1.4a 2020-02-19
LicensesThe Project Public License 1.3c
Copyright2013–2020 Jean-Fran├žois Burnol
MaintainerJean-Fran├žois Burnol
TDS archivexint.tds.zip
Contained inTeX Live as xint
MiKTeX as xint
TopicsCalculation
Arithmetic
...
Guest Book Sitemap Contact Contact Author