HVL_MT library can calculate values of Haaroff - van der Linde function and its derivatives by all parameters. The library can optionally make use of MPFR library to calculate intermediate results with arbitrary precision. If a continuous range of values is needed, HVL_MT takes advantage of multithreaded processing to speed up the computation. If multiple HVL parameters are to be evaluated for a given x
, HVL_MT provides a set of _prepared
functions that precalculate and reuse the terms common to all expressions.
HVL_MT uses CMake build system. In order to build HVL_MT with MPFR support, MPFR library (and it's dependence GMP library) must be installed including the development files.
If you wish to use the MPFR library to perform calculations that exceed the IEEE754 double
precision, supply addtional -DUSE_MPFR=ON
parameter to cmake
.
cd
to the directory with HVL_MT source and run the following:
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make
Remark: Note that compatibility with UNIX systems other than Linux has not been tested.
HVL_MT can be built on Windows using either the MinGW toolchain or Microsoft Visual Studio. The following CMake variables have to be specified manually if you wish to use the MPFR library.
GMP_INCLUDES
- Path to the directory with GMP public headersMPFR_INCLUDES
- Path to the directory with MPFR public headersGMP_LIBRARIES
- Path to the directory with built GMP libraryMPFR_LIBRARIES
- Path to the directory with built MPFR library
Assuming that the path to MinGW executables has been added to your PATH variable and you have cd
'ed to the directory with HVL_MT source, a sample command might look like the example below. In the example GMP and MPFR are installed in C:\gmp-bin
and C:\mpfr-bin
, respectively.
md build
cd build
cmake -G "MinGW Makefiles" .. -DGMP_INCLUDES=c:/gmp-bin/include -MPFR_INCLUDES=c:/mpfr-bin/include -DGMP_LIBRARIES=c:/gmp-bin/lib -DMPFR_LIBRARIES=c:/mpfr-bin/lib -DCMAKE_BUILD_TYPE=Release
mingw32-make
Remark 1: In order to generate Microsoft Visual Studio solution instead, supply the appropriate value for the -G
parameter. Please refer to CMake documentation for details.
Remark 2: If your MinGW toolchain uses Win32 threads instead of pthreads, supply -DWIN32_THREADS=ON
parameter to cmake
.
Remark 3: If you intend to build HVL_MT with Microsoft Visual Studio and MPFR support, you might want to use the binary compable GMP-fork MPIR as the mainline GMP is problematic to build with MSVS.
The HVL_MT library is distributed under the terms of The GNU General Public License v3.
HVL_MT makes use of MPFR C++ wrapper mpreal written by Pavel Holobrodko.