Exemple #1
0
void ADaPS_deallocate(ADaPS **remove) {
    if((*remove)->free_function != NULL)
        ((*remove)->free_function)(SID_FARG(*remove)->data, (*remove)->free_function_params);
    else
        SID_free(SID_FARG(*remove)->data);
    if((*remove)->free_function_params != NULL)
        SID_free(SID_FARG(*remove)->free_function_params);
    SID_free(SID_FARG(*remove));
}
void free_trees_vertical(tree_vertical_info **tree) {
    tree_vertical_node_info *next_node;
    tree_vertical_node_info *last_node;
    // Free nodes
    next_node = (*tree)->root;
    while(next_node != NULL) {
        last_node = next_node;
        next_node = last_node->next;
        SID_free(SID_FARG last_node);
    }
    // Free neighbour list arrays
    SID_free(SID_FARG(*tree)->n_neighbours);
    SID_free(SID_FARG(*tree)->neighbour_halos);
    SID_free(SID_FARG(*tree)->neighbour_halo_last);
    SID_free(SID_FARG(*tree));
}
void free_mark_arguments(mark_arg_info **argument) {
    while((*argument) != NULL) {
        mark_arg_info *next = (*argument)->next;
        SID_free(SID_FARG(*argument));
        (*argument) = next;
    }
}
Exemple #4
0
void free_pspec(pspec_info *pspec){
  SID_log("Freeing power spectrum...",SID_LOG_OPEN);
  free_cosmo(&(pspec->cosmo));
  free_field(&(pspec->FFT));
  SID_free(SID_FARG (pspec->k_1D));
  SID_free(SID_FARG (pspec->n_modes_1D));
  SID_free(SID_FARG (pspec->n_modes_2D));
  int i_run;
  for(i_run=0;i_run<4;i_run++){
      SID_free(SID_FARG (pspec->P_k_1D[i_run]));
      SID_free(SID_FARG (pspec->dP_k_1D[i_run]));
      SID_free(SID_FARG (pspec->P_k_2D[i_run]));
      SID_free(SID_FARG (pspec->dP_k_2D[i_run]));
  }
  SID_free(SID_FARG pspec->P_k_1D);
  SID_free(SID_FARG pspec->dP_k_1D);
  SID_free(SID_FARG pspec->P_k_2D);
  SID_free(SID_FARG pspec->dP_k_2D);
  SID_log("Done.",SID_LOG_CLOSE);
}
Exemple #5
0
void free_treenode_list(treenode_list_info **list) {
    SID_free(SID_FARG(*list)->list);
    ADaPS_free(SID_FARG(*list)->data);
    SID_free(SID_FARG(*list));
}
Exemple #6
0
void free_trees(tree_info **trees){

  SID_log("Freeing trees...",SID_LOG_OPEN);

  // Free reference trees
  if((*trees)->trees_reference!=NULL)
     free_trees(&((*trees)->trees_reference));

  // Free look-up arrays
  free_trees_lookup((*trees));

  // Free ADaPS structure
  ADaPS_free(SID_FARG (*trees)->data);

  // Free cosmology
  free_cosmo(&((*trees)->cosmo));

  // Free nodes
  int i_snap;
  for(i_snap=0;i_snap<(*trees)->n_snaps;i_snap++){
     tree_node_info *current;
     tree_node_info *next;
     if((*trees)->first_neighbour_groups!=NULL){
        next=(*trees)->first_neighbour_groups[i_snap];
        while(next!=NULL){
           current=next;
           next   =current->next_neighbour;
           SID_free(SID_FARG current);
        }
     }
     if((*trees)->first_neighbour_subgroups!=NULL){
        next=(*trees)->first_neighbour_subgroups[i_snap];
        while(next!=NULL){
           current=next;
           next   =current->next_neighbour;
           SID_free(SID_FARG current);
        }
     }
  }

  // Free match scores
  for(int i_type=0;i_type<2;i_type++){
     float **match_scores;
     if(i_type==0)
        match_scores=(*trees)->group_match_scores;
     else
        match_scores=(*trees)->subgroup_match_scores;
     if(match_scores!=NULL){
        for(i_snap=0;i_snap<(*trees)->n_snaps;i_snap++)
           SID_free(SID_FARG match_scores[i_snap]);
        SID_free(SID_FARG match_scores);
     }
  }

  // Free the various other arrays
  SID_free(SID_FARG (*trees)->snap_list);
  SID_free(SID_FARG (*trees)->a_list);
  SID_free(SID_FARG (*trees)->z_list);
  SID_free(SID_FARG (*trees)->t_list);
  SID_free(SID_FARG (*trees)->n_groups_catalog);
  SID_free(SID_FARG (*trees)->n_subgroups_catalog);
  SID_free(SID_FARG (*trees)->n_groups_snap_local);
  SID_free(SID_FARG (*trees)->n_subgroups_snap_local);
  SID_free(SID_FARG (*trees)->n_groups_forest_local);
  SID_free(SID_FARG (*trees)->n_subgroups_forest_local);
  SID_free(SID_FARG (*trees)->first_neighbour_groups);
  SID_free(SID_FARG (*trees)->first_neighbour_subgroups);
  SID_free(SID_FARG (*trees)->last_neighbour_groups);
  SID_free(SID_FARG (*trees)->last_neighbour_subgroups);
  SID_free(SID_FARG (*trees)->first_in_forest_groups);
  SID_free(SID_FARG (*trees)->first_in_forest_subgroups);
  SID_free(SID_FARG (*trees)->last_in_forest_groups);
  SID_free(SID_FARG (*trees)->last_in_forest_subgroups);
  SID_free(SID_FARG (*trees)->tree2forest_mapping_group);
  SID_free(SID_FARG (*trees)->tree2forest_mapping_subgroup);

  // Free the main structure
  SID_free(SID_FARG (*trees));

  SID_log("Done.",SID_LOG_CLOSE);
}
void free_treenode_hist(treenode_hist_info **hist){
  SID_free  (SID_FARG (*hist)->array);
  SID_free  (SID_FARG (*hist));
}
Exemple #8
0
void free_camera(camera_info **camera) {
    SID_log("Freeing camera...", SID_LOG_OPEN);
    free_perspective(&((*camera)->perspective));
    SID_free(SID_FARG(*camera)->mask_RGB);
    SID_free(SID_FARG(*camera)->mask_Y);
    SID_free(SID_FARG(*camera)->mask_RGBY);
    SID_free(SID_FARG(*camera)->mask_RGBY_MARKED);
    for(int i_depth = 0; i_depth < (*camera)->n_depth_alloc; i_depth++) {
        if((*camera)->image_RGB != NULL)
            free_image(&((*camera)->image_RGB[i_depth]));
        if((*camera)->image_RGB_left != NULL)
            free_image(&((*camera)->image_RGB_left[i_depth]));
        if((*camera)->image_RGB_right != NULL)
            free_image(&((*camera)->image_RGB_right[i_depth]));
        if((*camera)->image_Y != NULL)
            free_image(&((*camera)->image_Y[i_depth]));
        if((*camera)->image_Y_left != NULL)
            free_image(&((*camera)->image_Y_left[i_depth]));
        if((*camera)->image_Y_right != NULL)
            free_image(&((*camera)->image_Y_right[i_depth]));
        if((*camera)->image_RGBY != NULL)
            free_image(&((*camera)->image_RGBY[i_depth]));
        if((*camera)->image_RGBY_left != NULL)
            free_image(&((*camera)->image_RGBY_left[i_depth]));
        if((*camera)->image_RGBY_right != NULL)
            free_image(&((*camera)->image_RGBY_right[i_depth]));
        if((*camera)->image_RY != NULL)
            free_image(&((*camera)->image_RY[i_depth]));
        if((*camera)->image_RY_left != NULL)
            free_image(&((*camera)->image_RY_left[i_depth]));
        if((*camera)->image_RY_right != NULL)
            free_image(&((*camera)->image_RY_right[i_depth]));
        if((*camera)->image_GY != NULL)
            free_image(&((*camera)->image_GY[i_depth]));
        if((*camera)->image_GY_left != NULL)
            free_image(&((*camera)->image_GY_left[i_depth]));
        if((*camera)->image_GY_right != NULL)
            free_image(&((*camera)->image_GY_right[i_depth]));
        if((*camera)->image_BY != NULL)
            free_image(&((*camera)->image_BY[i_depth]));
        if((*camera)->image_BY_left != NULL)
            free_image(&((*camera)->image_BY_left[i_depth]));
        if((*camera)->image_BY_right != NULL)
            free_image(&((*camera)->image_BY_right[i_depth]));
        if((*camera)->image_RGBY_MARKED != NULL)
            free_image(&((*camera)->image_RGBY_MARKED[i_depth]));
        if((*camera)->image_RGBY_MARKED_left != NULL)
            free_image(&((*camera)->image_RGBY_MARKED_left[i_depth]));
        if((*camera)->image_RGBY_MARKED_right != NULL)
            free_image(&((*camera)->image_RGBY_MARKED_right[i_depth]));
    }
    SID_free(SID_FARG(*camera)->image_RGB);
    SID_free(SID_FARG(*camera)->image_RGB_left);
    SID_free(SID_FARG(*camera)->image_RGB_right);
    SID_free(SID_FARG(*camera)->image_Y);
    SID_free(SID_FARG(*camera)->image_Y_left);
    SID_free(SID_FARG(*camera)->image_Y_right);
    SID_free(SID_FARG(*camera)->image_RGBY);
    SID_free(SID_FARG(*camera)->image_RGBY_left);
    SID_free(SID_FARG(*camera)->image_RGBY_right);
    SID_free(SID_FARG(*camera)->image_RY);
    SID_free(SID_FARG(*camera)->image_RY_left);
    SID_free(SID_FARG(*camera)->image_RY_right);
    SID_free(SID_FARG(*camera)->image_GY);
    SID_free(SID_FARG(*camera)->image_GY_left);
    SID_free(SID_FARG(*camera)->image_GY_right);
    SID_free(SID_FARG(*camera)->image_BY);
    SID_free(SID_FARG(*camera)->image_BY_left);
    SID_free(SID_FARG(*camera)->image_BY_right);
    SID_free(SID_FARG(*camera)->image_RGBY_MARKED);
    SID_free(SID_FARG(*camera)->image_RGBY_MARKED_left);
    SID_free(SID_FARG(*camera)->image_RGBY_MARKED_right);
    SID_free(SID_FARG(*camera)->mask_RGB_left);
    SID_free(SID_FARG(*camera)->mask_Y_left);
    SID_free(SID_FARG(*camera)->mask_RGBY_left);
    SID_free(SID_FARG(*camera)->mask_RGBY_MARKED_left);
    SID_free(SID_FARG(*camera)->mask_RGB_right);
    SID_free(SID_FARG(*camera)->mask_Y_right);
    SID_free(SID_FARG(*camera)->mask_RGBY_right);
    SID_free(SID_FARG(*camera)->mask_RGBY_MARKED_right);
    if((*camera)->RGB_gamma != NULL)
        free_interpolate(SID_FARG(*camera)->RGB_gamma, NULL);
    if((*camera)->transfer_list != NULL)
        ADaPS_free(SID_FARG(*camera)->transfer_list);
    if((*camera)->Y_gamma != NULL)
        free_interpolate(SID_FARG(*camera)->Y_gamma, NULL);

    // Free camera depth information
    free_camera_depths(*camera);

    SID_free((void **)camera);
    SID_log("Done.", SID_LOG_CLOSE);
}