- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I test computing kurtosis by MKL with float and double , and get strange result as following , why kurt of float and double have such big difference ?
double skew -3.2811 ,kurt 9.3626 ,mean 32.29 ,r2m 1042.57,r3m 33668.46 ,r4m 1087393.04
float skew -3.3029 ,kurt 5.7297 ,mean 32.29 ,r2m 1042.57,r3m 33668.46 ,r4m 1087393.00
#define DIM 1
#define N 16
void test_mkl_skew_double()
{
VSLSSTaskPtr task;
double x[N]= {32.368824, 32.3732567, 32.3706436, 32.3741646, 32.3736801, 32.3755112, 32.3742905, 32.3735313, 32.3738403, 30.9899216, 32.3761978, 32.3737259, 32.3755112, 32.3710899, 32.3742638, 32.3742638};
double mean=0,skew=0,kurt={0},vari=0;
MKL_INT p,n,xst;
int status;
p=DIM;
n=N;
xst=VSL_SS_MATRIX_STORAGE_ROWS;
status = vsldSSNewTask( &task, &p, &n, &xst, x, 0, 0 );
double rm[8]={-1};
status=vsldSSEditMoments(task,&rm[0],&rm[1],&rm[2],&rm[3],&rm[4],&rm[6],&rm[5]);
status = vsldSSEditTask( task, VSL_SS_ED_SKEWNESS, &skew );
status = vsldSSEditTask( task, VSL_SS_ED_KURTOSIS, &kurt );
MKL_UINT64 mask = VSL_SS_MEAN | VSL_SS_KURTOSIS | VSL_SS_SKEWNESS | VSL_SS_2R_MOM | VSL_SS_3R_MOM | VSL_SS_4R_MOM | VSL_SS_2C_MOM | VSL_SS_3C_MOM | VSL_SS_4C_MOM ;
status = vsldSSCompute(task, mask, VSL_SS_METHOD_FAST );
status = vslSSDeleteTask( &task );
printf ("double skew %.4f ,kurt %.4f ,mean %.2f ,r2m %.2f,r3m %.2f ,r4m %.2f\n",skew,kurt,rm[0],rm[1],rm[2],rm[3]);
}
void test_mkl_skew_float()
{
VSLSSTaskPtr task;
float x[N]= {32.368824, 32.3732567, 32.3706436, 32.3741646, 32.3736801, 32.3755112, 32.3742905, 32.3735313, 32.3738403, 30.9899216, 32.3761978, 32.3737259, 32.3755112, 32.3710899, 32.3742638, 32.3742638};
float mean=0,skew=0,kurt={0},vari=0;
MKL_INT p,n,xst;
int status;
p=DIM;
n=N;
xst=VSL_SS_MATRIX_STORAGE_ROWS;
status = vslsSSNewTask( &task, &p, &n, &xst, x, 0, 0 );
float rm[8]={-1};
status=vslsSSEditMoments(task,&rm[0],&rm[1],&rm[2],&rm[3],&rm[4],&rm[6],&rm[5]);
status = vslsSSEditTask( task, VSL_SS_ED_SKEWNESS, &skew );
status = vslsSSEditTask( task, VSL_SS_ED_KURTOSIS, &kurt );
MKL_UINT64 mask = VSL_SS_MEAN | VSL_SS_KURTOSIS | VSL_SS_SKEWNESS | VSL_SS_2R_MOM | VSL_SS_3R_MOM | VSL_SS_4R_MOM | VSL_SS_2C_MOM | VSL_SS_3C_MOM | VSL_SS_4C_MOM ;
status = vslsSSCompute(task, mask, VSL_SS_METHOD_FAST );
status = vslSSDeleteTask( &task );
printf ("float skew %.4f ,kurt %.4f ,mean %.2f ,r2m %.2f,r3m %.2f ,r4m %.2f\n",skew,kurt,rm[0],rm[1],rm[2],rm[3]);
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Roland,
The issue raised by you is reproducible with VSL_SS_METHOD_FAST method parameter.
Meanwhile could you please try changing the method parameter to the function vslSSCompute as shown below?
//kurtosis of double datatype
status = vsldSSCompute(task, mask, VSL_SS_METHOD_1PASS);
//kurtosis of float datatype
status = vslsSSCompute(task, mask, VSL_SS_METHOD_1PASS );
We checked it from our end and could see that the results are same for both float and double kurtosis.
Reference Link:https://www.intel.com/content/www/us/en/develop/documentation/onemkl-developer-reference-c/top/stati...
Please refer to the below screenshot and do let us know if it helps in resolving the issue.
Regards,
Vidya.
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Roland,
The issue raised by you is reproducible with VSL_SS_METHOD_FAST method parameter.
Meanwhile could you please try changing the method parameter to the function vslSSCompute as shown below?
//kurtosis of double datatype
status = vsldSSCompute(task, mask, VSL_SS_METHOD_1PASS);
//kurtosis of float datatype
status = vslsSSCompute(task, mask, VSL_SS_METHOD_1PASS );
We checked it from our end and could see that the results are same for both float and double kurtosis.
Reference Link:https://www.intel.com/content/www/us/en/develop/documentation/onemkl-developer-reference-c/top/stati...
Please refer to the below screenshot and do let us know if it helps in resolving the issue.
Regards,
Vidya.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thank you for reaching us. This issue is closing and we will no longer respond to this thread. If you require additional assistance from Intel, please start a new thread. Any further interaction in this thread will be considered community only.

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page