43#ifndef BACKEND_IFACE_RANDOM_H  
   44#define BACKEND_IFACE_RANDOM_H 
   65template <
typename _DataType>
 
   66INP_DLLEXPORT DPCTLSyclEventRef
 
   72                    const DPCTLEventVectorRef dep_event_vec_ref);
 
   74template <
typename _DataType>
 
   92template <
typename _DataType>
 
   93INP_DLLEXPORT DPCTLSyclEventRef
 
   99                        const DPCTLEventVectorRef dep_event_vec_ref);
 
  101template <
typename _DataType>
 
  118template <
typename _DataType>
 
  119INP_DLLEXPORT DPCTLSyclEventRef
 
  124                         const DPCTLEventVectorRef dep_event_vec_ref);
 
  126template <
typename _DataType>
 
  141template <
typename _DataType>
 
  142INP_DLLEXPORT DPCTLSyclEventRef
 
  145                           const _DataType beta,
 
  147                           const DPCTLEventVectorRef dep_event_vec_ref);
 
  149template <
typename _DataType>
 
  151                                          const _DataType beta,
 
  166template <
typename _DataType>
 
  167INP_DLLEXPORT DPCTLSyclEventRef
 
  170                 const _DataType df_num,
 
  171                 const _DataType df_den,
 
  173                 const DPCTLEventVectorRef dep_event_vec_ref);
 
  175template <
typename _DataType>
 
  177                                const _DataType df_num,
 
  178                                const _DataType df_den,
 
  193template <
typename _DataType>
 
  194INP_DLLEXPORT DPCTLSyclEventRef
 
  197                     const _DataType shape,
 
  198                     const _DataType scale,
 
  200                     const DPCTLEventVectorRef dep_event_vec_ref);
 
  202template <
typename _DataType>
 
  204                                    const _DataType shape,
 
  205                                    const _DataType scale,
 
  220template <
typename _DataType>
 
  221INP_DLLEXPORT DPCTLSyclEventRef
 
  224                        const _DataType mean,
 
  225                        const _DataType stddev,
 
  227                        const DPCTLEventVectorRef dep_event_vec_ref);
 
  229template <
typename _DataType>
 
  231                                       const _DataType mean,
 
  232                                       const _DataType stddev,
 
  247template <
typename _DataType>
 
  248INP_DLLEXPORT DPCTLSyclEventRef
 
  253                         const DPCTLEventVectorRef dep_event_vec_ref);
 
  255template <
typename _DataType>
 
  273template <
typename _DataType>
 
  274INP_DLLEXPORT DPCTLSyclEventRef
 
  280                      const DPCTLEventVectorRef dep_event_vec_ref);
 
  282template <
typename _DataType>
 
  301template <
typename _DataType>
 
  302INP_DLLEXPORT DPCTLSyclEventRef
 
  309                              const DPCTLEventVectorRef dep_event_vec_ref);
 
  311template <
typename _DataType>
 
  330template <
typename _DataType>
 
  331INP_DLLEXPORT DPCTLSyclEventRef
 
  337                       const DPCTLEventVectorRef dep_event_vec_ref);
 
  339template <
typename _DataType>
 
  357template <
typename _DataType>
 
  358INP_DLLEXPORT DPCTLSyclEventRef
 
  364                        const DPCTLEventVectorRef dep_event_vec_ref);
 
  366template <
typename _DataType>
 
  384template <
typename _DataType>
 
  385INP_DLLEXPORT DPCTLSyclEventRef
 
  388                         const _DataType mean,
 
  389                         const _DataType stddev,
 
  391                         const DPCTLEventVectorRef dep_event_vec_ref);
 
  393template <
typename _DataType>
 
  395                                        const _DataType mean,
 
  396                                        const _DataType stddev,
 
  412template <
typename _DataType>
 
  413INP_DLLEXPORT DPCTLSyclEventRef
 
  420                           const DPCTLEventVectorRef dep_event_vec_ref);
 
  422template <
typename _DataType>
 
  444template <
typename _DataType>
 
  445INP_DLLEXPORT DPCTLSyclEventRef
 
  449                                   const double *mean_in,
 
  450                                   const size_t mean_size,
 
  451                                   const double *cov_in,
 
  452                                   const size_t cov_size,
 
  454                                   const DPCTLEventVectorRef dep_event_vec_ref);
 
  456template <
typename _DataType>
 
  459                                                  const double *mean_in,
 
  460                                                  const size_t mean_size,
 
  461                                                  const double *cov_in,
 
  462                                                  const size_t cov_size,
 
  479template <
typename _DataType>
 
  480INP_DLLEXPORT DPCTLSyclEventRef
 
  486                                 const DPCTLEventVectorRef dep_event_vec_ref);
 
  488template <
typename _DataType>
 
  506template <
typename _DataType>
 
  508    DPCTLSyclQueueRef q_ref,
 
  511    const _DataType nonc,
 
  513    const DPCTLEventVectorRef dep_event_vec_ref);
 
  515template <
