FORCES
FORtran lib for Comp. Env. Sys.
|
Covariance between vectors. More...
Public Member Functions | |
real(sp) function | covariance_sp (x, y, mask) |
real(dp) function | covariance_dp (x, y, mask) |
Covariance between vectors.
Calculates the covariance between two input vectors:
\[Cov(x,y) = \sum_i\frac{(x_i-\bar x)(y_i-\bar y)}{N}\]
If an optional mask is given, the average is only over those locations that correspond to true values in the mask. \(x\) can be single or double precision. The result will have the same numerical precision.
Example
vec1 = (/ 1., 2, 3., -999., 5., 6. /) vec2 = (/ 1.3, 2.7, 3.9, 5.1, 6., 8. /) m = covariance(vec1, vec2, mask=((vec1 >= 0.) .and. (vec2 >= 0.)))
See also example in test directory.
[in] | real(sp/dp) :: x(:) | First 1D-array with input numbers. |
[in] | real(sp/dp) :: y(:) | Second 1D-array with input numbers. |
[in] | logical, optional :: mask(:) | 1D-array of logical values with size(x). If present, only those locations in dat corresponding to the true values in mask are used. |
real(sp/dp) :: covariance | Covariance between x and y. |
Definition at line 280 of file mo_moment.f90.
real(dp) function mo_moment::covariance::covariance_dp | ( | real(dp), dimension(:), intent(in) | x, |
real(dp), dimension(:), intent(in) | y, | ||
logical, dimension(:), intent(in), optional | mask | ||
) |
Definition at line 961 of file mo_moment.f90.
real(sp) function mo_moment::covariance::covariance_sp | ( | real(sp), dimension(:), intent(in) | x, |
real(sp), dimension(:), intent(in) | y, | ||
logical, dimension(:), intent(in), optional | mask | ||
) |
Definition at line 993 of file mo_moment.f90.