コード例 #1
0
ファイル: nbody.cpp プロジェクト: egaburov/vmath
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);

}
コード例 #2
0
ファイル: nbody.cpp プロジェクト: egaburov/vmath
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);
  }
}
コード例 #3
0
ファイル: main.cpp プロジェクト: sambatyon/googleurl
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;
}