For overview of verified numerical computation and kv library, please see the slide: kv-intro-e.pdf (84 pages)
In old versions of kv library (which had been developed from the autumn, 2007 to the spring, 2013), the interval library in Boost (boost.interval) was used. In the present version of kv library (see, 3. Download and Install), all programs with respect to interval arithmetics are originally produced, whereas some functions in Boost still partially used in kv library, e.g., boost.ublas for linear algebras.
We need to change rounding mode to realize interval arithmeric. See 5. Interval Arithmetic and 20. Changing Rounding Mode and Compiler Options for details of the requirements on CPU and compiler.
Basically, the present kv library is developed on Ubuntu 22.04 (64bit) + gcc. Unix operating systems (64bit) are recommended, while it was confirmed that kv library works on the following computational environments:
You can also access to the source code of kv on https://github.com/mskashi/kv .
The kv library is designed to work without "install" (and therefore "make") but only with the header files in itself. After expanding the archive file of the kv library, the three directory of "kv", "test" and "example" will be constructed. The main components of the kv library are in "kv" directory. Therefore, the kv library is available after setting the directory "kv" along with all the files in it into an appropriate directory (e.g., the current directory or /usr/local/include).
The all functions provided by kv library are confined in the namespace of "kv" so that these functions does not compete with other libraries.
The operation confirmation of kv library can be done by compiling some .cc file in "test" or "example". For example, after
c++ -I.. -I/usr/local/include test-interval.ccNote that the directories in which the files of kv library and Boost exist, should be specified in the above command.
It is recommended to specify the options -O3 (or other possible optimization options) and -DNDEBUG, both of which strongly affect the execution speed (the details of the NDEBUG macro can be found in boost.ublas). Additionally remark that the option of -DKV_FASTROUND is available to perform faster interval arithmetics when using an Intel's CPU and a 64bit operating system.
When you change your computational environment or compile options, it is recommended to re-check whether the rounding mode is correctly changed for the four arithmetic and square-root operations, by compiling and performing test/test-rounding.cc.
Since the library will not be improved unless it is used by a lot of people, I hope many people will use this library.
For the development of this library, Mr. Keiichiro Kashiwagi of NTT Network Innovation Laboratories got a great deal of cooperation. I express my gratitude here.
Copyright (c) 2013-2024 Masahide Kashiwagi. This software is released under the MIT license.