40#ifndef BACKEND_IFACE_RANDOM_H  
   41#define BACKEND_IFACE_RANDOM_H 
   62template <
typename _DataType>
 
   63INP_DLLEXPORT DPCTLSyclEventRef
 
   69                    const DPCTLEventVectorRef dep_event_vec_ref);
 
   71template <
typename _DataType>
 
   89template <
typename _DataType>
 
   90INP_DLLEXPORT DPCTLSyclEventRef
 
   96                        const DPCTLEventVectorRef dep_event_vec_ref);
 
   98template <
typename _DataType>
 
  115template <
typename _DataType>
 
  116INP_DLLEXPORT DPCTLSyclEventRef
 
  121                         const DPCTLEventVectorRef dep_event_vec_ref);
 
  123template <
typename _DataType>
 
  138template <
typename _DataType>
 
  139INP_DLLEXPORT DPCTLSyclEventRef
 
  142                           const _DataType beta,
 
  144                           const DPCTLEventVectorRef dep_event_vec_ref);
 
  146template <
typename _DataType>
 
  148                                          const _DataType beta,
 
  163template <
typename _DataType>
 
  164INP_DLLEXPORT DPCTLSyclEventRef
 
  167                 const _DataType df_num,
 
  168                 const _DataType df_den,
 
  170                 const DPCTLEventVectorRef dep_event_vec_ref);
 
  172template <
typename _DataType>
 
  174                                const _DataType df_num,
 
  175                                const _DataType df_den,
 
  190template <
typename _DataType>
 
  191INP_DLLEXPORT DPCTLSyclEventRef
 
  194                     const _DataType shape,
 
  195                     const _DataType scale,
 
  197                     const DPCTLEventVectorRef dep_event_vec_ref);
 
  199template <
typename _DataType>
 
  201                                    const _DataType shape,
 
  202                                    const _DataType scale,
 
  217template <
typename _DataType>
 
  218INP_DLLEXPORT DPCTLSyclEventRef
 
  221                        const _DataType mean,
 
  222                        const _DataType stddev,
 
  224                        const DPCTLEventVectorRef dep_event_vec_ref);
 
  226template <
typename _DataType>
 
  228                                       const _DataType mean,
 
  229                                       const _DataType stddev,
 
  244template <
typename _DataType>
 
  245INP_DLLEXPORT DPCTLSyclEventRef
 
  250                         const DPCTLEventVectorRef dep_event_vec_ref);
 
  252template <
typename _DataType>
 
  270template <
typename _DataType>
 
  271INP_DLLEXPORT DPCTLSyclEventRef
 
  277                      const DPCTLEventVectorRef dep_event_vec_ref);
 
  279template <
typename _DataType>
 
  298template <
typename _DataType>
 
  299INP_DLLEXPORT DPCTLSyclEventRef
 
  306                              const DPCTLEventVectorRef dep_event_vec_ref);
 
  308template <
typename _DataType>
 
  327template <
typename _DataType>
 
  328INP_DLLEXPORT DPCTLSyclEventRef
 
  334                       const DPCTLEventVectorRef dep_event_vec_ref);
 
  336template <
typename _DataType>
 
  354template <
typename _DataType>
 
  355INP_DLLEXPORT DPCTLSyclEventRef
 
  361                        const DPCTLEventVectorRef dep_event_vec_ref);
 
  363template <
typename _DataType>
 
  381template <
typename _DataType>
 
  382INP_DLLEXPORT DPCTLSyclEventRef
 
  385                         const _DataType mean,
 
  386                         const _DataType stddev,
 
  388                         const DPCTLEventVectorRef dep_event_vec_ref);
 
  390template <
typename _DataType>
 
  392                                        const _DataType mean,
 
  393                                        const _DataType stddev,
 
  409template <
typename _DataType>
 
  410INP_DLLEXPORT DPCTLSyclEventRef
 
  417                           const DPCTLEventVectorRef dep_event_vec_ref);
 
  419template <
typename _DataType>
 
  441template <
typename _DataType>
 
  442INP_DLLEXPORT DPCTLSyclEventRef
 
  446                                   const double *mean_in,
 
  447                                   const size_t mean_size,
 
  448                                   const double *cov_in,
 
  449                                   const size_t cov_size,
 
  451                                   const DPCTLEventVectorRef dep_event_vec_ref);
 
  453template <
typename _DataType>
 
  456                                                  const double *mean_in,
 
  457                                                  const size_t mean_size,
 
  458                                                  const double *cov_in,
 
  459                                                  const size_t cov_size,
 
  476template <
typename _DataType>
 
  477INP_DLLEXPORT DPCTLSyclEventRef
 
  483                                 const DPCTLEventVectorRef dep_event_vec_ref);
 
  485template <
typename _DataType>
 
  503template <
