ParaMonte Fortran 2.0.0
Parallel Monte Carlo and Machine Learning Library
See the latest version documentation.
pm_distGamma.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
72
73!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
74
76
77 use pm_kind, only: SK, IK, LK
78 use pm_distUnif, only: rngf_type
80
81 implicit none
82
83 character(*, SK), parameter :: MODULE_NAME = "@pm_distGamma"
84
85!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
86
121 end type
122
123!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
124
199
200 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
201
202#if RK5_ENABLED
203 PURE elemental module function getGammaLogPDFNFKD_RK5(kappa) result(logPDFNF)
204#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
205 !DEC$ ATTRIBUTES DLLEXPORT :: getGammaLogPDFNFKD_RK5
206#endif
207 use pm_kind, only: RKG => RK5
208 real(RKG) , intent(in) :: kappa
209 real(RKG) :: logPDFNF
210 end function
211#endif
212
213#if RK4_ENABLED
214 PURE elemental module function getGammaLogPDFNFKD_RK4(kappa) result(logPDFNF)
215#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
216 !DEC$ ATTRIBUTES DLLEXPORT :: getGammaLogPDFNFKD_RK4
217#endif
218 use pm_kind, only: RKG => RK4
219 real(RKG) , intent(in) :: kappa
220 real(RKG) :: logPDFNF
221 end function
222#endif
223
224#if RK3_ENABLED
225 PURE elemental module function getGammaLogPDFNFKD_RK3(kappa) result(logPDFNF)
226#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
227 !DEC$ ATTRIBUTES DLLEXPORT :: getGammaLogPDFNFKD_RK3
228#endif
229 use pm_kind, only: RKG => RK3
230 real(RKG) , intent(in) :: kappa
231 real(RKG) :: logPDFNF
232 end function
233#endif
234
235#if RK2_ENABLED
236 PURE elemental module function getGammaLogPDFNFKD_RK2(kappa) result(logPDFNF)
237#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
238 !DEC$ ATTRIBUTES DLLEXPORT :: getGammaLogPDFNFKD_RK2
239#endif
240 use pm_kind, only: RKG => RK2
241 real(RKG) , intent(in) :: kappa
242 real(RKG) :: logPDFNF
243 end function
244#endif
245
246#if RK1_ENABLED
247 PURE elemental module function getGammaLogPDFNFKD_RK1(kappa) result(logPDFNF)
248#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
249 !DEC$ ATTRIBUTES DLLEXPORT :: getGammaLogPDFNFKD_RK1
250#endif
251 use pm_kind, only: RKG => RK1
252 real(RKG) , intent(in) :: kappa
253 real(RKG) :: logPDFNF
254 end function
255#endif
256
257 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
258
259#if RK5_ENABLED
260 PURE elemental module function getGammaLogPDFNFKS_RK5(kappa, invSigma) result(logPDFNF)
261#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
262 !DEC$ ATTRIBUTES DLLEXPORT :: getGammaLogPDFNFKS_RK5
263#endif
264 use pm_kind, only: RKG => RK5
265 real(RKG) , intent(in) :: kappa, invSigma
266 real(RKG) :: logPDFNF
267 end function
268#endif
269
270#if RK4_ENABLED
271 PURE elemental module function getGammaLogPDFNFKS_RK4(kappa, invSigma) result(logPDFNF)
272#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
273 !DEC$ ATTRIBUTES DLLEXPORT :: getGammaLogPDFNFKS_RK4
274#endif
275 use pm_kind, only: RKG => RK4
276 real(RKG) , intent(in) :: kappa, invSigma
277 real(RKG) :: logPDFNF
278 end function
279#endif
280
281#if RK3_ENABLED
282 PURE elemental module function getGammaLogPDFNFKS_RK3(kappa, invSigma) result(logPDFNF)
283#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
284 !DEC$ ATTRIBUTES DLLEXPORT :: getGammaLogPDFNFKS_RK3
285#endif
286 use pm_kind, only: RKG => RK3
287 real(RKG) , intent(in) :: kappa, invSigma
288 real(RKG) :: logPDFNF
289 end function
290#endif
291
292#if RK2_ENABLED
293 PURE elemental module function getGammaLogPDFNFKS_RK2(kappa, invSigma) result(logPDFNF)
294#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
295 !DEC$ ATTRIBUTES DLLEXPORT :: getGammaLogPDFNFKS_RK2
296#endif
297 use pm_kind, only: RKG => RK2
298 real(RKG) , intent(in) :: kappa, invSigma
299 real(RKG) :: logPDFNF
300 end function
301#endif
302
303#if RK1_ENABLED
304 PURE elemental module function getGammaLogPDFNFKS_RK1(kappa, invSigma) result(logPDFNF)
305#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
306 !DEC$ ATTRIBUTES DLLEXPORT :: getGammaLogPDFNFKS_RK1
307#endif
308 use pm_kind, only: RKG => RK1
309 real(RKG) , intent(in) :: kappa, invSigma
310 real(RKG) :: logPDFNF
311 end function
312#endif
313
314 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
315
316 end interface
317
318!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
319
393
394 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
395
396#if RK5_ENABLED
397 PURE elemental module function getGammaLogPDF_RK5(x, kappa, invSigma) result(logPDF)
398#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
399 !DEC$ ATTRIBUTES DLLEXPORT :: getGammaLogPDF_RK5
400#endif
401 use pm_kind, only: RKG => RK5
402 real(RKG) , intent(in) :: x
403 real(RKG) , intent(in) , optional :: kappa, invSigma
404 real(RKG) :: logPDF
405 end function
406#endif
407
408#if RK4_ENABLED
409 PURE elemental module function getGammaLogPDF_RK4(x, kappa, invSigma) result(logPDF)
410#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
411 !DEC$ ATTRIBUTES DLLEXPORT :: getGammaLogPDF_RK4
412#endif
413 use pm_kind, only: RKG => RK4
414 real(RKG) , intent(in) :: x
415 real(RKG) , intent(in) , optional :: kappa, invSigma
416 real(RKG) :: logPDF
417 end function
418#endif
419
420#if RK3_ENABLED
421 PURE elemental module function getGammaLogPDF_RK3(x, kappa, invSigma) result(logPDF)
422#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
423 !DEC$ ATTRIBUTES DLLEXPORT :: getGammaLogPDF_RK3
424#endif
425 use pm_kind, only: RKG => RK3
426 real(RKG) , intent(in) :: x
427 real(RKG) , intent(in) , optional :: kappa, invSigma
428 real(RKG) :: logPDF
429 end function
430#endif
431
432#if RK2_ENABLED
433 PURE elemental module function getGammaLogPDF_RK2(x, kappa, invSigma) result(logPDF)
434#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
435 !DEC$ ATTRIBUTES DLLEXPORT :: getGammaLogPDF_RK2
436#endif
437 use pm_kind, only: RKG => RK2
438 real(RKG) , intent(in) :: x
439 real(RKG) , intent(in) , optional :: kappa, invSigma
440 real(RKG) :: logPDF
441 end function
442#endif
443
444#if RK1_ENABLED
445 PURE elemental module function getGammaLogPDF_RK1(x, kappa, invSigma) result(logPDF)
446#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
447 !DEC$ ATTRIBUTES DLLEXPORT :: getGammaLogPDF_RK1
448#endif
449 use pm_kind, only: RKG => RK1
450 real(RKG) , intent(in) :: x
451 real(RKG) , intent(in) , optional :: kappa, invSigma
452 real(RKG) :: logPDF
453 end function
454#endif
455
456 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
457
458 end interface
459
460!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
461
534
535 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
536
537#if RK5_ENABLED
538 PURE elemental module subroutine setGammaLogPDFDDD_RK5(logPDF, x)
539#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
540 !DEC$ ATTRIBUTES DLLEXPORT :: setGammaLogPDFDDD_RK5
541#endif
542 use pm_kind, only: RKG => RK5
543 real(RKG) , intent(out) :: logPDF
544 real(RKG) , intent(in) :: x
545 end subroutine
546#endif
547
548#if RK4_ENABLED
549 PURE elemental module subroutine setGammaLogPDFDDD_RK4(logPDF, x)
550#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
551 !DEC$ ATTRIBUTES DLLEXPORT :: setGammaLogPDFDDD_RK4
552#endif
553 use pm_kind, only: RKG => RK4
554 real(RKG) , intent(out) :: logPDF
555 real(RKG) , intent(in) :: x
556 end subroutine
557#endif
558
559#if RK3_ENABLED
560 PURE elemental module subroutine setGammaLogPDFDDD_RK3(logPDF, x)
561#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
562 !DEC$ ATTRIBUTES DLLEXPORT :: setGammaLogPDFDDD_RK3
563#endif
564 use pm_kind, only: RKG => RK3
565 real(RKG) , intent(out) :: logPDF
566 real(RKG) , intent(in) :: x
567 end subroutine
568#endif
569
570#if RK2_ENABLED
571 PURE elemental module subroutine setGammaLogPDFDDD_RK2(logPDF, x)
572#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
573 !DEC$ ATTRIBUTES DLLEXPORT :: setGammaLogPDFDDD_RK2
574#endif
575 use pm_kind, only: RKG => RK2
576 real(RKG) , intent(out) :: logPDF
577 real(RKG) , intent(in) :: x
578 end subroutine
579#endif
580
581#if RK1_ENABLED
582 PURE elemental module subroutine setGammaLogPDFDDD_RK1(logPDF, x)
583#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
584 !DEC$ ATTRIBUTES DLLEXPORT :: setGammaLogPDFDDD_RK1
585#endif
586 use pm_kind, only: RKG => RK1
587 real(RKG) , intent(out) :: logPDF
588 real(RKG) , intent(in) :: x
589 end subroutine
590#endif
591
592 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
593
594#if RK5_ENABLED
595 PURE elemental module subroutine setGammaLogPDFNKD_RK5(logPDF, x, logPDFNF, kappa)
596#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
597 !DEC$ ATTRIBUTES DLLEXPORT :: setGammaLogPDFNKD_RK5
598#endif
599 use pm_kind, only: RKG => RK5
600 real(RKG) , intent(out) :: logPDF
601 real(RKG) , intent(in) :: x, logPDFNF, kappa
602 end subroutine
603#endif
604
605#if RK4_ENABLED
606 PURE elemental module subroutine setGammaLogPDFNKD_RK4(logPDF, x, logPDFNF, kappa)
607#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
608 !DEC$ ATTRIBUTES DLLEXPORT :: setGammaLogPDFNKD_RK4
609#endif
610 use pm_kind, only: RKG => RK4
611 real(RKG) , intent(out) :: logPDF
612 real(RKG) , intent(in) :: x, logPDFNF, kappa
613 end subroutine
614#endif
615
616#if RK3_ENABLED
617 PURE elemental module subroutine setGammaLogPDFNKD_RK3(logPDF, x, logPDFNF, kappa)
618#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
619 !DEC$ ATTRIBUTES DLLEXPORT :: setGammaLogPDFNKD_RK3
620#endif
621 use pm_kind, only: RKG => RK3
622 real(RKG) , intent(out) :: logPDF
623 real(RKG) , intent(in) :: x, logPDFNF, kappa
624 end subroutine
625#endif
626
627#if RK2_ENABLED
628 PURE elemental module subroutine setGammaLogPDFNKD_RK2(logPDF, x, logPDFNF, kappa)
629#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
630 !DEC$ ATTRIBUTES DLLEXPORT :: setGammaLogPDFNKD_RK2
631#endif
632 use pm_kind, only: RKG => RK2
633 real(RKG) , intent(out) :: logPDF
634 real(RKG) , intent(in) :: x, logPDFNF, kappa
635 end subroutine
636#endif
637
638#if RK1_ENABLED
639 PURE elemental module subroutine setGammaLogPDFNKD_RK1(logPDF, x, logPDFNF, kappa)
640#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
641 !DEC$ ATTRIBUTES DLLEXPORT :: setGammaLogPDFNKD_RK1
642#endif
643 use pm_kind, only: RKG => RK1
644 real(RKG) , intent(out) :: logPDF
645 real(RKG) , intent(in) :: x, logPDFNF, kappa
646 end subroutine
647#endif
648
649 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
650
651#if RK5_ENABLED
652 PURE elemental module subroutine setGammaLogPDFNKS_RK5(logPDF, x, logPDFNF, kappa, invSigma)
653#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
654 !DEC$ ATTRIBUTES DLLEXPORT :: setGammaLogPDFNKS_RK5
655#endif
656 use pm_kind, only: RKG => RK5
657 real(RKG) , intent(out) :: logPDF
658 real(RKG) , intent(in) :: x, logPDFNF, kappa, invSigma
659 end subroutine
660#endif
661
662#if RK4_ENABLED
663 PURE elemental module subroutine setGammaLogPDFNKS_RK4(logPDF, x, logPDFNF, kappa, invSigma)
664#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
665 !DEC$ ATTRIBUTES DLLEXPORT :: setGammaLogPDFNKS_RK4
666#endif
667 use pm_kind, only: RKG => RK4
668 real(RKG) , intent(out) :: logPDF
669 real(RKG) , intent(in) :: x, logPDFNF, kappa, invSigma
670 end subroutine
671#endif
672
673#if RK3_ENABLED
674 PURE elemental module subroutine setGammaLogPDFNKS_RK3(logPDF, x, logPDFNF, kappa, invSigma)
675#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
676 !DEC$ ATTRIBUTES DLLEXPORT :: setGammaLogPDFNKS_RK3
677#endif
678 use pm_kind, only: RKG => RK3
679 real(RKG) , intent(out) :: logPDF
680 real(RKG) , intent(in) :: x, logPDFNF, kappa, invSigma
681 end subroutine
682#endif
683
684#if RK2_ENABLED
685 PURE elemental module subroutine setGammaLogPDFNKS_RK2(logPDF, x, logPDFNF, kappa, invSigma)
686#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
687 !DEC$ ATTRIBUTES DLLEXPORT :: setGammaLogPDFNKS_RK2
688#endif
689 use pm_kind, only: RKG => RK2
690 real(RKG) , intent(out) :: logPDF
691 real(RKG) , intent(in) :: x, logPDFNF, kappa, invSigma
692 end subroutine
693#endif
694
695#if RK1_ENABLED
696 PURE elemental module subroutine setGammaLogPDFNKS_RK1(logPDF, x, logPDFNF, kappa, invSigma)
697#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
698 !DEC$ ATTRIBUTES DLLEXPORT :: setGammaLogPDFNKS_RK1
699#endif
700 use pm_kind, only: RKG => RK1
701 real(RKG) , intent(out) :: logPDF
702 real(RKG) , intent(in) :: x, logPDFNF, kappa, invSigma
703 end subroutine
704#endif
705
706 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
707
708 end interface
709
710!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
711
781 interface getGammaCDF
782
783 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
784
785#if RK5_ENABLED
786 PURE elemental module function getGammaCDF_RK5(x, kappa, invSigma) result(cdf)
787#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
788 !DEC$ ATTRIBUTES DLLEXPORT :: getGammaCDF_RK5
789#endif
790 use pm_kind, only: RKG => RK5
791 real(RKG) , intent(in) :: x
792 real(RKG) , intent(in) , optional :: kappa, invSigma
793 real(RKG) :: cdf
794 end function
795#endif
796
797#if RK4_ENABLED
798 PURE elemental module function getGammaCDF_RK4(x, kappa, invSigma) result(cdf)
799#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
800 !DEC$ ATTRIBUTES DLLEXPORT :: getGammaCDF_RK4
801#endif
802 use pm_kind, only: RKG => RK4
803 real(RKG) , intent(in) :: x
804 real(RKG) , intent(in) , optional :: kappa, invSigma
805 real(RKG) :: cdf
806 end function
807#endif
808
809#if RK3_ENABLED
810 PURE elemental module function getGammaCDF_RK3(x, kappa, invSigma) result(cdf)
811#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
812 !DEC$ ATTRIBUTES DLLEXPORT :: getGammaCDF_RK3
813#endif
814 use pm_kind, only: RKG => RK3
815 real(RKG) , intent(in) :: x
816 real(RKG) , intent(in) , optional :: kappa, invSigma
817 real(RKG) :: cdf
818 end function
819#endif
820
821#if RK2_ENABLED
822 PURE elemental module function getGammaCDF_RK2(x, kappa, invSigma) result(cdf)
823#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
824 !DEC$ ATTRIBUTES DLLEXPORT :: getGammaCDF_RK2
825#endif
826 use pm_kind, only: RKG => RK2
827 real(RKG) , intent(in) :: x
828 real(RKG) , intent(in) , optional :: kappa, invSigma
829 real(RKG) :: cdf
830 end function
831#endif
832
833#if RK1_ENABLED
834 PURE elemental module function getGammaCDF_RK1(x, kappa, invSigma) result(cdf)
835#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
836 !DEC$ ATTRIBUTES DLLEXPORT :: getGammaCDF_RK1
837#endif
838 use pm_kind, only: RKG => RK1
839 real(RKG) , intent(in) :: x
840 real(RKG) , intent(in) , optional :: kappa, invSigma
841 real(RKG) :: cdf
842 end function
843#endif
844
845 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
846
847 end interface
848
849!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
850
917 interface setGammaCDF
918
919 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
920
921#if RK5_ENABLED
922 PURE elemental module subroutine setGammaCDFDD_RK5(cdf, x, info)
923#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
924 !DEC$ ATTRIBUTES DLLEXPORT :: setGammaCDFDD_RK5
925#endif
926 use pm_kind, only: RKG => RK5
927 real(RKG) , intent(out) :: cdf
928 real(RKG) , intent(in) :: x
929 integer(IK) , intent(out) :: info
930 end subroutine
931#endif
932
933#if RK4_ENABLED
934 PURE elemental module subroutine setGammaCDFDD_RK4(cdf, x, info)
935#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
936 !DEC$ ATTRIBUTES DLLEXPORT :: setGammaCDFDD_RK4
937#endif
938 use pm_kind, only: RKG => RK4
939 real(RKG) , intent(out) :: cdf
940 real(RKG) , intent(in) :: x
941 integer(IK) , intent(out) :: info
942 end subroutine
943#endif
944
945#if RK3_ENABLED
946 PURE elemental module subroutine setGammaCDFDD_RK3(cdf, x, info)
947#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
948 !DEC$ ATTRIBUTES DLLEXPORT :: setGammaCDFDD_RK3
949#endif
950 use pm_kind, only: RKG => RK3
951 real(RKG) , intent(out) :: cdf
952 real(RKG) , intent(in) :: x
953 integer(IK) , intent(out) :: info
954 end subroutine
955#endif
956
957#if RK2_ENABLED
958 PURE elemental module subroutine setGammaCDFDD_RK2(cdf, x, info)
959#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
960 !DEC$ ATTRIBUTES DLLEXPORT :: setGammaCDFDD_RK2
961#endif
962 use pm_kind, only: RKG => RK2
963 real(RKG) , intent(out) :: cdf
964 real(RKG) , intent(in) :: x
965 integer(IK) , intent(out) :: info
966 end subroutine
967#endif
968
969#if RK1_ENABLED
970 PURE elemental module subroutine setGammaCDFDD_RK1(cdf, x, info)
971#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
972 !DEC$ ATTRIBUTES DLLEXPORT :: setGammaCDFDD_RK1
973#endif
974 use pm_kind, only: RKG => RK1
975 real(RKG) , intent(out) :: cdf
976 real(RKG) , intent(in) :: x
977 integer(IK) , intent(out) :: info
978 end subroutine
979#endif
980
981 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
982
983#if RK5_ENABLED
984 PURE elemental module subroutine setGammaCDFKD_RK5(cdf, x, kappa, info)
985#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
986 !DEC$ ATTRIBUTES DLLEXPORT :: setGammaCDFKD_RK5
987#endif
988 use pm_kind, only: RKG => RK5
989 real(RKG) , intent(out) :: cdf
990 real(RKG) , intent(in) :: x, kappa
991 integer(IK) , intent(out) :: info
992 end subroutine
993#endif
994
995#if RK4_ENABLED
996 PURE elemental module subroutine setGammaCDFKD_RK4(cdf, x, kappa, info)
997#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
998 !DEC$ ATTRIBUTES DLLEXPORT :: setGammaCDFKD_RK4
999#endif
1000 use pm_kind, only: RKG => RK4
1001 real(RKG) , intent(out) :: cdf
1002 real(RKG) , intent(in) :: x, kappa
1003 integer(IK) , intent(out) :: info
1004 end subroutine
1005#endif
1006
1007#if RK3_ENABLED
1008 PURE elemental module subroutine setGammaCDFKD_RK3(cdf, x, kappa, info)
1009#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1010 !DEC$ ATTRIBUTES DLLEXPORT :: setGammaCDFKD_RK3
1011#endif
1012 use pm_kind, only: RKG => RK3
1013 real(RKG) , intent(out) :: cdf
1014 real(RKG) , intent(in) :: x, kappa
1015 integer(IK) , intent(out) :: info
1016 end subroutine
1017#endif
1018
1019#if RK2_ENABLED
1020 PURE elemental module subroutine setGammaCDFKD_RK2(cdf, x, kappa, info)
1021#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1022 !DEC$ ATTRIBUTES DLLEXPORT :: setGammaCDFKD_RK2
1023#endif
1024 use pm_kind, only: RKG => RK2
1025 real(RKG) , intent(out) :: cdf
1026 real(RKG) , intent(in) :: x, kappa
1027 integer(IK) , intent(out) :: info
1028 end subroutine
1029#endif
1030
1031#if RK1_ENABLED
1032 PURE elemental module subroutine setGammaCDFKD_RK1(cdf, x, kappa, info)
1033#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1034 !DEC$ ATTRIBUTES DLLEXPORT :: setGammaCDFKD_RK1
1035#endif
1036 use pm_kind, only: RKG => RK1
1037 real(RKG) , intent(out) :: cdf
1038 real(RKG) , intent(in) :: x, kappa
1039 integer(IK) , intent(out) :: info
1040 end subroutine
1041#endif
1042
1043 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1044
1045#if RK5_ENABLED
1046 PURE elemental module subroutine setGammaCDFKS_RK5(cdf, x, kappa, invSigma, info)
1047#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1048 !DEC$ ATTRIBUTES DLLEXPORT :: setGammaCDFKS_RK5
1049#endif
1050 use pm_kind, only: RKG => RK5
1051 real(RKG) , intent(out) :: cdf
1052 real(RKG) , intent(in) :: x, kappa, invSigma
1053 integer(IK) , intent(out) :: info
1054 end subroutine
1055#endif
1056
1057#if RK4_ENABLED
1058 PURE elemental module subroutine setGammaCDFKS_RK4(cdf, x, kappa, invSigma, info)
1059#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1060 !DEC$ ATTRIBUTES DLLEXPORT :: setGammaCDFKS_RK4
1061#endif
1062 use pm_kind, only: RKG => RK4
1063 real(RKG) , intent(out) :: cdf
1064 real(RKG) , intent(in) :: x, kappa, invSigma
1065 integer(IK) , intent(out) :: info
1066 end subroutine
1067#endif
1068
1069#if RK3_ENABLED
1070 PURE elemental module subroutine setGammaCDFKS_RK3(cdf, x, kappa, invSigma, info)
1071#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1072 !DEC$ ATTRIBUTES DLLEXPORT :: setGammaCDFKS_RK3
1073#endif
1074 use pm_kind, only: RKG => RK3
1075 real(RKG) , intent(out) :: cdf
1076 real(RKG) , intent(in) :: x, kappa, invSigma
1077 integer(IK) , intent(out) :: info
1078 end subroutine
1079#endif
1080
1081#if RK2_ENABLED
1082 PURE elemental module subroutine setGammaCDFKS_RK2(cdf, x, kappa, invSigma, info)
1083#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1084 !DEC$ ATTRIBUTES DLLEXPORT :: setGammaCDFKS_RK2
1085#endif
1086 use pm_kind, only: RKG => RK2
1087 real(RKG) , intent(out) :: cdf
1088 real(RKG) , intent(in) :: x, kappa, invSigma
1089 integer(IK) , intent(out) :: info
1090 end subroutine
1091#endif
1092
1093#if RK1_ENABLED
1094 PURE elemental module subroutine setGammaCDFKS_RK1(cdf, x, kappa, invSigma, info)
1095#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1096 !DEC$ ATTRIBUTES DLLEXPORT :: setGammaCDFKS_RK1
1097#endif
1098 use pm_kind, only: RKG => RK1
1099 real(RKG) , intent(out) :: cdf
1100 real(RKG) , intent(in) :: x, kappa, invSigma
1101 integer(IK) , intent(out) :: info
1102 end subroutine
1103#endif
1104
1105 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1106
1107 end interface
1108
1109!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1110
1194
1195 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1196 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1197 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1198
1199 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1200
1201#if RK5_ENABLED
1202 impure elemental module subroutine setGammaRandRNGD_D0_RK5(rand, kappa, sigma)
1203#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1204 !DEC$ ATTRIBUTES DLLEXPORT :: setGammaRandRNGD_D0_RK5
1205#endif
1206 use pm_kind, only: RKG => RK5
1207 real(RKG) , intent(out) :: rand
1208 real(RKG) , intent(in) :: kappa, sigma
1209 end subroutine
1210#endif
1211
1212#if RK4_ENABLED
1213 impure elemental module subroutine setGammaRandRNGD_D0_RK4(rand, kappa, sigma)
1214#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1215 !DEC$ ATTRIBUTES DLLEXPORT :: setGammaRandRNGD_D0_RK4
1216#endif
1217 use pm_kind, only: RKG => RK4
1218 real(RKG) , intent(out) :: rand
1219 real(RKG) , intent(in) :: kappa, sigma
1220 end subroutine
1221#endif
1222
1223#if RK3_ENABLED
1224 impure elemental module subroutine setGammaRandRNGD_D0_RK3(rand, kappa, sigma)
1225#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1226 !DEC$ ATTRIBUTES DLLEXPORT :: setGammaRandRNGD_D0_RK3
1227#endif
1228 use pm_kind, only: RKG => RK3
1229 real(RKG) , intent(out) :: rand
1230 real(RKG) , intent(in) :: kappa, sigma
1231 end subroutine
1232#endif
1233
1234#if RK2_ENABLED
1235 impure elemental module subroutine setGammaRandRNGD_D0_RK2(rand, kappa, sigma)
1236#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1237 !DEC$ ATTRIBUTES DLLEXPORT :: setGammaRandRNGD_D0_RK2
1238#endif
1239 use pm_kind, only: RKG => RK2
1240 real(RKG) , intent(out) :: rand
1241 real(RKG) , intent(in) :: kappa, sigma
1242 end subroutine
1243#endif
1244
1245#if RK1_ENABLED
1246 impure elemental module subroutine setGammaRandRNGD_D0_RK1(rand, kappa, sigma)
1247#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1248 !DEC$ ATTRIBUTES DLLEXPORT :: setGammaRandRNGD_D0_RK1
1249#endif
1250 use pm_kind, only: RKG => RK1
1251 real(RKG) , intent(out) :: rand
1252 real(RKG) , intent(in) :: kappa, sigma
1253 end subroutine
1254#endif
1255
1256 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1257
1258#if RK5_ENABLED
1259 impure elemental module subroutine setGammaRandRNGF_D0_RK5(rng, rand, kappa, sigma)
1260#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1261 !DEC$ ATTRIBUTES DLLEXPORT :: setGammaRandRNGF_D0_RK5
1262#endif
1263 use pm_kind, only: RKG => RK5
1264 type(rngf_type) , intent(in) :: rng
1265 real(RKG) , intent(out) :: rand
1266 real(RKG) , intent(in) :: kappa, sigma
1267 end subroutine
1268#endif
1269
1270#if RK4_ENABLED
1271 impure elemental module subroutine setGammaRandRNGF_D0_RK4(rng, rand, kappa, sigma)
1272#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1273 !DEC$ ATTRIBUTES DLLEXPORT :: setGammaRandRNGF_D0_RK4
1274#endif
1275 use pm_kind, only: RKG => RK4
1276 type(rngf_type) , intent(in) :: rng
1277 real(RKG) , intent(out) :: rand
1278 real(RKG) , intent(in) :: kappa, sigma
1279 end subroutine
1280#endif
1281
1282#if RK3_ENABLED
1283 impure elemental module subroutine setGammaRandRNGF_D0_RK3(rng, rand, kappa, sigma)
1284#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1285 !DEC$ ATTRIBUTES DLLEXPORT :: setGammaRandRNGF_D0_RK3
1286#endif
1287 use pm_kind, only: RKG => RK3
1288 type(rngf_type) , intent(in) :: rng
1289 real(RKG) , intent(out) :: rand
1290 real(RKG) , intent(in) :: kappa, sigma
1291 end subroutine
1292#endif
1293
1294#if RK2_ENABLED
1295 impure elemental module subroutine setGammaRandRNGF_D0_RK2(rng, rand, kappa, sigma)
1296#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1297 !DEC$ ATTRIBUTES DLLEXPORT :: setGammaRandRNGF_D0_RK2
1298#endif
1299 use pm_kind, only: RKG => RK2
1300 type(rngf_type) , intent(in) :: rng
1301 real(RKG) , intent(out) :: rand
1302 real(RKG) , intent(in) :: kappa, sigma
1303 end subroutine
1304#endif
1305
1306#if RK1_ENABLED
1307 impure elemental module subroutine setGammaRandRNGF_D0_RK1(rng, rand, kappa, sigma)
1308#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1309 !DEC$ ATTRIBUTES DLLEXPORT :: setGammaRandRNGF_D0_RK1
1310#endif
1311 use pm_kind, only: RKG => RK1
1312 type(rngf_type) , intent(in) :: rng
1313 real(RKG) , intent(out) :: rand
1314 real(RKG) , intent(in) :: kappa, sigma
1315 end subroutine
1316#endif
1317
1318 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1319
1320#if RK5_ENABLED
1321 PURE module subroutine setGammaRandRNGX_D0_RK5(rng, rand, kappa, sigma)
1322#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1323 !DEC$ ATTRIBUTES DLLEXPORT :: setGammaRandRNGX_D0_RK5
1324#endif
1325 use pm_kind, only: RKG => RK5
1326 type(xoshiro256ssw_type), intent(inout) :: rng
1327 real(RKG) , intent(out) :: rand
1328 real(RKG) , intent(in) :: kappa, sigma
1329 end subroutine
1330#endif
1331
1332#if RK4_ENABLED
1333 PURE module subroutine setGammaRandRNGX_D0_RK4(rng, rand, kappa, sigma)
1334#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1335 !DEC$ ATTRIBUTES DLLEXPORT :: setGammaRandRNGX_D0_RK4
1336#endif
1337 use pm_kind, only: RKG => RK4
1338 type(xoshiro256ssw_type), intent(inout) :: rng
1339 real(RKG) , intent(out) :: rand
1340 real(RKG) , intent(in) :: kappa, sigma
1341 end subroutine
1342#endif
1343
1344#if RK3_ENABLED
1345 PURE module subroutine setGammaRandRNGX_D0_RK3(rng, rand, kappa, sigma)
1346#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1347 !DEC$ ATTRIBUTES DLLEXPORT :: setGammaRandRNGX_D0_RK3
1348#endif
1349 use pm_kind, only: RKG => RK3
1350 type(xoshiro256ssw_type), intent(inout) :: rng
1351 real(RKG) , intent(out) :: rand
1352 real(RKG) , intent(in) :: kappa, sigma
1353 end subroutine
1354#endif
1355
1356#if RK2_ENABLED
1357 PURE module subroutine setGammaRandRNGX_D0_RK2(rng, rand, kappa, sigma)
1358#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1359 !DEC$ ATTRIBUTES DLLEXPORT :: setGammaRandRNGX_D0_RK2
1360#endif
1361 use pm_kind, only: RKG => RK2
1362 type(xoshiro256ssw_type), intent(inout) :: rng
1363 real(RKG) , intent(out) :: rand
1364 real(RKG) , intent(in) :: kappa, sigma
1365 end subroutine
1366#endif
1367
1368#if RK1_ENABLED
1369 PURE module subroutine setGammaRandRNGX_D0_RK1(rng, rand, kappa, sigma)
1370#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1371 !DEC$ ATTRIBUTES DLLEXPORT :: setGammaRandRNGX_D0_RK1
1372#endif
1373 use pm_kind, only: RKG => RK1
1374 type(xoshiro256ssw_type), intent(inout) :: rng
1375 real(RKG) , intent(out) :: rand
1376 real(RKG) , intent(in) :: kappa, sigma
1377 end subroutine
1378#endif
1379
1380 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1381
1382 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1383 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1384 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1385
1386 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1387
1388#if RK5_ENABLED
1389 impure module subroutine setGammaRandRNGD_D1_RK5(rand, kappa, sigma)
1390#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1391 !DEC$ ATTRIBUTES DLLEXPORT :: setGammaRandRNGD_D1_RK5
1392#endif
1393 use pm_kind, only: RKG => RK5
1394 real(RKG) , intent(out) :: rand(:)
1395 real(RKG) , intent(in) :: kappa, sigma
1396 end subroutine
1397#endif
1398
1399#if RK4_ENABLED
1400 impure module subroutine setGammaRandRNGD_D1_RK4(rand, kappa, sigma)
1401#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1402 !DEC$ ATTRIBUTES DLLEXPORT :: setGammaRandRNGD_D1_RK4
1403#endif
1404 use pm_kind, only: RKG => RK4
1405 real(RKG) , intent(out) :: rand(:)
1406 real(RKG) , intent(in) :: kappa, sigma
1407 end subroutine
1408#endif
1409
1410#if RK3_ENABLED
1411 impure module subroutine setGammaRandRNGD_D1_RK3(rand, kappa, sigma)
1412#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1413 !DEC$ ATTRIBUTES DLLEXPORT :: setGammaRandRNGD_D1_RK3
1414#endif
1415 use pm_kind, only: RKG => RK3
1416 real(RKG) , intent(out) :: rand(:)
1417 real(RKG) , intent(in) :: kappa, sigma
1418 end subroutine
1419#endif
1420
1421#if RK2_ENABLED
1422 impure module subroutine setGammaRandRNGD_D1_RK2(rand, kappa, sigma)
1423#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1424 !DEC$ ATTRIBUTES DLLEXPORT :: setGammaRandRNGD_D1_RK2
1425#endif
1426 use pm_kind, only: RKG => RK2
1427 real(RKG) , intent(out) :: rand(:)
1428 real(RKG) , intent(in) :: kappa, sigma
1429 end subroutine
1430#endif
1431
1432#if RK1_ENABLED
1433 impure module subroutine setGammaRandRNGD_D1_RK1(rand, kappa, sigma)
1434#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1435 !DEC$ ATTRIBUTES DLLEXPORT :: setGammaRandRNGD_D1_RK1
1436#endif
1437 use pm_kind, only: RKG => RK1
1438 real(RKG) , intent(out) :: rand(:)
1439 real(RKG) , intent(in) :: kappa, sigma
1440 end subroutine
1441#endif
1442
1443 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1444
1445#if RK5_ENABLED
1446 impure module subroutine setGammaRandRNGF_D1_RK5(rng, rand, kappa, sigma)
1447#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1448 !DEC$ ATTRIBUTES DLLEXPORT :: setGammaRandRNGF_D1_RK5
1449#endif
1450 use pm_kind, only: RKG => RK5
1451 type(rngf_type) , intent(in) :: rng
1452 real(RKG) , intent(out) :: rand(:)
1453 real(RKG) , intent(in) :: kappa, sigma
1454 end subroutine
1455#endif
1456
1457#if RK4_ENABLED
1458 impure module subroutine setGammaRandRNGF_D1_RK4(rng, rand, kappa, sigma)
1459#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1460 !DEC$ ATTRIBUTES DLLEXPORT :: setGammaRandRNGF_D1_RK4
1461#endif
1462 use pm_kind, only: RKG => RK4
1463 type(rngf_type) , intent(in) :: rng
1464 real(RKG) , intent(out) :: rand(:)
1465 real(RKG) , intent(in) :: kappa, sigma
1466 end subroutine
1467#endif
1468
1469#if RK3_ENABLED
1470 impure module subroutine setGammaRandRNGF_D1_RK3(rng, rand, kappa, sigma)
1471#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1472 !DEC$ ATTRIBUTES DLLEXPORT :: setGammaRandRNGF_D1_RK3
1473#endif
1474 use pm_kind, only: RKG => RK3
1475 type(rngf_type) , intent(in) :: rng
1476 real(RKG) , intent(out) :: rand(:)
1477 real(RKG) , intent(in) :: kappa, sigma
1478 end subroutine
1479#endif
1480
1481#if RK2_ENABLED
1482 impure module subroutine setGammaRandRNGF_D1_RK2(rng, rand, kappa, sigma)
1483#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1484 !DEC$ ATTRIBUTES DLLEXPORT :: setGammaRandRNGF_D1_RK2
1485#endif
1486 use pm_kind, only: RKG => RK2
1487 type(rngf_type) , intent(in) :: rng
1488 real(RKG) , intent(out) :: rand(:)
1489 real(RKG) , intent(in) :: kappa, sigma
1490 end subroutine
1491#endif
1492
1493#if RK1_ENABLED
1494 impure module subroutine setGammaRandRNGF_D1_RK1(rng, rand, kappa, sigma)
1495#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1496 !DEC$ ATTRIBUTES DLLEXPORT :: setGammaRandRNGF_D1_RK1
1497#endif
1498 use pm_kind, only: RKG => RK1
1499 type(rngf_type) , intent(in) :: rng
1500 real(RKG) , intent(out) :: rand(:)
1501 real(RKG) , intent(in) :: kappa, sigma
1502 end subroutine
1503#endif
1504
1505 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1506
1507#if RK5_ENABLED
1508 PURE module subroutine setGammaRandRNGX_D1_RK5(rng, rand, kappa, sigma)
1509#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1510 !DEC$ ATTRIBUTES DLLEXPORT :: setGammaRandRNGX_D1_RK5
1511#endif
1512 use pm_kind, only: RKG => RK5
1513 type(xoshiro256ssw_type), intent(inout) :: rng
1514 real(RKG) , intent(out) :: rand(:)
1515 real(RKG) , intent(in) :: kappa, sigma
1516 end subroutine
1517#endif
1518
1519#if RK4_ENABLED
1520 PURE module subroutine setGammaRandRNGX_D1_RK4(rng, rand, kappa, sigma)
1521#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1522 !DEC$ ATTRIBUTES DLLEXPORT :: setGammaRandRNGX_D1_RK4
1523#endif
1524 use pm_kind, only: RKG => RK4
1525 type(xoshiro256ssw_type), intent(inout) :: rng
1526 real(RKG) , intent(out) :: rand(:)
1527 real(RKG) , intent(in) :: kappa, sigma
1528 end subroutine
1529#endif
1530
1531#if RK3_ENABLED
1532 PURE module subroutine setGammaRandRNGX_D1_RK3(rng, rand, kappa, sigma)
1533#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1534 !DEC$ ATTRIBUTES DLLEXPORT :: setGammaRandRNGX_D1_RK3
1535#endif
1536 use pm_kind, only: RKG => RK3
1537 type(xoshiro256ssw_type), intent(inout) :: rng
1538 real(RKG) , intent(out) :: rand(:)
1539 real(RKG) , intent(in) :: kappa, sigma
1540 end subroutine
1541#endif
1542
1543#if RK2_ENABLED
1544 PURE module subroutine setGammaRandRNGX_D1_RK2(rng, rand, kappa, sigma)
1545#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1546 !DEC$ ATTRIBUTES DLLEXPORT :: setGammaRandRNGX_D1_RK2
1547#endif
1548 use pm_kind, only: RKG => RK2
1549 type(xoshiro256ssw_type), intent(inout) :: rng
1550 real(RKG) , intent(out) :: rand(:)
1551 real(RKG) , intent(in) :: kappa, sigma
1552 end subroutine
1553#endif
1554
1555#if RK1_ENABLED
1556 PURE module subroutine setGammaRandRNGX_D1_RK1(rng, rand, kappa, sigma)
1557#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1558 !DEC$ ATTRIBUTES DLLEXPORT :: setGammaRandRNGX_D1_RK1
1559#endif
1560 use pm_kind, only: RKG => RK1
1561 type(xoshiro256ssw_type), intent(inout) :: rng
1562 real(RKG) , intent(out) :: rand(:)
1563 real(RKG) , intent(in) :: kappa, sigma
1564 end subroutine
1565#endif
1566
1567 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1568
1569 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1570 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1571 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1572
1573 end interface
1574
1575!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1576
1577end module pm_distGamma
Generate and return the Cumulative Distribution Function (CDF) of the Gamma distribution for an input...
Generate and return the natural logarithm of the normalization factor of the Probability Density Func...
Generate and return the natural logarithm of the Probability Density Function (PDF) of the Gamma dist...
Return the Cumulative Distribution Function (CDF) of the Gamma distribution for an input x within the...
Return the natural logarithm of the Probability Density Function (PDF) of the Gamma distribution for ...
Return a scalar or array of arbitrary rank of Gamma-distributed random values with the specified shap...
This module contains classes and procedures for computing various statistical quantities related to t...
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 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 is the derived type for signifying distributions that are of type Gamma as defined in the descri...
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...