/* various versions of integer min/max/median B.Dierickx 22-10-1997 v. 28jan2001 */ #ifndef MMM_INCLUDED int max2(int a,int b){return(a>b?a:b);} int min2(int a,int b){return(ab){m=b;b=a;a=m;} if(b>c){m=c;c=b;b=m;} if(a>b){m=b;b=a;a=m;} return(b); } int med4(int a,int b,int c,int d) { int m; if(a>b){m=b;b=a;a=m;} if(b>c){m=c;c=b;b=m;} if(c>d){m=d;d=c;c=m;} if(a>b){m=b;b=a;a=m;} if(b>c){m=c;c=b;b=m;} if(a>b){m=b;b=a;a=m;} return((b+c)/2); } int med5(int a,int b,int c,int d,int e) { int m; if(a>b){m=b;b=a;a=m;} if(b>c){m=c;c=b;b=m;} if(c>d){m=d;d=c;c=m;} if(d>e){m=e;e=d;d=m;} if(a>b){m=b;b=a;a=m;} if(b>c){m=c;c=b;b=m;} if(c>d){m=d;d=c;c=m;} if(a>b){m=b;b=a;a=m;} if(b>c){m=c;c=b;b=m;} if(a>b){m=b;b=a;a=m;} return(c); } int average3(int a,int b,int c) { return((a+b+c)/3); } int average2(int a,int b) { return((a+b)/2); } /********** average of a variable number of points ***************/ int mmm_avn=0; long int mmm_avsum=0; void averagen_push(int a) { mmm_avn++; mmm_avsum+=a; } int averagen(void) { int av; if(mmm_avn==0)return(0); av=mmm_avsum/mmm_avn; mmm_avn=mmm_avsum=0; return(av); } /********** median of a variable number of points ****************/ #define MMMVAL 100 int mmmval[MMMVAL]; int mmmn=0; void medn_push(int a) { int i,h; if(mmmn>=MMMVAL)return; mmmval[mmmn]=a; mmmn++; for(i=mmmn-1;i>0;i--) { if(mmmval[i]