ParaMonte Fortran 2.0.0
Parallel Monte Carlo and Machine Learning Library
See the latest version documentation.
pm_complexDiv.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
31
32!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
33
35
36 use pm_kind, only: LK, SK
37 implicit none
38
39 character(*,SK), parameter :: MODULE_NAME = "@pm_complexDiv"
40
41!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
42
91 interface getDiv
92
93 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
94
95#if CK5_ENABLED
96 PURE elemental module function getDiv_CK5(dividend, divisor) result(quotient)
97#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
98 !DEC$ ATTRIBUTES DLLEXPORT :: getDiv_CK5
99#endif
100 use pm_kind, only: CKG => CK5
101 complex(CKG), intent(in) :: dividend, divisor
102 complex(CKG) :: quotient
103 end function
104#endif
105
106#if CK4_ENABLED
107 PURE elemental module function getDiv_CK4(dividend, divisor) result(quotient)
108#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
109 !DEC$ ATTRIBUTES DLLEXPORT :: getDiv_CK4
110#endif
111 use pm_kind, only: CKG => CK4
112 complex(CKG), intent(in) :: dividend, divisor
113 complex(CKG) :: quotient
114 end function
115#endif
116
117#if CK3_ENABLED
118 PURE elemental module function getDiv_CK3(dividend, divisor) result(quotient)
119#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
120 !DEC$ ATTRIBUTES DLLEXPORT :: getDiv_CK3
121#endif
122 use pm_kind, only: CKG => CK3
123 complex(CKG), intent(in) :: dividend, divisor
124 complex(CKG) :: quotient
125 end function
126#endif
127
128#if CK2_ENABLED
129 PURE elemental module function getDiv_CK2(dividend, divisor) result(quotient)
130#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
131 !DEC$ ATTRIBUTES DLLEXPORT :: getDiv_CK2
132#endif
133 use pm_kind, only: CKG => CK2
134 complex(CKG), intent(in) :: dividend, divisor
135 complex(CKG) :: quotient
136 end function
137#endif
138
139#if CK1_ENABLED
140 PURE elemental module function getDiv_CK1(dividend, divisor) result(quotient)
141#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
142 !DEC$ ATTRIBUTES DLLEXPORT :: getDiv_CK1
143#endif
144 use pm_kind, only: CKG => CK1
145 complex(CKG), intent(in) :: dividend, divisor
146 complex(CKG) :: quotient
147 end function
148#endif
149
150 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
151
152 end interface
153
154!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
155
156end module pm_complexDiv ! LCOV_EXCL_LINE
Generate and return the complex division of the two input complex values robustly without potential o...
This module contains procedures and generic interfaces for computing the complex division robustly wi...
character(*, SK), parameter MODULE_NAME
This module defines the relevant Fortran kind type-parameters frequently used in the ParaMonte librar...
Definition: pm_kind.F90:268
integer, parameter CK1
Definition: pm_kind.F90:464
integer, parameter LK
The default logical kind in the ParaMonte library: kind(.true.) in Fortran, kind(....
Definition: pm_kind.F90:541
integer, parameter CK5
Definition: pm_kind.F90:420
integer, parameter CK4
Definition: pm_kind.F90:431
integer, parameter CK2
Definition: pm_kind.F90:453
integer, parameter CK3
Definition: pm_kind.F90:442
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