/MTQR

Mathematical software for high-precision numerical integration of singular polynomials by monomial transformations of the G-L nodes and weights

Primary LanguageC++GNU General Public License v3.0GPL-3.0

MTQR - Monomial Transformation Quadrature Rule

We endevour to address and overcome some specific limitations with regards to the performances of contemporary adaptive and composite quadrature techniques for the numerical approximation of definite integrals of functions with endpoint singular/irregular behaviour and that can be modelled by generalised polynomials of non-integer-degree.

This repository consists of a cross-platform C++ library implementing the Monomial Transformation Quadrature Rule, an innovative algorithm based on a paper, published in 2009, and it is part of a broader work published more recently in Computer Physics Communications.

The software can run standalone applications or be integrated into larger codebases in scientific computing via links to its static library.

Disclaimer

A full set of instructions, informative graphs, a mathematical background and general guidelines are discussed in a detailed User Manual which is located in the doc subdirectory; you can either read the pdf print or compile the latex scripts within said directory. We strongly advise any new user of the library to read the User Manual for system-specific instructions regarding the correct installation and configuration of MTQR's dependencies, the compilation of the library itself, the execution of the proposed tests and the integration in larger applications.

Structure

The repository source code is organised as follow (Figure 2.1 of the User Manual).

Dependencies

MTQR relies on two non-standard thrid-party libraries, both being open-source:

Building the library

We used CMake to achive cross-platform compatibility in compiling and linking the source code. For detailed information we refer to Chapter 2 of the User Manual.

Benchmarks

In the tests subdir we implement two cases: drivers is useful to get familiar with the fundamentals of MTQR and its two modes of execution loud and silent (see Chapter 3 of the User Manual); bessels indicates and example of how MTQR can be applied to real-word applications in computational science and engineering by computing the definite integrals of Bessel functions (of the first kind) of fractional order. MTQR is designed to always achieve machine-epsilon precision (in double floating format format) by manipulating the minimum and maximum real exponents of the input generalised polynomials and shifting them between a continuous-regions that falls below such accuracy treshold as shown below (Figure 1.1 of the User Manual).

Other tests can be found in the work submitted for peer-review at Computer Physics Communications.