ParaMonte Fortran 2.0.0
Parallel Monte Carlo and Machine Learning Library
See the latest version documentation.
pm_distLogUnif.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
111
112!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
113
115
116 use pm_kind, only: SK
117
118 implicit none
119
120 character(*, SK), parameter :: MODULE_NAME = "@pm_distLogUnif"
121
122!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
123
158 end type
159
160!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
161
233
234 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
235
236#if RK5_ENABLED
237 PURE elemental module function getLogUnifPDFNF_RK5(logMinX, logMaxX) result(pdfnf)
238#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
239 !DEC$ ATTRIBUTES DLLEXPORT :: getLogUnifPDFNF_RK5
240#endif
241 use pm_kind, only: RKG => RK5
242 real(RKG) , intent(in) :: logMinX, logMaxX
243 real(RKG) :: pdfnf
244 end function
245#endif
246
247#if RK4_ENABLED
248 PURE elemental module function getLogUnifPDFNF_RK4(logMinX, logMaxX) result(pdfnf)
249#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
250 !DEC$ ATTRIBUTES DLLEXPORT :: getLogUnifPDFNF_RK4
251#endif
252 use pm_kind, only: RKG => RK4
253 real(RKG) , intent(in) :: logMinX, logMaxX
254 real(RKG) :: pdfnf
255 end function
256#endif
257
258#if RK3_ENABLED
259 PURE elemental module function getLogUnifPDFNF_RK3(logMinX, logMaxX) result(pdfnf)
260#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
261 !DEC$ ATTRIBUTES DLLEXPORT :: getLogUnifPDFNF_RK3
262#endif
263 use pm_kind, only: RKG => RK3
264 real(RKG) , intent(in) :: logMinX, logMaxX
265 real(RKG) :: pdfnf
266 end function
267#endif
268
269#if RK2_ENABLED
270 PURE elemental module function getLogUnifPDFNF_RK2(logMinX, logMaxX) result(pdfnf)
271#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
272 !DEC$ ATTRIBUTES DLLEXPORT :: getLogUnifPDFNF_RK2
273#endif
274 use pm_kind, only: RKG => RK2
275 real(RKG) , intent(in) :: logMinX, logMaxX
276 real(RKG) :: pdfnf
277 end function
278#endif
279
280#if RK1_ENABLED
281 PURE elemental module function getLogUnifPDFNF_RK1(logMinX, logMaxX) result(pdfnf)
282#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
283 !DEC$ ATTRIBUTES DLLEXPORT :: getLogUnifPDFNF_RK1
284#endif
285 use pm_kind, only: RKG => RK1
286 real(RKG) , intent(in) :: logMinX, logMaxX
287 real(RKG) :: pdfnf
288 end function
289#endif
290
291 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
292
293 end interface
294
295!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
296
358
359 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
360
361#if RK5_ENABLED
362 PURE elemental module function getLogUnifPDFMM_RK5(x, minx, maxx) result(pdf)
363#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
364 !DEC$ ATTRIBUTES DLLEXPORT :: getLogUnifPDFMM_RK5
365#endif
366 use pm_kind, only: RKG => RK5
367 real(RKG) , intent(in) :: x, minx, maxx
368 real(RKG) :: pdf
369 end function
370#endif
371
372#if RK4_ENABLED
373 PURE elemental module function getLogUnifPDFMM_RK4(x, minx, maxx) result(pdf)
374#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
375 !DEC$ ATTRIBUTES DLLEXPORT :: getLogUnifPDFMM_RK4
376#endif
377 use pm_kind, only: RKG => RK4
378 real(RKG) , intent(in) :: x, minx, maxx
379 real(RKG) :: pdf
380 end function
381#endif
382
383#if RK3_ENABLED
384 PURE elemental module function getLogUnifPDFMM_RK3(x, minx, maxx) result(pdf)
385#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
386 !DEC$ ATTRIBUTES DLLEXPORT :: getLogUnifPDFMM_RK3
387#endif
388 use pm_kind, only: RKG => RK3
389 real(RKG) , intent(in) :: x, minx, maxx
390 real(RKG) :: pdf
391 end function
392#endif
393
394#if RK2_ENABLED
395 PURE elemental module function getLogUnifPDFMM_RK2(x, minx, maxx) result(pdf)
396#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
397 !DEC$ ATTRIBUTES DLLEXPORT :: getLogUnifPDFMM_RK2
398#endif
399 use pm_kind, only: RKG => RK2
400 real(RKG) , intent(in) :: x, minx, maxx
401 real(RKG) :: pdf
402 end function
403#endif
404
405#if RK1_ENABLED
406 PURE elemental module function getLogUnifPDFMM_RK1(x, minx, maxx) result(pdf)
407#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
408 !DEC$ ATTRIBUTES DLLEXPORT :: getLogUnifPDFMM_RK1
409#endif
410 use pm_kind, only: RKG => RK1
411 real(RKG) , intent(in) :: x, minx, maxx
412 real(RKG) :: pdf
413 end function
414#endif
415
416 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
417
418 end interface
419
420!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
421
479
480 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
481
482#if RK5_ENABLED
483 PURE elemental module subroutine setLogUnifPDF_RK5(pdf, x, pdfnf)
484#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
485 !DEC$ ATTRIBUTES DLLEXPORT :: setLogUnifPDF_RK5
486#endif
487 use pm_kind, only: RKG => RK5
488 real(RKG) , intent(out) :: pdf
489 real(RKG) , intent(in) :: x, pdfnf
490 end subroutine
491#endif
492
493#if RK4_ENABLED
494 PURE elemental module subroutine setLogUnifPDF_RK4(pdf, x, pdfnf)
495#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
496 !DEC$ ATTRIBUTES DLLEXPORT :: setLogUnifPDF_RK4
497#endif
498 use pm_kind, only: RKG => RK4
499 real(RKG) , intent(out) :: pdf
500 real(RKG) , intent(in) :: x, pdfnf
501 end subroutine
502#endif
503
504#if RK3_ENABLED
505 PURE elemental module subroutine setLogUnifPDF_RK3(pdf, x, pdfnf)
506#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
507 !DEC$ ATTRIBUTES DLLEXPORT :: setLogUnifPDF_RK3
508#endif
509 use pm_kind, only: RKG => RK3
510 real(RKG) , intent(out) :: pdf
511 real(RKG) , intent(in) :: x, pdfnf
512 end subroutine
513#endif
514
515#if RK2_ENABLED
516 PURE elemental module subroutine setLogUnifPDF_RK2(pdf, x, pdfnf)
517#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
518 !DEC$ ATTRIBUTES DLLEXPORT :: setLogUnifPDF_RK2
519#endif
520 use pm_kind, only: RKG => RK2
521 real(RKG) , intent(out) :: pdf
522 real(RKG) , intent(in) :: x, pdfnf
523 end subroutine
524#endif
525
526#if RK1_ENABLED
527 PURE elemental module subroutine setLogUnifPDF_RK1(pdf, x, pdfnf)
528#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
529 !DEC$ ATTRIBUTES DLLEXPORT :: setLogUnifPDF_RK1
530#endif
531 use pm_kind, only: RKG => RK1
532 real(RKG) , intent(out) :: pdf
533 real(RKG) , intent(in) :: x, pdfnf
534 end subroutine
535#endif
536
537 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
538
539 end interface
540
541!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
542
603
604 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
605
606#if RK5_ENABLED
607 PURE elemental module function getLogUnifCDFLL_RK5(logx, logMinX, logMaxX) result(cdf)
608#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
609 !DEC$ ATTRIBUTES DLLEXPORT :: getLogUnifCDFLL_RK5
610#endif
611 use pm_kind, only: RKG => RK5
612 real(RKG) , intent(in) :: logx, logMinX, logMaxX
613 real(RKG) :: cdf
614 end function
615#endif
616
617#if RK4_ENABLED
618 PURE elemental module function getLogUnifCDFLL_RK4(logx, logMinX, logMaxX) result(cdf)
619#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
620 !DEC$ ATTRIBUTES DLLEXPORT :: getLogUnifCDFLL_RK4
621#endif
622 use pm_kind, only: RKG => RK4
623 real(RKG) , intent(in) :: logx, logMinX, logMaxX
624 real(RKG) :: cdf
625 end function
626#endif
627
628#if RK3_ENABLED
629 PURE elemental module function getLogUnifCDFLL_RK3(logx, logMinX, logMaxX) result(cdf)
630#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
631 !DEC$ ATTRIBUTES DLLEXPORT :: getLogUnifCDFLL_RK3
632#endif
633 use pm_kind, only: RKG => RK3
634 real(RKG) , intent(in) :: logx, logMinX, logMaxX
635 real(RKG) :: cdf
636 end function
637#endif
638
639#if RK2_ENABLED
640 PURE elemental module function getLogUnifCDFLL_RK2(logx, logMinX, logMaxX) result(cdf)
641#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
642 !DEC$ ATTRIBUTES DLLEXPORT :: getLogUnifCDFLL_RK2
643#endif
644 use pm_kind, only: RKG => RK2
645 real(RKG) , intent(in) :: logx, logMinX, logMaxX
646 real(RKG) :: cdf
647 end function
648#endif
649
650#if RK1_ENABLED
651 PURE elemental module function getLogUnifCDFLL_RK1(logx, logMinX, logMaxX) result(cdf)
652#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
653 !DEC$ ATTRIBUTES DLLEXPORT :: getLogUnifCDFLL_RK1
654#endif
655 use pm_kind, only: RKG => RK1
656 real(RKG) , intent(in) :: logx, logMinX, logMaxX
657 real(RKG) :: cdf
658 end function
659#endif
660
661 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
662
663 end interface
664
665!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
666
730
731 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
732
733#if RK5_ENABLED
734 PURE elemental module subroutine setLogUnifCDFLL_RK5(cdf, logx, logMinX, pdfnf)
735#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
736 !DEC$ ATTRIBUTES DLLEXPORT :: setLogUnifCDFLL_RK5
737#endif
738 use pm_kind, only: RKG => RK5
739 real(RKG) , intent(out) :: cdf
740 real(RKG) , intent(in) :: logx, logMinX, pdfnf
741 end subroutine
742#endif
743
744#if RK4_ENABLED
745 PURE elemental module subroutine setLogUnifCDFLL_RK4(cdf, logx, logMinX, pdfnf)
746#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
747 !DEC$ ATTRIBUTES DLLEXPORT :: setLogUnifCDFLL_RK4
748#endif
749 use pm_kind, only: RKG => RK4
750 real(RKG) , intent(out) :: cdf
751 real(RKG) , intent(in) :: logx, logMinX, pdfnf
752 end subroutine
753#endif
754
755#if RK3_ENABLED
756 PURE elemental module subroutine setLogUnifCDFLL_RK3(cdf, logx, logMinX, pdfnf)
757#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
758 !DEC$ ATTRIBUTES DLLEXPORT :: setLogUnifCDFLL_RK3
759#endif
760 use pm_kind, only: RKG => RK3
761 real(RKG) , intent(out) :: cdf
762 real(RKG) , intent(in) :: logx, logMinX, pdfnf
763 end subroutine
764#endif
765
766#if RK2_ENABLED
767 PURE elemental module subroutine setLogUnifCDFLL_RK2(cdf, logx, logMinX, pdfnf)
768#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
769 !DEC$ ATTRIBUTES DLLEXPORT :: setLogUnifCDFLL_RK2
770#endif
771 use pm_kind, only: RKG => RK2
772 real(RKG) , intent(out) :: cdf
773 real(RKG) , intent(in) :: logx, logMinX, pdfnf
774 end subroutine
775#endif
776
777#if RK1_ENABLED
778 PURE elemental module subroutine setLogUnifCDFLL_RK1(cdf, logx, logMinX, pdfnf)
779#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
780 !DEC$ ATTRIBUTES DLLEXPORT :: setLogUnifCDFLL_RK1
781#endif
782 use pm_kind, only: RKG => RK1
783 real(RKG) , intent(out) :: cdf
784 real(RKG) , intent(in) :: logx, logMinX, pdfnf
785 end subroutine
786#endif
787
788 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
789
790 end interface
791
792!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
793
858
859 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
860
861#if RK5_ENABLED
862 PURE elemental module function getLogUnifLogQuanLL_RK5(cdf, logMinX, logMaxX) result(logx)
863#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
864 !DEC$ ATTRIBUTES DLLEXPORT :: getLogUnifLogQuanLL_RK5
865#endif
866 use pm_kind, only: RKG => RK5
867 real(RKG) , intent(in) :: cdf, logMinX, logMaxX
868 real(RKG) :: logx
869 end function
870#endif
871
872#if RK4_ENABLED
873 PURE elemental module function getLogUnifLogQuanLL_RK4(cdf, logMinX, logMaxX) result(logx)
874#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
875 !DEC$ ATTRIBUTES DLLEXPORT :: getLogUnifLogQuanLL_RK4
876#endif
877 use pm_kind, only: RKG => RK4
878 real(RKG) , intent(in) :: cdf, logMinX, logMaxX
879 real(RKG) :: logx
880 end function
881#endif
882
883#if RK3_ENABLED
884 PURE elemental module function getLogUnifLogQuanLL_RK3(cdf, logMinX, logMaxX) result(logx)
885#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
886 !DEC$ ATTRIBUTES DLLEXPORT :: getLogUnifLogQuanLL_RK3
887#endif
888 use pm_kind, only: RKG => RK3
889 real(RKG) , intent(in) :: cdf, logMinX, logMaxX
890 real(RKG) :: logx
891 end function
892#endif
893
894#if RK2_ENABLED
895 PURE elemental module function getLogUnifLogQuanLL_RK2(cdf, logMinX, logMaxX) result(logx)
896#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
897 !DEC$ ATTRIBUTES DLLEXPORT :: getLogUnifLogQuanLL_RK2
898#endif
899 use pm_kind, only: RKG => RK2
900 real(RKG) , intent(in) :: cdf, logMinX, logMaxX
901 real(RKG) :: logx
902 end function
903#endif
904
905#if RK1_ENABLED
906 PURE elemental module function getLogUnifLogQuanLL_RK1(cdf, logMinX, logMaxX) result(logx)
907#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
908 !DEC$ ATTRIBUTES DLLEXPORT :: getLogUnifLogQuanLL_RK1
909#endif
910 use pm_kind, only: RKG => RK1
911 real(RKG) , intent(in) :: cdf, logMinX, logMaxX
912 real(RKG) :: logx
913 end function
914#endif
915
916 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
917
918 end interface
919
920!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
921
983
984 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
985
986#if RK5_ENABLED
987 PURE elemental module subroutine setLogUnifLogQuanLLLP_RK5(logx, cdf, logMinX, pdfnf)
988#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
989 !DEC$ ATTRIBUTES DLLEXPORT :: setLogUnifLogQuanLLLP_RK5
990#endif
991 use pm_kind, only: RKG => RK5
992 real(RKG) , intent(out) :: logx
993 real(RKG) , intent(in) :: cdf, logMinX, pdfnf
994 end subroutine
995#endif
996
997#if RK4_ENABLED
998 PURE elemental module subroutine setLogUnifLogQuanLLLP_RK4(logx, cdf, logMinX, pdfnf)
999#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1000 !DEC$ ATTRIBUTES DLLEXPORT :: setLogUnifLogQuanLLLP_RK4
1001#endif
1002 use pm_kind, only: RKG => RK4
1003 real(RKG) , intent(out) :: logx
1004 real(RKG) , intent(in) :: cdf, logMinX, pdfnf
1005 end subroutine
1006#endif
1007
1008#if RK3_ENABLED
1009 PURE elemental module subroutine setLogUnifLogQuanLLLP_RK3(logx, cdf, logMinX, pdfnf)
1010#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1011 !DEC$ ATTRIBUTES DLLEXPORT :: setLogUnifLogQuanLLLP_RK3
1012#endif
1013 use pm_kind, only: RKG => RK3
1014 real(RKG) , intent(out) :: logx
1015 real(RKG) , intent(in) :: cdf, logMinX, pdfnf
1016 end subroutine
1017#endif
1018
1019#if RK2_ENABLED
1020 PURE elemental module subroutine setLogUnifLogQuanLLLP_RK2(logx, cdf, logMinX, pdfnf)
1021#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1022 !DEC$ ATTRIBUTES DLLEXPORT :: setLogUnifLogQuanLLLP_RK2
1023#endif
1024 use pm_kind, only: RKG => RK2
1025 real(RKG) , intent(out) :: logx
1026 real(RKG) , intent(in) :: cdf, logMinX, pdfnf
1027 end subroutine
1028#endif
1029
1030#if RK1_ENABLED
1031 PURE elemental module subroutine setLogUnifLogQuanLLLP_RK1(logx, cdf, logMinX, pdfnf)
1032#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1033 !DEC$ ATTRIBUTES DLLEXPORT :: setLogUnifLogQuanLLLP_RK1
1034#endif
1035 use pm_kind, only: RKG => RK1
1036 real(RKG) , intent(out) :: logx
1037 real(RKG) , intent(in) :: cdf, logMinX, pdfnf
1038 end subroutine
1039#endif
1040
1041 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1042
1043 end interface
1044
1045!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1046
1109
1110 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1111
1112#if IK5_ENABLED
1113 impure elemental module function getLogUnifRandMM_IK5(minx, maxx) result(rand)
1114#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1115 !DEC$ ATTRIBUTES DLLEXPORT :: getLogUnifRandMM_IK5
1116#endif
1117 use pm_kind, only: IKG => IK5
1118 integer(IKG), intent(in) :: minx, maxx
1119 integer(IKG) :: rand
1120 end function
1121#endif
1122
1123#if IK4_ENABLED
1124 impure elemental module function getLogUnifRandMM_IK4(minx, maxx) result(rand)
1125#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1126 !DEC$ ATTRIBUTES DLLEXPORT :: getLogUnifRandMM_IK4
1127#endif
1128 use pm_kind, only: IKG => IK4
1129 integer(IKG), intent(in) :: minx, maxx
1130 integer(IKG) :: rand
1131 end function
1132#endif
1133
1134#if IK3_ENABLED
1135 impure elemental module function getLogUnifRandMM_IK3(minx, maxx) result(rand)
1136#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1137 !DEC$ ATTRIBUTES DLLEXPORT :: getLogUnifRandMM_IK3
1138#endif
1139 use pm_kind, only: IKG => IK3
1140 integer(IKG), intent(in) :: minx, maxx
1141 integer(IKG) :: rand
1142 end function
1143#endif
1144
1145#if IK2_ENABLED
1146 impure elemental module function getLogUnifRandMM_IK2(minx, maxx) result(rand)
1147#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1148 !DEC$ ATTRIBUTES DLLEXPORT :: getLogUnifRandMM_IK2
1149#endif
1150 use pm_kind, only: IKG => IK2
1151 integer(IKG), intent(in) :: minx, maxx
1152 integer(IKG) :: rand
1153 end function
1154#endif
1155
1156#if IK1_ENABLED
1157 impure elemental module function getLogUnifRandMM_IK1(minx, maxx) result(rand)
1158#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1159 !DEC$ ATTRIBUTES DLLEXPORT :: getLogUnifRandMM_IK1
1160#endif
1161 use pm_kind, only: IKG => IK1
1162 integer(IKG), intent(in) :: minx, maxx
1163 integer(IKG) :: rand
1164 end function
1165#endif
1166
1167 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1168
1169#if RK5_ENABLED
1170 impure elemental module function getLogUnifRandMM_RK5(minx, maxx) result(rand)
1171#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1172 !DEC$ ATTRIBUTES DLLEXPORT :: getLogUnifRandMM_RK5
1173#endif
1174 use pm_kind, only: RKG => RK5
1175 real(RKG) , intent(in) :: minx, maxx
1176 real(RKG) :: rand
1177 end function
1178#endif
1179
1180#if RK4_ENABLED
1181 impure elemental module function getLogUnifRandMM_RK4(minx, maxx) result(rand)
1182#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1183 !DEC$ ATTRIBUTES DLLEXPORT :: getLogUnifRandMM_RK4
1184#endif
1185 use pm_kind, only: RKG => RK4
1186 real(RKG) , intent(in) :: minx, maxx
1187 real(RKG) :: rand
1188 end function
1189#endif
1190
1191#if RK3_ENABLED
1192 impure elemental module function getLogUnifRandMM_RK3(minx, maxx) result(rand)
1193#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1194 !DEC$ ATTRIBUTES DLLEXPORT :: getLogUnifRandMM_RK3
1195#endif
1196 use pm_kind, only: RKG => RK3
1197 real(RKG) , intent(in) :: minx, maxx
1198 real(RKG) :: rand
1199 end function
1200#endif
1201
1202#if RK2_ENABLED
1203 impure elemental module function getLogUnifRandMM_RK2(minx, maxx) result(rand)
1204#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1205 !DEC$ ATTRIBUTES DLLEXPORT :: getLogUnifRandMM_RK2
1206#endif
1207 use pm_kind, only: RKG => RK2
1208 real(RKG) , intent(in) :: minx, maxx
1209 real(RKG) :: rand
1210 end function
1211#endif
1212
1213#if RK1_ENABLED
1214 impure elemental module function getLogUnifRandMM_RK1(minx, maxx) result(rand)
1215#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1216 !DEC$ ATTRIBUTES DLLEXPORT :: getLogUnifRandMM_RK1
1217#endif
1218 use pm_kind, only: RKG => RK1
1219 real(RKG) , intent(in) :: minx, maxx
1220 real(RKG) :: rand
1221 end function
1222#endif
1223
1224 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1225
1226 end interface
1227
1228!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1229
1292
1293 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1294
1295#if RK5_ENABLED
1296 PURE elemental module subroutine setLogUnifLogRandLLLP_RK5(logRand, urand, logMinX, pdfnf)
1297#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1298 !DEC$ ATTRIBUTES DLLEXPORT :: setLogUnifLogRandLLLP_RK5
1299#endif
1300 use pm_kind, only: RKG => RK5
1301 real(RKG) , intent(out) :: logRand
1302 real(RKG) , intent(in) :: urand, logMinX, pdfnf
1303 end subroutine
1304#endif
1305
1306#if RK4_ENABLED
1307 PURE elemental module subroutine setLogUnifLogRandLLLP_RK4(logRand, urand, logMinX, pdfnf)
1308#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1309 !DEC$ ATTRIBUTES DLLEXPORT :: setLogUnifLogRandLLLP_RK4
1310#endif
1311 use pm_kind, only: RKG => RK4
1312 real(RKG) , intent(out) :: logRand
1313 real(RKG) , intent(in) :: urand, logMinX, pdfnf
1314 end subroutine
1315#endif
1316
1317#if RK3_ENABLED
1318 PURE elemental module subroutine setLogUnifLogRandLLLP_RK3(logRand, urand, logMinX, pdfnf)
1319#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1320 !DEC$ ATTRIBUTES DLLEXPORT :: setLogUnifLogRandLLLP_RK3
1321#endif
1322 use pm_kind, only: RKG => RK3
1323 real(RKG) , intent(out) :: logRand
1324 real(RKG) , intent(in) :: urand, logMinX, pdfnf
1325 end subroutine
1326#endif
1327
1328#if RK2_ENABLED
1329 PURE elemental module subroutine setLogUnifLogRandLLLP_RK2(logRand, urand, logMinX, pdfnf)
1330#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1331 !DEC$ ATTRIBUTES DLLEXPORT :: setLogUnifLogRandLLLP_RK2
1332#endif
1333 use pm_kind, only: RKG => RK2
1334 real(RKG) , intent(out) :: logRand
1335 real(RKG) , intent(in) :: urand, logMinX, pdfnf
1336 end subroutine
1337#endif
1338
1339#if RK1_ENABLED
1340 PURE elemental module subroutine setLogUnifLogRandLLLP_RK1(logRand, urand, logMinX, pdfnf)
1341#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1342 !DEC$ ATTRIBUTES DLLEXPORT :: setLogUnifLogRandLLLP_RK1
1343#endif
1344 use pm_kind, only: RKG => RK1
1345 real(RKG) , intent(out) :: logRand
1346 real(RKG) , intent(in) :: urand, logMinX, pdfnf
1347 end subroutine
1348#endif
1349
1350 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1351
1352 end interface
1353
1354!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1355
1356end module pm_distLogUnif
Generate and return the Cumulative Distribution Function (CDF) of the LogUniform distribution for an ...
Generate and return a scalar (or array of arbitrary rank) of the natural logarithm(s) of quantile cor...
Generate and return the normalization factor of the PDF of the LogUniform distribution for an input p...
Generate and return the Probability Density Function (PDF) of the LogUniform distribution for an inpu...
Generate and return a scalar (or array of arbitrary rank) of random value(s) from the LogUniform dist...
Return the Cumulative Distribution Function (CDF) of the LogUniform distribution for an input log(x) ...
Return a scalar (or array of arbitrary rank) of the natural logarithm(s) of quantile corresponding to...
Return a scalar (or array of arbitrary rank) of the natural logarithm(s) of random value(s) from the ...
Return the Probability Density Function (PDF) of the LogUniform distribution for an input x within th...
This module contains classes and procedures for computing various statistical quantities related to t...
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 IK3
Definition: pm_kind.F90:368
integer, parameter RK5
Definition: pm_kind.F90:478
integer, parameter RK4
Definition: pm_kind.F90:489
integer, parameter IK1
Definition: pm_kind.F90:382
integer, parameter RK2
Definition: pm_kind.F90:511
integer, parameter RK3
Definition: pm_kind.F90:500
integer, parameter IK2
Definition: pm_kind.F90:375
integer, parameter IK4
Definition: pm_kind.F90:361
integer, parameter IK5
Definition: pm_kind.F90:354
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 LogUniform as defined in the d...