mkl_df_functions.h 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226
  1. /* file: mkl_df_functions.h */
  2. /*******************************************************************************
  3. * Copyright 2006-2022 Intel Corporation.
  4. *
  5. * This software and the related documents are Intel copyrighted materials, and
  6. * your use of them is governed by the express license under which they were
  7. * provided to you (License). Unless the License provides otherwise, you may not
  8. * use, modify, copy, publish, distribute, disclose or transmit this software or
  9. * the related documents without Intel's prior written permission.
  10. *
  11. * This software and the related documents are provided as is, with no express
  12. * or implied warranties, other than those that are expressly stated in the
  13. * License.
  14. *******************************************************************************/
  15. /*
  16. //++
  17. // User-level DF function declarations
  18. //--
  19. */
  20. #ifndef __MKL_DF_FUNCTIONS_H__
  21. #define __MKL_DF_FUNCTIONS_H__
  22. #include "mkl_df_types.h"
  23. #ifdef __cplusplus
  24. extern "C" {
  25. #endif /* __cplusplus */
  26. /*
  27. //++
  28. // EXTERNAL API MACROS.
  29. // Used to construct DF function declaration. Change them if you are going to
  30. // provide different API for DF functions.
  31. //--
  32. */
  33. #if !defined(MKL_CALL_CONV)
  34. # if defined(__MIC__) || defined(__TARGET_ARCH_MIC)
  35. # define MKL_CALL_CONV
  36. # else
  37. # define MKL_CALL_CONV __cdecl
  38. # endif
  39. #endif
  40. #if !defined(_Mkl_Api)
  41. #define _Mkl_Api(rtype,name,arg) extern rtype MKL_CALL_CONV name arg
  42. #endif
  43. #if !defined(_mkl_api)
  44. #define _mkl_api(rtype,name,arg) extern rtype MKL_CALL_CONV name arg
  45. #endif
  46. #if !defined(_MKL_API)
  47. #define _MKL_API(rtype,name,arg) extern rtype MKL_CALL_CONV name arg
  48. #endif
  49. /*
  50. //++
  51. // DF CONSTRUCTOR FUNCTION DECLARATIONS.
  52. //--
  53. */
  54. /* NewTask1D - 1d task creation/initialization */
  55. _Mkl_Api(int,dfsNewTask1D,(DFTaskPtr *, const MKL_INT , const float [], const MKL_INT , const MKL_INT , const float [], const MKL_INT ));
  56. _mkl_api(int,dfsnewtask1d,(DFTaskPtr *, const MKL_INT *, const float [], const MKL_INT *, const MKL_INT *, const float [], const MKL_INT *));
  57. _MKL_API(int,DFSNEWTASK1D,(DFTaskPtr *, const MKL_INT *, const float [], const MKL_INT *, const MKL_INT *, const float [], const MKL_INT *));
  58. _Mkl_Api(int,dfdNewTask1D,(DFTaskPtr *, const MKL_INT , const double [], const MKL_INT , const MKL_INT , const double [], const MKL_INT ));
  59. _mkl_api(int,dfdnewtask1d,(DFTaskPtr *, const MKL_INT *, const double [], const MKL_INT *, const MKL_INT *, const double [], const MKL_INT *));
  60. _MKL_API(int,DFDNEWTASK1D,(DFTaskPtr *, const MKL_INT *, const double [], const MKL_INT *, const MKL_INT *, const double [], const MKL_INT *));
  61. /*
  62. //++
  63. // DF EDITOR FUNCTION DECLARATIONS.
  64. //--
  65. */
  66. /* Modifies a pointer to an array held in a Data Fitting task descriptor */
  67. _Mkl_Api(int,dfsEditPtr,(DFTaskPtr , const MKL_INT , const float *));
  68. _mkl_api(int,dfseditptr,(DFTaskPtr *, const MKL_INT *, const float *));
  69. _MKL_API(int,DFSEDITPTR,(DFTaskPtr *, const MKL_INT *, const float *));
  70. _Mkl_Api(int,dfdEditPtr,(DFTaskPtr , const MKL_INT , const double *));
  71. _mkl_api(int,dfdeditptr,(DFTaskPtr *, const MKL_INT *, const double *));
  72. _MKL_API(int,DFDEDITPTR,(DFTaskPtr *, const MKL_INT *, const double *));
  73. /* Modifies a parameter value in a Data Fitting task descriptor */
  74. _Mkl_Api(int,dfiEditVal,(DFTaskPtr , const MKL_INT , const MKL_INT ));
  75. _mkl_api(int,dfieditval,(DFTaskPtr *, const MKL_INT *, const MKL_INT *));
  76. _MKL_API(int,DFIEDITVAL,(DFTaskPtr *, const MKL_INT *, const MKL_INT *));
  77. /* Modifies a pointer to the memory representing a coordinate of the data
  78. stored in matrix format (function or spline coefficients) */
  79. _Mkl_Api(int,dfsEditIdxPtr,(DFTaskPtr , const MKL_INT , const MKL_INT , const float []));
  80. _mkl_api(int,dfseditidxptr,(DFTaskPtr *, const MKL_INT *, const MKL_INT *, const float []));
  81. _MKL_API(int,DFSEDITIDXPTR,(DFTaskPtr *, const MKL_INT *, const MKL_INT *, const float []));
  82. _Mkl_Api(int,dfdEditIdxPtr,(DFTaskPtr , const MKL_INT , const MKL_INT , const double []));
  83. _mkl_api(int,dfdeditidxptr,(DFTaskPtr *, const MKL_INT *, const MKL_INT *, const double []));
  84. _MKL_API(int,DFDEDITIDXPTR,(DFTaskPtr *, const MKL_INT *, const MKL_INT *, const double []));
  85. /* Modifies parameters of Piece-wise Polynomial (PP) spline */
  86. _Mkl_Api(int,dfsEditPPSpline1D,(DFTaskPtr , const MKL_INT , const MKL_INT , const MKL_INT , const float [], const MKL_INT , const float [], const float [], const MKL_INT ));
  87. _mkl_api(int,dfseditppspline1d,(DFTaskPtr *, const MKL_INT *, const MKL_INT *, const MKL_INT *, const float [], const MKL_INT *, const float [], const float [], const MKL_INT *));
  88. _MKL_API(int,DFSEDITPPSPLINE1D,(DFTaskPtr *, const MKL_INT *, const MKL_INT *, const MKL_INT *, const float [], const MKL_INT *, const float [], const float [], const MKL_INT *));
  89. _Mkl_Api(int,dfdEditPPSpline1D,(DFTaskPtr , const MKL_INT , const MKL_INT , const MKL_INT , const double [], const MKL_INT , const double [], const double [], const MKL_INT ));
  90. _mkl_api(int,dfdeditppspline1d,(DFTaskPtr *, const MKL_INT *, const MKL_INT *, const MKL_INT *, const double [], const MKL_INT *, const double [], const double [], const MKL_INT *));
  91. _MKL_API(int,DFDEDITPPSPLINE1D,(DFTaskPtr *, const MKL_INT *, const MKL_INT *, const MKL_INT *, const double [], const MKL_INT *, const double [], const double [], const MKL_INT *));
  92. /*
  93. //++
  94. // DF TASK QUERYING FUNCTION DECLARATIONS.
  95. //--
  96. */
  97. /* Reads a pointer to an array held in a Data Fitting task descriptor */
  98. _Mkl_Api(int,dfsQueryPtr,(DFTaskPtr , const MKL_INT , float **));
  99. _mkl_api(int,dfsqueryptr,(DFTaskPtr *, const MKL_INT *, float **));
  100. _MKL_API(int,DFSQUERYPTR,(DFTaskPtr *, const MKL_INT *, float **));
  101. _Mkl_Api(int,dfdQueryPtr,(DFTaskPtr , const MKL_INT , double **));
  102. _mkl_api(int,dfdqueryptr,(DFTaskPtr *, const MKL_INT *, double **));
  103. _MKL_API(int,DFDQUERYPTR,(DFTaskPtr *, const MKL_INT *, double **));
  104. /* Reads a parameter value in a Data Fitting task descriptor */
  105. _Mkl_Api(int,dfiQueryVal,(DFTaskPtr , const MKL_INT , MKL_INT *));
  106. _mkl_api(int,dfiqueryval,(DFTaskPtr *, const MKL_INT *, MKL_INT *));
  107. _MKL_API(int,DFIQUERYVAL,(DFTaskPtr *, const MKL_INT *, MKL_INT *));
  108. /* Reads a pointer to the memory representing a coordinate of the data
  109. stored in matrix format (function or spline coefficients) */
  110. _Mkl_Api(int,dfsQueryIdxPtr,(DFTaskPtr , const MKL_INT , const MKL_INT , float **));
  111. _mkl_api(int,dfsqueryidxptr,(DFTaskPtr *, const MKL_INT *, const MKL_INT *, float **));
  112. _MKL_API(int,DFSQUERYIDXPTR,(DFTaskPtr *, const MKL_INT *, const MKL_INT *, float **));
  113. _Mkl_Api(int,dfdQueryIdxPtr,(DFTaskPtr , const MKL_INT , const MKL_INT , double **));
  114. _mkl_api(int,dfdqueryidxptr,(DFTaskPtr *, const MKL_INT *, const MKL_INT *, double **));
  115. _MKL_API(int,DFDQUERYIDXPTR,(DFTaskPtr *, const MKL_INT *, const MKL_INT *, double **));
  116. /*
  117. //++
  118. // DF COMPUTE FUNCTION DECLARATIONS.
  119. //--
  120. */
  121. /* Spline coefficients constructor */
  122. _Mkl_Api(int,dfsConstruct1D,(DFTaskPtr , const MKL_INT , const MKL_INT ));
  123. _mkl_api(int,dfsconstruct1d,(DFTaskPtr *, const MKL_INT *, const MKL_INT *));
  124. _MKL_API(int,DFSCONSTRUCT1D,(DFTaskPtr *, const MKL_INT *, const MKL_INT *));
  125. _Mkl_Api(int,dfdConstruct1D,(DFTaskPtr , const MKL_INT , const MKL_INT ));
  126. _mkl_api(int,dfdconstruct1d,(DFTaskPtr *, const MKL_INT *, const MKL_INT *));
  127. _MKL_API(int,DFDCONSTRUCT1D,(DFTaskPtr *, const MKL_INT *, const MKL_INT *));
  128. /* Spline-based computations: search, interpolation and integration with call back support */
  129. _Mkl_Api(int,dfsInterpolateEx1D,(DFTaskPtr , const MKL_INT , const MKL_INT , const MKL_INT , const float [], const MKL_INT , const MKL_INT , const MKL_INT [], const float [], float [], const MKL_INT , MKL_INT [], const dfsInterpCallBack , const void *, const dfsInterpCallBack , const void *, const dfsInterpCallBack , const void *, const dfsSearchCellsCallBack , const void *));
  130. _mkl_api(int,dfsinterpolateex1d,(DFTaskPtr *, const MKL_INT *, const MKL_INT *, const MKL_INT *, const float [], const MKL_INT *, const MKL_INT *, const MKL_INT [], const float [], float [], const MKL_INT *, MKL_INT [], const dfsInterpCallBack , const void *, const dfsInterpCallBack , const void *, const dfsInterpCallBack , const void *, const dfsSearchCellsCallBack , const void *));
  131. _MKL_API(int,DFSINTERPOLATEEX1D,(DFTaskPtr *, const MKL_INT *, const MKL_INT *, const MKL_INT *, const float [], const MKL_INT *, const MKL_INT *, const MKL_INT [], const float [], float [], const MKL_INT *, MKL_INT [], const dfsInterpCallBack , const void *, const dfsInterpCallBack , const void *, const dfsInterpCallBack , const void *, const dfsSearchCellsCallBack , const void *));
  132. _Mkl_Api(int,dfdInterpolateEx1D,(DFTaskPtr , const MKL_INT , const MKL_INT , const MKL_INT , const double [], const MKL_INT , const MKL_INT , const MKL_INT [], const double [], double [], const MKL_INT , MKL_INT [], const dfdInterpCallBack , const void *, const dfdInterpCallBack , const void *, const dfdInterpCallBack , const void *, const dfdSearchCellsCallBack , const void *));
  133. _mkl_api(int,dfdinterpolateex1d,(DFTaskPtr *, const MKL_INT *, const MKL_INT *, const MKL_INT *, const double [], const MKL_INT *, const MKL_INT *, const MKL_INT [], const double [], double [], const MKL_INT *, MKL_INT [], const dfdInterpCallBack , const void *, const dfdInterpCallBack , const void *, const dfdInterpCallBack , const void *, const dfdSearchCellsCallBack , const void *));
  134. _MKL_API(int,DFDINTERPOLATEEX1D,(DFTaskPtr *, const MKL_INT *, const MKL_INT *, const MKL_INT *, const double [], const MKL_INT *, const MKL_INT *, const MKL_INT [], const double [], double [], const MKL_INT *, MKL_INT [], const dfdInterpCallBack , const void *, const dfdInterpCallBack , const void *, const dfdInterpCallBack , const void *, const dfdSearchCellsCallBack , const void *));
  135. /* Spline-based computations: search, interpolation and integration */
  136. _Mkl_Api(int,dfsInterpolate1D,(DFTaskPtr , const MKL_INT , const MKL_INT , const MKL_INT , const float [], const MKL_INT , const MKL_INT , const MKL_INT [], const float [], float [], const MKL_INT , MKL_INT [] ));
  137. _mkl_api(int,dfsinterpolate1d,(DFTaskPtr *, const MKL_INT *, const MKL_INT *, const MKL_INT *, const float [], const MKL_INT *, const MKL_INT *, const MKL_INT [], const float [], float [], const MKL_INT *, MKL_INT [] ));
  138. _MKL_API(int,DFSINTERPOLATE1D,(DFTaskPtr *, const MKL_INT *, const MKL_INT *, const MKL_INT *, const float [], const MKL_INT *, const MKL_INT *, const MKL_INT [], const float [], float [], const MKL_INT *, MKL_INT [] ));
  139. _Mkl_Api(int,dfdInterpolate1D,(DFTaskPtr , const MKL_INT , const MKL_INT , const MKL_INT , const double [], const MKL_INT , const MKL_INT , const MKL_INT [], const double [], double [], const MKL_INT , MKL_INT [] ));
  140. _mkl_api(int,dfdinterpolate1d,(DFTaskPtr *, const MKL_INT *, const MKL_INT *, const MKL_INT *, const double [], const MKL_INT *, const MKL_INT *, const MKL_INT [], const double [], double [], const MKL_INT *, MKL_INT [] ));
  141. _MKL_API(int,DFDINTERPOLATE1D,(DFTaskPtr *, const MKL_INT *, const MKL_INT *, const MKL_INT *, const double [], const MKL_INT *, const MKL_INT *, const MKL_INT [], const double [], double [], const MKL_INT *, MKL_INT [] ));
  142. /* Cells search with call back support */
  143. _Mkl_Api(int,dfsSearchCellsEx1D,(DFTaskPtr , const MKL_INT , const MKL_INT , const float [], const MKL_INT , const float [], MKL_INT [], const dfsSearchCellsCallBack , const void * ));
  144. _mkl_api(int,dfssearchcellsex1d,(DFTaskPtr *, const MKL_INT *, const MKL_INT *, const float [], const MKL_INT *, const float [], MKL_INT [], const dfsSearchCellsCallBack , const void * ));
  145. _MKL_API(int,DFSSEARCHCELLSEX1D,(DFTaskPtr *, const MKL_INT *, const MKL_INT *, const float [], const MKL_INT *, const float [], MKL_INT [], const dfsSearchCellsCallBack , const void * ));
  146. _Mkl_Api(int,dfdSearchCellsEx1D,(DFTaskPtr , const MKL_INT , const MKL_INT , const double [], const MKL_INT , const double [], MKL_INT [], const dfdSearchCellsCallBack , const void * ));
  147. _mkl_api(int,dfdsearchcellsex1d,(DFTaskPtr *, const MKL_INT *, const MKL_INT *, const double [], const MKL_INT *, const double [], MKL_INT [], const dfdSearchCellsCallBack , const void * ));
  148. _MKL_API(int,DFDSEARCHCELLSEX1D,(DFTaskPtr *, const MKL_INT *, const MKL_INT *, const double [], const MKL_INT *, const double [], MKL_INT [], const dfdSearchCellsCallBack , const void * ));
  149. /* Cells search */
  150. _Mkl_Api(int,dfsSearchCells1D,(DFTaskPtr , const MKL_INT , const MKL_INT , const float [], const MKL_INT , const float [], MKL_INT [] ));
  151. _mkl_api(int,dfssearchcells1d,(DFTaskPtr *, const MKL_INT *, const MKL_INT *, const float [], const MKL_INT *, const float [], MKL_INT [] ));
  152. _MKL_API(int,DFSSEARCHCELLS1D,(DFTaskPtr *, const MKL_INT *, const MKL_INT *, const float [], const MKL_INT *, const float [], MKL_INT [] ));
  153. _Mkl_Api(int,dfdSearchCells1D,(DFTaskPtr , const MKL_INT , const MKL_INT , const double [], const MKL_INT , const double [], MKL_INT [] ));
  154. _mkl_api(int,dfdsearchcells1d,(DFTaskPtr *, const MKL_INT *, const MKL_INT *, const double [], const MKL_INT *, const double [], MKL_INT [] ));
  155. _MKL_API(int,DFDSEARCHCELLS1D,(DFTaskPtr *, const MKL_INT *, const MKL_INT *, const double [], const MKL_INT *, const double [], MKL_INT [] ));
  156. /* Spline-based integration */
  157. _Mkl_Api(int,dfsIntegrate1D,(DFTaskPtr , const MKL_INT , const MKL_INT , const float [], const MKL_INT , const float [], const MKL_INT , const float [], const float [], float [], const MKL_INT ));
  158. _mkl_api(int,dfsintegrate1d,(DFTaskPtr *, const MKL_INT *, const MKL_INT *, const float [], const MKL_INT *, const float [], const MKL_INT *, const float [], const float [], float [], const MKL_INT *));
  159. _MKL_API(int,DFSINTEGRATE1D,(DFTaskPtr *, const MKL_INT *, const MKL_INT *, const float [], const MKL_INT *, const float [], const MKL_INT *, const float [], const float [], float [], const MKL_INT *));
  160. _Mkl_Api(int,dfdIntegrate1D,(DFTaskPtr , const MKL_INT , const MKL_INT , const double [], const MKL_INT , const double [], const MKL_INT , const double [], const double [], double [], const MKL_INT ));
  161. _mkl_api(int,dfdintegrate1d,(DFTaskPtr *, const MKL_INT *, const MKL_INT *, const double [], const MKL_INT *, const double [], const MKL_INT *, const double [], const double [], double [], const MKL_INT *));
  162. _MKL_API(int,DFDINTEGRATE1D,(DFTaskPtr *, const MKL_INT *, const MKL_INT *, const double [], const MKL_INT *, const double [], const MKL_INT *, const double [], const double [], double [], const MKL_INT *));
  163. /* Spline-based integration with call back support */
  164. _Mkl_Api(int,dfsIntegrateEx1D,(DFTaskPtr , const MKL_INT , const MKL_INT , const float [], const MKL_INT , const float [], const MKL_INT , const float [], const float [], float [], const MKL_INT , const dfsIntegrCallBack , const void *, const dfsIntegrCallBack , const void *, const dfsIntegrCallBack , const void *, const dfsSearchCellsCallBack , const void *));
  165. _mkl_api(int,dfsintegrateex1d,(DFTaskPtr *, const MKL_INT *, const MKL_INT *, const float [], const MKL_INT *, const float [], const MKL_INT *, const float [], const float [], float [], const MKL_INT *, const dfsIntegrCallBack , const void *, const dfsIntegrCallBack , const void *, const dfsIntegrCallBack , const void *, const dfsSearchCellsCallBack , const void *));
  166. _MKL_API(int,DFSINTEGRATEEX1D,(DFTaskPtr *, const MKL_INT *, const MKL_INT *, const float [], const MKL_INT *, const float [], const MKL_INT *, const float [], const float [], float [], const MKL_INT *, const dfsIntegrCallBack , const void *, const dfsIntegrCallBack , const void *, const dfsIntegrCallBack , const void *, const dfsSearchCellsCallBack , const void *));
  167. _Mkl_Api(int,dfdIntegrateEx1D,(DFTaskPtr , const MKL_INT , const MKL_INT , const double [], const MKL_INT , const double [], const MKL_INT , const double [], const double [], double [], const MKL_INT , const dfdIntegrCallBack , const void *, const dfdIntegrCallBack , const void *, const dfdIntegrCallBack , const void *, const dfdSearchCellsCallBack , const void *));
  168. _mkl_api(int,dfdintegrateex1d,(DFTaskPtr *, const MKL_INT *, const MKL_INT *, const double [], const MKL_INT *, const double [], const MKL_INT *, const double [], const double [], double [], const MKL_INT *, const dfdIntegrCallBack , const void *, const dfdIntegrCallBack , const void *, const dfdIntegrCallBack , const void *, const dfdSearchCellsCallBack , const void *));
  169. _MKL_API(int,DFDINTEGRATEEX1D,(DFTaskPtr *, const MKL_INT *, const MKL_INT *, const double [], const MKL_INT *, const double [], const MKL_INT *, const double [], const double [], double [], const MKL_INT *, const dfdIntegrCallBack , const void *, const dfdIntegrCallBack , const void *, const dfdIntegrCallBack , const void *, const dfdSearchCellsCallBack , const void *));
  170. /*
  171. //++
  172. // DF DESTRUCTOR FUNCTION DECLARATIONS.
  173. //--
  174. */
  175. _Mkl_Api(int,dfDeleteTask,(DFTaskPtr *));
  176. _mkl_api(int,dfdeletetask,(DFTaskPtr *));
  177. _MKL_API(int,DFDELETETASK,(DFTaskPtr *));
  178. #ifdef __cplusplus
  179. }
  180. #endif /* __cplusplus */
  181. #endif /* __MKL_DF_FUNCTIONS_H__ */