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; } }
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); }
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)); }
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)); }
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); }