Computing Median Absolute Deviation

Use the VSL_SS_METHOD_FAST method to compute a median absolute deviation estimate in the datasets. The calculation is straightforward and follows the pattern of the example below:

#include "mkl_vsl.h"
#define DIM 3      /* dimension of the task */ 
#define N   1000   /* number of observations */
int main()
    VSLSSTaskPtr task;
    float x[DIM][N];  /* matrix of observations */
    float mdad[DIM];
    MKL_INT p, n, xstorage;
    int status;
    /* Parameters of the task and initialization */
    p = DIM;
    n = N;
    /* Create a task */
    status = vslsSSNewTask( &task, &p, &n, &xstorage, (float*)x, 0, 0 );
    /* Initialize the task parameters */
    status = vslsSSEditTask( task, VSL_SS_ED_MDAD, mdad );
    /* Compute median absolute deviation in observations */
    status = vslsSSCompute(task, VSL_SS_MDAD, VSL_SS_METHOD_FAST );
    /* Deallocate the task resources */
    status = vslSSDeleteTask( &task );
    return 0;

The size of the array to hold median absolute deviation should be sufficient for storing at least p values of the estimate, where p is the dimension of the task.

Computation of median absolute deviation is only possible for data arrays available at once, or in separate blocks of the dataset.

Per informazioni più dettagliate sulle ottimizzazioni basate su compilatore, vedere il nostro Avviso sull'ottimizzazione.