ParaMonte Fortran 2.0.0
Parallel Monte Carlo and Machine Learning Library
See the latest version documentation.
pm_complexCompareAll.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
32
33!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
34
36
37 use pm_kind, only: LK, SK
38 implicit none
39
40 character(*,SK), parameter :: MODULE_NAME = "@pm_complexCompareAll"
41
42!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
43
90 interface operator(<)
91
92 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
93
94#if CK5_ENABLED
95 pure elemental module function isallless_CK5(val1, val2) result(compares)
96#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
97 !DEC$ ATTRIBUTES DLLEXPORT :: isallless_CK5
98#endif
99 use pm_kind, only: CKG => CK5
100 complex(CKG), intent(in) :: val1, val2
101 logical(LK) :: compares
102 end function
103#endif
104
105#if CK4_ENABLED
106 pure elemental module function isallless_CK4(val1, val2) result(compares)
107#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
108 !DEC$ ATTRIBUTES DLLEXPORT :: isallless_CK4
109#endif
110 use pm_kind, only: CKG => CK4
111 complex(CKG), intent(in) :: val1, val2
112 logical(LK) :: compares
113 end function
114#endif
115
116#if CK3_ENABLED
117 pure elemental module function isallless_CK3(val1, val2) result(compares)
118#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
119 !DEC$ ATTRIBUTES DLLEXPORT :: isallless_CK3
120#endif
121 use pm_kind, only: CKG => CK3
122 complex(CKG), intent(in) :: val1, val2
123 logical(LK) :: compares
124 end function
125#endif
126
127#if CK2_ENABLED
128 pure elemental module function isallless_CK2(val1, val2) result(compares)
129#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
130 !DEC$ ATTRIBUTES DLLEXPORT :: isallless_CK2
131#endif
132 use pm_kind, only: CKG => CK2
133 complex(CKG), intent(in) :: val1, val2
134 logical(LK) :: compares
135 end function
136#endif
137
138#if CK1_ENABLED
139 pure elemental module function isallless_CK1(val1, val2) result(compares)
140#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
141 !DEC$ ATTRIBUTES DLLEXPORT :: isallless_CK1
142#endif
143 use pm_kind, only: CKG => CK1
144 complex(CKG), intent(in) :: val1, val2
145 logical(LK) :: compares
146 end function
147#endif
148
149 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
150
151 end interface
152
153!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
154
202 interface operator(<=)
203
204 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
205
206#if CK5_ENABLED
207 pure elemental module function isallleq_CK5(val1, val2) result(compares)
208#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
209 !DEC$ ATTRIBUTES DLLEXPORT :: isallleq_CK5
210#endif
211 use pm_kind, only: CKG => CK5
212 complex(CKG), intent(in) :: val1, val2
213 logical(LK) :: compares
214 end function
215#endif
216
217#if CK4_ENABLED
218 pure elemental module function isallleq_CK4(val1, val2) result(compares)
219#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
220 !DEC$ ATTRIBUTES DLLEXPORT :: isallleq_CK4
221#endif
222 use pm_kind, only: CKG => CK4
223 complex(CKG), intent(in) :: val1, val2
224 logical(LK) :: compares
225 end function
226#endif
227
228#if CK3_ENABLED
229 pure elemental module function isallleq_CK3(val1, val2) result(compares)
230#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
231 !DEC$ ATTRIBUTES DLLEXPORT :: isallleq_CK3
232#endif
233 use pm_kind, only: CKG => CK3
234 complex(CKG), intent(in) :: val1, val2
235 logical(LK) :: compares
236 end function
237#endif
238
239#if CK2_ENABLED
240 pure elemental module function isallleq_CK2(val1, val2) result(compares)
241#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
242 !DEC$ ATTRIBUTES DLLEXPORT :: isallleq_CK2
243#endif
244 use pm_kind, only: CKG => CK2
245 complex(CKG), intent(in) :: val1, val2
246 logical(LK) :: compares
247 end function
248#endif
249
250#if CK1_ENABLED
251 pure elemental module function isallleq_CK1(val1, val2) result(compares)
252#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
253 !DEC$ ATTRIBUTES DLLEXPORT :: isallleq_CK1
254#endif
255 use pm_kind, only: CKG => CK1
256 complex(CKG), intent(in) :: val1, val2
257 logical(LK) :: compares
258 end function
259#endif
260
261 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
262
263 end interface
264
265!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
266
267! !> \brief
268! !> \anchor pm_complexCompareAll_isalleq
269! !> Generate and return `.true.` if both components of the input `complex` argument `val1`
270! !> is equal to the corresponding components of the input `complex` argument `val2`.
271! !>
272! !> \param[in] val1 : The input scalar, or array of the same rank and shape as `val2`, of type `complex` of kind \CKALL.
273! !> \param[in] val2 : The input scalar, or array of the same rank and shape as `val1`, of the same type and kind as `val1`.
274! !>
275! !> \return
276! !> `compares` : The output object of type `logical` of default kind \LK, and
277! !> the higher rank of the two input arguments `val1` and `val2`.
278! !>
279! !> \interface
280! !> \code{.F90}
281! !>
282! !> use pm_complexCompareAll, only: operator(==)
283! !> use pm_kind, only: LK
284! !> complex(LK) :: compares
285! !>
286! !> compares = val1 == val2
287! !>
288! !> \endcode
289! !>
290! !> \pure
291! !>
292! !> \elemental
293! !>
294! !> \see
295! !> [operator(<)](@ref pm_complexCompareAll_isallless)<br>
296! !> [operator(<=)](@ref pm_complexCompareAll_isallleq)<br>
297! !> [operator(.allneq.)](@ref pm_complexCompareAll_isallneq)<br>
298! !> [operator(>=)](@ref pm_complexCompareAll_isallmeq)<br>
299! !> [operator(>)](@ref pm_complexCompareAll_isallmore)<br>
300! !>
301! !> \example
302! !> \include{lineno} example/pm_complexCompareAll/isalleq/main.F90
303! !> \compilef
304! !> \output
305! !> \include{lineno} example/pm_complexCompareAll/isalleq/main.out.F90
306! !>
307! !> \test
308! !> [test_pm_complexCompareAll](@ref test_pm_complexCompareAll)
309! !>
310! !> \final
311! !>
312! !> \author
313! !> \AmirShahmoradi, September 1, 2017, 12:00 AM, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin
314! interface operator(==)
315!
316! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
317!
318!#if CK3_ENABLED
319! pure elemental module function isalleq_CK3(val1, val2) result(compares)
320!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
321! !DEC$ ATTRIBUTES DLLEXPORT :: isalleq_CK3
322!#endif
323! use pm_kind, only: CKG => CK3
324! complex(CKG), intent(in) :: val1, val2
325! logical(LK) :: compares
326! end function
327!#endif
328!
329!#if CK2_ENABLED
330! pure elemental module function isalleq_CK2(val1, val2) result(compares)
331!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
332! !DEC$ ATTRIBUTES DLLEXPORT :: isalleq_CK2
333!#endif
334! use pm_kind, only: CKG => CK2
335! complex(CKG), intent(in) :: val1, val2
336! logical(LK) :: compares
337! end function
338!#endif
339!
340!#if CK1_ENABLED
341! pure elemental module function isalleq_CK1(val1, val2) result(compares)
342!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
343! !DEC$ ATTRIBUTES DLLEXPORT :: isalleq_CK1
344!#endif
345! use pm_kind, only: CKG => CK1
346! complex(CKG), intent(in) :: val1, val2
347! logical(LK) :: compares
348! end function
349!#endif
350!
351! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
352!
353! end interface
354!
355!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
356
408 interface operator(.allneq.)
409
410 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
411
412#if CK5_ENABLED
413 pure elemental module function isallneq_CK5(val1, val2) result(compares)
414#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
415 !DEC$ ATTRIBUTES DLLEXPORT :: isallneq_CK5
416#endif
417 use pm_kind, only: CKG => CK5
418 complex(CKG), intent(in) :: val1, val2
419 logical(LK) :: compares
420 end function
421#endif
422
423#if CK4_ENABLED
424 pure elemental module function isallneq_CK4(val1, val2) result(compares)
425#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
426 !DEC$ ATTRIBUTES DLLEXPORT :: isallneq_CK4
427#endif
428 use pm_kind, only: CKG => CK4
429 complex(CKG), intent(in) :: val1, val2
430 logical(LK) :: compares
431 end function
432#endif
433
434#if CK3_ENABLED
435 pure elemental module function isallneq_CK3(val1, val2) result(compares)
436#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
437 !DEC$ ATTRIBUTES DLLEXPORT :: isallneq_CK3
438#endif
439 use pm_kind, only: CKG => CK3
440 complex(CKG), intent(in) :: val1, val2
441 logical(LK) :: compares
442 end function
443#endif
444
445#if CK2_ENABLED
446 pure elemental module function isallneq_CK2(val1, val2) result(compares)
447#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
448 !DEC$ ATTRIBUTES DLLEXPORT :: isallneq_CK2
449#endif
450 use pm_kind, only: CKG => CK2
451 complex(CKG), intent(in) :: val1, val2
452 logical(LK) :: compares
453 end function
454#endif
455
456#if CK1_ENABLED
457 pure elemental module function isallneq_CK1(val1, val2) result(compares)
458#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
459 !DEC$ ATTRIBUTES DLLEXPORT :: isallneq_CK1
460#endif
461 use pm_kind, only: CKG => CK1
462 complex(CKG), intent(in) :: val1, val2
463 logical(LK) :: compares
464 end function
465#endif
466
467 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
468
469 end interface
470
471!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
472
520 interface operator(>=)
521
522 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
523
524#if CK5_ENABLED
525 pure elemental module function isallmeq_CK5(val1, val2) result(compares)
526#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
527 !DEC$ ATTRIBUTES DLLEXPORT :: isallmeq_CK5
528#endif
529 use pm_kind, only: CKG => CK5
530 complex(CKG), intent(in) :: val1, val2
531 logical(LK) :: compares
532 end function
533#endif
534
535#if CK4_ENABLED
536 pure elemental module function isallmeq_CK4(val1, val2) result(compares)
537#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
538 !DEC$ ATTRIBUTES DLLEXPORT :: isallmeq_CK4
539#endif
540 use pm_kind, only: CKG => CK4
541 complex(CKG), intent(in) :: val1, val2
542 logical(LK) :: compares
543 end function
544#endif
545
546#if CK3_ENABLED
547 pure elemental module function isallmeq_CK3(val1, val2) result(compares)
548#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
549 !DEC$ ATTRIBUTES DLLEXPORT :: isallmeq_CK3
550#endif
551 use pm_kind, only: CKG => CK3
552 complex(CKG), intent(in) :: val1, val2
553 logical(LK) :: compares
554 end function
555#endif
556
557#if CK2_ENABLED
558 pure elemental module function isallmeq_CK2(val1, val2) result(compares)
559#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
560 !DEC$ ATTRIBUTES DLLEXPORT :: isallmeq_CK2
561#endif
562 use pm_kind, only: CKG => CK2
563 complex(CKG), intent(in) :: val1, val2
564 logical(LK) :: compares
565 end function
566#endif
567
568#if CK1_ENABLED
569 pure elemental module function isallmeq_CK1(val1, val2) result(compares)
570#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
571 !DEC$ ATTRIBUTES DLLEXPORT :: isallmeq_CK1
572#endif
573 use pm_kind, only: CKG => CK1
574 complex(CKG), intent(in) :: val1, val2
575 logical(LK) :: compares
576 end function
577#endif
578
579 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
580
581 end interface
582
583!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
584
632 interface operator(>)
633
634 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
635
636#if CK5_ENABLED
637 pure elemental module function isallmore_CK5(val1, val2) result(compares)
638#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
639 !DEC$ ATTRIBUTES DLLEXPORT :: isallmore_CK5
640#endif
641 use pm_kind, only: CKG => CK5
642 complex(CKG), intent(in) :: val1, val2
643 logical(LK) :: compares
644 end function
645#endif
646
647#if CK4_ENABLED
648 pure elemental module function isallmore_CK4(val1, val2) result(compares)
649#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
650 !DEC$ ATTRIBUTES DLLEXPORT :: isallmore_CK4
651#endif
652 use pm_kind, only: CKG => CK4
653 complex(CKG), intent(in) :: val1, val2
654 logical(LK) :: compares
655 end function
656#endif
657
658#if CK3_ENABLED
659 pure elemental module function isallmore_CK3(val1, val2) result(compares)
660#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
661 !DEC$ ATTRIBUTES DLLEXPORT :: isallmore_CK3
662#endif
663 use pm_kind, only: CKG => CK3
664 complex(CKG), intent(in) :: val1, val2
665 logical(LK) :: compares
666 end function
667#endif
668
669#if CK2_ENABLED
670 pure elemental module function isallmore_CK2(val1, val2) result(compares)
671#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
672 !DEC$ ATTRIBUTES DLLEXPORT :: isallmore_CK2
673#endif
674 use pm_kind, only: CKG => CK2
675 complex(CKG), intent(in) :: val1, val2
676 logical(LK) :: compares
677 end function
678#endif
679
680#if CK1_ENABLED
681 pure elemental module function isallmore_CK1(val1, val2) result(compares)
682#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
683 !DEC$ ATTRIBUTES DLLEXPORT :: isallmore_CK1
684#endif
685 use pm_kind, only: CKG => CK1
686 complex(CKG), intent(in) :: val1, val2
687 logical(LK) :: compares
688 end function
689#endif
690
691 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
692
693 end interface
694
695!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
696
697end module pm_complexCompareAll ! LCOV_EXCL_LINE
This module contains procedures and generic interfaces for checking if both of the corresponding real...
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