radix_sort Interface

public interface radix_sort

The generic subroutine interface implementing the LSD radix sort algorithm, see https://en.wikipedia.org/wiki/Radix_sort for more details. It is always O(N) in sorting random data, but need a O(N) buffer. (Specification)


Subroutines

private module subroutine dp_radix_sort(array, work, reverse)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(inout), dimension(:), target :: array
real(kind=dp), intent(inout), optional, dimension(:), target :: work
logical, intent(in), optional :: reverse

private pure module subroutine int16_radix_sort(array, work, reverse)

Arguments

Type IntentOptional Attributes Name
integer(kind=int16), intent(inout), dimension(:) :: array
integer(kind=int16), intent(inout), optional, dimension(:), target :: work
logical, intent(in), optional :: reverse

private pure module subroutine int32_radix_sort(array, work, reverse)

Arguments

Type IntentOptional Attributes Name
integer(kind=int32), intent(inout), dimension(:) :: array
integer(kind=int32), intent(inout), optional, dimension(:), target :: work
logical, intent(in), optional :: reverse

private pure module subroutine int64_radix_sort(array, work, reverse)

Arguments

Type IntentOptional Attributes Name
integer(kind=int64), intent(inout), dimension(:) :: array
integer(kind=int64), intent(inout), optional, dimension(:), target :: work
logical, intent(in), optional :: reverse

private pure module subroutine int8_radix_sort(array, reverse)

Arguments

Type IntentOptional Attributes Name
integer(kind=int8), intent(inout), dimension(:) :: array
logical, intent(in), optional :: reverse

private module subroutine sp_radix_sort(array, work, reverse)

Arguments

Type IntentOptional Attributes Name
real(kind=sp), intent(inout), dimension(:), target :: array
real(kind=sp), intent(inout), optional, dimension(:), target :: work
logical, intent(in), optional :: reverse