コード例 #1
0
ファイル: main.c プロジェクト: levichen/Datamining
int main(int argc, char * argv[]) {
	clock_t start, end;
    start = clock();
	set_define(argv[1], argv[2], argv[3]);
	
    struct itemStructArray *item = get_dataset();
    
	struct itemListStructArray *result = apriori(item);
    /*if(result->link == NULL) {
        printf("只在第一層");
    }
    else {
        show_largeItem_level1(result);
    }

    int counter;
    
    if(result->link == NULL) {
        counter = get_itemset_level2_counter(item);
    }
    else {
        counter = get_itemset_counter(result);
    }
    printf("counter is: %d\n", counter);
    */
    end = clock();
    printf("%.2f\n", (end-start)/(double)(CLOCKS_PER_SEC));
	
    return 0;
}
コード例 #2
0
ファイル: client.c プロジェクト: Reilithion/xmms2-reilithion
xmmsc_result_t *
xmmsc_visualization_start (xmmsc_connection_t *c, int vv)
{
	xmmsc_result_t *res;
	xmmsc_visualization_t *v;

	x_check_conn (c, 0);
	v = get_dataset (c, vv);
	x_api_error_if (!v, "with unregistered/unconnected visualization dataset", 0);

	switch (v->state) {
	case VIS_WORKING:
	case VIS_ERRORED:
		break;
	case VIS_NEW:
#ifdef HAVE_SEMTIMEDOP
		/* first try unixshm */
		v->type = VIS_UNIXSHM;
		res = setup_shm_prepare (c, vv);
		v->state = VIS_TRYING_UNIXSHM;
		break;
#endif
	case VIS_TO_TRY_UDP:
		v->type = VIS_UDP;
		res = setup_udp_prepare (c, vv);
		v->state = VIS_TRYING_UDP;
		break;
	default:
		v->state = VIS_ERRORED;
		x_api_warning ("out of sequence");
		break;
	}

	return res;
}
コード例 #3
0
ファイル: spglib.c プロジェクト: vanceeasleaf/phonopy
/* Return 0 if failed */
static int get_multiplicity(SPGCONST double lattice[3][3],
			    SPGCONST double position[][3],
			    const int types[],
			    const int num_atom,
			    const double symprec)
{
  int size;
  SpglibDataset *dataset;

  size = 0;
  dataset = NULL;

  if ((dataset = get_dataset(lattice,
			     position,
			     types,
			     num_atom,
			     0,
			     symprec)) == NULL) {
    return 0;
  }

  size = dataset->n_operations;
  spg_free_dataset(dataset);

  return size;
}
コード例 #4
0
ファイル: spglib.c プロジェクト: vanceeasleaf/phonopy
static int refine_cell(double lattice[3][3],
		       double position[][3],
		       int types[],
		       const int num_atom,
		       const double symprec)
{
  int i, n_brv_atoms;
  SpglibDataset *dataset;

  n_brv_atoms = 0;
  dataset = NULL;

  if ((dataset = get_dataset(lattice,
			     position,
			     types,
			     num_atom,
			     0,
			     symprec)) == NULL) {
    return 0;
  }

  n_brv_atoms = dataset->n_brv_atoms;
  mat_copy_matrix_d3(lattice, dataset->brv_lattice);
  for (i = 0; i < dataset->n_brv_atoms; i++) {
    types[i] = dataset->brv_types[i];
    mat_copy_vector_d3(position[i], dataset->brv_positions[i]);
  }

  spg_free_dataset(dataset);
  
  return n_brv_atoms;
}
コード例 #5
0
ファイル: HDF5DataWriter.cpp プロジェクト: csiki/MOOSE
void HDF5DataWriter::recvData(const Eref&e, 
				ObjId src, const double* start, unsigned int num )
{
    string path = src.path();
    if (nodemap_.find(path) == nodemap_.end()){
        // first time call, initialize entries in map
        hid_t dataid =  get_dataset(path);
        if (dataid < 0){
            cerr << "Warning: could not create data set for " << path << endl;
        }
        nodemap_[path] = dataid;
        datamap_[path] = vector<double>();
    }
    const double * end = start + num;
    // append only the new data. old_size is guaranteed to be 0 on
    // write and the table vecs will also be cleared.
    datamap_[path].insert(datamap_[path].end(), start, end);

    SetGet0::set(src, "clearVec"); //Unsure what this is for.
	
// #ifndef NDEBUG
//     // debug leftover entries coming from table
//     cout << "HDF5DataWriter::recvData: vec_size=" << vec_size << endl;
//     cout << "HDF5DataWriter::recvData: dataSize=" << pb.dataSize() << endl;
//     cout << "HDF5DataWriter::recvData: numEntries=" << pb.numEntries()  << endl;
//     cout << "HDF5DataWriter::recvData: size=" << pb.size() << endl;
//     cout << "HDF5DataWriter::recvData: data()" << endl;
//     for (int ii = 0; ii <= vec_size; ++ii){
//         cout << ii << "\t" << pb.data()[ii] << endl;
//     }
// #endif
}
コード例 #6
0
ファイル: spglib.c プロジェクト: shanghui/phonopy
/*---------*/
static int get_ir_reciprocal_mesh(int grid_address[][3],
				  int map[],
				  const int mesh[3],
				  const int is_shift[3],
				  const int is_time_reversal,
				  SPGCONST double lattice[3][3],
				  SPGCONST double position[][3],
				  const int types[],
				  const int num_atom,
				  const double symprec)
{
  SpglibDataset *dataset;
  int num_ir, i;
  MatINT *rotations;

  dataset = get_dataset(lattice,
			position,
			types,
			num_atom,
			symprec);
  rotations = mat_alloc_MatINT(dataset->n_operations);
  for (i = 0; i < dataset->n_operations; i++) {
    mat_copy_matrix_i3(rotations->mat[i], dataset->rotations[i]);
  }
  num_ir = kpt_get_irreducible_reciprocal_mesh(grid_address,
					       map,
					       mesh,
					       is_shift,
					       is_time_reversal,
					       rotations);
  mat_free_MatINT(rotations);
  spg_free_dataset(dataset);
  return num_ir;
}
コード例 #7
0
ファイル: spglib.c プロジェクト: shanghui/phonopy
/*---------*/
SpglibDataset * spg_get_dataset(SPGCONST double lattice[3][3],
				SPGCONST double position[][3],
				const int types[],
				const int num_atom,
				const double symprec)
{
  sym_set_angle_tolerance(-1.0);

  return get_dataset(lattice,
		     position,
		     types,
		     num_atom,
		     symprec);
}
コード例 #8
0
ファイル: spglib.c プロジェクト: vanceeasleaf/phonopy
/* Return NULL if failed */
SpglibDataset *
spgat_get_dataset_with_hall_number(SPGCONST double lattice[3][3],
				   SPGCONST double position[][3],
				   const int types[],
				   const int num_atom,
				   const int hall_number,
				   const double symprec,
				   const double angle_tolerance)
{
  sym_set_angle_tolerance(angle_tolerance);

  return get_dataset(lattice,
		     position,
		     types,
		     num_atom,
		     hall_number,
		     symprec);
}
コード例 #9
0
ファイル: udp.c プロジェクト: kfihihc/xmms2-devel
xmmsc_result_t *
setup_udp_prepare (xmmsc_connection_t *c, int32_t vv)
{
	xmmsc_result_t *res;
	xmmsc_visualization_t *v;

	x_check_conn (c, 0);
	v = get_dataset (c, vv);

	res = xmmsc_send_cmd (c, XMMS_IPC_OBJECT_VISUALIZATION,
	                      XMMS_IPC_CMD_VISUALIZATION_INIT_UDP,
	                      XMMSV_LIST_ENTRY_INT (v->id),
	                      XMMSV_LIST_END);

	if (res) {
		xmmsc_result_visc_set (res, v);
	}
	return res;
}
コード例 #10
0
ファイル: spglib.c プロジェクト: vanceeasleaf/phonopy
/* Return 0 if failed */
static int get_symmetry_from_dataset(int rotation[][3][3],
				     double translation[][3],
				     const int max_size,
				     SPGCONST double lattice[3][3],
				     SPGCONST double position[][3],
				     const int types[],
				     const int num_atom,
				     const double symprec)
{
  int i, num_sym;
  SpglibDataset *dataset;

  num_sym = 0;
  dataset = NULL;

  if ((dataset = get_dataset(lattice,
			     position,
			     types,
			     num_atom,
			     0,
			     symprec)) == NULL) {
    return 0;
  }
  
  if (dataset->n_operations > max_size) {
    fprintf(stderr,
	    "spglib: Indicated max size(=%d) is less than number ", max_size);
    fprintf(stderr,
	    "spglib: of symmetry operations(=%d).\n", dataset->n_operations);
    goto ret;
  }

  num_sym = dataset->n_operations;
  for (i = 0; i < num_sym; i++) {
    mat_copy_matrix_i3(rotation[i], dataset->rotations[i]);
    mat_copy_vector_d3(translation[i], dataset->translations[i]);
  }
  
 ret:
  spg_free_dataset(dataset);
  return num_sym;
}
コード例 #11
0
ファイル: unixshm.c プロジェクト: Malvineous/xmms2-devel
xmmsc_result_t *
setup_shm_prepare (xmmsc_connection_t *c, int32_t vv)
{
	xmmsc_result_t *res;
	xmmsc_vischunk_t *buffer;
	xmmsc_vis_unixshm_t *t;
	xmmsc_visualization_t *v;
	char shmidstr[32];

	x_check_conn (c, 0);
	v = get_dataset (c, vv);

	t = &v->transport.shm;

	/* prepare unixshm + semaphores */
	/* following access modifiers imply everyone on the system could inject wrong vis data ;) */
	t->shmid = shmget (IPC_PRIVATE, sizeof (xmmsc_vischunk_t) * XMMS_VISPACKET_SHMCOUNT, S_IRWXU + S_IRWXG + S_IRWXO);
	if (t->shmid == -1) {
		c->error = strdup ("Couldn't create the shared memory!");
		return false;
	}
	/* attach early, so that the server doesn't think we aren't there */
	buffer = shmat(t->shmid, NULL, SHM_RDONLY);
	t->buffer = buffer;

	/* we send it as string to make it work on 64bit systems.
	   Ugly? Yes, but works. */
	snprintf (shmidstr, sizeof (shmidstr), "%d", t->shmid);

	/* send packet */
	res = xmmsc_send_cmd (c, XMMS_IPC_OBJECT_VISUALIZATION,
	                      XMMS_IPC_COMMAND_VISUALIZATION_INIT_SHM,
	                      XMMSV_LIST_ENTRY_INT (v->id),
	                      XMMSV_LIST_ENTRY_STR (shmidstr),
	                      XMMSV_LIST_END);

	if (res) {
		xmmsc_result_visc_set (res, v);
	}

	return res;
}
コード例 #12
0
ファイル: HDF5DataWriter.cpp プロジェクト: csiki/MOOSE
void HDF5DataWriter::flush()
{
    if (filehandle_ < 0){
        cerr << "HDF5DataWriter::flush() - Filehandle invalid. Cannot write data." << endl;
        return;
    }
    for (map < string, vector < double > >::iterator ii = datamap_.begin(); ii != datamap_.end(); ++ ii){
        hid_t dataset = nodemap_[ii->first];
        if (dataset < 0){
            dataset = get_dataset(ii->first);
            nodemap_[ii->first] = dataset;
        }
        herr_t status = appendToDataset(dataset, ii->second);
        if (status < 0){
            cerr << "Warning: appending data for object " << ii->first << " returned status " << status << endl;                
        }
        ii->second.clear();        
    }
    H5Fflush(filehandle_, H5F_SCOPE_LOCAL);
}
コード例 #13
0
ファイル: HDF5DataWriter.cpp プロジェクト: csiki/MOOSE
/**
   Write data to datasets in HDF5 file. Clear all data in the table
   objects associated with this object. */
