ParaMonte Fortran 2.0.0
Parallel Monte Carlo and Machine Learning Library
See the latest version documentation.
pm_statest.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
74
75!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
76
78
79 use pm_kind, only: IK, RK, SK
81 use pm_distanceKolm, only: ascending, ascending_type
82
83 implicit none
84
85 character(*, SK), parameter :: MODULE_NAME = "@pm_statest"
86
87!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
88
193
194 ! SX
195
196 interface getProbKS
197
198 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
199 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
200 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
201
202 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
203
204#if RK5_ENABLED
205 PURE module function getProbKS_WIX_D0_RK5(statKS, weisum1) result(probKS)
206#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
207 !DEC$ ATTRIBUTES DLLEXPORT :: getProbKS_WIX_D0_RK5
208#endif
209 use pm_kind, only: RKG => RK5
210 integer(IK) , intent(in) :: weisum1
211 real(RKG) , intent(in) :: statKS
212 real(RKG) :: probKS
213 end function
214#endif
215
216#if RK4_ENABLED
217 PURE module function getProbKS_WIX_D0_RK4(statKS, weisum1) result(probKS)
218#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
219 !DEC$ ATTRIBUTES DLLEXPORT :: getProbKS_WIX_D0_RK4
220#endif
221 use pm_kind, only: RKG => RK4
222 integer(IK) , intent(in) :: weisum1
223 real(RKG) , intent(in) :: statKS
224 real(RKG) :: probKS
225 end function
226#endif
227
228#if RK3_ENABLED
229 PURE module function getProbKS_WIX_D0_RK3(statKS, weisum1) result(probKS)
230#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
231 !DEC$ ATTRIBUTES DLLEXPORT :: getProbKS_WIX_D0_RK3
232#endif
233 use pm_kind, only: RKG => RK3
234 integer(IK) , intent(in) :: weisum1
235 real(RKG) , intent(in) :: statKS
236 real(RKG) :: probKS
237 end function
238#endif
239
240#if RK2_ENABLED
241 PURE module function getProbKS_WIX_D0_RK2(statKS, weisum1) result(probKS)
242#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
243 !DEC$ ATTRIBUTES DLLEXPORT :: getProbKS_WIX_D0_RK2
244#endif
245 use pm_kind, only: RKG => RK2
246 integer(IK) , intent(in) :: weisum1
247 real(RKG) , intent(in) :: statKS
248 real(RKG) :: probKS
249 end function
250#endif
251
252#if RK1_ENABLED
253 PURE module function getProbKS_WIX_D0_RK1(statKS, weisum1) result(probKS)
254#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
255 !DEC$ ATTRIBUTES DLLEXPORT :: getProbKS_WIX_D0_RK1
256#endif
257 use pm_kind, only: RKG => RK1
258 integer(IK) , intent(in) :: weisum1
259 real(RKG) , intent(in) :: statKS
260 real(RKG) :: probKS
261 end function
262#endif
263
264 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
265
266 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
267 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
268 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
269
270 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
271
272#if RK5_ENABLED
273 PURE module function getProbKS_WRX_D0_RK5(statKS, weisum1, wsqsum1) result(probKS)
274#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
275 !DEC$ ATTRIBUTES DLLEXPORT :: getProbKS_WRX_D0_RK5
276#endif
277 use pm_kind, only: RKG => RK5
278 real(RKG) , intent(in) :: weisum1, wsqsum1
279 real(RKG) , intent(in) :: statKS
280 real(RKG) :: probKS
281 end function
282#endif
283
284#if RK4_ENABLED
285 PURE module function getProbKS_WRX_D0_RK4(statKS, weisum1, wsqsum1) result(probKS)
286#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
287 !DEC$ ATTRIBUTES DLLEXPORT :: getProbKS_WRX_D0_RK4
288#endif
289 use pm_kind, only: RKG => RK4
290 real(RKG) , intent(in) :: weisum1, wsqsum1
291 real(RKG) , intent(in) :: statKS
292 real(RKG) :: probKS
293 end function
294#endif
295
296#if RK3_ENABLED
297 PURE module function getProbKS_WRX_D0_RK3(statKS, weisum1, wsqsum1) result(probKS)
298#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
299 !DEC$ ATTRIBUTES DLLEXPORT :: getProbKS_WRX_D0_RK3
300#endif
301 use pm_kind, only: RKG => RK3
302 real(RKG) , intent(in) :: weisum1, wsqsum1
303 real(RKG) , intent(in) :: statKS
304 real(RKG) :: probKS
305 end function
306#endif
307
308#if RK2_ENABLED
309 PURE module function getProbKS_WRX_D0_RK2(statKS, weisum1, wsqsum1) result(probKS)
310#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
311 !DEC$ ATTRIBUTES DLLEXPORT :: getProbKS_WRX_D0_RK2
312#endif
313 use pm_kind, only: RKG => RK2
314 real(RKG) , intent(in) :: weisum1, wsqsum1
315 real(RKG) , intent(in) :: statKS
316 real(RKG) :: probKS
317 end function
318#endif
319
320#if RK1_ENABLED
321 PURE module function getProbKS_WRX_D0_RK1(statKS, weisum1, wsqsum1) result(probKS)
322#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
323 !DEC$ ATTRIBUTES DLLEXPORT :: getProbKS_WRX_D0_RK1
324#endif
325 use pm_kind, only: RKG => RK1
326 real(RKG) , intent(in) :: weisum1, wsqsum1
327 real(RKG) , intent(in) :: statKS
328 real(RKG) :: probKS
329 end function
330#endif
331
332 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
333
334 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
335 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
336 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
337
338 end interface
339
340 ! SS
341
342 interface getProbKS
343
344 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
345 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
346 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
347
348 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
349
350#if RK5_ENABLED
351 PURE module function getProbKS_WII_D0_RK5(statKS, weisum1, weisum2) result(probKS)
352#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
353 !DEC$ ATTRIBUTES DLLEXPORT :: getProbKS_WII_D0_RK5
354#endif
355 use pm_kind, only: RKG => RK5
356 integer(IK) , intent(in) :: weisum1
357 integer(IK) , intent(in) :: weisum2
358 real(RKG) , intent(in) :: statKS
359 real(RKG) :: probKS
360 end function
361#endif
362
363#if RK4_ENABLED
364 PURE module function getProbKS_WII_D0_RK4(statKS, weisum1, weisum2) result(probKS)
365#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
366 !DEC$ ATTRIBUTES DLLEXPORT :: getProbKS_WII_D0_RK4
367#endif
368 use pm_kind, only: RKG => RK4
369 integer(IK) , intent(in) :: weisum1
370 integer(IK) , intent(in) :: weisum2
371 real(RKG) , intent(in) :: statKS
372 real(RKG) :: probKS
373 end function
374#endif
375
376#if RK3_ENABLED
377 PURE module function getProbKS_WII_D0_RK3(statKS, weisum1, weisum2) result(probKS)
378#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
379 !DEC$ ATTRIBUTES DLLEXPORT :: getProbKS_WII_D0_RK3
380#endif
381 use pm_kind, only: RKG => RK3
382 integer(IK) , intent(in) :: weisum1
383 integer(IK) , intent(in) :: weisum2
384 real(RKG) , intent(in) :: statKS
385 real(RKG) :: probKS
386 end function
387#endif
388
389#if RK2_ENABLED
390 PURE module function getProbKS_WII_D0_RK2(statKS, weisum1, weisum2) result(probKS)
391#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
392 !DEC$ ATTRIBUTES DLLEXPORT :: getProbKS_WII_D0_RK2
393#endif
394 use pm_kind, only: RKG => RK2
395 integer(IK) , intent(in) :: weisum1
396 integer(IK) , intent(in) :: weisum2
397 real(RKG) , intent(in) :: statKS
398 real(RKG) :: probKS
399 end function
400#endif
401
402#if RK1_ENABLED
403 PURE module function getProbKS_WII_D0_RK1(statKS, weisum1, weisum2) result(probKS)
404#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
405 !DEC$ ATTRIBUTES DLLEXPORT :: getProbKS_WII_D0_RK1
406#endif
407 use pm_kind, only: RKG => RK1
408 integer(IK) , intent(in) :: weisum1
409 integer(IK) , intent(in) :: weisum2
410 real(RKG) , intent(in) :: statKS
411 real(RKG) :: probKS
412 end function
413#endif
414
415 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
416
417 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
418 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
419 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
420
421 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
422
423#if RK5_ENABLED
424 PURE module function getProbKS_WRI_D0_RK5(statKS, weisum1, weisum2, wsqsum1) result(probKS)
425#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
426 !DEC$ ATTRIBUTES DLLEXPORT :: getProbKS_WRI_D0_RK5
427#endif
428 use pm_kind, only: RKG => RK5
429 real(RKG) , intent(in) :: weisum1, wsqsum1
430 integer(IK) , intent(in) :: weisum2
431 real(RKG) , intent(in) :: statKS
432 real(RKG) :: probKS
433 end function
434#endif
435
436#if RK4_ENABLED
437 PURE module function getProbKS_WRI_D0_RK4(statKS, weisum1, weisum2, wsqsum1) result(probKS)
438#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
439 !DEC$ ATTRIBUTES DLLEXPORT :: getProbKS_WRI_D0_RK4
440#endif
441 use pm_kind, only: RKG => RK4
442 real(RKG) , intent(in) :: weisum1, wsqsum1
443 integer(IK) , intent(in) :: weisum2
444 real(RKG) , intent(in) :: statKS
445 real(RKG) :: probKS
446 end function
447#endif
448
449#if RK3_ENABLED
450 PURE module function getProbKS_WRI_D0_RK3(statKS, weisum1, weisum2, wsqsum1) result(probKS)
451#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
452 !DEC$ ATTRIBUTES DLLEXPORT :: getProbKS_WRI_D0_RK3
453#endif
454 use pm_kind, only: RKG => RK3
455 real(RKG) , intent(in) :: weisum1, wsqsum1
456 real(RKG) , intent(in) :: weisum2
457 real(RKG) , intent(in) :: statKS
458 real(RKG) :: probKS
459 end function
460#endif
461
462#if RK2_ENABLED
463 PURE module function getProbKS_WRI_D0_RK2(statKS, weisum1, weisum2, wsqsum1) result(probKS)
464#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
465 !DEC$ ATTRIBUTES DLLEXPORT :: getProbKS_WRI_D0_RK2
466#endif
467 use pm_kind, only: RKG => RK2
468 real(RKG) , intent(in) :: weisum1, wsqsum1
469 integer(IK) , intent(in) :: weisum2
470 real(RKG) , intent(in) :: statKS
471 real(RKG) :: probKS
472 end function
473#endif
474
475#if RK1_ENABLED
476 PURE module function getProbKS_WRI_D0_RK1(statKS, weisum1, weisum2, wsqsum1) result(probKS)
477#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
478 !DEC$ ATTRIBUTES DLLEXPORT :: getProbKS_WRI_D0_RK1
479#endif
480 use pm_kind, only: RKG => RK1
481 real(RKG) , intent(in) :: weisum1, wsqsum1
482 integer(IK) , intent(in) :: weisum2
483 real(RKG) , intent(in) :: statKS
484 real(RKG) :: probKS
485 end function
486#endif
487
488 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
489
490 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
491 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
492 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
493
494 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
495
496#if RK5_ENABLED
497 PURE module function getProbKS_WRR_D0_RK5(statKS, weisum1, weisum2, wsqsum1, wsqsum2) result(probKS)
498#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
499 !DEC$ ATTRIBUTES DLLEXPORT :: getProbKS_WRR_D0_RK5
500#endif
501 use pm_kind, only: RKG => RK5
502 real(RKG) , intent(in) :: weisum1, wsqsum1
503 real(RKG) , intent(in) :: weisum2, wsqsum2
504 real(RKG) , intent(in) :: statKS
505 real(RKG) :: probKS
506 end function
507#endif
508
509#if RK4_ENABLED
510 PURE module function getProbKS_WRR_D0_RK4(statKS, weisum1, weisum2, wsqsum1, wsqsum2) result(probKS)
511#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
512 !DEC$ ATTRIBUTES DLLEXPORT :: getProbKS_WRR_D0_RK4
513#endif
514 use pm_kind, only: RKG => RK4
515 real(RKG) , intent(in) :: weisum1, wsqsum1
516 real(RKG) , intent(in) :: weisum2, wsqsum2
517 real(RKG) , intent(in) :: statKS
518 real(RKG) :: probKS
519 end function
520#endif
521
522#if RK3_ENABLED
523 PURE module function getProbKS_WRR_D0_RK3(statKS, weisum1, weisum2, wsqsum1, wsqsum2) result(probKS)
524#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
525 !DEC$ ATTRIBUTES DLLEXPORT :: getProbKS_WRR_D0_RK3
526#endif
527 use pm_kind, only: RKG => RK3
528 real(RKG) , intent(in) :: weisum1, wsqsum1
529 real(RKG) , intent(in) :: weisum2, wsqsum2
530 real(RKG) , intent(in) :: statKS
531 real(RKG) :: probKS
532 end function
533#endif
534
535#if RK2_ENABLED
536 PURE module function getProbKS_WRR_D0_RK2(statKS, weisum1, weisum2, wsqsum1, wsqsum2) result(probKS)
537#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
538 !DEC$ ATTRIBUTES DLLEXPORT :: getProbKS_WRR_D0_RK2
539#endif
540 use pm_kind, only: RKG => RK2
541 real(RKG) , intent(in) :: weisum1, wsqsum1
542 real(RKG) , intent(in) :: weisum2, wsqsum2
543 real(RKG) , intent(in) :: statKS
544 real(RKG) :: probKS
545 end function
546#endif
547
548#if RK1_ENABLED
549 PURE module function getProbKS_WRR_D0_RK1(statKS, weisum1, weisum2, wsqsum1, wsqsum2) result(probKS)
550#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
551 !DEC$ ATTRIBUTES DLLEXPORT :: getProbKS_WRR_D0_RK1
552#endif
553 use pm_kind, only: RKG => RK1
554 real(RKG) , intent(in) :: weisum1, wsqsum1
555 real(RKG) , intent(in) :: weisum2, wsqsum2
556 real(RKG) , intent(in) :: statKS
557 real(RKG) :: probKS
558 end function
559#endif
560
561 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
562
563 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
564 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
565 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
566
567 end interface
568
569!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
570
677
678 ! SX
679
680 interface setProbKS
681
682 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
683 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
684 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
685
686 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
687
688#if RK5_ENABLED
689 PURE module subroutine setProbKS_WIX_D0_RK5(probKS, quanKS, statKS, weisum1)
690#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
691 !DEC$ ATTRIBUTES DLLEXPORT :: setProbKS_WIX_D0_RK5
692#endif
693 use pm_kind, only: RKG => RK5
694 integer(IK) , intent(in) :: weisum1
695 real(RKG) , intent(in) :: statKS
696 real(RKG) , intent(out) :: probKS
697 real(RKG) , intent(out) :: quanKS
698 end subroutine
699#endif
700
701#if RK4_ENABLED
702 PURE module subroutine setProbKS_WIX_D0_RK4(probKS, quanKS, statKS, weisum1)
703#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
704 !DEC$ ATTRIBUTES DLLEXPORT :: setProbKS_WIX_D0_RK4
705#endif
706 use pm_kind, only: RKG => RK4
707 integer(IK) , intent(in) :: weisum1
708 real(RKG) , intent(in) :: statKS
709 real(RKG) , intent(out) :: probKS
710 real(RKG) , intent(out) :: quanKS
711 end subroutine
712#endif
713
714#if RK3_ENABLED
715 PURE module subroutine setProbKS_WIX_D0_RK3(probKS, quanKS, statKS, weisum1)
716#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
717 !DEC$ ATTRIBUTES DLLEXPORT :: setProbKS_WIX_D0_RK3
718#endif
719 use pm_kind, only: RKG => RK3
720 integer(IK) , intent(in) :: weisum1
721 real(RKG) , intent(in) :: statKS
722 real(RKG) , intent(out) :: probKS
723 real(RKG) , intent(out) :: quanKS
724 end subroutine
725#endif
726
727#if RK2_ENABLED
728 PURE module subroutine setProbKS_WIX_D0_RK2(probKS, quanKS, statKS, weisum1)
729#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
730 !DEC$ ATTRIBUTES DLLEXPORT :: setProbKS_WIX_D0_RK2
731#endif
732 use pm_kind, only: RKG => RK2
733 integer(IK) , intent(in) :: weisum1
734 real(RKG) , intent(in) :: statKS
735 real(RKG) , intent(out) :: probKS
736 real(RKG) , intent(out) :: quanKS
737 end subroutine
738#endif
739
740#if RK1_ENABLED
741 PURE module subroutine setProbKS_WIX_D0_RK1(probKS, quanKS, statKS, weisum1)
742#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
743 !DEC$ ATTRIBUTES DLLEXPORT :: setProbKS_WIX_D0_RK1
744#endif
745 use pm_kind, only: RKG => RK1
746 integer(IK) , intent(in) :: weisum1
747 real(RKG) , intent(in) :: statKS
748 real(RKG) , intent(out) :: probKS
749 real(RKG) , intent(out) :: quanKS
750 end subroutine
751#endif
752
753 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
754
755 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
756 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
757 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
758
759 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
760
761#if RK5_ENABLED
762 PURE module subroutine setProbKS_WRX_D0_RK5(probKS, quanKS, statKS, weisum1, wsqsum1)
763#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
764 !DEC$ ATTRIBUTES DLLEXPORT :: setProbKS_WRX_D0_RK5
765#endif
766 use pm_kind, only: RKG => RK5
767 real(RKG) , intent(in) :: weisum1, wsqsum1
768 real(RKG) , intent(in) :: statKS
769 real(RKG) , intent(out) :: probKS
770 real(RKG) , intent(out) :: quanKS
771 end subroutine
772#endif
773
774#if RK4_ENABLED
775 PURE module subroutine setProbKS_WRX_D0_RK4(probKS, quanKS, statKS, weisum1, wsqsum1)
776#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
777 !DEC$ ATTRIBUTES DLLEXPORT :: setProbKS_WRX_D0_RK4
778#endif
779 use pm_kind, only: RKG => RK4
780 real(RKG) , intent(in) :: weisum1, wsqsum1
781 real(RKG) , intent(in) :: statKS
782 real(RKG) , intent(out) :: probKS
783 real(RKG) , intent(out) :: quanKS
784 end subroutine
785#endif
786
787#if RK3_ENABLED
788 PURE module subroutine setProbKS_WRX_D0_RK3(probKS, quanKS, statKS, weisum1, wsqsum1)
789#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
790 !DEC$ ATTRIBUTES DLLEXPORT :: setProbKS_WRX_D0_RK3
791#endif
792 use pm_kind, only: RKG => RK3
793 real(RKG) , intent(in) :: weisum1, wsqsum1
794 real(RKG) , intent(in) :: statKS
795 real(RKG) , intent(out) :: probKS
796 real(RKG) , intent(out) :: quanKS
797 end subroutine
798#endif
799
800#if RK2_ENABLED
801 PURE module subroutine setProbKS_WRX_D0_RK2(probKS, quanKS, statKS, weisum1, wsqsum1)
802#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
803 !DEC$ ATTRIBUTES DLLEXPORT :: setProbKS_WRX_D0_RK2
804#endif
805 use pm_kind, only: RKG => RK2
806 real(RKG) , intent(in) :: weisum1, wsqsum1
807 real(RKG) , intent(in) :: statKS
808 real(RKG) , intent(out) :: probKS
809 real(RKG) , intent(out) :: quanKS
810 end subroutine
811#endif
812
813#if RK1_ENABLED
814 PURE module subroutine setProbKS_WRX_D0_RK1(probKS, quanKS, statKS, weisum1, wsqsum1)
815#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
816 !DEC$ ATTRIBUTES DLLEXPORT :: setProbKS_WRX_D0_RK1
817#endif
818 use pm_kind, only: RKG => RK1
819 real(RKG) , intent(in) :: weisum1, wsqsum1
820 real(RKG) , intent(in) :: statKS
821 real(RKG) , intent(out) :: probKS
822 real(RKG) , intent(out) :: quanKS
823 end subroutine
824#endif
825
826 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
827
828 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
829 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
830 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
831
832 end interface
833
834 ! SS
835
836 interface setProbKS
837
838 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
839 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
840 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
841
842 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
843
844#if RK5_ENABLED
845 PURE module subroutine setProbKS_WII_D0_RK5(probKS, quanKS, statKS, weisum1, weisum2)
846#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
847 !DEC$ ATTRIBUTES DLLEXPORT :: setProbKS_WII_D0_RK5
848#endif
849 use pm_kind, only: RKG => RK5
850 integer(IK) , intent(in) :: weisum1
851 integer(IK) , intent(in) :: weisum2
852 real(RKG) , intent(in) :: statKS
853 real(RKG) , intent(out) :: probKS
854 real(RKG) , intent(out) :: quanKS
855 end subroutine
856#endif
857
858#if RK4_ENABLED
859 PURE module subroutine setProbKS_WII_D0_RK4(probKS, quanKS, statKS, weisum1, weisum2)
860#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
861 !DEC$ ATTRIBUTES DLLEXPORT :: setProbKS_WII_D0_RK4
862#endif
863 use pm_kind, only: RKG => RK4
864 integer(IK) , intent(in) :: weisum1
865 integer(IK) , intent(in) :: weisum2
866 real(RKG) , intent(in) :: statKS
867 real(RKG) , intent(out) :: probKS
868 real(RKG) , intent(out) :: quanKS
869 end subroutine
870#endif
871
872#if RK3_ENABLED
873 PURE module subroutine setProbKS_WII_D0_RK3(probKS, quanKS, statKS, weisum1, weisum2)
874#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
875 !DEC$ ATTRIBUTES DLLEXPORT :: setProbKS_WII_D0_RK3
876#endif
877 use pm_kind, only: RKG => RK3
878 integer(IK) , intent(in) :: weisum1
879 integer(IK) , intent(in) :: weisum2
880 real(RKG) , intent(in) :: statKS
881 real(RKG) , intent(out) :: probKS
882 real(RKG) , intent(out) :: quanKS
883 end subroutine
884#endif
885
886#if RK2_ENABLED
887 PURE module subroutine setProbKS_WII_D0_RK2(probKS, quanKS, statKS, weisum1, weisum2)
888#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
889 !DEC$ ATTRIBUTES DLLEXPORT :: setProbKS_WII_D0_RK2
890#endif
891 use pm_kind, only: RKG => RK2
892 integer(IK) , intent(in) :: weisum1
893 integer(IK) , intent(in) :: weisum2
894 real(RKG) , intent(in) :: statKS
895 real(RKG) , intent(out) :: probKS
896 real(RKG) , intent(out) :: quanKS
897 end subroutine
898#endif
899
900#if RK1_ENABLED
901 PURE module subroutine setProbKS_WII_D0_RK1(probKS, quanKS, statKS, weisum1, weisum2)
902#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
903 !DEC$ ATTRIBUTES DLLEXPORT :: setProbKS_WII_D0_RK1
904#endif
905 use pm_kind, only: RKG => RK1
906 integer(IK) , intent(in) :: weisum1
907 integer(IK) , intent(in) :: weisum2
908 real(RKG) , intent(in) :: statKS
909 real(RKG) , intent(out) :: probKS
910 real(RKG) , intent(out) :: quanKS
911 end subroutine
912#endif
913
914 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
915
916 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
917 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
918 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
919
920 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
921
922#if RK5_ENABLED
923 PURE module subroutine setProbKS_WRI_D0_RK5(probKS, quanKS, statKS, weisum1, weisum2, wsqsum1)
924#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
925 !DEC$ ATTRIBUTES DLLEXPORT :: setProbKS_WRI_D0_RK5
926#endif
927 use pm_kind, only: RKG => RK5
928 real(RKG) , intent(in) :: weisum1, wsqsum1
929 integer(IK) , intent(in) :: weisum2
930 real(RKG) , intent(in) :: statKS
931 real(RKG) , intent(out) :: probKS
932 real(RKG) , intent(out) :: quanKS
933 end subroutine
934#endif
935
936#if RK4_ENABLED
937 PURE module subroutine setProbKS_WRI_D0_RK4(probKS, quanKS, statKS, weisum1, weisum2, wsqsum1)
938#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
939 !DEC$ ATTRIBUTES DLLEXPORT :: setProbKS_WRI_D0_RK4
940#endif
941 use pm_kind, only: RKG => RK4
942 real(RKG) , intent(in) :: weisum1, wsqsum1
943 integer(IK) , intent(in) :: weisum2
944 real(RKG) , intent(in) :: statKS
945 real(RKG) , intent(out) :: probKS
946 real(RKG) , intent(out) :: quanKS
947 end subroutine
948#endif
949
950#if RK3_ENABLED
951 PURE module subroutine setProbKS_WRI_D0_RK3(probKS, quanKS, statKS, weisum1, weisum2, wsqsum1)
952#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
953 !DEC$ ATTRIBUTES DLLEXPORT :: setProbKS_WRI_D0_RK3
954#endif
955 use pm_kind, only: RKG => RK3
956 real(RKG) , intent(in) :: weisum1, wsqsum1
957 integer(IK) , intent(in) :: weisum2
958 real(RKG) , intent(in) :: statKS
959 real(RKG) , intent(out) :: probKS
960 real(RKG) , intent(out) :: quanKS
961 end subroutine
962#endif
963
964#if RK2_ENABLED
965 PURE module subroutine setProbKS_WRI_D0_RK2(probKS, quanKS, statKS, weisum1, weisum2, wsqsum1)
966#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
967 !DEC$ ATTRIBUTES DLLEXPORT :: setProbKS_WRI_D0_RK2
968#endif
969 use pm_kind, only: RKG => RK2
970 real(RKG) , intent(in) :: weisum1, wsqsum1
971 integer(IK) , intent(in) :: weisum2
972 real(RKG) , intent(in) :: statKS
973 real(RKG) , intent(out) :: probKS
974 real(RKG) , intent(out) :: quanKS
975 end subroutine
976#endif
977
978#if RK1_ENABLED
979 PURE module subroutine setProbKS_WRI_D0_RK1(probKS, quanKS, statKS, weisum1, weisum2, wsqsum1)
980#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
981 !DEC$ ATTRIBUTES DLLEXPORT :: setProbKS_WRI_D0_RK1
982#endif
983 use pm_kind, only: RKG => RK1
984 real(RKG) , intent(in) :: weisum1, wsqsum1
985 integer(IK) , intent(in) :: weisum2
986 real(RKG) , intent(in) :: statKS
987 real(RKG) , intent(out) :: probKS
988 real(RKG) , intent(out) :: quanKS
989 end subroutine
990#endif
991
992 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
993
994 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
995 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
996 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
997
998 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
999
1000#if RK5_ENABLED
1001 PURE module subroutine setProbKS_WRR_D0_RK5(probKS, quanKS, statKS, weisum1, weisum2, wsqsum1, wsqsum2)
1002#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1003 !DEC$ ATTRIBUTES DLLEXPORT :: setProbKS_WRR_D0_RK5
1004#endif
1005 use pm_kind, only: RKG => RK5
1006 real(RKG) , intent(in) :: weisum1, wsqsum1
1007 real(RKG) , intent(in) :: weisum2, wsqsum2
1008 real(RKG) , intent(in) :: statKS
1009 real(RKG) , intent(out) :: probKS
1010 real(RKG) , intent(out) :: quanKS
1011 end subroutine
1012#endif
1013
1014#if RK4_ENABLED
1015 PURE module subroutine setProbKS_WRR_D0_RK4(probKS, quanKS, statKS, weisum1, weisum2, wsqsum1, wsqsum2)
1016#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1017 !DEC$ ATTRIBUTES DLLEXPORT :: setProbKS_WRR_D0_RK4
1018#endif
1019 use pm_kind, only: RKG => RK4
1020 real(RKG) , intent(in) :: weisum1, wsqsum1
1021 real(RKG) , intent(in) :: weisum2, wsqsum2
1022 real(RKG) , intent(in) :: statKS
1023 real(RKG) , intent(out) :: probKS
1024 real(RKG) , intent(out) :: quanKS
1025 end subroutine
1026#endif
1027
1028#if RK3_ENABLED
1029 PURE module subroutine setProbKS_WRR_D0_RK3(probKS, quanKS, statKS, weisum1, weisum2, wsqsum1, wsqsum2)
1030#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1031 !DEC$ ATTRIBUTES DLLEXPORT :: setProbKS_WRR_D0_RK3
1032#endif
1033 use pm_kind, only: RKG => RK3
1034 real(RKG) , intent(in) :: weisum1, wsqsum1
1035 real(RKG) , intent(in) :: weisum2, wsqsum2
1036 real(RKG) , intent(in) :: statKS
1037 real(RKG) , intent(out) :: probKS
1038 real(RKG) , intent(out) :: quanKS
1039 end subroutine
1040#endif
1041
1042#if RK2_ENABLED
1043 PURE module subroutine setProbKS_WRR_D0_RK2(probKS, quanKS, statKS, weisum1, weisum2, wsqsum1, wsqsum2)
1044#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1045 !DEC$ ATTRIBUTES DLLEXPORT :: setProbKS_WRR_D0_RK2
1046#endif
1047 use pm_kind, only: RKG => RK2
1048 real(RKG) , intent(in) :: weisum1, wsqsum1
1049 real(RKG) , intent(in) :: weisum2, wsqsum2
1050 real(RKG) , intent(in) :: statKS
1051 real(RKG) , intent(out) :: probKS
1052 real(RKG) , intent(out) :: quanKS
1053 end subroutine
1054#endif
1055
1056#if RK1_ENABLED
1057 PURE module subroutine setProbKS_WRR_D0_RK1(probKS, quanKS, statKS, weisum1, weisum2, wsqsum1, wsqsum2)
1058#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1059 !DEC$ ATTRIBUTES DLLEXPORT :: setProbKS_WRR_D0_RK1
1060#endif
1061 use pm_kind, only: RKG => RK1
1062 real(RKG) , intent(in) :: weisum1, wsqsum1
1063 real(RKG) , intent(in) :: weisum2, wsqsum2
1064 real(RKG) , intent(in) :: statKS
1065 real(RKG) , intent(out) :: probKS
1066 real(RKG) , intent(out) :: quanKS
1067 end subroutine
1068#endif
1069
1070 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1071
1072 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1073 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1074 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1075
1076 end interface
1077
1078!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1079
1080end module pm_statest ! LCOV_EXCL_LINE
Generate and return the Kolmogorov distance of a sample1 of size nsam1 from another sample sample2 of...
Return the Kolmogorov distance of a sample1 of size nsam1 from another sample sample2 of size nsam2 o...
Generate and return the probability of the null-hypothesis that sample1 of size nsam1 originates from...
Definition: pm_statest.F90:196
Return the probability and the corresponding Kolmogorov distribution quantile of the null-hypothesis ...
Definition: pm_statest.F90:680
This module contains classes and procedures for computing the Kolmogorov statistical distance.
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 RK
The default real kind in the ParaMonte library: real64 in Fortran, c_double in C-Fortran Interoperati...
Definition: pm_kind.F90:543
integer, parameter RK3
Definition: pm_kind.F90:500
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 classes and procedures for performing various statistical tests.
Definition: pm_statest.F90:77