int completeness_id(double *x, double *comp, int *poly_id, double *poly_area) { int i,region,cap,inside_region ; double length,vec[3]; length = sqrt(sqr(x[0]) + sqr(x[1]) + sqr(x[2])) ; x[0] /= length ; x[1] /= length ; x[2] /= length ; *comp = 0.0; *poly_id = 0; *poly_area = 0.0; for(region=0;region<nr;region++) { inside_region = 1 ; for(cap=0;cap<nc[region];cap++) { for(i=0;i<3;i++) vec[i] = r[i][cap][region] ; if(dot1(x,vec)>c[cap][region]) inside_region = 0 ; } if(inside_region==1) { *poly_id = region; *comp = capweight[region]; *poly_area = caparea[*poly_id]; return(1); } } return(0); }
/* SUBROUTINE POLYGON --- polygon(*x) --- Returns the polygon number for a given coordinate vector * x = array (x,y,z) */ int polygon(double *x) { int i,region,cap,inside_region ; double length,vec[3] ; length = sqrt(sqr(x[0]) + sqr(x[1]) + sqr(x[2])) ; x[0] /= length ; x[1] /= length ; x[2] /= length ; for(region=0;region<nr;region++) { inside_region = 1 ; for(cap=0;cap<nc[region];cap++) { for(i=0;i<3;i++) vec[i] = r[i][cap][region] ; if(dot1(x,vec)>c[cap][region]) inside_region = 0 ; } if(inside_region==1) { return region ; } } return 0 ; }
/* SUBROUTINE COMPLETENESS --- completeness(*x) --- find the SDSS completeness for a given coordinate vector * x = array (x,y,z) */ double completeness(double *x) { int i,region,cap,inside_region ; double length,vec[3],comp ; length = sqrt(sqr(x[0]) + sqr(x[1]) + sqr(x[2])) ; x[0] /= length ; x[1] /= length ; x[2] /= length ; for(region=0;region<nr;region++) { inside_region = 1 ; for(cap=0;cap<nc[region];cap++) { for(i=0;i<3;i++) vec[i] = r[i][cap][region] ; if(dot1(x,vec)>c[cap][region]) inside_region = 0 ; } if(inside_region==1) { comp = capweight[region] ; return comp ; } } return 0 ; }
static void doTest(MAP& map, ITER& it, unsigned N, unsigned niter, FUNC& fm, std::string msg) { EXCEPTWATCH; double t0 = stk::cpu_time(); setupMap(map, N); double t1 = stk::cpu_time(); std::cout << "maptest: setup time = " << (t1-t0)/60. << " [min] for " << msg << std::endl; double t2s = stk::cpu_time(); double dd= dot1(map, it, N, niter, fm); double t2e = stk::cpu_time(); std::cout << "maptest: lookup time = " << (t2e-t2s)/60. << " [min] for " << msg << " dd= " << dd << std::endl; }