cmp method

int cmp(
  1. MPData a,
  2. MPData b
)

Implementation

int cmp( MPData a, MPData b ){
	if( a.val(0) < 0 && b.val(0) >= 0 ){ return -1; }
	if( b.val(0) < 0 && a.val(0) >= 0 ){ return  1; }
	int k = (a.val(0) < 0 && b.val(0) < 0) ? -1 : 1;

	int la = getLen( a );
	int lb = getLen( b );

	int aa, bb;
	for( int i = (la > lb) ? la : lb; i > 0; i-- ){
		aa = (i <= la) ? a.val(i) : 0;
		bb = (i <= lb) ? b.val(i) : 0;
		if( aa != bb ){ return (aa - bb) * k; }
	}

	return 0;
}