ParaMonte Fortran 2.0.0
Parallel Monte Carlo and Machine Learning Library
See the latest version documentation.
pm_distanceBhat.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
124
125!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
126
128
129 use pm_kind, only: SK, IK, LK
130 use pm_mathConst, only: ninf_type
131 use pm_mathConst, only: pinf_type
132 use pm_except, only: getInfNeg
133 use pm_except, only: getInfPos
134
135 implicit none
136
137 character(*, SK), parameter :: MODULE_NAME = "@pm_distanceBhat"
138
139!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
140
246
247 ! PMF
248
249 interface getDisBhat
250
251 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
252
253#if RK5_ENABLED
254 PURE module function getDisBhatPMF_RK5(p, q) result(bhat)
255#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
256 !DEC$ ATTRIBUTES DLLEXPORT :: getDisBhatPMF_RK5
257#endif
258 use pm_kind, only: RKG => RK5
259 real(RKG) , intent(in), contiguous :: p(:), q(:)
260 real(RKG) :: bhat
261 end function
262#endif
263
264#if RK4_ENABLED
265 PURE module function getDisBhatPMF_RK4(p, q) result(bhat)
266#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
267 !DEC$ ATTRIBUTES DLLEXPORT :: getDisBhatPMF_RK4
268#endif
269 use pm_kind, only: RKG => RK4
270 real(RKG) , intent(in), contiguous :: p(:), q(:)
271 real(RKG) :: bhat
272 end function
273#endif
274
275#if RK3_ENABLED
276 PURE module function getDisBhatPMF_RK3(p, q) result(bhat)
277#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
278 !DEC$ ATTRIBUTES DLLEXPORT :: getDisBhatPMF_RK3
279#endif
280 use pm_kind, only: RKG => RK3
281 real(RKG) , intent(in), contiguous :: p(:), q(:)
282 real(RKG) :: bhat
283 end function
284#endif
285
286#if RK2_ENABLED
287 PURE module function getDisBhatPMF_RK2(p, q) result(bhat)
288#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
289 !DEC$ ATTRIBUTES DLLEXPORT :: getDisBhatPMF_RK2
290#endif
291 use pm_kind, only: RKG => RK2
292 real(RKG) , intent(in), contiguous :: p(:), q(:)
293 real(RKG) :: bhat
294 end function
295#endif
296
297#if RK1_ENABLED
298 PURE module function getDisBhatPMF_RK1(p, q) result(bhat)
299#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
300 !DEC$ ATTRIBUTES DLLEXPORT :: getDisBhatPMF_RK1
301#endif
302 use pm_kind, only: RKG => RK1
303 real(RKG) , intent(in), contiguous :: p(:), q(:)
304 real(RKG) :: bhat
305 end function
306#endif
307
308 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
309
310 end interface
311
312 ! Proc
313
314 interface getDisBhat
315
316 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
317 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
318 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
319
320 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
321
322#if RK5_ENABLED
323 module function getDisBhatPRC_RK5(p, q, lb, ub, failed, msg) result(bhat)
324#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
325 !DEC$ ATTRIBUTES DLLEXPORT :: getDisBhatPRC_RK5
326#endif
327 use pm_kind, only: RKG => RK5
328 procedure(real(RKG)) :: p, q
329 real(RKG) , intent(in) , optional :: lb
330 real(RKG) , intent(in) , optional :: ub
331 character(*, SK), intent(out) , optional :: msg
332 logical(LK) , intent(out) , optional :: failed
333 real(RKG) :: bhat
334 end function
335#endif
336
337#if RK4_ENABLED
338 module function getDisBhatPRC_RK4(p, q, lb, ub, failed, msg) result(bhat)
339#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
340 !DEC$ ATTRIBUTES DLLEXPORT :: getDisBhatPRC_RK4
341#endif
342 use pm_kind, only: RKG => RK4
343 procedure(real(RKG)) :: p, q
344 real(RKG) , intent(in) , optional :: lb
345 real(RKG) , intent(in) , optional :: ub
346 character(*, SK), intent(out) , optional :: msg
347 logical(LK) , intent(out) , optional :: failed
348 real(RKG) :: bhat
349 end function
350#endif
351
352#if RK3_ENABLED
353 module function getDisBhatPRC_RK3(p, q, lb, ub, failed, msg) result(bhat)
354#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
355 !DEC$ ATTRIBUTES DLLEXPORT :: getDisBhatPRC_RK3
356#endif
357 use pm_kind, only: RKG => RK3
358 procedure(real(RKG)) :: p, q
359 real(RKG) , intent(in) , optional :: lb
360 real(RKG) , intent(in) , optional :: ub
361 character(*, SK), intent(out) , optional :: msg
362 logical(LK) , intent(out) , optional :: failed
363 real(RKG) :: bhat
364 end function
365#endif
366
367#if RK2_ENABLED
368 module function getDisBhatPRC_RK2(p, q, lb, ub, failed, msg) result(bhat)
369#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
370 !DEC$ ATTRIBUTES DLLEXPORT :: getDisBhatPRC_RK2
371#endif
372 use pm_kind, only: RKG => RK2
373 procedure(real(RKG)) :: p, q
374 real(RKG) , intent(in) , optional :: lb
375 real(RKG) , intent(in) , optional :: ub
376 character(*, SK), intent(out) , optional :: msg
377 logical(LK) , intent(out) , optional :: failed
378 real(RKG) :: bhat
379 end function
380#endif
381
382#if RK1_ENABLED
383 module function getDisBhatPRC_RK1(p, q, lb, ub, failed, msg) result(bhat)
384#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
385 !DEC$ ATTRIBUTES DLLEXPORT :: getDisBhatPRC_RK1
386#endif
387 use pm_kind, only: RKG => RK1
388 procedure(real(RKG)) :: p, q
389 real(RKG) , intent(in) , optional :: lb
390 real(RKG) , intent(in) , optional :: ub
391 character(*, SK), intent(out) , optional :: msg
392 logical(LK) , intent(out) , optional :: failed
393 real(RKG) :: bhat
394 end function
395#endif
396
397 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
398
399 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
400 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
401 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
402!
403! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
404!
405!#if RK5_ENABLED
406! module function getDisBhatPRC_FF_RK5(p, q, lb, ub) result(bhat)
407!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
408! !DEC$ ATTRIBUTES DLLEXPORT :: getDisBhatPRC_FF_RK5
409!#endif
410! use pm_kind, only: RKG => RK5
411! procedure(real(RKG)) :: p, q
412! real(RKG) , intent(in) :: lb
413! real(RKG) , intent(in) :: ub
414! real(RKG) :: bhat
415! end function
416!#endif
417!
418!#if RK4_ENABLED
419! module function getDisBhatPRC_FF_RK4(p, q, lb, ub) result(bhat)
420!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
421! !DEC$ ATTRIBUTES DLLEXPORT :: getDisBhatPRC_FF_RK4
422!#endif
423! use pm_kind, only: RKG => RK4
424! procedure(real(RKG)) :: p, q
425! real(RKG) , intent(in) :: lb
426! real(RKG) , intent(in) :: ub
427! real(RKG) :: bhat
428! end function
429!#endif
430!
431!#if RK3_ENABLED
432! module function getDisBhatPRC_FF_RK3(p, q, lb, ub) result(bhat)
433!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
434! !DEC$ ATTRIBUTES DLLEXPORT :: getDisBhatPRC_FF_RK3
435!#endif
436! use pm_kind, only: RKG => RK3
437! procedure(real(RKG)) :: p, q
438! real(RKG) , intent(in) :: lb
439! real(RKG) , intent(in) :: ub
440! real(RKG) :: bhat
441! end function
442!#endif
443!
444!#if RK2_ENABLED
445! module function getDisBhatPRC_FF_RK2(p, q, lb, ub) result(bhat)
446!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
447! !DEC$ ATTRIBUTES DLLEXPORT :: getDisBhatPRC_FF_RK2
448!#endif
449! use pm_kind, only: RKG => RK2
450! procedure(real(RKG)) :: p, q
451! real(RKG) , intent(in) :: lb
452! real(RKG) , intent(in) :: ub
453! real(RKG) :: bhat
454! end function
455!#endif
456!
457!#if RK1_ENABLED
458! module function getDisBhatPRC_FF_RK1(p, q, lb, ub) result(bhat)
459!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
460! !DEC$ ATTRIBUTES DLLEXPORT :: getDisBhatPRC_FF_RK1
461!#endif
462! use pm_kind, only: RKG => RK1
463! procedure(real(RKG)) :: p, q
464! real(RKG) , intent(in) :: lb
465! real(RKG) , intent(in) :: ub
466! real(RKG) :: bhat
467! end function
468!#endif
469!
470! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
471!
472! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
473! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
474! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
475!
476! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
477!
478!#if RK5_ENABLED
479! module function getDisBhatPRC_FI_RK5(p, q, lb, ub) result(bhat)
480!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
481! !DEC$ ATTRIBUTES DLLEXPORT :: getDisBhatPRC_FI_RK5
482!#endif
483! use pm_kind, only: RKG => RK5
484! procedure(real(RKG)) :: p, q
485! real(RKG) , intent(in) :: lb
486! type(pinf_type) , intent(in) :: ub
487! real(RKG) :: bhat
488! end function
489!#endif
490!
491!#if RK4_ENABLED
492! module function getDisBhatPRC_FI_RK4(p, q, lb, ub) result(bhat)
493!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
494! !DEC$ ATTRIBUTES DLLEXPORT :: getDisBhatPRC_FI_RK4
495!#endif
496! use pm_kind, only: RKG => RK4
497! procedure(real(RKG)) :: p, q
498! real(RKG) , intent(in) :: lb
499! type(pinf_type) , intent(in) :: ub
500! real(RKG) :: bhat
501! end function
502!#endif
503!
504!#if RK3_ENABLED
505! module function getDisBhatPRC_FI_RK3(p, q, lb, ub) result(bhat)
506!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
507! !DEC$ ATTRIBUTES DLLEXPORT :: getDisBhatPRC_FI_RK3
508!#endif
509! use pm_kind, only: RKG => RK3
510! procedure(real(RKG)) :: p, q
511! real(RKG) , intent(in) :: lb
512! type(pinf_type) , intent(in) :: ub
513! real(RKG) :: bhat
514! end function
515!#endif
516!
517!#if RK2_ENABLED
518! module function getDisBhatPRC_FI_RK2(p, q, lb, ub) result(bhat)
519!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
520! !DEC$ ATTRIBUTES DLLEXPORT :: getDisBhatPRC_FI_RK2
521!#endif
522! use pm_kind, only: RKG => RK2
523! procedure(real(RKG)) :: p, q
524! real(RKG) , intent(in) :: lb
525! type(pinf_type) , intent(in) :: ub
526! real(RKG) :: bhat
527! end function
528!#endif
529!
530!#if RK1_ENABLED
531! module function getDisBhatPRC_FI_RK1(p, q, lb, ub) result(bhat)
532!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
533! !DEC$ ATTRIBUTES DLLEXPORT :: getDisBhatPRC_FI_RK1
534!#endif
535! use pm_kind, only: RKG => RK1
536! procedure(real(RKG)) :: p, q
537! real(RKG) , intent(in) :: lb
538! type(pinf_type) , intent(in) :: ub
539! real(RKG) :: bhat
540! end function
541!#endif
542!
543! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
544!
545! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
546! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
547! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
548!
549! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
550!
551!#if RK5_ENABLED
552! module function getDisBhatPRC_IF_RK5(p, q, lb, ub) result(bhat)
553!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
554! !DEC$ ATTRIBUTES DLLEXPORT :: getDisBhatPRC_IF_RK5
555!#endif
556! use pm_kind, only: RKG => RK5
557! procedure(real(RKG)) :: p, q
558! type(ninf_type) , intent(in) :: lb
559! real(RKG) , intent(in) :: ub
560! real(RKG) :: bhat
561! end function
562!#endif
563!
564!#if RK4_ENABLED
565! module function getDisBhatPRC_IF_RK4(p, q, lb, ub) result(bhat)
566!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
567! !DEC$ ATTRIBUTES DLLEXPORT :: getDisBhatPRC_IF_RK4
568!#endif
569! use pm_kind, only: RKG => RK4
570! procedure(real(RKG)) :: p, q
571! type(ninf_type) , intent(in) :: lb
572! real(RKG) , intent(in) :: ub
573! real(RKG) :: bhat
574! end function
575!#endif
576!
577!#if RK3_ENABLED
578! module function getDisBhatPRC_IF_RK3(p, q, lb, ub) result(bhat)
579!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
580! !DEC$ ATTRIBUTES DLLEXPORT :: getDisBhatPRC_IF_RK3
581!#endif
582! use pm_kind, only: RKG => RK3
583! procedure(real(RKG)) :: p, q
584! type(ninf_type) , intent(in) :: lb
585! real(RKG) , intent(in) :: ub
586! real(RKG) :: bhat
587! end function
588!#endif
589!
590!#if RK2_ENABLED
591! module function getDisBhatPRC_IF_RK2(p, q, lb, ub) result(bhat)
592!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
593! !DEC$ ATTRIBUTES DLLEXPORT :: getDisBhatPRC_IF_RK2
594!#endif
595! use pm_kind, only: RKG => RK2
596! procedure(real(RKG)) :: p, q
597! type(ninf_type) , intent(in) :: lb
598! real(RKG) , intent(in) :: ub
599! real(RKG) :: bhat
600! end function
601!#endif
602!
603!#if RK1_ENABLED
604! module function getDisBhatPRC_IF_RK1(p, q, lb, ub) result(bhat)
605!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
606! !DEC$ ATTRIBUTES DLLEXPORT :: getDisBhatPRC_IF_RK1
607!#endif
608! use pm_kind, only: RKG => RK1
609! procedure(real(RKG)) :: p, q
610! type(ninf_type) , intent(in) :: lb
611! real(RKG) , intent(in) :: ub
612! real(RKG) :: bhat
613! end function
614!#endif
615!
616! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
617!
618! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
619! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
620! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
621!
622! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
623!
624!#if RK5_ENABLED
625! module function getDisBhatPRC_II_RK5(p, q, lb, ub) result(bhat)
626!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
627! !DEC$ ATTRIBUTES DLLEXPORT :: getDisBhatPRC_II_RK5
628!#endif
629! use pm_kind, only: RKG => RK5
630! procedure(real(RKG)) :: p, q
631! type(ninf_type) , intent(in) :: ninf_type
632! type(pinf_type) , intent(in) :: pinf_type
633! real(RKG) :: bhat
634! end function
635!#endif
636!
637!#if RK4_ENABLED
638! module function getDisBhatPRC_II_RK4(p, q, lb, ub) result(bhat)
639!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
640! !DEC$ ATTRIBUTES DLLEXPORT :: getDisBhatPRC_II_RK4
641!#endif
642! use pm_kind, only: RKG => RK4
643! procedure(real(RKG)) :: p, q
644! type(ninf_type) , intent(in) :: ninf_type
645! type(pinf_type) , intent(in) :: pinf_type
646! real(RKG) :: bhat
647! end function
648!#endif
649!
650!#if RK3_ENABLED
651! module function getDisBhatPRC_II_RK3(p, q, lb, ub) result(bhat)
652!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
653! !DEC$ ATTRIBUTES DLLEXPORT :: getDisBhatPRC_II_RK3
654!#endif
655! use pm_kind, only: RKG => RK3
656! procedure(real(RKG)) :: p, q
657! type(ninf_type) , intent(in) :: ninf_type
658! type(pinf_type) , intent(in) :: pinf_type
659! real(RKG) :: bhat
660! end function
661!#endif
662!
663!#if RK2_ENABLED
664! module function getDisBhatPRC_II_RK2(p, q, lb, ub) result(bhat)
665!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
666! !DEC$ ATTRIBUTES DLLEXPORT :: getDisBhatPRC_II_RK2
667!#endif
668! use pm_kind, only: RKG => RK2
669! procedure(real(RKG)) :: p, q
670! type(ninf_type) , intent(in) :: ninf_type
671! type(pinf_type) , intent(in) :: pinf_type
672! real(RKG) :: bhat
673! end function
674!#endif
675!
676!#if RK1_ENABLED
677! module function getDisBhatPRC_II_RK1(p, q, lb, ub) result(bhat)
678!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
679! !DEC$ ATTRIBUTES DLLEXPORT :: getDisBhatPRC_II_RK1
680!#endif
681! use pm_kind, only: RKG => RK1
682! procedure(real(RKG)) :: p, q
683! type(ninf_type) , intent(in) :: ninf_type
684! type(pinf_type) , intent(in) :: pinf_type
685! real(RKG) :: bhat
686! end function
687!#endif
688!
689! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
690!
691! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
692! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
693! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
694 end interface
695
696!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
697
698end module pm_distanceBhat ! LCOV_EXCL_LINE
Generate and return the Bhattacharyya distance of two univariate (discrete or continuous) distributio...
Generate and return an IEEE-compliant negative infinity.
Definition: pm_except.F90:1719
Generate and return an IEEE-compliant positive infinity.
Definition: pm_except.F90:1189
This module contains classes and procedures for computing the Bhattacharyya statistical distance betw...
character(*, SK), parameter MODULE_NAME
This module contains procedures and generic interfaces for testing for exceptional cases at runtime.
Definition: pm_except.F90:46
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 module contains relevant mathematical constants.
This is the indicator type for generating instances of objects that indicate the use of the negative ...
This is the indicator type for generating instances of objects that indicate the use of the positive ...