ParaMonte Fortran 2.0.0
Parallel Monte Carlo and Machine Learning Library
See the latest version documentation.
pm_sampleACT.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
48
49!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
50
52
53 use pm_kind, only: SK, IK, LK
54
55 implicit none
56
57 character(*, SK), parameter :: MODULE_NAME = "@pm_sampleACT"
58
59!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
60
61 type, abstract :: act_type
62 end type
63
64 type, extends(act_type) :: cumSum_type
65 real :: signif = 0.
66 end type
67
68 type, extends(act_type) :: cumSumMax_type
69 end type
70
71 type, extends(act_type) :: batchMeans_type
72 integer(IK) :: size = 0_IK
73 end type
74
75 type, extends(act_type) :: batchMeansMax_type
76 integer(IK) :: smin = 2_IK
77 integer(IK) :: smax = huge(0_IK)
78 integer(IK) :: step = 1_IK
79 end type
80
81 type(cumSum_type), parameter :: cumSum = cumSum_type()
82#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
83 !DIR$ ATTRIBUTES DLLEXPORT :: cumSum
84#endif
85 type(cumSumMax_type), parameter :: cumSumMax = cumSumMax_type()
86#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
87 !DIR$ ATTRIBUTES DLLEXPORT :: cumSumMax
88#endif
90#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
91 !DIR$ ATTRIBUTES DLLEXPORT :: batchMeans
92#endif
94#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
95 !DIR$ ATTRIBUTES DLLEXPORT :: batchMeansMax
96#endif
97
98!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
99
217
218 ! D1
219
220 interface getACT
221
222 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
223 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
224 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
225
226 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
227
228#if RK5_ENABLED
229 module function getACT_DEF_ONE_D1_RK5(seq) result(act)
230#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
231 !DEC$ ATTRIBUTES DLLEXPORT :: getACT_DEF_ONE_D1_RK5
232#endif
233 use pm_kind, only: RKG => RK5
234 real(RKG) , intent(in) , contiguous :: seq(:)
235 real(RKG) :: act
236 end function
237#endif
238
239#if RK4_ENABLED
240 module function getACT_DEF_ONE_D1_RK4(seq) result(act)
241#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
242 !DEC$ ATTRIBUTES DLLEXPORT :: getACT_DEF_ONE_D1_RK4
243#endif
244 use pm_kind, only: RKG => RK4
245 real(RKG) , intent(in) , contiguous :: seq(:)
246 real(RKG) :: act
247 end function
248#endif
249
250#if RK3_ENABLED
251 module function getACT_DEF_ONE_D1_RK3(seq) result(act)
252#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
253 !DEC$ ATTRIBUTES DLLEXPORT :: getACT_DEF_ONE_D1_RK3
254#endif
255 use pm_kind, only: RKG => RK3
256 real(RKG) , intent(in) , contiguous :: seq(:)
257 real(RKG) :: act
258 end function
259#endif
260
261#if RK2_ENABLED
262 module function getACT_DEF_ONE_D1_RK2(seq) result(act)
263#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
264 !DEC$ ATTRIBUTES DLLEXPORT :: getACT_DEF_ONE_D1_RK2
265#endif
266 use pm_kind, only: RKG => RK2
267 real(RKG) , intent(in) , contiguous :: seq(:)
268 real(RKG) :: act
269 end function
270#endif
271
272#if RK1_ENABLED
273 module function getACT_DEF_ONE_D1_RK1(seq) result(act)
274#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
275 !DEC$ ATTRIBUTES DLLEXPORT :: getACT_DEF_ONE_D1_RK1
276#endif
277 use pm_kind, only: RKG => RK1
278 real(RKG) , intent(in) , contiguous :: seq(:)
279 real(RKG) :: act
280 end function
281#endif
282
283 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
284
285#if RK5_ENABLED
286 module function getACT_DEF_WTI_D1_RK5(seq, weight) result(act)
287#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
288 !DEC$ ATTRIBUTES DLLEXPORT :: getACT_DEF_WTI_D1_RK5
289#endif
290 use pm_kind, only: RKG => RK5
291 integer(IK) , intent(in) , contiguous :: weight(:)
292 real(RKG) , intent(in) , contiguous :: seq(:)
293 real(RKG) :: act
294 end function
295#endif
296
297#if RK4_ENABLED
298 module function getACT_DEF_WTI_D1_RK4(seq, weight) result(act)
299#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
300 !DEC$ ATTRIBUTES DLLEXPORT :: getACT_DEF_WTI_D1_RK4
301#endif
302 use pm_kind, only: RKG => RK4
303 integer(IK) , intent(in) , contiguous :: weight(:)
304 real(RKG) , intent(in) , contiguous :: seq(:)
305 real(RKG) :: act
306 end function
307#endif
308
309#if RK3_ENABLED
310 module function getACT_DEF_WTI_D1_RK3(seq, weight) result(act)
311#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
312 !DEC$ ATTRIBUTES DLLEXPORT :: getACT_DEF_WTI_D1_RK3
313#endif
314 use pm_kind, only: RKG => RK3
315 integer(IK) , intent(in) , contiguous :: weight(:)
316 real(RKG) , intent(in) , contiguous :: seq(:)
317 real(RKG) :: act
318 end function
319#endif
320
321#if RK2_ENABLED
322 module function getACT_DEF_WTI_D1_RK2(seq, weight) result(act)
323#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
324 !DEC$ ATTRIBUTES DLLEXPORT :: getACT_DEF_WTI_D1_RK2
325#endif
326 use pm_kind, only: RKG => RK2
327 integer(IK) , intent(in) , contiguous :: weight(:)
328 real(RKG) , intent(in) , contiguous :: seq(:)
329 real(RKG) :: act
330 end function
331#endif
332
333#if RK1_ENABLED
334 module function getACT_DEF_WTI_D1_RK1(seq, weight) result(act)
335#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
336 !DEC$ ATTRIBUTES DLLEXPORT :: getACT_DEF_WTI_D1_RK1
337#endif
338 use pm_kind, only: RKG => RK1
339 integer(IK) , intent(in) , contiguous :: weight(:)
340 real(RKG) , intent(in) , contiguous :: seq(:)
341 real(RKG) :: act
342 end function
343#endif
344
345 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
346
347 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
348 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
349 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
350
351 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
352
353#if RK5_ENABLED
354 module function getACT_CSD_ONE_D1_RK5(seq, method) result(act)
355#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
356 !DEC$ ATTRIBUTES DLLEXPORT :: getACT_CSD_ONE_D1_RK5
357#endif
358 use pm_kind, only: RKG => RK5
359 type(cumSum_type) , intent(in) :: method
360 real(RKG) , intent(in) , contiguous :: seq(:)
361 real(RKG) :: act
362 end function
363#endif
364
365#if RK4_ENABLED
366 module function getACT_CSD_ONE_D1_RK4(seq, method) result(act)
367#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
368 !DEC$ ATTRIBUTES DLLEXPORT :: getACT_CSD_ONE_D1_RK4
369#endif
370 use pm_kind, only: RKG => RK4
371 type(cumSum_type) , intent(in) :: method
372 real(RKG) , intent(in) , contiguous :: seq(:)
373 real(RKG) :: act
374 end function
375#endif
376
377#if RK3_ENABLED
378 module function getACT_CSD_ONE_D1_RK3(seq, method) result(act)
379#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
380 !DEC$ ATTRIBUTES DLLEXPORT :: getACT_CSD_ONE_D1_RK3
381#endif
382 use pm_kind, only: RKG => RK3
383 type(cumSum_type) , intent(in) :: method
384 real(RKG) , intent(in) , contiguous :: seq(:)
385 real(RKG) :: act
386 end function
387#endif
388
389#if RK2_ENABLED
390 module function getACT_CSD_ONE_D1_RK2(seq, method) result(act)
391#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
392 !DEC$ ATTRIBUTES DLLEXPORT :: getACT_CSD_ONE_D1_RK2
393#endif
394 use pm_kind, only: RKG => RK2
395 type(cumSum_type) , intent(in) :: method
396 real(RKG) , intent(in) , contiguous :: seq(:)
397 real(RKG) :: act
398 end function
399#endif
400
401#if RK1_ENABLED
402 module function getACT_CSD_ONE_D1_RK1(seq, method) result(act)
403#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
404 !DEC$ ATTRIBUTES DLLEXPORT :: getACT_CSD_ONE_D1_RK1
405#endif
406 use pm_kind, only: RKG => RK1
407 type(cumSum_type) , intent(in) :: method
408 real(RKG) , intent(in) , contiguous :: seq(:)
409 real(RKG) :: act
410 end function
411#endif
412
413 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
414
415#if RK5_ENABLED
416 module function getACT_CSD_WTI_D1_RK5(seq, weight, method) result(act)
417#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
418 !DEC$ ATTRIBUTES DLLEXPORT :: getACT_CSD_WTI_D1_RK5
419#endif
420 use pm_kind, only: RKG => RK5
421 type(cumSum_type) , intent(in) :: method
422 integer(IK) , intent(in) , contiguous :: weight(:)
423 real(RKG) , intent(in) , contiguous :: seq(:)
424 real(RKG) :: act
425 end function
426#endif
427
428#if RK4_ENABLED
429 module function getACT_CSD_WTI_D1_RK4(seq, weight, method) result(act)
430#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
431 !DEC$ ATTRIBUTES DLLEXPORT :: getACT_CSD_WTI_D1_RK4
432#endif
433 use pm_kind, only: RKG => RK4
434 type(cumSum_type) , intent(in) :: method
435 integer(IK) , intent(in) , contiguous :: weight(:)
436 real(RKG) , intent(in) , contiguous :: seq(:)
437 real(RKG) :: act
438 end function
439#endif
440
441#if RK3_ENABLED
442 module function getACT_CSD_WTI_D1_RK3(seq, weight, method) result(act)
443#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
444 !DEC$ ATTRIBUTES DLLEXPORT :: getACT_CSD_WTI_D1_RK3
445#endif
446 use pm_kind, only: RKG => RK3
447 type(cumSum_type) , intent(in) :: method
448 integer(IK) , intent(in) , contiguous :: weight(:)
449 real(RKG) , intent(in) , contiguous :: seq(:)
450 real(RKG) :: act
451 end function
452#endif
453
454#if RK2_ENABLED
455 module function getACT_CSD_WTI_D1_RK2(seq, weight, method) result(act)
456#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
457 !DEC$ ATTRIBUTES DLLEXPORT :: getACT_CSD_WTI_D1_RK2
458#endif
459 use pm_kind, only: RKG => RK2
460 type(cumSum_type) , intent(in) :: method
461 integer(IK) , intent(in) , contiguous :: weight(:)
462 real(RKG) , intent(in) , contiguous :: seq(:)
463 real(RKG) :: act
464 end function
465#endif
466
467#if RK1_ENABLED
468 module function getACT_CSD_WTI_D1_RK1(seq, weight, method) result(act)
469#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
470 !DEC$ ATTRIBUTES DLLEXPORT :: getACT_CSD_WTI_D1_RK1
471#endif
472 use pm_kind, only: RKG => RK1
473 type(cumSum_type) , intent(in) :: method
474 integer(IK) , intent(in) , contiguous :: weight(:)
475 real(RKG) , intent(in) , contiguous :: seq(:)
476 real(RKG) :: act
477 end function
478#endif
479
480 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
481
482 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
483 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
484 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
485
486 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
487
488#if RK5_ENABLED
489 module function getACT_CSM_ONE_D1_RK5(seq, method) result(act)
490#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
491 !DEC$ ATTRIBUTES DLLEXPORT :: getACT_CSM_ONE_D1_RK5
492#endif
493 use pm_kind, only: RKG => RK5
494 type(cumSumMax_type) , intent(in) :: method
495 real(RKG) , intent(in) , contiguous :: seq(:)
496 real(RKG) :: act
497 end function
498#endif
499
500#if RK4_ENABLED
501 module function getACT_CSM_ONE_D1_RK4(seq, method) result(act)
502#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
503 !DEC$ ATTRIBUTES DLLEXPORT :: getACT_CSM_ONE_D1_RK4
504#endif
505 use pm_kind, only: RKG => RK4
506 type(cumSumMax_type) , intent(in) :: method
507 real(RKG) , intent(in) , contiguous :: seq(:)
508 real(RKG) :: act
509 end function
510#endif
511
512#if RK3_ENABLED
513 module function getACT_CSM_ONE_D1_RK3(seq, method) result(act)
514#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
515 !DEC$ ATTRIBUTES DLLEXPORT :: getACT_CSM_ONE_D1_RK3
516#endif
517 use pm_kind, only: RKG => RK3
518 type(cumSumMax_type) , intent(in) :: method
519 real(RKG) , intent(in) , contiguous :: seq(:)
520 real(RKG) :: act
521 end function
522#endif
523
524#if RK2_ENABLED
525 module function getACT_CSM_ONE_D1_RK2(seq, method) result(act)
526#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
527 !DEC$ ATTRIBUTES DLLEXPORT :: getACT_CSM_ONE_D1_RK2
528#endif
529 use pm_kind, only: RKG => RK2
530 type(cumSumMax_type) , intent(in) :: method
531 real(RKG) , intent(in) , contiguous :: seq(:)
532 real(RKG) :: act
533 end function
534#endif
535
536#if RK1_ENABLED
537 module function getACT_CSM_ONE_D1_RK1(seq, method) result(act)
538#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
539 !DEC$ ATTRIBUTES DLLEXPORT :: getACT_CSM_ONE_D1_RK1
540#endif
541 use pm_kind, only: RKG => RK1
542 type(cumSumMax_type) , intent(in) :: method
543 real(RKG) , intent(in) , contiguous :: seq(:)
544 real(RKG) :: act
545 end function
546#endif
547
548 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
549
550#if RK5_ENABLED
551 module function getACT_CSM_WTI_D1_RK5(seq, weight, method) result(act)
552#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
553 !DEC$ ATTRIBUTES DLLEXPORT :: getACT_CSM_WTI_D1_RK5
554#endif
555 use pm_kind, only: RKG => RK5
556 type(cumSumMax_type) , intent(in) :: method
557 integer(IK) , intent(in) , contiguous :: weight(:)
558 real(RKG) , intent(in) , contiguous :: seq(:)
559 real(RKG) :: act
560 end function
561#endif
562
563#if RK4_ENABLED
564 module function getACT_CSM_WTI_D1_RK4(seq, weight, method) result(act)
565#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
566 !DEC$ ATTRIBUTES DLLEXPORT :: getACT_CSM_WTI_D1_RK4
567#endif
568 use pm_kind, only: RKG => RK4
569 type(cumSumMax_type) , intent(in) :: method
570 integer(IK) , intent(in) , contiguous :: weight(:)
571 real(RKG) , intent(in) , contiguous :: seq(:)
572 real(RKG) :: act
573 end function
574#endif
575
576#if RK3_ENABLED
577 module function getACT_CSM_WTI_D1_RK3(seq, weight, method) result(act)
578#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
579 !DEC$ ATTRIBUTES DLLEXPORT :: getACT_CSM_WTI_D1_RK3
580#endif
581 use pm_kind, only: RKG => RK3
582 type(cumSumMax_type) , intent(in) :: method
583 integer(IK) , intent(in) , contiguous :: weight(:)
584 real(RKG) , intent(in) , contiguous :: seq(:)
585 real(RKG) :: act
586 end function
587#endif
588
589#if RK2_ENABLED
590 module function getACT_CSM_WTI_D1_RK2(seq, weight, method) result(act)
591#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
592 !DEC$ ATTRIBUTES DLLEXPORT :: getACT_CSM_WTI_D1_RK2
593#endif
594 use pm_kind, only: RKG => RK2
595 type(cumSumMax_type) , intent(in) :: method
596 integer(IK) , intent(in) , contiguous :: weight(:)
597 real(RKG) , intent(in) , contiguous :: seq(:)
598 real(RKG) :: act
599 end function
600#endif
601
602#if RK1_ENABLED
603 module function getACT_CSM_WTI_D1_RK1(seq, weight, method) result(act)
604#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
605 !DEC$ ATTRIBUTES DLLEXPORT :: getACT_CSM_WTI_D1_RK1
606#endif
607 use pm_kind, only: RKG => RK1
608 type(cumSumMax_type) , intent(in) :: method
609 integer(IK) , intent(in) , contiguous :: weight(:)
610 real(RKG) , intent(in) , contiguous :: seq(:)
611 real(RKG) :: act
612 end function
613#endif
614
615 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
616
617 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
618 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
619 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
620
621 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
622
623#if RK5_ENABLED
624 module function getACT_BMD_ONE_D1_RK5(seq, method) result(act)
625#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
626 !DEC$ ATTRIBUTES DLLEXPORT :: getACT_BMD_ONE_D1_RK5
627#endif
628 use pm_kind, only: RKG => RK5
629 type(batchMeans_type) , intent(in) :: method
630 real(RKG) , intent(in) , contiguous :: seq(:)
631 real(RKG) :: act
632 end function
633#endif
634
635#if RK4_ENABLED
636 module function getACT_BMD_ONE_D1_RK4(seq, method) result(act)
637#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
638 !DEC$ ATTRIBUTES DLLEXPORT :: getACT_BMD_ONE_D1_RK4
639#endif
640 use pm_kind, only: RKG => RK4
641 type(batchMeans_type) , intent(in) :: method
642 real(RKG) , intent(in) , contiguous :: seq(:)
643 real(RKG) :: act
644 end function
645#endif
646
647#if RK3_ENABLED
648 module function getACT_BMD_ONE_D1_RK3(seq, method) result(act)
649#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
650 !DEC$ ATTRIBUTES DLLEXPORT :: getACT_BMD_ONE_D1_RK3
651#endif
652 use pm_kind, only: RKG => RK3
653 type(batchMeans_type) , intent(in) :: method
654 real(RKG) , intent(in) , contiguous :: seq(:)
655 real(RKG) :: act
656 end function
657#endif
658
659#if RK2_ENABLED
660 module function getACT_BMD_ONE_D1_RK2(seq, method) result(act)
661#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
662 !DEC$ ATTRIBUTES DLLEXPORT :: getACT_BMD_ONE_D1_RK2
663#endif
664 use pm_kind, only: RKG => RK2
665 type(batchMeans_type) , intent(in) :: method
666 real(RKG) , intent(in) , contiguous :: seq(:)
667 real(RKG) :: act
668 end function
669#endif
670
671#if RK1_ENABLED
672 module function getACT_BMD_ONE_D1_RK1(seq, method) result(act)
673#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
674 !DEC$ ATTRIBUTES DLLEXPORT :: getACT_BMD_ONE_D1_RK1
675#endif
676 use pm_kind, only: RKG => RK1
677 type(batchMeans_type) , intent(in) :: method
678 real(RKG) , intent(in) , contiguous :: seq(:)
679 real(RKG) :: act
680 end function
681#endif
682
683 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
684
685#if RK5_ENABLED
686 module function getACT_BMD_WTI_D1_RK5(seq, weight, method) result(act)
687#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
688 !DEC$ ATTRIBUTES DLLEXPORT :: getACT_BMD_WTI_D1_RK5
689#endif
690 use pm_kind, only: RKG => RK5
691 type(batchMeans_type) , intent(in) :: method
692 integer(IK) , intent(in) , contiguous :: weight(:)
693 real(RKG) , intent(in) , contiguous :: seq(:)
694 real(RKG) :: act
695 end function
696#endif
697
698#if RK4_ENABLED
699 module function getACT_BMD_WTI_D1_RK4(seq, weight, method) result(act)
700#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
701 !DEC$ ATTRIBUTES DLLEXPORT :: getACT_BMD_WTI_D1_RK4
702#endif
703 use pm_kind, only: RKG => RK4
704 type(batchMeans_type) , intent(in) :: method
705 integer(IK) , intent(in) , contiguous :: weight(:)
706 real(RKG) , intent(in) , contiguous :: seq(:)
707 real(RKG) :: act
708 end function
709#endif
710
711#if RK3_ENABLED
712 module function getACT_BMD_WTI_D1_RK3(seq, weight, method) result(act)
713#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
714 !DEC$ ATTRIBUTES DLLEXPORT :: getACT_BMD_WTI_D1_RK3
715#endif
716 use pm_kind, only: RKG => RK3
717 type(batchMeans_type) , intent(in) :: method
718 integer(IK) , intent(in) , contiguous :: weight(:)
719 real(RKG) , intent(in) , contiguous :: seq(:)
720 real(RKG) :: act
721 end function
722#endif
723
724#if RK2_ENABLED
725 module function getACT_BMD_WTI_D1_RK2(seq, weight, method) result(act)
726#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
727 !DEC$ ATTRIBUTES DLLEXPORT :: getACT_BMD_WTI_D1_RK2
728#endif
729 use pm_kind, only: RKG => RK2
730 type(batchMeans_type) , intent(in) :: method
731 integer(IK) , intent(in) , contiguous :: weight(:)
732 real(RKG) , intent(in) , contiguous :: seq(:)
733 real(RKG) :: act
734 end function
735#endif
736
737#if RK1_ENABLED
738 module function getACT_BMD_WTI_D1_RK1(seq, weight, method) result(act)
739#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
740 !DEC$ ATTRIBUTES DLLEXPORT :: getACT_BMD_WTI_D1_RK1
741#endif
742 use pm_kind, only: RKG => RK1
743 type(batchMeans_type) , intent(in) :: method
744 integer(IK) , intent(in) , contiguous :: weight(:)
745 real(RKG) , intent(in) , contiguous :: seq(:)
746 real(RKG) :: act
747 end function
748#endif
749
750 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
751
752 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
753 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
754 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
755
756 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
757
758#if RK5_ENABLED
759 module function getACT_BMM_ONE_D1_RK5(seq, method) result(act)
760#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
761 !DEC$ ATTRIBUTES DLLEXPORT :: getACT_BMM_ONE_D1_RK5
762#endif
763 use pm_kind, only: RKG => RK5
764 type(batchMeansMax_type), intent(in) :: method
765 real(RKG) , intent(in) , contiguous :: seq(:)
766 real(RKG) :: act
767 end function
768#endif
769
770#if RK4_ENABLED
771 module function getACT_BMM_ONE_D1_RK4(seq, method) result(act)
772#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
773 !DEC$ ATTRIBUTES DLLEXPORT :: getACT_BMM_ONE_D1_RK4
774#endif
775 use pm_kind, only: RKG => RK4
776 type(batchMeansMax_type), intent(in) :: method
777 real(RKG) , intent(in) , contiguous :: seq(:)
778 real(RKG) :: act
779 end function
780#endif
781
782#if RK3_ENABLED
783 module function getACT_BMM_ONE_D1_RK3(seq, method) result(act)
784#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
785 !DEC$ ATTRIBUTES DLLEXPORT :: getACT_BMM_ONE_D1_RK3
786#endif
787 use pm_kind, only: RKG => RK3
788 type(batchMeansMax_type), intent(in) :: method
789 real(RKG) , intent(in) , contiguous :: seq(:)
790 real(RKG) :: act
791 end function
792#endif
793
794#if RK2_ENABLED
795 module function getACT_BMM_ONE_D1_RK2(seq, method) result(act)
796#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
797 !DEC$ ATTRIBUTES DLLEXPORT :: getACT_BMM_ONE_D1_RK2
798#endif
799 use pm_kind, only: RKG => RK2
800 type(batchMeansMax_type), intent(in) :: method
801 real(RKG) , intent(in) , contiguous :: seq(:)
802 real(RKG) :: act
803 end function
804#endif
805
806#if RK1_ENABLED
807 module function getACT_BMM_ONE_D1_RK1(seq, method) result(act)
808#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
809 !DEC$ ATTRIBUTES DLLEXPORT :: getACT_BMM_ONE_D1_RK1
810#endif
811 use pm_kind, only: RKG => RK1
812 type(batchMeansMax_type), intent(in) :: method
813 real(RKG) , intent(in) , contiguous :: seq(:)
814 real(RKG) :: act
815 end function
816#endif
817
818 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
819
820#if RK5_ENABLED
821 module function getACT_BMM_WTI_D1_RK5(seq, weight, method) result(act)
822#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
823 !DEC$ ATTRIBUTES DLLEXPORT :: getACT_BMM_WTI_D1_RK5
824#endif
825 use pm_kind, only: RKG => RK5
826 type(batchMeansMax_type), intent(in) :: method
827 integer(IK) , intent(in) , contiguous :: weight(:)
828 real(RKG) , intent(in) , contiguous :: seq(:)
829 real(RKG) :: act
830 end function
831#endif
832
833#if RK4_ENABLED
834 module function getACT_BMM_WTI_D1_RK4(seq, weight, method) result(act)
835#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
836 !DEC$ ATTRIBUTES DLLEXPORT :: getACT_BMM_WTI_D1_RK4
837#endif
838 use pm_kind, only: RKG => RK4
839 type(batchMeansMax_type), intent(in) :: method
840 integer(IK) , intent(in) , contiguous :: weight(:)
841 real(RKG) , intent(in) , contiguous :: seq(:)
842 real(RKG) :: act
843 end function
844#endif
845
846#if RK3_ENABLED
847 module function getACT_BMM_WTI_D1_RK3(seq, weight, method) result(act)
848#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
849 !DEC$ ATTRIBUTES DLLEXPORT :: getACT_BMM_WTI_D1_RK3
850#endif
851 use pm_kind, only: RKG => RK3
852 type(batchMeansMax_type), intent(in) :: method
853 integer(IK) , intent(in) , contiguous :: weight(:)
854 real(RKG) , intent(in) , contiguous :: seq(:)
855 real(RKG) :: act
856 end function
857#endif
858
859#if RK2_ENABLED
860 module function getACT_BMM_WTI_D1_RK2(seq, weight, method) result(act)
861#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
862 !DEC$ ATTRIBUTES DLLEXPORT :: getACT_BMM_WTI_D1_RK2
863#endif
864 use pm_kind, only: RKG => RK2
865 type(batchMeansMax_type), intent(in) :: method
866 integer(IK) , intent(in) , contiguous :: weight(:)
867 real(RKG) , intent(in) , contiguous :: seq(:)
868 real(RKG) :: act
869 end function
870#endif
871
872#if RK1_ENABLED
873 module function getACT_BMM_WTI_D1_RK1(seq, weight, method) result(act)
874#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
875 !DEC$ ATTRIBUTES DLLEXPORT :: getACT_BMM_WTI_D1_RK1
876#endif
877 use pm_kind, only: RKG => RK1
878 type(batchMeansMax_type), intent(in) :: method
879 integer(IK) , intent(in) , contiguous :: weight(:)
880 real(RKG) , intent(in) , contiguous :: seq(:)
881 real(RKG) :: act
882 end function
883#endif
884
885 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
886
887 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
888 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
889 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
890
891 end interface getACT
892
893!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
894
895end module pm_sampleACT ! LCOV_EXCL_LINE
Generate and return the integrated auto-correlation time (ACT) of the discrete signal.
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 classes and procedures for computing properties related to the auto correlation ...
type(batchMeansMax_type), parameter batchMeansMax
character(*, SK), parameter MODULE_NAME
type(batchMeans_type), parameter batchMeans
type(cumSumMax_type), parameter cumSumMax
type(cumSum_type), parameter cumSum