ParaMonte Fortran 2.0.0
Parallel Monte Carlo and Machine Learning Library
See the latest version documentation.
pm_mathErf.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
107
108!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
109
111
112 use pm_kind, only: SK, IK, LK
113
114 implicit none
115
116 character(*, SK), parameter :: MODULE_NAME = "@pm_mathErf"
117
118!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
119
191 interface getErfInv
192
193 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
194
195#if RK5_ENABLED
196 PURE elemental module function getErfInv_RK5(x, abserr) result(erfinv)
197#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
198 !DEC$ ATTRIBUTES DLLEXPORT :: getErfInv_RK5
199#endif
200 use pm_kind, only: RKG => RK5
201 real(RKG) , intent(in) :: x
202 real(RKG) , intent(in), optional :: abserr
203 real(RKG) :: erfinv
204 end function
205#endif
206
207#if RK4_ENABLED
208 PURE elemental module function getErfInv_RK4(x, abserr) result(erfinv)
209#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
210 !DEC$ ATTRIBUTES DLLEXPORT :: getErfInv_RK4
211#endif
212 use pm_kind, only: RKG => RK4
213 real(RKG) , intent(in) :: x
214 real(RKG) , intent(in), optional :: abserr
215 real(RKG) :: erfinv
216 end function
217#endif
218
219#if RK3_ENABLED
220 PURE elemental module function getErfInv_RK3(x, abserr) result(erfinv)
221#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
222 !DEC$ ATTRIBUTES DLLEXPORT :: getErfInv_RK3
223#endif
224 use pm_kind, only: RKG => RK3
225 real(RKG) , intent(in) :: x
226 real(RKG) , intent(in), optional :: abserr
227 real(RKG) :: erfinv
228 end function
229#endif
230
231#if RK2_ENABLED
232 PURE elemental module function getErfInv_RK2(x, abserr) result(erfinv)
233#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
234 !DEC$ ATTRIBUTES DLLEXPORT :: getErfInv_RK2
235#endif
236 use pm_kind, only: RKG => RK2
237 real(RKG) , intent(in) :: x
238 real(RKG) , intent(in), optional :: abserr
239 real(RKG) :: erfinv
240 end function
241#endif
242
243#if RK1_ENABLED
244 PURE elemental module function getErfInv_RK1(x, abserr) result(erfinv)
245#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
246 !DEC$ ATTRIBUTES DLLEXPORT :: getErfInv_RK1
247#endif
248 use pm_kind, only: RKG => RK1
249 real(RKG) , intent(in) :: x
250 real(RKG) , intent(in), optional :: abserr
251 real(RKG) :: erfinv
252 end function
253#endif
254
255 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
256
257 end interface
258
259!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
260
340 interface setErfInv
341
342 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
343
344#if RK5_ENABLED
345 PURE elemental module subroutine setErfInv_RK5(erfinv, x, abserr)
346#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
347 !DEC$ ATTRIBUTES DLLEXPORT :: setErfInv_RK5
348#endif
349 use pm_kind, only: RKG => RK5
350 real(RKG) , intent(out) :: erfinv
351 real(RKG) , intent(in) :: x, abserr
352 end subroutine
353#endif
354
355#if RK4_ENABLED
356 PURE elemental module subroutine setErfInv_RK4(erfinv, x, abserr)
357#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
358 !DEC$ ATTRIBUTES DLLEXPORT :: setErfInv_RK4
359#endif
360 use pm_kind, only: RKG => RK4
361 real(RKG) , intent(out) :: erfinv
362 real(RKG) , intent(in) :: x, abserr
363 end subroutine
364#endif
365
366#if RK3_ENABLED
367 PURE elemental module subroutine setErfInv_RK3(erfinv, x, abserr)
368#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
369 !DEC$ ATTRIBUTES DLLEXPORT :: setErfInv_RK3
370#endif
371 use pm_kind, only: RKG => RK3
372 real(RKG) , intent(out) :: erfinv
373 real(RKG) , intent(in) :: x, abserr
374 end subroutine
375#endif
376
377#if RK2_ENABLED
378 PURE elemental module subroutine setErfInv_RK2(erfinv, x, abserr)
379#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
380 !DEC$ ATTRIBUTES DLLEXPORT :: setErfInv_RK2
381#endif
382 use pm_kind, only: RKG => RK2
383 real(RKG) , intent(out) :: erfinv
384 real(RKG) , intent(in) :: x, abserr
385 end subroutine
386#endif
387
388#if RK1_ENABLED
389 PURE elemental module subroutine setErfInv_RK1(erfinv, x, abserr)
390#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
391 !DEC$ ATTRIBUTES DLLEXPORT :: setErfInv_RK1
392#endif
393 use pm_kind, only: RKG => RK1
394 real(RKG) , intent(out) :: erfinv
395 real(RKG) , intent(in) :: x, abserr
396 end subroutine
397#endif
398
399 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
400
401 end interface
402
403!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
404
405end module pm_mathErf
Generate and return the Inverse Error Function for an input real value in range as defined in the d...
Definition: pm_mathErf.F90:191
Return the Inverse Error Function for an input real value in range as defined in the details sectio...
Definition: pm_mathErf.F90:340
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 classes and procedures for computing the mathematical Inverse Error Function.
Definition: pm_mathErf.F90:110
character(*, SK), parameter MODULE_NAME
Definition: pm_mathErf.F90:116