typename _DataType>
 
  505    DPCTLSyclQueueRef q_ref,
 
  508    const _DataType nonc,
 
  510    const DPCTLEventVectorRef dep_event_vec_ref);
 
  512template <
typename _DataType>
 
  515                                                   const _DataType nonc,
 
  531template <
typename _DataType>
 
  532INP_DLLEXPORT DPCTLSyclEventRef
 
  538                      void *random_state_in,
 
  539                      const DPCTLEventVectorRef dep_event_vec_ref);
 
  541template <
typename _DataType>
 
  543                                     const _DataType mean,
 
  544                                     const _DataType stddev,
 
  558template <
typename _DataType>
 
  559INP_DLLEXPORT DPCTLSyclEventRef
 
  564                      const DPCTLEventVectorRef dep_event_vec_ref);
 
  566template <
typename _DataType>
 
  581template <
typename _DataType>
 
  582INP_DLLEXPORT DPCTLSyclEventRef
 
  587                       const DPCTLEventVectorRef dep_event_vec_ref);
 
  589template <
typename _DataType>
 
  604template <
typename _DataType>
 
  605INP_DLLEXPORT DPCTLSyclEventRef
 
  610                     const DPCTLEventVectorRef dep_event_vec_ref);
 
  612template <
typename _DataType>
 
  627template <
typename _DataType>
 
  628INP_DLLEXPORT DPCTLSyclEventRef
 
  631                        const _DataType scale,
 
  633                        const DPCTLEventVectorRef dep_event_vec_ref);
 
  635template <
typename _DataType>
 
  653template <
typename _DataType>
 
  654INP_DLLEXPORT DPCTLSyclEventRef
 
  657                       const size_t itemsize,
 
  659                       const size_t high_dim_size,
 
  661                       const DPCTLEventVectorRef dep_event_vec_ref);
 
  663template <
typename _DataType>
 
  665                                      const size_t itemsize,
 
  667                                      const size_t high_dim_size,
 
  688template <
typename _DataType>
 
  689INP_DLLEXPORT DPCTLSyclEventRef
 
  693                               const DPCTLEventVectorRef dep_event_vec_ref);
 
  695template <
typename _DataType>
 
  708template <
typename _DataType>
 
  710    DPCTLSyclQueueRef q_ref,
 
  713    const DPCTLEventVectorRef dep_event_vec_ref);
 
  715template <
typename _DataType>
 
  730template <
typename _DataType>
 
  731INP_DLLEXPORT DPCTLSyclEventRef
 
  734                              const _DataType shape,
 
  736                              const DPCTLEventVectorRef dep_event_vec_ref);
 
  738template <
typename _DataType>
 
  740                                             const _DataType shape,
 
  753template <
typename _DataType>
 
  767template <
typename _DataType>
 
  768INP_DLLEXPORT DPCTLSyclEventRef
 
  773                          const DPCTLEventVectorRef dep_event_vec_ref);
 
  775template <
typename _DataType>
 
  793template <
typename _DataType>
 
  794INP_DLLEXPORT DPCTLSyclEventRef
 
  797                          const _DataType x_min,
 
  798                          const _DataType x_mode,
 
  799                          const _DataType x_max,
 
  801                          const DPCTLEventVectorRef dep_event_vec_ref);
 
  803template <
typename _DataType>
 
  805                                         const _DataType x_min,
 
  806                                         const _DataType x_mode,
 
  807                                         const _DataType x_max,
 
  823template <
typename _DataType>
 
  824INP_DLLEXPORT DPCTLSyclEventRef
 
  830                       void *random_state_in,
 
  831                       const DPCTLEventVectorRef dep_event_vec_ref);
 
  833template <
typename _DataType>
 
  851template <
typename _DataType>
 
  852INP_DLLEXPORT DPCTLSyclEventRef
 
  856                        const _DataType kappa,
 
  858                        const DPCTLEventVectorRef dep_event_vec_ref);
 
  860template <
typename _DataType>
 
  863                                       const _DataType kappa,
 
  878template <
typename _DataType>
 
  879INP_DLLEXPORT DPCTLSyclEventRef
 
  882                    const _DataType mean,
 
  883                    const _DataType scale,
 
  885                    const DPCTLEventVectorRef dep_event_vec_ref);
 
  887template <
typename _DataType>
 
  889                                   const _DataType mean,
 
  890                                   const _DataType scale,
 
  904template <
typename _DataType>
 
  905INP_DLLEXPORT DPCTLSyclEventRef
 
  910                       const DPCTLEventVectorRef dep_event_vec_ref);
 
  912template <
typename _DataType>
 
  927template <
typename _DataType>
 
  928INP_DLLEXPORT DPCTLSyclEventRef
 
  933                    const DPCTLEventVectorRef dep_event_vec_ref);
 
  935template <
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)