Doxygen Source Code Documentation
Main Page Alphabetical List Data Structures File List Data Fields Globals Search
edt_sortmask.c
Go to the documentation of this file.00001 #include "mrilib.h"
00002
00003
00004
00005
00006
00007 typedef struct { short i , j , k ; } short3 ;
00008
00009 void MCW_sort_cluster( MCW_cluster * cl )
00010 {
00011 int nn , ii ;
00012 float *aa ;
00013 short3 ** ss ;
00014
00015 ENTRY("MCW_sort_cluster") ;
00016
00017 if( cl == NULL || cl->num_pt < 2 ) EXRETURN ;
00018
00019 nn = cl->num_pt ;
00020 aa = (float * ) malloc(sizeof(float) *nn) ;
00021 ss = (short3 **) malloc(sizeof(short3 *)*nn) ;
00022 for( ii=0 ; ii < nn ; ii++ ){
00023 aa[ii] = cl->mag[ii] ;
00024 ss[ii] = (short3 *) malloc(sizeof(short3)) ;
00025 ss[ii]->i = cl->i[ii] ;
00026 ss[ii]->j = cl->j[ii] ;
00027 ss[ii]->k = cl->k[ii] ;
00028 }
00029
00030 qsort_floatstuff( nn , aa , (void **) ss ) ;
00031
00032 for( ii=0 ; ii < nn ; ii++ ){
00033 cl->mag[ii] = aa[ii] ;
00034 cl->i[ii] = ss[ii]->i ;
00035 cl->j[ii] = ss[ii]->j ;
00036 cl->k[ii] = ss[ii]->k ;
00037 free(ss[ii]) ;
00038 }
00039
00040 free(ss) ; free(aa) ; EXRETURN ;
00041 }