Directory macros/generic/xint
README
Source: xint.dtx 1.2g 2016/03/19 (doc 2016/03/19) Author: Jean-Francois Burnol Info: Expandable operations on big integers, decimals, fractions License: LPPL 1.3c This README is also available as README.pdf and README.html. Change log is to be found in CHANGES.pdf or CHANGES.html. The user manual is xint.pdf, and the commented source code is available as sourcexint.pdf. AIM The basic aim is provide _expandable_ computations on integers, fractions, and floating point numbers. For example \xinttheexpr reduce(37189719/183618963+11390170/17310720)^17\relax will evaluate exactly the fraction (the result has 462 characters including the fraction slash). One can also work with dummy variables: \xinttheexpr mul(add(x(x+1)(x+2), x=y..y+15), y=171286,98762,9296)\relax (evaluates to 15979066346135829902328007959448563667099190784.) Float computations are possible at an adjustable precision (default 16). \xintthefloatexpr 123456789^1000.5\relax Mathematical functions (apart from sqrt which achieves correct rounding in arbitrary precision) are yet to be implemented. It is possible to use the package with Plain as well as with LaTeX. Sub-units xintcore, xint and xintfrac provide the underlying macros, and xintexpr loads all of them and provides expandable parsers allowing computations such as the above (and more). A more light-weight package bnumexpr (LaTeX only) loads only xintcore and provides a parser which handles only big integers, the four operations, the power operation and the factorial (1.2). USAGE With LaTeX \usepackage{xint} % expandable arithmetic with big integers \usepackage{xintfrac} % decimal numbers, fractions, floats \usepackage{xintexpr} % expressions with infix operators Further packages: xintbinhex, xintgcd, xintseries and xintcfrac. All dependencies are handled automatically. For example xintexpr automatically loads xintfrac which itself loads xint. Package xintcore is the subset of xint providing only the five operations on big integers: \xintiiAdd, \xintiiMul, ... There is also xinttools which is a separate package providing, among others, expandable and non-expandable loops such as \xintFor. With TeX One does for example: \input xintexpr.sty Again, all dependencies are handled automatically. The packages may be loaded in any catcode context such that letters, digits, \ and % have their standard catcodes. xintcore.sty and xinttools.sty both import xintkernel.sty which has the catcode handler and package identifier and defines a few utilities such as \oodef, \fdef, or \xint_dothis/\xint_orthat. INSTALLATION Method A: using the package manager of your TeX distribution xint is included in TeXLive (hence also MacTeX) and MikTeX. There can be a few days of delay between apparition of a new version on CTAN and availability via the distribution package manager. Method B: manual installation using xint.tds.zip and unzip Assumes a GNU/Linux-like system (or Mac OS X). 1. obtain xint.tds.zip from CTAN: http://mirror.ctan.org/install/macros/generic/xint.tds.zip 2. cd to the download repertory and issue: unzip xint.tds.zip -d <TEXMF> where <TEXMF> is a suitable TDS-compliant destination repertory. For example, with TeXLive: - Linux, standard access rights, hence sudo is needed, installation into the "local" tree: sudo unzip xint.tds.zip -d /usr/local/texlive/texmf-local sudo texhash /usr/local/texlive/texmf-local - Mac OS X, installation into user home folder (no sudo needed, and it is recommended to not have a ls-R file there, hence no texhash): unzip xint.tds.zip -d ~/Library/texmf Method C: manual installation using Makefile and xint.dtx The Makefile automatizes rebuilding from xint.dtx all documentation files as well as xint.tds.zip. It is for GNU/Linux-like (inc. Mac OS X) systems, with a teTeX like installation such as TeXLive. Furthermore the Pandoc software is required. 1. obtain xint.dtx and Makefile from http://mirror.ctan.org/macros/generic/xint. 2. put them in an otherwise empty working repertory, run make or equivalently make help for further instructions. Method D: installation starting with only xint.dtx Run "tex xint.dtx" or "etex xint.dtx" to extract from xint.dtx all packages as well as these files: README.md the current README with Markdown formatting. CHANGES.md the changes across successive releases. xint.tex used to generate xint.pdf via "latex xint.tex" (thrice) then "dvipdfmx xint.dvi". It is also possible to compile xint.tex with xelatex, or with pdflatex (this latter option produces a bigger pdf). For successful compilation, packages newtxtt, newtxmath, etoc, mathastext are needed. Inclusion of the source code is off by default, but the toggle can be set in xint.tex. A third option is to generate xint.pdf via xelatex xint.dtx or pdflatex xint.dtx. Source code is then included by default (but some code comments in French use 8bit characters, hence for xelatex an a priori conversion of xint.dtx into utf-8 will give a better result). Makefile.mk this is for UNIX-like systems. Note: this file is only produced with "etex xint.dtx", not with "tex xint.dtx". Rename it to Makefile and run make on the command line for further help. doHTMLs.sh and doPDFs.sh these are scripts (for UNIX-like systems) which can be used to convert the README.md and CHANGES.md to HTML and PDF formats. They require Pandoc. pandoctpl.latex a Pandoc template used by doPDFs.sh. Finishing the installation in a TDS hierarchy: - move the style files to TDS:tex/generic/xint/ - xint.dtx goes to TDS:source/generic/xint/ - the documentation (xint.pdf, README.md,...) goes to TDS:doc/generic/xint/ Depending on the destination, it may then be necessary to refresh a filename database. LICENSE Copyright (C) 2013-2016 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 source file xint.dtx and of its derived files: xintkernel.sty, xintcore.sty, xint.sty, xintfrac.sty, xintexpr.sty, xintbinhex.sty, xintgcd.sty, xintseries.sty, xintcfrac.sty, xinttools.sty, xint.ins, xint.tex, README, README.md, README.html, README.pdf, CHANGES.md, CHANGES.html, CHANGES.pdf, pandoctpl.latex, doHTMLs.sh, doPDFs.sh, xint.dvi, xint.pdf, Makefile.mk.
Download the contents of this package in one zip archive (1.7M).
xint – Expandable operations on long numbers
The bundle provides nine packages:
- xintcore, which provides expandable TeX macros that implement the basic arithmetic operations of addition, subtraction, multiplication and division, as applied to arbitrarily long numbers represented as chains of digits with an optional minus sign;
- xint, which extends xintcore with more big integer operations;
- xinttools, which provides utilities of independent interest such as expandable and non-expandable loops;
- xintfrac, which computes fractions using xint;
- xintexpr, which extends xintfrac with an expandable parser of comma separated expressions involving integers, fractions, boolean, and algebraic operators, and declared as well as dummy variables;
- xintbinhex provides conversions to and from binary and hexadecimal bases;
- xintseries, which provides basic functionality for computing partial sums using xint;
- xintgcd, which provides implementations of the Euclidean algorithm, and of its typesetting;
- xintcfrac, which deals with the computation of continued fractions.
All of the packagesâ€™ computations are done in a way that they can operate in an expanding environment.
The packages may be used either with Plain TeX or LaTeX.
Package | xint |
Version | 1.2g 2016-03-19 |
License | The LaTeX Project Public License 1.3 |
Copyright | 2013–2015 Jean-François Burnol |
Maintainer | Jean-FranĂ§ois Burnol |
TDS archive | xint.tds.zip |
Contained in | TeX Live as xint |
MiKTeX as xint | |
Topics |
perform calculations within TeX perform and typeset arithmetic problems |