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
|
Source: bnumexpr.dtx
Version: v1.1b, 2014/10/28
Author: Jean-Francois Burnol
Info: Expressions with big integers
License: LPPL 1.3c or later
README: USAGE, INSTALLATION, LICENSE
Usage
\usepackage{bnumexpr}
Then
\thebnumexpr <expression with +,-,*,/,(,)> \relax
is like
\the\numexpr <expression with +,-,*,/,(,)> \relax
with the difference of accepting or producing arbitrarily big integers.
For example,
\thebnumexpr 30*(21-43*(512-67*(6133-812*2897)))\relax
outputs -202785405180 and this computation would have created an
arithmetic overflow in \numexpr.
\bnumexpr...\relax is a scaled down version of \xintiiexpr...\relax from
package xintexpr.[1]
By default, bnumexpr loads xintcore [2] for its arithmetic macros doing
addition, subtraction, multiplication, division.
- With option _custom_, xintcore is not loaded and it is up to the
user to define suitably the expandable macros\bnumexprAdd,
\bnumexprSub, \bnumexprMul, and \bnumexprDiv.
- Option _bigintcalc_ loads package bigintcalc [3] and uses its
arithmetic macros rather than those from xintcore.
- Option _l3bigint_ loads rather package l3bigint [4], which is in the
experimental trunk of the on-going LaTeX3 project.
Option _allowpower_ enables ^ as power operator.
Installation
Obtain bnumexpr.dtx (and possibly, bnumexpr.ins and the README) from
CTAN:
http://www.ctan.org/pkg/bnumexpr
Both "tex bnumexpr.ins" and "tex bnumexpr.dtx" extract from bnumexpr.dtx
the following files:
bnumexpr.sty
this is the style file.
bnumexprReadme.md
reconstitutes this README.
bnumexpr.changes
lists changes from the initial version.
bnumexpr.tex
can be used to generate the documentation:
- with latex+dvipdfmx: "latex bnumexpr.tex" (thrice) then
"dvipdfmx bnumexpr.dvi".
Ignore dvipdfmx warnings, but if the pdf file has problems with
fonts (possibly from an old dvipdfmx), use then rather pdflatex.
- with pdflatex: set the suitable toggle in bnumexpr.tex to
disable dvipdfmx settings then "pdflatex bnumexpr.tex" (thrice).
In both cases files bnumexprReadme.md and bnumexpr.changes must be
present in the same repertory.
Without bnumexpr.tex:
"pdflatex bnumexpr.dtx" (thrice) extracts all files and
simultaneously generates the pdf documentation.
Finishing the installation:
bnumexpr.sty --> TDS:tex/latex/bnumexpr/
bnumexpr.dtx --> TDS:source/latex/bnumexpr/
bnumexpr.ins --> TDS:source/latex/bnumexpr/
bnumexpr.pdf --> TDS:doc/latex/bnumexpr/
README --> TDS:doc/latex/bnumexpr/
Files bnumexpr.tex, bnumexpr.changes, bnumexprReadme.md may be
discarded.
License
Copyright (C) 2014 by Jean-Francois Burnol
This Work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either
version 1.3c of this license or (at your option) any later
version. This version of this license is in
http://www.latex-project.org/lppl/lppl-1-3c.txt
and the latest version of this license is in
http://www.latex-project.org/lppl.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 "maintained".
The Current Maintainer of this Work is Jean-Francois Burnol.
This Work consists of the main source file bnumexpr.dtx and the derived
files
bnumexpr.sty, bnumexpr.pdf, bnumexpr.ins, bnumexpr.tex,
bnumexpr.changes, bnumexprReadme.md
[1] http://www.ctan.org/pkg/xint
[2] http://www.ctan.org/pkg/xint
[3] http://www.ctan.org/pkg/bigintcalc
[4] http://latex-project.org/svnroot/experimental/trunk/l3trial/l3bigint,
or from https://github.com/latex3/svn-mirror.
|