void d001s( //#pragma omp declaration m int m, //#pragma omp declaration n int n, //#pragma omp declaration a int *a, //#pragma omp declaration b int *b, //#pragma omp declaration y int *y, //#pragma omp declaration z int *z) { //#pragma omp declaration i int i; #pragma omp parallel private(i) shared(m,n,a,b,y,z) { #pragma omp for nowait for( i = 1 ; i < n ; i++ ) { b[i] = (a[i] + a[i-1]) / 2; } #pragma omp for nowait for( i = 1 ; i <= m ; i++ ) { y[i] = sqrt_func(z[i]); } } }
static void print_coordinate_polar(FILE *fp, vector_t p) { data_t r, th, ph; r = norm(p); th = atan_func(sqrt_func(sq(p.x)+sq(p.y))/p.z)/pi*180.0; ph = atan_func(p.y/p.x)/pi*180.0; ph += (p.x < 0.0) ? 180.0 : (p.y < 0.0) ? 360.0 : 0.0; fprintf(fp, "%.20g %.20g %.20g", r, th, ph); }
static data_t quality_index(vector_t a[], vector_t b[]) { data_t n1, n2; vector_t tmp; int i; n1 = n2 = 0.0; for (i = 0; i < N; i++) { n1 += norm2(a[i]); tmp.x = b[i].x-a[i].x; tmp.y = b[i].y-a[i].y; tmp.z = b[i].z-a[i].z; n2 += norm2(tmp); } return sqrt_func(n2/n1); }
static __inline data_t rand_normal() { static data_t next; static int dup = 0; data_t t, u; if (dup) { dup = 0; return next; } else { t = sigma*sqrt_func(-2.0*log_func(1.0-rand_regular())); u = 2.0*pi*rand_regular(); dup = 1; next = m+t*sin_func(u); return m+t*cos_func(u); } }
static __inline data_t norm(vector_t p) { return sqrt_func(norm2(p)); }