#ifndef BLIS_THREAD_RANGE_H
#define BLIS_THREAD_RANGE_H
BLIS_EXPORT_BLIS void bli_thread_range_sub
(
const thrinfo_t* thread,
dim_t n,
dim_t bf,
bool handle_edge_low,
dim_t* start,
dim_t* end
);
#undef GENPROT
#define GENPROT( opname ) \
\
siz_t PASTEMAC0( opname ) \
( \
dir_t direct, \
const thrinfo_t* thr, \
const obj_t* a, \
const obj_t* b, \
const obj_t* c, \
const cntl_t* cntl, \
const cntx_t* cntx, \
dim_t* start, \
dim_t* end \
);
GENPROT( thread_range_mdim )
GENPROT( thread_range_ndim )
#undef GENPROT
#define GENPROT( opname ) \
\
siz_t PASTEMAC0( opname ) \
( \
const thrinfo_t* thr, \
const obj_t* a, \
const blksz_t* bmult, \
dim_t* start, \
dim_t* end \
);
GENPROT( thread_range_l2r )
GENPROT( thread_range_r2l )
GENPROT( thread_range_t2b )
GENPROT( thread_range_b2t )
GENPROT( thread_range_weighted_l2r )
GENPROT( thread_range_weighted_r2l )
GENPROT( thread_range_weighted_t2b )
GENPROT( thread_range_weighted_b2t )
dim_t bli_thread_range_width_l
(
doff_t diagoff_j,
dim_t m,
dim_t n_j,
dim_t j,
dim_t n_way,
dim_t bf,
dim_t bf_left,
double area_per_thr,
bool handle_edge_low
);
siz_t bli_find_area_trap_l
(
doff_t diagoff,
dim_t m,
dim_t n,
dim_t bf
);
siz_t bli_thread_range_weighted_sub
(
const thrinfo_t* thread,
doff_t diagoff,
uplo_t uplo,
uplo_t uplo_orig,
dim_t m,
dim_t n,
dim_t bf,
bool handle_edge_low,
dim_t* j_start_thr,
dim_t* j_end_thr
);
#endif