int main(int argc, char *argv[]) { std::vector<real4> pos, vel; int nbodies = 131072; #if 1 nbodies = 32768; #endif nbodies = 1024; nbodies = 2048; nbodies = 4096; nbodies = 8192; fprintf(stderr, "nbodies= %d\n", nbodies); const real R0 = 1; const real mp = 1.0/nbodies; for (int i = 0; i < nbodies; i++) { real xp, yp, zp, s2 = 2*R0; real vx, vy, vz; while (s2 > R0*R0) { xp = (1.0 - 2.0*drand48())*R0; yp = (1.0 - 2.0*drand48())*R0; zp = (1.0 - 2.0*drand48())*R0; s2 = xp*xp + yp*yp + zp*zp; vx = drand48() * 0.1; vy = drand48() * 0.1; vz = drand48() * 0.1; } pos.push_back(real4(xp, yp, zp, mp)); vel.push_back(real4(vx, vy, vz, -1)); } const real eps2 = 4.0f/nbodies; real eta = 0.01f; if (argc > 1) eta *= atof(argv[1]); fprintf(stderr, " eta= %g \n", eta); fprintf(stderr, " stargting ... \n"); const real tend = 1.0; integrate(pos, vel, eta, eps2, tend); }
void forces( const int n, const real4 pos[], const real4 vel[], real4 acc[], real4 jrk[], const real eps2) { static std::vector<real> mass(n); static std::vector<real> posx(n); static std::vector<real> posy(n); static std::vector<real> posz(n); static std::vector<real> accx(n); static std::vector<real> accy(n); static std::vector<real> accz(n); static std::vector<real> gpot(n); for (int i =0; i < n; i++) { mass[i] = pos[i].w; posx[i] = pos[i].x; posy[i] = pos[i].y; posz[i] = pos[i].z; } ispc::compute_forces( n, &mass[0], &posx[0], &posy[0], &posz[0], &accx[0], &accy[0], &accz[0], &gpot[0], eps2); for (int i = 0; i < n; i++) { acc[i].w = gpot[i]; acc[i].x = accx[i]; acc[i].y = accy[i]; acc[i].z = accz[i]; jrk[i] = real4(0.0); } }
int main(int argc, char **argv) { GURL real1("file://localhost/e:/Alex/workspace/demonstrator/Genesis/build/bin/x64/DEBUG/L32f.png"); std::cout << (real1.is_valid() ? "is valid" : "is invalid") << '\n'; std::cout << (real1.IsStandard() ? "is standard" : "is not standard") << '\n'; print_uri(real1); GURL url("http://*****:*****@wwww.furious-typing.com:1234/test/main.html?id=12356&mid=carlos#location"); std::cout << (url.is_valid() ? "is valid" : "is invalid") << '\n'; std::cout << (url.IsStandard() ? "is standard" : "is not standard") << '\n'; print_uri(url); GURL invalid1("c:\\blubber"); std::cout << (invalid1.is_valid() ? "is valid" : "is invalid") << '\n'; std::cout << (invalid1.IsStandard() ? "is standard" : "is not standard") << '\n'; print_uri(invalid1); GURL invalid2("file:/host/path"); std::cout << (invalid2.is_valid() ? "is valid" : "is invalid") << '\n'; std::cout << (invalid2.IsStandard() ? "is standard" : "is not standard") << '\n'; print_uri(invalid2); GURL url1("http://*****:*****@wwww.furious-typing.com:1234/test/main file.html?id=12356&mid=carlos#location"); std::cout << (url1.is_valid() ? "is valid" : "is invalid") << '\n'; std::cout << (url1.IsStandard() ? "is standard" : "is not standard") << '\n'; print_uri(url1); GURL real2("file://localhost///192.168.0.2/path/to/file.txt"); std::cout << (real2.is_valid() ? "is valid" : "is invalid") << '\n'; std::cout << (real2.IsStandard() ? "is standard" : "is not standard") << '\n'; print_uri(real2); GURL real3("file://localhost/e%3A/Alex/workspace/demonstrator/Genesis/build/bin/x64/DEBUG/L%5B32%5Df.pfm"); std::cout << (real3.is_valid() ? "is valid" : "is invalid") << '\n'; std::cout << (real3.IsStandard() ? "is standard" : "is not standard") << '\n'; print_uri(real3); GURL real4("file://localhost/e:/Alex/workspace/demonstrator/Genesis/build/bin/x64/DEBUG/L[32]f.pfm"); std::cout << (real4.is_valid() ? "is valid" : "is invalid") << '\n'; std::cout << (real4.IsStandard() ? "is standard" : "is not standard") << '\n'; print_uri(real4); return 0; }