get_covariance Function

public function get_covariance(data, mean) result(covariance)

Arguments

Type IntentOptional Attributes Name
real(kind=8), intent(in), dimension(:,:) :: data
real(kind=8), intent(in), dimension(size(data,1)) :: mean

Return Value real(kind=8), dimension(size(data,1),size(data,1))


Source Code

  function get_covariance(data,mean) result(covariance)
    real(8),dimension(:,:),intent(in)            :: data
    real(8),dimension(size(data,1)),intent(in)   :: mean
    real(8),dimension(size(data,1),size(data,1)) :: covariance
    real(8),dimension(size(data,2))              :: Xi,Xj
    integer                                      :: i,j,ncol,L
    ncol=size(data,1)
    L   =size(data,2)
    covariance=0.d0
    do i=1,ncol
       Xi(:)=data(i,:)-mean(i)
       do j=1,ncol
          Xj(:)=data(j,:)-mean(j)
          covariance(i,j) = sum(Xi(:)*Xj(:))/real(L-1,8)
       enddo
    enddo
  end function get_covariance