typename _DataType>
 
  518                                                   const _DataType nonc,
 
  534template <
typename _DataType>
 
  535INP_DLLEXPORT DPCTLSyclEventRef
 
  541                      void *random_state_in,
 
  542                      const DPCTLEventVectorRef dep_event_vec_ref);
 
  544template <
typename _DataType>
 
  546                                     const _DataType mean,
 
  547                                     const _DataType stddev,
 
  561template <
typename _DataType>
 
  562INP_DLLEXPORT DPCTLSyclEventRef
 
  567                      const DPCTLEventVectorRef dep_event_vec_ref);
 
  569template <
typename _DataType>
 
  584template <
typename _DataType>
 
  585INP_DLLEXPORT DPCTLSyclEventRef
 
  590                       const DPCTLEventVectorRef dep_event_vec_ref);
 
  592template <
typename _DataType>
 
  607template <
typename _DataType>
 
  608INP_DLLEXPORT DPCTLSyclEventRef
 
  613                     const DPCTLEventVectorRef dep_event_vec_ref);
 
  615template <
typename _DataType>
 
  630template <
typename _DataType>
 
  631INP_DLLEXPORT DPCTLSyclEventRef
 
  634                        const _DataType scale,
 
  636                        const DPCTLEventVectorRef dep_event_vec_ref);
 
  638template <
typename _DataType>
 
  656template <
typename _DataType>
 
  657INP_DLLEXPORT DPCTLSyclEventRef
 
  660                       const size_t itemsize,
 
  662                       const size_t high_dim_size,
 
  664                       const DPCTLEventVectorRef dep_event_vec_ref);
 
  666template <
typename _DataType>
 
  668                                      const size_t itemsize,
 
  670                                      const size_t high_dim_size,
 
  691template <
typename _DataType>
 
  692INP_DLLEXPORT DPCTLSyclEventRef
 
  696                               const DPCTLEventVectorRef dep_event_vec_ref);
 
  698template <
typename _DataType>
 
  711template <
typename _DataType>
 
  713    DPCTLSyclQueueRef q_ref,
 
  716    const DPCTLEventVectorRef dep_event_vec_ref);
 
  718template <
typename _DataType>
 
  733template <
typename _DataType>
 
  734INP_DLLEXPORT DPCTLSyclEventRef
 
  737                              const _DataType shape,
 
  739                              const DPCTLEventVectorRef dep_event_vec_ref);
 
  741template <
typename _DataType>
 
  743                                             const _DataType shape,
 
  756template <
typename _DataType>
 
  770template <
typename _DataType>
 
  771INP_DLLEXPORT DPCTLSyclEventRef
 
  776                          const DPCTLEventVectorRef dep_event_vec_ref);
 
  778template <
typename _DataType>
 
  796template <
typename _DataType>
 
  797INP_DLLEXPORT DPCTLSyclEventRef
 
  800                          const _DataType x_min,
 
  801                          const _DataType x_mode,
 
  802                          const _DataType x_max,
 
  804                          const DPCTLEventVectorRef dep_event_vec_ref);
 
  806template <
typename _DataType>
 
  808                                         const _DataType x_min,
 
  809                                         const _DataType x_mode,
 
  810                                         const _DataType x_max,
 
  826template <
typename _DataType>
 
  827INP_DLLEXPORT DPCTLSyclEventRef
 
  833                       void *random_state_in,
 
  834                       const DPCTLEventVectorRef dep_event_vec_ref);
 
  836template <
typename _DataType>
 
  854template <
typename _DataType>
 
  855INP_DLLEXPORT DPCTLSyclEventRef
 
  859                        const _DataType kappa,
 
  861                        const DPCTLEventVectorRef dep_event_vec_ref);
 
  863template <
typename _DataType>
 
  866                                       const _DataType kappa,
 
  881template <
typename _DataType>
 
  882INP_DLLEXPORT DPCTLSyclEventRef
 
  885                    const _DataType mean,
 
  886                    const _DataType scale,
 
  888                    const DPCTLEventVectorRef dep_event_vec_ref);
 
  890template <
typename _DataType>
 
  892                                   const _DataType mean,
 
  893                                   const _DataType scale,
 
  907template <
typename _DataType>
 
  908INP_DLLEXPORT DPCTLSyclEventRef
 
  913                       const DPCTLEventVectorRef dep_event_vec_ref);
 
  915template <
typename _DataType>
 
  930template <
typename _DataType>
 
  931INP_DLLEXPORT DPCTLSyclEventRef
 
  936                    const DPCTLEventVectorRef dep_event_vec_ref);
 
  938template <
