Example #1
0
File: main.cpp Project: Daiver/jff
int main()
{
    GOOGLE_PROTOBUF_VERIFY_VERSION;
    onnx::ModelProto modelProto;
    std::fstream input("alexnet.proto", std::ios::in | std::ios::binary);
    if (!parseBigMessageFromIstream(&modelProto, &input)) {
        std::cerr << "Failed to parse model." << std::endl;
        return -1;
    }

    printModelInfo(modelProto);
    const onnx::GraphProto graph = modelProto.graph();
    printGraphInfo(graph);
    printNodeInfo(graph.node(0));

    return 0;
}
Example #2
0
void ModelInfo::onObjectAdd() {
  printModelInfo();
}
Example #3
0
File: nbody.c Project: jth/nbody
int main(int argc, char **argv) {
  model M;
  int k,i,j;
  double dX,dY,dZ; /* distance */
  double oldAccX,oldAccY,oldAccZ; /* old acceleration */
  double dist,dist3; /* force, integrated value */
  double ticks; /* used for time-measurement */
  cfg *conf;

  if(argc!=2) {
    usage(argv[0]);
    return 0;
  }
  /* Read config */
  if((conf=initCfg(argv[1]))==NULL) {
    fprintf(stderr,"Could not parse config\n");
    return 0;
  }
  getCfgKeyInt(conf,"bodies",&M.bodies);
  getCfgKeyInt(conf,"steps",&M.steps);
  getCfgKeyInt(conf,"scale",&M.scale);
  getCfgKeyInt(conf,"width",&M.width);
  getCfgKeyInt(conf,"height",&M.height);
  getCfgKeyDouble(conf,"gravity",&M.G);
  getCfgKeyDouble(conf,"timestep",&M.timestep);
  freeConfig(conf);
  printModelInfo(M); 
  ticks=omp_get_wtime(); /* start time-measurement */
  
  if((M.b=init(M.bodies,M.scale))==NULL) {
    fprintf(stderr,
        "Error: Could not allocate memory for bodies.\n");
    return 0;
  }
  if(initX11Out()==-1) {
    fprintf(stderr,"Could not initalize X11 output.\n");
    return 0;
  }

  for(k=0;k<M.steps;++k) {
    /* printf("* Step %02d started...",k+1); */
    //#pragma omp parallel for private(j,f,invr,invr3,aX,aY,aZ,dX,dY,dZ)
    for(i=0;i<M.bodies;++i) {
      /* Save old acceleration */
      oldAccX=M.b[i].acc[X];
      oldAccY=M.b[i].acc[Y];
      oldAccZ=M.b[i].acc[Z];
      M.b[i].acc[X]=M.b[i].acc[Y]=M.b[i].acc[Z]=0.0;
      /**** Accelerate ****/
      for(j=0;j<M.bodies;++j) {
        if(i==j)  
          continue;
        /* Vector */
        dX=M.b[j].pos[X]-M.b[i].pos[X];
        dY=M.b[j].pos[Y]-M.b[i].pos[Y];
        dZ=M.b[j].pos[Z]-M.b[i].pos[Z];
        /* Distance */
        dist=sqrt(dX*dX+dY*dY+dZ*dZ);
        dist3=dist*dist*dist;
        /* Beschleunigung aktualisieren */ 
        if(dist>1.0) {
          M.b[j].acc[X]-=(M.b[i].mass/dist3)*dX;
          M.b[j].acc[Y]-=(M.b[i].mass/dist3)*dY;
          M.b[j].acc[Z]-=(M.b[i].mass/dist3)*dZ;
          
          M.b[i].acc[X]+=(M.b[j].mass/dist3)*dX;
          M.b[i].acc[Y]+=(M.b[j].mass/dist3)*dY;
          M.b[i].acc[Z]+=(M.b[j].mass/dist3)*dZ;
          }
        }
    }
    /* Positionen aktualisieren */
    for(i=0;i<M.bodies;++i) {
      M.b[i].pos[X] += M.b[i].vel[X] * M.timestep
        + 0.5 * M.timestep + M.timestep * M.timestep * M.b[i].acc[X];
      M.b[i].pos[Y] += M.b[i].vel[Y] *M.timestep
        + 0.5 * M.timestep + M.timestep * M.timestep * M.b[i].acc[Y];
      M.b[i].pos[Z] += M.b[i].vel[Z] *M.timestep
        + 0.5 * M.timestep + M.timestep * M.timestep * M.b[i].acc[Z];
    }
    /* Advance Velocities */
    for(i=0;i<M.bodies;++i) {
      M.b[i].vel[X] -= 0.5*(M.b[i].acc[X]*oldAccX)*M.timestep;
      M.b[i].vel[Y] -= 0.5*(M.b[i].acc[Y]*oldAccY)*M.timestep;
      M.b[i].vel[Z] -= 0.5*(M.b[i].acc[Z]*oldAccZ)*M.timestep;
    }
    updateAndDisplay(M.b,M.bodies);
    /* writeToFile(OUTPATH,b,bodies,k);*/
    /* printf(" finished\n"); */
  }
  printf("Time elapsed: %0.3f seconds.\n",
      omp_get_wtime()-ticks);
  cleanUp(M.b);
  return 0;
}
Example #4
0
void ModelInfo::onPluginLoad() {
  printModelInfo();
}