pic_statistics Module

This module provides simple reductions over rank-1 arrays. To avoid precision loss and integer overflow, mean, variance and std_dev always accumulate in and return real(dp), regardless of the input type. min_max preserves the input type and returns the two extremes in a length-2 array.


Uses

  • module~~pic_statistics~~UsesGraph module~pic_statistics pic_statistics module~pic_types pic_types module~pic_statistics->module~pic_types iso_c_binding iso_c_binding module~pic_types->iso_c_binding iso_fortran_env iso_fortran_env module~pic_types->iso_fortran_env

Interfaces

public interface mean

Arithmetic mean of a 1-D array, returned as real(dp).

Returns 0 for an empty array. Supported input types are: integer(int32), integer(int64), real(sp), real(dp). Usage: m = mean(array)

  • private pure function mean_int32(array) result(m)

    Mean of an integer(int32) array.

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int32), intent(in) :: array(:)

    Return Value real(kind=dp)

  • private pure function mean_int64(array) result(m)

    Mean of an integer(int64) array.

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int64), intent(in) :: array(:)

    Return Value real(kind=dp)

  • private pure function mean_sp(array) result(m)

    Mean of a real(sp) array.

    Arguments

    Type IntentOptional Attributes Name
    real(kind=sp), intent(in) :: array(:)

    Return Value real(kind=dp)

  • private pure function mean_dp(array) result(m)

    Mean of a real(dp) array.

    Arguments

    Type IntentOptional Attributes Name
    real(kind=dp), intent(in) :: array(:)

    Return Value real(kind=dp)

public interface min_max

Minimum and maximum of a 1-D array in a single length-2 result.

Returns [minval(array), maxval(array)], preserving the input type. The result is undefined for an empty array. Supported types are: integer(int32), integer(int64), real(sp), real(dp). Usage: mm = min_max(array) ! mm(1) = min, mm(2) = max

  • private pure function min_max_int32(array) result(mm)

    Minimum and maximum of an integer(int32) array.

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int32), intent(in) :: array(:)

    Return Value integer(kind=int32), (2)

  • private pure function min_max_int64(array) result(mm)

    Minimum and maximum of an integer(int64) array.

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int64), intent(in) :: array(:)

    Return Value integer(kind=int64), (2)

  • private pure function min_max_sp(array) result(mm)

    Minimum and maximum of a real(sp) array.

    Arguments

    Type IntentOptional Attributes Name
    real(kind=sp), intent(in) :: array(:)

    Return Value real(kind=sp), (2)

  • private pure function min_max_dp(array) result(mm)

    Minimum and maximum of a real(dp) array.

    Arguments

    Type IntentOptional Attributes Name
    real(kind=dp), intent(in) :: array(:)

    Return Value real(kind=dp), (2)

public interface std_dev

Standard deviation of a 1-D array, returned as real(dp).

Equal to sqrt(variance(array, sample)); see variance for the meaning of the optional sample flag. Usage: s = std_dev(array [, sample])

  • private pure function std_dev_int32(array, sample) result(s)

    Standard deviation of an integer(int32) array.

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int32), intent(in) :: array(:)
    logical, intent(in), optional :: sample

    Return Value real(kind=dp)

  • private pure function std_dev_int64(array, sample) result(s)

    Standard deviation of an integer(int64) array.

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int64), intent(in) :: array(:)
    logical, intent(in), optional :: sample

    Return Value real(kind=dp)

  • private pure function std_dev_sp(array, sample) result(s)

    Standard deviation of a real(sp) array.

    Arguments

    Type IntentOptional Attributes Name
    real(kind=sp), intent(in) :: array(:)
    logical, intent(in), optional :: sample

    Return Value real(kind=dp)

  • private pure function std_dev_dp(array, sample) result(s)

    Standard deviation of a real(dp) array.

    Arguments

    Type IntentOptional Attributes Name
    real(kind=dp), intent(in) :: array(:)
    logical, intent(in), optional :: sample

    Return Value real(kind=dp)

public interface variance

Variance of a 1-D array, returned as real(dp).

