1 #ifndef DISTRIBUTION_BLOC_1D_IS_DEFINED 2 #define DISTRIBUTION_BLOC_1D_IS_DEFINED 4 #if defined(__cplusplus) 37 static inline unsigned blockSize(
unsigned glen,
unsigned total) {
38 return (glen+total-1)/total;
42 static inline unsigned localBlockLengthO(
unsigned glen,
unsigned rank,
unsigned total,
unsigned bsz) {
43 if (rank == total - 1) {
44 return glen - rank * bsz;
49 static inline unsigned localBlockLength(
unsigned glen,
unsigned rank,
unsigned total) {
50 if (rank == total - 1) {
51 return glen - rank *
blockSize(glen, total);
59 unsigned rank,
unsigned bsz) {
60 unsigned long tmp = (rank+1) * bsz;
62 *high = ((glen <= tmp)?glen:tmp);
65 unsigned rank,
unsigned total) {
68 unsigned tmp = (rank+1) * bsz;
71 *high = ((glen <= tmp)?glen:tmp);
83 unsigned tmp = (rank+1) * bsz;
84 return ((glen <= tmp)?glen:tmp);
93 #if defined(__cplusplus) static void computeBlockBoundsO(unsigned long *low, unsigned long *high, unsigned glen, unsigned rank, unsigned bsz)
static void computeBlockBounds(unsigned *low, unsigned *high, unsigned glen, unsigned rank, unsigned total)
static unsigned computeBlockBoundSup(unsigned glen, unsigned rank, unsigned total)
static unsigned computeBlockBoundSup0(unsigned glen, unsigned bsz, unsigned rank)
static unsigned blockSize(unsigned glen, unsigned total)
static unsigned localBlockLength(unsigned glen, unsigned rank, unsigned total)
static unsigned computeBlockBoundInf0(unsigned bsz, unsigned rank)
static unsigned localBlockLengthO(unsigned glen, unsigned rank, unsigned total, unsigned bsz)
static unsigned computeBlockBoundInf(unsigned glen, unsigned rank, unsigned total)