Calling of VML Mathematical Functions [in-place operation]

Calling of VML Mathematical Functions [in-place operation]


I have a question concerning the use of Vector Mathematical Functions. The documentation does not contain a hint whether one can apply the same argument twice [in-place operation] without any side effects. For example for two vectors a, b the operation a = a + b should be computed via

vdadd( n, a, b, a ); [in-place operation]

instead of creating a working array y first and copy the result to array a again:

y = new double[n];
vdadd( n, a, b, y );
copy(source: y, destination: a);

I have tested it and it works for vdadd. My question is is not restricted to vdadd, more general to all other Mathematical functions as for example vdsqr, vzconj, vdpow etc. I can test each function before I will use it but this is rather time consuming and can change from release to release of the MKL Library.

Thanks in advance,


3 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

Hi Markus, 

It is true that all of the VML can work with the in-plance operation. Check the document here:



Hi Chao,

thank you very much, I was blind...


Leave a Comment

Please sign in to add a comment. Not a member? Join today