By default the unbiased sample variance (dividing by n - 1) is returned; pass sample = .false. for the population variance (dividing by n). Returns 0 when there are too few elements to define it. Supported input types are: integer(int32), integer(int64), real(sp), real(dp). Usage: v = variance(array [, sample])

  • private pure function variance_int32(array, sample) result(v)

    Variance of an integer(int32) array.

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int32), intent(in) :: array(:)
    logical, intent(in), optional :: sample

    Return Value real(kind=dp)

  • private pure function variance_int64(array, sample) result(v)

    Variance of an integer(int64) array.

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int64), intent(in) :: array(:)
    logical, intent(in), optional :: sample

    Return Value real(kind=dp)

  • private pure function variance_sp(array, sample) result(v)

    Variance of a real(sp) array.

    Arguments

    Type IntentOptional Attributes Name
    real(kind=sp), intent(in) :: array(:)
    logical, intent(in), optional :: sample

    Return Value real(kind=dp)

  • private pure function variance_dp(array, sample) result(v)

    Variance of a real(dp) array (core implementation, two-pass).

    Arguments

    Type IntentOptional Attributes Name
    real(kind=dp), intent(in) :: array(:)
    logical, intent(in), optional :: sample

    Return Value real(kind=dp)


Functions

private pure function mean_dp(array) result(m)

Mean of a real(dp) array.

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: array(:)

Return Value real(kind=dp)

private pure function mean_int32(array) result(m)

Mean of an integer(int32) array.

Arguments

Type IntentOptional Attributes Name
integer(kind=int32), intent(in) :: array(:)

Return Value real(kind=dp)

private pure function mean_int64(array) result(m)

Mean of an integer(int64) array.

Arguments

Type IntentOptional Attributes Name
integer(kind=int64), intent(in) :: array(:)

Return Value real(kind=dp)

private pure function mean_sp(array) result(m)

Mean of a real(sp) array.

Arguments

Type IntentOptional Attributes Name
real(kind=sp), intent(in) :: array(:)

Return Value real(kind=dp)

private pure function min_max_dp(array) result(mm)

Minimum and maximum of a real(dp) array.

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: array(:)

Return Value real(kind=dp), (2)

private pure function min_max_int32(array) result(mm)

Minimum and maximum of an integer(int32) array.

Arguments

Type IntentOptional Attributes Name
integer(kind=int32), intent(in) :: array(:)

Return Value integer(kind=int32), (2)

private pure function min_max_int64(array) result(mm)

Minimum and maximum of an integer(int64) array.

Arguments

Type IntentOptional Attributes Name
integer(kind=int64), intent(in) :: array(:)

Return Value integer(kind=int64), (2)

private pure function min_max_sp(array) result(mm)

Minimum and maximum of a real(sp) array.

Arguments

Type IntentOptional Attributes Name
real(kind=sp), intent(in) :: array(:)

Return Value real(kind=sp), (2)

private pure function std_dev_dp(array, sample) result(s)

Standard deviation of a real(dp) array.

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: array(:)
logical, intent(in), optional :: sample

Return Value real(kind=dp)

private pure function std_dev_int32(array, sample) result(s)

Standard deviation of an integer(int32) array.

Arguments

Type IntentOptional Attributes Name
integer(kind=int32), intent(in) :: array(:)
logical, intent(in), optional :: sample

Return Value real(kind=dp)

private pure function std_dev_int64(array, sample) result(s)

Standard deviation of an integer(int64) array.

Arguments

Type IntentOptional Attributes Name
integer(kind=int64), intent(in) :: array(:)
logical, intent(in), optional :: sample

Return Value real(kind=dp)

private pure function std_dev_sp(array, sample) result(s)

Standard deviation of a real(sp) array.

Arguments

Type IntentOptional Attributes Name
real(kind=sp), intent(in) :: array(:)
logical, intent(in), optional :: sample

Return Value real(kind=dp)

private pure function variance_dp(array, sample) result(v)

Variance of a real(dp) array (core implementation, two-pass).

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: array(:)
logical, intent(in), optional :: sample

Return Value real(kind=dp)

private pure function variance_int32(array, sample) result(v)

Variance of an integer(int32) array.

Arguments

Type IntentOptional Attributes Name
integer(kind=int32), intent(in) :: array(:)
logical, intent(in), optional :: sample

Return Value real(kind=dp)

private pure function variance_int64(array, sample) result(v)

Variance of an integer(int64) array.

Arguments

Type IntentOptional Attributes Name
integer(kind=int64), intent(in) :: array(:)
logical, intent(in), optional :: sample

Return Value real(kind=dp)

private pure function variance_sp(array, sample) result(v)

Variance of a real(sp) array.

Arguments

Type IntentOptional Attributes Name
real(kind=sp), intent(in) :: array(:)
logical, intent(in), optional :: sample

Return Value real(kind=dp)