ParaMonte Fortran 2.0.0
Parallel Monte Carlo and Machine Learning Library
See the latest version documentation.
pm_distGeom.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
93
94!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
95
97
98 use pm_kind, only: SK, IK
100
101 implicit none
102
103 character(*, SK), parameter :: MODULE_NAME = "@pm_distGeom"
104
105!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
106
141 end type
142
143!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
144
203
204 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
205
206#if RK5_ENABLED
207 PURE elemental module function getGeomLogPMF_RK5(stepSuccess, probSuccess) result(logPMF)
208#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
209 !DEC$ ATTRIBUTES DLLEXPORT :: getGeomLogPMF_RK5
210#endif
211 use pm_kind, only: RKG => RK5
212 integer(IK) , intent(in) :: stepSuccess
213 real(RKG) , intent(in) :: probSuccess
214 real(RKG) :: logPMF
215 end function
216#endif
217
218#if RK4_ENABLED
219 PURE elemental module function getGeomLogPMF_RK4(stepSuccess, probSuccess) result(logPMF)
220#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
221 !DEC$ ATTRIBUTES DLLEXPORT :: getGeomLogPMF_RK4
222#endif
223 use pm_kind, only: RKG => RK4
224 integer(IK) , intent(in) :: stepSuccess
225 real(RKG) , intent(in) :: probSuccess
226 real(RKG) :: logPMF
227 end function
228#endif
229
230#if RK3_ENABLED
231 PURE elemental module function getGeomLogPMF_RK3(stepSuccess, probSuccess) result(logPMF)
232#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
233 !DEC$ ATTRIBUTES DLLEXPORT :: getGeomLogPMF_RK3
234#endif
235 use pm_kind, only: RKG => RK3
236 integer(IK) , intent(in) :: stepSuccess
237 real(RKG) , intent(in) :: probSuccess
238 real(RKG) :: logPMF
239 end function
240#endif
241
242#if RK2_ENABLED
243 PURE elemental module function getGeomLogPMF_RK2(stepSuccess, probSuccess) result(logPMF)
244#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
245 !DEC$ ATTRIBUTES DLLEXPORT :: getGeomLogPMF_RK2
246#endif
247 use pm_kind, only: RKG => RK2
248 integer(IK) , intent(in) :: stepSuccess
249 real(RKG) , intent(in) :: probSuccess
250 real(RKG) :: logPMF
251 end function
252#endif
253
254#if RK1_ENABLED
255 PURE elemental module function getGeomLogPMF_RK1(stepSuccess, probSuccess) result(logPMF)
256#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
257 !DEC$ ATTRIBUTES DLLEXPORT :: getGeomLogPMF_RK1
258#endif
259 use pm_kind, only: RKG => RK1
260 integer(IK) , intent(in) :: stepSuccess
261 real(RKG) , intent(in) :: probSuccess
262 real(RKG) :: logPMF
263 end function
264#endif
265
266 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
267
268 end interface
269
270!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
271
337
338 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
339
340#if RK5_ENABLED
341 PURE elemental module subroutine setGeomLogPMFDef_RK5(logPMF, stepSuccess, logProbSuccess)
342#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
343 !DEC$ ATTRIBUTES DLLEXPORT :: setGeomLogPMFDef_RK5
344#endif
345 use pm_kind, only: RKG => RK5
346 real(RKG) , intent(in) :: logProbSuccess
347 real(RKG) , intent(out) :: logPMF
348 integer(IK) , intent(in) :: stepSuccess
349 end subroutine
350#endif
351
352#if RK4_ENABLED
353 PURE elemental module subroutine setGeomLogPMFDef_RK4(logPMF, stepSuccess, logProbSuccess)
354#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
355 !DEC$ ATTRIBUTES DLLEXPORT :: setGeomLogPMFDef_RK4
356#endif
357 use pm_kind, only: RKG => RK4
358 real(RKG) , intent(in) :: logProbSuccess
359 real(RKG) , intent(out) :: logPMF
360 integer(IK) , intent(in) :: stepSuccess
361 end subroutine
362#endif
363
364#if RK3_ENABLED
365 PURE elemental module subroutine setGeomLogPMFDef_RK3(logPMF, stepSuccess, logProbSuccess)
366#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
367 !DEC$ ATTRIBUTES DLLEXPORT :: setGeomLogPMFDef_RK3
368#endif
369 use pm_kind, only: RKG => RK3
370 real(RKG) , intent(in) :: logProbSuccess
371 real(RKG) , intent(out) :: logPMF
372 integer(IK) , intent(in) :: stepSuccess
373 end subroutine
374#endif
375
376#if RK2_ENABLED
377 PURE elemental module subroutine setGeomLogPMFDef_RK2(logPMF, stepSuccess, logProbSuccess)
378#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
379 !DEC$ ATTRIBUTES DLLEXPORT :: setGeomLogPMFDef_RK2
380#endif
381 use pm_kind, only: RKG => RK2
382 real(RKG) , intent(in) :: logProbSuccess
383 real(RKG) , intent(out) :: logPMF
384 integer(IK) , intent(in) :: stepSuccess
385 end subroutine
386#endif
387
388#if RK1_ENABLED
389 PURE elemental module subroutine setGeomLogPMFDef_RK1(logPMF, stepSuccess, logProbSuccess)
390#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
391 !DEC$ ATTRIBUTES DLLEXPORT :: setGeomLogPMFDef_RK1
392#endif
393 use pm_kind, only: RKG => RK1
394 real(RKG) , intent(in) :: logProbSuccess
395 real(RKG) , intent(out) :: logPMF
396 integer(IK) , intent(in) :: stepSuccess
397 end subroutine
398#endif
399
400 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
401
402#if RK5_ENABLED
403 PURE elemental module subroutine setGeomLogPMFLog_RK5(logPMF, stepSuccess, logProbSuccess, logProbFailure)
404#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
405 !DEC$ ATTRIBUTES DLLEXPORT :: setGeomLogPMFLog_RK5
406#endif
407 use pm_kind, only: RKG => RK5
408 real(RKG) , intent(in) :: logProbSuccess, logProbFailure
409 real(RKG) , intent(out) :: logPMF
410 integer(IK) , intent(in) :: stepSuccess
411 end subroutine
412#endif
413
414#if RK4_ENABLED
415 PURE elemental module subroutine setGeomLogPMFLog_RK4(logPMF, stepSuccess, logProbSuccess, logProbFailure)
416#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
417 !DEC$ ATTRIBUTES DLLEXPORT :: setGeomLogPMFLog_RK4
418#endif
419 use pm_kind, only: RKG => RK4
420 real(RKG) , intent(in) :: logProbSuccess, logProbFailure
421 real(RKG) , intent(out) :: logPMF
422 integer(IK) , intent(in) :: stepSuccess
423 end subroutine
424#endif
425
426#if RK3_ENABLED
427 PURE elemental module subroutine setGeomLogPMFLog_RK3(logPMF, stepSuccess, logProbSuccess, logProbFailure)
428#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
429 !DEC$ ATTRIBUTES DLLEXPORT :: setGeomLogPMFLog_RK3
430#endif
431 use pm_kind, only: RKG => RK3
432 real(RKG) , intent(in) :: logProbSuccess, logProbFailure
433 real(RKG) , intent(out) :: logPMF
434 integer(IK) , intent(in) :: stepSuccess
435 end subroutine
436#endif
437
438#if RK2_ENABLED
439 PURE elemental module subroutine setGeomLogPMFLog_RK2(logPMF, stepSuccess, logProbSuccess, logProbFailure)
440#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
441 !DEC$ ATTRIBUTES DLLEXPORT :: setGeomLogPMFLog_RK2
442#endif
443 use pm_kind, only: RKG => RK2
444 real(RKG) , intent(in) :: logProbSuccess, logProbFailure
445 real(RKG) , intent(out) :: logPMF
446 integer(IK) , intent(in) :: stepSuccess
447 end subroutine
448#endif
449
450#if RK1_ENABLED
451 PURE elemental module subroutine setGeomLogPMFLog_RK1(logPMF, stepSuccess, logProbSuccess, logProbFailure)
452#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
453 !DEC$ ATTRIBUTES DLLEXPORT :: setGeomLogPMFLog_RK1
454#endif
455 use pm_kind, only: RKG => RK1
456 real(RKG) , intent(in) :: logProbSuccess, logProbFailure
457 real(RKG) , intent(out) :: logPMF
458 integer(IK) , intent(in) :: stepSuccess
459 end subroutine
460#endif
461
462 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
463
464 end interface
465
466!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
467
525 interface getGeomCDF
526
527 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
528
529#if RK5_ENABLED
530 PURE elemental module function getGeomCDF_RK5(stepSuccess, probSuccess) result(cdf)
531#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
532 !DEC$ ATTRIBUTES DLLEXPORT :: getGeomCDF_RK5
533#endif
534 use pm_kind, only: RKG => RK5
535 integer(IK) , intent(in) :: stepSuccess
536 real(RKG) , intent(in) :: probSuccess
537 real(RKG) :: cdf
538 end function
539#endif
540
541#if RK4_ENABLED
542 PURE elemental module function getGeomCDF_RK4(stepSuccess, probSuccess) result(cdf)
543#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
544 !DEC$ ATTRIBUTES DLLEXPORT :: getGeomCDF_RK4
545#endif
546 use pm_kind, only: RKG => RK4
547 integer(IK) , intent(in) :: stepSuccess
548 real(RKG) , intent(in) :: probSuccess
549 real(RKG) :: cdf
550 end function
551#endif
552
553#if RK3_ENABLED
554 PURE elemental module function getGeomCDF_RK3(stepSuccess, probSuccess) result(cdf)
555#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
556 !DEC$ ATTRIBUTES DLLEXPORT :: getGeomCDF_RK3
557#endif
558 use pm_kind, only: RKG => RK3
559 integer(IK) , intent(in) :: stepSuccess
560 real(RKG) , intent(in) :: probSuccess
561 real(RKG) :: cdf
562 end function
563#endif
564
565#if RK2_ENABLED
566 PURE elemental module function getGeomCDF_RK2(stepSuccess, probSuccess) result(cdf)
567#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
568 !DEC$ ATTRIBUTES DLLEXPORT :: getGeomCDF_RK2
569#endif
570 use pm_kind, only: RKG => RK2
571 integer(IK) , intent(in) :: stepSuccess
572 real(RKG) , intent(in) :: probSuccess
573 real(RKG) :: cdf
574 end function
575#endif
576
577#if RK1_ENABLED
578 PURE elemental module function getGeomCDF_RK1(stepSuccess, probSuccess) result(cdf)
579#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
580 !DEC$ ATTRIBUTES DLLEXPORT :: getGeomCDF_RK1
581#endif
582 use pm_kind, only: RKG => RK1
583 integer(IK) , intent(in) :: stepSuccess
584 real(RKG) , intent(in) :: probSuccess
585 real(RKG) :: cdf
586 end function
587#endif
588
589 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
590
591 end interface
592
593!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
594
649 interface setGeomCDF
650
651 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
652
653#if RK5_ENABLED
654 PURE elemental module subroutine setGeomCDF_RK5(cdf, stepSuccess, probSuccess)
655#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
656 !DEC$ ATTRIBUTES DLLEXPORT :: setGeomCDF_RK5
657#endif
658 use pm_kind, only: RKG => RK5
659 real(RKG) , intent(out) :: cdf
660 real(RKG) , intent(in) :: probSuccess
661 integer(IK) , intent(in) :: stepSuccess
662 end subroutine
663#endif
664
665#if RK4_ENABLED
666 PURE elemental module subroutine setGeomCDF_RK4(cdf, stepSuccess, probSuccess)
667#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
668 !DEC$ ATTRIBUTES DLLEXPORT :: setGeomCDF_RK4
669#endif
670 use pm_kind, only: RKG => RK4
671 real(RKG) , intent(out) :: cdf
672 real(RKG) , intent(in) :: probSuccess
673 integer(IK) , intent(in) :: stepSuccess
674 end subroutine
675#endif
676
677#if RK3_ENABLED
678 PURE elemental module subroutine setGeomCDF_RK3(cdf, stepSuccess, probSuccess)
679#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
680 !DEC$ ATTRIBUTES DLLEXPORT :: setGeomCDF_RK3
681#endif
682 use pm_kind, only: RKG => RK3
683 real(RKG) , intent(out) :: cdf
684 real(RKG) , intent(in) :: probSuccess
685 integer(IK) , intent(in) :: stepSuccess
686 end subroutine
687#endif
688
689#if RK2_ENABLED
690 PURE elemental module subroutine setGeomCDF_RK2(cdf, stepSuccess, probSuccess)
691#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
692 !DEC$ ATTRIBUTES DLLEXPORT :: setGeomCDF_RK2
693#endif
694 use pm_kind, only: RKG => RK2
695 real(RKG) , intent(out) :: cdf
696 real(RKG) , intent(in) :: probSuccess
697 integer(IK) , intent(in) :: stepSuccess
698 end subroutine
699#endif
700
701#if RK1_ENABLED
702 PURE elemental module subroutine setGeomCDF_RK1(cdf, stepSuccess, probSuccess)
703#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
704 !DEC$ ATTRIBUTES DLLEXPORT :: setGeomCDF_RK1
705#endif
706 use pm_kind, only: RKG => RK1
707 real(RKG) , intent(out) :: cdf
708 real(RKG) , intent(in) :: probSuccess
709 integer(IK) , intent(in) :: stepSuccess
710 end subroutine
711#endif
712
713 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
714
715 end interface
716
717!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
718
772 interface getGeomRand
773
774 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
775
776#if RK5_ENABLED
777 impure elemental module function getGeomRand_RK5(probSuccess) result(rand)
778#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
779 !DEC$ ATTRIBUTES DLLEXPORT :: getGeomRand_RK5
780#endif
781 use pm_kind, only: RKG => RK5
782 integer(IK) :: rand
783 real(RKG) , intent(in) :: probSuccess
784 end function
785#endif
786
787#if RK4_ENABLED
788 impure elemental module function getGeomRand_RK4(probSuccess) result(rand)
789#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
790 !DEC$ ATTRIBUTES DLLEXPORT :: getGeomRand_RK4
791#endif
792 use pm_kind, only: RKG => RK4
793 integer(IK) :: rand
794 real(RKG) , intent(in) :: probSuccess
795 end function
796#endif
797
798#if RK3_ENABLED
799 impure elemental module function getGeomRand_RK3(probSuccess) result(rand)
800#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
801 !DEC$ ATTRIBUTES DLLEXPORT :: getGeomRand_RK3
802#endif
803 use pm_kind, only: RKG => RK3
804 integer(IK) :: rand
805 real(RKG) , intent(in) :: probSuccess
806 end function
807#endif
808
809#if RK2_ENABLED
810 impure elemental module function getGeomRand_RK2(probSuccess) result(rand)
811#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
812 !DEC$ ATTRIBUTES DLLEXPORT :: getGeomRand_RK2
813#endif
814 use pm_kind, only: RKG => RK2
815 integer(IK) :: rand
816 real(RKG) , intent(in) :: probSuccess
817 end function
818#endif
819
820#if RK1_ENABLED
821 impure elemental module function getGeomRand_RK1(probSuccess) result(rand)
822#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
823 !DEC$ ATTRIBUTES DLLEXPORT :: getGeomRand_RK1
824#endif
825 use pm_kind, only: RKG => RK1
826 integer(IK) :: rand
827 real(RKG) , intent(in) :: probSuccess
828 end function
829#endif
830
831 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
832
833 end interface
834
835!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
836
904 interface setGeomRand
905
906 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
907 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
908 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
909
910 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
911
912#if RK5_ENABLED
913 impure elemental module subroutine setGeomRandRNGD_D0_RK5(rand, logProbFailure)
914#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
915 !DEC$ ATTRIBUTES DLLEXPORT :: setGeomRandRNGD_D0_RK5
916#endif
917 use pm_kind, only: RKG => RK5
918 integer(IK) , intent(out) :: rand
919 real(RKG) , intent(in) :: logProbFailure
920 end subroutine
921#endif
922
923#if RK4_ENABLED
924 impure elemental module subroutine setGeomRandRNGD_D0_RK4(rand, logProbFailure)
925#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
926 !DEC$ ATTRIBUTES DLLEXPORT :: setGeomRandRNGD_D0_RK4
927#endif
928 use pm_kind, only: RKG => RK4
929 integer(IK) , intent(out) :: rand
930 real(RKG) , intent(in) :: logProbFailure
931 end subroutine
932#endif
933
934#if RK3_ENABLED
935 impure elemental module subroutine setGeomRandRNGD_D0_RK3(rand, logProbFailure)
936#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
937 !DEC$ ATTRIBUTES DLLEXPORT :: setGeomRandRNGD_D0_RK3
938#endif
939 use pm_kind, only: RKG => RK3
940 integer(IK) , intent(out) :: rand
941 real(RKG) , intent(in) :: logProbFailure
942 end subroutine
943#endif
944
945#if RK2_ENABLED
946 impure elemental module subroutine setGeomRandRNGD_D0_RK2(rand, logProbFailure)
947#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
948 !DEC$ ATTRIBUTES DLLEXPORT :: setGeomRandRNGD_D0_RK2
949#endif
950 use pm_kind, only: RKG => RK2
951 integer(IK) , intent(out) :: rand
952 real(RKG) , intent(in) :: logProbFailure
953 end subroutine
954#endif
955
956#if RK1_ENABLED
957 impure elemental module subroutine setGeomRandRNGD_D0_RK1(rand, logProbFailure)
958#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
959 !DEC$ ATTRIBUTES DLLEXPORT :: setGeomRandRNGD_D0_RK1
960#endif
961 use pm_kind, only: RKG => RK1
962 integer(IK) , intent(out) :: rand
963 real(RKG) , intent(in) :: logProbFailure
964 end subroutine
965#endif
966
967 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
968
969#if RK5_ENABLED
970 impure elemental module subroutine setGeomRandRNGF_D0_RK5(rng, rand, logProbFailure)
971#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
972 !DEC$ ATTRIBUTES DLLEXPORT :: setGeomRandRNGF_D0_RK5
973#endif
974 use pm_kind, only: RKG => RK5
975 type(rngf_type) , intent(in) :: rng
976 integer(IK) , intent(out) :: rand
977 real(RKG) , intent(in) :: logProbFailure
978 end subroutine
979#endif
980
981#if RK4_ENABLED
982 impure elemental module subroutine setGeomRandRNGF_D0_RK4(rng, rand, logProbFailure)
983#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
984 !DEC$ ATTRIBUTES DLLEXPORT :: setGeomRandRNGF_D0_RK4
985#endif
986 use pm_kind, only: RKG => RK4
987 type(rngf_type) , intent(in) :: rng
988 integer(IK) , intent(out) :: rand
989 real(RKG) , intent(in) :: logProbFailure
990 end subroutine
991#endif
992
993#if RK3_ENABLED
994 impure elemental module subroutine setGeomRandRNGF_D0_RK3(rng, rand, logProbFailure)
995#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
996 !DEC$ ATTRIBUTES DLLEXPORT :: setGeomRandRNGF_D0_RK3
997#endif
998 use pm_kind, only: RKG => RK3
999 type(rngf_type) , intent(in) :: rng
1000 integer(IK) , intent(out) :: rand
1001 real(RKG) , intent(in) :: logProbFailure
1002 end subroutine
1003#endif
1004
1005#if RK2_ENABLED
1006 impure elemental module subroutine setGeomRandRNGF_D0_RK2(rng, rand, logProbFailure)
1007#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1008 !DEC$ ATTRIBUTES DLLEXPORT :: setGeomRandRNGF_D0_RK2
1009#endif
1010 use pm_kind, only: RKG => RK2
1011 type(rngf_type) , intent(in) :: rng
1012 integer(IK) , intent(out) :: rand
1013 real(RKG) , intent(in) :: logProbFailure
1014 end subroutine
1015#endif
1016
1017#if RK1_ENABLED
1018 impure elemental module subroutine setGeomRandRNGF_D0_RK1(rng, rand, logProbFailure)
1019#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1020 !DEC$ ATTRIBUTES DLLEXPORT :: setGeomRandRNGF_D0_RK1
1021#endif
1022 use pm_kind, only: RKG => RK1
1023 type(rngf_type) , intent(in) :: rng
1024 integer(IK) , intent(out) :: rand
1025 real(RKG) , intent(in) :: logProbFailure
1026 end subroutine
1027#endif
1028
1029 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1030
1031#if RK5_ENABLED
1032 PURE elemental module subroutine setGeomRandRNGX_D0_RK5(rng, rand, logProbFailure)
1033#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1034 !DEC$ ATTRIBUTES DLLEXPORT :: setGeomRandRNGX_D0_RK5
1035#endif
1036 use pm_kind, only: RKG => RK5
1037 type(xoshiro256ssw_type), intent(inout) :: rng
1038 integer(IK) , intent(out) :: rand
1039 real(RKG) , intent(in) :: logProbFailure
1040 end subroutine
1041#endif
1042
1043#if RK4_ENABLED
1044 PURE elemental module subroutine setGeomRandRNGX_D0_RK4(rng, rand, logProbFailure)
1045#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1046 !DEC$ ATTRIBUTES DLLEXPORT :: setGeomRandRNGX_D0_RK4
1047#endif
1048 use pm_kind, only: RKG => RK4
1049 type(xoshiro256ssw_type), intent(inout) :: rng
1050 integer(IK) , intent(out) :: rand
1051 real(RKG) , intent(in) :: logProbFailure
1052 end subroutine
1053#endif
1054
1055#if RK3_ENABLED
1056 PURE elemental module subroutine setGeomRandRNGX_D0_RK3(rng, rand, logProbFailure)
1057#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1058 !DEC$ ATTRIBUTES DLLEXPORT :: setGeomRandRNGX_D0_RK3
1059#endif
1060 use pm_kind, only: RKG => RK3
1061 type(xoshiro256ssw_type), intent(inout) :: rng
1062 integer(IK) , intent(out) :: rand
1063 real(RKG) , intent(in) :: logProbFailure
1064 end subroutine
1065#endif
1066
1067#if RK2_ENABLED
1068 PURE elemental module subroutine setGeomRandRNGX_D0_RK2(rng, rand, logProbFailure)
1069#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1070 !DEC$ ATTRIBUTES DLLEXPORT :: setGeomRandRNGX_D0_RK2
1071#endif
1072 use pm_kind, only: RKG => RK2
1073 type(xoshiro256ssw_type), intent(inout) :: rng
1074 integer(IK) , intent(out) :: rand
1075 real(RKG) , intent(in) :: logProbFailure
1076 end subroutine
1077#endif
1078
1079#if RK1_ENABLED
1080 PURE elemental module subroutine setGeomRandRNGX_D0_RK1(rng, rand, logProbFailure)
1081#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1082 !DEC$ ATTRIBUTES DLLEXPORT :: setGeomRandRNGX_D0_RK1
1083#endif
1084 use pm_kind, only: RKG => RK1
1085 type(xoshiro256ssw_type), intent(inout) :: rng
1086 integer(IK) , intent(out) :: rand
1087 real(RKG) , intent(in) :: logProbFailure
1088 end subroutine
1089#endif
1090
1091 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1092
1093 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1094 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1095 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1096
1097 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1098
1099#if RK5_ENABLED
1100 module subroutine setGeomRandRNGD_D1_RK5(rand, logProbFailure)
1101#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1102 !DEC$ ATTRIBUTES DLLEXPORT :: setGeomRandRNGD_D1_RK5
1103#endif
1104 use pm_kind, only: RKG => RK5
1105 integer(IK) , intent(out) :: rand(:)
1106 real(RKG) , intent(in) :: logProbFailure
1107 end subroutine
1108#endif
1109
1110#if RK4_ENABLED
1111 module subroutine setGeomRandRNGD_D1_RK4(rand, logProbFailure)
1112#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1113 !DEC$ ATTRIBUTES DLLEXPORT :: setGeomRandRNGD_D1_RK4
1114#endif
1115 use pm_kind, only: RKG => RK4
1116 integer(IK) , intent(out) :: rand(:)
1117 real(RKG) , intent(in) :: logProbFailure
1118 end subroutine
1119#endif
1120
1121#if RK3_ENABLED
1122 module subroutine setGeomRandRNGD_D1_RK3(rand, logProbFailure)
1123#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1124 !DEC$ ATTRIBUTES DLLEXPORT :: setGeomRandRNGD_D1_RK3
1125#endif
1126 use pm_kind, only: RKG => RK3
1127 integer(IK) , intent(out) :: rand(:)
1128 real(RKG) , intent(in) :: logProbFailure
1129 end subroutine
1130#endif
1131
1132#if RK2_ENABLED
1133 module subroutine setGeomRandRNGD_D1_RK2(rand, logProbFailure)
1134#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1135 !DEC$ ATTRIBUTES DLLEXPORT :: setGeomRandRNGD_D1_RK2
1136#endif
1137 use pm_kind, only: RKG => RK2
1138 integer(IK) , intent(out) :: rand(:)
1139 real(RKG) , intent(in) :: logProbFailure
1140 end subroutine
1141#endif
1142
1143#if RK1_ENABLED
1144 module subroutine setGeomRandRNGD_D1_RK1(rand, logProbFailure)
1145#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1146 !DEC$ ATTRIBUTES DLLEXPORT :: setGeomRandRNGD_D1_RK1
1147#endif
1148 use pm_kind, only: RKG => RK1
1149 integer(IK) , intent(out) :: rand(:)
1150 real(RKG) , intent(in) :: logProbFailure
1151 end subroutine
1152#endif
1153
1154 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1155
1156#if RK5_ENABLED
1157 module subroutine setGeomRandRNGF_D1_RK5(rng, rand, logProbFailure)
1158#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1159 !DEC$ ATTRIBUTES DLLEXPORT :: setGeomRandRNGF_D1_RK5
1160#endif
1161 use pm_kind, only: RKG => RK5
1162 type(rngf_type) , intent(in) :: rng
1163 integer(IK) , intent(out) :: rand(:)
1164 real(RKG) , intent(in) :: logProbFailure
1165 end subroutine
1166#endif
1167
1168#if RK4_ENABLED
1169 module subroutine setGeomRandRNGF_D1_RK4(rng, rand, logProbFailure)
1170#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1171 !DEC$ ATTRIBUTES DLLEXPORT :: setGeomRandRNGF_D1_RK4
1172#endif
1173 use pm_kind, only: RKG => RK4
1174 type(rngf_type) , intent(in) :: rng
1175 integer(IK) , intent(out) :: rand(:)
1176 real(RKG) , intent(in) :: logProbFailure
1177 end subroutine
1178#endif
1179
1180#if RK3_ENABLED
1181 module subroutine setGeomRandRNGF_D1_RK3(rng, rand, logProbFailure)
1182#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1183 !DEC$ ATTRIBUTES DLLEXPORT :: setGeomRandRNGF_D1_RK3
1184#endif
1185 use pm_kind, only: RKG => RK3
1186 type(rngf_type) , intent(in) :: rng
1187 integer(IK) , intent(out) :: rand(:)
1188 real(RKG) , intent(in) :: logProbFailure
1189 end subroutine
1190#endif
1191
1192#if RK2_ENABLED
1193 module subroutine setGeomRandRNGF_D1_RK2(rng, rand, logProbFailure)
1194#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1195 !DEC$ ATTRIBUTES DLLEXPORT :: setGeomRandRNGF_D1_RK2
1196#endif
1197 use pm_kind, only: RKG => RK2
1198 type(rngf_type) , intent(in) :: rng
1199 integer(IK) , intent(out) :: rand(:)
1200 real(RKG) , intent(in) :: logProbFailure
1201 end subroutine
1202#endif
1203
1204#if RK1_ENABLED
1205 module subroutine setGeomRandRNGF_D1_RK1(rng, rand, logProbFailure)
1206#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1207 !DEC$ ATTRIBUTES DLLEXPORT :: setGeomRandRNGF_D1_RK1
1208#endif
1209 use pm_kind, only: RKG => RK1
1210 type(rngf_type) , intent(in) :: rng
1211 integer(IK) , intent(out) :: rand(:)
1212 real(RKG) , intent(in) :: logProbFailure
1213 end subroutine
1214#endif
1215
1216 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1217
1218#if RK5_ENABLED
1219 PURE module subroutine setGeomRandRNGX_D1_RK5(rng, rand, logProbFailure)
1220#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1221 !DEC$ ATTRIBUTES DLLEXPORT :: setGeomRandRNGX_D1_RK5
1222#endif
1223 use pm_kind, only: RKG => RK5
1224 type(xoshiro256ssw_type), intent(inout) :: rng
1225 integer(IK) , intent(out) :: rand(:)
1226 real(RKG) , intent(in) :: logProbFailure
1227 end subroutine
1228#endif
1229
1230#if RK4_ENABLED
1231 PURE module subroutine setGeomRandRNGX_D1_RK4(rng, rand, logProbFailure)
1232#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1233 !DEC$ ATTRIBUTES DLLEXPORT :: setGeomRandRNGX_D1_RK4
1234#endif
1235 use pm_kind, only: RKG => RK4
1236 type(xoshiro256ssw_type), intent(inout) :: rng
1237 integer(IK) , intent(out) :: rand(:)
1238 real(RKG) , intent(in) :: logProbFailure
1239 end subroutine
1240#endif
1241
1242#if RK3_ENABLED
1243 PURE module subroutine setGeomRandRNGX_D1_RK3(rng, rand, logProbFailure)
1244#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1245 !DEC$ ATTRIBUTES DLLEXPORT :: setGeomRandRNGX_D1_RK3
1246#endif
1247 use pm_kind, only: RKG => RK3
1248 type(xoshiro256ssw_type), intent(inout) :: rng
1249 integer(IK) , intent(out) :: rand(:)
1250 real(RKG) , intent(in) :: logProbFailure
1251 end subroutine
1252#endif
1253
1254#if RK2_ENABLED
1255 PURE module subroutine setGeomRandRNGX_D1_RK2(rng, rand, logProbFailure)
1256#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1257 !DEC$ ATTRIBUTES DLLEXPORT :: setGeomRandRNGX_D1_RK2
1258#endif
1259 use pm_kind, only: RKG => RK2
1260 type(xoshiro256ssw_type), intent(inout) :: rng
1261 integer(IK) , intent(out) :: rand(:)
1262 real(RKG) , intent(in) :: logProbFailure
1263 end subroutine
1264#endif
1265
1266#if RK1_ENABLED
1267 PURE module subroutine setGeomRandRNGX_D1_RK1(rng, rand, logProbFailure)
1268#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1269 !DEC$ ATTRIBUTES DLLEXPORT :: setGeomRandRNGX_D1_RK1
1270#endif
1271 use pm_kind, only: RKG => RK1
1272 type(xoshiro256ssw_type), intent(inout) :: rng
1273 integer(IK) , intent(out) :: rand(:)
1274 real(RKG) , intent(in) :: logProbFailure
1275 end subroutine
1276#endif
1277
1278 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1279
1280 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1281 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1282 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1283
1284 end interface
1285
1286!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1287
1288end module pm_distGeom
Generate and return the Cumulative Distribution Function (CDF) of the Geometric distribution for an i...
Generate and return the natural logarithm of the Probability Mass Function (PMF) of the Geometric dis...
Generate and return a scalar (or array of arbitrary rank of) random value(s) from the Geometric distr...
Return the Cumulative Distribution Function (CDF) of the Geometric distribution.
Return the natural logarithm of the Probability Mass Function (PMF) of the Geometric distribution for...
Return a scalar (or array of arbitrary rank of) random value(s) from the Geometric distribution.
This module contains classes and procedures for computing various statistical quantities related to t...
Definition: pm_distGeom.F90:96
character(*, SK), parameter MODULE_NAME
This module contains classes and procedures for computing various statistical quantities related to t...
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 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 is the derived type for signifying distributions that are of type Geometric as defined in the de...
This is a concrete derived type whose instances can be used to define/request the default uniform ran...
This is the derived type for declaring and generating objects of type xoshiro256ssw_type containing a...