diff options
Diffstat (limited to 'benchmarks/median/median.c')
-rw-r--r-- | benchmarks/median/median.c | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/benchmarks/median/median.c b/benchmarks/median/median.c new file mode 100644 index 0000000..3c509cc --- /dev/null +++ b/benchmarks/median/median.c @@ -0,0 +1,40 @@ +//************************************************************************** +// Median filter (c version) +//-------------------------------------------------------------------------- + +void median( int n, int input[], int results[] ) +{ + int A, B, C, i; + + // Zero the ends + results[0] = 0; + results[n-1] = 0; + + // Do the filter + for ( i = 1; i < (n-1); i++ ) { + + A = input[i-1]; + B = input[i]; + C = input[i+1]; + + if ( A < B ) { + if ( B < C ) + results[i] = B; + else if ( C < A ) + results[i] = A; + else + results[i] = C; + } + + else { + if ( A < C ) + results[i] = A; + else if ( C < B ) + results[i] = B; + else + results[i] = C; + } + + } + +} |