m_partition Module

module~~m_partition~~UsesGraph module~m_partition m_partition module~variablekind variableKind module~variablekind->module~m_partition iso_fortran_env iso_fortran_env iso_fortran_env->module~variablekind
Help

Contains Hoare's style partitioning algorithm used for quicksorting and quickselect routines.

See partition and argPartition for more information.



Interfaces

public interface partition

Partitioning used for quickSort and quickSelect routines

  • public subroutine partition_r1D(this, left, right, iPivot)

    Interfaced with partition

    Arguments

    Type IntentOptional AttributesName
    real(kind=r32), intent(inout) :: this(:)

    1D array

    integer(kind=i32), intent(in) :: left

    Left index

    integer(kind=i32), intent(in) :: right

    Right index

    integer(kind=i32), intent(inout) :: iPivot

    Pivoting index

  • public subroutine partition_d1D(this, left, right, iPivot)

    Interfaced with partition

    Arguments

    Type IntentOptional AttributesName
    real(kind=r64), intent(inout) :: this(:)

    1D array

    integer(kind=i32), intent(in) :: left

    Left index

    integer(kind=i32), intent(in) :: right

    Right index

    integer(kind=i32), intent(inout) :: iPivot

    Pivoting index

  • public subroutine partition_i1D(this, left, right, iPivot)

    Interfaced with partition

    Arguments

    Type IntentOptional AttributesName
    integer(kind=i32), intent(inout) :: this(:)
    integer(kind=i32), intent(in) :: left
    integer(kind=i32), intent(in) :: right
    integer(kind=i32), intent(inout) :: iPivot
  • public subroutine partition_id1D(this, left, right, iPivot)

    Interfaced with partition

    Arguments

    Type IntentOptional AttributesName
    integer(kind=i64), intent(inout) :: this(:)
    integer(kind=i32), intent(in) :: left
    integer(kind=i32), intent(in) :: right
    integer(kind=i32), intent(inout) :: iPivot

public interface argPartition

Partitioning used for argQuicksort routines

  • public subroutine argPartition_r1D(this, idx, left, right, i)

    Interfaced with argPartition

    Arguments

    Type IntentOptional AttributesName
    real(kind=r32), intent(in) :: this(:)
    integer(kind=i32), intent(inout) :: idx(:)
    integer(kind=i32), intent(in) :: left
    integer(kind=i32), intent(in) :: right
    integer(kind=i32), intent(inout) :: i
  • public subroutine argPartition_d1D(this, idx, left, right, i)

    Interfaced with argPartition

    Arguments

    Type IntentOptional AttributesName
    real(kind=r64), intent(in) :: this(:)
    integer(kind=i32), intent(inout) :: idx(:)
    integer(kind=i32), intent(in) :: left
    integer(kind=i32), intent(in) :: right
    integer(kind=i32), intent(inout) :: i
  • public subroutine argPartition_i1D(this, idx, left, right, i)

    Interfaced with argPartition

    Arguments

    Type IntentOptional AttributesName
    integer(kind=i32), intent(in) :: this(:)
    integer(kind=i32), intent(inout) :: idx(:)
    integer(kind=i32), intent(in) :: left
    integer(kind=i32), intent(in) :: right
    integer(kind=i32), intent(inout) :: i
  • public subroutine argPartition_id1D(this, idx, left, right, i)

    Interfaced with argPartition

    Arguments

    Type IntentOptional AttributesName
    integer(kind=i64), intent(in) :: this(:)
    integer(kind=i32), intent(inout) :: idx(:)
    integer(kind=i32), intent(in) :: left
    integer(kind=i32), intent(in) :: right
    integer(kind=i32), intent(inout) :: i