Annotation of rpl/src/distributions.F90, revision 1.1

1.1     ! bertrand    1: !===============================================================================
        !             2: ! RPL/2 (R) version 4.0.9
        !             3: ! Copyright (C) 1989-2010 Dr. BERTRAND Joël
        !             4: !
        !             5: ! This file is part of RPL/2.
        !             6: !
        !             7: ! RPL/2 is free software; you can redistribute it and/or modify it
        !             8: ! under the terms of the CeCILL V2 License as published by the french
        !             9: ! CEA, CNRS and INRIA.
        !            10: !
        !            11: ! RPL/2 is distributed in the hope that it will be useful, but WITHOUT
        !            12: ! ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
        !            13: ! FITNESS FOR A PARTICULAR PURPOSE.  See the CeCILL V2 License
        !            14: ! for more details.
        !            15: !
        !            16: ! You should have received a copy of the CeCILL License
        !            17: ! along with RPL/2. If not, write to info@cecill.info.
        !            18: !===============================================================================
        !            19: 
        !            20: 
        !            21: #include "rplftypes.conv.inc"
        !            22: 
        !            23: 
        !            24: !===============================================================================
        !            25: ! Fonction renvoyant la valeur de la distribution X² à v degrés de liberté
        !            26: ! cumulée à droite
        !            27: !===============================================================================
        !            28: ! Entrées :
        !            29: !  real*8 X2    : valeur de la variable X²
        !            30: !  integer*4 NU : nombre de degrés de liberté
        !            31: !-------------------------------------------------------------------------------
        !            32: ! Sortie :
        !            33: !  real*8 donnant la probabilité P(X < X2)
        !            34: !-------------------------------------------------------------------------------
        !            35: ! Effets de bord : néant
        !            36: !===============================================================================
        !            37: 
        !            38: subroutine F90X2CD(X2, NU, RESULTAT) bind(C, name='f90x2cd')
        !            39:    use iso_c_binding
        !            40:    implicit none
        !            41: 
        !            42:    integer(rpl_integer8), intent(in) ::    NU
        !            43:    
        !            44:    real(rpl_real8), intent(out) ::         RESULTAT
        !            45:    real(rpl_real8), intent(in) ::          X2
        !            46: 
        !            47:    interface
        !            48:        real(c_double) function gsl_cdf_chisq_Q(X2, NU) &
        !            49:                bind(C, name='gsl_cdf_chisq_Q')
        !            50:            use iso_c_binding
        !            51:            implicit none
        !            52:            real(c_double), intent(in), value    :: NU
        !            53:            real(c_double), intent(in), value    :: X2
        !            54:        end function
        !            55:    end interface
        !            56: 
        !            57:     RESULTAT = gsl_cdf_chisq_Q(X2, dble(NU))
        !            58: 
        !            59:    return
        !            60: end subroutine
        !            61: 
        !            62: 
        !            63: !===============================================================================
        !            64: ! Fonction renvoyant la valeur de la distribution F à v1 et v2 degrés de liberté
        !            65: ! cumulée à droite
        !            66: !===============================================================================
        !            67: ! Entrées :
        !            68: !  real*8 F      : valeur de la variable
        !            69: !  integer*4 NU1 : nombre de degrés de liberté
        !            70: !  integer*4 NU2 : nombre de degrés de liberté
        !            71: !-------------------------------------------------------------------------------
        !            72: ! Sortie :
        !            73: !  real*8 donnant la probabilité P(X < F)
        !            74: !-------------------------------------------------------------------------------
        !            75: ! Effets de bord : néant
        !            76: !===============================================================================
        !            77: 
        !            78: subroutine F90FCD(F, NU1, NU2, RESULTAT) bind(C, name='f90fcd')
        !            79:    use iso_c_binding
        !            80:    implicit none
        !            81: 
        !            82:    integer(rpl_integer8), intent(in) ::    NU1
        !            83:    integer(rpl_integer8), intent(in) ::    NU2
        !            84: 
        !            85:    real(rpl_real8), intent(in) ::          F
        !            86:    real(rpl_real8), intent(out) ::         RESULTAT
        !            87: 
        !            88:    interface
        !            89:        real(c_double) function gsl_cdf_fdist_Q(F, NU1, NU2) &
        !            90:                bind(C, name='gsl_cdf_fdist_Q')
        !            91:            use iso_c_binding
        !            92:            implicit none
        !            93:            real(c_double), intent(in), value    :: NU1
        !            94:            real(c_double), intent(in), value    :: NU2
        !            95:            real(c_double), intent(in), value    :: F
        !            96:        end function
        !            97:    end interface
        !            98: 
        !            99:    RESULTAT = gsl_cdf_fdist_Q(F, dble(NU1), dble(NU2))
        !           100: 
        !           101:    return
        !           102: end subroutine
        !           103: 
        !           104: 
        !           105: !===============================================================================
        !           106: ! Fonction renvoyant la valeur de la distribution du t de Student
        !           107: ! cumulée à droite
        !           108: !===============================================================================
        !           109: ! Entrées :
        !           110: !  real*8 T : point de calcul
        !           111: !  real*8 N : nombre de degrés de liberté
        !           112: !-------------------------------------------------------------------------------
        !           113: ! Sortie :
        !           114: !  real*8 donnant la probabilité P(X < T)
        !           115: !-------------------------------------------------------------------------------
        !           116: ! Effets de bord : néant
        !           117: !===============================================================================
        !           118: 
        !           119: subroutine F90TCD(T, NU, RESULTAT) bind(C, name='f90tcd')
        !           120:    use iso_c_binding
        !           121:    implicit none
        !           122: 
        !           123:    integer(rpl_integer8), intent(in) ::        NU
        !           124: 
        !           125:    real(rpl_real8), intent(out) ::             RESULTAT
        !           126:    real(rpl_real8), intent(in) ::              T
        !           127: 
        !           128:    interface
        !           129:        real(c_double) function gsl_cdf_tdist_Q(T, NU) &
        !           130:                bind(C, name='gsl_cdf_tdist_Q')
        !           131:            use iso_c_binding
        !           132:            implicit none
        !           133:            real(rpl_real8), intent(in), value  ::  NU
        !           134:            real(rpl_real8), intent(in), value  ::  T
        !           135:        end function
        !           136:    end interface
        !           137: 
        !           138:    RESULTAT = gsl_cdf_tdist_Q(T, dble(NU))
        !           139: 
        !           140:    return
        !           141: end subroutine
        !           142: 
        !           143: 
        !           144: !===============================================================================
        !           145: ! Fonction renvoyant la valeur de la distribution normale cumulée à droite
        !           146: !===============================================================================
        !           147: ! Entrées :
        !           148: !  real*8 X : point de calcul
        !           149: !  real*8 MOYENNE et VARIANCE de la distribution
        !           150: !-------------------------------------------------------------------------------
        !           151: ! Sortie :
        !           152: !  real*8 donnant la probabilité P(R < X)
        !           153: !-------------------------------------------------------------------------------
        !           154: ! Effets de bord : néant
        !           155: !===============================================================================
        !           156: 
        !           157: subroutine F90GAUSSCD(X, MOYENNE, VARIANCE, RESULTAT) bind(C, name='f90gausscd')
        !           158:    use iso_c_binding
        !           159:    implicit none
        !           160: 
        !           161:    real(rpl_real8), intent(in) ::      MOYENNE
        !           162:    real(rpl_real8), intent(in) ::      VARIANCE
        !           163:    real(rpl_real8), intent(in) ::      X
        !           164: 
        !           165:    real(rpl_real8), intent(out) ::     RESULTAT
        !           166: 
        !           167:    real(rpl_real8)                     Z
        !           168: 
        !           169:    interface
        !           170:        real(c_double) function gsl_cdf_ugaussian_Q(Z) &
        !           171:                bind(C, name='gsl_cdf_ugaussian_Q')
        !           172:            use iso_c_binding
        !           173:            implicit none
        !           174:            real(c_double), intent(in), value ::    Z
        !           175:        end function
        !           176:    end interface
        !           177: 
        !           178:    Z = (X - MOYENNE) / sqrt(VARIANCE)
        !           179:    RESULTAT = gsl_cdf_ugaussian_Q(Z)
        !           180: 
        !           181:    return
        !           182: end subroutine
        !           183: 
        !           184: ! vim: ts=4

CVSweb interface <joel.bertrand@systella.fr>