void HDF5DataWriter::process(const Eref & e, ProcPtr p)
{
    if (filehandle_ < 0){
        return;
    }
    // cout << "HDF5DataWriter::process: currentTime=" << p->currTime << endl;
    requestOut()->send(e, recvDataBuf()->getFid());
    for (map<string, vector < double > >:: iterator data_it = datamap_.begin(); data_it != datamap_.end(); ++data_it){        
        string path = data_it->first;
        // if (data_it->second.size() >= flushLimit_){
        map < string, hid_t >::iterator node_it = nodemap_.find(path);
        assert (node_it != nodemap_.end());
        if (node_it->second < 0){
            nodemap_[path] = get_dataset(path);
        }
        herr_t status = appendToDataset(nodemap_[path], data_it->second);
        if (status < 0){
            cerr << "Warning: appending data for object " << data_it->first << " returned status " << status << endl;                
        }
        data_it->second.clear();
    }    
}
コード例 #14
0
ファイル: main.c プロジェクト: levichen/Datamining
int main(int argc, char * argv[]) {
	float mTime;
	clock_t start, end;
    start = clock();
	
	char *file_name = "1000k";
	char *type 	    = "rate";
	char *rate		= "3";	
	
	set_define(file_name, type, rate);
	
    int *mItem        = malloc(sizeof(int) * TRANSCATION_COUNT * SIZE_OF_ARRAY),
		*item_counter = malloc(sizeof(int) * (ITEM_COUNT + 1)), 
		*item_index   = malloc(sizeof(int) * (ITEM_COUNT + 1));		
		
	struct header_table *htable = malloc(sizeof(struct header_table));	
	struct header_table *head = malloc(sizeof(struct header_table));	
	
    get_dataset(mItem, item_counter, item_index);	
	
	struct node *fptree = malloc(sizeof(struct node));
	fptree = create_fptree();	
	
	create_header_table(htable, head, item_index);
	build_fptree(fptree, mItem, item_index, htable, head);
	
	while(htable->next != NULL) htable = htable->next;
		
	conditional_parrern_base(fptree, htable, item_counter, item_index, "");	
	
	end = clock();	
	mTime = (end-start) / (double) (CLOCKS_PER_SEC);
	mTime = mTime * 1000;
	printf("\nneed:%2.f millisecond \n", mTime);
		
    return 0;
}
コード例 #15
0
ファイル: spglib.c プロジェクト: vanceeasleaf/phonopy
/* Return 0 if failed */
static int get_symmetry_with_collinear_spin(int rotation[][3][3],
					    double translation[][3],
					    int equivalent_atoms[],
					    const int max_size,
					    SPGCONST double lattice[3][3],
					    SPGCONST double position[][3],
					    const int types[],
					    const double spins[],
					    const int num_atom,
					    const double symprec)
{
  int i, size;
  Symmetry *symmetry, *sym_nonspin;
  Cell *cell;
  SpglibDataset *dataset;

  size = 0;
  symmetry = NULL;
  sym_nonspin = NULL;
  cell = NULL;
  dataset = NULL;

  if ((cell = cel_alloc_cell(num_atom)) == NULL) {
    goto err;
  }

  cel_set_cell(cell, lattice, position, types);

  if ((dataset = get_dataset(lattice,
			     position,
			     types,
			     num_atom,
			     0,
			     symprec)) == NULL) {
    cel_free_cell(cell);
    goto err;
  }

  if ((sym_nonspin = sym_alloc_symmetry(dataset->n_operations)) == NULL) {
    spg_free_dataset(dataset);
    cel_free_cell(cell);
    goto err;
  }

  for (i = 0; i < dataset->n_operations; i++) {
    mat_copy_matrix_i3(sym_nonspin->rot[i], dataset->rotations[i]);
    mat_copy_vector_d3(sym_nonspin->trans[i], dataset->translations[i]);
  }
  spg_free_dataset(dataset);

  if ((symmetry = spn_get_collinear_operations(equivalent_atoms,
					       sym_nonspin,
					       cell,
					       spins,
					       symprec)) == NULL) {
    sym_free_symmetry(sym_nonspin);
    cel_free_cell(cell);
    goto err;
  }

  sym_free_symmetry(sym_nonspin);
  
  if (symmetry->size > max_size) {
    fprintf(stderr, "spglib: Indicated max size(=%d) is less than number ",
	    max_size);
    fprintf(stderr, "spglib: of symmetry operations(=%d).\n", symmetry->size);
    sym_free_symmetry(symmetry);
    goto err;
  }

  for (i = 0; i < symmetry->size; i++) {
    mat_copy_matrix_i3(rotation[i], symmetry->rot[i]);
    mat_copy_vector_d3(translation[i], symmetry->trans[i]);
  }

  size = symmetry->size;

  cel_free_cell(cell);
  sym_free_symmetry(symmetry);

  return size;

 err:
  return 0;
}
コード例 #16
0
ファイル: spglib.c プロジェクト: nfh/phonopy
static int get_standardized_cell(double lattice[3][3],
				 double position[][3],
				 int types[],
				 const int num_atom,
				 const int to_primitive,
				 const double symprec)
{
  int num_std_atom;
  SpglibDataset *dataset;
  Cell *std_cell, *cell;
  Centering centering;

  num_std_atom = 0;
  dataset = NULL;
  std_cell = NULL;
  cell = NULL;

  if ((dataset = get_dataset(lattice,
			     position,
			     types,
			     num_atom,
			     0,
			     symprec)) == NULL) {
    goto err;
  }

  if (to_primitive) {
    if ((centering = get_centering(dataset->hall_number)) == CENTERING_ERROR) {
      goto err;
    }
    if (dataset->hall_number == 433 ||
	dataset->hall_number == 436 ||
	dataset->hall_number == 444 ||
	dataset->hall_number == 450 ||
	dataset->hall_number == 452 ||
	dataset->hall_number == 458 ||
	dataset->hall_number == 460) {
      centering = R_CENTER;
    }
  } else {
    centering = PRIMITIVE;
  }

  if ((cell = cel_alloc_cell(num_atom)) == NULL) {
    spg_free_dataset(dataset);
    goto err;
  }
  
  cel_set_cell(cell, lattice, position, types);
  std_cell = spa_transform_to_primitive(cell,
					dataset->transformation_matrix,
					centering,
					symprec);
  spg_free_dataset(dataset);
  cel_free_cell(cell);

  if (std_cell == NULL) {
    goto err;
  }

  set_cell(lattice, position, types, std_cell);
  num_std_atom = std_cell->size;

  cel_free_cell(std_cell);

  return num_std_atom;

 err:
  return 0;
}
コード例 #17
0
ファイル: spglib.c プロジェクト: nfh/phonopy
static int standardize_primitive(double lattice[3][3],
				 double position[][3],
				 int types[],
				 const int num_atom,
				 const double symprec)
{
  int num_prim_atom;
  Centering centering;
  SpglibDataset *dataset;
  Cell *primitive, *bravais;

  double identity[3][3] = {{ 1, 0, 0 },
			   { 0, 1, 0 },
			   { 0, 0, 1 }};

  num_prim_atom = 0;
  dataset = NULL;
  primitive = NULL;
  bravais = NULL;

  if ((dataset = get_dataset(lattice,
			     position,
			     types,
			     num_atom,
			     0,
			     symprec)) == NULL) {
    return 0;
  }

  if ((centering = get_centering(dataset->hall_number)) == CENTERING_ERROR) {
    goto err;
  }

  if (dataset->hall_number == 433 ||
      dataset->hall_number == 436 ||
      dataset->hall_number == 444 ||
      dataset->hall_number == 450 ||
      dataset->hall_number == 452 ||
      dataset->hall_number == 458 ||
      dataset->hall_number == 460) {
    centering = R_CENTER;
  }

  if ((bravais = cel_alloc_cell(dataset->n_std_atoms)) == NULL) {
    spg_free_dataset(dataset);
    return 0;
  }

  cel_set_cell(bravais,
	       dataset->std_lattice,
	       dataset->std_positions,
	       dataset->std_types);

  spg_free_dataset(dataset);

  primitive = spa_transform_to_primitive(bravais,
					 identity,
					 centering,
					 symprec);
  cel_free_cell(bravais);

  if (primitive == NULL) {
    goto err;
  }

  set_cell(lattice, position, types, primitive);
  num_prim_atom = primitive->size;

  cel_free_cell(primitive);

  return num_prim_atom;

 err:
  return 0;
}