NAFPack_Direct_types.f90 Source File


Files dependent on this one

sourcefile~~nafpack_direct_types.f90~~AfferentGraph sourcefile~nafpack_direct_types.f90 NAFPack_Direct_types.f90 sourcefile~nafpack_direct_methode.f90 NAFPack_Direct_methode.f90 sourcefile~nafpack_direct_methode.f90->sourcefile~nafpack_direct_types.f90 sourcefile~nafpack_linalg.f90 NAFPack_linalg.f90 sourcefile~nafpack_linalg.f90->sourcefile~nafpack_direct_types.f90 sourcefile~nafpack_linalg.f90->sourcefile~nafpack_direct_methode.f90

Source Code

MODULE NAFPack_Direct_types

    IMPLICIT NONE

    PRIVATE 

    PUBLIC :: MethodTypeDirect, MethodQR
    PUBLIC :: METHOD_DIRECT_NONE
    PUBLIC :: METHOD_Gauss, METHOD_Gauss_JORDAN
    PUBLIC :: METHOD_LU, METHOD_LDU
    PUBLIC :: METHOD_CHOLESKY, METHOD_LDL_Cholesky, METHOD_QR
    PUBLIC :: METHOD_TDMA, METHOD_FADDEEV_LEVERRIER
    PUBLIC :: QR_HOUSEHOLDER, QR_GIVENS, QR_GRAM_SCHMIDT
    PUBLIC :: QR_GRAM_SCHMIDT_Modified

    PUBLIC :: DirectMethodRequirements

    TYPE :: MethodTypeDirect
        INTEGER :: value
        CHARACTER(LEN=64) :: name
    END TYPE MethodTypeDirect

    TYPE :: MethodQR
        INTEGER :: value
        CHARACTER(LEN=64) :: name
    END TYPE MethodQR

    TYPE :: DirectMethodRequirements
        LOGICAL :: needs_SPD = .FALSE.
        LOGICAL :: needs_non_zero_diag = .FALSE.
        LOGICAL :: needs_square = .FALSE.
        LOGICAL :: needs_tridiagonal = .FALSE.
        LOGICAL :: needs_symmetric = .FALSE.
    END TYPE DirectMethodRequirements

    TYPE(MethodTypeDirect), PARAMETER :: METHOD_DIRECT_NONE = MethodTypeDirect(0, "None")
    TYPE(MethodTypeDirect), PARAMETER :: METHOD_Gauss = MethodTypeDirect(1, "Gauss")
    TYPE(MethodTypeDirect), PARAMETER :: METHOD_Gauss_JORDAN = MethodTypeDirect(2, "Gauss-Jordan")
    TYPE(MethodTypeDirect), PARAMETER :: METHOD_LU = MethodTypeDirect(3, "LU")
    TYPE(MethodTypeDirect), PARAMETER :: METHOD_LDU = MethodTypeDirect(4, "LDU")
    TYPE(MethodTypeDirect), PARAMETER :: METHOD_CHOLESKY = MethodTypeDirect(5, "Cholesky")
    TYPE(MethodTypeDirect), PARAMETER :: METHOD_LDL_Cholesky = MethodTypeDirect(6, "LDL-Cholesky")
    TYPE(MethodTypeDirect), PARAMETER :: METHOD_QR = MethodTypeDirect(7, "QR")
    TYPE(MethodTypeDirect), PARAMETER :: METHOD_TDMA = MethodTypeDirect(8, "TDMA")
    TYPE(MethodTypeDirect), PARAMETER :: METHOD_FADDEEV_LEVERRIER = MethodTypeDirect(9, "Faddeev-Leverrier")

    TYPE(MethodQR), PARAMETER :: QR_HOUSEHOLDER = MethodQR(1, "Householder")
    TYPE(MethodQR), PARAMETER :: QR_GIVENS = MethodQR(2, "Givens")
    TYPE(MethodQR), PARAMETER :: QR_GRAM_SCHMIDT = MethodQR(3, "Gram-Schmidt")
    TYPE(MethodQR), PARAMETER :: QR_GRAM_SCHMIDT_Modified = MethodQR(4, "Gram_Schmidt_Modified")
    
END MODULE NAFPack_Direct_types