ParaMonte Fortran 2.0.0
Parallel Monte Carlo and Machine Learning Library
See the latest version documentation.
pm_mathGammaGil.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
56
58
59 use pm_kind, only: SK, IK, LK
60
61 implicit none
62
63 character(*, SK), parameter :: MODULE_NAME = "@pm_mathGammaGil"
64
65!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
66
138
139 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
140
141#if RK5_ENABLED
142 PURE elemental module function getGammaIncLowGil_RK5(x, kappa) result(gammaIncLow)
143#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
144 !DEC$ ATTRIBUTES DLLEXPORT :: getGammaIncLowGil_RK5
145#endif
146 use pm_kind, only: RKG => RK5
147 real(RKG) , intent(in) :: x, kappa
148 real(RKG) :: gammaIncLow
149 end function
150#endif
151
152#if RK4_ENABLED
153 PURE elemental module function getGammaIncLowGil_RK4(x, kappa) result(gammaIncLow)
154#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
155 !DEC$ ATTRIBUTES DLLEXPORT :: getGammaIncLowGil_RK4
156#endif
157 use pm_kind, only: RKG => RK4
158 real(RKG) , intent(in) :: x, kappa
159 real(RKG) :: gammaIncLow
160 end function
161#endif
162
163#if RK3_ENABLED
164 PURE elemental module function getGammaIncLowGil_RK3(x, kappa) result(gammaIncLow)
165#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
166 !DEC$ ATTRIBUTES DLLEXPORT :: getGammaIncLowGil_RK3
167#endif
168 use pm_kind, only: RKG => RK3
169 real(RKG) , intent(in) :: x, kappa
170 real(RKG) :: gammaIncLow
171 end function
172#endif
173
174#if RK2_ENABLED
175 PURE elemental module function getGammaIncLowGil_RK2(x, kappa) result(gammaIncLow)
176#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
177 !DEC$ ATTRIBUTES DLLEXPORT :: getGammaIncLowGil_RK2
178#endif
179 use pm_kind, only: RKG => RK2
180 real(RKG) , intent(in) :: x, kappa
181 real(RKG) :: gammaIncLow
182 end function
183#endif
184
185#if RK1_ENABLED
186 PURE elemental module function getGammaIncLowGil_RK1(x, kappa) result(gammaIncLow)
187#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
188 !DEC$ ATTRIBUTES DLLEXPORT :: getGammaIncLowGil_RK1
189#endif
190 use pm_kind, only: RKG => RK1
191 real(RKG) , intent(in) :: x, kappa
192 real(RKG) :: gammaIncLow
193 end function
194#endif
195
196 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
197
198 end interface
199
200!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
201
274
275 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
276
277#if RK5_ENABLED
278 PURE elemental module function getGammaIncUppGil_RK5(x, kappa) result(gammaIncUpp)
279#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
280 !DEC$ ATTRIBUTES DLLEXPORT :: getGammaIncUppGil_RK5
281#endif
282 use pm_kind, only: RKG => RK5
283 real(RKG) , intent(in) :: x, kappa
284 real(RKG) :: gammaIncUpp
285 end function
286#endif
287
288#if RK4_ENABLED
289 PURE elemental module function getGammaIncUppGil_RK4(x, kappa) result(gammaIncUpp)
290#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
291 !DEC$ ATTRIBUTES DLLEXPORT :: getGammaIncUppGil_RK4
292#endif
293 use pm_kind, only: RKG => RK4
294 real(RKG) , intent(in) :: x, kappa
295 real(RKG) :: gammaIncUpp
296 end function
297#endif
298
299#if RK3_ENABLED
300 PURE elemental module function getGammaIncUppGil_RK3(x, kappa) result(gammaIncUpp)
301#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
302 !DEC$ ATTRIBUTES DLLEXPORT :: getGammaIncUppGil_RK3
303#endif
304 use pm_kind, only: RKG => RK3
305 real(RKG) , intent(in) :: x, kappa
306 real(RKG) :: gammaIncUpp
307 end function
308#endif
309
310#if RK2_ENABLED
311 PURE elemental module function getGammaIncUppGil_RK2(x, kappa) result(gammaIncUpp)
312#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
313 !DEC$ ATTRIBUTES DLLEXPORT :: getGammaIncUppGil_RK2
314#endif
315 use pm_kind, only: RKG => RK2
316 real(RKG) , intent(in) :: x, kappa
317 real(RKG) :: gammaIncUpp
318 end function
319#endif
320
321#if RK1_ENABLED
322 PURE elemental module function getGammaIncUppGil_RK1(x, kappa) result(gammaIncUpp)
323#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
324 !DEC$ ATTRIBUTES DLLEXPORT :: getGammaIncUppGil_RK1
325#endif
326 use pm_kind, only: RKG => RK1
327 real(RKG) , intent(in) :: x, kappa
328 real(RKG) :: gammaIncUpp
329 end function
330#endif
331
332 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
333
334 end interface
335
336!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
337
422
423 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
424
425#if RK5_ENABLED
426 PURE elemental module subroutine setGammaIncGilDef_RK5(gammaIncLow, gammaIncUpp, x, kappa, info)
427#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
428 !DEC$ ATTRIBUTES DLLEXPORT :: setGammaIncGilDef_RK5
429#endif
430 use pm_kind, only: RKG => RK5
431 real(RKG) , intent(out) :: gammaIncLow, gammaIncUpp
432 real(RKG) , intent(in) :: x, kappa
433 integer(IK) , intent(out) :: info
434 end subroutine
435#endif
436
437#if RK4_ENABLED
438 PURE elemental module subroutine setGammaIncGilDef_RK4(gammaIncLow, gammaIncUpp, x, kappa, info)
439#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
440 !DEC$ ATTRIBUTES DLLEXPORT :: setGammaIncGilDef_RK4
441#endif
442 use pm_kind, only: RKG => RK4
443 real(RKG) , intent(out) :: gammaIncLow, gammaIncUpp
444 real(RKG) , intent(in) :: x, kappa
445 integer(IK) , intent(out) :: info
446 end subroutine
447#endif
448
449#if RK3_ENABLED
450 PURE elemental module subroutine setGammaIncGilDef_RK3(gammaIncLow, gammaIncUpp, x, kappa, info)
451#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
452 !DEC$ ATTRIBUTES DLLEXPORT :: setGammaIncGilDef_RK3
453#endif
454 use pm_kind, only: RKG => RK3
455 real(RKG) , intent(out) :: gammaIncLow, gammaIncUpp
456 real(RKG) , intent(in) :: x, kappa
457 integer(IK) , intent(out) :: info
458 end subroutine
459#endif
460
461#if RK2_ENABLED
462 PURE elemental module subroutine setGammaIncGilDef_RK2(gammaIncLow, gammaIncUpp, x, kappa, info)
463#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
464 !DEC$ ATTRIBUTES DLLEXPORT :: setGammaIncGilDef_RK2
465#endif
466 use pm_kind, only: RKG => RK2
467 real(RKG) , intent(out) :: gammaIncLow, gammaIncUpp
468 real(RKG) , intent(in) :: x, kappa
469 integer(IK) , intent(out) :: info
470 end subroutine
471#endif
472
473#if RK1_ENABLED
474 PURE elemental module subroutine setGammaIncGilDef_RK1(gammaIncLow, gammaIncUpp, x, kappa, info)
475#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
476 !DEC$ ATTRIBUTES DLLEXPORT :: setGammaIncGilDef_RK1
477#endif
478 use pm_kind, only: RKG => RK1
479 real(RKG) , intent(out) :: gammaIncLow, gammaIncUpp
480 real(RKG) , intent(in) :: x, kappa
481 integer(IK) , intent(out) :: info
482 end subroutine
483#endif
484
485 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
486
487 end interface
488
489!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
490
491end module pm_mathGammaGil ! LCOV_EXCL_LINE
Generate and return the regularized Lower Incomplete Gamma function for the specified shape parameter...
Generate and return the regularized Upper Incomplete Gamma function for the specified shape parameter...
Return the regularized Lower and Upper Incomplete Gamma function values for the specified shape param...
This module defines the relevant Fortran kind type-parameters frequently used in the ParaMonte librar...
Definition: pm_kind.F90:268
integer, parameter RK5
Definition: pm_kind.F90:478
integer, parameter RK4
Definition: pm_kind.F90:489
integer, parameter RK2
Definition: pm_kind.F90:511
integer, parameter RK3
Definition: pm_kind.F90:500
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 RK1
Definition: pm_kind.F90:522
This module contains procedures and generic interfaces for the Lower and Upper Incomplete Gamma funct...
character(*, SK), parameter MODULE_NAME