ParaMonte Fortran 2.0.0
Parallel Monte Carlo and Machine Learning Library
See the latest version documentation.
pm_quadTest.F90
Go to the documentation of this file.
1!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3!!!! !!!!
4!!!! ParaMonte: Parallel Monte Carlo and Machine Learning Library. !!!!
5!!!! !!!!
6!!!! Copyright (C) 2012-present, The Computational Data Science Lab !!!!
7!!!! !!!!
8!!!! This file is part of the ParaMonte library. !!!!
9!!!! !!!!
10!!!! LICENSE !!!!
11!!!! !!!!
12!!!! https://github.com/cdslaborg/paramonte/blob/main/LICENSE.md !!!!
13!!!! !!!!
14!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
15!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
16
51
52!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
53
55
56 use pm_kind, only: SK, IK, LK, RKH
57 use pm_str, only: getTTZ => getTrimmedTZ
58 use pm_quadPack, only: wcauchy_type
59 use pm_option, only: getOption
60 use pm_val2str, only: getStr
61
62 implicit none
63
64 character(*, SK), parameter :: MODULE_NAME = "@pm_quadTest"
65
66!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
67
108 type, abstract :: integrand_type
109 real(RKH) :: lb
110 real(RKH) :: ub
111 real(RKH) :: integral
112 real(RKH) , allocatable :: break(:)
113 type(wcauchy_type) , allocatable :: wcauchy
114 character(:, SK) , allocatable :: desc
115 contains
116 procedure(get_proc) , deferred :: get
117 end type
118
119 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
120
126 ! \param[in] weighted : The input scalar `logical` of default kind \LK.
127 ! <ol>
128 ! <li> If it is `.true.`, the function value will be computed **including** its (Cauchy, sin, cos, algebraic, or other type of) weight.<br>
129 ! Use this if the goal is to test the performance of the algorithms in handling points of difficulties without explicitly specifying them for the integrators.<br>
130 ! <li> If it is `.false.`, the function value will be computed **excluding** its (Cauchy, sin, cos, algebraic, or other type of) weight.<br>
131 ! This is typically the value that should be passed to the integrators of [pm_quadPack](@ref pm_quadPack) module.<br>
132 ! </ol>
141 abstract interface
142 function get_proc(self, x) result(func)
143 use pm_kind, only: RKG => RKH
144 import :: integrand_type
145 class(integrand_type) , intent(in) :: self
146 real(RKG) , intent(in) :: x
147 real(RKG) :: func
148 end function
149 end interface
150
151!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
152
212 module subroutine test_isFailedQuad_RKH(disp, integrand, abstol, reltol)
213#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
214 !DEC$ ATTRIBUTES DLLEXPORT :: test_isFailedQuad_RKH
215#endif
216 use pm_kind, only: RKG => RKH
217 use pm_io, only: display_type
218 type(display_type) , intent(inout) :: disp
219 class(integrand_type) , intent(in) :: integrand
220 real(RKG) , intent(in), optional :: abstol, reltol
221 end subroutine
222 end interface
223
224!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
225
268 module subroutine test_getQuadErr_RKH(disp, integrand, atol, rtol, nintmax)
269#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
270 !DEC$ ATTRIBUTES DLLEXPORT :: test_getQuadErr_RKH
271#endif
272 use pm_kind, only: RKG => RKH
273 use pm_io, only: display_type
274 type(display_type) , intent(inout) :: disp
275 class(integrand_type) , intent(in) :: integrand
276 real(RKG) , intent(in), optional :: atol, rtol
277 integer(IK) , intent(in), optional :: nintmax
278 end subroutine
279 end interface
280
281!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
282
331 type, extends(integrand_type) :: int1_type
332 contains
333 procedure :: get => getInt1
334 end type
335
337 interface int1_type
338 module function int1_typer(lb, ub) result(self)
339#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
340 !DEC$ ATTRIBUTES DLLEXPORT :: int1_typer
341#endif
342 use pm_kind, only: RKG => RKH
343 real(RKG), intent(in), optional :: lb, ub
344 type(int1_type) :: self
345 end function
346 end interface
348
349!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
350
351 interface
352 module function getInt1(self, x) result(func)
353#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
354 !DEC$ ATTRIBUTES DLLEXPORT :: getInt1
355#endif
356 use pm_kind, only: RKG => RKH
357 class(int1_type) , intent(in) :: self
358 real(RKG) , intent(in) :: x
359 real(RKG) :: func
360 end function
361 end interface
362
363!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
364
412 type, extends(integrand_type) :: int2_type
413 real(RKH) :: a, b
414 contains
415 procedure :: get => getInt2
416 end type
417
419 interface int2_type
420 module function int2_typer(a, b) result(self)
421#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
422 !DEC$ ATTRIBUTES DLLEXPORT :: int2_typer
423#endif
424 use pm_kind, only: RKG => RKH
425 real(RKG), intent(in), optional :: a, b
426 type(int2_type) :: self
427 end function
428 end interface
430
431 interface
432 module function getInt2(self, x) result(func)
433#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
434 !DEC$ ATTRIBUTES DLLEXPORT :: getInt2
435#endif
436 use pm_kind, only: RKG => RKH
437 class(int2_type) , intent(in) :: self
438 real(RKG) , intent(in) :: x
439 real(RKG) :: func
440 end function
441 end interface
442
443!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
444
489 type, extends(integrand_type) :: int3_type
490 contains
491 procedure :: get => getInt3
492 end type
493
495 interface int3_type
496 module function int3_typer(ub) result(self)
497#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
498 !DEC$ ATTRIBUTES DLLEXPORT :: int3_typer
499#endif
500 use pm_kind, only: RKG => RKH
501 real(RKG), intent(in), optional :: ub
502 type(int3_type) :: self
503 end function
504 end interface
506
507 interface
508 module function getInt3(self, x) result(func)
509#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
510 !DEC$ ATTRIBUTES DLLEXPORT :: getInt3
511#endif
512 use pm_kind, only: RKG => RKH
513 class(int3_type) , intent(in) :: self
514 real(RKG) , intent(in) :: x
515 real(RKG) :: func
516 end function
517 end interface
518
519!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
520
558 type, extends(integrand_type) :: int4_type
559 contains
560 procedure :: get => getInt4
561 end type
562
564 interface int4_type
565 module function int4_typer() result(self)
566#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
567 !DEC$ ATTRIBUTES DLLEXPORT :: int4_typer
568#endif
569 use pm_kind, only: RKG => RKH
570 type(int4_type) :: self
571 end function
572 end interface
574
575 interface
576 module function getInt4(self, x) result(func)
577#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
578 !DEC$ ATTRIBUTES DLLEXPORT :: getInt4
579#endif
580 use pm_kind, only: RKG => RKH
581 class(int4_type), intent(in) :: self
582 real(RKG) , intent(in) :: x
583 real(RKG) :: func
584 end function
585 end interface
586
587!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
588
637 type, extends(integrand_type) :: int5_type
638 contains
639 procedure :: get => getInt5
640 end type
641
643 interface int5_type
644 module function int5_typer(lb, ub) result(self)
645#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
646 !DEC$ ATTRIBUTES DLLEXPORT :: int5_typer
647#endif
648 use pm_kind, only: RKG => RKH
649 real(RKG), intent(in) :: lb, ub
650 type(int5_type) :: self
651 end function
652 end interface
654
655 interface
656 module function getInt5(self, x) result(func)
657#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
658 !DEC$ ATTRIBUTES DLLEXPORT :: getInt5
659#endif
660 use pm_kind, only: RKG => RKH
661 class(int5_type), intent(in) :: self
662 real(RKG) , intent(in) :: x
663 real(RKG) :: func
664 end function
665 end interface
666
667!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
668
706 type, extends(integrand_type) :: int6_type
707 contains
708 procedure :: get => getInt6
709 end type
710
712 interface int6_type
713 module function int6_typer() result(self)
714#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
715 !DEC$ ATTRIBUTES DLLEXPORT :: int6_typer
716#endif
717 use pm_kind, only: RKG => RKH
718 type(int6_type) :: self
719 end function
720 end interface
722
723 interface
724 module function getInt6(self, x) result(func)
725#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
726 !DEC$ ATTRIBUTES DLLEXPORT :: getInt6
727#endif
728 use pm_kind, only: RKG => RKH
729 class(int6_type), intent(in) :: self
730 real(RKG) , intent(in) :: x
731 real(RKG) :: func
732 end function
733 end interface
734
735!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
736
779 type, extends(integrand_type) :: int7_type
780 contains
781 procedure :: get => getInt7
782 end type
783
785 interface int7_type
786 module function int7_typer() result(self)
787#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
788 !DEC$ ATTRIBUTES DLLEXPORT :: int7_typer
789#endif
790 use pm_kind, only: RKG => RKH
791 type(int7_type) :: self
792 end function
793 end interface
795
796 interface
797 module function getInt7(self, x) result(func)
798#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
799 !DEC$ ATTRIBUTES DLLEXPORT :: getInt7
800#endif
801 use pm_kind, only: RKG => RKH
802 class(int7_type), intent(in) :: self
803 real(RKG) , intent(in) :: x
804 real(RKG) :: func
805 end function
806 end interface
807
808!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
809
852 type, extends(integrand_type) :: int8_type
853 contains
854 procedure :: get => getInt8
855 end type
856
858 interface int8_type
859 module function int8_typer() result(self)
860#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
861 !DEC$ ATTRIBUTES DLLEXPORT :: int8_typer
862#endif
863 use pm_kind, only: RKG => RKH
864 type(int8_type) :: self
865 end function
866 end interface
868
869 interface
870 module function getInt8(self, x) result(func)
871#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
872 !DEC$ ATTRIBUTES DLLEXPORT :: getInt8
873#endif
874 use pm_kind, only: RKG => RKH
875 class(int8_type), intent(in) :: self
876 real(RKG) , intent(in) :: x
877 real(RKG) :: func
878 end function
879 end interface
880
881!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
882
929 type, extends(integrand_type) :: int9_type
930 contains
931 procedure :: get => getInt9
932 end type
933
935 interface int9_type
936 module function int9_typer() result(self)
937#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
938 !DEC$ ATTRIBUTES DLLEXPORT :: int9_typer
939#endif
940 use pm_kind, only: RKG => RKH
941 type(int9_type) :: self
942 end function
943 end interface
945
946 interface
947 module function getInt9(self, x) result(func)
948#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
949 !DEC$ ATTRIBUTES DLLEXPORT :: getInt9
950#endif
951 use pm_kind, only: RKG => RKH
952 class(int9_type), intent(in) :: self
953 real(RKG) , intent(in) :: x
954 real(RKG) :: func
955 end function
956 end interface
957
958!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
959
1026 real(RKH) :: alpha, beta
1027 real(RKH) :: normfac
1028 contains
1029 procedure :: get => getIntGamUpp
1030 end type
1031
1033 interface intGamUpp_type
1034 module function intGamUpp_typer(lb, ub, alpha, beta) result(self)
1035#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1036 !DEC$ ATTRIBUTES DLLEXPORT :: intGamUpp_typer
1037#endif
1038 use pm_kind, only: RKG => RKH
1039 real(RKG), intent(in), optional :: lb, ub, alpha, beta
1040 type(intGamUpp_type) :: self
1041 end function
1042 end interface
1044
1045 interface
1046 module function getIntGamUpp(self, x) result(func)
1047#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1048 !DEC$ ATTRIBUTES DLLEXPORT :: getIntGamUpp
1049#endif
1050 use pm_kind, only: RKG => RKH
1051 class(intGamUpp_type), intent(in) :: self
1052 real(RKG), intent(in) :: x
1053 real(RKG) :: func
1054 end function
1055 end interface
1056
1057!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1058
1112 integer(IK) :: lf, uf
1113 real(RKH) :: a, b
1114 contains
1115 procedure :: get => getIntSinCos
1116 end type
1117
1119 interface intSinCos_type
1120 module function intSinCos_typer(lf, uf, a, b) result(self)
1121#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1122 !DEC$ ATTRIBUTES DLLEXPORT :: intSinCos_typer
1123#endif
1124 use pm_kind, only: RKG => RKH
1125 integer(IK) , intent(in), optional :: lf, uf
1126 real(RKG) , intent(in), optional :: a, b
1127 type(intSinCos_type) :: self
1128 end function
1129 end interface
1131
1132 interface
1133 module function getIntSinCos(self, x) result(func)
1134#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1135 !DEC$ ATTRIBUTES DLLEXPORT :: getIntSinCos
1136#endif
1137 use pm_kind, only: RKG => RKH
1138 class(intSinCos_type) , intent(in) :: self
1139 real(RKG) , intent(in) :: x
1140 real(RKG) :: func
1141 end function
1142 end interface
1143
1144!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1145
1191 real(RKH) :: mu
1192 real(RKH) :: sigma
1193 real(RKH) :: invSigma
1194 real(RKH) :: logInvSigma
1195 contains
1196 procedure :: get => getIntNormPDF
1197 end type
1198
1200 interface intNormPDF_type
1201 module function intNormPDF_typer(lb, ub, mu, sigma) result(self)
1202#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1203 !DEC$ ATTRIBUTES DLLEXPORT :: intNormPDF_typer
1204#endif
1205 use pm_kind, only: RKG => RKH
1206 real(RKG), intent(in), optional :: lb, ub, mu, sigma
1207 type(intNormPDF_type) :: self
1208 end function
1209 end interface
1211
1212 interface
1213 module function getIntNormPDF(self, x) result(func)
1214#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1215 !DEC$ ATTRIBUTES DLLEXPORT :: getIntNormPDF
1216#endif
1217 use pm_kind, only: RKG => RKH
1218 class(intNormPDF_type) , intent(in) :: self
1219 real(RKG) , intent(in) :: x
1220 real(RKG) :: func
1221 end function
1222 end interface
1223
1224!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1225
1272 real(RKH) :: mu
1273 real(RKH) :: sigma
1274 real(RKH) :: invSigma
1275 real(RKH) :: logInvSigma
1276 contains
1277 procedure :: get => getIntLogNormPDF
1278 end type
1279
1281 interface intLogNormPDF_type
1282 module function intLogNormPDF_typer(lb, ub, mu, sigma) result(self)
1283#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1284 !DEC$ ATTRIBUTES DLLEXPORT :: intLogNormPDF_typer
1285#endif
1286 use pm_kind, only: RKG => RKH
1287 real(RKG), intent(in), optional :: lb, ub, mu, sigma
1288 type(intLogNormPDF_type) :: self
1289 end function
1290 end interface
1292
1293 interface
1294 module function getIntLogNormPDF(self, x) result(func)
1295#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1296 !DEC$ ATTRIBUTES DLLEXPORT :: getIntLogNormPDF
1297#endif
1298 use pm_kind, only: RKG => RKH
1299 class(intLogNormPDF_type) , intent(in) :: self
1300 real(RKG) , intent(in) :: x
1301 real(RKG) :: func
1302 end function
1303 end interface
1304
1305!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1306
1350 real(RKH) :: kappa
1351 real(RKH) :: invOmega
1352 real(RKH) :: logSigma
1353 real(RKH) :: logPDFNF
1354 contains
1355 procedure :: get => getIntGenExpGammaPDF
1356 end type
1357
1359 interface intGenExpGammaPDF_type
1360 module function intGenExpGammaPDF_typer(lb, ub, kappa, invOmega, logSigma) result(self)
1361#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1362 !DEC$ ATTRIBUTES DLLEXPORT :: intGenExpGammaPDF_typer
1363#endif
1364 use pm_kind, only: RKG => RKH
1365 real(RKG) , intent(in), optional :: lb, ub, kappa, invOmega, logSigma
1366 type(intGenExpGammaPDF_type) :: self
1367 end function
1368 end interface
1370
1371 interface
1372 module function getIntGenExpGammaPDF(self, x) result(func)
1373#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1374 !DEC$ ATTRIBUTES DLLEXPORT :: getIntGenExpGammaPDF
1375#endif
1376 use pm_kind, only: RKG => RKH
1377 class(intGenExpGammaPDF_type) , intent(in) :: self
1378 real(RKG) , intent(in) :: x
1379 real(RKG) :: func
1380 end function
1381 end interface
1382
1383!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1384
1429 contains
1430 procedure :: get => getIntPentaGammaInf
1431 end type
1432
1434 interface intPentaGammaInf_type
1435 module function intPentaGammaInf_typer() result(self)
1436#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1437 !DEC$ ATTRIBUTES DLLEXPORT :: intPentaGammaInf_typer
1438#endif
1439 use pm_kind, only: RKG => RKH
1440 type(intPentaGammaInf_type) :: self
1441 end function
1442 end interface
1444
1445 interface
1446 module function getIntPentaGammaInf(self, x) result(func)
1447#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1448 !DEC$ ATTRIBUTES DLLEXPORT :: getIntPentaGammaInf
1449#endif
1450 use pm_kind, only: RKG => RKH
1451 class(intPentaGammaInf_type), intent(in) :: self
1452 real(RKG) , intent(in) :: x
1453 real(RKG) :: func
1454 end function
1455 end interface
1456
1457!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1458
1507 contains
1508 procedure :: get => getIntDoncker1
1509 end type
1510
1512 interface intDoncker1_type
1513 module function intDoncker1_typer(lb, ub) result(self)
1514#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1515 !DEC$ ATTRIBUTES DLLEXPORT :: intDoncker1_typer
1516#endif
1517 use pm_kind, only: RKG => RKH
1518 real(RKG), intent(in), optional :: lb, ub
1519 type(intDoncker1_type) :: self
1520 end function
1521 end interface
1523
1524 interface
1525 module function getIntDoncker1(self, x) result(func)
1526#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1527 !DEC$ ATTRIBUTES DLLEXPORT :: getIntDoncker1
1528#endif
1529 use pm_kind, only: RKG => RKH
1530 class(intDoncker1_type) , intent(in) :: self
1531 real(RKG) , intent(in) :: x
1532 real(RKG) :: func
1533 end function
1534 end interface
1535
1536!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1537
1590 contains
1591 procedure :: get => getIntDoncker2
1592 end type
1593
1595 interface intDoncker2_type
1596 module function intDoncker2_typer(lb, ub) result(self)
1597#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1598 !DEC$ ATTRIBUTES DLLEXPORT :: intDoncker2_typer
1599#endif
1600 use pm_kind, only: RKG => RKH
1601 real(RKG), intent(in), optional :: lb, ub
1602 type(intDoncker2_type) :: self
1603 end function
1604 end interface
1606
1607 interface
1608 module function getIntDoncker2(self, x) result(func)
1609#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1610 !DEC$ ATTRIBUTES DLLEXPORT :: getIntDoncker2
1611#endif
1612 use pm_kind, only: RKG => RKH
1613 class(intDoncker2_type) , intent(in) :: self
1614 real(RKG) , intent(in) :: x
1615 real(RKG) :: func
1616 end function
1617 end interface
1618
1619!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1620
1666 contains
1667 procedure :: get => getIntCauchy1
1668 end type
1669
1671 interface intCauchy1_type
1672 module function intCauchy1_typer(lb, ub, cs) result(self)
1673#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1674 !DEC$ ATTRIBUTES DLLEXPORT :: intCauchy1_typer
1675#endif
1676 use pm_kind, only: RKG => RKH
1677 real(RKG) , intent(in), optional :: lb, ub, cs
1678 type(intCauchy1_type) :: self
1679 end function
1680 end interface
1682
1683 interface
1684 module function getIntCauchy1(self, x) result(func)
1685#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1686 !DEC$ ATTRIBUTES DLLEXPORT :: getIntCauchy1
1687#endif
1688 use pm_kind, only: RKG => RKH
1689 class(intCauchy1_type) , intent(in) :: self
1690 real(RKG) , intent(in) :: x
1691 real(RKG) :: func
1692 end function
1693 end interface
1694
1695!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1696
1761 real(RKH) , private :: csnot, Pole(2)
1762 contains
1763 procedure :: get => getIntCauchy2
1764 end type
1765
1767 interface intCauchy2_type
1768 module function intCauchy2_typer(lb, ub, cs1, cs2) result(self)
1769#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1770 !DEC$ ATTRIBUTES DLLEXPORT :: intCauchy2_typer
1771#endif
1772 use pm_kind, only: RKG => RKH
1773 real(RKG) , intent(in), optional :: lb, ub, cs1, cs2
1774 type(intCauchy2_type) :: self
1775 end function
1776 end interface
1778
1779 interface
1780 module function getIntCauchy2(self, x) result(func)
1781#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1782 !DEC$ ATTRIBUTES DLLEXPORT :: getIntCauchy2
1783#endif
1784 use pm_kind, only: RKG => RKH
1785 class(intCauchy2_type) , intent(in) :: self
1786 real(RKG) , intent(in) :: x
1787 real(RKG) :: func
1788 end function
1789 end interface
1790
1791!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1792
1793end module pm_quadTest
Generate and return the value of the optional input argument if it is present, otherwise,...
Definition: pm_option.F90:135
This is the abstract interface of the get() type-bound procedure of integrand_type class whose argume...
Run the adaptive global quadrature methods for the specified input integrand object.
Run the adaptive global quadrature methods for the specified input integrand object.
Generate and return a vector of single-characters each element of which corresponds to one character ...
Definition: pm_str.F90:1449
Generate and return the conversion of the input value to an output Fortran string,...
Definition: pm_val2str.F90:167
This module contains classes and procedures for input/output (IO) or generic display operations on st...
Definition: pm_io.F90:252
This module defines the relevant Fortran kind type-parameters frequently used in the ParaMonte librar...
Definition: pm_kind.F90:268
integer, parameter LK
The default logical kind in the ParaMonte library: kind(.true.) in Fortran, kind(....
Definition: pm_kind.F90:541
integer, parameter IK
The default integer kind in the ParaMonte library: int32 in Fortran, c_int32_t in C-Fortran Interoper...
Definition: pm_kind.F90:540
integer, parameter SK
The default character kind in the ParaMonte library: kind("a") in Fortran, c_char in C-Fortran Intero...
Definition: pm_kind.F90:539
integer, parameter RKH
The scalar integer constant of intrinsic default kind, representing the highest-precision real kind t...
Definition: pm_kind.F90:858
This module contains procedures, generic interfaces, and types for generating default values for opti...
Definition: pm_option.F90:34
character(*, SK), parameter MODULE_NAME
Definition: pm_option.F90:40
This module contains classes and procedures for non-adaptive and adaptive global numerical quadrature...
This module contains a collection of interesting or challenging integrands for testing or examining t...
Definition: pm_quadTest.F90:54
This module contains classes and procedures for various string manipulations and inquiries.
Definition: pm_str.F90:49
This module contains the generic procedures for converting values of different types and kinds to For...
Definition: pm_val2str.F90:58
Generate and return an object of type display_type.
Definition: pm_io.F90:10282
This is the derived type for constructing objects that signify the computation of the Cauchy Principa...
This is the derived type for generating test integrand objects of the algebraic form as described bel...
This is the derived type for generating test integrand objects of algebraic form as described below.
This is the derived type for generating test integrand objects of algebraic form as described below.
This is the derived type for generating test integrand objects of the following algebraic form.
This is the derived type for generating test integrand objects of the following algebraic form.
This is the derived type for generating test integrand objects of the following algebraic form.
This is the derived type for generating test integrand objects of the following algebraic form.
This is the derived type for generating test integrand objects of the following algebraic form.
This is the derived type for generating test integrand objects of the following algebraic form.
This is the derived type for generating test integrand objects of the algebraic form as described bel...
This is the derived type for generating test integrand objects of the algebraic form as described bel...
This is the derived type for generating test integrand objects of algebraic form as described below.
This is the derived type for generating test integrand objects of algebraic form as described below.
This is the derived type for generating test integrand objects of the following algebraic form.
This is the derived type for generating test integrand objects of the Probability Density Function of...
This is the derived type for generating test integrand objects of the Probability Density Function of...
This is the derived type for generating test integrand objects of the Probability Density Function of...
This is the derived type for generating test integrand objects of the sum of five Probability Density...
This is the derived type for generating test integrand objects of the trigonometric form as described...
This is the base type integrand_type standing abstract integrand type to generate a variety of integr...