ParaMonte Fortran 2.0.0
Parallel Monte Carlo and Machine Learning Library
See the latest version documentation.
pm_distUnifElls.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
152
153!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
154
156
157 use pm_kind, only: SK, IK, LK
158 use pm_distUnif, only: rngf_type
162
163 implicit none
164
165 character(*, SK), parameter :: MODULE_NAME = "@pm_distUnifElls"
166
167!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
168
203 end type
204
205!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
206
307
308 ! RNGF
309
311
312 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
313
314#if RK5_ENABLED
315 impure module function getMMUP_RNGF_AM_DC_XXX_RK5(rng, mean, nsim, normed) result(logPDF)
316#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
317 !DEC$ ATTRIBUTES DLLEXPORT :: getMMUP_RNGF_AM_DC_XXX_RK5
318#endif
319 use pm_kind, only: RKG => RK5
320 type(rngf_type) , intent(in) :: rng
321 real(RKG) , intent(in) , contiguous :: mean(:,:)
322 integer(IK) , intent(in) , optional :: nsim
323 logical(LK) , intent(in) , optional :: normed
324 real(RKG) :: logPDF
325 end function
326#endif
327
328#if RK4_ENABLED
329 impure module function getMMUP_RNGF_AM_DC_XXX_RK4(rng, mean, nsim, normed) result(logPDF)
330#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
331 !DEC$ ATTRIBUTES DLLEXPORT :: getMMUP_RNGF_AM_DC_XXX_RK4
332#endif
333 use pm_kind, only: RKG => RK4
334 type(rngf_type) , intent(in) :: rng
335 real(RKG) , intent(in) , contiguous :: mean(:,:)
336 integer(IK) , intent(in) , optional :: nsim
337 logical(LK) , intent(in) , optional :: normed
338 real(RKG) :: logPDF
339 end function
340#endif
341
342#if RK3_ENABLED
343 impure module function getMMUP_RNGF_AM_DC_XXX_RK3(rng, mean, nsim, normed) result(logPDF)
344#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
345 !DEC$ ATTRIBUTES DLLEXPORT :: getMMUP_RNGF_AM_DC_XXX_RK3
346#endif
347 use pm_kind, only: RKG => RK3
348 type(rngf_type) , intent(in) :: rng
349 real(RKG) , intent(in) , contiguous :: mean(:,:)
350 integer(IK) , intent(in) , optional :: nsim
351 logical(LK) , intent(in) , optional :: normed
352 real(RKG) :: logPDF
353 end function
354#endif
355
356#if RK2_ENABLED
357 impure module function getMMUP_RNGF_AM_DC_XXX_RK2(rng, mean, nsim, normed) result(logPDF)
358#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
359 !DEC$ ATTRIBUTES DLLEXPORT :: getMMUP_RNGF_AM_DC_XXX_RK2
360#endif
361 use pm_kind, only: RKG => RK2
362 type(rngf_type) , intent(in) :: rng
363 real(RKG) , intent(in) , contiguous :: mean(:,:)
364 integer(IK) , intent(in) , optional :: nsim
365 logical(LK) , intent(in) , optional :: normed
366 real(RKG) :: logPDF
367 end function
368#endif
369
370#if RK1_ENABLED
371 impure module function getMMUP_RNGF_AM_DC_XXX_RK1(rng, mean, nsim, normed) result(logPDF)
372#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
373 !DEC$ ATTRIBUTES DLLEXPORT :: getMMUP_RNGF_AM_DC_XXX_RK1
374#endif
375 use pm_kind, only: RKG => RK1
376 type(rngf_type) , intent(in) :: rng
377 real(RKG) , intent(in) , contiguous :: mean(:,:)
378 integer(IK) , intent(in) , optional :: nsim
379 logical(LK) , intent(in) , optional :: normed
380 real(RKG) :: logPDF
381 end function
382#endif
383
384 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
385
386#if RK5_ENABLED
387 impure module function getMMUP_RNGF_AM_AC_UXD_RK5(rng, mean, chol, subset, invGram, nsim, normed) result(logPDF)
388#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
389 !DEC$ ATTRIBUTES DLLEXPORT :: getMMUP_RNGF_AM_AC_UXD_RK5
390#endif
391 use pm_kind, only: RKG => RK5
392 type(rngf_type) , intent(in) :: rng
393 real(RKG) , intent(in) , contiguous :: mean(:,:), chol(:,:,:), invGram(:,:,:)
394 type(uppDia_type) , intent(in) :: subset
395 integer(IK) , intent(in) , optional :: nsim
396 logical(LK) , intent(in) , optional :: normed
397 real(RKG) :: logPDF
398 end function
399#endif
400
401#if RK4_ENABLED
402 impure module function getMMUP_RNGF_AM_AC_UXD_RK4(rng, mean, chol, subset, invGram, nsim, normed) result(logPDF)
403#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
404 !DEC$ ATTRIBUTES DLLEXPORT :: getMMUP_RNGF_AM_AC_UXD_RK4
405#endif
406 use pm_kind, only: RKG => RK4
407 type(rngf_type) , intent(in) :: rng
408 real(RKG) , intent(in) , contiguous :: mean(:,:), chol(:,:,:), invGram(:,:,:)
409 type(uppDia_type) , intent(in) :: subset
410 integer(IK) , intent(in) , optional :: nsim
411 logical(LK) , intent(in) , optional :: normed
412 real(RKG) :: logPDF
413 end function
414#endif
415
416#if RK3_ENABLED
417 impure module function getMMUP_RNGF_AM_AC_UXD_RK3(rng, mean, chol, subset, invGram, nsim, normed) result(logPDF)
418#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
419 !DEC$ ATTRIBUTES DLLEXPORT :: getMMUP_RNGF_AM_AC_UXD_RK3
420#endif
421 use pm_kind, only: RKG => RK3
422 type(rngf_type) , intent(in) :: rng
423 real(RKG) , intent(in) , contiguous :: mean(:,:), chol(:,:,:), invGram(:,:,:)
424 type(uppDia_type) , intent(in) :: subset
425 integer(IK) , intent(in) , optional :: nsim
426 logical(LK) , intent(in) , optional :: normed
427 real(RKG) :: logPDF
428 end function
429#endif
430
431#if RK2_ENABLED
432 impure module function getMMUP_RNGF_AM_AC_UXD_RK2(rng, mean, chol, subset, invGram, nsim, normed) result(logPDF)
433#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
434 !DEC$ ATTRIBUTES DLLEXPORT :: getMMUP_RNGF_AM_AC_UXD_RK2
435#endif
436 use pm_kind, only: RKG => RK2
437 type(rngf_type) , intent(in) :: rng
438 real(RKG) , intent(in) , contiguous :: mean(:,:), chol(:,:,:), invGram(:,:,:)
439 type(uppDia_type) , intent(in) :: subset
440 integer(IK) , intent(in) , optional :: nsim
441 logical(LK) , intent(in) , optional :: normed
442 real(RKG) :: logPDF
443 end function
444#endif
445
446#if RK1_ENABLED
447 impure module function getMMUP_RNGF_AM_AC_UXD_RK1(rng, mean, chol, subset, invGram, nsim, normed) result(logPDF)
448#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
449 !DEC$ ATTRIBUTES DLLEXPORT :: getMMUP_RNGF_AM_AC_UXD_RK1
450#endif
451 use pm_kind, only: RKG => RK1
452 type(rngf_type) , intent(in) :: rng
453 real(RKG) , intent(in) , contiguous :: mean(:,:), chol(:,:,:), invGram(:,:,:)
454 type(uppDia_type) , intent(in) :: subset
455 integer(IK) , intent(in) , optional :: nsim
456 logical(LK) , intent(in) , optional :: normed
457 real(RKG) :: logPDF
458 end function
459#endif
460
461 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
462
463#if RK5_ENABLED
464 impure module function getMMUP_RNGF_AM_AC_XLD_RK5(rng, mean, chol, subset, invGram, nsim, normed) result(logPDF)
465#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
466 !DEC$ ATTRIBUTES DLLEXPORT :: getMMUP_RNGF_AM_AC_XLD_RK5
467#endif
468 use pm_kind, only: RKG => RK5
469 type(rngf_type) , intent(in) :: rng
470 real(RKG) , intent(in) , contiguous :: mean(:,:), chol(:,:,:), invGram(:,:,:)
471 type(lowDia_type) , intent(in) :: subset
472 integer(IK) , intent(in) , optional :: nsim
473 logical(LK) , intent(in) , optional :: normed
474 real(RKG) :: logPDF
475 end function
476#endif
477
478#if RK4_ENABLED
479 impure module function getMMUP_RNGF_AM_AC_XLD_RK4(rng, mean, chol, subset, invGram, nsim, normed) result(logPDF)
480#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
481 !DEC$ ATTRIBUTES DLLEXPORT :: getMMUP_RNGF_AM_AC_XLD_RK4
482#endif
483 use pm_kind, only: RKG => RK4
484 type(rngf_type) , intent(in) :: rng
485 real(RKG) , intent(in) , contiguous :: mean(:,:), chol(:,:,:), invGram(:,:,:)
486 type(lowDia_type) , intent(in) :: subset
487 integer(IK) , intent(in) , optional :: nsim
488 logical(LK) , intent(in) , optional :: normed
489 real(RKG) :: logPDF
490 end function
491#endif
492
493#if RK3_ENABLED
494 impure module function getMMUP_RNGF_AM_AC_XLD_RK3(rng, mean, chol, subset, invGram, nsim, normed) result(logPDF)
495#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
496 !DEC$ ATTRIBUTES DLLEXPORT :: getMMUP_RNGF_AM_AC_XLD_RK3
497#endif
498 use pm_kind, only: RKG => RK3
499 type(rngf_type) , intent(in) :: rng
500 real(RKG) , intent(in) , contiguous :: mean(:,:), chol(:,:,:), invGram(:,:,:)
501 type(lowDia_type) , intent(in) :: subset
502 integer(IK) , intent(in) , optional :: nsim
503 logical(LK) , intent(in) , optional :: normed
504 real(RKG) :: logPDF
505 end function
506#endif
507
508#if RK2_ENABLED
509 impure module function getMMUP_RNGF_AM_AC_XLD_RK2(rng, mean, chol, subset, invGram, nsim, normed) result(logPDF)
510#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
511 !DEC$ ATTRIBUTES DLLEXPORT :: getMMUP_RNGF_AM_AC_XLD_RK2
512#endif
513 use pm_kind, only: RKG => RK2
514 type(rngf_type) , intent(in) :: rng
515 real(RKG) , intent(in) , contiguous :: mean(:,:), chol(:,:,:), invGram(:,:,:)
516 type(lowDia_type) , intent(in) :: subset
517 integer(IK) , intent(in) , optional :: nsim
518 logical(LK) , intent(in) , optional :: normed
519 real(RKG) :: logPDF
520 end function
521#endif
522
523#if RK1_ENABLED
524 impure module function getMMUP_RNGF_AM_AC_XLD_RK1(rng, mean, chol, subset, invGram, nsim, normed) result(logPDF)
525#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
526 !DEC$ ATTRIBUTES DLLEXPORT :: getMMUP_RNGF_AM_AC_XLD_RK1
527#endif
528 use pm_kind, only: RKG => RK1
529 type(rngf_type) , intent(in) :: rng
530 real(RKG) , intent(in) , contiguous :: mean(:,:), chol(:,:,:), invGram(:,:,:)
531 type(lowDia_type) , intent(in) :: subset
532 integer(IK) , intent(in) , optional :: nsim
533 logical(LK) , intent(in) , optional :: normed
534 real(RKG) :: logPDF
535 end function
536#endif
537
538 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
539
540 end interface
541
542 ! RNGX
543
544 interface getUnifEllsLogPDF
545
546 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
547
548#if RK5_ENABLED
549 impure module function getMMUP_RNGX_AM_DC_XXX_RK5(rng, mean, nsim, normed) result(logPDF)
550#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
551 !DEC$ ATTRIBUTES DLLEXPORT :: getMMUP_RNGX_AM_DC_XXX_RK5
552#endif
553 use pm_kind, only: RKG => RK5
554 type(xoshiro256ssw_type), intent(inout) :: rng
555 real(RKG) , intent(in) , contiguous :: mean(:,:)
556 integer(IK) , intent(in) , optional :: nsim
557 logical(LK) , intent(in) , optional :: normed
558 real(RKG) :: logPDF
559 end function
560#endif
561
562#if RK4_ENABLED
563 impure module function getMMUP_RNGX_AM_DC_XXX_RK4(rng, mean, nsim, normed) result(logPDF)
564#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
565 !DEC$ ATTRIBUTES DLLEXPORT :: getMMUP_RNGX_AM_DC_XXX_RK4
566#endif
567 use pm_kind, only: RKG => RK4
568 type(xoshiro256ssw_type), intent(inout) :: rng
569 real(RKG) , intent(in) , contiguous :: mean(:,:)
570 integer(IK) , intent(in) , optional :: nsim
571 logical(LK) , intent(in) , optional :: normed
572 real(RKG) :: logPDF
573 end function
574#endif
575
576#if RK3_ENABLED
577 impure module function getMMUP_RNGX_AM_DC_XXX_RK3(rng, mean, nsim, normed) result(logPDF)
578#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
579 !DEC$ ATTRIBUTES DLLEXPORT :: getMMUP_RNGX_AM_DC_XXX_RK3
580#endif
581 use pm_kind, only: RKG => RK3
582 type(xoshiro256ssw_type), intent(inout) :: rng
583 real(RKG) , intent(in) , contiguous :: mean(:,:)
584 integer(IK) , intent(in) , optional :: nsim
585 logical(LK) , intent(in) , optional :: normed
586 real(RKG) :: logPDF
587 end function
588#endif
589
590#if RK2_ENABLED
591 impure module function getMMUP_RNGX_AM_DC_XXX_RK2(rng, mean, nsim, normed) result(logPDF)
592#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
593 !DEC$ ATTRIBUTES DLLEXPORT :: getMMUP_RNGX_AM_DC_XXX_RK2
594#endif
595 use pm_kind, only: RKG => RK2
596 type(xoshiro256ssw_type), intent(inout) :: rng
597 real(RKG) , intent(in) , contiguous :: mean(:,:)
598 integer(IK) , intent(in) , optional :: nsim
599 logical(LK) , intent(in) , optional :: normed
600 real(RKG) :: logPDF
601 end function
602#endif
603
604#if RK1_ENABLED
605 impure module function getMMUP_RNGX_AM_DC_XXX_RK1(rng, mean, nsim, normed) result(logPDF)
606#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
607 !DEC$ ATTRIBUTES DLLEXPORT :: getMMUP_RNGX_AM_DC_XXX_RK1
608#endif
609 use pm_kind, only: RKG => RK1
610 type(xoshiro256ssw_type), intent(inout) :: rng
611 real(RKG) , intent(in) , contiguous :: mean(:,:)
612 integer(IK) , intent(in) , optional :: nsim
613 logical(LK) , intent(in) , optional :: normed
614 real(RKG) :: logPDF
615 end function
616#endif
617
618 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
619
620#if RK5_ENABLED
621 impure module function getMMUP_RNGX_AM_AC_UXD_RK5(rng, mean, chol, subset, invGram, nsim, normed) result(logPDF)
622#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
623 !DEC$ ATTRIBUTES DLLEXPORT :: getMMUP_RNGX_AM_AC_UXD_RK5
624#endif
625 use pm_kind, only: RKG => RK5
626 type(xoshiro256ssw_type), intent(inout) :: rng
627 real(RKG) , intent(in) , contiguous :: mean(:,:), chol(:,:,:), invGram(:,:,:)
628 type(uppDia_type) , intent(in) :: subset
629 integer(IK) , intent(in) , optional :: nsim
630 logical(LK) , intent(in) , optional :: normed
631 real(RKG) :: logPDF
632 end function
633#endif
634
635#if RK4_ENABLED
636 impure module function getMMUP_RNGX_AM_AC_UXD_RK4(rng, mean, chol, subset, invGram, nsim, normed) result(logPDF)
637#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
638 !DEC$ ATTRIBUTES DLLEXPORT :: getMMUP_RNGX_AM_AC_UXD_RK4
639#endif
640 use pm_kind, only: RKG => RK4
641 type(xoshiro256ssw_type), intent(inout) :: rng
642 real(RKG) , intent(in) , contiguous :: mean(:,:), chol(:,:,:), invGram(:,:,:)
643 type(uppDia_type) , intent(in) :: subset
644 integer(IK) , intent(in) , optional :: nsim
645 logical(LK) , intent(in) , optional :: normed
646 real(RKG) :: logPDF
647 end function
648#endif
649
650#if RK3_ENABLED
651 impure module function getMMUP_RNGX_AM_AC_UXD_RK3(rng, mean, chol, subset, invGram, nsim, normed) result(logPDF)
652#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
653 !DEC$ ATTRIBUTES DLLEXPORT :: getMMUP_RNGX_AM_AC_UXD_RK3
654#endif
655 use pm_kind, only: RKG => RK3
656 type(xoshiro256ssw_type), intent(inout) :: rng
657 real(RKG) , intent(in) , contiguous :: mean(:,:), chol(:,:,:), invGram(:,:,:)
658 type(uppDia_type) , intent(in) :: subset
659 integer(IK) , intent(in) , optional :: nsim
660 logical(LK) , intent(in) , optional :: normed
661 real(RKG) :: logPDF
662 end function
663#endif
664
665#if RK2_ENABLED
666 impure module function getMMUP_RNGX_AM_AC_UXD_RK2(rng, mean, chol, subset, invGram, nsim, normed) result(logPDF)
667#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
668 !DEC$ ATTRIBUTES DLLEXPORT :: getMMUP_RNGX_AM_AC_UXD_RK2
669#endif
670 use pm_kind, only: RKG => RK2
671 type(xoshiro256ssw_type), intent(inout) :: rng
672 real(RKG) , intent(in) , contiguous :: mean(:,:), chol(:,:,:), invGram(:,:,:)
673 type(uppDia_type) , intent(in) :: subset
674 integer(IK) , intent(in) , optional :: nsim
675 logical(LK) , intent(in) , optional :: normed
676 real(RKG) :: logPDF
677 end function
678#endif
679
680#if RK1_ENABLED
681 impure module function getMMUP_RNGX_AM_AC_UXD_RK1(rng, mean, chol, subset, invGram, nsim, normed) result(logPDF)
682#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
683 !DEC$ ATTRIBUTES DLLEXPORT :: getMMUP_RNGX_AM_AC_UXD_RK1
684#endif
685 use pm_kind, only: RKG => RK1
686 type(xoshiro256ssw_type), intent(inout) :: rng
687 real(RKG) , intent(in) , contiguous :: mean(:,:), chol(:,:,:), invGram(:,:,:)
688 type(uppDia_type) , intent(in) :: subset
689 integer(IK) , intent(in) , optional :: nsim
690 logical(LK) , intent(in) , optional :: normed
691 real(RKG) :: logPDF
692 end function
693#endif
694
695 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
696
697#if RK5_ENABLED
698 impure module function getMMUP_RNGX_AM_AC_XLD_RK5(rng, mean, chol, subset, invGram, nsim, normed) result(logPDF)
699#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
700 !DEC$ ATTRIBUTES DLLEXPORT :: getMMUP_RNGX_AM_AC_XLD_RK5
701#endif
702 use pm_kind, only: RKG => RK5
703 type(xoshiro256ssw_type), intent(inout) :: rng
704 real(RKG) , intent(in) , contiguous :: mean(:,:), chol(:,:,:), invGram(:,:,:)
705 type(lowDia_type) , intent(in) :: subset
706 integer(IK) , intent(in) , optional :: nsim
707 logical(LK) , intent(in) , optional :: normed
708 real(RKG) :: logPDF
709 end function
710#endif
711
712#if RK4_ENABLED
713 impure module function getMMUP_RNGX_AM_AC_XLD_RK4(rng, mean, chol, subset, invGram, nsim, normed) result(logPDF)
714#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
715 !DEC$ ATTRIBUTES DLLEXPORT :: getMMUP_RNGX_AM_AC_XLD_RK4
716#endif
717 use pm_kind, only: RKG => RK4
718 type(xoshiro256ssw_type), intent(inout) :: rng
719 real(RKG) , intent(in) , contiguous :: mean(:,:), chol(:,:,:), invGram(:,:,:)
720 type(lowDia_type) , intent(in) :: subset
721 integer(IK) , intent(in) , optional :: nsim
722 logical(LK) , intent(in) , optional :: normed
723 real(RKG) :: logPDF
724 end function
725#endif
726
727#if RK3_ENABLED
728 impure module function getMMUP_RNGX_AM_AC_XLD_RK3(rng, mean, chol, subset, invGram, nsim, normed) result(logPDF)
729#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
730 !DEC$ ATTRIBUTES DLLEXPORT :: getMMUP_RNGX_AM_AC_XLD_RK3
731#endif
732 use pm_kind, only: RKG => RK3
733 type(xoshiro256ssw_type), intent(inout) :: rng
734 real(RKG) , intent(in) , contiguous :: mean(:,:), chol(:,:,:), invGram(:,:,:)
735 type(lowDia_type) , intent(in) :: subset
736 integer(IK) , intent(in) , optional :: nsim
737 logical(LK) , intent(in) , optional :: normed
738 real(RKG) :: logPDF
739 end function
740#endif
741
742#if RK2_ENABLED
743 impure module function getMMUP_RNGX_AM_AC_XLD_RK2(rng, mean, chol, subset, invGram, nsim, normed) result(logPDF)
744#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
745 !DEC$ ATTRIBUTES DLLEXPORT :: getMMUP_RNGX_AM_AC_XLD_RK2
746#endif
747 use pm_kind, only: RKG => RK2
748 type(xoshiro256ssw_type), intent(inout) :: rng
749 real(RKG) , intent(in) , contiguous :: mean(:,:), chol(:,:,:), invGram(:,:,:)
750 type(lowDia_type) , intent(in) :: subset
751 integer(IK) , intent(in) , optional :: nsim
752 logical(LK) , intent(in) , optional :: normed
753 real(RKG) :: logPDF
754 end function
755#endif
756
757#if RK1_ENABLED
758 impure module function getMMUP_RNGX_AM_AC_XLD_RK1(rng, mean, chol, subset, invGram, nsim, normed) result(logPDF)
759#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
760 !DEC$ ATTRIBUTES DLLEXPORT :: getMMUP_RNGX_AM_AC_XLD_RK1
761#endif
762 use pm_kind, only: RKG => RK1
763 type(xoshiro256ssw_type), intent(inout) :: rng
764 real(RKG) , intent(in) , contiguous :: mean(:,:), chol(:,:,:), invGram(:,:,:)
765 type(lowDia_type) , intent(in) :: subset
766 integer(IK) , intent(in) , optional :: nsim
767 logical(LK) , intent(in) , optional :: normed
768 real(RKG) :: logPDF
769 end function
770#endif
771
772 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
773
774 end interface
775
776!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
777 end do
912
913 ! D1 RNGF
914
916
917 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
918
919#if RK5_ENABLED
920 impure module subroutine setMMUR_RNGF_AM_DC_XXX_D1_RK5(rng, rand, mahalSq, invmul, membership, mean)
921#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
922 !DEC$ ATTRIBUTES DLLEXPORT :: setMMUR_RNGF_AM_DC_XXX_D1_RK5
923#endif
924 use pm_kind, only: RKG => RK5
925 type(rngf_type) , intent(in) :: rng
926 real(RKG) , intent(out) , contiguous :: rand(:)
927 real(RKG) , intent(out) , contiguous :: mahalSq(:)
928 real(RKG) , intent(out) :: invmul
929 real(RKG) , intent(in) , contiguous :: mean(:,:)
930 integer(IK) , intent(out) :: membership
931 end subroutine
932#endif
933
934#if RK4_ENABLED
935 impure module subroutine setMMUR_RNGF_AM_DC_XXX_D1_RK4(rng, rand, mahalSq, invmul, membership, mean)
936#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
937 !DEC$ ATTRIBUTES DLLEXPORT :: setMMUR_RNGF_AM_DC_XXX_D1_RK4
938#endif
939 use pm_kind, only: RKG => RK4
940 type(rngf_type) , intent(in) :: rng
941 real(RKG) , intent(out) , contiguous :: rand(:)
942 real(RKG) , intent(out) , contiguous :: mahalSq(:)
943 real(RKG) , intent(out) :: invmul
944 real(RKG) , intent(in) , contiguous :: mean(:,:)
945 integer(IK) , intent(out) :: membership
946 end subroutine
947#endif
948
949#if RK3_ENABLED
950 impure module subroutine setMMUR_RNGF_AM_DC_XXX_D1_RK3(rng, rand, mahalSq, invmul, membership, mean)
951#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
952 !DEC$ ATTRIBUTES DLLEXPORT :: setMMUR_RNGF_AM_DC_XXX_D1_RK3
953#endif
954 use pm_kind, only: RKG => RK3
955 type(rngf_type) , intent(in) :: rng
956 real(RKG) , intent(out) , contiguous :: rand(:)
957 real(RKG) , intent(out) , contiguous :: mahalSq(:)
958 real(RKG) , intent(out) :: invmul
959 real(RKG) , intent(in) , contiguous :: mean(:,:)
960 integer(IK) , intent(out) :: membership
961 end subroutine
962#endif
963
964#if RK2_ENABLED
965 impure module subroutine setMMUR_RNGF_AM_DC_XXX_D1_RK2(rng, rand, mahalSq, invmul, membership, mean)
966#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
967 !DEC$ ATTRIBUTES DLLEXPORT :: setMMUR_RNGF_AM_DC_XXX_D1_RK2
968#endif
969 use pm_kind, only: RKG => RK2
970 type(rngf_type) , intent(in) :: rng
971 real(RKG) , intent(out) , contiguous :: rand(:)
972 real(RKG) , intent(out) , contiguous :: mahalSq(:)
973 real(RKG) , intent(out) :: invmul
974 real(RKG) , intent(in) , contiguous :: mean(:,:)
975 integer(IK) , intent(out) :: membership
976 end subroutine
977#endif
978
979#if RK1_ENABLED
980 impure module subroutine setMMUR_RNGF_AM_DC_XXX_D1_RK1(rng, rand, mahalSq, invmul, membership, mean)
981#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
982 !DEC$ ATTRIBUTES DLLEXPORT :: setMMUR_RNGF_AM_DC_XXX_D1_RK1
983#endif
984 use pm_kind, only: RKG => RK1
985 type(rngf_type) , intent(in) :: rng
986 real(RKG) , intent(out) , contiguous :: rand(:)
987 real(RKG) , intent(out) , contiguous :: mahalSq(:)
988 real(RKG) , intent(out) :: invmul
989 real(RKG) , intent(in) , contiguous :: mean(:,:)
990 integer(IK) , intent(out) :: membership
991 end subroutine
992#endif
993
994 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
995
996#if RK5_ENABLED
997 impure module subroutine setMMUR_RNGF_AM_AC_UXD_D1_RK5(rng, rand, mahalSq, invmul, membership, mean, chol, subset, invGram, cumPropVol)
998#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
999 !DEC$ ATTRIBUTES DLLEXPORT :: setMMUR_RNGF_AM_AC_UXD_D1_RK5
1000#endif
1001 use pm_kind, only: RKG => RK5
1002 type(rngf_type) , intent(in) :: rng
1003 real(RKG) , intent(out) , contiguous :: rand(:)
1004 real(RKG) , intent(out) , contiguous :: mahalSq(:)
1005 real(RKG) , intent(out) :: invmul
1006 real(RKG) , intent(in) , contiguous :: mean(:,:), chol(:,:,:), invGram(:,:,:), cumPropVol(:)
1007 type(uppDia_type) , intent(in) :: subset
1008 integer(IK) , intent(out) :: membership
1009 end subroutine
1010#endif
1011
1012#if RK4_ENABLED
1013 impure module subroutine setMMUR_RNGF_AM_AC_UXD_D1_RK4(rng, rand, mahalSq, invmul, membership, mean, chol, subset, invGram, cumPropVol)
1014#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1015 !DEC$ ATTRIBUTES DLLEXPORT :: setMMUR_RNGF_AM_AC_UXD_D1_RK4
1016#endif
1017 use pm_kind, only: RKG => RK4
1018 type(rngf_type) , intent(in) :: rng
1019 real(RKG) , intent(out) , contiguous :: rand(:)
1020 real(RKG) , intent(out) , contiguous :: mahalSq(:)
1021 real(RKG) , intent(out) :: invmul
1022 real(RKG) , intent(in) , contiguous :: mean(:,:), chol(:,:,:), invGram(:,:,:), cumPropVol(:)
1023 type(uppDia_type) , intent(in) :: subset
1024 integer(IK) , intent(out) :: membership
1025 end subroutine
1026#endif
1027
1028#if RK3_ENABLED
1029 impure module subroutine setMMUR_RNGF_AM_AC_UXD_D1_RK3(rng, rand, mahalSq, invmul, membership, mean, chol, subset, invGram, cumPropVol)
1030#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1031 !DEC$ ATTRIBUTES DLLEXPORT :: setMMUR_RNGF_AM_AC_UXD_D1_RK3
1032#endif
1033 use pm_kind, only: RKG => RK3
1034 type(rngf_type) , intent(in) :: rng
1035 real(RKG) , intent(out) , contiguous :: rand(:)
1036 real(RKG) , intent(out) , contiguous :: mahalSq(:)
1037 real(RKG) , intent(out) :: invmul
1038 real(RKG) , intent(in) , contiguous :: mean(:,:), chol(:,:,:), invGram(:,:,:), cumPropVol(:)
1039 type(uppDia_type) , intent(in) :: subset
1040 integer(IK) , intent(out) :: membership
1041 end subroutine
1042#endif
1043
1044#if RK2_ENABLED
1045 impure module subroutine setMMUR_RNGF_AM_AC_UXD_D1_RK2(rng, rand, mahalSq, invmul, membership, mean, chol, subset, invGram, cumPropVol)
1046#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1047 !DEC$ ATTRIBUTES DLLEXPORT :: setMMUR_RNGF_AM_AC_UXD_D1_RK2
1048#endif
1049 use pm_kind, only: RKG => RK2
1050 type(rngf_type) , intent(in) :: rng
1051 real(RKG) , intent(out) , contiguous :: rand(:)
1052 real(RKG) , intent(out) , contiguous :: mahalSq(:)
1053 real(RKG) , intent(out) :: invmul
1054 real(RKG) , intent(in) , contiguous :: mean(:,:), chol(:,:,:), invGram(:,:,:), cumPropVol(:)
1055 type(uppDia_type) , intent(in) :: subset
1056 integer(IK) , intent(out) :: membership
1057 end subroutine
1058#endif
1059
1060#if RK1_ENABLED
1061 impure module subroutine setMMUR_RNGF_AM_AC_UXD_D1_RK1(rng, rand, mahalSq, invmul, membership, mean, chol, subset, invGram, cumPropVol)
1062#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1063 !DEC$ ATTRIBUTES DLLEXPORT :: setMMUR_RNGF_AM_AC_UXD_D1_RK1
1064#endif
1065 use pm_kind, only: RKG => RK1
1066 type(rngf_type) , intent(in) :: rng
1067 real(RKG) , intent(out) , contiguous :: rand(:)
1068 real(RKG) , intent(out) , contiguous :: mahalSq(:)
1069 real(RKG) , intent(out) :: invmul
1070 real(RKG) , intent(in) , contiguous :: mean(:,:), chol(:,:,:), invGram(:,:,:), cumPropVol(:)
1071 type(uppDia_type) , intent(in) :: subset
1072 integer(IK) , intent(out) :: membership
1073 end subroutine
1074#endif
1075
1076 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1077
1078#if RK5_ENABLED
1079 impure module subroutine setMMUR_RNGF_AM_AC_XLD_D1_RK5(rng, rand, mahalSq, invmul, membership, mean, chol, subset, invGram, cumPropVol)
1080#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1081 !DEC$ ATTRIBUTES DLLEXPORT :: setMMUR_RNGF_AM_AC_XLD_D1_RK5
1082#endif
1083 use pm_kind, only: RKG => RK5
1084 type(rngf_type) , intent(in) :: rng
1085 real(RKG) , intent(out) , contiguous :: rand(:)
1086 real(RKG) , intent(out) , contiguous :: mahalSq(:)
1087 real(RKG) , intent(out) :: invmul
1088 real(RKG) , intent(in) , contiguous :: mean(:,:), chol(:,:,:), invGram(:,:,:), cumPropVol(:)
1089 type(lowDia_type) , intent(in) :: subset
1090 integer(IK) , intent(out) :: membership
1091 end subroutine
1092#endif
1093
1094#if RK4_ENABLED
1095 impure module subroutine setMMUR_RNGF_AM_AC_XLD_D1_RK4(rng, rand, mahalSq, invmul, membership, mean, chol, subset, invGram, cumPropVol)
1096#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1097 !DEC$ ATTRIBUTES DLLEXPORT :: setMMUR_RNGF_AM_AC_XLD_D1_RK4
1098#endif
1099 use pm_kind, only: RKG => RK4
1100 type(rngf_type) , intent(in) :: rng
1101 real(RKG) , intent(out) , contiguous :: rand(:)
1102 real(RKG) , intent(out) , contiguous :: mahalSq(:)
1103 real(RKG) , intent(out) :: invmul
1104 real(RKG) , intent(in) , contiguous :: mean(:,:), chol(:,:,:), invGram(:,:,:), cumPropVol(:)
1105 type(lowDia_type) , intent(in) :: subset
1106 integer(IK) , intent(out) :: membership
1107 end subroutine
1108#endif
1109
1110#if RK3_ENABLED
1111 impure module subroutine setMMUR_RNGF_AM_AC_XLD_D1_RK3(rng, rand, mahalSq, invmul, membership, mean, chol, subset, invGram, cumPropVol)
1112#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1113 !DEC$ ATTRIBUTES DLLEXPORT :: setMMUR_RNGF_AM_AC_XLD_D1_RK3
1114#endif
1115 use pm_kind, only: RKG => RK3
1116 type(rngf_type) , intent(in) :: rng
1117 real(RKG) , intent(out) , contiguous :: rand(:)
1118 real(RKG) , intent(out) , contiguous :: mahalSq(:)
1119 real(RKG) , intent(out) :: invmul
1120 real(RKG) , intent(in) , contiguous :: mean(:,:), chol(:,:,:), invGram(:,:,:), cumPropVol(:)
1121 type(lowDia_type) , intent(in) :: subset
1122 integer(IK) , intent(out) :: membership
1123 end subroutine
1124#endif
1125
1126#if RK2_ENABLED
1127 impure module subroutine setMMUR_RNGF_AM_AC_XLD_D1_RK2(rng, rand, mahalSq, invmul, membership, mean, chol, subset, invGram, cumPropVol)
1128#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1129 !DEC$ ATTRIBUTES DLLEXPORT :: setMMUR_RNGF_AM_AC_XLD_D1_RK2
1130#endif
1131 use pm_kind, only: RKG => RK2
1132 type(rngf_type) , intent(in) :: rng
1133 real(RKG) , intent(out) , contiguous :: rand(:)
1134 real(RKG) , intent(out) , contiguous :: mahalSq(:)
1135 real(RKG) , intent(out) :: invmul
1136 real(RKG) , intent(in) , contiguous :: mean(:,:), chol(:,:,:), invGram(:,:,:), cumPropVol(:)
1137 type(lowDia_type) , intent(in) :: subset
1138 integer(IK) , intent(out) :: membership
1139 end subroutine
1140#endif
1141
1142#if RK1_ENABLED
1143 impure module subroutine setMMUR_RNGF_AM_AC_XLD_D1_RK1(rng, rand, mahalSq, invmul, membership, mean, chol, subset, invGram, cumPropVol)
1144#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1145 !DEC$ ATTRIBUTES DLLEXPORT :: setMMUR_RNGF_AM_AC_XLD_D1_RK1
1146#endif
1147 use pm_kind, only: RKG => RK1
1148 type(rngf_type) , intent(in) :: rng
1149 real(RKG) , intent(out) , contiguous :: rand(:)
1150 real(RKG) , intent(out) , contiguous :: mahalSq(:)
1151 real(RKG) , intent(out) :: invmul
1152 real(RKG) , intent(in) , contiguous :: mean(:,:), chol(:,:,:), invGram(:,:,:), cumPropVol(:)
1153 type(lowDia_type) , intent(in) :: subset
1154 integer(IK) , intent(out) :: membership
1155 end subroutine
1156#endif
1157
1158 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1159
1160 end interface
1161
1162 ! D1 RNGX
1163
1164 interface setUnifEllsRand
1165
1166 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1167
1168#if RK5_ENABLED
1169 PURE module subroutine setMMUR_RNGX_AM_DC_XXX_D1_RK5(rng, rand, mahalSq, invmul, membership, mean)
1170#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1171 !DEC$ ATTRIBUTES DLLEXPORT :: setMMUR_RNGX_AM_DC_XXX_D1_RK5
1172#endif
1173 use pm_kind, only: RKG => RK5
1174 type(xoshiro256ssw_type), intent(inout) :: rng
1175 real(RKG) , intent(out) , contiguous :: rand(:)
1176 real(RKG) , intent(out) , contiguous :: mahalSq(:)
1177 real(RKG) , intent(out) :: invmul
1178 real(RKG) , intent(in) , contiguous :: mean(:,:)
1179 integer(IK) , intent(out) :: membership
1180 end subroutine
1181#endif
1182
1183#if RK4_ENABLED
1184 PURE module subroutine setMMUR_RNGX_AM_DC_XXX_D1_RK4(rng, rand, mahalSq, invmul, membership, mean)
1185#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1186 !DEC$ ATTRIBUTES DLLEXPORT :: setMMUR_RNGX_AM_DC_XXX_D1_RK4
1187#endif
1188 use pm_kind, only: RKG => RK4
1189 type(xoshiro256ssw_type), intent(inout) :: rng
1190 real(RKG) , intent(out) , contiguous :: rand(:)
1191 real(RKG) , intent(out) , contiguous :: mahalSq(:)
1192 real(RKG) , intent(out) :: invmul
1193 real(RKG) , intent(in) , contiguous :: mean(:,:)
1194 integer(IK) , intent(out) :: membership
1195 end subroutine
1196#endif
1197
1198#if RK3_ENABLED
1199 PURE module subroutine setMMUR_RNGX_AM_DC_XXX_D1_RK3(rng, rand, mahalSq, invmul, membership, mean)
1200#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1201 !DEC$ ATTRIBUTES DLLEXPORT :: setMMUR_RNGX_AM_DC_XXX_D1_RK3
1202#endif
1203 use pm_kind, only: RKG => RK3
1204 type(xoshiro256ssw_type), intent(inout) :: rng
1205 real(RKG) , intent(out) , contiguous :: rand(:)
1206 real(RKG) , intent(out) , contiguous :: mahalSq(:)
1207 real(RKG) , intent(out) :: invmul
1208 real(RKG) , intent(in) , contiguous :: mean(:,:)
1209 integer(IK) , intent(out) :: membership
1210 end subroutine
1211#endif
1212
1213#if RK2_ENABLED
1214 PURE module subroutine setMMUR_RNGX_AM_DC_XXX_D1_RK2(rng, rand, mahalSq, invmul, membership, mean)
1215#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1216 !DEC$ ATTRIBUTES DLLEXPORT :: setMMUR_RNGX_AM_DC_XXX_D1_RK2
1217#endif
1218 use pm_kind, only: RKG => RK2
1219 type(xoshiro256ssw_type), intent(inout) :: rng
1220 real(RKG) , intent(out) , contiguous :: rand(:)
1221 real(RKG) , intent(out) , contiguous :: mahalSq(:)
1222 real(RKG) , intent(out) :: invmul
1223 real(RKG) , intent(in) , contiguous :: mean(:,:)
1224 integer(IK) , intent(out) :: membership
1225 end subroutine
1226#endif
1227
1228#if RK1_ENABLED
1229 PURE module subroutine setMMUR_RNGX_AM_DC_XXX_D1_RK1(rng, rand, mahalSq, invmul, membership, mean)
1230#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1231 !DEC$ ATTRIBUTES DLLEXPORT :: setMMUR_RNGX_AM_DC_XXX_D1_RK1
1232#endif
1233 use pm_kind, only: RKG => RK1
1234 type(xoshiro256ssw_type), intent(inout) :: rng
1235 real(RKG) , intent(out) , contiguous :: rand(:)
1236 real(RKG) , intent(out) , contiguous :: mahalSq(:)
1237 real(RKG) , intent(out) :: invmul
1238 real(RKG) , intent(in) , contiguous :: mean(:,:)
1239 integer(IK) , intent(out) :: membership
1240 end subroutine
1241#endif
1242
1243 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1244
1245#if RK5_ENABLED
1246 PURE module subroutine setMMUR_RNGX_AM_AC_UXD_D1_RK5(rng, rand, mahalSq, invmul, membership, mean, chol, subset, invGram, cumPropVol)
1247#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1248 !DEC$ ATTRIBUTES DLLEXPORT :: setMMUR_RNGX_AM_AC_UXD_D1_RK5
1249#endif
1250 use pm_kind, only: RKG => RK5
1251 type(xoshiro256ssw_type), intent(inout) :: rng
1252 real(RKG) , intent(out) , contiguous :: rand(:)
1253 real(RKG) , intent(out) , contiguous :: mahalSq(:)
1254 real(RKG) , intent(out) :: invmul
1255 real(RKG) , intent(in) , contiguous :: mean(:,:), chol(:,:,:), invGram(:,:,:), cumPropVol(:)
1256 type(uppDia_type) , intent(in) :: subset
1257 integer(IK) , intent(out) :: membership
1258 end subroutine
1259#endif
1260
1261#if RK4_ENABLED
1262 PURE module subroutine setMMUR_RNGX_AM_AC_UXD_D1_RK4(rng, rand, mahalSq, invmul, membership, mean, chol, subset, invGram, cumPropVol)
1263#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1264 !DEC$ ATTRIBUTES DLLEXPORT :: setMMUR_RNGX_AM_AC_UXD_D1_RK4
1265#endif
1266 use pm_kind, only: RKG => RK4
1267 type(xoshiro256ssw_type), intent(inout) :: rng
1268 real(RKG) , intent(out) , contiguous :: rand(:)
1269 real(RKG) , intent(out) , contiguous :: mahalSq(:)
1270 real(RKG) , intent(out) :: invmul
1271 real(RKG) , intent(in) , contiguous :: mean(:,:), chol(:,:,:), invGram(:,:,:), cumPropVol(:)
1272 type(uppDia_type) , intent(in) :: subset
1273 integer(IK) , intent(out) :: membership
1274 end subroutine
1275#endif
1276
1277#if RK3_ENABLED
1278 PURE module subroutine setMMUR_RNGX_AM_AC_UXD_D1_RK3(rng, rand, mahalSq, invmul, membership, mean, chol, subset, invGram, cumPropVol)
1279#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1280 !DEC$ ATTRIBUTES DLLEXPORT :: setMMUR_RNGX_AM_AC_UXD_D1_RK3
1281#endif
1282 use pm_kind, only: RKG => RK3
1283 type(xoshiro256ssw_type), intent(inout) :: rng
1284 real(RKG) , intent(out) , contiguous :: rand(:)
1285 real(RKG) , intent(out) , contiguous :: mahalSq(:)
1286 real(RKG) , intent(out) :: invmul
1287 real(RKG) , intent(in) , contiguous :: mean(:,:), chol(:,:,:), invGram(:,:,:), cumPropVol(:)
1288 type(uppDia_type) , intent(in) :: subset
1289 integer(IK) , intent(out) :: membership
1290 end subroutine
1291#endif
1292
1293#if RK2_ENABLED
1294 PURE module subroutine setMMUR_RNGX_AM_AC_UXD_D1_RK2(rng, rand, mahalSq, invmul, membership, mean, chol, subset, invGram, cumPropVol)
1295#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1296 !DEC$ ATTRIBUTES DLLEXPORT :: setMMUR_RNGX_AM_AC_UXD_D1_RK2
1297#endif
1298 use pm_kind, only: RKG => RK2
1299 type(xoshiro256ssw_type), intent(inout) :: rng
1300 real(RKG) , intent(out) , contiguous :: rand(:)
1301 real(RKG) , intent(out) , contiguous :: mahalSq(:)
1302 real(RKG) , intent(out) :: invmul
1303 real(RKG) , intent(in) , contiguous :: mean(:,:), chol(:,:,:), invGram(:,:,:), cumPropVol(:)
1304 type(uppDia_type) , intent(in) :: subset
1305 integer(IK) , intent(out) :: membership
1306 end subroutine
1307#endif
1308
1309#if RK1_ENABLED
1310 PURE module subroutine setMMUR_RNGX_AM_AC_UXD_D1_RK1(rng, rand, mahalSq, invmul, membership, mean, chol, subset, invGram, cumPropVol)
1311#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1312 !DEC$ ATTRIBUTES DLLEXPORT :: setMMUR_RNGX_AM_AC_UXD_D1_RK1
1313#endif
1314 use pm_kind, only: RKG => RK1
1315 type(xoshiro256ssw_type), intent(inout) :: rng
1316 real(RKG) , intent(out) , contiguous :: rand(:)
1317 real(RKG) , intent(out) , contiguous :: mahalSq(:)
1318 real(RKG) , intent(out) :: invmul
1319 real(RKG) , intent(in) , contiguous :: mean(:,:), chol(:,:,:), invGram(:,:,:), cumPropVol(:)
1320 type(uppDia_type) , intent(in) :: subset
1321 integer(IK) , intent(out) :: membership
1322 end subroutine
1323#endif
1324
1325 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1326
1327#if RK5_ENABLED
1328 PURE module subroutine setMMUR_RNGX_AM_AC_XLD_D1_RK5(rng, rand, mahalSq, invmul, membership, mean, chol, subset, invGram, cumPropVol)
1329#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1330 !DEC$ ATTRIBUTES DLLEXPORT :: setMMUR_RNGX_AM_AC_XLD_D1_RK5
1331#endif
1332 use pm_kind, only: RKG => RK5
1333 type(xoshiro256ssw_type), intent(inout) :: rng
1334 real(RKG) , intent(out) , contiguous :: rand(:)
1335 real(RKG) , intent(out) , contiguous :: mahalSq(:)
1336 real(RKG) , intent(out) :: invmul
1337 real(RKG) , intent(in) , contiguous :: mean(:,:), chol(:,:,:), invGram(:,:,:), cumPropVol(:)
1338 type(lowDia_type) , intent(in) :: subset
1339 integer(IK) , intent(out) :: membership
1340 end subroutine
1341#endif
1342
1343#if RK4_ENABLED
1344 PURE module subroutine setMMUR_RNGX_AM_AC_XLD_D1_RK4(rng, rand, mahalSq, invmul, membership, mean, chol, subset, invGram, cumPropVol)
1345#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1346 !DEC$ ATTRIBUTES DLLEXPORT :: setMMUR_RNGX_AM_AC_XLD_D1_RK4
1347#endif
1348 use pm_kind, only: RKG => RK4
1349 type(xoshiro256ssw_type), intent(inout) :: rng
1350 real(RKG) , intent(out) , contiguous :: rand(:)
1351 real(RKG) , intent(out) , contiguous :: mahalSq(:)
1352 real(RKG) , intent(out) :: invmul
1353 real(RKG) , intent(in) , contiguous :: mean(:,:), chol(:,:,:), invGram(:,:,:), cumPropVol(:)
1354 type(lowDia_type) , intent(in) :: subset
1355 integer(IK) , intent(out) :: membership
1356 end subroutine
1357#endif
1358
1359#if RK3_ENABLED
1360 PURE module subroutine setMMUR_RNGX_AM_AC_XLD_D1_RK3(rng, rand, mahalSq, invmul, membership, mean, chol, subset, invGram, cumPropVol)
1361#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1362 !DEC$ ATTRIBUTES DLLEXPORT :: setMMUR_RNGX_AM_AC_XLD_D1_RK3
1363#endif
1364 use pm_kind, only: RKG => RK3
1365 type(xoshiro256ssw_type), intent(inout) :: rng
1366 real(RKG) , intent(out) , contiguous :: rand(:)
1367 real(RKG) , intent(out) , contiguous :: mahalSq(:)
1368 real(RKG) , intent(out) :: invmul
1369 real(RKG) , intent(in) , contiguous :: mean(:,:), chol(:,:,:), invGram(:,:,:), cumPropVol(:)
1370 type(lowDia_type) , intent(in) :: subset
1371 integer(IK) , intent(out) :: membership
1372 end subroutine
1373#endif
1374
1375#if RK2_ENABLED
1376 PURE module subroutine setMMUR_RNGX_AM_AC_XLD_D1_RK2(rng, rand, mahalSq, invmul, membership, mean, chol, subset, invGram, cumPropVol)
1377#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1378 !DEC$ ATTRIBUTES DLLEXPORT :: setMMUR_RNGX_AM_AC_XLD_D1_RK2
1379#endif
1380 use pm_kind, only: RKG => RK2
1381 type(xoshiro256ssw_type), intent(inout) :: rng
1382 real(RKG) , intent(out) , contiguous :: rand(:)
1383 real(RKG) , intent(out) , contiguous :: mahalSq(:)
1384 real(RKG) , intent(out) :: invmul
1385 real(RKG) , intent(in) , contiguous :: mean(:,:), chol(:,:,:), invGram(:,:,:), cumPropVol(:)
1386 type(lowDia_type) , intent(in) :: subset
1387 integer(IK) , intent(out) :: membership
1388 end subroutine
1389#endif
1390
1391#if RK1_ENABLED
1392 PURE module subroutine setMMUR_RNGX_AM_AC_XLD_D1_RK1(rng, rand, mahalSq, invmul, membership, mean, chol, subset, invGram, cumPropVol)
1393#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1394 !DEC$ ATTRIBUTES DLLEXPORT :: setMMUR_RNGX_AM_AC_XLD_D1_RK1
1395#endif
1396 use pm_kind, only: RKG => RK1
1397 type(xoshiro256ssw_type), intent(inout) :: rng
1398 real(RKG) , intent(out) , contiguous :: rand(:)
1399 real(RKG) , intent(out) , contiguous :: mahalSq(:)
1400 real(RKG) , intent(out) :: invmul
1401 real(RKG) , intent(in) , contiguous :: mean(:,:), chol(:,:,:), invGram(:,:,:), cumPropVol(:)
1402 type(lowDia_type) , intent(in) :: subset
1403 integer(IK) , intent(out) :: membership
1404 end subroutine
1405#endif
1406
1407 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1408
1409 end interface
1410
1411 ! D2 RNGF
1412
1413 interface setUnifEllsRand
1414
1415 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1416
1417#if RK5_ENABLED
1418 impure module subroutine setMMUR_RNGF_AM_DC_XXX_D2_RK5(rng, rand, mahalSq, invmul, membership, mean)
1419#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1420 !DEC$ ATTRIBUTES DLLEXPORT :: setMMUR_RNGF_AM_DC_XXX_D2_RK5
1421#endif
1422 use pm_kind, only: RKG => RK5
1423 type(rngf_type) , intent(in) :: rng
1424 real(RKG) , intent(out) , contiguous :: rand(:,:)
1425 real(RKG) , intent(out) , contiguous :: mahalSq(:,:)
1426 real(RKG) , intent(out) , contiguous :: invmul(:)
1427 real(RKG) , intent(in) , contiguous :: mean(:,:)
1428 integer(IK) , intent(out) , contiguous :: membership(:)
1429 end subroutine
1430#endif
1431
1432#if RK4_ENABLED
1433 impure module subroutine setMMUR_RNGF_AM_DC_XXX_D2_RK4(rng, rand, mahalSq, invmul, membership, mean)
1434#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1435 !DEC$ ATTRIBUTES DLLEXPORT :: setMMUR_RNGF_AM_DC_XXX_D2_RK4
1436#endif
1437 use pm_kind, only: RKG => RK4
1438 type(rngf_type) , intent(in) :: rng
1439 real(RKG) , intent(out) , contiguous :: rand(:,:)
1440 real(RKG) , intent(out) , contiguous :: mahalSq(:,:)
1441 real(RKG) , intent(out) , contiguous :: invmul(:)
1442 real(RKG) , intent(in) , contiguous :: mean(:,:)
1443 integer(IK) , intent(out) , contiguous :: membership(:)
1444 end subroutine
1445#endif
1446
1447#if RK3_ENABLED
1448 impure module subroutine setMMUR_RNGF_AM_DC_XXX_D2_RK3(rng, rand, mahalSq, invmul, membership, mean)
1449#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1450 !DEC$ ATTRIBUTES DLLEXPORT :: setMMUR_RNGF_AM_DC_XXX_D2_RK3
1451#endif
1452 use pm_kind, only: RKG => RK3
1453 type(rngf_type) , intent(in) :: rng
1454 real(RKG) , intent(out) , contiguous :: rand(:,:)
1455 real(RKG) , intent(out) , contiguous :: mahalSq(:,:)
1456 real(RKG) , intent(out) , contiguous :: invmul(:)
1457 real(RKG) , intent(in) , contiguous :: mean(:,:)
1458 integer(IK) , intent(out) , contiguous :: membership(:)
1459 end subroutine
1460#endif
1461
1462#if RK2_ENABLED
1463 impure module subroutine setMMUR_RNGF_AM_DC_XXX_D2_RK2(rng, rand, mahalSq, invmul, membership, mean)
1464#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1465 !DEC$ ATTRIBUTES DLLEXPORT :: setMMUR_RNGF_AM_DC_XXX_D2_RK2
1466#endif
1467 use pm_kind, only: RKG => RK2
1468 type(rngf_type) , intent(in) :: rng
1469 real(RKG) , intent(out) , contiguous :: rand(:,:)
1470 real(RKG) , intent(out) , contiguous :: mahalSq(:,:)
1471 real(RKG) , intent(out) , contiguous :: invmul(:)
1472 real(RKG) , intent(in) , contiguous :: mean(:,:)
1473 integer(IK) , intent(out) , contiguous :: membership(:)
1474 end subroutine
1475#endif
1476
1477#if RK1_ENABLED
1478 impure module subroutine setMMUR_RNGF_AM_DC_XXX_D2_RK1(rng, rand, mahalSq, invmul, membership, mean)
1479#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1480 !DEC$ ATTRIBUTES DLLEXPORT :: setMMUR_RNGF_AM_DC_XXX_D2_RK1
1481#endif
1482 use pm_kind, only: RKG => RK1
1483 type(rngf_type) , intent(in) :: rng
1484 real(RKG) , intent(out) , contiguous :: rand(:,:)
1485 real(RKG) , intent(out) , contiguous :: mahalSq(:,:)
1486 real(RKG) , intent(out) , contiguous :: invmul(:)
1487 real(RKG) , intent(in) , contiguous :: mean(:,:)
1488 integer(IK) , intent(out) , contiguous :: membership(:)
1489 end subroutine
1490#endif
1491
1492 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1493
1494#if RK5_ENABLED
1495 impure module subroutine setMMUR_RNGF_AM_AC_UXD_D2_RK5(rng, rand, mahalSq, invmul, membership, mean, chol, subset, invGram)
1496#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1497 !DEC$ ATTRIBUTES DLLEXPORT :: setMMUR_RNGF_AM_AC_UXD_D2_RK5
1498#endif
1499 use pm_kind, only: RKG => RK5
1500 type(rngf_type) , intent(in) :: rng
1501 real(RKG) , intent(out) , contiguous :: rand(:,:)
1502 real(RKG) , intent(out) , contiguous :: mahalSq(:,:)
1503 real(RKG) , intent(out) , contiguous :: invmul(:)
1504 real(RKG) , intent(in) , contiguous :: mean(:,:), chol(:,:,:), invGram(:,:,:)
1505 type(uppDia_type) , intent(in) :: subset
1506 integer(IK) , intent(out) , contiguous :: membership(:)
1507 end subroutine
1508#endif
1509
1510#if RK4_ENABLED
1511 impure module subroutine setMMUR_RNGF_AM_AC_UXD_D2_RK4(rng, rand, mahalSq, invmul, membership, mean, chol, subset, invGram)
1512#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1513 !DEC$ ATTRIBUTES DLLEXPORT :: setMMUR_RNGF_AM_AC_UXD_D2_RK4
1514#endif
1515 use pm_kind, only: RKG => RK4
1516 type(rngf_type) , intent(in) :: rng
1517 real(RKG) , intent(out) , contiguous :: rand(:,:)
1518 real(RKG) , intent(out) , contiguous :: mahalSq(:,:)
1519 real(RKG) , intent(out) , contiguous :: invmul(:)
1520 real(RKG) , intent(in) , contiguous :: mean(:,:), chol(:,:,:), invGram(:,:,:)
1521 type(uppDia_type) , intent(in) :: subset
1522 integer(IK) , intent(out) , contiguous :: membership(:)
1523 end subroutine
1524#endif
1525
1526#if RK3_ENABLED
1527 impure module subroutine setMMUR_RNGF_AM_AC_UXD_D2_RK3(rng, rand, mahalSq, invmul, membership, mean, chol, subset, invGram)
1528#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1529 !DEC$ ATTRIBUTES DLLEXPORT :: setMMUR_RNGF_AM_AC_UXD_D2_RK3
1530#endif
1531 use pm_kind, only: RKG => RK3
1532 type(rngf_type) , intent(in) :: rng
1533 real(RKG) , intent(out) , contiguous :: rand(:,:)
1534 real(RKG) , intent(out) , contiguous :: mahalSq(:,:)
1535 real(RKG) , intent(out) , contiguous :: invmul(:)
1536 real(RKG) , intent(in) , contiguous :: mean(:,:), chol(:,:,:), invGram(:,:,:)
1537 type(uppDia_type) , intent(in) :: subset
1538 integer(IK) , intent(out) , contiguous :: membership(:)
1539 end subroutine
1540#endif
1541
1542#if RK2_ENABLED
1543 impure module subroutine setMMUR_RNGF_AM_AC_UXD_D2_RK2(rng, rand, mahalSq, invmul, membership, mean, chol, subset, invGram)
1544#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1545 !DEC$ ATTRIBUTES DLLEXPORT :: setMMUR_RNGF_AM_AC_UXD_D2_RK2
1546#endif
1547 use pm_kind, only: RKG => RK2
1548 type(rngf_type) , intent(in) :: rng
1549 real(RKG) , intent(out) , contiguous :: rand(:,:)
1550 real(RKG) , intent(out) , contiguous :: mahalSq(:,:)
1551 real(RKG) , intent(out) , contiguous :: invmul(:)
1552 real(RKG) , intent(in) , contiguous :: mean(:,:), chol(:,:,:), invGram(:,:,:)
1553 type(uppDia_type) , intent(in) :: subset
1554 integer(IK) , intent(out) , contiguous :: membership(:)
1555 end subroutine
1556#endif
1557
1558#if RK1_ENABLED
1559 impure module subroutine setMMUR_RNGF_AM_AC_UXD_D2_RK1(rng, rand, mahalSq, invmul, membership, mean, chol, subset, invGram)
1560#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1561 !DEC$ ATTRIBUTES DLLEXPORT :: setMMUR_RNGF_AM_AC_UXD_D2_RK1
1562#endif
1563 use pm_kind, only: RKG => RK1
1564 type(rngf_type) , intent(in) :: rng
1565 real(RKG) , intent(out) , contiguous :: rand(:,:)
1566 real(RKG) , intent(out) , contiguous :: mahalSq(:,:)
1567 real(RKG) , intent(out) , contiguous :: invmul(:)
1568 real(RKG) , intent(in) , contiguous :: mean(:,:), chol(:,:,:), invGram(:,:,:)
1569 type(uppDia_type) , intent(in) :: subset
1570 integer(IK) , intent(out) , contiguous :: membership(:)
1571 end subroutine
1572#endif
1573
1574 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1575
1576#if RK5_ENABLED
1577 impure module subroutine setMMUR_RNGF_AM_AC_XLD_D2_RK5(rng, rand, mahalSq, invmul, membership, mean, chol, subset, invGram)
1578#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1579 !DEC$ ATTRIBUTES DLLEXPORT :: setMMUR_RNGF_AM_AC_XLD_D2_RK5
1580#endif
1581 use pm_kind, only: RKG => RK5
1582 type(rngf_type) , intent(in) :: rng
1583 real(RKG) , intent(out) , contiguous :: rand(:,:)
1584 real(RKG) , intent(out) , contiguous :: mahalSq(:,:)
1585 real(RKG) , intent(out) , contiguous :: invmul(:)
1586 real(RKG) , intent(in) , contiguous :: mean(:,:), chol(:,:,:), invGram(:,:,:)
1587 type(lowDia_type) , intent(in) :: subset
1588 integer(IK) , intent(out) , contiguous :: membership(:)
1589 end subroutine
1590#endif
1591
1592#if RK4_ENABLED
1593 impure module subroutine setMMUR_RNGF_AM_AC_XLD_D2_RK4(rng, rand, mahalSq, invmul, membership, mean, chol, subset, invGram)
1594#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1595 !DEC$ ATTRIBUTES DLLEXPORT :: setMMUR_RNGF_AM_AC_XLD_D2_RK4
1596#endif
1597 use pm_kind, only: RKG => RK4
1598 type(rngf_type) , intent(in) :: rng
1599 real(RKG) , intent(out) , contiguous :: rand(:,:)
1600 real(RKG) , intent(out) , contiguous :: mahalSq(:,:)
1601 real(RKG) , intent(out) , contiguous :: invmul(:)
1602 real(RKG) , intent(in) , contiguous :: mean(:,:), chol(:,:,:), invGram(:,:,:)
1603 type(lowDia_type) , intent(in) :: subset
1604 integer(IK) , intent(out) , contiguous :: membership(:)
1605 end subroutine
1606#endif
1607
1608#if RK3_ENABLED
1609 impure module subroutine setMMUR_RNGF_AM_AC_XLD_D2_RK3(rng, rand, mahalSq, invmul, membership, mean, chol, subset, invGram)
1610#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1611 !DEC$ ATTRIBUTES DLLEXPORT :: setMMUR_RNGF_AM_AC_XLD_D2_RK3
1612#endif
1613 use pm_kind, only: RKG => RK3
1614 type(rngf_type) , intent(in) :: rng
1615 real(RKG) , intent(out) , contiguous :: rand(:,:)
1616 real(RKG) , intent(out) , contiguous :: mahalSq(:,:)
1617 real(RKG) , intent(out) , contiguous :: invmul(:)
1618 real(RKG) , intent(in) , contiguous :: mean(:,:), chol(:,:,:), invGram(:,:,:)
1619 type(lowDia_type) , intent(in) :: subset
1620 integer(IK) , intent(out) , contiguous :: membership(:)
1621 end subroutine
1622#endif
1623
1624#if RK2_ENABLED
1625 impure module subroutine setMMUR_RNGF_AM_AC_XLD_D2_RK2(rng, rand, mahalSq, invmul, membership, mean, chol, subset, invGram)
1626#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1627 !DEC$ ATTRIBUTES DLLEXPORT :: setMMUR_RNGF_AM_AC_XLD_D2_RK2
1628#endif
1629 use pm_kind, only: RKG => RK2
1630 type(rngf_type) , intent(in) :: rng
1631 real(RKG) , intent(out) , contiguous :: rand(:,:)
1632 real(RKG) , intent(out) , contiguous :: mahalSq(:,:)
1633 real(RKG) , intent(out) , contiguous :: invmul(:)
1634 real(RKG) , intent(in) , contiguous :: mean(:,:), chol(:,:,:), invGram(:,:,:)
1635 type(lowDia_type) , intent(in) :: subset
1636 integer(IK) , intent(out) , contiguous :: membership(:)
1637 end subroutine
1638#endif
1639
1640#if RK1_ENABLED
1641 impure module subroutine setMMUR_RNGF_AM_AC_XLD_D2_RK1(rng, rand, mahalSq, invmul, membership, mean, chol, subset, invGram)
1642#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1643 !DEC$ ATTRIBUTES DLLEXPORT :: setMMUR_RNGF_AM_AC_XLD_D2_RK1
1644#endif
1645 use pm_kind, only: RKG => RK1
1646 type(rngf_type) , intent(in) :: rng
1647 real(RKG) , intent(out) , contiguous :: rand(:,:)
1648 real(RKG) , intent(out) , contiguous :: mahalSq(:,:)
1649 real(RKG) , intent(out) , contiguous :: invmul(:)
1650 real(RKG) , intent(in) , contiguous :: mean(:,:), chol(:,:,:), invGram(:,:,:)
1651 type(lowDia_type) , intent(in) :: subset
1652 integer(IK) , intent(out) , contiguous :: membership(:)
1653 end subroutine
1654#endif
1655
1656 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1657
1658 end interface
1659
1660 ! D2 RNGX
1661
1662 interface setUnifEllsRand
1663
1664 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1665
1666#if RK5_ENABLED
1667 PURE module subroutine setMMUR_RNGX_AM_DC_XXX_D2_RK5(rng, rand, mahalSq, invmul, membership, mean)
1668#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1669 !DEC$ ATTRIBUTES DLLEXPORT :: setMMUR_RNGX_AM_DC_XXX_D2_RK5
1670#endif
1671 use pm_kind, only: RKG => RK5
1672 type(xoshiro256ssw_type), intent(inout) :: rng
1673 real(RKG) , intent(out) , contiguous :: rand(:,:)
1674 real(RKG) , intent(out) , contiguous :: mahalSq(:,:)
1675 real(RKG) , intent(out) , contiguous :: invmul(:)
1676 real(RKG) , intent(in) , contiguous :: mean(:,:)
1677 integer(IK) , intent(out) , contiguous :: membership(:)
1678 end subroutine
1679#endif
1680
1681#if RK4_ENABLED
1682 PURE module subroutine setMMUR_RNGX_AM_DC_XXX_D2_RK4(rng, rand, mahalSq, invmul, membership, mean)
1683#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1684 !DEC$ ATTRIBUTES DLLEXPORT :: setMMUR_RNGX_AM_DC_XXX_D2_RK4
1685#endif
1686 use pm_kind, only: RKG => RK4
1687 type(xoshiro256ssw_type), intent(inout) :: rng
1688 real(RKG) , intent(out) , contiguous :: rand(:,:)
1689 real(RKG) , intent(out) , contiguous :: mahalSq(:,:)
1690 real(RKG) , intent(out) , contiguous :: invmul(:)
1691 real(RKG) , intent(in) , contiguous :: mean(:,:)
1692 integer(IK) , intent(out) , contiguous :: membership(:)
1693 end subroutine
1694#endif
1695
1696#if RK3_ENABLED
1697 PURE module subroutine setMMUR_RNGX_AM_DC_XXX_D2_RK3(rng, rand, mahalSq, invmul, membership, mean)
1698#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1699 !DEC$ ATTRIBUTES DLLEXPORT :: setMMUR_RNGX_AM_DC_XXX_D2_RK3
1700#endif
1701 use pm_kind, only: RKG => RK3
1702 type(xoshiro256ssw_type), intent(inout) :: rng
1703 real(RKG) , intent(out) , contiguous :: rand(:,:)
1704 real(RKG) , intent(out) , contiguous :: mahalSq(:,:)
1705 real(RKG) , intent(out) , contiguous :: invmul(:)
1706 real(RKG) , intent(in) , contiguous :: mean(:,:)
1707 integer(IK) , intent(out) , contiguous :: membership(:)
1708 end subroutine
1709#endif
1710
1711#if RK2_ENABLED
1712 PURE module subroutine setMMUR_RNGX_AM_DC_XXX_D2_RK2(rng, rand, mahalSq, invmul, membership, mean)
1713#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1714 !DEC$ ATTRIBUTES DLLEXPORT :: setMMUR_RNGX_AM_DC_XXX_D2_RK2
1715#endif
1716 use pm_kind, only: RKG => RK2
1717 type(xoshiro256ssw_type), intent(inout) :: rng
1718 real(RKG) , intent(out) , contiguous :: rand(:,:)
1719 real(RKG) , intent(out) , contiguous :: mahalSq(:,:)
1720 real(RKG) , intent(out) , contiguous :: invmul(:)
1721 real(RKG) , intent(in) , contiguous :: mean(:,:)
1722 integer(IK) , intent(out) , contiguous :: membership(:)
1723 end subroutine
1724#endif
1725
1726#if RK1_ENABLED
1727 PURE module subroutine setMMUR_RNGX_AM_DC_XXX_D2_RK1(rng, rand, mahalSq, invmul, membership, mean)
1728#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1729 !DEC$ ATTRIBUTES DLLEXPORT :: setMMUR_RNGX_AM_DC_XXX_D2_RK1
1730#endif
1731 use pm_kind, only: RKG => RK1
1732 type(xoshiro256ssw_type), intent(inout) :: rng
1733 real(RKG) , intent(out) , contiguous :: rand(:,:)
1734 real(RKG) , intent(out) , contiguous :: mahalSq(:,:)
1735 real(RKG) , intent(out) , contiguous :: invmul(:)
1736 real(RKG) , intent(in) , contiguous :: mean(:,:)
1737 integer(IK) , intent(out) , contiguous :: membership(:)
1738 end subroutine
1739#endif
1740
1741 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1742
1743#if RK5_ENABLED
1744 PURE module subroutine setMMUR_RNGX_AM_AC_UXD_D2_RK5(rng, rand, mahalSq, invmul, membership, mean, chol, subset, invGram)
1745#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1746 !DEC$ ATTRIBUTES DLLEXPORT :: setMMUR_RNGX_AM_AC_UXD_D2_RK5
1747#endif
1748 use pm_kind, only: RKG => RK5
1749 type(xoshiro256ssw_type), intent(inout) :: rng
1750 real(RKG) , intent(out) , contiguous :: rand(:,:)
1751 real(RKG) , intent(out) , contiguous :: mahalSq(:,:)
1752 real(RKG) , intent(out) , contiguous :: invmul(:)
1753 real(RKG) , intent(in) , contiguous :: mean(:,:), chol(:,:,:), invGram(:,:,:)
1754 type(uppDia_type) , intent(in) :: subset
1755 integer(IK) , intent(out) , contiguous :: membership(:)
1756 end subroutine
1757#endif
1758
1759#if RK4_ENABLED
1760 PURE module subroutine setMMUR_RNGX_AM_AC_UXD_D2_RK4(rng, rand, mahalSq, invmul, membership, mean, chol, subset, invGram)
1761#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1762 !DEC$ ATTRIBUTES DLLEXPORT :: setMMUR_RNGX_AM_AC_UXD_D2_RK4
1763#endif
1764 use pm_kind, only: RKG => RK4
1765 type(xoshiro256ssw_type), intent(inout) :: rng
1766 real(RKG) , intent(out) , contiguous :: rand(:,:)
1767 real(RKG) , intent(out) , contiguous :: mahalSq(:,:)
1768 real(RKG) , intent(out) , contiguous :: invmul(:)
1769 real(RKG) , intent(in) , contiguous :: mean(:,:), chol(:,:,:), invGram(:,:,:)
1770 type(uppDia_type) , intent(in) :: subset
1771 integer(IK) , intent(out) , contiguous :: membership(:)
1772 end subroutine
1773#endif
1774
1775#if RK3_ENABLED
1776 PURE module subroutine setMMUR_RNGX_AM_AC_UXD_D2_RK3(rng, rand, mahalSq, invmul, membership, mean, chol, subset, invGram)
1777#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1778 !DEC$ ATTRIBUTES DLLEXPORT :: setMMUR_RNGX_AM_AC_UXD_D2_RK3
1779#endif
1780 use pm_kind, only: RKG => RK3
1781 type(xoshiro256ssw_type), intent(inout) :: rng
1782 real(RKG) , intent(out) , contiguous :: rand(:,:)
1783 real(RKG) , intent(out) , contiguous :: mahalSq(:,:)
1784 real(RKG) , intent(out) , contiguous :: invmul(:)
1785 real(RKG) , intent(in) , contiguous :: mean(:,:), chol(:,:,:), invGram(:,:,:)
1786 type(uppDia_type) , intent(in) :: subset
1787 integer(IK) , intent(out) , contiguous :: membership(:)
1788 end subroutine
1789#endif
1790
1791#if RK2_ENABLED
1792 PURE module subroutine setMMUR_RNGX_AM_AC_UXD_D2_RK2(rng, rand, mahalSq, invmul, membership, mean, chol, subset, invGram)
1793#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1794 !DEC$ ATTRIBUTES DLLEXPORT :: setMMUR_RNGX_AM_AC_UXD_D2_RK2
1795#endif
1796 use pm_kind, only: RKG => RK2
1797 type(xoshiro256ssw_type), intent(inout) :: rng
1798 real(RKG) , intent(out) , contiguous :: rand(:,:)
1799 real(RKG) , intent(out) , contiguous :: mahalSq(:,:)
1800 real(RKG) , intent(out) , contiguous :: invmul(:)
1801 real(RKG) , intent(in) , contiguous :: mean(:,:), chol(:,:,:), invGram(:,:,:)
1802 type(uppDia_type) , intent(in) :: subset
1803 integer(IK) , intent(out) , contiguous :: membership(:)
1804 end subroutine
1805#endif
1806
1807#if RK1_ENABLED
1808 PURE module subroutine setMMUR_RNGX_AM_AC_UXD_D2_RK1(rng, rand, mahalSq, invmul, membership, mean, chol, subset, invGram)
1809#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1810 !DEC$ ATTRIBUTES DLLEXPORT :: setMMUR_RNGX_AM_AC_UXD_D2_RK1
1811#endif
1812 use pm_kind, only: RKG => RK1
1813 type(xoshiro256ssw_type), intent(inout) :: rng
1814 real(RKG) , intent(out) , contiguous :: rand(:,:)
1815 real(RKG) , intent(out) , contiguous :: mahalSq(:,:)
1816 real(RKG) , intent(out) , contiguous :: invmul(:)
1817 real(RKG) , intent(in) , contiguous :: mean(:,:), chol(:,:,:), invGram(:,:,:)
1818 type(uppDia_type) , intent(in) :: subset
1819 integer(IK) , intent(out) , contiguous :: membership(:)
1820 end subroutine
1821#endif
1822
1823 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1824
1825#if RK5_ENABLED
1826 PURE module subroutine setMMUR_RNGX_AM_AC_XLD_D2_RK5(rng, rand, mahalSq, invmul, membership, mean, chol, subset, invGram)
1827#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1828 !DEC$ ATTRIBUTES DLLEXPORT :: setMMUR_RNGX_AM_AC_XLD_D2_RK5
1829#endif
1830 use pm_kind, only: RKG => RK5
1831 type(xoshiro256ssw_type), intent(inout) :: rng
1832 real(RKG) , intent(out) , contiguous :: rand(:,:)
1833 real(RKG) , intent(out) , contiguous :: mahalSq(:,:)
1834 real(RKG) , intent(out) , contiguous :: invmul(:)
1835 real(RKG) , intent(in) , contiguous :: mean(:,:), chol(:,:,:), invGram(:,:,:)
1836 type(lowDia_type) , intent(in) :: subset
1837 integer(IK) , intent(out) , contiguous :: membership(:)
1838 end subroutine
1839#endif
1840
1841#if RK4_ENABLED
1842 PURE module subroutine setMMUR_RNGX_AM_AC_XLD_D2_RK4(rng, rand, mahalSq, invmul, membership, mean, chol, subset, invGram)
1843#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1844 !DEC$ ATTRIBUTES DLLEXPORT :: setMMUR_RNGX_AM_AC_XLD_D2_RK4
1845#endif
1846 use pm_kind, only: RKG => RK4
1847 type(xoshiro256ssw_type), intent(inout) :: rng
1848 real(RKG) , intent(out) , contiguous :: rand(:,:)
1849 real(RKG) , intent(out) , contiguous :: mahalSq(:,:)
1850 real(RKG) , intent(out) , contiguous :: invmul(:)
1851 real(RKG) , intent(in) , contiguous :: mean(:,:), chol(:,:,:), invGram(:,:,:)
1852 type(lowDia_type) , intent(in) :: subset
1853 integer(IK) , intent(out) , contiguous :: membership(:)
1854 end subroutine
1855#endif
1856
1857#if RK3_ENABLED
1858 PURE module subroutine setMMUR_RNGX_AM_AC_XLD_D2_RK3(rng, rand, mahalSq, invmul, membership, mean, chol, subset, invGram)
1859#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1860 !DEC$ ATTRIBUTES DLLEXPORT :: setMMUR_RNGX_AM_AC_XLD_D2_RK3
1861#endif
1862 use pm_kind, only: RKG => RK3
1863 type(xoshiro256ssw_type), intent(inout) :: rng
1864 real(RKG) , intent(out) , contiguous :: rand(:,:)
1865 real(RKG) , intent(out) , contiguous :: mahalSq(:,:)
1866 real(RKG) , intent(out) , contiguous :: invmul(:)
1867 real(RKG) , intent(in) , contiguous :: mean(:,:), chol(:,:,:), invGram(:,:,:)
1868 type(lowDia_type) , intent(in) :: subset
1869 integer(IK) , intent(out) , contiguous :: membership(:)
1870 end subroutine
1871#endif
1872
1873#if RK2_ENABLED
1874 PURE module subroutine setMMUR_RNGX_AM_AC_XLD_D2_RK2(rng, rand, mahalSq, invmul, membership, mean, chol, subset, invGram)
1875#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1876 !DEC$ ATTRIBUTES DLLEXPORT :: setMMUR_RNGX_AM_AC_XLD_D2_RK2
1877#endif
1878 use pm_kind, only: RKG => RK2
1879 type(xoshiro256ssw_type), intent(inout) :: rng
1880 real(RKG) , intent(out) , contiguous :: rand(:,:)
1881 real(RKG) , intent(out) , contiguous :: mahalSq(:,:)
1882 real(RKG) , intent(out) , contiguous :: invmul(:)
1883 real(RKG) , intent(in) , contiguous :: mean(:,:), chol(:,:,:), invGram(:,:,:)
1884 type(lowDia_type) , intent(in) :: subset
1885 integer(IK) , intent(out) , contiguous :: membership(:)
1886 end subroutine
1887#endif
1888
1889#if RK1_ENABLED
1890 PURE module subroutine setMMUR_RNGX_AM_AC_XLD_D2_RK1(rng, rand, mahalSq, invmul, membership, mean, chol, subset, invGram)
1891#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1892 !DEC$ ATTRIBUTES DLLEXPORT :: setMMUR_RNGX_AM_AC_XLD_D2_RK1
1893#endif
1894 use pm_kind, only: RKG => RK1
1895 type(xoshiro256ssw_type), intent(inout) :: rng
1896 real(RKG) , intent(out) , contiguous :: rand(:,:)
1897 real(RKG) , intent(out) , contiguous :: mahalSq(:,:)
1898 real(RKG) , intent(out) , contiguous :: invmul(:)
1899 real(RKG) , intent(in) , contiguous :: mean(:,:), chol(:,:,:), invGram(:,:,:)
1900 type(lowDia_type) , intent(in) :: subset
1901 integer(IK) , intent(out) , contiguous :: membership(:)
1902 end subroutine
1903#endif
1904
1905 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1906
1907 end interface
1908
1909!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1910
1911end module pm_distUnifElls
Generate and return the natural logarithm of an approximation of the Probability Density Function (PD...
Return a collection of random vectors of size ndim from the ndim-dimensional Multiple MultiVariate Un...
This module contains classes and procedures for computing various statistical quantities related to t...
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 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 abstract and concrete derived types that are required for compile-time resolutio...
type(lowDia_type), parameter lowDia
This is a scalar parameter object of type lowDia_type that is exclusively used to request lower-diago...
type(uppDia_type), parameter uppDia
This is a scalar parameter object of type uppDia_type that is exclusively used to request upper-diago...
This is the derived type for signifying distributions that are of type Multiple MultiVariate Uniform ...
This is a concrete derived type whose instances can be used to define/request the default uniform ran...
This is the derived type for declaring and generating objects of type xoshiro256ssw_type containing a...
This is a concrete derived type whose instances are exclusively used to request lower-diagonal triang...
This is a concrete derived type whose instances are exclusively used to request upper-diagonal triang...