https://www.cdslab.org/paramonte/fortran/2
Current view: top level - main - pm_clustering@routines.F90 (source / functions) Hit Total Coverage
Test: ParaMonte 2.0.0 :: Serial Fortran - Code Coverage Report Lines: 18 88 20.5 %
Date: 2024-04-08 03:18:57 Functions: 10 52 19.2 %
Legend: Lines: hit not hit

          Line data    Source code
       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             : 
      17             : !>  \brief
      18             : !>  This file contains procedure implementations of [pm_clustering](@ref pm_clustering).
      19             : !>
      20             : !>  \finmain
      21             : !>
      22             : !>  \author
      23             : !>  \AmirShahmoradi, Wednesday 5:43 PM, December 25, 2013, Institute for Fusion Studies, The University of Texas at Austin
      24             : 
      25             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      26             : 
      27             : submodule (pm_clustering) routines
      28             : 
      29             : #if CHECK_ENABLED
      30             :     use pm_err, only: getFine
      31             :     use pm_val2str, only: getStr
      32             :     use pm_err, only: setAsserted
      33             : #define CHECK_ASSERTION(LINE,ASSERTION,MSG) \
      34             : call setAsserted(ASSERTION,getFine(__FILE__,LINE)//MODULE_NAME//MSG);
      35             : #else
      36             : #define CHECK_ASSERTION(LINE,ASSERTION,MSG) continue;
      37             : #endif
      38             : 
      39             :     use pm_distUnif, only: setUnifRand
      40             :     implicit none
      41             : 
      42             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      43             : 
      44             : contains
      45             : 
      46             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      47             : 
      48             : #define setCenter_ENABLED 1
      49             : 
      50             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      51             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      52             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      53             : 
      54             : #define D1_D1_ENABLED 1
      55             : 
      56             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      57             : 
      58             : #define RK_ENABLED 1
      59             : 
      60             : #if RK5_ENABLED
      61             :     module procedure setCenterEuc_D1_D1_RK5
      62             :         use pm_kind, only: RKC => RK5
      63             : #include "pm_clustering@routines.inc.F90"
      64             :     end procedure
      65             : #endif
      66             : 
      67             : #if RK4_ENABLED
      68           0 :     module procedure setCenterEuc_D1_D1_RK4
      69             :         use pm_kind, only: RKC => RK4
      70             : #include "pm_clustering@routines.inc.F90"
      71           0 :     end procedure
      72             : #endif
      73             : 
      74             : #if RK3_ENABLED
      75           0 :     module procedure setCenterEuc_D1_D1_RK3
      76             :         use pm_kind, only: RKC => RK3
      77             : #include "pm_clustering@routines.inc.F90"
      78           0 :     end procedure
      79             : #endif
      80             : 
      81             : #if RK2_ENABLED
      82           0 :     module procedure setCenterEuc_D1_D1_RK2
      83             :         use pm_kind, only: RKC => RK2
      84             : #include "pm_clustering@routines.inc.F90"
      85           0 :     end procedure
      86             : #endif
      87             : 
      88             : #if RK1_ENABLED
      89           1 :     module procedure setCenterEuc_D1_D1_RK1
      90             :         use pm_kind, only: RKC => RK1
      91             : #include "pm_clustering@routines.inc.F90"
      92           1 :     end procedure
      93             : #endif
      94             : 
      95             : #undef RK_ENABLED
      96             : 
      97             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      98             : 
      99             : #undef D1_D1_ENABLED
     100             : 
     101             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     102             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     103             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     104             : 
     105             : #define D2_D2_ENABLED 1
     106             : 
     107             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     108             : 
     109             : #define RK_ENABLED 1
     110             : 
     111             : #if RK5_ENABLED
     112             :     module procedure setCenterEuc_D2_D2_RK5
     113             :         use pm_kind, only: RKC => RK5
     114             : #include "pm_clustering@routines.inc.F90"
     115             :     end procedure
     116             : #endif
     117             : 
     118             : #if RK4_ENABLED
     119           0 :     module procedure setCenterEuc_D2_D2_RK4
     120             :         use pm_kind, only: RKC => RK4
     121             : #include "pm_clustering@routines.inc.F90"
     122           0 :     end procedure
     123             : #endif
     124             : 
     125             : #if RK3_ENABLED
     126           0 :     module procedure setCenterEuc_D2_D2_RK3
     127             :         use pm_kind, only: RKC => RK3
     128             : #include "pm_clustering@routines.inc.F90"
     129           0 :     end procedure
     130             : #endif
     131             : 
     132             : #if RK2_ENABLED
     133           0 :     module procedure setCenterEuc_D2_D2_RK2
     134             :         use pm_kind, only: RKC => RK2
     135             : #include "pm_clustering@routines.inc.F90"
     136           0 :     end procedure
     137             : #endif
     138             : 
     139             : #if RK1_ENABLED
     140          36 :     module procedure setCenterEuc_D2_D2_RK1
     141             :         use pm_kind, only: RKC => RK1
     142             : #include "pm_clustering@routines.inc.F90"
     143          36 :     end procedure
     144             : #endif
     145             : 
     146             : #undef RK_ENABLED
     147             : 
     148             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     149             : 
     150             : #undef D2_D2_ENABLED
     151             : 
     152             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     153             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     154             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     155             : 
     156             : #undef setCenter_ENABLED
     157             : 
     158             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     159             : 
     160             : #define setMember_ENABLED 1
     161             : 
     162             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     163             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     164             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     165             : 
     166             : #define D0_D1_ENABLED 1
     167             : 
     168             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     169             : 
     170             : #define RK_ENABLED 1
     171             : 
     172             : #if RK5_ENABLED
     173             :     module procedure setMemberEuc_D0_D1_RK5
     174             :         use pm_kind, only: RKC => RK5
     175             : #include "pm_clustering@routines.inc.F90"
     176             :     end procedure
     177             : #endif
     178             : 
     179             : #if RK4_ENABLED
     180           0 :     module procedure setMemberEuc_D0_D1_RK4
     181             :         use pm_kind, only: RKC => RK4
     182             : #include "pm_clustering@routines.inc.F90"
     183           0 :     end procedure
     184             : #endif
     185             : 
     186             : #if RK3_ENABLED
     187           0 :     module procedure setMemberEuc_D0_D1_RK3
     188             :         use pm_kind, only: RKC => RK3
     189             : #include "pm_clustering@routines.inc.F90"
     190           0 :     end procedure
     191             : #endif
     192             : 
     193             : #if RK2_ENABLED
     194           0 :     module procedure setMemberEuc_D0_D1_RK2
     195             :         use pm_kind, only: RKC => RK2
     196             : #include "pm_clustering@routines.inc.F90"
     197           0 :     end procedure
     198             : #endif
     199             : 
     200             : #if RK1_ENABLED
     201           1 :     module procedure setMemberEuc_D0_D1_RK1
     202             :         use pm_kind, only: RKC => RK1
     203             : #include "pm_clustering@routines.inc.F90"
     204           1 :     end procedure
     205             : #endif
     206             : 
     207             : #undef RK_ENABLED
     208             : 
     209             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     210             : 
     211             : #undef D0_D1_ENABLED
     212             : 
     213             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     214             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     215             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     216             : 
     217             : #define D1_D1_ENABLED 1
     218             : 
     219             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     220             : 
     221             : #define RK_ENABLED 1
     222             : 
     223             : #if RK5_ENABLED
     224             :     module procedure setMemberEuc_D1_D1_RK5
     225             :         use pm_kind, only: RKC => RK5
     226             : #include "pm_clustering@routines.inc.F90"
     227             :     end procedure
     228             : #endif
     229             : 
     230             : #if RK4_ENABLED
     231           0 :     module procedure setMemberEuc_D1_D1_RK4
     232             :         use pm_kind, only: RKC => RK4
     233             : #include "pm_clustering@routines.inc.F90"
     234           0 :     end procedure
     235             : #endif
     236             : 
     237             : #if RK3_ENABLED
     238           0 :     module procedure setMemberEuc_D1_D1_RK3
     239             :         use pm_kind, only: RKC => RK3
     240             : #include "pm_clustering@routines.inc.F90"
     241           0 :     end procedure
     242             : #endif
     243             : 
     244             : #if RK2_ENABLED
     245           0 :     module procedure setMemberEuc_D1_D1_RK2
     246             :         use pm_kind, only: RKC => RK2
     247             : #include "pm_clustering@routines.inc.F90"
     248           0 :     end procedure
     249             : #endif
     250             : 
     251             : #if RK1_ENABLED
     252           1 :     module procedure setMemberEuc_D1_D1_RK1
     253             :         use pm_kind, only: RKC => RK1
     254             : #include "pm_clustering@routines.inc.F90"
     255           1 :     end procedure
     256             : #endif
     257             : 
     258             : #undef RK_ENABLED
     259             : 
     260             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     261             : 
     262             : #undef D1_D1_ENABLED
     263             : 
     264             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     265             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     266             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     267             : 
     268             : #define D1_D2_ENABLED 1
     269             : 
     270             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     271             : 
     272             : #define RK_ENABLED 1
     273             : 
     274             : #if RK5_ENABLED
     275             :     module procedure setMemberEuc_D1_D2_RK5
     276             :         use pm_kind, only: RKC => RK5
     277             : #include "pm_clustering@routines.inc.F90"
     278             :     end procedure
     279             : #endif
     280             : 
     281             : #if RK4_ENABLED
     282           0 :     module procedure setMemberEuc_D1_D2_RK4
     283             :         use pm_kind, only: RKC => RK4
     284             : #include "pm_clustering@routines.inc.F90"
     285           0 :     end procedure
     286             : #endif
     287             : 
     288             : #if RK3_ENABLED
     289           0 :     module procedure setMemberEuc_D1_D2_RK3
     290             :         use pm_kind, only: RKC => RK3
     291             : #include "pm_clustering@routines.inc.F90"
     292           0 :     end procedure
     293             : #endif
     294             : 
     295             : #if RK2_ENABLED
     296           0 :     module procedure setMemberEuc_D1_D2_RK2
     297             :         use pm_kind, only: RKC => RK2
     298             : #include "pm_clustering@routines.inc.F90"
     299           0 :     end procedure
     300             : #endif
     301             : 
     302             : #if RK1_ENABLED
     303           1 :     module procedure setMemberEuc_D1_D2_RK1
     304             :         use pm_kind, only: RKC => RK1
     305             : #include "pm_clustering@routines.inc.F90"
     306           1 :     end procedure
     307             : #endif
     308             : 
     309             : #undef RK_ENABLED
     310             : 
     311             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     312             : 
     313             : #undef D1_D2_ENABLED
     314             : 
     315             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     316             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     317             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     318             : 
     319             : #define D2_D2_ENABLED 1
     320             : 
     321             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     322             : 
     323             : #define RK_ENABLED 1
     324             : 
     325             : #if RK5_ENABLED
     326             :     module procedure setMemberEuc_D2_D2_RK5
     327             :         use pm_kind, only: RKC => RK5
     328             : #include "pm_clustering@routines.inc.F90"
     329             :     end procedure
     330             : #endif
     331             : 
     332             : #if RK4_ENABLED
     333           0 :     module procedure setMemberEuc_D2_D2_RK4
     334             :         use pm_kind, only: RKC => RK4
     335             : #include "pm_clustering@routines.inc.F90"
     336           0 :     end procedure
     337             : #endif
     338             : 
     339             : #if RK3_ENABLED
     340           0 :     module procedure setMemberEuc_D2_D2_RK3
     341             :         use pm_kind, only: RKC => RK3
     342             : #include "pm_clustering@routines.inc.F90"
     343           0 :     end procedure
     344             : #endif
     345             : 
     346             : #if RK2_ENABLED
     347           0 :     module procedure setMemberEuc_D2_D2_RK2
     348             :         use pm_kind, only: RKC => RK2
     349             : #include "pm_clustering@routines.inc.F90"
     350           0 :     end procedure
     351             : #endif
     352             : 
     353             : #if RK1_ENABLED
     354          38 :     module procedure setMemberEuc_D2_D2_RK1
     355             :         use pm_kind, only: RKC => RK1
     356             : #include "pm_clustering@routines.inc.F90"
     357          38 :     end procedure
     358             : #endif
     359             : 
     360             : #undef RK_ENABLED
     361             : 
     362             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     363             : 
     364             : #undef D2_D2_ENABLED
     365             : 
     366             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     367             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     368             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     369             : 
     370             : #undef setMember_ENABLED
     371             : 
     372             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     373             : 
     374             : #define setKmeansPP_ENABLED 1
     375             : 
     376             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     377             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     378             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     379             : 
     380             : #define Default_ENABLED 1
     381             : 
     382             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     383             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     384             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     385             : 
     386             : #define RNGF_ENABLED 1
     387             : 
     388             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     389             : 
     390             : #define RK_ENABLED 1
     391             : 
     392             : #if RK5_ENABLED
     393             :     module procedure setKmeansPPDRNGF_RK5
     394             :         use pm_kind, only: RKC => RK5
     395             : #include "pm_clustering@routines.inc.F90"
     396             :     end procedure
     397             : #endif
     398             : 
     399             : #if RK4_ENABLED
     400           0 :     module procedure setKmeansPPDRNGF_RK4
     401             :         use pm_kind, only: RKC => RK4
     402             : #include "pm_clustering@routines.inc.F90"
     403             :     end procedure
     404             : #endif
     405             : 
     406             : #if RK3_ENABLED
     407           0 :     module procedure setKmeansPPDRNGF_RK3
     408             :         use pm_kind, only: RKC => RK3
     409             : #include "pm_clustering@routines.inc.F90"
     410             :     end procedure
     411             : #endif
     412             : 
     413             : #if RK2_ENABLED
     414           0 :     module procedure setKmeansPPDRNGF_RK2
     415             :         use pm_kind, only: RKC => RK2
     416             : #include "pm_clustering@routines.inc.F90"
     417             :     end procedure
     418             : #endif
     419             : 
     420             : #if RK1_ENABLED
     421          10 :     module procedure setKmeansPPDRNGF_RK1
     422             :         use pm_kind, only: RKC => RK1
     423             : #include "pm_clustering@routines.inc.F90"
     424             :     end procedure
     425             : #endif
     426             : 
     427             : #undef RK_ENABLED
     428             : 
     429             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     430             : 
     431             : #undef RNGF_ENABLED
     432             : 
     433             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     434             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     435             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     436             : 
     437             : #define RNGX_ENABLED 1
     438             : 
     439             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     440             : 
     441             : #define RK_ENABLED 1
     442             : 
     443             : #if RK5_ENABLED
     444             :     module procedure setKmeansPPDRNGX_RK5
     445             :         use pm_kind, only: RKC => RK5
     446             : #include "pm_clustering@routines.inc.F90"
     447             :     end procedure
     448             : #endif
     449             : 
     450             : #if RK4_ENABLED
     451           0 :     module procedure setKmeansPPDRNGX_RK4
     452             :         use pm_kind, only: RKC => RK4
     453             : #include "pm_clustering@routines.inc.F90"
     454             :     end procedure
     455             : #endif
     456             : 
     457             : #if RK3_ENABLED
     458           0 :     module procedure setKmeansPPDRNGX_RK3
     459             :         use pm_kind, only: RKC => RK3
     460             : #include "pm_clustering@routines.inc.F90"
     461             :     end procedure
     462             : #endif
     463             : 
     464             : #if RK2_ENABLED
     465           0 :     module procedure setKmeansPPDRNGX_RK2
     466             :         use pm_kind, only: RKC => RK2
     467             : #include "pm_clustering@routines.inc.F90"
     468             :     end procedure
     469             : #endif
     470             : 
     471             : #if RK1_ENABLED
     472           0 :     module procedure setKmeansPPDRNGX_RK1
     473             :         use pm_kind, only: RKC => RK1
     474             : #include "pm_clustering@routines.inc.F90"
     475             :     end procedure
     476             : #endif
     477             : 
     478             : #undef RK_ENABLED
     479             : 
     480             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     481             : 
     482             : #undef RNGX_ENABLED
     483             : 
     484             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     485             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     486             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     487             : 
     488             : #undef Default_ENABLED
     489             : 
     490             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     491             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     492             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     493             : 
     494             : #define Optional_ENABLED 1
     495             : 
     496             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     497             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     498             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     499             : 
     500             : #define RNGF_ENABLED 1
     501             : 
     502             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     503             : 
     504             : #define RK_ENABLED 1
     505             : 
     506             : #if RK5_ENABLED
     507             :     module procedure setKmeansPPORNGF_RK5
     508             :         use pm_kind, only: RKC => RK5
     509             : #include "pm_clustering@routines.inc.F90"
     510             :     end procedure
     511             : #endif
     512             : 
     513             : #if RK4_ENABLED
     514           0 :     module procedure setKmeansPPORNGF_RK4
     515             :         use pm_kind, only: RKC => RK4
     516             : #include "pm_clustering@routines.inc.F90"
     517             :     end procedure
     518             : #endif
     519             : 
     520             : #if RK3_ENABLED
     521           0 :     module procedure setKmeansPPORNGF_RK3
     522             :         use pm_kind, only: RKC => RK3
     523             : #include "pm_clustering@routines.inc.F90"
     524             :     end procedure
     525             : #endif
     526             : 
     527             : #if RK2_ENABLED
     528           0 :     module procedure setKmeansPPORNGF_RK2
     529             :         use pm_kind, only: RKC => RK2
     530             : #include "pm_clustering@routines.inc.F90"
     531             :     end procedure
     532             : #endif
     533             : 
     534             : #if RK1_ENABLED
     535          12 :     module procedure setKmeansPPORNGF_RK1
     536             :         use pm_kind, only: RKC => RK1
     537             : #include "pm_clustering@routines.inc.F90"
     538             :     end procedure
     539             : #endif
     540             : 
     541             : #undef RK_ENABLED
     542             : 
     543             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     544             : 
     545             : #undef RNGF_ENABLED
     546             : 
     547             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     548             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     549             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     550             : 
     551             : #define RNGX_ENABLED 1
     552             : 
     553             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     554             : 
     555             : #define RK_ENABLED 1
     556             : 
     557             : #if RK5_ENABLED
     558             :     module procedure setKmeansPPORNGX_RK5
     559             :         use pm_kind, only: RKC => RK5
     560             : #include "pm_clustering@routines.inc.F90"
     561             :     end procedure
     562             : #endif
     563             : 
     564             : #if RK4_ENABLED
     565           0 :     module procedure setKmeansPPORNGX_RK4
     566             :         use pm_kind, only: RKC => RK4
     567             : #include "pm_clustering@routines.inc.F90"
     568             :     end procedure
     569             : #endif
     570             : 
     571             : #if RK3_ENABLED
     572           0 :     module procedure setKmeansPPORNGX_RK3
     573             :         use pm_kind, only: RKC => RK3
     574             : #include "pm_clustering@routines.inc.F90"
     575             :     end procedure
     576             : #endif
     577             : 
     578             : #if RK2_ENABLED
     579           0 :     module procedure setKmeansPPORNGX_RK2
     580             :         use pm_kind, only: RKC => RK2
     581             : #include "pm_clustering@routines.inc.F90"
     582             :     end procedure
     583             : #endif
     584             : 
     585             : #if RK1_ENABLED
     586           0 :     module procedure setKmeansPPORNGX_RK1
     587             :         use pm_kind, only: RKC => RK1
     588             : #include "pm_clustering@routines.inc.F90"
     589             :     end procedure
     590             : #endif
     591             : 
     592             : #undef RK_ENABLED
     593             : 
     594             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     595             : 
     596             : #undef RNGX_ENABLED
     597             : 
     598             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     599             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     600             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     601             : 
     602             : #undef Optional_ENABLED
     603             : 
     604             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     605             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     606             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     607             : 
     608             : #undef setKmeansPP_ENABLED
     609             : 
     610             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     611             : 
     612             : #define setKmeans_ENABLED 1
     613             : 
     614             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     615             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     616             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     617             : 
     618             : #define Init_ENABLED 1
     619             : 
     620             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     621             : 
     622             : #define RK_ENABLED 1
     623             : 
     624             : #if RK5_ENABLED
     625             :     module procedure setKmeansInit_RK5
     626             :         use pm_kind, only: RKC => RK5
     627             : #include "pm_clustering@routines.inc.F90"
     628             :     end procedure
     629             : #endif
     630             : 
     631             : #if RK4_ENABLED
     632           0 :     module procedure setKmeansInit_RK4
     633             :         use pm_kind, only: RKC => RK4
     634             : #include "pm_clustering@routines.inc.F90"
     635           0 :     end procedure
     636             : #endif
     637             : 
     638             : #if RK3_ENABLED
     639           0 :     module procedure setKmeansInit_RK3
     640             :         use pm_kind, only: RKC => RK3
     641             : #include "pm_clustering@routines.inc.F90"
     642           0 :     end procedure
     643             : #endif
     644             : 
     645             : #if RK2_ENABLED
     646           0 :     module procedure setKmeansInit_RK2
     647             :         use pm_kind, only: RKC => RK2
     648             : #include "pm_clustering@routines.inc.F90"
     649           0 :     end procedure
     650             : #endif
     651             : 
     652             : #if RK1_ENABLED
     653          11 :     module procedure setKmeansInit_RK1
     654             :         use pm_kind, only: RKC => RK1
     655             : #include "pm_clustering@routines.inc.F90"
     656          11 :     end procedure
     657             : #endif
     658             : 
     659             : #undef RK_ENABLED
     660             : 
     661             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     662             : 
     663             : #undef Init_ENABLED
     664             : 
     665             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     666             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     667             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     668             : 
     669             : #define RNGF_ENABLED 1
     670             : 
     671             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     672             : 
     673             : #define RK_ENABLED 1
     674             : 
     675             : #if RK5_ENABLED
     676             :     module procedure setKmeansRNGF_RK5
     677             :         use pm_kind, only: RKC => RK5
     678             : #include "pm_clustering@routines.inc.F90"
     679             :     end procedure
     680             : #endif
     681             : 
     682             : #if RK4_ENABLED
     683           0 :     module procedure setKmeansRNGF_RK4
     684             :         use pm_kind, only: RKC => RK4
     685             : #include "pm_clustering@routines.inc.F90"
     686           0 :     end procedure
     687             : #endif
     688             : 
     689             : #if RK3_ENABLED
     690           0 :     module procedure setKmeansRNGF_RK3
     691             :         use pm_kind, only: RKC => RK3
     692             : #include "pm_clustering@routines.inc.F90"
     693           0 :     end procedure
     694             : #endif
     695             : 
     696             : #if RK2_ENABLED
     697           0 :     module procedure setKmeansRNGF_RK2
     698             :         use pm_kind, only: RKC => RK2
     699             : #include "pm_clustering@routines.inc.F90"
     700           0 :     end procedure
     701             : #endif
     702             : 
     703             : #if RK1_ENABLED
     704          10 :     module procedure setKmeansRNGF_RK1
     705             :         use pm_kind, only: RKC => RK1
     706             : #include "pm_clustering@routines.inc.F90"
     707          10 :     end procedure
     708             : #endif
     709             : 
     710             : #undef RK_ENABLED
     711             : 
     712             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     713             : 
     714             : #undef RNGF_ENABLED
     715             : 
     716             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     717             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     718             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     719             : 
     720             : #define RNGX_ENABLED 1
     721             : 
     722             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     723             : 
     724             : #define RK_ENABLED 1
     725             : 
     726             : #if RK5_ENABLED
     727             :     module procedure setKmeansRNGX_RK5
     728             :         use pm_kind, only: RKC => RK5
     729             : #include "pm_clustering@routines.inc.F90"
     730             :     end procedure
     731             : #endif
     732             : 
     733             : #if RK4_ENABLED
     734           0 :     module procedure setKmeansRNGX_RK4
     735             :         use pm_kind, only: RKC => RK4
     736             : #include "pm_clustering@routines.inc.F90"
     737           0 :     end procedure
     738             : #endif
     739             : 
     740             : #if RK3_ENABLED
     741           0 :     module procedure setKmeansRNGX_RK3
     742             :         use pm_kind, only: RKC => RK3
     743             : #include "pm_clustering@routines.inc.F90"
     744           0 :     end procedure
     745             : #endif
     746             : 
     747             : #if RK2_ENABLED
     748           0 :     module procedure setKmeansRNGX_RK2
     749             :         use pm_kind, only: RKC => RK2
     750             : #include "pm_clustering@routines.inc.F90"
     751           0 :     end procedure
     752             : #endif
     753             : 
     754             : #if RK1_ENABLED
     755           0 :     module procedure setKmeansRNGX_RK1
     756             :         use pm_kind, only: RKC => RK1
     757             : #include "pm_clustering@routines.inc.F90"
     758           0 :     end procedure
     759             : #endif
     760             : 
     761             : #undef RK_ENABLED
     762             : 
     763             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     764             : 
     765             : #undef RNGX_ENABLED
     766             : 
     767             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     768             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     769             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     770             : 
     771             : #undef setKmeans_ENABLED
     772             : 
     773             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     774             : 
     775             : #undef CHECK_ASSERTION
     776             : 
     777             : end submodule routines

ParaMonte: Parallel Monte Carlo and Machine Learning Library 
The Computational Data Science Lab
© Copyright 2012 - 2024