1 //------------------------------------------------------------------------------
2 // GB_msort_3b.h: definitions for GB_msort_3b.c
3 //------------------------------------------------------------------------------
4 
5 // SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2021, All Rights Reserved.
6 // SPDX-License-Identifier: Apache-2.0
7 
8 //------------------------------------------------------------------------------
9 
10 // A parallel mergesort of an array of 3-by-n integers.  Each key consists
11 // of three integers.
12 
13 #include "GB_sort.h"
14 
15 //------------------------------------------------------------------------------
16 // prototypes only needed for GB_msort_3b
17 //------------------------------------------------------------------------------
18 
19 void GB_msort_3b_create_merge_tasks
20 (
21     // output:
22     int64_t *restrict L_task,        // L_task [t0...t0+ntasks-1] computed
23     int64_t *restrict L_len,         // L_len  [t0...t0+ntasks-1] computed
24     int64_t *restrict R_task,        // R_task [t0...t0+ntasks-1] computed
25     int64_t *restrict R_len,         // R_len  [t0...t0+ntasks-1] computed
26     int64_t *restrict S_task,        // S_task [t0...t0+ntasks-1] computed
27     // input:
28     const int t0,                       // first task tid to create
29     const int ntasks,                   // # of tasks to create
30     const int64_t pS_start,             // merge into S [pS_start...]
31     const int64_t *restrict L_0,     // Left = L [pL_start...pL_end-1]
32     const int64_t *restrict L_1,
33     const int64_t *restrict L_2,
34     const int64_t pL_start,
35     const int64_t pL_end,
36     const int64_t *restrict R_0,     // Right = R [pR_start...pR_end-1]
37     const int64_t *restrict R_1,
38     const int64_t *restrict R_2,
39     const int64_t pR_start,
40     const int64_t pR_end
41 ) ;
42 
43