mkl_pardiso.h 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. /*******************************************************************************
  2. * Copyright 2004-2022 Intel Corporation.
  3. *
  4. * This software and the related documents are Intel copyrighted materials, and
  5. * your use of them is governed by the express license under which they were
  6. * provided to you (License). Unless the License provides otherwise, you may not
  7. * use, modify, copy, publish, distribute, disclose or transmit this software or
  8. * the related documents without Intel's prior written permission.
  9. *
  10. * This software and the related documents are provided as is, with no express
  11. * or implied warranties, other than those that are expressly stated in the
  12. * License.
  13. *******************************************************************************/
  14. /*
  15. * Content : oneMKL PARDISO C header file
  16. *
  17. * Contains interface to PARDISO.
  18. *
  19. ********************************************************************************
  20. */
  21. #if !defined( __MKL_PARDISO_H )
  22. #define __MKL_PARDISO_H
  23. #include "mkl_dss.h"
  24. #ifdef __GNUC__
  25. #define MKL_DEPRECATED __attribute__((deprecated))
  26. #elif defined(_MSC_VER)
  27. #define MKL_DEPRECATED __declspec(deprecated)
  28. #else
  29. #define MKL_DEPRECATED
  30. #endif
  31. #ifdef __cplusplus
  32. extern "C" {
  33. #endif /* __cplusplus */
  34. #if !defined(MKL_CALL_CONV)
  35. # if defined(__MIC__) || defined(__TARGET_ARCH_MIC)
  36. # define MKL_CALL_CONV
  37. # else
  38. # define MKL_CALL_CONV __cdecl
  39. # endif
  40. #endif
  41. #if !defined(_mkl_api)
  42. #define _mkl_api(rtype,name,arg) extern rtype MKL_CALL_CONV name arg
  43. #endif
  44. #if !defined(_MKL_API)
  45. #define _MKL_API(rtype,name,arg) extern rtype MKL_CALL_CONV name arg
  46. #endif
  47. #if !defined(_Mkl_Deprecated_Api)
  48. #define _Mkl_Deprecated_Api(rtype,name,arg) extern MKL_DEPRECATED rtype MKL_CALL_CONV name arg;
  49. #endif
  50. _mkl_api(void,pardiso,(
  51. _MKL_DSS_HANDLE_t, const MKL_INT *, const MKL_INT *, const MKL_INT *,
  52. const MKL_INT *, const MKL_INT *, const void *, const MKL_INT *,
  53. const MKL_INT *, MKL_INT *, const MKL_INT *, MKL_INT *,
  54. const MKL_INT *, void *, void *, MKL_INT *));
  55. _MKL_API(void,PARDISO,(
  56. _MKL_DSS_HANDLE_t, const MKL_INT *, const MKL_INT *, const MKL_INT *,
  57. const MKL_INT *, const MKL_INT *, const void *, const MKL_INT *,
  58. const MKL_INT *, MKL_INT *, const MKL_INT *, MKL_INT *,
  59. const MKL_INT *, void *, void *, MKL_INT *));
  60. _mkl_api(void,pardisoinit,(
  61. _MKL_DSS_HANDLE_t, const MKL_INT *, MKL_INT *));
  62. _MKL_API(void,PARDISOINIT,(
  63. _MKL_DSS_HANDLE_t, const MKL_INT *, MKL_INT *));
  64. _mkl_api(void,pardiso_64,(
  65. _MKL_DSS_HANDLE_t, const long long int *, const long long int *, const long long int *,
  66. const long long int *, const long long int *, const void *, const long long int *,
  67. const long long int *, long long int *, const long long int *, long long int *,
  68. const long long int *, void *, void *, long long int *));
  69. _MKL_API(void,PARDISO_64,(
  70. _MKL_DSS_HANDLE_t, const long long int *, const long long int *, const long long int *,
  71. const long long int *, const long long int *, const void *, const long long int *,
  72. const long long int *, long long int *, const long long int *, long long int *,
  73. const long long int *, void *, void *, long long int *));
  74. _mkl_api(void,pardiso_handle_store_64,( _MKL_DSS_HANDLE_t, const char*, MKL_INT *));
  75. _MKL_API(void,PARDISO_HANDLE_STORE_64,( _MKL_DSS_HANDLE_t, const char*, MKL_INT *));
  76. _mkl_api(void,pardiso_handle_restore_64,( _MKL_DSS_HANDLE_t, const char*, MKL_INT *));
  77. _MKL_API(void,PARDISO_HANDLE_RESTORE_64,( _MKL_DSS_HANDLE_t, const char*, MKL_INT *));
  78. _mkl_api(void,pardiso_handle_delete_64,( const char*, MKL_INT *));
  79. _MKL_API(void,PARDISO_HANDLE_DELETE_64,( const char*, MKL_INT *));
  80. /* Error classes */
  81. #define PARDISO_NO_ERROR 0
  82. #define PARDISO_UNIMPLEMENTED -101
  83. #define PARDISO_NULL_HANDLE -102
  84. #define PARDISO_MEMORY_ERROR -103
  85. _mkl_api(void,pardiso_handle_store,( _MKL_DSS_HANDLE_t, const char*, MKL_INT *));
  86. _MKL_API(void,PARDISO_HANDLE_STORE,( _MKL_DSS_HANDLE_t, const char*, MKL_INT *));
  87. _mkl_api(void,pardiso_handle_restore,( _MKL_DSS_HANDLE_t, const char*, MKL_INT *));
  88. _MKL_API(void,PARDISO_HANDLE_RESTORE,( _MKL_DSS_HANDLE_t, const char*, MKL_INT *));
  89. _mkl_api(void,pardiso_handle_delete,( const char*, MKL_INT *));
  90. _MKL_API(void,PARDISO_HANDLE_DELETE,( const char*, MKL_INT *));
  91. /* oneMKL Progress routine */
  92. #ifndef _MKL_PARDISO_PIVOT_H_
  93. #define _MKL_PARDISO_PIVOT_H_
  94. _MKL_API(int,MKL_PARDISO_PIVOT, ( const double* aii, double* bii, const double* eps ));
  95. _MKL_API(int,MKL_PARDISO_PIVOT_,( const double* aii, double* bii, const double* eps ));
  96. _mkl_api(int,mkl_pardiso_pivot, ( const double* aii, double* bii, const double* eps ));
  97. _mkl_api(int,mkl_pardiso_pivot_,( const double* aii, double* bii, const double* eps ));
  98. #endif /* _MKL_PARDISO_PIVOT_H_ */
  99. _mkl_api(void,pardiso_getdiag,( const _MKL_DSS_HANDLE_t, void *, void *, const MKL_INT *, MKL_INT * ));
  100. _MKL_API(void,PARDISO_GETDIAG,( const _MKL_DSS_HANDLE_t, void *, void *, const MKL_INT *, MKL_INT * ));
  101. _mkl_api(void,pardiso_export,( void *, void *, MKL_INT *, MKL_INT *, const MKL_INT *, const MKL_INT *, MKL_INT * ));
  102. _MKL_API(void,PARDISO_EXPORT,( void *, void *, MKL_INT *, MKL_INT *, const MKL_INT *, const MKL_INT *, MKL_INT * ));
  103. #ifdef __cplusplus
  104. }
  105. #endif /* __cplusplus */
  106. #endif