Exemplo n.º 1
0
//
// Main
//
int rmdupMain(int argc, char** argv)
{
    Timer* pTimer = new Timer("sga rmdup");
    parseRmdupOptions(argc, argv);
    rmdup();
    delete pTimer;

    if(opt::numThreads > 1)
        pthread_exit(NULL);
    return 0;
}
Exemplo n.º 2
0
int main()
{
    node_t tail = {3, NULL};
    node_t node7 = {1, &tail};
    node_t node6 = {3, &node7};
    node_t node5 = {1, &node6};
    node_t node4 = {3, &node5};
    node_t node3 = {2, &node4};
    node_t node2 = {3, &node3};
    node_t head = {1, &node2};
    rmdup(&head);

    node_t *node = &head;
    while (node) {
        printf("%d\n", node->data);
        node = node->next;
    }

    return 0;
}
Exemplo n.º 3
0
/* read TABE item bank file added Q3 2010 */
int getItems (char inPar[], struct item_info items[], int n_items, int *n_obj, int objID[], 
			  int n_obj_items[], int *n_new_obj, int new_objID[]) {

  FILE *fp;

  /* for getPar file */
  int  i, j;
  double ad, b, c3;
  char aLine[lineLen_max];
  int lineLen = 0, n_line = 0;
  int n_objs;
  int n_new_objs; /* collpased obj  */
  int *indx;
  int *tmp;

  fp = fopen(inPar, "r");	
  
  if ( fp  ==  NULL ) {
    if (LOG_FILE_FLAG) fprintf (log_file, "Couldn't open par file: %s \n", inPar);
    return  GETPAR_FAILURE;
  }
  
  /* get max line length from all lines in par file */
    
  i = 0;
  n_objs = 0;
  n_new_objs = 0;
  fgets (aLine, lineLen_max,fp); /* get the first line */

  /* 
   * lineLen_max must be >= the line width of par files ***below read items@todo
   */
 	   
  while (getCurrentline (aLine, lineLen_max, fp) > 2 ) {
	
	items[i].item_no = i+1;

     /* for MC items */
      strtok(aLine,",");  /* skip first obs */
      items[i].item_id = atoi(strtok(NULL,",")); 

	  
	  ad = atof(strtok(NULL,",")); 
	  b = atof(strtok(NULL,",")); 
	  c3 = atof(strtok(NULL,",\n"));   /* note */
	  /* convert 3PL to 2PPC metric */
        ad = 1.7*ad;
        b = ad*b;
          
      items[i].parameters = (double *) malloc(3*sizeof(double));
      if (items[i].parameters == NULL) {
		if (LOG_FILE_FLAG) fprintf (log_file, "Error: malloc item[%d].parameters failed! \n", i);
        return  GETPAR_FAILURE;
      }	    
      items[i].parameters[0] = ad;
      items[i].parameters[1] = b;
      items[i].parameters[2] = c3;

      items[i].obj_id = atoi(strtok(NULL,",")); 
	  items[i].new_obj_id = atoi(strtok(NULL,","));  /* collapsed objective IDs */

	  items[i].org_psg_id = atoi(strtok(NULL,","));  /* read original CTB_Passage_ID for data QA purpose */

      items[i].psg_id = atoi(strtok(NULL,","));  /* read new ctb_passage_id */
	  items[i].item_order = atoi(strtok(NULL,","));
	  items[i].enemy = atoi(strtok(NULL,",")); /* read enemy item, put enemy after item order in item bank */
	  strcpy(items[i].obj_title,strtok(NULL,",")); 	  

	//  printf(" %d %d %d %d \n", items[i].item_id, items[i].obj_id, items[i].psg_id,  items[i].item_order ); 

	  items[i].adm_flag = 1;
      items[i].rwo = 9;  /* initialize rwo to 9 */

      if (i == 0) {    /* item bank must be sorted by obj_id */
		  objID[n_objs] = items[i].obj_id;
	  }
	  else if (( i > 0) && (items[i].obj_id != items[i-1].obj_id)){
		  n_objs++;
          objID[n_objs] = items[i].obj_id;
	  }
	  else {}

      n_obj_items[n_objs]++;

	  if (i == 0) {     /* note duplicated new_objID is possible as item bank was not sorted by new_ obj_id */
		  new_objID[n_new_objs] = items[i].new_obj_id;
	  }
	  else if (( i > 0) && (items[i].new_obj_id != items[i-1].new_obj_id)){
		  n_new_objs++;
          new_objID[n_new_objs] = items[i].new_obj_id;
	  }
	  else {}

    i++; /* number of items from par file */
	  
  }  /* end while */

  *n_obj = n_objs + 1;
  if (i != n_items) {
    if (LOG_FILE_FLAG) fprintf (log_file, "Error: Number of items in Par are different from that in : %s \n", inPar);
    return GETPAR_FAILURE;
  }

  n_new_objs++;

  rmdup(new_objID, &n_new_objs);   /* removed duplicated new_objID */
  indx = (int *) malloc(n_new_objs*sizeof(int));
  tmp = (int *) malloc(n_new_objs*sizeof(int));
  indInt(n_new_objs, new_objID, indx);  /* sort new obj ID */

  for (i = 0; i < n_new_objs; i++) {
	  tmp[i] = new_objID[indx[i]];
  }
  for (i = 0; i < n_new_objs; i++) {
	  new_objID[i] = tmp[i];
  }

  *n_new_obj = n_new_objs;

  /*
  for (i = 0; i < n_new_objs; i++) {
	  printf("%d   %d \n ", i, new_objID[i]) ;
  } */

  free(indx);
  free(tmp);
  fclose(fp);
  return GETPAR_OK;
  /*  end of read Par file */              
}