summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/generic/xint/README
blob: 81b28347704fdedc260aab979341c11a3516da2f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
    Source:  xint.dtx v1.2 2015/10/10 (doc 2015/10/10)
    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 big integers, and
also big fractions. 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.
For example

    \xinttheexpr mul(add(x(x+1)(x+2), x=y..y+15), y=171286,98762,9296)\relax

evaluates to 15979066346135829902328007959448563667099190784.

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 (v1.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-2015 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.