ParaMonte Fortran 2.0.0
Parallel Monte Carlo and Machine Learning Library
See the latest version documentation.
pm_distNegExp.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
77
78!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
79
81
82 use pm_kind, only: SK
83
84 implicit none
85
86 character(*, SK), parameter :: MODULE_NAME = "@pm_distNegExp"
87
88!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
89
124 end type
125
126!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
127
190
191 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
192
193#if RK5_ENABLED
194 PURE elemental module function getNegExpLogPDFXMI_RK5(x, mu, invSigma) result(logPDF)
195#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
196 !DEC$ ATTRIBUTES DLLEXPORT :: getNegExpLogPDFXMI_RK5
197#endif
198 use pm_kind, only: RKG => RK5
199 real(RKG) , intent(in) :: x
200 real(RKG) , intent(in) , optional :: mu, invSigma
201 real(RKG) :: logPDF
202 end function
203#endif
204
205#if RK4_ENABLED
206 PURE elemental module function getNegExpLogPDFXMI_RK4(x, mu, invSigma) result(logPDF)
207#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
208 !DEC$ ATTRIBUTES DLLEXPORT :: getNegExpLogPDFXMI_RK4
209#endif
210 use pm_kind, only: RKG => RK4
211 real(RKG) , intent(in) :: x
212 real(RKG) , intent(in) , optional :: mu, invSigma
213 real(RKG) :: logPDF
214 end function
215#endif
216
217#if RK3_ENABLED
218 PURE elemental module function getNegExpLogPDFXMI_RK3(x, mu, invSigma) result(logPDF)
219#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
220 !DEC$ ATTRIBUTES DLLEXPORT :: getNegExpLogPDFXMI_RK3
221#endif
222 use pm_kind, only: RKG => RK3
223 real(RKG) , intent(in) :: x
224 real(RKG) , intent(in) , optional :: mu, invSigma
225 real(RKG) :: logPDF
226 end function
227#endif
228
229#if RK2_ENABLED
230 PURE elemental module function getNegExpLogPDFXMI_RK2(x, mu, invSigma) result(logPDF)
231#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
232 !DEC$ ATTRIBUTES DLLEXPORT :: getNegExpLogPDFXMI_RK2
233#endif
234 use pm_kind, only: RKG => RK2
235 real(RKG) , intent(in) :: x
236 real(RKG) , intent(in) , optional :: mu, invSigma
237 real(RKG) :: logPDF
238 end function
239#endif
240
241#if RK1_ENABLED
242 PURE elemental module function getNegExpLogPDFXMI_RK1(x, mu, invSigma) result(logPDF)
243#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
244 !DEC$ ATTRIBUTES DLLEXPORT :: getNegExpLogPDFXMI_RK1
245#endif
246 use pm_kind, only: RKG => RK1
247 real(RKG) , intent(in) :: x
248 real(RKG) , intent(in) , optional :: mu, invSigma
249 real(RKG) :: logPDF
250 end function
251#endif
252
253 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
254
255 end interface
256
257!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
258
327
328 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
329
330#if RK5_ENABLED
331 PURE elemental module subroutine setNegExpLogPDFDDD_RK5(logPDF, x)
332#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
333 !DEC$ ATTRIBUTES DLLEXPORT :: setNegExpLogPDFDDD_RK5
334#endif
335 use pm_kind, only: RKG => RK5
336 real(RKG) , intent(out) :: logPDF
337 real(RKG) , intent(in) :: x
338 end subroutine
339#endif
340
341#if RK4_ENABLED
342 PURE elemental module subroutine setNegExpLogPDFDDD_RK4(logPDF, x)
343#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
344 !DEC$ ATTRIBUTES DLLEXPORT :: setNegExpLogPDFDDD_RK4
345#endif
346 use pm_kind, only: RKG => RK4
347 real(RKG) , intent(out) :: logPDF
348 real(RKG) , intent(in) :: x
349 end subroutine
350#endif
351
352#if RK3_ENABLED
353 PURE elemental module subroutine setNegExpLogPDFDDD_RK3(logPDF, x)
354#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
355 !DEC$ ATTRIBUTES DLLEXPORT :: setNegExpLogPDFDDD_RK3
356#endif
357 use pm_kind, only: RKG => RK3
358 real(RKG) , intent(out) :: logPDF
359 real(RKG) , intent(in) :: x
360 end subroutine
361#endif
362
363#if RK2_ENABLED
364 PURE elemental module subroutine setNegExpLogPDFDDD_RK2(logPDF, x)
365#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
366 !DEC$ ATTRIBUTES DLLEXPORT :: setNegExpLogPDFDDD_RK2
367#endif
368 use pm_kind, only: RKG => RK2
369 real(RKG) , intent(out) :: logPDF
370 real(RKG) , intent(in) :: x
371 end subroutine
372#endif
373
374#if RK1_ENABLED
375 PURE elemental module subroutine setNegExpLogPDFDDD_RK1(logPDF, x)
376#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
377 !DEC$ ATTRIBUTES DLLEXPORT :: setNegExpLogPDFDDD_RK1
378#endif
379 use pm_kind, only: RKG => RK1
380 real(RKG) , intent(out) :: logPDF
381 real(RKG) , intent(in) :: x
382 end subroutine
383#endif
384
385 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
386
387#if RK5_ENABLED
388 PURE elemental module subroutine setNegExpLogPDFXMDD_RK5(logPDF, x, mu)
389#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
390 !DEC$ ATTRIBUTES DLLEXPORT :: setNegExpLogPDFXMDD_RK5
391#endif
392 use pm_kind, only: RKG => RK5
393 real(RKG) , intent(out) :: logPDF
394 real(RKG) , intent(in) :: x, mu
395 end subroutine
396#endif
397
398#if RK4_ENABLED
399 PURE elemental module subroutine setNegExpLogPDFXMDD_RK4(logPDF, x, mu)
400#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
401 !DEC$ ATTRIBUTES DLLEXPORT :: setNegExpLogPDFXMDD_RK4
402#endif
403 use pm_kind, only: RKG => RK4
404 real(RKG) , intent(out) :: logPDF
405 real(RKG) , intent(in) :: x, mu
406 end subroutine
407#endif
408
409#if RK3_ENABLED
410 PURE elemental module subroutine setNegExpLogPDFXMDD_RK3(logPDF, x, mu)
411#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
412 !DEC$ ATTRIBUTES DLLEXPORT :: setNegExpLogPDFXMDD_RK3
413#endif
414 use pm_kind, only: RKG => RK3
415 real(RKG) , intent(out) :: logPDF
416 real(RKG) , intent(in) :: x, mu
417 end subroutine
418#endif
419
420#if RK2_ENABLED
421 PURE elemental module subroutine setNegExpLogPDFXMDD_RK2(logPDF, x, mu)
422#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
423 !DEC$ ATTRIBUTES DLLEXPORT :: setNegExpLogPDFXMDD_RK2
424#endif
425 use pm_kind, only: RKG => RK2
426 real(RKG) , intent(out) :: logPDF
427 real(RKG) , intent(in) :: x, mu
428 end subroutine
429#endif
430
431#if RK1_ENABLED
432 PURE elemental module subroutine setNegExpLogPDFXMDD_RK1(logPDF, x, mu)
433#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
434 !DEC$ ATTRIBUTES DLLEXPORT :: setNegExpLogPDFXMDD_RK1
435#endif
436 use pm_kind, only: RKG => RK1
437 real(RKG) , intent(out) :: logPDF
438 real(RKG) , intent(in) :: x, mu
439 end subroutine
440#endif
441
442 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
443
444#if RK5_ENABLED
445 PURE elemental module subroutine setNegExpLogPDFDIL_RK5(logPDF, x, invSigma, logInvSigma)
446#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
447 !DEC$ ATTRIBUTES DLLEXPORT :: setNegExpLogPDFDIL_RK5
448#endif
449 use pm_kind, only: RKG => RK5
450 real(RKG) , intent(out) :: logPDF
451 real(RKG) , intent(in) :: x, invSigma, logInvSigma
452 end subroutine
453#endif
454
455#if RK4_ENABLED
456 PURE elemental module subroutine setNegExpLogPDFDIL_RK4(logPDF, x, invSigma, logInvSigma)
457#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
458 !DEC$ ATTRIBUTES DLLEXPORT :: setNegExpLogPDFDIL_RK4
459#endif
460 use pm_kind, only: RKG => RK4
461 real(RKG) , intent(out) :: logPDF
462 real(RKG) , intent(in) :: x, invSigma, logInvSigma
463 end subroutine
464#endif
465
466#if RK3_ENABLED
467 PURE elemental module subroutine setNegExpLogPDFDIL_RK3(logPDF, x, invSigma, logInvSigma)
468#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
469 !DEC$ ATTRIBUTES DLLEXPORT :: setNegExpLogPDFDIL_RK3
470#endif
471 use pm_kind, only: RKG => RK3
472 real(RKG) , intent(out) :: logPDF
473 real(RKG) , intent(in) :: x, invSigma, logInvSigma
474 end subroutine
475#endif
476
477#if RK2_ENABLED
478 PURE elemental module subroutine setNegExpLogPDFDIL_RK2(logPDF, x, invSigma, logInvSigma)
479#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
480 !DEC$ ATTRIBUTES DLLEXPORT :: setNegExpLogPDFDIL_RK2
481#endif
482 use pm_kind, only: RKG => RK2
483 real(RKG) , intent(out) :: logPDF
484 real(RKG) , intent(in) :: x, invSigma, logInvSigma
485 end subroutine
486#endif
487
488#if RK1_ENABLED
489 PURE elemental module subroutine setNegExpLogPDFDIL_RK1(logPDF, x, invSigma, logInvSigma)
490#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
491 !DEC$ ATTRIBUTES DLLEXPORT :: setNegExpLogPDFDIL_RK1
492#endif
493 use pm_kind, only: RKG => RK1
494 real(RKG) , intent(out) :: logPDF
495 real(RKG) , intent(in) :: x, invSigma, logInvSigma
496 end subroutine
497#endif
498
499 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
500
501#if RK5_ENABLED
502 PURE elemental module subroutine setNegExpLogPDFMIL_RK5(logPDF, x, mu, invSigma, logInvSigma)
503#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
504 !DEC$ ATTRIBUTES DLLEXPORT :: setNegExpLogPDFMIL_RK5
505#endif
506 use pm_kind, only: RKG => RK5
507 real(RKG) , intent(out) :: logPDF
508 real(RKG) , intent(in) :: x, mu, invSigma, logInvSigma
509 end subroutine
510#endif
511
512#if RK4_ENABLED
513 PURE elemental module subroutine setNegExpLogPDFMIL_RK4(logPDF, x, mu, invSigma, logInvSigma)
514#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
515 !DEC$ ATTRIBUTES DLLEXPORT :: setNegExpLogPDFMIL_RK4
516#endif
517 use pm_kind, only: RKG => RK4
518 real(RKG) , intent(out) :: logPDF
519 real(RKG) , intent(in) :: x, mu, invSigma, logInvSigma
520 end subroutine
521#endif
522
523#if RK3_ENABLED
524 PURE elemental module subroutine setNegExpLogPDFMIL_RK3(logPDF, x, mu, invSigma, logInvSigma)
525#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
526 !DEC$ ATTRIBUTES DLLEXPORT :: setNegExpLogPDFMIL_RK3
527#endif
528 use pm_kind, only: RKG => RK3
529 real(RKG) , intent(out) :: logPDF
530 real(RKG) , intent(in) :: x, mu, invSigma, logInvSigma
531 end subroutine
532#endif
533
534#if RK2_ENABLED
535 PURE elemental module subroutine setNegExpLogPDFMIL_RK2(logPDF, x, mu, invSigma, logInvSigma)
536#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
537 !DEC$ ATTRIBUTES DLLEXPORT :: setNegExpLogPDFMIL_RK2
538#endif
539 use pm_kind, only: RKG => RK2
540 real(RKG) , intent(out) :: logPDF
541 real(RKG) , intent(in) :: x, mu, invSigma, logInvSigma
542 end subroutine
543#endif
544
545#if RK1_ENABLED
546 PURE elemental module subroutine setNegExpLogPDFMIL_RK1(logPDF, x, mu, invSigma, logInvSigma)
547#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
548 !DEC$ ATTRIBUTES DLLEXPORT :: setNegExpLogPDFMIL_RK1
549#endif
550 use pm_kind, only: RKG => RK1
551 real(RKG) , intent(out) :: logPDF
552 real(RKG) , intent(in) :: x, mu, invSigma, logInvSigma
553 end subroutine
554#endif
555
556 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
557
558 end interface
559
560!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
561
623 interface getNegExpCDF
624
625 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
626
627#if RK5_ENABLED
628 PURE elemental module function getNegExpCDFXMI_RK5(x, mu, invSigma) result(cdf)
629#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
630 !DEC$ ATTRIBUTES DLLEXPORT :: getNegExpCDFXMI_RK5
631#endif
632 use pm_kind, only: RKG => RK5
633 real(RKG) , intent(in) :: x
634 real(RKG) , intent(in) , optional :: mu, invSigma
635 real(RKG) :: cdf
636 end function
637#endif
638
639#if RK4_ENABLED
640 PURE elemental module function getNegExpCDFXMI_RK4(x, mu, invSigma) result(cdf)
641#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
642 !DEC$ ATTRIBUTES DLLEXPORT :: getNegExpCDFXMI_RK4
643#endif
644 use pm_kind, only: RKG => RK4
645 real(RKG) , intent(in) :: x
646 real(RKG) , intent(in) , optional :: mu, invSigma
647 real(RKG) :: cdf
648 end function
649#endif
650
651#if RK3_ENABLED
652 PURE elemental module function getNegExpCDFXMI_RK3(x, mu, invSigma) result(cdf)
653#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
654 !DEC$ ATTRIBUTES DLLEXPORT :: getNegExpCDFXMI_RK3
655#endif
656 use pm_kind, only: RKG => RK3
657 real(RKG) , intent(in) :: x
658 real(RKG) , intent(in) , optional :: mu, invSigma
659 real(RKG) :: cdf
660 end function
661#endif
662
663#if RK2_ENABLED
664 PURE elemental module function getNegExpCDFXMI_RK2(x, mu, invSigma) result(cdf)
665#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
666 !DEC$ ATTRIBUTES DLLEXPORT :: getNegExpCDFXMI_RK2
667#endif
668 use pm_kind, only: RKG => RK2
669 real(RKG) , intent(in) :: x
670 real(RKG) , intent(in) , optional :: mu, invSigma
671 real(RKG) :: cdf
672 end function
673#endif
674
675#if RK1_ENABLED
676 PURE elemental module function getNegExpCDFXMI_RK1(x, mu, invSigma) result(cdf)
677#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
678 !DEC$ ATTRIBUTES DLLEXPORT :: getNegExpCDFXMI_RK1
679#endif
680 use pm_kind, only: RKG => RK1
681 real(RKG) , intent(in) :: x
682 real(RKG) , intent(in) , optional :: mu, invSigma
683 real(RKG) :: cdf
684 end function
685#endif
686
687 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
688
689 end interface
690
691!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
692
754 interface setNegExpCDF
755
756 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
757
758#if RK5_ENABLED
759 PURE elemental module subroutine setNegExpCDFXDD_RK5(cdf, x)
760#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
761 !DEC$ ATTRIBUTES DLLEXPORT :: setNegExpCDFXDD_RK5
762#endif
763 use pm_kind, only: RKG => RK5
764 real(RKG) , intent(out) :: cdf
765 real(RKG) , intent(in) :: x
766 end subroutine
767#endif
768
769#if RK4_ENABLED
770 PURE elemental module subroutine setNegExpCDFXDD_RK4(cdf, x)
771#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
772 !DEC$ ATTRIBUTES DLLEXPORT :: setNegExpCDFXDD_RK4
773#endif
774 use pm_kind, only: RKG => RK4
775 real(RKG) , intent(out) :: cdf
776 real(RKG) , intent(in) :: x
777 end subroutine
778#endif
779
780#if RK3_ENABLED
781 PURE elemental module subroutine setNegExpCDFXDD_RK3(cdf, x)
782#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
783 !DEC$ ATTRIBUTES DLLEXPORT :: setNegExpCDFXDD_RK3
784#endif
785 use pm_kind, only: RKG => RK3
786 real(RKG) , intent(out) :: cdf
787 real(RKG) , intent(in) :: x
788 end subroutine
789#endif
790
791#if RK2_ENABLED
792 PURE elemental module subroutine setNegExpCDFXDD_RK2(cdf, x)
793#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
794 !DEC$ ATTRIBUTES DLLEXPORT :: setNegExpCDFXDD_RK2
795#endif
796 use pm_kind, only: RKG => RK2
797 real(RKG) , intent(out) :: cdf
798 real(RKG) , intent(in) :: x
799 end subroutine
800#endif
801
802#if RK1_ENABLED
803 PURE elemental module subroutine setNegExpCDFXDD_RK1(cdf, x)
804#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
805 !DEC$ ATTRIBUTES DLLEXPORT :: setNegExpCDFXDD_RK1
806#endif
807 use pm_kind, only: RKG => RK1
808 real(RKG) , intent(out) :: cdf
809 real(RKG) , intent(in) :: x
810 end subroutine
811#endif
812
813 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
814
815#if RK5_ENABLED
816 PURE elemental module subroutine setNegExpCDFXDI_RK5(cdf, x, invSigma)
817#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
818 !DEC$ ATTRIBUTES DLLEXPORT :: setNegExpCDFXDI_RK5
819#endif
820 use pm_kind, only: RKG => RK5
821 real(RKG) , intent(out) :: cdf
822 real(RKG) , intent(in) :: x, invSigma
823 end subroutine
824#endif
825
826#if RK4_ENABLED
827 PURE elemental module subroutine setNegExpCDFXDI_RK4(cdf, x, invSigma)
828#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
829 !DEC$ ATTRIBUTES DLLEXPORT :: setNegExpCDFXDI_RK4
830#endif
831 use pm_kind, only: RKG => RK4
832 real(RKG) , intent(out) :: cdf
833 real(RKG) , intent(in) :: x, invSigma
834 end subroutine
835#endif
836
837#if RK3_ENABLED
838 PURE elemental module subroutine setNegExpCDFXDI_RK3(cdf, x, invSigma)
839#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
840 !DEC$ ATTRIBUTES DLLEXPORT :: setNegExpCDFXDI_RK3
841#endif
842 use pm_kind, only: RKG => RK3
843 real(RKG) , intent(out) :: cdf
844 real(RKG) , intent(in) :: x, invSigma
845 end subroutine
846#endif
847
848#if RK2_ENABLED
849 PURE elemental module subroutine setNegExpCDFXDI_RK2(cdf, x, invSigma)
850#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
851 !DEC$ ATTRIBUTES DLLEXPORT :: setNegExpCDFXDI_RK2
852#endif
853 use pm_kind, only: RKG => RK2
854 real(RKG) , intent(out) :: cdf
855 real(RKG) , intent(in) :: x, invSigma
856 end subroutine
857#endif
858
859#if RK1_ENABLED
860 PURE elemental module subroutine setNegExpCDFXDI_RK1(cdf, x, invSigma)
861#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
862 !DEC$ ATTRIBUTES DLLEXPORT :: setNegExpCDFXDI_RK1
863#endif
864 use pm_kind, only: RKG => RK1
865 real(RKG) , intent(out) :: cdf
866 real(RKG) , intent(in) :: x, invSigma
867 end subroutine
868#endif
869
870 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
871
872#if RK5_ENABLED
873 PURE elemental module subroutine setNegExpCDFXMI_RK5(cdf, x, mu, invSigma)
874#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
875 !DEC$ ATTRIBUTES DLLEXPORT :: setNegExpCDFXMI_RK5
876#endif
877 use pm_kind, only: RKG => RK5
878 real(RKG) , intent(out) :: cdf
879 real(RKG) , intent(in) :: x, mu, invSigma
880 end subroutine
881#endif
882
883#if RK4_ENABLED
884 PURE elemental module subroutine setNegExpCDFXMI_RK4(cdf, x, mu, invSigma)
885#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
886 !DEC$ ATTRIBUTES DLLEXPORT :: setNegExpCDFXMI_RK4
887#endif
888 use pm_kind, only: RKG => RK4
889 real(RKG) , intent(out) :: cdf
890 real(RKG) , intent(in) :: x, mu, invSigma
891 end subroutine
892#endif
893
894#if RK3_ENABLED
895 PURE elemental module subroutine setNegExpCDFXMI_RK3(cdf, x, mu, invSigma)
896#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
897 !DEC$ ATTRIBUTES DLLEXPORT :: setNegExpCDFXMI_RK3
898#endif
899 use pm_kind, only: RKG => RK3
900 real(RKG) , intent(out) :: cdf
901 real(RKG) , intent(in) :: x, mu, invSigma
902 end subroutine
903#endif
904
905#if RK2_ENABLED
906 PURE elemental module subroutine setNegExpCDFXMI_RK2(cdf, x, mu, invSigma)
907#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
908 !DEC$ ATTRIBUTES DLLEXPORT :: setNegExpCDFXMI_RK2
909#endif
910 use pm_kind, only: RKG => RK2
911 real(RKG) , intent(out) :: cdf
912 real(RKG) , intent(in) :: x, mu, invSigma
913 end subroutine
914#endif
915
916#if RK1_ENABLED
917 PURE elemental module subroutine setNegExpCDFXMI_RK1(cdf, x, mu, invSigma)
918#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
919 !DEC$ ATTRIBUTES DLLEXPORT :: setNegExpCDFXMI_RK1
920#endif
921 use pm_kind, only: RKG => RK1
922 real(RKG) , intent(out) :: cdf
923 real(RKG) , intent(in) :: x, mu, invSigma
924 end subroutine
925#endif
926
927 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
928
929 end interface
930
931!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
932
991
992 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
993
994#if RK5_ENABLED
995 impure elemental module function getNegExpRandSM_RK5(sigma, mu) result(rand)
996#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
997 !DEC$ ATTRIBUTES DLLEXPORT :: getNegExpRandSM_RK5
998#endif
999 use pm_kind, only: RKG => RK5
1000 real(RKG) :: rand
1001 real(RKG) , intent(in) :: sigma
1002 real(RKG) , intent(in) , optional :: mu
1003 end function
1004#endif
1005
1006#if RK4_ENABLED
1007 impure elemental module function getNegExpRandSM_RK4(sigma, mu) result(rand)
1008#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1009 !DEC$ ATTRIBUTES DLLEXPORT :: getNegExpRandSM_RK4
1010#endif
1011 use pm_kind, only: RKG => RK4
1012 real(RKG) :: rand
1013 real(RKG) , intent(in) :: sigma
1014 real(RKG) , intent(in) , optional :: mu
1015 end function
1016#endif
1017
1018#if RK3_ENABLED
1019 impure elemental module function getNegExpRandSM_RK3(sigma, mu) result(rand)
1020#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1021 !DEC$ ATTRIBUTES DLLEXPORT :: getNegExpRandSM_RK3
1022#endif
1023 use pm_kind, only: RKG => RK3
1024 real(RKG) :: rand
1025 real(RKG) , intent(in) :: sigma
1026 real(RKG) , intent(in) , optional :: mu
1027 end function
1028#endif
1029
1030#if RK2_ENABLED
1031 impure elemental module function getNegExpRandSM_RK2(sigma, mu) result(rand)
1032#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1033 !DEC$ ATTRIBUTES DLLEXPORT :: getNegExpRandSM_RK2
1034#endif
1035 use pm_kind, only: RKG => RK2
1036 real(RKG) :: rand
1037 real(RKG) , intent(in) :: sigma
1038 real(RKG) , intent(in) , optional :: mu
1039 end function
1040#endif
1041
1042#if RK1_ENABLED
1043 impure elemental module function getNegExpRandSM_RK1(sigma, mu) result(rand)
1044#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1045 !DEC$ ATTRIBUTES DLLEXPORT :: getNegExpRandSM_RK1
1046#endif
1047 use pm_kind, only: RKG => RK1
1048 real(RKG) :: rand
1049 real(RKG) , intent(in) :: sigma
1050 real(RKG) , intent(in) , optional :: mu
1051 end function
1052#endif
1053
1054 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1055
1056 end interface
1057
1058!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1059
1140
1141 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1142
1143#if RK5_ENABLED
1144 PURE elemental module subroutine setNegExpRandUDD_RK5(rand, urand)
1145#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1146 !DEC$ ATTRIBUTES DLLEXPORT :: setNegExpRandUDD_RK5
1147#endif
1148 use pm_kind, only: RKG => RK5
1149 real(RKG) , intent(out) :: rand
1150 real(RKG) , intent(in) :: urand
1151 end subroutine
1152#endif
1153
1154#if RK4_ENABLED
1155 PURE elemental module subroutine setNegExpRandUDD_RK4(rand, urand)
1156#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1157 !DEC$ ATTRIBUTES DLLEXPORT :: setNegExpRandUDD_RK4
1158#endif
1159 use pm_kind, only: RKG => RK4
1160 real(RKG) , intent(out) :: rand
1161 real(RKG) , intent(in) :: urand
1162 end subroutine
1163#endif
1164
1165#if RK3_ENABLED
1166 PURE elemental module subroutine setNegExpRandUDD_RK3(rand, urand)
1167#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1168 !DEC$ ATTRIBUTES DLLEXPORT :: setNegExpRandUDD_RK3
1169#endif
1170 use pm_kind, only: RKG => RK3
1171 real(RKG) , intent(out) :: rand
1172 real(RKG) , intent(in) :: urand
1173 end subroutine
1174#endif
1175
1176#if RK2_ENABLED
1177 PURE elemental module subroutine setNegExpRandUDD_RK2(rand, urand)
1178#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1179 !DEC$ ATTRIBUTES DLLEXPORT :: setNegExpRandUDD_RK2
1180#endif
1181 use pm_kind, only: RKG => RK2
1182 real(RKG) , intent(out) :: rand
1183 real(RKG) , intent(in) :: urand
1184 end subroutine
1185#endif
1186
1187#if RK1_ENABLED
1188 PURE elemental module subroutine setNegExpRandUDD_RK1(rand, urand)
1189#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1190 !DEC$ ATTRIBUTES DLLEXPORT :: setNegExpRandUDD_RK1
1191#endif
1192 use pm_kind, only: RKG => RK1
1193 real(RKG) , intent(out) :: rand
1194 real(RKG) , intent(in) :: urand
1195 end subroutine
1196#endif
1197
1198 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1199
1200#if RK5_ENABLED
1201 PURE elemental module subroutine setNegExpRandUSD_RK5(rand, urand, sigma)
1202#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1203 !DEC$ ATTRIBUTES DLLEXPORT :: setNegExpRandUSD_RK5
1204#endif
1205 use pm_kind, only: RKG => RK5
1206 real(RKG) , intent(out) :: rand
1207 real(RKG) , intent(in) :: urand, sigma
1208 end subroutine
1209#endif
1210
1211#if RK4_ENABLED
1212 PURE elemental module subroutine setNegExpRandUSD_RK4(rand, urand, sigma)
1213#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1214 !DEC$ ATTRIBUTES DLLEXPORT :: setNegExpRandUSD_RK4
1215#endif
1216 use pm_kind, only: RKG => RK4
1217 real(RKG) , intent(out) :: rand
1218 real(RKG) , intent(in) :: urand, sigma
1219 end subroutine
1220#endif
1221
1222#if RK3_ENABLED
1223 PURE elemental module subroutine setNegExpRandUSD_RK3(rand, urand, sigma)
1224#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1225 !DEC$ ATTRIBUTES DLLEXPORT :: setNegExpRandUSD_RK3
1226#endif
1227 use pm_kind, only: RKG => RK3
1228 real(RKG) , intent(out) :: rand
1229 real(RKG) , intent(in) :: urand, sigma
1230 end subroutine
1231#endif
1232
1233#if RK2_ENABLED
1234 PURE elemental module subroutine setNegExpRandUSD_RK2(rand, urand, sigma)
1235#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1236 !DEC$ ATTRIBUTES DLLEXPORT :: setNegExpRandUSD_RK2
1237#endif
1238 use pm_kind, only: RKG => RK2
1239 real(RKG) , intent(out) :: rand
1240 real(RKG) , intent(in) :: urand, sigma
1241 end subroutine
1242#endif
1243
1244#if RK1_ENABLED
1245 PURE elemental module subroutine setNegExpRandUSD_RK1(rand, urand, sigma)
1246#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1247 !DEC$ ATTRIBUTES DLLEXPORT :: setNegExpRandUSD_RK1
1248#endif
1249 use pm_kind, only: RKG => RK1
1250 real(RKG) , intent(out) :: rand
1251 real(RKG) , intent(in) :: urand, sigma
1252 end subroutine
1253#endif
1254
1255 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1256
1257#if RK5_ENABLED
1258 PURE elemental module subroutine setNegExpRandUSM_RK5(rand, urand, sigma, mu)
1259#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1260 !DEC$ ATTRIBUTES DLLEXPORT :: setNegExpRandUSM_RK5
1261#endif
1262 use pm_kind, only: RKG => RK5
1263 real(RKG) , intent(out) :: rand
1264 real(RKG) , intent(in) :: urand, sigma, mu
1265 end subroutine
1266#endif
1267
1268#if RK4_ENABLED
1269 PURE elemental module subroutine setNegExpRandUSM_RK4(rand, urand, sigma, mu)
1270#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1271 !DEC$ ATTRIBUTES DLLEXPORT :: setNegExpRandUSM_RK4
1272#endif
1273 use pm_kind, only: RKG => RK4
1274 real(RKG) , intent(out) :: rand
1275 real(RKG) , intent(in) :: urand, sigma, mu
1276 end subroutine
1277#endif
1278
1279#if RK3_ENABLED
1280 PURE elemental module subroutine setNegExpRandUSM_RK3(rand, urand, sigma, mu)
1281#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1282 !DEC$ ATTRIBUTES DLLEXPORT :: setNegExpRandUSM_RK3
1283#endif
1284 use pm_kind, only: RKG => RK3
1285 real(RKG) , intent(out) :: rand
1286 real(RKG) , intent(in) :: urand, sigma, mu
1287 end subroutine
1288#endif
1289
1290#if RK2_ENABLED
1291 PURE elemental module subroutine setNegExpRandUSM_RK2(rand, urand, sigma, mu)
1292#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1293 !DEC$ ATTRIBUTES DLLEXPORT :: setNegExpRandUSM_RK2
1294#endif
1295 use pm_kind, only: RKG => RK2
1296 real(RKG) , intent(out) :: rand
1297 real(RKG) , intent(in) :: urand, sigma, mu
1298 end subroutine
1299#endif
1300
1301#if RK1_ENABLED
1302 PURE elemental module subroutine setNegExpRandUSM_RK1(rand, urand, sigma, mu)
1303#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1304 !DEC$ ATTRIBUTES DLLEXPORT :: setNegExpRandUSM_RK1
1305#endif
1306 use pm_kind, only: RKG => RK1
1307 real(RKG) , intent(out) :: rand
1308 real(RKG) , intent(in) :: urand, sigma, mu
1309 end subroutine
1310#endif
1311
1312 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1313
1314 end interface
1315
1316!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1317
1318end module pm_distNegExp
Generate and return the Cumulative Distribution Function (CDF) of the Negative Exponential distributi...
Generate and return the natural logarithm of the Probability Density Function (PDF) of the Negative E...
Return a scalar (or array of arbitrary rank of) random value(s) from the Negative Exponential distrib...
Return the Cumulative Distribution Function (CDF) of the Negative Exponential distribution for an inp...
Return the natural logarithm of the Probability Density Function (PDF) of the Negative Exponential di...
Return a scalar (or array of arbitrary rank of) random value(s) from the Negative Exponential distrib...
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 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 Negative Exponential as define...