Turn on suggestions

Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.

Showing results for

- Intel Community
- Software Development SDKs and Libraries
- Intel® oneAPI Math Kernel Library & Intel® Math Kernel Library
- Algorithm in vdCdfNormInv()

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

Highlighted
##

darietti

Beginner

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

01-11-2013
02:13 AM

25 Views

Algorithm in vdCdfNormInv()

Hi,

I wonder what actual algorithm is inside VML function vdCdfNormInv().

Could you give some information about it?

I'm trying to compare it to other known algorithms for computing the inverse of the normal cumulative distribution.

Thanks!

6 Replies

Highlighted
##

For example, I'm comparing it to Acklam's algorithm (http://home.online.no/~pjacklam/notes/invnorm/) and it seems vdCdfNormInv is slower, even though I'm not vectorizing my implementation of Acklam.

darietti

Beginner

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

01-11-2013
03:01 AM

25 Views

Highlighted
##

In addition to comparing for speed, you should also consider the accuracy of the result. Aclam's algorithm may be sufficient for many applications, but the claimed accuracy is 5-6 digits short of the full 52-bit floating point precision that one could expect from 64-bit IEEE floating point arithmetic.

mecej4

Black Belt

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

01-11-2013
06:06 AM

25 Views

Highlighted
##

Hello, the algorithm is proprietary of intel and implementation details are not disclosed. But we publish performance and accuracy data for each of VML functions in respective documents: http://software.intel.com/en-us/intel-mkl

Gennady_F_Intel

Moderator

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

01-11-2013
07:31 AM

25 Views

Highlighted
##

I think these information about performance and accurace data for all VML routines and for all supported accurace mode
would be usefull to look at.
http://software.intel.com/sites/products/documentation/doclib/mkl_sa/11/vml/functions/_performanceal...

Gennady_F_Intel

Moderator

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

01-11-2013
07:36 AM

25 Views

Highlighted
##

Sure, I'm considering accuracy of result.
Acklam is good enough for my needs, I was hoping that MKL would have an efficient (vectorized, threaded) implementation with similar accuracy.

darietti

Beginner

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

01-11-2013
07:55 AM

25 Views

Highlighted
##

Andrey_N_Intel

Employee

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

01-12-2013
04:18 AM

25 Views

Hello Darietti,

Intel(R) MKL CdfNormInv function, among other vector math functions, supports three accuracy modes, High Accuracy (default), Low Accuracy, and Enhanced Performance. Please, have a look at the additional details and definitions of the modes in "Data Types, Accuracy Modes, and Performance Tips" section of "Vector Mathematical Functions" Chapter in Intel(R) MKL Manual. Typically, you would see better performance in the modes with reduced accuracy like Enhanced performance. Please, review the CdfNormInv performance data and graphs including effect of threading on several CPUs at http://software.intel.com/sites/products/documentation/doclib/mkl_sa/11/vml/functions/cdfnorminv.htm....

When/if you compare Intel(R) MKL implementations of vector math functions against other algorithms, please choose accuracy mode in MKL math functions which corresponds to accuracy of those algorithms. It can be done by service function or by call to version of the math function that accepts accuracy mode as parameter. Also, make sure that you compare performance om vector lengths at least few hundreeds (Intel(R) MKL Manual does not suggest to use MKL vector math functions if size of vector is less than 40).

Please, feel free to share with us results of your comparative analysis or/and let us know if you have more questions on vector math functions available in Intel(R) MKL.

Thanks,

Andrey

For more complete information about compiler optimizations, see our Optimization Notice.