Line data Source code
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 :
17 : !> \brief
18 : !> This file contains procedure implementations of [pm_mathSqrt](@ref pm_mathSqrt).
19 : !>
20 : !> \finmain
21 : !>
22 : !> \author
23 : !> \AmirShahmoradi, April 23, 2017, 1:36 AM, Institute for Computational Engineering and Sciences (ICES), University of Texas at Austin
24 :
25 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
26 :
27 : submodule (pm_mathSqrt) routines ! LCOV_EXCL_LINE
28 :
29 : #if CHECK_ENABLED
30 : use pm_err, only: getFine
31 : use pm_val2str, only: getStr
32 : use pm_err, only: setAsserted
33 : #define CHECK_ASSERTION(LINE,ASSERTION,MSG) \
34 : call setAsserted(ASSERTION,getFine(__FILE__,LINE)//MODULE_NAME//MSG);
35 : #else
36 : #define CHECK_ASSERTION(LINE,ASSERTION,MSG) continue;
37 : #endif
38 :
39 : use pm_kind, only: SK, RKB
40 :
41 : implicit none
42 :
43 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
44 :
45 : contains
46 :
47 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
48 :
49 : #define getSqrt_ENABLED 1
50 :
51 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
52 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
53 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
54 :
55 : #define Def_ENABLED 1
56 :
57 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
58 :
59 : #define IK_ENABLED 1
60 :
61 : #if IK5_ENABLED
62 0 : module procedure getSqrtDef_IK5
63 : use pm_kind, only: IKC => IK5
64 : #include "pm_mathSqrt@routines.inc.F90"
65 : end procedure
66 : #endif
67 :
68 : #if IK4_ENABLED
69 0 : module procedure getSqrtDef_IK4
70 : use pm_kind, only: IKC => IK4
71 : #include "pm_mathSqrt@routines.inc.F90"
72 : end procedure
73 : #endif
74 :
75 : #if IK3_ENABLED
76 15 : module procedure getSqrtDef_IK3
77 : use pm_kind, only: IKC => IK3
78 : #include "pm_mathSqrt@routines.inc.F90"
79 : end procedure
80 : #endif
81 :
82 : #if IK2_ENABLED
83 0 : module procedure getSqrtDef_IK2
84 : use pm_kind, only: IKC => IK2
85 : #include "pm_mathSqrt@routines.inc.F90"
86 : end procedure
87 : #endif
88 :
89 : #if IK1_ENABLED
90 0 : module procedure getSqrtDef_IK1
91 : use pm_kind, only: IKC => IK1
92 : #include "pm_mathSqrt@routines.inc.F90"
93 : end procedure
94 : #endif
95 :
96 : #undef IK_ENABLED
97 :
98 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
99 :
100 : #undef Def_ENABLED
101 :
102 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
103 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
104 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
105 :
106 : #define Bin_ENABLED 1
107 :
108 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
109 :
110 : #define IK_ENABLED 1
111 :
112 : #if IK5_ENABLED
113 0 : module procedure getSqrtBin_IK5
114 : use pm_kind, only: IKC => IK5
115 : #include "pm_mathSqrt@routines.inc.F90"
116 : end procedure
117 : #endif
118 :
119 : #if IK4_ENABLED
120 0 : module procedure getSqrtBin_IK4
121 : use pm_kind, only: IKC => IK4
122 : #include "pm_mathSqrt@routines.inc.F90"
123 : end procedure
124 : #endif
125 :
126 : #if IK3_ENABLED
127 32 : module procedure getSqrtBin_IK3
128 : use pm_kind, only: IKC => IK3
129 : #include "pm_mathSqrt@routines.inc.F90"
130 : end procedure
131 : #endif
132 :
133 : #if IK2_ENABLED
134 0 : module procedure getSqrtBin_IK2
135 : use pm_kind, only: IKC => IK2
136 : #include "pm_mathSqrt@routines.inc.F90"
137 : end procedure
138 : #endif
139 :
140 : #if IK1_ENABLED
141 0 : module procedure getSqrtBin_IK1
142 : use pm_kind, only: IKC => IK1
143 : #include "pm_mathSqrt@routines.inc.F90"
144 : end procedure
145 : #endif
146 :
147 : #undef IK_ENABLED
148 :
149 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
150 :
151 : #undef Bin_ENABLED
152 :
153 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
154 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
155 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
156 :
157 : #define Lin_ENABLED 1
158 :
159 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
160 :
161 : #define IK_ENABLED 1
162 :
163 : #if IK5_ENABLED
164 0 : module procedure getSqrtLin_IK5
165 : use pm_kind, only: IKC => IK5
166 : #include "pm_mathSqrt@routines.inc.F90"
167 : end procedure
168 : #endif
169 :
170 : #if IK4_ENABLED
171 0 : module procedure getSqrtLin_IK4
172 : use pm_kind, only: IKC => IK4
173 : #include "pm_mathSqrt@routines.inc.F90"
174 : end procedure
175 : #endif
176 :
177 : #if IK3_ENABLED
178 11 : module procedure getSqrtLin_IK3
179 : use pm_kind, only: IKC => IK3
180 : #include "pm_mathSqrt@routines.inc.F90"
181 : end procedure
182 : #endif
183 :
184 : #if IK2_ENABLED
185 0 : module procedure getSqrtLin_IK2
186 : use pm_kind, only: IKC => IK2
187 : #include "pm_mathSqrt@routines.inc.F90"
188 : end procedure
189 : #endif
190 :
191 : #if IK1_ENABLED
192 0 : module procedure getSqrtLin_IK1
193 : use pm_kind, only: IKC => IK1
194 : #include "pm_mathSqrt@routines.inc.F90"
195 : end procedure
196 : #endif
197 :
198 : #undef IK_ENABLED
199 :
200 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
201 :
202 : #undef Lin_ENABLED
203 :
204 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
205 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
206 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
207 :
208 : #undef getSqrt_ENABLED
209 :
210 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
211 :
212 : #undef CHECK_ASSERTION
213 :
214 : end submodule routines
|