- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
I'm using ippsExp_32f in a DLL (actually a Photoshop compatible plugin), and it works fine when the plugin's run under Photoshop and various other host applications. However, when run under Paint Shop Pro 9, the results come out wrong.
I've spent the whole day looking at this, so I'm pretty sure that my results are sound. As an example (stdlib's expf vs ippsExp_32f):
Std lib exp: -5.24 ( std lib exp of ) = 0.00530026
Vector exp: -5.24 ( vector exp of ) = 0.00390584
Std lib exp: -4.24 ( std lib exp of ) = 0.0144076
Vector exp: -4.24 ( vector exp of ) = 0.0156267
Std lib exp: -3.24 ( std lib exp of ) = 0.0391639
Vector exp: -3.24 ( vector exp of ) = 0.0312497
Std lib exp: -2.24 ( std lib exp of ) = 0.106459
Vector exp: -2.24 ( vector exp of ) = 0.124983
Std lib exp: -1.24 ( std lib exp of ) = 0.289384
Vector exp: -1.24 ( vector exp of ) = 0.250021
This same test prints out fine when run inside Photoshop. The IPP library is being linked statically as a merged library, InitStatic is getting called before use etc. What I don't understand is how the same code executed under two different hosts can give such different results (the differences become more and more pronounced the further the input is from 0).
As a temporary solution, I've done a test before using the exp function and worked out whether I'm getting accurate results, then using the Intel fn or expf as appropriate.
Anyone got any ideas on this?
Thanks, and sorry for the length,
Steve McLellan
I'm using ippsExp_32f in a DLL (actually a Photoshop compatible plugin), and it works fine when the plugin's run under Photoshop and various other host applications. However, when run under Paint Shop Pro 9, the results come out wrong.
I've spent the whole day looking at this, so I'm pretty sure that my results are sound. As an example (stdlib's expf vs ippsExp_32f):
Std lib exp: -5.24 ( std lib exp of ) = 0.00530026
Vector exp: -5.24 ( vector exp of ) = 0.00390584
Std lib exp: -4.24 ( std lib exp of ) = 0.0144076
Vector exp: -4.24 ( vector exp of ) = 0.0156267
Std lib exp: -3.24 ( std lib exp of ) = 0.0391639
Vector exp: -3.24 ( vector exp of ) = 0.0312497
Std lib exp: -2.24 ( std lib exp of ) = 0.106459
Vector exp: -2.24 ( vector exp of ) = 0.124983
Std lib exp: -1.24 ( std lib exp of ) = 0.289384
Vector exp: -1.24 ( vector exp of ) = 0.250021
This same test prints out fine when run inside Photoshop. The IPP library is being linked statically as a merged library, InitStatic is getting called before use etc. What I don't understand is how the same code executed under two different hosts can give such different results (the differences become more and more pronounced the further the input is from 0).
As a temporary solution, I've done a test before using the exp function and worked out whether I'm getting accurate results, then using the Intel fn or expf as appropriate.
Anyone got any ideas on this?
Thanks, and sorry for the length,
Steve McLellan
Link Copied
2 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
As an update, it turned out that Visual Studio was using a local version of funclist.h that wasn't the intended target, and didn't have ippsExp_32f in it. Under Paint Shop that apparently caused a problem, under Photoshop it didn't. Sorry for anyone that spent any time wondering about it, put it down to my stupidity :-)
Steve
Steve
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Steve,
Great, I'm glad that you found solution.
Regards,
Vladimir
Vladimir
Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page