ParaMonte Fortran 2.0.0
Parallel Monte Carlo and Machine Learning Library
See the latest version documentation.
pm_quadTest Module Reference

This module contains a collection of interesting or challenging integrands for testing or examining the integration routines of the ParaMonte library.
More...

Data Types

interface  get_proc
 This is the abstract interface of the get() type-bound procedure of integrand_type class whose arguments of type real are of the highest precision kind RKH, made available by the processor. More...
 
type  int1_type
 This is the derived type for generating test integrand objects of the algebraic form as described below. More...
 
type  int2_type
 This is the derived type for generating test integrand objects of algebraic form as described below. More...
 
type  int3_type
 This is the derived type for generating test integrand objects of algebraic form as described below. More...
 
type  int4_type
 This is the derived type for generating test integrand objects of the following algebraic form. More...
 
type  int5_type
 This is the derived type for generating test integrand objects of the following algebraic form. More...
 
type  int6_type
 This is the derived type for generating test integrand objects of the following algebraic form. More...
 
type  int7_type
 This is the derived type for generating test integrand objects of the following algebraic form. More...
 
type  int8_type
 This is the derived type for generating test integrand objects of the following algebraic form. More...
 
type  int9_type
 This is the derived type for generating test integrand objects of the following algebraic form. More...
 
type  intCauchy1_type
 This is the derived type for generating test integrand objects of the algebraic form as described below, whose Cauchy Principal Value is to be computed. More...
 
type  intCauchy2_type
 This is the derived type for generating test integrand objects of the algebraic form as described below, whose Cauchy Principal Value is to be computed. More...
 
type  intDoncker1_type
 This is the derived type for generating test integrand objects of algebraic form as described below. More...
 
type  intDoncker2_type
 This is the derived type for generating test integrand objects of algebraic form as described below. More...
 
type  integrand_type
 This is the base type integrand_type standing abstract integrand type to generate a variety of integration test functions.
More...
 
type  intGamUpp_type
 This is the derived type for generating test integrand objects of the following algebraic form. More...
 
type  intGenExpGammaPDF_type
 This is the derived type for generating test integrand objects of the Probability Density Function of the GenExpGamma distribution. More...
 
type  intLogNormPDF_type
 This is the derived type for generating test integrand objects of the Probability Density Function of the Lognormal distribution. More...
 
type  intNormPDF_type
 This is the derived type for generating test integrand objects of the Probability Density Function of the Normal distribution. More...
 
type  intPentaGammaInf_type
 This is the derived type for generating test integrand objects of the sum of five Probability Density Functions of the Gamma distribution. More...
 
type  intSinCos_type
 This is the derived type for generating test integrand objects of the trigonometric form as described below. More...
 
interface  test_getQuadErr
 Run the adaptive global quadrature methods for the specified input integrand object. More...
 
interface  test_isFailedQuad
 Run the adaptive global quadrature methods for the specified input integrand object. More...
 

Variables

character(*, SK), parameter MODULE_NAME = "@pm_quadTest"
 

Detailed Description

This module contains a collection of interesting or challenging integrands for testing or examining the integration routines of the ParaMonte library.

The routines to be tested include but are not limited to those of

All test integrands are wrapped in a derived type of the base abstract class integrand_type.

See also
pm_quadPack
pm_quadRomb
Todo:
Critical Priority: Unfortunately, gfortran 12 and older versions do not properly support the parameterized derived types (PDTs).
As such, the example generic-real-kind PDT types could not be used here.
This creates significant complexities when using the examples of these modules,
because all real kinds in this module are set to the highest precision available.
The onus is then on the end user to write wrappers that convert the relevant components and function-returns to the desired real kinds.
In addition to being ugly, error-prone and verbose, this usage of the highest-precision real kind is also highly inefficient computationally.
Fortunately, once PDTs are supported in gfortran, the conversion of the example types of this module to PDTs is straightforward and non-breaking.
The migration to PDTs must be done as soon as gfortran supports for PDTs is complete.
Note that other compilers have full support of PDTs.


Final Remarks


If you believe this algorithm or its documentation can be improved, we appreciate your contribution and help to edit this page's documentation and source file on GitHub.
For details on the naming abbreviations, see this page.
For details on the naming conventions, see this page.
This software is distributed under the MIT license with additional terms outlined below.

  1. If you use any parts or concepts from this library to any extent, please acknowledge the usage by citing the relevant publications of the ParaMonte library.
  2. If you regenerate any parts/ideas from this library in a programming environment other than those currently supported by this ParaMonte library (i.e., other than C, C++, Fortran, MATLAB, Python, R), please also ask the end users to cite this original ParaMonte library.

This software is available to the public under a highly permissive license.
Help us justify its continued development and maintenance by acknowledging its benefit to society, distributing it, and contributing to it.

Author:
Amir Shahmoradi, Oct 16, 2009, 11:14 AM, Michigan

Variable Documentation

◆ MODULE_NAME

character(*, SK), parameter pm_quadTest::MODULE_NAME = "@pm_quadTest"

Definition at line 64 of file pm_quadTest.F90.