TABLE OF CONTENTS


ABINIT/m_Stat [ Modules ]

[ Top ] [ Modules ]

NAME

  m_Stat

FUNCTION

  FIXME: add description. 

COPYRIGHT

  Copyright (C) 2013-2022 ABINIT group (J. Bieder)
  This file is distributed under the terms of the
  GNU General Public License, see ~abinit/COPYING
  or http://www.gnu.org/copyleft/gpl.txt .

NOTES

SOURCE

22 #include "defs.h"
23 MODULE m_Stat
24 USE m_global
25 IMPLICIT NONE
26   
27 PRIVATE
28 
29 PUBLIC :: Stat_average
30 PUBLIC :: Stat_variance
31 PUBLIC :: Stat_coVariance
32 PUBLIC :: Stat_deviation
33 PUBLIC :: Stat_linearReg
34 PUBLIC :: Stat_powerReg
35 
36 CONTAINS

ABINIT/m_Stat/Stat_linearReg [ Functions ]

[ Top ] [ Functions ]

NAME

  Stat_linearReg

FUNCTION

  FIXME: add description.

COPYRIGHT

  Copyright (C) 2013-2022 ABINIT group (J. Bieder)
  This file is distributed under the terms of the
  GNU General Public License, see ~abinit/COPYING
  or http://www.gnu.org/copyleft/gpl.txt .

INPUTS

  argin(sizein)=description

OUTPUT

  argout(sizeout)=description

SIDE EFFECTS

NOTES

SOURCE

142 SUBROUTINE Stat_linearReg(tabX, tabY, a, b, R)
143 !Arguments ------------------------------------
144   DOUBLE PRECISION, DIMENSION(:), INTENT(IN ) :: tabX
145   DOUBLE PRECISION, DIMENSION(:), INTENT(IN ) :: tabY
146   DOUBLE PRECISION              , INTENT(OUT) :: a
147   DOUBLE PRECISION              , INTENT(OUT) :: b
148   DOUBLE PRECISION              , INTENT(OUT) :: R
149   DOUBLE PRECISION                            :: coVar
150   DOUBLE PRECISION                            :: Var
151 
152   coVar = Stat_coVariance(tabX, tabY)
153   Var   = Stat_variance(tabX)
154   a = coVar / var
155   b = Stat_average(tabY) - a* Stat_average(tabX)
156   R = ABS(a * SQRT(var) / Stat_deviation(tabY))
157 END SUBROUTINE Stat_linearReg

ABINIT/m_Stat/Stat_powerReg [ Functions ]

[ Top ] [ Functions ]

NAME

  Stat_powerReg

FUNCTION

  FIXME: add description.

COPYRIGHT

  Copyright (C) 2013-2022 ABINIT group (J. Bieder)
  This file is distributed under the terms of the
  GNU General Public License, see ~abinit/COPYING
  or http://www.gnu.org/copyleft/gpl.txt .

INPUTS

  argin(sizein)=description

OUTPUT

  argout(sizeout)=description

SIDE EFFECTS

NOTES

SOURCE

185 SUBROUTINE Stat_powerReg(tabX, tabY, a, b, R)
186 !Arguments ------------------------------------
187   DOUBLE PRECISION, DIMENSION(:), INTENT(IN ) :: tabX
188   DOUBLE PRECISION, DIMENSION(:), INTENT(IN ) :: tabY
189   DOUBLE PRECISION              , INTENT(OUT) :: a
190   DOUBLE PRECISION              , INTENT(OUT) :: b
191   DOUBLE PRECISION              , INTENT(OUT) :: R
192   INTEGER                                     :: size1
193   DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: tab1
194   DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: tab2
195   INTEGER :: i
196 
197   size1 = SIZE(tabX)
198   IF ( size1 .NE. SIZE(tabY) ) &
199     CALL ERROR("Stat_powerReg : Array sizes mismatch              ")
200 
201   FREEIF(tab1)
202   FREEIF(tab2)
203   MALLOC(tab1,(1:size1))
204   MALLOC(tab2,(1:size1))
205 
206 
207 !  IF ( ISNAN(a) .OR. ISNAN(b) ) THEN
208     DO i = 1, size1 
209       tab1(i) = LOG(tabX(i))
210       IF ( tabY(i) .NE. 0.d0 ) THEN
211         tab2(i) = LOG(tabY(i))
212       ELSE
213         tab2(i) = LOG(1.d-16)
214       END IF
215       !WRITE(92,'(4E22.14)') tabX(i), tab1(i), tabY(i), tab2(i)
216     END DO
217     !WRITE(92,*)
218   !END IF
219   CALL Stat_linearReg(tab1, tab2, b, a, R)
220   a = EXP(a)
221   FREE(tab1)
222   FREE(tab2)
223 END SUBROUTINE Stat_powerReg