ippdi.h 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  1. /* /////////////////////////////////////////////////////////////////////////////
  2. //
  3. // INTEL CORPORATION PROPRIETARY INFORMATION
  4. // This software is supplied under the terms of a license agreement or
  5. // nondisclosure agreement with Intel Corporation and may not be copied
  6. // or disclosed except in accordance with the terms of that agreement.
  7. // Copyright(c) 2007-2009 Intel Corporation. All Rights Reserved.
  8. //
  9. // Intel(R) Performance Primitives
  10. // Data Integrity Primitives (ippDI)
  11. //
  12. */
  13. #if !defined( __IPPDI_H__ ) || defined( _OWN_BLDPCS )
  14. #define __IPPDI_H__
  15. #if defined (_WIN32_WCE) && defined (_M_IX86) && defined (__stdcall)
  16. #define _IPP_STDCALL_CDECL
  17. #undef __stdcall
  18. #endif
  19. #ifndef __IPPDEFS_H__
  20. #include "ippdefs.h"
  21. #endif
  22. #ifdef __cplusplus
  23. extern "C" {
  24. #endif
  25. /* /////////////////////////////////////////////////////////////////////////////
  26. // Name: ippdiGetLibVersion
  27. // Purpose: getting of the library version
  28. // Returns: the structure of information about version of ippDI library
  29. // Parameters:
  30. //
  31. // Notes: not necessary to release the returned structure
  32. */
  33. IPPAPI( const IppLibraryVersion*, ippdiGetLibVersion, (void) )
  34. /* /////////////////////////////////////////////////////////////////////////////
  35. //
  36. // GF(2^m) extension of elementary GF(2)
  37. //
  38. */
  39. #if !defined( _OWN_BLDPCS )
  40. typedef struct _GF8 IppsGFSpec_8u;
  41. #endif /* _OWN_BLDPCS */
  42. IPPAPI(IppStatus, ippsGFGetSize_8u,(int gfDegree, int* pSize))
  43. IPPAPI(IppStatus, ippsGFInit_8u,(int gfDegree, const Ipp8u* pPolynomial, IppsGFSpec_8u* pGF))
  44. IPPAPI(IppStatus, ippsGFAdd_8u,(Ipp8u srcA, Ipp8u srcB, Ipp8u* pDstR, const IppsGFSpec_8u* pGF))
  45. IPPAPI(IppStatus, ippsGFSub_8u,(Ipp8u srcA, Ipp8u srcB, Ipp8u* pDstR, const IppsGFSpec_8u* pGF))
  46. IPPAPI(IppStatus, ippsGFMul_8u,(Ipp8u srcA, Ipp8u srcB, Ipp8u* pDstR, const IppsGFSpec_8u* pGF))
  47. IPPAPI(IppStatus, ippsGFDiv_8u,(Ipp8u srcA, Ipp8u srcB, Ipp8u* pDstR, const IppsGFSpec_8u* pGF))
  48. IPPAPI(IppStatus, ippsGFPow_8u,(Ipp8u srcA, int srcPwr, Ipp8u* pDstR, const IppsGFSpec_8u* pGF))
  49. IPPAPI(IppStatus, ippsGFInv_8u,(Ipp8u srcA, Ipp8u* pDstR, const IppsGFSpec_8u* pGF))
  50. IPPAPI(IppStatus, ippsGFNeg_8u,(Ipp8u srcA, Ipp8u* pDstR, const IppsGFSpec_8u* pGF))
  51. IPPAPI(IppStatus, ippsGFLogAlpha_8u,(Ipp8u srcA, Ipp8u* pDstPwr,const IppsGFSpec_8u* pGF))
  52. IPPAPI(IppStatus, ippsGFExpAlpha_8u,(Ipp8u srcPwr, Ipp8u* pDdstR, const IppsGFSpec_8u* pGF))
  53. /* /////////////////////////////////////////////////////////////////////////////
  54. //
  55. // polynomials over GF(2^m)
  56. //
  57. */
  58. #if !defined( _OWN_BLDPCS )
  59. typedef struct _PolyGF8 IppsPoly_GF8u;
  60. #endif /* _OWN_BLDPCS */
  61. IPPAPI(IppStatus, ippsPolyGFGetSize_8u,(int maxDegree, int* pSize))
  62. IPPAPI(IppStatus, ippsPolyGFInit_8u,(const IppsGFSpec_8u* pGF, int maxDegree,
  63. IppsPoly_GF8u* pPoly))
  64. IPPAPI(IppStatus, ippsPolyGFSetCoeffs_8u,(const Ipp8u* pCoeff,int degree,
  65. IppsPoly_GF8u* pPoly))
  66. IPPAPI(IppStatus, ippsPolyGFSetDegree_8u,(int degree,
  67. IppsPoly_GF8u* pPoly))
  68. IPPAPI(IppStatus, ippsPolyGFCopy_8u,(const IppsPoly_GF8u* pPolyA, IppsPoly_GF8u* pPolyB))
  69. IPPAPI(IppStatus, ippsPolyGFGetRef_8u,(Ipp8u** const pDstCoeff, int* pDstDegree,
  70. IppsGFSpec_8u** const pDstGF,
  71. const IppsPoly_GF8u* pPoly))
  72. IPPAPI(IppStatus, ippsPolyGFAdd_8u,(const IppsPoly_GF8u* pSrcA, const IppsPoly_GF8u* pSrcB,
  73. IppsPoly_GF8u* pDstR))
  74. IPPAPI(IppStatus, ippsPolyGFSub_8u,(const IppsPoly_GF8u* pSrcA, const IppsPoly_GF8u* pSrcB,
  75. IppsPoly_GF8u* pSrcR))
  76. IPPAPI(IppStatus, ippsPolyGFMul_8u,(const IppsPoly_GF8u* pSrcA, const IppsPoly_GF8u* pSrcB,
  77. IppsPoly_GF8u* pDstR))
  78. IPPAPI(IppStatus, ippsPolyGFMod_8u,(const IppsPoly_GF8u* pSrcA, const IppsPoly_GF8u* pSrcB,
  79. IppsPoly_GF8u* pDstR))
  80. IPPAPI(IppStatus, ippsPolyGFDiv_8u,(const IppsPoly_GF8u* pSrcDividend, const IppsPoly_GF8u* pSrcDivisor,
  81. IppsPoly_GF8u* pDstQuotient,
  82. IppsPoly_GF8u* pDstReminder))
  83. IPPAPI(IppStatus, ippsPolyGFShlC_8u,(const IppsPoly_GF8u* pSrc, int nShift,
  84. IppsPoly_GF8u* pDst))
  85. IPPAPI(IppStatus, ippsPolyGFShrC_8u,(const IppsPoly_GF8u* pSrc, int nShift,
  86. IppsPoly_GF8u* pDst))
  87. IPPAPI(IppStatus, ippsPolyGFIrreducible_8u,(const IppsPoly_GF8u* pSrc, IppBool* pIsIrreducible))
  88. IPPAPI(IppStatus, ippsPolyGFPrimitive_8u,(const IppsPoly_GF8u* pSrc, IppBool isIrreducible, IppBool* pIsPrimitive))
  89. IPPAPI(IppStatus, ippsPolyGFValue_8u,(const IppsPoly_GF8u* pSrc, Ipp8u srcE, Ipp8u* pDstValue))
  90. IPPAPI(IppStatus, ippsPolyGFDerive_8u,(const IppsPoly_GF8u* pSrc, IppsPoly_GF8u* pDst))
  91. IPPAPI(IppStatus, ippsPolyGFRoots_8u,(const IppsPoly_GF8u* pSrc,
  92. Ipp8u* pRoot, int* nRoots))
  93. IPPAPI(IppStatus, ippsPolyGFGCD_8u,(const IppsPoly_GF8u* pSrcA, const IppsPoly_GF8u* pSrcB,
  94. IppsPoly_GF8u* pDstGCD))
  95. /* /////////////////////////////////////////////////////////////////////////////
  96. //
  97. // RS encoder
  98. //
  99. */
  100. #if !defined( _OWN_BLDPCS )
  101. typedef struct _RSencodeGF8 IppsRSEncodeSpec_8u;
  102. #endif /* _OWN_BLDPCS */
  103. IPPAPI(IppStatus, ippsRSEncodeGetSize_8u,(int codeLen, int dataLen, int* pSize))
  104. IPPAPI(IppStatus, ippsRSEncodeInit_8u,(int codeLen, int dataLen, const IppsGFSpec_8u* pGF, Ipp8u root,
  105. IppsRSEncodeSpec_8u* pRS))
  106. IPPAPI(IppStatus, ippsRSEncodeGetBufferSize_8u,(const IppsRSEncodeSpec_8u* pRS, int* pSize))
  107. IPPAPI(IppStatus, ippsRSEncode_8u,(const Ipp8u* pSrc,
  108. Ipp8u* pDst,
  109. const IppsRSEncodeSpec_8u* pRS,
  110. Ipp8u* pBuffer))
  111. /* /////////////////////////////////////////////////////////////////////////////
  112. //
  113. // RS decoder
  114. //
  115. */
  116. #if !defined( _OWN_BLDPCS )
  117. typedef struct _RSdecodeGF8 IppsRSDecodeSpec_8u;
  118. #endif /* _OWN_BLDPCS */
  119. IPPAPI(IppStatus, ippsRSDecodeGetSize_8u,(int codeLen, int dataLen, int* pSize))
  120. IPPAPI(IppStatus, ippsRSDecodeInit_8u,(int codeLen, int dataLen, const IppsGFSpec_8u* pGF, Ipp8u root,
  121. IppsRSDecodeSpec_8u* pRS))
  122. IPPAPI(IppStatus, ippsRSDecodeBMGetBufferSize_8u,(const IppsRSDecodeSpec_8u* pRS, int* pSize))
  123. IPPAPI(IppStatus, ippsRSDecodeEEGetBufferSize_8u,(const IppsRSDecodeSpec_8u* pRS, int* pSize))
  124. IPPAPI(IppStatus, ippsRSDecodeBM_8u,(const int *pErasureList, int erasureListLen,
  125. Ipp8u* pSrcDstCodeWord,
  126. const IppsRSDecodeSpec_8u* pRS,
  127. Ipp8u* pBuffer))
  128. IPPAPI(IppStatus, ippsRSDecodeEE_8u,(const int *pErasureList, int erasureListLen,
  129. Ipp8u* pSrcDstCodeWord,
  130. const IppsRSDecodeSpec_8u* pRS,
  131. Ipp8u* pBuffer))
  132. #ifdef __cplusplus
  133. }
  134. #endif
  135. #if defined (_IPP_STDCALL_CDECL)
  136. #undef _IPP_STDCALL_CDECL
  137. #define __stdcall __cdecl
  138. #endif
  139. #endif /* __IPPDI_H__ */