# HIntLib – High-dimensional Integration Library

HIntLib is a C++ library for high-dimensional numerical integration.

## Feature Summary

• Quasi-Monte Carlo methods
• Support for arbitrary digital nets and sequences
• Support for arbitrary bases. Special optimizations for base 2.
• Vectorized field arithmetic
• Implemented sequences:
• Sobol sequence
• Niederreiter sequence in arbitrary bases
• Niederreiter-Xing sequence in base 2
• Halton sequence
• Faure sequence (prime and prime-power base)
• Shift-nets in arbitrary bases
• Propagation rules:
• s-reduction
• m-reduction
• Net duplication
• Base reduction
• Net from sequence
• Monte Carlo routines
• Mersenne Twister
• LCGs with with modulus 2k as well as a prime number
• Combined generators
• Built-in random number generator
• Integration based on Interpolatory Rules
• 19 different cubature rules
• Rules due to Ewing, Gauss, Genz, Hammer, Ionescu, Lyness, Malik, Mustard, Philips, Simpson, Stenger, Stroud, Thacher, Tyler
• Various parallel implementation of adaptive strategies
• Algebra classes to facilitate the implementation of numbertheoretical algorithms
• Ring of integers
• Field of real and complex numbers (using floating point approximation)
• Polynomials over arbitrary rings and fields
• Modular arithmetic over arbirtray Euclidean rings
• Finite fields (including optimizations for field size 2, 2k, and prime)
• Vector spaces based on arbitrary algebraic structures
• Quotient fields (Rational numbers, rational function fields …)
• Number fields and algebraic function fields
• Arithmetic based on lookup tables for finite fields and finite vectorspaces
• Uses exceptions and is exception-save
• Contains an extensive test-suite

HIntLib is licensed under the GNU General Public License, version 2 (GPL). This means (in short terms) that if you distribute a program or library that uses or links with HIntLib, you have to release it under the GPL again. For detailed information, please refer to the original text of the license.

The current version of HIntLib is 0.0.13. See the NEWS file for details.

HIntLib is still beta, and all interfaces may change or be remove in future versions.

VersionRelease DateFile SizeArchive
0.0.13 March 14, 2008 1.4 MB HIntLib-0.0.13.tar.gz
0.0.12 December 31, 2006 1.4 MB HIntLib-0.0.12.tar.gz
0.0.11 October 2, 2006 1.3 MB HIntLib-0.0.11.tar.gz
0.0.10 February 17, 2005 1.2 MB HIntLib-0.0.10.tar.gz
0.0.9 July 11, 2004 1.2 MB HIntLib-0.0.9.tar.gz
0.0.8 March 16, 2004 1.1 MB HIntLib-0.0.8.tar.gz
0.0.7 March 9, 2004 1.1 MB HIntLib-0.0.7.tar.gz
0.0.6 December 30, 2003 1019 KB HIntLib-0.0.6.tar.gz
0.0.5 November 1, 2003 930 KB HIntLib-0.0.5.tar.gz
0.0.4 June 16, 2003 520 KB HIntLib-0.0.4.tar.gz
0.0.3 Apr 15, 2003 502 KB HIntLib-0.0.3.tar.gz
0.0.2 Mar 16, 2003 500 KB HIntLib-0.0.2.tar.gz
0.0.1 Mar 8, 2003 370 KB HIntLib-0.0.1.tar.gz

Information on the installation of HIntLib can be found in Appendix A of the HIntLib manual.

## Documentation

A preliminary version of the manual is available. This document is incomplete and does not cover all available features. :-(

Appendix A of the manual contains detailed information about building and installing HIntLib.

## Compatibility

HIntLib compiles and runs successfully on the following systems:

PC AMD K6Suse Linux 9.3 GCC 3.3.5-Susecurrent noneOK
Intel P4Suse Linux 9.3 GCC 2.95.3current noneOK
GCC 3.3.5-Susecurrent noneOK
GCC 4.0.4current noneOK
GCC 4.1.2current noneOK
GCC 4.2.3current noneOK
GCC 4.3.0current none4)
Intel C++ 9.0current noneOK
Intel P3Suse Linux 8.2 Intel C++ 7.10.0.10 noneOK
AMD Athlon XPWin2k / Cygwin 1.3.10 GCC 2.95.30.0.12 none2)
Intel P4WinXP / Cygwin 1.5.12 GCC 3.4.1 (Exp)0.0.12 noneOK, 3)
SGI Power Challenge GR20 × MIPS R10kIRIX64 6.5 MIPSpro 7.40.0.9 SGI’s MPI1)
MIPSpro 7.3.1.2m0.0.2 SGI’s MPIOK
Sun Ultra 60UltraSPARC IISolaris 2.8 GCC 3.20.0.10 noneOK

1) Exception handling broken.

2) 2.95.x versions of GCC on Cygwin-systems cannot propagate exceptions from DLLs to user code.

3) The GCC 3.3.3, which comes with Cygwin 1.5.12 by default, is broken. Use GCC 3.4.1 (which is in the experimental branch) instead.

4) Polynomial2::evaluate() and Polynomial2Ring::evaluate() broken due to GCC bug 35540.

## Other libraries

A number of libraries exist that provide functionality similar to (parts of) HIntLib. To give you the chance to compare, here are a number of links:

### Free Software

• GNU Scientific Library (Random number generation, Sobol sequence, Niederreiter sequence in base 2, MC integration, MISER, VEGAS)
• LDSequences by Reinhold Kainhofer (Sobol, Faure, Halton, and Niederreiter sequence)
• Fast Low-Discrepancy Sequences by Emanouil Atanassov (Sobol and Halton sequence in i386 assembler, making use of MMX …)