where is ippsr.h and it's fun's in ipp 7.0

where is ippsr.h and it's fun's in ipp 7.0

when i update the ipp to 7.0 version,my code can't find many fun's,like ippsLogAdd() and program can't becompiled.

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

Please see the IPP 7.0 release notes. The Speech Recognition domain was removed from the 7.0 release and is only part of the 6.1 product. We hope to have a KB article published that will show how to link the 6.1 SR domain with the 7.0 library, but engineering is still working on the details.

Until then, you need to either use the 6.1 library to access the SR functions or use an equivalent in the one of the other domains (such as the ippsLog functions).



I am facing a similiar problem when we migrated to ipp 7.0 from ipp 6.1. We were using some functionalities from ippsr libraries which no longer works now.

I tried to work around this problem by compiling the specific module with ippsr.h and then adding the libippsremergedem64t.a libippsrmergedem64t.a libippsemergedem64t.a libippsmergedem64t.a after all the ipp 7.0 libraries during the linking step.compilation and linking went through without any problem.

Please let me know whether this is the correct way to proceed? Also please let me know whether the KB article is available for using ipp 6.1 with ipp 7.0?


Hello Rajeev,

The most reliable suggestion from engineeringwe have at this time is to:

create a custom library based on the version 6.1 single-threaded static speech recognition (SR) library using the the ipp_mx.h header file (i.e., %IPPROOT%\em64t\tools\staticlib\ipp_mx.h) to extract only the generic library code (use ipp_px.h for 32-bit code)

Much of the SR code relies on optimizations located in the signal processing (SP) domain, so you won't be giving up all performance advantages by using the mx layer within the SR library, since many of these SRfunctions call SP functions (which will be part of the 7.0 library).

Sorry, no KB article, yet; still working out the best solution.

If the technique you are using above results in no problem externals (that is, the only unsatisified external calls are to the other published IPP library interfaces) you should be okay.




We're facing the same problem. Is the SR library removed persistently from IPP 7.0 and upwards?
I'm not 100% sure if I understand your suggested path, but let me recap:

1) include ipp*.h from 7.0
2) include just ippsr.h from 6.1
3) include ipp_px.h from 6.1 (32bit)
3) link dynamically against 7.0
4) link statically against ippsmerged, ippsemerged, ippsremerged, ippsrmerged from 6.1


Hi Markus,

It seems true. What is thefunction you areuseing? If ippsResamplePolyphase, then please see the source code in Intel IPP ippsResamplePolyphase function source download.

If other functions, yes, you may mix the 7.0 and 6.1 library. The steps you mentioned looks fine and please try it andlet us knowhow it works.

As I know, some users workaroundthe problembybuilding custom dll based on 6.1.

1) Building custom dll based on 6.1 by the sample
for example, edit the export.def in w_ipp-samples_p_6.1.5.060\ipp-samples\advanced-usage\linkage\customdll\src to add the ippSR function you will used.
and run command :build32.bat customdll.

2) once custom dll (usr.lbi and usr.dll, doesn't use the usr_t.lib)was produced.The custom dllwillnot depend on IPP 6.1 longer. Thenyou can build your application with the library and IPP 7.0 library together. Theyshould independent likeastwo kind of different libraries.

Best Regards,


I will try the suggested path. You said: "It seems true." Is this in response to "SR persistently removed from IPP"?

We're using a lot more functions as we have our own ASR engine.


Hi Markus,

Right, SRwill bepersistently removed from IPP.ButItis stillpossible to restore some basic functionsin future product.The request is still under review and not final decision yet. Please let us know if you have any feedback.


Does anyone know how to install Intel IPP v6 for Mac? I've downloaded older versions of the compiler suite for Mac, but the old installers have the "continue" button grayed out on any recent versions of Mac OS X. I've tried viewing package contents to see if I can get into the libraries underneath, but they seem to be embedded into the installer binary executable itself.I wish there was a way to just download the Mac IPP libraries by themselves, apart from the compiler suite. Any advice?

Never mind, I figured this out. So, for fellow Mac developers: if you're a registered Intel Composer XE Pro user, log in to the registration center and select version 11 of the compiler to download. Then, view package contents with invisible files shown (or use Terminal), and in/Volumes/m_cproc_p_11.0.066/m_cproc_p_11.0.066.mpkg/Contents/Packages/ there's a package installer calledm_cproc_ipp32_p_11.0.066.pkg. This is IPP version 6 and it will install to/opt/intel/Compiler/11.0/066/Frameworks/ipp/ on your boot drive.


Are functions ippsNthMaxElement_*() (e.g. ippsNthMaxElement_32s()) available somewhere else or have replacements in 7.0+? 

My application is not SR-specific - that was the only function I found for calculating median on vector elements in o(n).  If there is another function that can do that please let me know.


What version of IPP library do you currently use?

>>...Are functions ippsNthMaxElement_*() (e.g. ippsNthMaxElement_32s()) available somewhere else or have
>>replacements in 7.0+?

I checked three versions of IPP library and I don't see these functions at all.

>>...that was the only function I found for calculating median on vector elements in o(n). If there is another function that
>>can do that please let me know...

That looks odd because I also have not found any functions to calculate a median of some data set, for example, a vector. Any comments?

I'm using mainly IPP 7.0 and some code still needs to be compatible with 6.1.

As mentioned above, ippsr.h (and ippsNthMaxElement_*()) is available in 6.1 but not in 7.0. 

What I did instead was sorting in o(N logN) - not ideal but does the job:

ippsSortAscend_32s_I(shiftVec, len);
shift = shiftVec[len / 2];

I'm still hoping there might be a replacement for finding median or any percentile in o(N).  Anyone?  Any plans for this?

>>...I'm still hoping there might be a replacement for finding median or any percentile in o(N). Anyone?

Since the vector you use is Ipp32s type ( declared as typedef signed int Ipp32s ) than you can use a Pigeonhole sorting algorithm. The algorithm is Not Inplace, needs additional memory ( size of the buffer depends on a range of values ) and it sorts input vector in just 2 passes ( pass#1 - builds a histogram / pass #2 - constructs sorted output vector ). Also, you need to take into account that calculation of a final value depends on if the vector has Odd or Even number of elements.

On a large data set with a limited range of integer values there is nothing (!) that could match to Pigeonhole sorting algorithm performance.

Thanks Sergey, read about the algorithm now and it's quite neat.

As you mention - it has a limitation based on the value range and would require dynamically allocated memory.  Anyway it's an overkill for my purpose. 

I hoped to find something in IPP, so that it would also take advantage of the Intel code set.

Thanks again for your help and the education...

I'm using mainly IPP 8.1 for Xcode 5.0 under OSX 10.8 and I found that the ippsr library is not included. I want to use the ippsMahDistSingle_32f64f() function. Any suggestion ? I see that if I use the 6.1 revision library I can have the speech recognition library. But is the 6.1 revision works with Xcode ?


Leave a Comment

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