Final update: Deb. 6, 2024

List of components of kv library

README.txt
LICENSE.txt


kv/ the directory in which the main components exist


kv/convert.hpp required in almost all functions
kv/constants.hpp definitions of several constants


kv/interval.hpp interval arithmetic
kv/rdouble.hpp an additional file required for interval arithmetic with the double precision (working with rdouble-hwround.hpp or rdouble-nohwround.hpp or rdouble-avx512.hpp)
kv/rdouble-hwround.hpp interval arithmetic with the double precision by changing rounding mode
kv/rdouble-nohwround.hpp interval arithmetic with the double precision without changing rounding mode (available with -DKV_NOHWROUND)
kv/rdouble-avx512.hpp interval arithmetic with the double precision using rounded arithmetic instruction by AVX-512
kv/conv-double.hpp interconversion between "double" and "string" with specifying rounding mode (able to work itself)
kv/hwround.hpp to change rounding mode
kv/interval-vector.hpp a set of functions for interval vectors and interval matrices


kv/dd.hpp double-double precision arithmetics
kv/rdd.hpp an additional file required for interval arithmetic with the double-double precision (working with rdd-hwround.hpp or rdd-nohwround.hpp or rdd-avx512.hpp)
kv/rdd-hwround.hpp interval arithmetic with the double-double precision by changing rounding mode
kv/rdd-nohwround.hpp interval arithmetic with the double-double precision without changing rounding mode (available with -DKV_NOHWROUND)
kv/rdd-avx512.hpp interval arithmetic with the double-double precision using rounded arithmetic instruction by AVX-512
kv/conv-dd.hpp interconversion between "dd" (double-double) and "string" with specifying rounding mode (able to work itself)
kv/fpu53.hpp to set the precision of FPU of Intel's CPU into 53 bit (not used in version 0.4.54 and later)


kv/rfloat64x.hpp interval arithmetic with _Float64x (Intel 80bit floating point number)
kv/ddx.hpp arithmetic with double _Float64x number (160bit length, 15bit exponent, 128bit mantissa)
kv/rddx.hpp interval arithmetic with ddx number
kv/conv-float64x interconversion between "_Float64x" and "string" with specifying rounding mode
kv/conv-ddx interconversion between "ddx" and "string" with specifying rounding mode


kv/mpfr.hpp a wrapper of mpfr
kv/rmpfr.hpp an additional file required for interval arithmetic with mpfr


kv/interval-conv.hpp (obsolete. use interval-converter.hpp.) interconversion among interval<double>, interval<dd>, and interval<mpfr>; interconversion double, dd, and mpfr with specifying rounding mode
kv/interval-conv.hpp interconversion among interval<double>, interval<dd>, interval<mpfr>, interval<_Float64> and interval<ddx>; interconversion double, dd, mpfr, _float64x and ddx with specifying rounding mode


kv/complex.hpp complex number arithmetics


kv/autodif.hpp automatic differentiation


kv/affine.hpp affine arithmetic


kv/psa.hpp power series arithmetic


kv/kraw-approx.hpp the Krawczyk method for a nonlinear equation around an approximate solution
kv/make-candidate.hpp a small function for constructing a candidate set


kv/allsol.hpp finding all solutions to nonlinear equations
kv/allsol-simple.hpp simplified by reducing the functions of allsol.hpp
kv/allsol-affine.hpp finding all solutions by an affine arithmetic (without a sufficient test)


kv/ode.hpp verification for ODEs (by a one-step method using PSA, or a chain of these)
kv/ode-autodif.hpp same as ode.hpp but the initial value is set into the autodif type so that the initial value is differentiable
kv/ode-maffine.hpp ode.hpp's are connected by an affine arithmetic
kv/ode-param.hpp several parameters are defined to solve ODEs


kv/ode-maffine2.hpp a faster virsion of ode-maffine; note that the initial value is not differentiable
kv/ode-affine.hpp one-step method using PSA even in the depth of itself, which has high-performance but slow.
kv/ode-affine-wrapper.hpp somewhat simplified version of ode-affine.hpp
kv/ode-qr.hpp one-step methods by PSA are connected by the QR decomposition
kv/ode-lohner.hpp one-step method by the Lohner method, including a version where the initial value is differentiable (without a sufficient test)
kv/ode-qr-lohner.hpp one-step methods by the Lohner method connected by the QR decomposition
kv/ode-callback.hpp base class for callback functions in ode-*.hpp
kv/odescale.hpp experiment with respect to a scaling for ODEs
kv/ode-nv.hpp simple ODE solver with the Taylor expansion (without verification)
kv/ode-autodif-nv.hpp the initial value in ode-nv.hpp is set into the autodif type so that the initial value is differentiable (without verification)
kv/rk.hpp fourth order Runge‐Kutta method (without verification)
kv/rkf45.hpp RKF45 (without verification)


kv/strobomap.hpp So called the stroboscopic map is defined by a ODE solver. This is able to work with kraw-approx or allsol.
kv/poincaremap.hpp The Poincaré map is defined by a ODE solver. This is able to work with kraw-approx or allsol.


