Binds the seven C++-engine entry points. Called by parquet_sorting_oracle, and by nothing else; idempotent, so calling it on every engine selection costs nothing.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| procedure(oracle_argsort_i) | :: | argsort_p |
the whole-permutation entry point. |
|||
| procedure(oracle_partial_i) | :: | partial_p |
the partial sort. |
|||
| procedure(oracle_nth_i) | :: | nth_p |
nth-element selection. |
|||
| procedure(oracle_is_sorted_i) | :: | is_sorted_p |
the already-sorted test. |
|||
| procedure(oracle_runs_i) | :: | runs_p |
the grouped sort. |
|||
| procedure(oracle_search_i) | :: | search_p |
the binary search. |
|||
| procedure(oracle_merge_i) | :: | merge_p |
the merge. |
subroutine parquet_argsort_bind_oracle(argsort_p, partial_p, nth_p, is_sorted_p, runs_p, & search_p, merge_p) procedure(oracle_argsort_i) :: argsort_p !! the whole-permutation entry point. procedure(oracle_partial_i) :: partial_p !! the partial sort. procedure(oracle_nth_i) :: nth_p !! nth-element selection. procedure(oracle_is_sorted_i) :: is_sorted_p !! the already-sorted test. procedure(oracle_runs_i) :: runs_p !! the grouped sort. procedure(oracle_search_i) :: search_p !! the binary search. procedure(oracle_merge_i) :: merge_p !! the merge. ! p_argsort => argsort_p p_partial => partial_p p_nth => nth_p p_is_sorted => is_sorted_p p_runs => runs_p p_search => search_p p_merge => merge_p end subroutine parquet_argsort_bind_oracle