Final update: Jan. 6, 2022

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-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 |