kv/defint.hpp verified numerical integration
kv/defint-newtoncotes.hpp verified numerical integration using compound Newton-Cotes rules
kv/defint-singular.hpp functions for the numerical integration of functions with endpoint singularity
kv/doubleintegral.hpp verified numerical double integral, which is available on a triangular domain
kv/double-newtoncotes.hpp verified numerical double integral using compound Newton-Cotes rules
kv/doubleint-curvededge.hpp verified numerical double integral on rectangular with curved edge using compound Newton-Cotes rules
kv/doubleint-singular.hpp verified numerical double integral of functions with edge singularity / corner singularity


kv/lobachevsky.hpp verification of the Lobachevsky function (at the prototype stage)
kv/gamma.hpp verification of the gamma, digamma, trigamma, lgamma functions (at the prototype stage)
kv/beta.hpp verification of the beta function (at the prototype stage)
kv/hypergeom.hpp verification of the Gauss hypergeometric series (at the prototype stage)
kv/airy.hpp verification of the Airy function (at the prototype stage)
kv/bessel.hpp verification of the Bessel function of the first kind (at the prototype stage)
kv/geoseries.hpp reliable computation of the sum of geometrical series, the common ratio of which is a interval


kv/matrix-inversion.hpp a wrapper of ublas for computing (approximate) inverse matrix
kv/qr.hpp (approximate) QR decomposition by the Gram-Schmidt orthogonalization
kv/vleq.hpp verification of linear equations by a widely used method
kv/eig.hpp The eigenpairs of an asymmetric real matrix are (approximately) computed by function "eig". The eigenvalues of an asymmetric real matrix are computed with verification by function "veig". They are produced by Akitoshi Takayasu.
kv/lp.hpp verification of the simplex method for linear equations (without a sufficient test)
kv/optimize.hpp to solve a optimization problems (without a sufficient test)
kv/kkt.hpp to make a KKT equation from an objective function, an inequality constraint, and an equality constraint
kv/newton.hpp the usual Newton method (without verification and a sufficient test)
kv/dka.hpp function "dka" which performs the Durand Kerner Aberth method without verification and function "vdka" which verifies a solution by Smith's Theorem (without a sufficient test)
kv/cardano-ferrari.hpp to compute solutions to a polynomial equation of degree 3 or 4 by the Cardano/Ferrari method
kv/highderiv.hpp to compute higher-order differentials of a function with one variable, by a power series arithmetic


kv/matplotlib.hpp simple graphics library using python and matplotlib
kv/psa-plot.hpp to draw the psa types using matplotlib
kv/jointrange.hpp to draw the joint range of affine arithmetic using matplotlib


kv/all.hpp to include all files in directory "kv" (not recommended because of a long compilation time)


test/ tests of this library, and samples of calling each functions

almost all (but not entirely all) functions are included in these test programs


test/test-interval.cc test of interval arithmetics
test/test-interval-mult.cc test of interval multiplication
test/test-rounding.cc simple test for confirming whether the rounding mode is correctly changed for the four arithmetic and square-root operations
test/test-nohwround.cc test for the emulation of the changes of rounding modes provided by the option -DKV_NOHWROUND
test/test-fma.cc simple test for confirming whether the fma instruction works correctly
test/test-dd.cc test for the dd type
test/test-idd.cc test for interval arithmetics with the double-double precision
test/test-ifloat64x.cc test for interval arithmetic with _Float64x
test/test-ddx.cc test for the ddx (double _Float64x)
test/test-iddx.cc test for interval arithmetic with ddx
test/test-mpfr.cc test for mpfr
test/test-impfr.cc test for interval arithmetics with mpfr


test/test-interval-conv.cc (obsolete) test of interval-conv.hpp
test/test-interval-converter.cc test of interval-converter.hpp


test/test-complex.cc test of complex numbers


test/test-autodif.cc test of the automatic differentiation
test/test-affine.cc test of the affine arithmetic
test/test-affine-reduce.cc test of the function epsilon_reduce to reduce the dummy variables in affine arithmetic
test/test-affine-reduce2.cc test of the function epsilon_reduce2 to reduce the dummy variables in affine arithmetic
test/test-affinemult.cc test of the multiplication with affine arithmetic
test/test-psa.cc test of psa
test/test-psa-history.cc test of the function of history in psa


test/test-kraw-approx.cc test of the Krawczyk method around an approximate solution for a nonlinear equation


test/test-allsol.cc test of finding all solutions of a nonlinear equation
test/test-allsol-simple.cc test of finding all solutions of a simplified nonlinear equation
test/test-allsol-affine.cc test of allsol-affine.hpp
test/test-allsol-rest.cc examples where an uncertain interval, which does not ensure both the existence and the non-existence of solution, is returned (e.g., in the case where there exists a multiple root)
test/test-allsol-infinity.cc test of finding all solutions to a nonlinear equation on a unbounded domain
test/test-complexeq.cc sample where a nonlinear equation on a complex domain is solved


