int mclvSumCmp ( const void* p1 , const void* p2 ) { double diff = mclvSum((mclVector*) p1) - mclvSum((mclVector*) p2) ; return MCX_SIGN(diff) ; }
int mclvValRevCmp ( const void* p1 , const void* p2 ) { double diff = ((mclVector*) p2)->val - ((mclVector*)p1)->val ; return MCX_SIGN(diff) ; }
int mclvVidCmp ( const void* p1 , const void* p2 ) { long diff = ((mclVector*) p1)->vid - ((mclVector*)p2)->vid ; return MCX_SIGN(diff) ; }
int mclpValRevCmp ( const void* i1 , const void* i2 ) { int s = MCX_SIGN(((mclIvp*)i2)->val - ((mclIvp*)i1)->val) ; return (s ? s : ((mclIvp*)i1)->idx - ((mclIvp*)i2)->idx) ; }
int mclvSizeRevCmp ( const void* p1 , const void* p2 ) { long diff = ((mclVector*)p2)->n_ivps - ((mclVector*)p1)->n_ivps ; if (diff) return MCX_SIGN(diff) ; else return mclvLexCmp(p1, p2) ; }
int mclvLexCmp ( const void* p1 , const void* p2 ) { mclIvp* ivp1 = ((mclVector*)p1)->ivps ; mclIvp* ivp2 = ((mclVector*)p2)->ivps ; long diff ; dim n_ivps = MCX_MIN ( ((mclVector*)p1)->n_ivps , ((mclVector*)p2)->n_ivps ) /* * Vectors with low numbers first */ ; while (n_ivps-- > 0) /* careful with unsignedness */ if ((diff = (ivp1++)->idx - (ivp2++)->idx)) return MCX_SIGN(diff) ; diff = ((mclVector*)p1)->n_ivps - ((mclVector*)p2)->n_ivps ; return MCX_SIGN(diff) ; }