text: //**************************************************************************
  // Median filter bencmark
  //--------------------------------------------------------------------------
  //
  // This benchmark performs a 1D three element median filter. The
  // input data (and reference data) should be generated using the
  // median_gendata.pl perl script and dumped to a file named
  // dataset1.h You should not change anything except the
  // HOST_DEBUG and PREALLOCATE macros for your timing run.
  
  #include "median.h"
  #include "util.h"
  
  
  //--------------------------------------------------------------------------
  // Input/Reference Data
  
  #include "dataset1.h"
  
  //--------------------------------------------------------------------------
  // Utility Functions
  
  int verify( int n, int test[], int correct[] )
  {
    int i;
    for ( i = 0; i < n; i++ ) {
      if ( test[i] != correct[i] ) {
        return 2;
      }
    }
    return 1;
  }
  
  #if HOST_DEBUG
  void printArray( char name[], int n, int arr[] )
  {
    int i;
    printf( " %10s :", name );
    for ( i = 0; i < n; i++ )
      printf( " %3d ", arr[i] );
    printf( "\n" );
  }
  #endif
  
  
  //--------------------------------------------------------------------------
  // Main
  
  int main( int argc, char* argv[] )
  {
    int results_data[DATA_SIZE];
  
    // Output the input array
  
  #if HOST_DEBUG
    printArray( "input",  DATA_SIZE, input_data  );
    printArray( "verify", DATA_SIZE, verify_data );
  #endif
  
    // If needed we preallocate everything in the caches
  
  #if ( !HOST_DEBUG && PREALLOCATE )
    //median_asm( DATA_SIZE, input_data, results_data );
    median( DATA_SIZE, input_data, results_data );
  #endif
  
    // Do the filter
  
    setStats(1);
    median( DATA_SIZE, input_data, results_data );
    setStats(0);
  
    // Print out the results
  
  #if HOST_DEBUG
    printArray( "results", DATA_SIZE, results_data );
  #endif
  
    // Check the results
  
    finishTest(verify( DATA_SIZE, results_data, verify_data ));
  
  }
  