test/test-ode.cc test of ode.hpp
test/test-ode-autodif.cc test of ode-autodif.hpp
test/test-ode-maffine.cc test of ode-maffine.hpp
test/test-ode-callback.cc sample where one specifies a callback function for ode-maffine and let ode-maffine do somethings while solving a equation at the same time.
test/test-ode-stop.cc sample of stopping to solve ODE halfway on certain condition using callback function.


test/test-ode-maffine2.cc test of ode-maffine2.hpp
test/test-ode-affine.cc tests of ode-affine.hpp and ode-affine-wrapper.hpp
test/test-ode-qr.cc test of ode-qr.hpp
test/test-ode-lohner.cc test of ode-lohner.hpp
test/test-ode-qr-lohner.cc test of ode-qr-lohner.hpp
test/test-odescale.cc test of odescale.hpp
test/test-ode-nv.cc test of ode-nv.hpp
test/test-ode-autodif-nv.cc test of ode-autodif-nv.hpp
test/test-rk.cc test of rk.hpp
test/test-rkf45.cc test of rkf45.hpp


test/test-strobomap.cc test of strobomap.hpp
test/test-bvp.cc sample where a two-point boundary value problem is solved using stroboscopic map
test/test-poincaremap.cc test of poincaremap.hpp


test/test-defint.cc test of defint.hpp
test/test-defint-byode.cc sample where a integral is regarded as an ODE and computed by an ODE Solver
test/test-doubleintegral.cc test of doubleintegral.hpp
test/test-defint-singular.cc test of defint-singular.hpp
test/test-doubleint-singular.cc test of doubleint-singular.hpp
test/test-lobachevsky.cc test of lobachevsky.hpp
test/test-gamma.cc test of gamma.hpp
test/test-beta.cc test of beta.hpp
test/test-hypergeom.cc test of hypergeom.hpp
test/test-airy.cc test of airy.hpp
test/test-bessel.cc test of bessel.hpp
test/test-geoseries.cc test of geoseries.hpp


test/test-invert.cc test of matrix-inversion.hpp
test/test-qr.cc test of qr.hpp
test/test-vleq.cc test of vleq.hpp
test/test-eig.cc test of eig.hpp
test/test-lp.cc test of lp.hpp
test/test-optimize.cc test of optimize.hpp
test/test-optimize-nd.cc test of optimize.hpp (optimization function without differentiation)
test/test-kkt.cc test of kkt.hpp
test/test-newton.cc test of newton.hpp
test/test-dka.cc test of dka.hpp
test/test-cardano-ferrari.cc test of cardano-ferrari.hpp
test/highderiv.cc test of highderiv.hpp


test/test-matplotlib.cc test of matplotlib.hpp
test/test-psa-plot.cc test of psa-plot.hpp
test/test-ode-plot.cc the orbit of a solution to an ODE is displayed by the use of callback of psa-plot.hpp and ode
test/test-jointrange.cc test of jointrange.hpp




example/ The followings are files where various problems are solved.



Examples of finding all solutions of nonlinear eqeuations
example/allsolexample.hpp Various problem of finding all solutions
example/allsolexample.cc to perform allsolexample.hpp
example/burkardt-non.hpp the example in http://people.sc.fsu.edu/~jburkardt/f_src/test_nonlin/test_nonlin.html
example/test-burkardt-non.cc to perform burkardt-non.hpp
example/coprin.hpp the example in http://www-sop.inria.fr/coprin/logiciels/ALIAS/Benches/benches.html
example/test-coprin.cc to perform coprin.hpp
example/test-nishi.cc the example provided by Professor Nishi where the equation that describes a two-transistor circuit has five solutions
example/test-kanz.cc the examples in "Y. Kanzawa, An Algorithm of Finding All Solutions with Guaranteed Accuracy for Nonlinear Equations within Finite Steps" is solved
example/zeros-legendre.cc obtain all zeros of Legendre polynomial by seveal methods



The followings are examples of solving ODEs.
example/ivp-example.hpp
example/ivp-example.cc
example/burkardt-ode.hpp
example/test-burkardt-ode.cc
example/test-kubota.cc
example/test-kepler.cc
example/test-duffing.cc
example/test-3body.cc the three‐body problem
example/test-oga.cc
example/test-neher.cc
example/test-ueda.cc
example/neumaier-ex2.cc
example/doublependulum.cc the double pendulum problem
example/test-vdp.cc
example/test-oregonator.cc
example/rober.cc the Robertson problem
example/test-parametric.cc solving an ODE with parameters, by regarding the parameters as unknown variables


example/lorenz-periodic.cc deriving a periodic solution to the Lorenz equation using the Poincaré map
example/rossler-periodic.cc deriving a periodic solution to the Rössler equation using the Poincaré map
example/craik-periodic.cc



The followings are examples of numerical integrations.
example/burkardt-int.hpp
example/test-burkardt-int.cc
example/defint-example.cc several examples of numerical integration problems
example/defint-singular-example.cc several numerical examples of integrals, the integrands of which has a singularity at the boundary points
example/defint-ooura.cc several examples of numerical integration in Prof. Ooura's DE Package FAQ



others
example/test-evalrange.cc the image of a function with five variables is computed using interval, affine, and mvf
example/hessian.cc example where an Hessian is computed using autodif