Giter VIP home page Giter VIP logo

mtqr / mtqr Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 1.0 22.21 MB

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

Home Page: https://www.sciencedirect.com/science/article/pii/S001046552400047X?via%3Dihub

License: GNU General Public License v3.0

C++ 98.61% Makefile 0.77% CMake 0.57% Shell 0.05%
numerical-analysis mathematical-software boost-libraries cpp singular-integral-equations gauss-legendre-quadrature

mtqr's Introduction

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.

mtqr's People

Contributors

papadeiv avatar

Watchers

 avatar

Forkers

papadeiv

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.