typename _DataType>
 
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_exponential_c(DPCTLSyclQueueRef q_ref, void *result, const _DataType beta, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of random number generator (exponential distribution)
INP_DLLEXPORT void dpnp_rng_standard_normal_c(void *result, const size_t size)
math library implementation of random number generator (standard normal distribution)
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_beta_c(DPCTLSyclQueueRef q_ref, void *result, const _DataType a, const _DataType b, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of random number generator (beta distribution)
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_standard_t_c(DPCTLSyclQueueRef q_ref, void *result, const _DataType df, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of random number generator (standard Student's t distribution)
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_normal_c(DPCTLSyclQueueRef q_ref, void *result_out, const double mean, const double stddev, const int64_t size, void *random_state_in, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of random number generator (normal continuous distribution)
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_rayleigh_c(DPCTLSyclQueueRef q_ref, void *result, const _DataType scale, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of random number generator (rayleigh distribution)
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_laplace_c(DPCTLSyclQueueRef q_ref, void *result, const double loc, const double scale, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of random number generator (laplace distribution)
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_standard_cauchy_c(DPCTLSyclQueueRef q_ref, void *result, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of random number generator (standard cauchy distribution)
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_pareto_c(DPCTLSyclQueueRef q_ref, void *result, const double alpha, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of random number generator (Pareto distribution)
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_triangular_c(DPCTLSyclQueueRef q_ref, void *result, const _DataType x_min, const _DataType x_mode, const _DataType x_max, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of random number generator (Triangular distribution)
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_uniform_c(DPCTLSyclQueueRef q_ref, void *result_out, const double low, const double high, const int64_t size, void *random_state_in, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of random number generator (uniform distribution)
INP_DLLEXPORT void dpnp_rng_srand_c(size_t seed=1)
initializer for basic random number generator.
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_geometric_c(DPCTLSyclQueueRef q_ref, void *result, const float p, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of random number generator (Geometric distribution)
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_binomial_c(DPCTLSyclQueueRef q_ref, void *result, const int ntrial, const double p, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of random number generator (binomial distribution)
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_gumbel_c(DPCTLSyclQueueRef q_ref, void *result, const double loc, const double scale, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of random number generator (Gumbel distribution)
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_multinomial_c(DPCTLSyclQueueRef q_ref, void *result, const int ntrial, const double *p_in, const size_t p_size, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of random number generator (multinomial distribution)
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_f_c(DPCTLSyclQueueRef q_ref, void *result, const _DataType df_num, const _DataType df_den, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of random number generator (F distribution)
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_weibull_c(DPCTLSyclQueueRef q_ref, void *result, const double alpha, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of random number generator (weibull distribution)
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_gaussian_c(DPCTLSyclQueueRef q_ref, void *result, const _DataType mean, const _DataType stddev, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of random number generator (gaussian continuous distribution)
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_chisquare_c(DPCTLSyclQueueRef q_ref, void *result, const int df, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of random number generator (chi-square distribution)
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_negative_binomial_c(DPCTLSyclQueueRef q_ref, void *result, const double a, const double p, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of random number generator (negative binomial distribution)
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_lognormal_c(DPCTLSyclQueueRef q_ref, void *result, const _DataType mean, const _DataType stddev, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of random number generator (lognormal distribution)
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_zipf_c(DPCTLSyclQueueRef q_ref, void *result, const _DataType a, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of random number generator (Zipf distribution)
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_standard_gamma_c(DPCTLSyclQueueRef q_ref, void *result, const _DataType shape, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of random number generator (standard gamma distribution)
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_hypergeometric_c(DPCTLSyclQueueRef q_ref, void *result, const int l, const int s, const int m, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of random number generator (hypergeometric distribution)
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_power_c(DPCTLSyclQueueRef q_ref, void *result, const double alpha, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of random number generator (power distribution)
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_vonmises_c(DPCTLSyclQueueRef q_ref, void *result, const _DataType mu, const _DataType kappa, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of random number generator (Vonmises distribution)
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_logistic_c(DPCTLSyclQueueRef q_ref, void *result, const double loc, double const scale, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of random number generator (logistic distribution)
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_noncentral_chisquare_c(DPCTLSyclQueueRef q_ref, void *result, const _DataType df, const _DataType nonc, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of random number generator (noncentral chisquare distribution)
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_wald_c(DPCTLSyclQueueRef q_ref, void *result, const _DataType mean, const _DataType scale, size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of random number generator (Wald's distribution)
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_poisson_c(DPCTLSyclQueueRef q_ref, void *result, const double lambda, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of random number generator (poisson distribution)
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_gamma_c(DPCTLSyclQueueRef q_ref, void *result, const _DataType shape, const _DataType scale, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of random number generator (gamma distribution)
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_multivariate_normal_c(DPCTLSyclQueueRef q_ref, void *result, const int dimen, const double *mean_in, const size_t mean_size, const double *cov_in, const size_t cov_size, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of random number generator (multivariate normal distribution)
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_shuffle_c(DPCTLSyclQueueRef q_ref, void *result, const size_t itemsize, const size_t ndim, const size_t high_dim_size, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of random in-place shuffle.
INP_DLLEXPORT DPCTLSyclEventRef dpnp_rng_standard_exponential_c(DPCTLSyclQueueRef q_ref, void *result, const size_t size, const DPCTLEventVectorRef dep_event_vec_ref)
math library implementation of random number generator (standard exponential distribution)