mkl_vsl_functions_64.h 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205
  1. /* file: mkl_vsl_functions_64.h */
  2. /*******************************************************************************
  3. * Copyright 2023 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 VSL function declarations _64
  18. //--
  19. */
  20. #ifndef __MKL_VSL_FUNCTIONS_64_H__
  21. #define __MKL_VSL_FUNCTIONS_64_H__
  22. #include "mkl_vsl_types.h"
  23. #ifndef NOTHROW
  24. #ifdef __cplusplus
  25. #if __cplusplus > 199711L
  26. #define NOTHROW noexcept
  27. #else
  28. #define NOTHROW throw()
  29. #endif
  30. #else
  31. #define NOTHROW
  32. #endif
  33. #endif
  34. #ifdef __cplusplus
  35. extern "C" {
  36. #endif /* __cplusplus */
  37. /*
  38. //++
  39. // EXTERNAL API MACROS.
  40. // Used to construct VSL function declaration. Change them if you are going to
  41. // provide different API for VSL functions.
  42. //--
  43. */
  44. #if !defined(_Mkl_Api)
  45. #define _Mkl_Api(rtype,name,arg) extern rtype name arg
  46. #endif
  47. #if !defined(_mkl_api)
  48. #define _mkl_api(rtype,name,arg) extern rtype name##_ arg
  49. #endif
  50. #if !defined(_MKL_API)
  51. #define _MKL_API(rtype,name,arg) extern rtype name##_ arg
  52. #endif
  53. /* VSL routines with MKL_INT64 input parameters */
  54. /* Note: ILP64 interfaces are not supported on IA-32 architecture */
  55. #if defined(_WIN64) || defined(__MINGW64__) || defined(__x86_64__)
  56. /*
  57. //++
  58. // VSL CONTINUOUS DISTRIBUTION GENERATOR FUNCTION DECLARATIONS.
  59. //--
  60. */
  61. /* Cauchy distribution */
  62. _Mkl_Api(int,vdRngCauchy_64,(const MKL_INT64 , VSLStreamStatePtr , const MKL_INT64 , double [], const double , const double ) NOTHROW);
  63. _Mkl_Api(int,vsRngCauchy_64,(const MKL_INT64 , VSLStreamStatePtr , const MKL_INT64 , float [], const float , const float ) NOTHROW);
  64. /* Uniform distribution */
  65. _Mkl_Api(int,vdRngUniform_64,(const MKL_INT64 , VSLStreamStatePtr , const MKL_INT64 , double [], const double , const double ) NOTHROW);
  66. _Mkl_Api(int,vsRngUniform_64,(const MKL_INT64 , VSLStreamStatePtr , const MKL_INT64 , float [], const float , const float ) NOTHROW);
  67. /* Gaussian distribution */
  68. _Mkl_Api(int,vdRngGaussian_64,(const MKL_INT64 , VSLStreamStatePtr , const MKL_INT64 , double [], const double , const double ) NOTHROW);
  69. _Mkl_Api(int,vsRngGaussian_64,(const MKL_INT64 , VSLStreamStatePtr , const MKL_INT64 , float [], const float , const float ) NOTHROW);
  70. /* GaussianMV distribution */
  71. _Mkl_Api(int,vdRngGaussianMV_64,(const MKL_INT64 , VSLStreamStatePtr , const MKL_INT64 , double [], const MKL_INT64 , const MKL_INT64 , const double *, const double *) NOTHROW);
  72. _Mkl_Api(int,vsRngGaussianMV_64,(const MKL_INT64 , VSLStreamStatePtr , const MKL_INT64 , float [], const MKL_INT64 , const MKL_INT64 , const float *, const float * ) NOTHROW);
  73. /* Exponential distribution */
  74. _Mkl_Api(int,vdRngExponential_64,(const MKL_INT64 , VSLStreamStatePtr , const MKL_INT64 , double [], const double , const double ) NOTHROW);
  75. _Mkl_Api(int,vsRngExponential_64,(const MKL_INT64 , VSLStreamStatePtr , const MKL_INT64 , float [], const float , const float ) NOTHROW);
  76. /* Laplace distribution */
  77. _Mkl_Api(int,vdRngLaplace_64,(const MKL_INT64 , VSLStreamStatePtr , const MKL_INT64 , double [], const double , const double ) NOTHROW);
  78. _Mkl_Api(int,vsRngLaplace_64,(const MKL_INT64 , VSLStreamStatePtr , const MKL_INT64 , float [], const float , const float ) NOTHROW);
  79. /* Weibull distribution */
  80. _Mkl_Api(int,vdRngWeibull_64,(const MKL_INT64 , VSLStreamStatePtr , const MKL_INT64 , double [], const double , const double , const double ) NOTHROW);
  81. _Mkl_Api(int,vsRngWeibull_64,(const MKL_INT64 , VSLStreamStatePtr , const MKL_INT64 , float [], const float , const float , const float ) NOTHROW);
  82. /* Rayleigh distribution */
  83. _Mkl_Api(int,vdRngRayleigh_64,(const MKL_INT64 , VSLStreamStatePtr , const MKL_INT64 , double [], const double , const double ) NOTHROW);
  84. _Mkl_Api(int,vsRngRayleigh_64,(const MKL_INT64 , VSLStreamStatePtr , const MKL_INT64 , float [], const float , const float ) NOTHROW);
  85. /* Lognormal distribution */
  86. _Mkl_Api(int,vdRngLognormal_64,(const MKL_INT64 , VSLStreamStatePtr , const MKL_INT64 , double [], const double , const double , const double , const double ) NOTHROW);
  87. _Mkl_Api(int,vsRngLognormal_64,(const MKL_INT64 , VSLStreamStatePtr , const MKL_INT64 , float [], const float , const float , const float , const float ) NOTHROW);
  88. /* Gumbel distribution */
  89. _Mkl_Api(int,vdRngGumbel_64,(const MKL_INT64 , VSLStreamStatePtr , const MKL_INT64 , double [], const double , const double ) NOTHROW);
  90. _Mkl_Api(int,vsRngGumbel_64,(const MKL_INT64 , VSLStreamStatePtr , const MKL_INT64 , float [], const float , const float ) NOTHROW);
  91. /* Gamma distribution */
  92. _Mkl_Api(int,vdRngGamma_64,(const MKL_INT64 , VSLStreamStatePtr , const MKL_INT64 , double [], const double , const double , const double ) NOTHROW);
  93. _Mkl_Api(int,vsRngGamma_64,(const MKL_INT64 , VSLStreamStatePtr , const MKL_INT64 , float [], const float , const float , const float ) NOTHROW);
  94. /* Beta distribution */
  95. _Mkl_Api(int,vdRngBeta_64,(const MKL_INT64 , VSLStreamStatePtr , const MKL_INT64 , double [], const double , const double , const double , const double ) NOTHROW);
  96. _Mkl_Api(int,vsRngBeta_64,(const MKL_INT64 , VSLStreamStatePtr , const MKL_INT64 , float [], const float , const float , const float , const float ) NOTHROW);
  97. /* Chi-square distribution */
  98. _Mkl_Api(int,vdRngChiSquare_64,(const MKL_INT64 , VSLStreamStatePtr , const MKL_INT64 , double [], const int ) NOTHROW);
  99. _Mkl_Api(int,vsRngChiSquare_64,(const MKL_INT64 , VSLStreamStatePtr , const MKL_INT64 , float [], const int ) NOTHROW);
  100. /*
  101. //++
  102. // VSL DISCRETE DISTRIBUTION GENERATOR FUNCTION DECLARATIONS.
  103. //--
  104. */
  105. /* Bernoulli distribution */
  106. _Mkl_Api(int,viRngBernoulli_64,(const MKL_INT64 , VSLStreamStatePtr , const MKL_INT64 , int [], const double ) NOTHROW);
  107. /* Uniform distribution */
  108. _Mkl_Api(int,viRngUniform_64,(const MKL_INT64 , VSLStreamStatePtr , const MKL_INT64 , int [], const int , const int ) NOTHROW);
  109. /* UniformBits distribution */
  110. _Mkl_Api(int,viRngUniformBits_64,(const MKL_INT64 , VSLStreamStatePtr , const MKL_INT64 , unsigned int []) NOTHROW);
  111. /* UniformBits32 distribution */
  112. _Mkl_Api(int,viRngUniformBits32_64,(const MKL_INT64 , VSLStreamStatePtr , const MKL_INT64 , unsigned int []) NOTHROW);
  113. /* UniformBits64 distribution */
  114. _Mkl_Api(int,viRngUniformBits64_64,(const MKL_INT64 , VSLStreamStatePtr , const MKL_INT64 , unsigned MKL_INT64 []) NOTHROW);
  115. /* Geometric distribution */
  116. _Mkl_Api(int,viRngGeometric_64,(const MKL_INT64 , VSLStreamStatePtr , const MKL_INT64 , int [], const double ) NOTHROW);
  117. /* Binomial distribution */
  118. _Mkl_Api(int,viRngBinomial_64,(const MKL_INT64 , VSLStreamStatePtr , const MKL_INT64 , int [], const int , const double ) NOTHROW);
  119. /* Multinomial distribution */
  120. _Mkl_Api(int,viRngMultinomial_64,(const MKL_INT64 , VSLStreamStatePtr , const MKL_INT64 , int [], const int , const int , const double []) NOTHROW);
  121. /* Hypergeometric distribution */
  122. _Mkl_Api(int,viRngHypergeometric_64,(const MKL_INT64 , VSLStreamStatePtr , const MKL_INT64 , int [], const int , const int , const int ) NOTHROW);
  123. /* Negbinomial distribution */
  124. _Mkl_Api(int,viRngNegbinomial_64,(const MKL_INT64 , VSLStreamStatePtr , const MKL_INT64 , int [], const double , const double ) NOTHROW);
  125. _Mkl_Api(int,viRngNegBinomial_64,(const MKL_INT64 , VSLStreamStatePtr , const MKL_INT64 , int [], const double , const double ) NOTHROW);
  126. /* Poisson distribution */
  127. _Mkl_Api(int,viRngPoisson_64,(const MKL_INT64 , VSLStreamStatePtr , const MKL_INT64 , int [], const double ) NOTHROW);
  128. /* PoissonV distribution */
  129. _Mkl_Api(int,viRngPoissonV_64,(const MKL_INT64 , VSLStreamStatePtr , const MKL_INT64 , int [], const double []) NOTHROW);
  130. /*
  131. //++
  132. // VSL SERVICE FUNCTION DECLARATIONS.
  133. //--
  134. */
  135. /* NewStream - stream creation/initialization */
  136. _Mkl_Api(int,vslNewStream_64,(VSLStreamStatePtr* , const MKL_INT64 , const MKL_UINT64 ) NOTHROW);
  137. /* NewStreamEx - advanced stream creation/initialization */
  138. _Mkl_Api(int,vslNewStreamEx_64,(VSLStreamStatePtr* , const MKL_INT64 , const MKL_INT64 , const unsigned int[]) NOTHROW);
  139. /*
  140. //++
  141. // SUMMARARY STATTISTICS LIBRARY ROUTINES
  142. //--
  143. */
  144. /*
  145. // Task constructors
  146. */
  147. _Mkl_Api(int,vsldSSNewTask_64,(VSLSSTaskPtr* , const MKL_INT64* , const MKL_INT64* , const MKL_INT64* , const double [], const double [], const MKL_INT64 []) NOTHROW);
  148. _Mkl_Api(int,vslsSSNewTask_64,(VSLSSTaskPtr* , const MKL_INT64* , const MKL_INT64* , const MKL_INT64* , const float [], const float [], const MKL_INT64 []) NOTHROW);
  149. #endif
  150. #ifdef __cplusplus
  151. }
  152. #endif /* __cplusplus */
  153. #endif /* __MKL_VSL_FUNCTIONS_64_H__ */