ParaMonte Fortran 2.0.0
Parallel Monte Carlo and Machine Learning Library
See the latest version documentation.
pm_distExp.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
109
110!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
111
113
114 use pm_kind, only: SK
115
116 implicit none
117
118 character(*, SK), parameter :: MODULE_NAME = "@pm_distExp"
119
120!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
121
156 end type
157
158!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
159
221 interface getExpLogPDF
222
223 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
224
225#if RK5_ENABLED
226 PURE elemental module function getExpLogPDFXMI_RK5(x, mu, invSigma) result(logPDF)
227#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
228 !DEC$ ATTRIBUTES DLLEXPORT :: getExpLogPDFXMI_RK5
229#endif
230 use pm_kind, only: RKG => RK5
231 real(RKG) , intent(in) :: x
232 real(RKG) , intent(in) , optional :: mu, invSigma
233 real(RKG) :: logPDF
234 end function
235#endif
236
237#if RK4_ENABLED
238 PURE elemental module function getExpLogPDFXMI_RK4(x, mu, invSigma) result(logPDF)
239#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
240 !DEC$ ATTRIBUTES DLLEXPORT :: getExpLogPDFXMI_RK4
241#endif
242 use pm_kind, only: RKG => RK4
243 real(RKG) , intent(in) :: x
244 real(RKG) , intent(in) , optional :: mu, invSigma
245 real(RKG) :: logPDF
246 end function
247#endif
248
249#if RK3_ENABLED
250 PURE elemental module function getExpLogPDFXMI_RK3(x, mu, invSigma) result(logPDF)
251#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
252 !DEC$ ATTRIBUTES DLLEXPORT :: getExpLogPDFXMI_RK3
253#endif
254 use pm_kind, only: RKG => RK3
255 real(RKG) , intent(in) :: x
256 real(RKG) , intent(in) , optional :: mu, invSigma
257 real(RKG) :: logPDF
258 end function
259#endif
260
261#if RK2_ENABLED
262 PURE elemental module function getExpLogPDFXMI_RK2(x, mu, invSigma) result(logPDF)
263#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
264 !DEC$ ATTRIBUTES DLLEXPORT :: getExpLogPDFXMI_RK2
265#endif
266 use pm_kind, only: RKG => RK2
267 real(RKG) , intent(in) :: x
268 real(RKG) , intent(in) , optional :: mu, invSigma
269 real(RKG) :: logPDF
270 end function
271#endif
272
273#if RK1_ENABLED
274 PURE elemental module function getExpLogPDFXMI_RK1(x, mu, invSigma) result(logPDF)
275#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
276 !DEC$ ATTRIBUTES DLLEXPORT :: getExpLogPDFXMI_RK1
277#endif
278 use pm_kind, only: RKG => RK1
279 real(RKG) , intent(in) :: x
280 real(RKG) , intent(in) , optional :: mu, invSigma
281 real(RKG) :: logPDF
282 end function
283#endif
284
285 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
286
287 end interface
288
289!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
290
358 interface setExpLogPDF
359
360 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
361
362#if RK5_ENABLED
363 PURE elemental module subroutine setExpLogPDFXDD_RK5(logPDF, x)
364#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
365 !DEC$ ATTRIBUTES DLLEXPORT :: setExpLogPDFXDD_RK5
366#endif
367 use pm_kind, only: RKG => RK5
368 real(RKG) , intent(out) :: logPDF
369 real(RKG) , intent(in) :: x
370 end subroutine
371#endif
372
373#if RK4_ENABLED
374 PURE elemental module subroutine setExpLogPDFXDD_RK4(logPDF, x)
375#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
376 !DEC$ ATTRIBUTES DLLEXPORT :: setExpLogPDFXDD_RK4
377#endif
378 use pm_kind, only: RKG => RK4
379 real(RKG) , intent(out) :: logPDF
380 real(RKG) , intent(in) :: x
381 end subroutine
382#endif
383
384#if RK3_ENABLED
385 PURE elemental module subroutine setExpLogPDFXDD_RK3(logPDF, x)
386#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
387 !DEC$ ATTRIBUTES DLLEXPORT :: setExpLogPDFXDD_RK3
388#endif
389 use pm_kind, only: RKG => RK3
390 real(RKG) , intent(out) :: logPDF
391 real(RKG) , intent(in) :: x
392 end subroutine
393#endif
394
395#if RK2_ENABLED
396 PURE elemental module subroutine setExpLogPDFXDD_RK2(logPDF, x)
397#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
398 !DEC$ ATTRIBUTES DLLEXPORT :: setExpLogPDFXDD_RK2
399#endif
400 use pm_kind, only: RKG => RK2
401 real(RKG) , intent(out) :: logPDF
402 real(RKG) , intent(in) :: x
403 end subroutine
404#endif
405
406#if RK1_ENABLED
407 PURE elemental module subroutine setExpLogPDFXDD_RK1(logPDF, x)
408#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
409 !DEC$ ATTRIBUTES DLLEXPORT :: setExpLogPDFXDD_RK1
410#endif
411 use pm_kind, only: RKG => RK1
412 real(RKG) , intent(out) :: logPDF
413 real(RKG) , intent(in) :: x
414 end subroutine
415#endif
416
417 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
418
419#if RK5_ENABLED
420 PURE elemental module subroutine setExpLogPDFXMD_RK5(logPDF, x, mu)
421#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
422 !DEC$ ATTRIBUTES DLLEXPORT :: setExpLogPDFXMD_RK5
423#endif
424 use pm_kind, only: RKG => RK5
425 real(RKG) , intent(out) :: logPDF
426 real(RKG) , intent(in) :: x, mu
427 end subroutine
428#endif
429
430#if RK4_ENABLED
431 PURE elemental module subroutine setExpLogPDFXMD_RK4(logPDF, x, mu)
432#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
433 !DEC$ ATTRIBUTES DLLEXPORT :: setExpLogPDFXMD_RK4
434#endif
435 use pm_kind, only: RKG => RK4
436 real(RKG) , intent(out) :: logPDF
437 real(RKG) , intent(in) :: x, mu
438 end subroutine
439#endif
440
441#if RK3_ENABLED
442 PURE elemental module subroutine setExpLogPDFXMD_RK3(logPDF, x, mu)
443#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
444 !DEC$ ATTRIBUTES DLLEXPORT :: setExpLogPDFXMD_RK3
445#endif
446 use pm_kind, only: RKG => RK3
447 real(RKG) , intent(out) :: logPDF
448 real(RKG) , intent(in) :: x, mu
449 end subroutine
450#endif
451
452#if RK2_ENABLED
453 PURE elemental module subroutine setExpLogPDFXMD_RK2(logPDF, x, mu)
454#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
455 !DEC$ ATTRIBUTES DLLEXPORT :: setExpLogPDFXMD_RK2
456#endif
457 use pm_kind, only: RKG => RK2
458 real(RKG) , intent(out) :: logPDF
459 real(RKG) , intent(in) :: x, mu
460 end subroutine
461#endif
462
463#if RK1_ENABLED
464 PURE elemental module subroutine setExpLogPDFXMD_RK1(logPDF, x, mu)
465#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
466 !DEC$ ATTRIBUTES DLLEXPORT :: setExpLogPDFXMD_RK1
467#endif
468 use pm_kind, only: RKG => RK1
469 real(RKG) , intent(out) :: logPDF
470 real(RKG) , intent(in) :: x, mu
471 end subroutine
472#endif
473
474 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
475
476#if RK5_ENABLED
477 PURE elemental module subroutine setExpLogPDFXDI_RK5(logPDF, x, invSigma, logInvSigma)
478#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
479 !DEC$ ATTRIBUTES DLLEXPORT :: setExpLogPDFXDI_RK5
480#endif
481 use pm_kind, only: RKG => RK5
482 real(RKG) , intent(out) :: logPDF
483 real(RKG) , intent(in) :: x, invSigma, logInvSigma
484 end subroutine
485#endif
486
487#if RK4_ENABLED
488 PURE elemental module subroutine setExpLogPDFXDI_RK4(logPDF, x, invSigma, logInvSigma)
489#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
490 !DEC$ ATTRIBUTES DLLEXPORT :: setExpLogPDFXDI_RK4
491#endif
492 use pm_kind, only: RKG => RK4
493 real(RKG) , intent(out) :: logPDF
494 real(RKG) , intent(in) :: x, invSigma, logInvSigma
495 end subroutine
496#endif
497
498#if RK3_ENABLED
499 PURE elemental module subroutine setExpLogPDFXDI_RK3(logPDF, x, invSigma, logInvSigma)
500#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
501 !DEC$ ATTRIBUTES DLLEXPORT :: setExpLogPDFXDI_RK3
502#endif
503 use pm_kind, only: RKG => RK3
504 real(RKG) , intent(out) :: logPDF
505 real(RKG) , intent(in) :: x, invSigma, logInvSigma
506 end subroutine
507#endif
508
509#if RK2_ENABLED
510 PURE elemental module subroutine setExpLogPDFXDI_RK2(logPDF, x, invSigma, logInvSigma)
511#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
512 !DEC$ ATTRIBUTES DLLEXPORT :: setExpLogPDFXDI_RK2
513#endif
514 use pm_kind, only: RKG => RK2
515 real(RKG) , intent(out) :: logPDF
516 real(RKG) , intent(in) :: x, invSigma, logInvSigma
517 end subroutine
518#endif
519
520#if RK1_ENABLED
521 PURE elemental module subroutine setExpLogPDFXDI_RK1(logPDF, x, invSigma, logInvSigma)
522#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
523 !DEC$ ATTRIBUTES DLLEXPORT :: setExpLogPDFXDI_RK1
524#endif
525 use pm_kind, only: RKG => RK1
526 real(RKG) , intent(out) :: logPDF
527 real(RKG) , intent(in) :: x, invSigma, logInvSigma
528 end subroutine
529#endif
530
531 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
532
533#if RK5_ENABLED
534 PURE elemental module subroutine setExpLogPDFXMI_RK5(logPDF, x, mu, invSigma, logInvSigma)
535#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
536 !DEC$ ATTRIBUTES DLLEXPORT :: setExpLogPDFXMI_RK5
537#endif
538 use pm_kind, only: RKG => RK5
539 real(RKG) , intent(out) :: logPDF
540 real(RKG) , intent(in) :: x, mu, invSigma, logInvSigma
541 end subroutine
542#endif
543
544#if RK4_ENABLED
545 PURE elemental module subroutine setExpLogPDFXMI_RK4(logPDF, x, mu, invSigma, logInvSigma)
546#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
547 !DEC$ ATTRIBUTES DLLEXPORT :: setExpLogPDFXMI_RK4
548#endif
549 use pm_kind, only: RKG => RK4
550 real(RKG) , intent(out) :: logPDF
551 real(RKG) , intent(in) :: x, mu, invSigma, logInvSigma
552 end subroutine
553#endif
554
555#if RK3_ENABLED
556 PURE elemental module subroutine setExpLogPDFXMI_RK3(logPDF, x, mu, invSigma, logInvSigma)
557#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
558 !DEC$ ATTRIBUTES DLLEXPORT :: setExpLogPDFXMI_RK3
559#endif
560 use pm_kind, only: RKG => RK3
561 real(RKG) , intent(out) :: logPDF
562 real(RKG) , intent(in) :: x, mu, invSigma, logInvSigma
563 end subroutine
564#endif
565
566#if RK2_ENABLED
567 PURE elemental module subroutine setExpLogPDFXMI_RK2(logPDF, x, mu, invSigma, logInvSigma)
568#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
569 !DEC$ ATTRIBUTES DLLEXPORT :: setExpLogPDFXMI_RK2
570#endif
571 use pm_kind, only: RKG => RK2
572 real(RKG) , intent(out) :: logPDF
573 real(RKG) , intent(in) :: x, mu, invSigma, logInvSigma
574 end subroutine
575#endif
576
577#if RK1_ENABLED
578 PURE elemental module subroutine setExpLogPDFXMI_RK1(logPDF, x, mu, invSigma, logInvSigma)
579#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
580 !DEC$ ATTRIBUTES DLLEXPORT :: setExpLogPDFXMI_RK1
581#endif
582 use pm_kind, only: RKG => RK1
583 real(RKG) , intent(out) :: logPDF
584 real(RKG) , intent(in) :: x, mu, invSigma, logInvSigma
585 end subroutine
586#endif
587
588 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
589
590 end interface
591
592!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
593
655 interface getExpCDF
656
657 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
658
659#if RK5_ENABLED
660 PURE elemental module function getExpCDFXMI_RK5(x, mu, invSigma) result(cdf)
661#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
662 !DEC$ ATTRIBUTES DLLEXPORT :: getExpCDFXMI_RK5
663#endif
664 use pm_kind, only: RKG => RK5
665 real(RKG) , intent(in) :: x
666 real(RKG) , intent(in) , optional :: mu, invSigma
667 real(RKG) :: cdf
668 end function
669#endif
670
671#if RK4_ENABLED
672 PURE elemental module function getExpCDFXMI_RK4(x, mu, invSigma) result(cdf)
673#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
674 !DEC$ ATTRIBUTES DLLEXPORT :: getExpCDFXMI_RK4
675#endif
676 use pm_kind, only: RKG => RK4
677 real(RKG) , intent(in) :: x
678 real(RKG) , intent(in) , optional :: mu, invSigma
679 real(RKG) :: cdf
680 end function
681#endif
682
683#if RK3_ENABLED
684 PURE elemental module function getExpCDFXMI_RK3(x, mu, invSigma) result(cdf)
685#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
686 !DEC$ ATTRIBUTES DLLEXPORT :: getExpCDFXMI_RK3
687#endif
688 use pm_kind, only: RKG => RK3
689 real(RKG) , intent(in) :: x
690 real(RKG) , intent(in) , optional :: mu, invSigma
691 real(RKG) :: cdf
692 end function
693#endif
694
695#if RK2_ENABLED
696 PURE elemental module function getExpCDFXMI_RK2(x, mu, invSigma) result(cdf)
697#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
698 !DEC$ ATTRIBUTES DLLEXPORT :: getExpCDFXMI_RK2
699#endif
700 use pm_kind, only: RKG => RK2
701 real(RKG) , intent(in) :: x
702 real(RKG) , intent(in) , optional :: mu, invSigma
703 real(RKG) :: cdf
704 end function
705#endif
706
707#if RK1_ENABLED
708 PURE elemental module function getExpCDFXMI_RK1(x, mu, invSigma) result(cdf)
709#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
710 !DEC$ ATTRIBUTES DLLEXPORT :: getExpCDFXMI_RK1
711#endif
712 use pm_kind, only: RKG => RK1
713 real(RKG) , intent(in) :: x
714 real(RKG) , intent(in) , optional :: mu, invSigma
715 real(RKG) :: cdf
716 end function
717#endif
718
719 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
720
721 end interface
722
723!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
724
786 interface setExpCDF
787
788 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
789
790#if RK5_ENABLED
791 PURE elemental module subroutine setExpCDFXDD_RK5(cdf, x)
792#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
793 !DEC$ ATTRIBUTES DLLEXPORT :: setExpCDFXDD_RK5
794#endif
795 use pm_kind, only: RKG => RK5
796 real(RKG) , intent(out) :: cdf
797 real(RKG) , intent(in) :: x
798 end subroutine
799#endif
800
801#if RK4_ENABLED
802 PURE elemental module subroutine setExpCDFXDD_RK4(cdf, x)
803#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
804 !DEC$ ATTRIBUTES DLLEXPORT :: setExpCDFXDD_RK4
805#endif
806 use pm_kind, only: RKG => RK4
807 real(RKG) , intent(out) :: cdf
808 real(RKG) , intent(in) :: x
809 end subroutine
810#endif
811
812#if RK3_ENABLED
813 PURE elemental module subroutine setExpCDFXDD_RK3(cdf, x)
814#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
815 !DEC$ ATTRIBUTES DLLEXPORT :: setExpCDFXDD_RK3
816#endif
817 use pm_kind, only: RKG => RK3
818 real(RKG) , intent(out) :: cdf
819 real(RKG) , intent(in) :: x
820 end subroutine
821#endif
822
823#if RK2_ENABLED
824 PURE elemental module subroutine setExpCDFXDD_RK2(cdf, x)
825#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
826 !DEC$ ATTRIBUTES DLLEXPORT :: setExpCDFXDD_RK2
827#endif
828 use pm_kind, only: RKG => RK2
829 real(RKG) , intent(out) :: cdf
830 real(RKG) , intent(in) :: x
831 end subroutine
832#endif
833
834#if RK1_ENABLED
835 PURE elemental module subroutine setExpCDFXDD_RK1(cdf, x)
836#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
837 !DEC$ ATTRIBUTES DLLEXPORT :: setExpCDFXDD_RK1
838#endif
839 use pm_kind, only: RKG => RK1
840 real(RKG) , intent(out) :: cdf
841 real(RKG) , intent(in) :: x
842 end subroutine
843#endif
844
845 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
846
847#if RK5_ENABLED
848 PURE elemental module subroutine setExpCDFXDI_RK5(cdf, x, invSigma)
849#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
850 !DEC$ ATTRIBUTES DLLEXPORT :: setExpCDFXDI_RK5
851#endif
852 use pm_kind, only: RKG => RK5
853 real(RKG) , intent(out) :: cdf
854 real(RKG) , intent(in) :: x, invSigma
855 end subroutine
856#endif
857
858#if RK4_ENABLED
859 PURE elemental module subroutine setExpCDFXDI_RK4(cdf, x, invSigma)
860#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
861 !DEC$ ATTRIBUTES DLLEXPORT :: setExpCDFXDI_RK4
862#endif
863 use pm_kind, only: RKG => RK4
864 real(RKG) , intent(out) :: cdf
865 real(RKG) , intent(in) :: x, invSigma
866 end subroutine
867#endif
868
869#if RK3_ENABLED
870 PURE elemental module subroutine setExpCDFXDI_RK3(cdf, x, invSigma)
871#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
872 !DEC$ ATTRIBUTES DLLEXPORT :: setExpCDFXDI_RK3
873#endif
874 use pm_kind, only: RKG => RK3
875 real(RKG) , intent(out) :: cdf
876 real(RKG) , intent(in) :: x, invSigma
877 end subroutine
878#endif
879
880#if RK2_ENABLED
881 PURE elemental module subroutine setExpCDFXDI_RK2(cdf, x, invSigma)
882#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
883 !DEC$ ATTRIBUTES DLLEXPORT :: setExpCDFXDI_RK2
884#endif
885 use pm_kind, only: RKG => RK2
886 real(RKG) , intent(out) :: cdf
887 real(RKG) , intent(in) :: x, invSigma
888 end subroutine
889#endif
890
891#if RK1_ENABLED
892 PURE elemental module subroutine setExpCDFXDI_RK1(cdf, x, invSigma)
893#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
894 !DEC$ ATTRIBUTES DLLEXPORT :: setExpCDFXDI_RK1
895#endif
896 use pm_kind, only: RKG => RK1
897 real(RKG) , intent(out) :: cdf
898 real(RKG) , intent(in) :: x, invSigma
899 end subroutine
900#endif
901
902 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
903
904#if RK5_ENABLED
905 PURE elemental module subroutine setExpCDFXMI_RK5(cdf, x, mu, invSigma)
906#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
907 !DEC$ ATTRIBUTES DLLEXPORT :: setExpCDFXMI_RK5
908#endif
909 use pm_kind, only: RKG => RK5
910 real(RKG) , intent(out) :: cdf
911 real(RKG) , intent(in) :: x, mu, invSigma
912 end subroutine
913#endif
914
915#if RK4_ENABLED
916 PURE elemental module subroutine setExpCDFXMI_RK4(cdf, x, mu, invSigma)
917#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
918 !DEC$ ATTRIBUTES DLLEXPORT :: setExpCDFXMI_RK4
919#endif
920 use pm_kind, only: RKG => RK4
921 real(RKG) , intent(out) :: cdf
922 real(RKG) , intent(in) :: x, mu, invSigma
923 end subroutine
924#endif
925
926#if RK3_ENABLED
927 PURE elemental module subroutine setExpCDFXMI_RK3(cdf, x, mu, invSigma)
928#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
929 !DEC$ ATTRIBUTES DLLEXPORT :: setExpCDFXMI_RK3
930#endif
931 use pm_kind, only: RKG => RK3
932 real(RKG) , intent(out) :: cdf
933 real(RKG) , intent(in) :: x, mu, invSigma
934 end subroutine
935#endif
936
937#if RK2_ENABLED
938 PURE elemental module subroutine setExpCDFXMI_RK2(cdf, x, mu, invSigma)
939#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
940 !DEC$ ATTRIBUTES DLLEXPORT :: setExpCDFXMI_RK2
941#endif
942 use pm_kind, only: RKG => RK2
943 real(RKG) , intent(out) :: cdf
944 real(RKG) , intent(in) :: x, mu, invSigma
945 end subroutine
946#endif
947
948#if RK1_ENABLED
949 PURE elemental module subroutine setExpCDFXMI_RK1(cdf, x, mu, invSigma)
950#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
951 !DEC$ ATTRIBUTES DLLEXPORT :: setExpCDFXMI_RK1
952#endif
953 use pm_kind, only: RKG => RK1
954 real(RKG) , intent(out) :: cdf
955 real(RKG) , intent(in) :: x, mu, invSigma
956 end subroutine
957#endif
958
959 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
960
961 end interface
962
963!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
964
1022 interface getExpRand
1023
1024 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1025
1026#if RK5_ENABLED
1027 impure elemental module function getExpRandSM_RK5(sigma, mu) result(rand)
1028#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1029 !DEC$ ATTRIBUTES DLLEXPORT :: getExpRandSM_RK5
1030#endif
1031 use pm_kind, only: RKG => RK5
1032 real(RKG) :: rand
1033 real(RKG) , intent(in) :: sigma
1034 real(RKG) , intent(in) , optional :: mu
1035 end function
1036#endif
1037
1038#if RK4_ENABLED
1039 impure elemental module function getExpRandSM_RK4(sigma, mu) result(rand)
1040#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1041 !DEC$ ATTRIBUTES DLLEXPORT :: getExpRandSM_RK4
1042#endif
1043 use pm_kind, only: RKG => RK4
1044 real(RKG) :: rand
1045 real(RKG) , intent(in) :: sigma
1046 real(RKG) , intent(in) , optional :: mu
1047 end function
1048#endif
1049
1050#if RK3_ENABLED
1051 impure elemental module function getExpRandSM_RK3(sigma, mu) result(rand)
1052#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1053 !DEC$ ATTRIBUTES DLLEXPORT :: getExpRandSM_RK3
1054#endif
1055 use pm_kind, only: RKG => RK3
1056 real(RKG) :: rand
1057 real(RKG) , intent(in) :: sigma
1058 real(RKG) , intent(in) , optional :: mu
1059 end function
1060#endif
1061
1062#if RK2_ENABLED
1063 impure elemental module function getExpRandSM_RK2(sigma, mu) result(rand)
1064#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1065 !DEC$ ATTRIBUTES DLLEXPORT :: getExpRandSM_RK2
1066#endif
1067 use pm_kind, only: RKG => RK2
1068 real(RKG) :: rand
1069 real(RKG) , intent(in) :: sigma
1070 real(RKG) , intent(in) , optional :: mu
1071 end function
1072#endif
1073
1074#if RK1_ENABLED
1075 impure elemental module function getExpRandSM_RK1(sigma, mu) result(rand)
1076#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1077 !DEC$ ATTRIBUTES DLLEXPORT :: getExpRandSM_RK1
1078#endif
1079 use pm_kind, only: RKG => RK1
1080 real(RKG) :: rand
1081 real(RKG) , intent(in) :: sigma
1082 real(RKG) , intent(in) , optional :: mu
1083 end function
1084#endif
1085
1086 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1087
1088 end interface
1089
1090!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1091
1177 interface setExpRand
1178
1179 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1180
1181#if RK5_ENABLED
1182 PURE elemental module subroutine setExpRandDD_RK5(rand)
1183#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1184 !DEC$ ATTRIBUTES DLLEXPORT :: setExpRandDD_RK5
1185#endif
1186 use pm_kind, only: RKG => RK5
1187 real(RKG) , intent(inout) :: rand
1188 end subroutine
1189#endif
1190
1191#if RK4_ENABLED
1192 PURE elemental module subroutine setExpRandDD_RK4(rand)
1193#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1194 !DEC$ ATTRIBUTES DLLEXPORT :: setExpRandDD_RK4
1195#endif
1196 use pm_kind, only: RKG => RK4
1197 real(RKG) , intent(inout) :: rand
1198 end subroutine
1199#endif
1200
1201#if RK3_ENABLED
1202 PURE elemental module subroutine setExpRandDD_RK3(rand)
1203#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1204 !DEC$ ATTRIBUTES DLLEXPORT :: setExpRandDD_RK3
1205#endif
1206 use pm_kind, only: RKG => RK3
1207 real(RKG) , intent(inout) :: rand
1208 end subroutine
1209#endif
1210
1211#if RK2_ENABLED
1212 PURE elemental module subroutine setExpRandDD_RK2(rand)
1213#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1214 !DEC$ ATTRIBUTES DLLEXPORT :: setExpRandDD_RK2
1215#endif
1216 use pm_kind, only: RKG => RK2
1217 real(RKG) , intent(inout) :: rand
1218 end subroutine
1219#endif
1220
1221#if RK1_ENABLED
1222 PURE elemental module subroutine setExpRandDD_RK1(rand)
1223#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1224 !DEC$ ATTRIBUTES DLLEXPORT :: setExpRandDD_RK1
1225#endif
1226 use pm_kind, only: RKG => RK1
1227 real(RKG) , intent(inout) :: rand
1228 end subroutine
1229#endif
1230
1231 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1232
1233#if RK5_ENABLED
1234 PURE elemental module subroutine setExpRandSD_RK5(rand, sigma)
1235#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1236 !DEC$ ATTRIBUTES DLLEXPORT :: setExpRandSD_RK5
1237#endif
1238 use pm_kind, only: RKG => RK5
1239 real(RKG) , intent(inout) :: rand
1240 real(RKG) , intent(in) :: sigma
1241 end subroutine
1242#endif
1243
1244#if RK4_ENABLED
1245 PURE elemental module subroutine setExpRandSD_RK4(rand, sigma)
1246#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1247 !DEC$ ATTRIBUTES DLLEXPORT :: setExpRandSD_RK4
1248#endif
1249 use pm_kind, only: RKG => RK4
1250 real(RKG) , intent(inout) :: rand
1251 real(RKG) , intent(in) :: sigma
1252 end subroutine
1253#endif
1254
1255#if RK3_ENABLED
1256 PURE elemental module subroutine setExpRandSD_RK3(rand, sigma)
1257#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1258 !DEC$ ATTRIBUTES DLLEXPORT :: setExpRandSD_RK3
1259#endif
1260 use pm_kind, only: RKG => RK3
1261 real(RKG) , intent(inout) :: rand
1262 real(RKG) , intent(in) :: sigma
1263 end subroutine
1264#endif
1265
1266#if RK2_ENABLED
1267 PURE elemental module subroutine setExpRandSD_RK2(rand, sigma)
1268#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1269 !DEC$ ATTRIBUTES DLLEXPORT :: setExpRandSD_RK2
1270#endif
1271 use pm_kind, only: RKG => RK2
1272 real(RKG) , intent(inout) :: rand
1273 real(RKG) , intent(in) :: sigma
1274 end subroutine
1275#endif
1276
1277#if RK1_ENABLED
1278 PURE elemental module subroutine setExpRandSD_RK1(rand, sigma)
1279#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1280 !DEC$ ATTRIBUTES DLLEXPORT :: setExpRandSD_RK1
1281#endif
1282 use pm_kind, only: RKG => RK1
1283 real(RKG) , intent(inout) :: rand
1284 real(RKG) , intent(in) :: sigma
1285 end subroutine
1286#endif
1287
1288 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1289
1290#if RK5_ENABLED
1291 PURE elemental module subroutine setExpRandSM_RK5(rand, sigma, mu)
1292#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1293 !DEC$ ATTRIBUTES DLLEXPORT :: setExpRandSM_RK5
1294#endif
1295 use pm_kind, only: RKG => RK5
1296 real(RKG) , intent(inout) :: rand
1297 real(RKG) , intent(in) :: sigma, mu
1298 end subroutine
1299#endif
1300
1301#if RK4_ENABLED
1302 PURE elemental module subroutine setExpRandSM_RK4(rand, sigma, mu)
1303#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1304 !DEC$ ATTRIBUTES DLLEXPORT :: setExpRandSM_RK4
1305#endif
1306 use pm_kind, only: RKG => RK4
1307 real(RKG) , intent(inout) :: rand
1308 real(RKG) , intent(in) :: sigma, mu
1309 end subroutine
1310#endif
1311
1312#if RK3_ENABLED
1313 PURE elemental module subroutine setExpRandSM_RK3(rand, sigma, mu)
1314#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1315 !DEC$ ATTRIBUTES DLLEXPORT :: setExpRandSM_RK3
1316#endif
1317 use pm_kind, only: RKG => RK3
1318 real(RKG) , intent(inout) :: rand
1319 real(RKG) , intent(in) :: sigma, mu
1320 end subroutine
1321#endif
1322
1323#if RK2_ENABLED
1324 PURE elemental module subroutine setExpRandSM_RK2(rand, sigma, mu)
1325#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1326 !DEC$ ATTRIBUTES DLLEXPORT :: setExpRandSM_RK2
1327#endif
1328 use pm_kind, only: RKG => RK2
1329 real(RKG) , intent(inout) :: rand
1330 real(RKG) , intent(in) :: sigma, mu
1331 end subroutine
1332#endif
1333
1334#if RK1_ENABLED
1335 PURE elemental module subroutine setExpRandSM_RK1(rand, sigma, mu)
1336#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1337 !DEC$ ATTRIBUTES DLLEXPORT :: setExpRandSM_RK1
1338#endif
1339 use pm_kind, only: RKG => RK1
1340 real(RKG) , intent(inout) :: rand
1341 real(RKG) , intent(in) :: sigma, mu
1342 end subroutine
1343#endif
1344
1345 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1346
1347 end interface
1348
1349!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1350
1351end module pm_distExp
Generate and return the Cumulative Distribution Function (CDF) of the Exponential distribution for an...
Definition: pm_distExp.F90:655
Generate and return the natural logarithm of the Probability Density Function (PDF) of the Exponentia...
Definition: pm_distExp.F90:221
Return a scalar (or array of arbitrary rank of) random value(s) from the Exponential distribution,...
Return the Cumulative Distribution Function (CDF) of the Exponential distribution for an input x with...
Definition: pm_distExp.F90:786
Return the natural logarithm of the Probability Density Function (PDF) of the Exponential distributio...
Definition: pm_distExp.F90:358
Return a scalar (or array of arbitrary rank of) random value(s) from the Exponential distribution,...
This module contains classes and procedures for computing various statistical quantities related to t...
Definition: pm_distExp.F90:112
character(*, SK), parameter MODULE_NAME
Definition: pm_distExp.F90:118
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 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 Exponential as defined in the ...
Definition: pm_distExp.F90:155