https://www.cdslab.org/paramonte/fortran/2
Current view: top level - main - pm_matrixClass@routines.F90 (source / functions) Hit Total Coverage
Test: ParaMonte 2.0.0 :: Serial Fortran - Code Coverage Report Lines: 29 118 24.6 %
Date: 2024-04-08 03:18:57 Functions: 21 78 26.9 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : 
       2             : !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
       3             : !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
       4             : !!!!                                                                                                                            !!!!
       5             : !!!!    ParaMonte: Parallel Monte Carlo and Machine Learning Library.                                                           !!!!
       6             : !!!!                                                                                                                            !!!!
       7             : !!!!    Copyright (C) 2012-present, The Computational Data Science Lab                                                          !!!!
       8             : !!!!                                                                                                                            !!!!
       9             : !!!!    This file is part of the ParaMonte library.                                                                             !!!!
      10             : !!!!                                                                                                                            !!!!
      11             : !!!!    LICENSE                                                                                                                 !!!!
      12             : !!!!                                                                                                                            !!!!
      13             : !!!!       https://github.com/cdslaborg/paramonte/blob/main/LICENSE.md                                                          !!!!
      14             : !!!!                                                                                                                            !!!!
      15             : !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
      16             : !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
      17             : 
      18             : !>  \brief
      19             : !>  This file contains procedure implementations of [pm_matrixClass](@ref pm_matrixClass).
      20             : !>
      21             : !>  \finmain
      22             : !>
      23             : !>  \author
      24             : !>  \AmirShahmoradi, Monday March 6, 2017, 3:22 pm, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin.<br>
      25             : 
      26             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      27             : 
      28             : submodule (pm_matrixClass) routines ! LCOV_EXCL_LINE
      29             : 
      30             : #if CHECK_ENABLED
      31             :     use pm_err, only: getFine
      32             :     use pm_val2str, only: getStr
      33             :     use pm_err, only: setAsserted
      34             : #define CHECK_ASSERTION(LINE,ASSERTION,MSG) \
      35             : call setAsserted(ASSERTION,getFine(__FILE__,LINE)//MODULE_NAME//MSG);
      36             : #else
      37             : #define CHECK_ASSERTION(LINE,ASSERTION,MSG) continue;
      38             : #endif
      39             : 
      40             :     use pm_matrixPack, only: isMatPack
      41             :     use pm_matrixCopy, only: setMatCopy
      42             :     use pm_matrixChol, only: setMatChol
      43             :     use pm_matrixChol, only: recursion
      44             :     use pm_matrixChol, only: nothing
      45             :     implicit none
      46             : 
      47             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      48             : 
      49             : contains
      50             : 
      51             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      52             : 
      53             : #define isMatClass_ENABLED 1
      54             : 
      55             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      56             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      57             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      58             : 
      59             : #define PosDef_ENABLED 1
      60             : 
      61             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      62             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      63             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      64             : 
      65             : #define RDP_ENABLED 1
      66             : 
      67             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      68             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      69             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      70             : 
      71             : #define Ful_ENABLED 1
      72             : 
      73             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      74             : 
      75             : #define CK_ENABLED 1
      76             : 
      77             : #if CK5_ENABLED
      78             :     module procedure isMatClassPosDefFulRDP_CK5
      79             :         use pm_kind, only: CKC => CK5
      80             : #include "pm_matrixClass@routines.inc.F90"
      81             :     end procedure
      82             : #endif
      83             : 
      84             : #if CK4_ENABLED
      85           0 :     module procedure isMatClassPosDefFulRDP_CK4
      86             :         use pm_kind, only: CKC => CK4
      87             : #include "pm_matrixClass@routines.inc.F90"
      88           0 :     end procedure
      89             : #endif
      90             : 
      91             : #if CK3_ENABLED
      92           0 :     module procedure isMatClassPosDefFulRDP_CK3
      93             :         use pm_kind, only: CKC => CK3
      94             : #include "pm_matrixClass@routines.inc.F90"
      95           0 :     end procedure
      96             : #endif
      97             : 
      98             : #if CK2_ENABLED
      99          15 :     module procedure isMatClassPosDefFulRDP_CK2
     100             :         use pm_kind, only: CKC => CK2
     101             : #include "pm_matrixClass@routines.inc.F90"
     102          15 :     end procedure
     103             : #endif
     104             : 
     105             : #if CK1_ENABLED
     106          41 :     module procedure isMatClassPosDefFulRDP_CK1
     107             :         use pm_kind, only: CKC => CK1
     108             : #include "pm_matrixClass@routines.inc.F90"
     109          41 :     end procedure
     110             : #endif
     111             : 
     112             : #undef CK_ENABLED
     113             : 
     114             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     115             : 
     116             : #define RK_ENABLED 1
     117             : 
     118             : #if RK5_ENABLED
     119             :     module procedure isMatClassPosDefFulRDP_RK5
     120             :         use pm_kind, only: RKC => RK5
     121             : #include "pm_matrixClass@routines.inc.F90"
     122             :     end procedure
     123             : #endif
     124             : 
     125             : #if RK4_ENABLED
     126           0 :     module procedure isMatClassPosDefFulRDP_RK4
     127             :         use pm_kind, only: RKC => RK4
     128             : #include "pm_matrixClass@routines.inc.F90"
     129           0 :     end procedure
     130             : #endif
     131             : 
     132             : #if RK3_ENABLED
     133           0 :     module procedure isMatClassPosDefFulRDP_RK3
     134             :         use pm_kind, only: RKC => RK3
     135             : #include "pm_matrixClass@routines.inc.F90"
     136           0 :     end procedure
     137             : #endif
     138             : 
     139             : #if RK2_ENABLED
     140     1234084 :     module procedure isMatClassPosDefFulRDP_RK2
     141             :         use pm_kind, only: RKC => RK2
     142             : #include "pm_matrixClass@routines.inc.F90"
     143     1234084 :     end procedure
     144             : #endif
     145             : 
     146             : #if RK1_ENABLED
     147          93 :     module procedure isMatClassPosDefFulRDP_RK1
     148             :         use pm_kind, only: RKC => RK1
     149             : #include "pm_matrixClass@routines.inc.F90"
     150          93 :     end procedure
     151             : #endif
     152             : 
     153             : #undef RK_ENABLED
     154             : 
     155             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     156             : 
     157             : #undef Ful_ENABLED
     158             : 
     159             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     160             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     161             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     162             : 
     163             : #define Upp_ENABLED 1
     164             : 
     165             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     166             : 
     167             : #define CK_ENABLED 1
     168             : 
     169             : #if CK5_ENABLED
     170             :     module procedure isMatClassPosDefUppRDP_CK5
     171             :         use pm_kind, only: CKC => CK5
     172             : #include "pm_matrixClass@routines.inc.F90"
     173             :     end procedure
     174             : #endif
     175             : 
     176             : #if CK4_ENABLED
     177           0 :     module procedure isMatClassPosDefUppRDP_CK4
     178             :         use pm_kind, only: CKC => CK4
     179             : #include "pm_matrixClass@routines.inc.F90"
     180           0 :     end procedure
     181             : #endif
     182             : 
     183             : #if CK3_ENABLED
     184           0 :     module procedure isMatClassPosDefUppRDP_CK3
     185             :         use pm_kind, only: CKC => CK3
     186             : #include "pm_matrixClass@routines.inc.F90"
     187           0 :     end procedure
     188             : #endif
     189             : 
     190             : #if CK2_ENABLED
     191          15 :     module procedure isMatClassPosDefUppRDP_CK2
     192             :         use pm_kind, only: CKC => CK2
     193             : #include "pm_matrixClass@routines.inc.F90"
     194          15 :     end procedure
     195             : #endif
     196             : 
     197             : #if CK1_ENABLED
     198          32 :     module procedure isMatClassPosDefUppRDP_CK1
     199             :         use pm_kind, only: CKC => CK1
     200             : #include "pm_matrixClass@routines.inc.F90"
     201          32 :     end procedure
     202             : #endif
     203             : 
     204             : #undef CK_ENABLED
     205             : 
     206             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     207             : 
     208             : #define RK_ENABLED 1
     209             : 
     210             : #if RK5_ENABLED
     211             :     module procedure isMatClassPosDefUppRDP_RK5
     212             :         use pm_kind, only: RKC => RK5
     213             : #include "pm_matrixClass@routines.inc.F90"
     214             :     end procedure
     215             : #endif
     216             : 
     217             : #if RK4_ENABLED
     218           0 :     module procedure isMatClassPosDefUppRDP_RK4
     219             :         use pm_kind, only: RKC => RK4
     220             : #include "pm_matrixClass@routines.inc.F90"
     221           0 :     end procedure
     222             : #endif
     223             : 
     224             : #if RK3_ENABLED
     225           0 :     module procedure isMatClassPosDefUppRDP_RK3
     226             :         use pm_kind, only: RKC => RK3
     227             : #include "pm_matrixClass@routines.inc.F90"
     228           0 :     end procedure
     229             : #endif
     230             : 
     231             : #if RK2_ENABLED
     232     1234084 :     module procedure isMatClassPosDefUppRDP_RK2
     233             :         use pm_kind, only: RKC => RK2
     234             : #include "pm_matrixClass@routines.inc.F90"
     235     1234084 :     end procedure
     236             : #endif
     237             : 
     238             : #if RK1_ENABLED
     239          88 :     module procedure isMatClassPosDefUppRDP_RK1
     240             :         use pm_kind, only: RKC => RK1
     241             : #include "pm_matrixClass@routines.inc.F90"
     242          88 :     end procedure
     243             : #endif
     244             : 
     245             : #undef RK_ENABLED
     246             : 
     247             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     248             : 
     249             : #undef Upp_ENABLED
     250             : 
     251             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     252             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     253             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     254             : 
     255             : #define Low_ENABLED 1
     256             : 
     257             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     258             : 
     259             : #define CK_ENABLED 1
     260             : 
     261             : #if CK5_ENABLED
     262             :     module procedure isMatClassPosDefLowRDP_CK5
     263             :         use pm_kind, only: CKC => CK5
     264             : #include "pm_matrixClass@routines.inc.F90"
     265             :     end procedure
     266             : #endif
     267             : 
     268             : #if CK4_ENABLED
     269           0 :     module procedure isMatClassPosDefLowRDP_CK4
     270             :         use pm_kind, only: CKC => CK4
     271             : #include "pm_matrixClass@routines.inc.F90"
     272           0 :     end procedure
     273             : #endif
     274             : 
     275             : #if CK3_ENABLED
     276           0 :     module procedure isMatClassPosDefLowRDP_CK3
     277             :         use pm_kind, only: CKC => CK3
     278             : #include "pm_matrixClass@routines.inc.F90"
     279           0 :     end procedure
     280             : #endif
     281             : 
     282             : #if CK2_ENABLED
     283           0 :     module procedure isMatClassPosDefLowRDP_CK2
     284             :         use pm_kind, only: CKC => CK2
     285             : #include "pm_matrixClass@routines.inc.F90"
     286           0 :     end procedure
     287             : #endif
     288             : 
     289             : #if CK1_ENABLED
     290           0 :     module procedure isMatClassPosDefLowRDP_CK1
     291             :         use pm_kind, only: CKC => CK1
     292             : #include "pm_matrixClass@routines.inc.F90"
     293           0 :     end procedure
     294             : #endif
     295             : 
     296             : #undef CK_ENABLED
     297             : 
     298             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     299             : 
     300             : #define RK_ENABLED 1
     301             : 
     302             : #if RK5_ENABLED
     303             :     module procedure isMatClassPosDefLowRDP_RK5
     304             :         use pm_kind, only: RKC => RK5
     305             : #include "pm_matrixClass@routines.inc.F90"
     306             :     end procedure
     307             : #endif
     308             : 
     309             : #if RK4_ENABLED
     310           0 :     module procedure isMatClassPosDefLowRDP_RK4
     311             :         use pm_kind, only: RKC => RK4
     312             : #include "pm_matrixClass@routines.inc.F90"
     313           0 :     end procedure
     314             : #endif
     315             : 
     316             : #if RK3_ENABLED
     317           0 :     module procedure isMatClassPosDefLowRDP_RK3
     318             :         use pm_kind, only: RKC => RK3
     319             : #include "pm_matrixClass@routines.inc.F90"
     320           0 :     end procedure
     321             : #endif
     322             : 
     323             : #if RK2_ENABLED
     324           0 :     module procedure isMatClassPosDefLowRDP_RK2
     325             :         use pm_kind, only: RKC => RK2
     326             : #include "pm_matrixClass@routines.inc.F90"
     327           0 :     end procedure
     328             : #endif
     329             : 
     330             : #if RK1_ENABLED
     331           0 :     module procedure isMatClassPosDefLowRDP_RK1
     332             :         use pm_kind, only: RKC => RK1
     333             : #include "pm_matrixClass@routines.inc.F90"
     334           0 :     end procedure
     335             : #endif
     336             : 
     337             : #undef RK_ENABLED
     338             : 
     339             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     340             : 
     341             : #undef Low_ENABLED
     342             : 
     343             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     344             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     345             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     346             : 
     347             : #undef RDP_ENABLED
     348             : 
     349             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     350             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     351             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     352             : 
     353             : #define RFP_ENABLED 1
     354             : 
     355             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     356             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     357             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     358             : 
     359             : #define Upp_ENABLED 1
     360             : 
     361             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     362             : 
     363             : #define CK_ENABLED 1
     364             : 
     365             : #if CK5_ENABLED
     366             :     module procedure isMatClassPosDefUppRFP_CK5
     367             :         use pm_kind, only: CKC => CK5
     368             : #include "pm_matrixClass@routines.inc.F90"
     369             :     end procedure
     370             : #endif
     371             : 
     372             : #if CK4_ENABLED
     373           0 :     module procedure isMatClassPosDefUppRFP_CK4
     374             :         use pm_kind, only: CKC => CK4
     375             : #include "pm_matrixClass@routines.inc.F90"
     376           0 :     end procedure
     377             : #endif
     378             : 
     379             : #if CK3_ENABLED
     380           0 :     module procedure isMatClassPosDefUppRFP_CK3
     381             :         use pm_kind, only: CKC => CK3
     382             : #include "pm_matrixClass@routines.inc.F90"
     383           0 :     end procedure
     384             : #endif
     385             : 
     386             : #if CK2_ENABLED
     387           0 :     module procedure isMatClassPosDefUppRFP_CK2
     388             :         use pm_kind, only: CKC => CK2
     389             : #include "pm_matrixClass@routines.inc.F90"
     390           0 :     end procedure
     391             : #endif
     392             : 
     393             : #if CK1_ENABLED
     394           0 :     module procedure isMatClassPosDefUppRFP_CK1
     395             :         use pm_kind, only: CKC => CK1
     396             : #include "pm_matrixClass@routines.inc.F90"
     397           0 :     end procedure
     398             : #endif
     399             : 
     400             : #undef CK_ENABLED
     401             : 
     402             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     403             : 
     404             : #define RK_ENABLED 1
     405             : 
     406             : #if RK5_ENABLED
     407             :     module procedure isMatClassPosDefUppRFP_RK5
     408             :         use pm_kind, only: RKC => RK5
     409             : #include "pm_matrixClass@routines.inc.F90"
     410             :     end procedure
     411             : #endif
     412             : 
     413             : #if RK4_ENABLED
     414           0 :     module procedure isMatClassPosDefUppRFP_RK4
     415             :         use pm_kind, only: RKC => RK4
     416             : #include "pm_matrixClass@routines.inc.F90"
     417           0 :     end procedure
     418             : #endif
     419             : 
     420             : #if RK3_ENABLED
     421           0 :     module procedure isMatClassPosDefUppRFP_RK3
     422             :         use pm_kind, only: RKC => RK3
     423             : #include "pm_matrixClass@routines.inc.F90"
     424           0 :     end procedure
     425             : #endif
     426             : 
     427             : #if RK2_ENABLED
     428           0 :     module procedure isMatClassPosDefUppRFP_RK2
     429             :         use pm_kind, only: RKC => RK2
     430             : #include "pm_matrixClass@routines.inc.F90"
     431           0 :     end procedure
     432             : #endif
     433             : 
     434             : #if RK1_ENABLED
     435           0 :     module procedure isMatClassPosDefUppRFP_RK1
     436             :         use pm_kind, only: RKC => RK1
     437             : #include "pm_matrixClass@routines.inc.F90"
     438           0 :     end procedure
     439             : #endif
     440             : 
     441             : #undef RK_ENABLED
     442             : 
     443             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     444             : 
     445             : #undef Upp_ENABLED
     446             : 
     447             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     448             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     449             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     450             : 
     451             : #define Low_ENABLED 1
     452             : 
     453             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     454             : 
     455             : #define CK_ENABLED 1
     456             : 
     457             : #if CK5_ENABLED
     458             :     module procedure isMatClassPosDefLowRFP_CK5
     459             :         use pm_kind, only: CKC => CK5
     460             : #include "pm_matrixClass@routines.inc.F90"
     461             :     end procedure
     462             : #endif
     463             : 
     464             : #if CK4_ENABLED
     465           0 :     module procedure isMatClassPosDefLowRFP_CK4
     466             :         use pm_kind, only: CKC => CK4
     467             : #include "pm_matrixClass@routines.inc.F90"
     468           0 :     end procedure
     469             : #endif
     470             : 
     471             : #if CK3_ENABLED
     472           0 :     module procedure isMatClassPosDefLowRFP_CK3
     473             :         use pm_kind, only: CKC => CK3
     474             : #include "pm_matrixClass@routines.inc.F90"
     475           0 :     end procedure
     476             : #endif
     477             : 
     478             : #if CK2_ENABLED
     479           0 :     module procedure isMatClassPosDefLowRFP_CK2
     480             :         use pm_kind, only: CKC => CK2
     481             : #include "pm_matrixClass@routines.inc.F90"
     482           0 :     end procedure
     483             : #endif
     484             : 
     485             : #if CK1_ENABLED
     486           0 :     module procedure isMatClassPosDefLowRFP_CK1
     487             :         use pm_kind, only: CKC => CK1
     488             : #include "pm_matrixClass@routines.inc.F90"
     489           0 :     end procedure
     490             : #endif
     491             : 
     492             : #undef CK_ENABLED
     493             : 
     494             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     495             : 
     496             : #define RK_ENABLED 1
     497             : 
     498             : #if RK5_ENABLED
     499             :     module procedure isMatClassPosDefLowRFP_RK5
     500             :         use pm_kind, only: RKC => RK5
     501             : #include "pm_matrixClass@routines.inc.F90"
     502             :     end procedure
     503             : #endif
     504             : 
     505             : #if RK4_ENABLED
     506           0 :     module procedure isMatClassPosDefLowRFP_RK4
     507             :         use pm_kind, only: RKC => RK4
     508             : #include "pm_matrixClass@routines.inc.F90"
     509           0 :     end procedure
     510             : #endif
     511             : 
     512             : #if RK3_ENABLED
     513           0 :     module procedure isMatClassPosDefLowRFP_RK3
     514             :         use pm_kind, only: RKC => RK3
     515             : #include "pm_matrixClass@routines.inc.F90"
     516           0 :     end procedure
     517             : #endif
     518             : 
     519             : #if RK2_ENABLED
     520           0 :     module procedure isMatClassPosDefLowRFP_RK2
     521             :         use pm_kind, only: RKC => RK2
     522             : #include "pm_matrixClass@routines.inc.F90"
     523           0 :     end procedure
     524             : #endif
     525             : 
     526             : #if RK1_ENABLED
     527           0 :     module procedure isMatClassPosDefLowRFP_RK1
     528             :         use pm_kind, only: RKC => RK1
     529             : #include "pm_matrixClass@routines.inc.F90"
     530           0 :     end procedure
     531             : #endif
     532             : 
     533             : #undef RK_ENABLED
     534             : 
     535             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     536             : 
     537             : #undef Low_ENABLED
     538             : 
     539             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     540             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     541             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     542             : 
     543             : #undef RFP_ENABLED
     544             : 
     545             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     546             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     547             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     548             : 
     549             : #undef PosDef_ENABLED
     550             : 
     551             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     552             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     553             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     554             : 
     555             : #define Symm_ENABLED 1
     556             : 
     557             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     558             : 
     559             : #define SK_ENABLED 1
     560             : 
     561             : #if SK5_ENABLED
     562             :     module procedure isMatClassSymm_SK5
     563             :         use pm_kind, only: SKC => SK5
     564             : #include "pm_matrixClass@routines.inc.F90"
     565             :     end procedure
     566             : #endif
     567             : 
     568             : #if SK4_ENABLED
     569             :     module procedure isMatClassSymm_SK4
     570             :         use pm_kind, only: SKC => SK4
     571             : #include "pm_matrixClass@routines.inc.F90"
     572             :     end procedure
     573             : #endif
     574             : 
     575             : #if SK3_ENABLED
     576             :     module procedure isMatClassSymm_SK3
     577             :         use pm_kind, only: SKC => SK3
     578             : #include "pm_matrixClass@routines.inc.F90"
     579             :     end procedure
     580             : #endif
     581             : 
     582             : #if SK2_ENABLED
     583             :     module procedure isMatClassSymm_SK2
     584             :         use pm_kind, only: SKC => SK2
     585             : #include "pm_matrixClass@routines.inc.F90"
     586             :     end procedure
     587             : #endif
     588             : 
     589             : #if SK1_ENABLED
     590          10 :     module procedure isMatClassSymm_SK1
     591             :         use pm_kind, only: SKC => SK1
     592             : #include "pm_matrixClass@routines.inc.F90"
     593             :     end procedure
     594             : #endif
     595             : 
     596             : #undef SK_ENABLED
     597             : 
     598             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     599             : 
     600             : #define IK_ENABLED 1
     601             : 
     602             : #if IK5_ENABLED
     603           0 :     module procedure isMatClassSymm_IK5
     604             :         use pm_kind, only: IKC => IK5
     605             : #include "pm_matrixClass@routines.inc.F90"
     606             :     end procedure
     607             : #endif
     608             : 
     609             : #if IK4_ENABLED
     610           0 :     module procedure isMatClassSymm_IK4
     611             :         use pm_kind, only: IKC => IK4
     612             : #include "pm_matrixClass@routines.inc.F90"
     613             :     end procedure
     614             : #endif
     615             : 
     616             : #if IK3_ENABLED
     617          10 :     module procedure isMatClassSymm_IK3
     618             :         use pm_kind, only: IKC => IK3
     619             : #include "pm_matrixClass@routines.inc.F90"
     620             :     end procedure
     621             : #endif
     622             : 
     623             : #if IK2_ENABLED
     624           0 :     module procedure isMatClassSymm_IK2
     625             :         use pm_kind, only: IKC => IK2
     626             : #include "pm_matrixClass@routines.inc.F90"
     627             :     end procedure
     628             : #endif
     629             : 
     630             : #if IK1_ENABLED
     631           0 :     module procedure isMatClassSymm_IK1
     632             :         use pm_kind, only: IKC => IK1
     633             : #include "pm_matrixClass@routines.inc.F90"
     634             :     end procedure
     635             : #endif
     636             : 
     637             : #undef IK_ENABLED
     638             : 
     639             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     640             : 
     641             : #define LK_ENABLED 1
     642             : 
     643             : #if LK5_ENABLED
     644           0 :     module procedure isMatClassSymm_LK5
     645             :         use pm_kind, only: LKC => LK5
     646             : #include "pm_matrixClass@routines.inc.F90"
     647             :     end procedure
     648             : #endif
     649             : 
     650             : #if LK4_ENABLED
     651           0 :     module procedure isMatClassSymm_LK4
     652             :         use pm_kind, only: LKC => LK4
     653             : #include "pm_matrixClass@routines.inc.F90"
     654             :     end procedure
     655             : #endif
     656             : 
     657             : #if LK3_ENABLED
     658          10 :     module procedure isMatClassSymm_LK3
     659             :         use pm_kind, only: LKC => LK3
     660             : #include "pm_matrixClass@routines.inc.F90"
     661             :     end procedure
     662             : #endif
     663             : 
     664             : #if LK2_ENABLED
     665           0 :     module procedure isMatClassSymm_LK2
     666             :         use pm_kind, only: LKC => LK2
     667             : #include "pm_matrixClass@routines.inc.F90"
     668             :     end procedure
     669             : #endif
     670             : 
     671             : #if LK1_ENABLED
     672           0 :     module procedure isMatClassSymm_LK1
     673             :         use pm_kind, only: LKC => LK1
     674             : #include "pm_matrixClass@routines.inc.F90"
     675             :     end procedure
     676             : #endif
     677             : 
     678             : #undef LK_ENABLED
     679             : 
     680             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     681             : 
     682             : #define CK_ENABLED 1
     683             : 
     684             : #if CK5_ENABLED
     685             :     module procedure isMatClassSymm_CK5
     686             :         use pm_kind, only: CKC => CK5
     687             : #include "pm_matrixClass@routines.inc.F90"
     688             :     end procedure
     689             : #endif
     690             : 
     691             : #if CK4_ENABLED
     692           0 :     module procedure isMatClassSymm_CK4
     693             :         use pm_kind, only: CKC => CK4
     694             : #include "pm_matrixClass@routines.inc.F90"
     695             :     end procedure
     696             : #endif
     697             : 
     698             : #if CK3_ENABLED
     699           0 :     module procedure isMatClassSymm_CK3
     700             :         use pm_kind, only: CKC => CK3
     701             : #include "pm_matrixClass@routines.inc.F90"
     702             :     end procedure
     703             : #endif
     704             : 
     705             : #if CK2_ENABLED
     706           0 :     module procedure isMatClassSymm_CK2
     707             :         use pm_kind, only: CKC => CK2
     708             : #include "pm_matrixClass@routines.inc.F90"
     709             :     end procedure
     710             : #endif
     711             : 
     712             : #if CK1_ENABLED
     713          10 :     module procedure isMatClassSymm_CK1
     714             :         use pm_kind, only: CKC => CK1
     715             : #include "pm_matrixClass@routines.inc.F90"
     716             :     end procedure
     717             : #endif
     718             : 
     719             : #undef CK_ENABLED
     720             : 
     721             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     722             : 
     723             : #define RK_ENABLED 1
     724             : 
     725             : #if RK5_ENABLED
     726             :     module procedure isMatClassSymm_RK5
     727             :         use pm_kind, only: RKC => RK5
     728             : #include "pm_matrixClass@routines.inc.F90"
     729             :     end procedure
     730             : #endif
     731             : 
     732             : #if RK4_ENABLED
     733           0 :     module procedure isMatClassSymm_RK4
     734             :         use pm_kind, only: RKC => RK4
     735             : #include "pm_matrixClass@routines.inc.F90"
     736             :     end procedure
     737             : #endif
     738             : 
     739             : #if RK3_ENABLED
     740           0 :     module procedure isMatClassSymm_RK3
     741             :         use pm_kind, only: RKC => RK3
     742             : #include "pm_matrixClass@routines.inc.F90"
     743             :     end procedure
     744             : #endif
     745             : 
     746             : #if RK2_ENABLED
     747          10 :     module procedure isMatClassSymm_RK2
     748             :         use pm_kind, only: RKC => RK2
     749             : #include "pm_matrixClass@routines.inc.F90"
     750             :     end procedure
     751             : #endif
     752             : 
     753             : #if RK1_ENABLED
     754          10 :     module procedure isMatClassSymm_RK1
     755             :         use pm_kind, only: RKC => RK1
     756             : #include "pm_matrixClass@routines.inc.F90"
     757             :     end procedure
     758             : #endif
     759             : 
     760             : #undef RK_ENABLED
     761             : 
     762             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     763             : 
     764             : #undef Symm_ENABLED
     765             : 
     766             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     767             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     768             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     769             : 
     770             : #define Herm_ENABLED 1
     771             : 
     772             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     773             : 
     774             : #define SK_ENABLED 1
     775             : 
     776             : #if SK5_ENABLED
     777             :     module procedure isMatClassHerm_SK5
     778             :         use pm_kind, only: SKC => SK5
     779             : #include "pm_matrixClass@routines.inc.F90"
     780             :     end procedure
     781             : #endif
     782             : 
     783             : #if SK4_ENABLED
     784             :     module procedure isMatClassHerm_SK4
     785             :         use pm_kind, only: SKC => SK4
     786             : #include "pm_matrixClass@routines.inc.F90"
     787             :     end procedure
     788             : #endif
     789             : 
     790             : #if SK3_ENABLED
     791             :     module procedure isMatClassHerm_SK3
     792             :         use pm_kind, only: SKC => SK3
     793             : #include "pm_matrixClass@routines.inc.F90"
     794             :     end procedure
     795             : #endif
     796             : 
     797             : #if SK2_ENABLED
     798             :     module procedure isMatClassHerm_SK2
     799             :         use pm_kind, only: SKC => SK2
     800             : #include "pm_matrixClass@routines.inc.F90"
     801             :     end procedure
     802             : #endif
     803             : 
     804             : #if SK1_ENABLED
     805          10 :     module procedure isMatClassHerm_SK1
     806             :         use pm_kind, only: SKC => SK1
     807             : #include "pm_matrixClass@routines.inc.F90"
     808             :     end procedure
     809             : #endif
     810             : 
     811             : #undef SK_ENABLED
     812             : 
     813             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     814             : 
     815             : #define IK_ENABLED 1
     816             : 
     817             : #if IK5_ENABLED
     818           0 :     module procedure isMatClassHerm_IK5
     819             :         use pm_kind, only: IKC => IK5
     820             : #include "pm_matrixClass@routines.inc.F90"
     821             :     end procedure
     822             : #endif
     823             : 
     824             : #if IK4_ENABLED
     825           0 :     module procedure isMatClassHerm_IK4
     826             :         use pm_kind, only: IKC => IK4
     827             : #include "pm_matrixClass@routines.inc.F90"
     828             :     end procedure
     829             : #endif
     830             : 
     831             : #if IK3_ENABLED
     832          10 :     module procedure isMatClassHerm_IK3
     833             :         use pm_kind, only: IKC => IK3
     834             : #include "pm_matrixClass@routines.inc.F90"
     835             :     end procedure
     836             : #endif
     837             : 
     838             : #if IK2_ENABLED
     839           0 :     module procedure isMatClassHerm_IK2
     840             :         use pm_kind, only: IKC => IK2
     841             : #include "pm_matrixClass@routines.inc.F90"
     842             :     end procedure
     843             : #endif
     844             : 
     845             : #if IK1_ENABLED
     846           0 :     module procedure isMatClassHerm_IK1
     847             :         use pm_kind, only: IKC => IK1
     848             : #include "pm_matrixClass@routines.inc.F90"
     849             :     end procedure
     850             : #endif
     851             : 
     852             : #undef IK_ENABLED
     853             : 
     854             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     855             : 
     856             : #define LK_ENABLED 1
     857             : 
     858             : #if LK5_ENABLED
     859           0 :     module procedure isMatClassHerm_LK5
     860             :         use pm_kind, only: LKC => LK5
     861             : #include "pm_matrixClass@routines.inc.F90"
     862             :     end procedure
     863             : #endif
     864             : 
     865             : #if LK4_ENABLED
     866           0 :     module procedure isMatClassHerm_LK4
     867             :         use pm_kind, only: LKC => LK4
     868             : #include "pm_matrixClass@routines.inc.F90"
     869             :     end procedure
     870             : #endif
     871             : 
     872             : #if LK3_ENABLED
     873          10 :     module procedure isMatClassHerm_LK3
     874             :         use pm_kind, only: LKC => LK3
     875             : #include "pm_matrixClass@routines.inc.F90"
     876             :     end procedure
     877             : #endif
     878             : 
     879             : #if LK2_ENABLED
     880           0 :     module procedure isMatClassHerm_LK2
     881             :         use pm_kind, only: LKC => LK2
     882             : #include "pm_matrixClass@routines.inc.F90"
     883             :     end procedure
     884             : #endif
     885             : 
     886             : #if LK1_ENABLED
     887           0 :     module procedure isMatClassHerm_LK1
     888             :         use pm_kind, only: LKC => LK1
     889             : #include "pm_matrixClass@routines.inc.F90"
     890             :     end procedure
     891             : #endif
     892             : 
     893             : #undef LK_ENABLED
     894             : 
     895             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     896             : 
     897             : #define CK_ENABLED 1
     898             : 
     899             : #if CK5_ENABLED
     900             :     module procedure isMatClassHerm_CK5
     901             :         use pm_kind, only: CKC => CK5
     902             : #include "pm_matrixClass@routines.inc.F90"
     903             :     end procedure
     904             : #endif
     905             : 
     906             : #if CK4_ENABLED
     907           0 :     module procedure isMatClassHerm_CK4
     908             :         use pm_kind, only: CKC => CK4
     909             : #include "pm_matrixClass@routines.inc.F90"
     910             :     end procedure
     911             : #endif
     912             : 
     913             : #if CK3_ENABLED
     914           0 :     module procedure isMatClassHerm_CK3
     915             :         use pm_kind, only: CKC => CK3
     916             : #include "pm_matrixClass@routines.inc.F90"
     917             :     end procedure
     918             : #endif
     919             : 
     920             : #if CK2_ENABLED
     921          30 :     module procedure isMatClassHerm_CK2
     922             :         use pm_kind, only: CKC => CK2
     923             : #include "pm_matrixClass@routines.inc.F90"
     924             :     end procedure
     925             : #endif
     926             : 
     927             : #if CK1_ENABLED
     928          61 :     module procedure isMatClassHerm_CK1
     929             :         use pm_kind, only: CKC => CK1
     930             : #include "pm_matrixClass@routines.inc.F90"
     931             :     end procedure
     932             : #endif
     933             : 
     934             : #undef CK_ENABLED
     935             : 
     936             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     937             : 
     938             : #define RK_ENABLED 1
     939             : 
     940             : #if RK5_ENABLED
     941             :     module procedure isMatClassHerm_RK5
     942             :         use pm_kind, only: RKC => RK5
     943             : #include "pm_matrixClass@routines.inc.F90"
     944             :     end procedure
     945             : #endif
     946             : 
     947             : #if RK4_ENABLED
     948           0 :     module procedure isMatClassHerm_RK4
     949             :         use pm_kind, only: RKC => RK4
     950             : #include "pm_matrixClass@routines.inc.F90"
     951             :     end procedure
     952             : #endif
     953             : 
     954             : #if RK3_ENABLED
     955           0 :     module procedure isMatClassHerm_RK3
     956             :         use pm_kind, only: RKC => RK3
     957             : #include "pm_matrixClass@routines.inc.F90"
     958             :     end procedure
     959             : #endif
     960             : 
     961             : #if RK2_ENABLED
     962     1234094 :     module procedure isMatClassHerm_RK2
     963             :         use pm_kind, only: RKC => RK2
     964             : #include "pm_matrixClass@routines.inc.F90"
     965             :     end procedure
     966             : #endif
     967             : 
     968             : #if RK1_ENABLED
     969         158 :     module procedure isMatClassHerm_RK1
     970             :         use pm_kind, only: RKC => RK1
     971             : #include "pm_matrixClass@routines.inc.F90"
     972             :     end procedure
     973             : #endif
     974             : 
     975             : #undef RK_ENABLED
     976             : 
     977             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     978             : 
     979             : #undef Herm_ENABLED
     980             : 
     981             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     982             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     983             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     984             : 
     985             : #undef isMatClass_ENABLED
     986             : 
     987             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     988             : 
     989             : end submodule routines

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