Miniball<CoordAccessor>::Miniball (int d_, Pit begin, Pit end, 
				     CoordAccessor ca) 
    : d (d_), 
      points_begin (begin), 
      points_end (end), 
      coord_accessor (ca), 
      time (clock()), 
      nt0 (NT(0)), 
      L(), 
      support_end (L.begin()), 
      fsize(0), 
      ssize(0), 
      current_c (NULL), 
      current_sqr_r (NT(-1)),
      c (NULL),
      sqr_r (NULL),
      q0 (NULL),
      z (NULL),
      f (NULL),
      v (NULL),
      a (NULL)
  {	
    assert (points_begin != points_end);
    create_arrays();

    // set initial center
    for (int j=0; j<d; ++j) c[0][j] = nt0;
    current_c = c[0];

    // compute miniball
    pivot_mb (points_end);

    // update time
    time = (clock() - time) / CLOCKS_PER_SEC;
  }
Exemplo n.º 2
0
int main(int argc, char* argv[])
{
  settings.hosts.resize(1);
  settings.hosts[0] = default_multicast;
  int retcode = parse_args(argc, argv);

  // set type to multicast and change queue length to 512K
  settings.type = madara::transport::MULTICAST;
  settings.queue_length = 512000;
  madara::knowledge::WaitSettings wait_settings;
  wait_settings.max_wait_time = 10;
  wait_settings.poll_frequency = 1.0;
  wait_settings.delay_sending_modifieds = false;

  if (settings.id == 1)
  {
    wait_settings.pre_print_statement =
        "Waiting on finished_transmitting to change from process.id==1...\n";
  }

  if (retcode < 0)
    return retcode;

  madara::knowledge::KnowledgeBase knowledge("", settings);

  knowledge.set(".id", (madara::knowledge::KnowledgeRecord::Integer)settings.id,
      madara::knowledge::EvalSettings::SEND);

  // run tests
  //  test_tree_compilation (knowledge);
  if (settings.id == 0)
    create_arrays(knowledge);
  else
  {
    utility::wait_true(knowledge, "finished_transmitting", wait_settings);
    write_transported_arrays(knowledge);
  }

  // knowledge.print ();

  return 0;
}