69 static void GetWork(
int nwork,
int me,
int & mywork,
int & myoff){
72 static void GetWork(
int nwork,
int me,
int & mywork,
int & myoff,
int units){
73 int basework = nwork/units;
74 int backfill = units-(nwork%units);
78 mywork = (nwork+me)/units;
79 myoff = basework * me;
81 myoff+= (me-backfill);
94 return omp_get_thread_num();
100 template<
class obj>
static void ThreadSum( std::vector<obj> &sum_array,obj &val,
int me){
104 for(
int i=0;i<
_threads;i++) val+= sum_array[i];
108 static void bcopy(
const void *src,
void *dst,
size_t len) {
112 const char *c_src =(
char *) src;
113 char *c_dest=(
char *) dst;
116 bcopy(&c_src[myoff],&c_dest[myoff],mywork);
#define NAMESPACE_BEGIN(A)
static void SetMaxThreads(void)
static int GetThreads(void)
static void bcopy(const void *src, void *dst, size_t len)
static int ThreadBarrier(void)
static void GetWork(int nwork, int me, int &mywork, int &myoff, int units)
static void ThreadSum(std::vector< obj > &sum_array, obj &val, int me)
static void GetWorkBarrier(int nwork, int &me, int &mywork, int &myoff)
static int SumArraySize(void)
static int GetHyperThreads(void)
static int GetCores(void)
static void GetWork(int nwork, int me, int &mywork, int &myoff)
static void SetCores(int cr)
static void SetThreads(int thr)