Exemplo n.º 1
0
// Create a random field object
void AK_uav_create_field(AK_uav_field &field,int sim_seed_ID)
{
	srand(sim_seed_ID);
	field.state="setup";
	field.uav=vec2(0.0,0.0); // takeoff position
	field.hikers=field.obstacles=std::vector<vec2>(); // clear lists

	int nobs=2;
	for (int o=0;o<nobs;o++) // obstacles
	{
		vec2 p=rand_field();
		if (length(p-field.uav)<field_closest  // near origin
			|| point_near(p,field.obstacles)) o--; // try again
		else field.obstacles.push_back(p);
	}

	int nhiker=2+(rand()%2);
	for (int h=0;h<nhiker;h++) // hikers
	{
		vec2 p=rand_field();
		if (point_near(p,field.hikers) // near another hiker
		 || point_near(p,field.obstacles)) // near an obstacle
		{
			h--; // try a different point
		}
		else field.hikers.push_back(p);
	}

}
Exemplo n.º 2
0
int
main(int argc, char *argv[])
{
  if(argc != 2) {
    usage(argv);
    exit(1);
  }

  char *e;
  size_t L = (int)strtoul(argv[1], &e, 10);
  if(*e != '\0') {
    usage(argv);
    exit(2);
  }

  _Complex float *b = new_field(L);
  _Complex float *x = new_field(L);
  _Complex float *u = new_links(L);

  rand_links(L, u);
  rand_field(L, b);
  zero_field(L, x);

  cg(L, x, b, u);
  
  free(b);
  free(x);
  free(u);
  return 0;
}
Exemplo n.º 3
0
int
main(int argc, char *argv[])
{
  if(argc != 4) {
    usage(argv);
    exit(1);
  }

  char *e;
  size_t L = (int)strtoul(argv[1], &e, 10);
  if(*e != '\0') {
    usage(argv);
    exit(2);
  }
  
  size_t Sy = (int)strtoul(argv[2], &e, 10);
  if(*e != '\0') {
    usage(argv);
    exit(2);
  }
  
  size_t Sx = (int)strtoul(argv[3], &e, 10);
  if(*e != '\0') {
    usage(argv);
    exit(2);
  }

  latparams lp = init_latparams(L, Sy, Sx);
  field **b = new_field(lp);
  field **x = new_field(lp);
  link **g = new_links(lp);

  rand_links(lp, g);
  rand_field(lp, b);
  zero_field(lp, x);

  cg(lp, x, b, g);
  
  del_field(b);
  del_field(x);
  del_links(g);
  return 0;
}