ParaMonte Fortran 2.0.0
Parallel Monte Carlo and Machine Learning Library
See the latest version documentation.
test_pm_mathLogAddExp.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
23
24!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
25
27
28 use pm_mathLogAddExp ! LCOV_EXCL_LINE
29 use pm_err, only: err_type
30 use pm_test, only: test_type, LK
31 implicit none
32
33 private
34 public :: setTest
35 type(test_type) :: test
36
37!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
38
39 interface
40#if CK5_ENABLED
41 module function getLogAddExp_CK5() result(assertion); logical(LK) :: assertion; end function
42#endif
43#if CK4_ENABLED
44 module function getLogAddExp_CK4() result(assertion); logical(LK) :: assertion; end function
45#endif
46#if CK3_ENABLED
47 module function getLogAddExp_CK3() result(assertion); logical(LK) :: assertion; end function
48#endif
49#if CK2_ENABLED
50 module function getLogAddExp_CK2() result(assertion); logical(LK) :: assertion; end function
51#endif
52#if CK1_ENABLED
53 module function getLogAddExp_CK1() result(assertion); logical(LK) :: assertion; end function
54#endif
55 end interface
56
57!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
58
59 interface
60#if RK5_ENABLED
61 module function getLogAddExp_RK5() result(assertion); logical(LK) :: assertion; end function
62#endif
63#if RK4_ENABLED
64 module function getLogAddExp_RK4() result(assertion); logical(LK) :: assertion; end function
65#endif
66#if RK3_ENABLED
67 module function getLogAddExp_RK3() result(assertion); logical(LK) :: assertion; end function
68#endif
69#if RK2_ENABLED
70 module function getLogAddExp_RK2() result(assertion); logical(LK) :: assertion; end function
71#endif
72#if RK1_ENABLED
73 module function getLogAddExp_RK1() result(assertion); logical(LK) :: assertion; end function
74#endif
75 end interface
76
77!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
78
79contains
80
81!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
82
83 subroutine setTest()
84
86
87 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
88
89#if CK5_ENABLED
90 call test%run(getLogAddExp_CK5, "getLogAddExp_CK5")
91#endif
92#if CK4_ENABLED
93 call test%run(getLogAddExp_CK4, "getLogAddExp_CK4")
94#endif
95#if CK3_ENABLED
96 call test%run(getLogAddExp_CK3, "getLogAddExp_CK3")
97#endif
98#if CK2_ENABLED
99 call test%run(getLogAddExp_CK2, "getLogAddExp_CK2")
100#endif
101#if CK1_ENABLED
102 call test%run(getLogAddExp_CK1, "getLogAddExp_CK1")
103#endif
104
105 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
106
107#if RK5_ENABLED
108 call test%run(getLogAddExp_RK5, "getLogAddExp_RK5")
109#endif
110#if RK4_ENABLED
111 call test%run(getLogAddExp_RK4, "getLogAddExp_RK4")
112#endif
113#if RK3_ENABLED
114 call test%run(getLogAddExp_RK3, "getLogAddExp_RK3")
115#endif
116#if RK2_ENABLED
117 call test%run(getLogAddExp_RK2, "getLogAddExp_RK2")
118#endif
119#if RK1_ENABLED
120 call test%run(getLogAddExp_RK1, "getLogAddExp_RK1")
121#endif
122
123 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
124
125 call test%summarize()
126
127 end subroutine setTest
128
129!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
130
131end module test_pm_mathLogAddExp ! LCOV_EXCL_LINE
This module contains classes and procedures for reporting and handling errors.
Definition: pm_err.F90:52
character(*, SK), parameter MODULE_NAME
Definition: pm_err.F90:58
This module contains procedures and generic interfaces for adding two real or complex values without ...
This module contains a simple unit-testing framework for the Fortran libraries, including the ParaMon...
Definition: pm_test.F90:42
This module contains tests of the module pm_mathLogAddExp.
This is the derived type for generating objects to gracefully and verbosely handle runtime unexpected...
Definition: pm_err.F90:157
This is the derived type test_type for generating objects that facilitate testing of a series of proc...
Definition: pm_test.F90:209